:root{
      --blue:#0057bd;
      --blue-2:#0868d7;
      --navy:#052d67;
      --navy-dark:#032451;
      --ink:#082b59;
      --body:#111b2b;
      --muted:#66758a;
      --line:#cdddf2;
      --wash:#f3f3f3;
      --cream:#fff0b5;
      --paper:#ffffff;
      --max:1128px;
      --serif:"Libre Caslon Display", Georgia, "Times New Roman", serif;
      --sans:"Inter", Arial, sans-serif;
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      background:#fff;
      color:var(--body);
      font-family:var(--sans);
      line-height:1.45;
    }
    img{display:block;max-width:100%}
    a{color:inherit;text-decoration:none}
    button,input,select{font:inherit}
    .container{width:min(var(--max), calc(100% - 42px));margin-inline:auto}

    /* top disclosure */
    .insured-strip{
      background:#f5f7fa;
      border-bottom:1px solid #e4e8ee;
      font-size:12px;
      color:#33465f;
    }
    .insured-strip .container{
      min-height:35px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:15px;
    }
    .insured-badge{font-weight:800;color:var(--navy)}
    .utility-links{display:flex;gap:22px}
    .utility-links a:hover{text-decoration:underline}

    /* header */
    .site-header{
      background:#fff;
      position:sticky;
      top:0;
      z-index:50;
      box-shadow:0 1px 0 rgba(4,38,82,.13);
    }
    .header-main{
      min-height:82px;
      display:flex;
      align-items:center;
      gap:32px;
    }
    .brand{
      display:flex;
      align-items:center;
      gap:10px;
      color:var(--navy);
      font-weight:800;
      min-width:max-content;
    }
    .brand-mark{
      display:grid;
      place-items:center;
      width:36px;
      height:36px;
      background:var(--blue);
      color:white;
      font-size:12px;
      border-radius:2px;
      box-shadow:inset 0 0 0 2px rgba(255,255,255,.35);
    }
    .brand-name{
      font-size:18px;
      letter-spacing:-.02em;
    }

    .main-nav{
      display:flex;
      gap:27px;
      align-items:center;
      flex:1;
      justify-content:center;
    }
    .nav-item{position:relative}
    .nav-item>a{
      display:flex;
      gap:5px;
      align-items:center;
      padding:30px 0 26px;
      color:#243b57;
      font-size:14px;
      font-weight:650;
      border-bottom:3px solid transparent;
    }
    .nav-item>a:hover{color:var(--blue);border-bottom-color:var(--blue)}
    .header-actions{display:flex;gap:10px;align-items:center}

    .btn{
      min-height:45px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      border-radius:6px;
      padding:0 18px;
      border:1px solid transparent;
      font-weight:750;
      font-size:14px;
      cursor:pointer;
      transition:.18s ease;
    }
    .btn:hover{transform:translateY(-1px)}
    .btn-primary{background:var(--blue);color:white}
    .btn-primary:hover{background:#004aa3}
    .btn-outline{border-color:var(--blue);color:var(--blue);background:#fff}
    .btn-outline:hover{background:#f5f9ff}
    .btn-white{border-color:white;color:white;background:transparent}
    .btn-white:hover{background:rgba(255,255,255,.1)}

    .nav-toggle{
      display:none;
      width:44px;
      height:44px;
      border:1px solid #d7e0eb;
      background:#fff;
      border-radius:5px;
      padding:10px;
      cursor:pointer;
      margin-left:auto;
    }
    .nav-toggle span{
      display:block;
      height:2px;
      background:var(--navy);
      margin:5px 0;
    }

    /* hero */
    .hero{
      position:relative;
      min-height:675px;
      color:white;
      overflow:hidden;
      background:
        linear-gradient(90deg,rgba(2,23,42,.72) 0%,rgba(2,23,42,.48) 43%,rgba(2,23,42,.09) 72%),
        url("../assets/images/landing/hero.jpg") center/cover no-repeat;
    }
    .hero-grid{
      min-height:675px;
      display:grid;
      grid-template-columns:1.35fr .9fr;
      align-items:center;
      gap:64px;
      padding:58px 0;
    }
    .hero-copy{
      max-width:680px;
      padding-top:25px;
    }
    .hero-copy h1{
      margin:0 0 20px;
      font-family:var(--serif);
      font-weight:400;
      font-size:clamp(48px,5vw,73px);
      line-height:1.08;
      letter-spacing:-.02em;
      text-shadow:0 2px 16px rgba(0,0,0,.25);
    }
    .hero-copy p{
      margin:0 0 26px;
      max-width:660px;
      font-size:19px;
      line-height:1.7;
      font-weight:500;
    }
    .hero-actions{display:flex;gap:12px;flex-wrap:wrap}

    .sign-in-panel{
      width:100%;
      max-width:410px;
      justify-self:end;
      background:linear-gradient(180deg,#0662cf 0%,#0053b5 100%);
      border-radius:0 60px 0 60px;
      padding:38px 34px 28px;
      box-shadow:0 18px 45px rgba(0,34,79,.25);
    }
    .sign-in-panel h2{
      margin:0 0 20px;
      font-family:var(--serif);
      font-weight:400;
      font-size:29px;
    }
    .service-select,.login-form input{
      width:100%;
      height:47px;
      border:0;
      border-radius:7px;
      background:white;
      padding:0 13px;
      color:#25364d;
      outline:none;
    }
    .login-form label{
      display:block;
      margin:17px 0 7px;
      font-size:13px;
      font-weight:800;
    }
    .login-form button{
      width:100%;
      margin-top:20px;
      background:#8ab8e7;
      color:#062f65;
      border:0;
    }
    .login-form button:hover{background:#9bc5ed}
    .login-links{
      display:grid;
      gap:13px;
      margin-top:22px;
      font-weight:750;
      font-size:14px;
    }
    .login-links a:hover{text-decoration:underline}
    .form-message{
      min-height:18px;
      margin:10px 0 0;
      font-size:12px;
      color:#fff3b0;
    }

    /* generic section */
    .section{padding:88px 0}
    .section-title{
      margin:0;
      font-family:var(--serif);
      font-weight:400;
      color:var(--blue);
      font-size:clamp(38px,4.2vw,54px);
      line-height:1.08;
      letter-spacing:-.02em;
    }
    .section-intro{
      margin:17px 0 0;
      max-width:730px;
      font-size:17px;
      color:#324861;
    }

    /* needs */
    .needs-grid{
      margin-top:36px;
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:16px;
    }
    .need-card{
      min-height:270px;
      border:1px solid #bbd5fa;
      border-radius:11px;
      padding:30px 23px;
      display:flex;
      flex-direction:column;
      background:white;
    }
    .need-icon{
      width:72px;
      height:72px;
      margin-bottom:27px;
      display:grid;
      place-items:center;
      font-size:36px;
      background:#f0f6ff;
      border-radius:50%;
    }
    .need-card h3{
      font-family:var(--serif);
      font-weight:400;
      color:#001f4d;
      font-size:25px;
      line-height:1.03;
      margin:0 0 13px;
    }
    .need-card p{
      margin:0 0 20px;
      font-size:14px;
      line-height:1.4;
    }
    .link-arrow{
      color:var(--blue);
      font-weight:800;
      font-size:14px;
      margin-top:auto;
    }
    .link-arrow:hover{text-decoration:underline}

    /* banking tabs and cards */
    .products-section{padding-top:78px}
    .tabs{
      display:flex;
      gap:46px;
      border-bottom:0;
      margin-bottom:28px;
      overflow:auto;
    }
    .tab{
      position:relative;
      padding:0 0 14px;
      color:#0361d2;
      font-family:var(--serif);
      font-size:24px;
      white-space:nowrap;
    }
    .tab.active:after{
      content:"";
      position:absolute;
      left:0;right:0;bottom:0;
      height:4px;
      border-radius:4px;
      background:var(--blue);
    }
    .product-heading{
      max-width:1060px;
      margin:0 0 34px;
      color:var(--blue);
      font-family:var(--serif);
      font-size:clamp(38px,4vw,53px);
      line-height:1.1;
      font-weight:400;
    }
    .product-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:20px;
    }
    .product-card{
      background:#f2f2f2;
      min-height:490px;
      display:flex;
      flex-direction:column;
    }
    .product-photo{
      height:245px;
      width:100%;
      object-fit:cover;
    }
    .product-body{
      padding:19px 20px 23px;
      display:flex;
      flex-direction:column;
      flex:1;
    }
    .product-body h3{
      margin:0 0 13px;
      font-family:var(--serif);
      font-size:27px;
      line-height:1.12;
      color:#001d47;
      font-weight:400;
    }
    .product-body p{margin:0 0 20px;font-size:17px;line-height:1.55}
    .product-body .link-arrow{margin-top:auto}

    /* Learning */
    .learning{
      background:#f3f3f3;
      padding:92px 0;
      margin-top:95px;
    }
    .learning-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:20px;
      margin-bottom:34px;
    }
    .learning-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:44px;
    }
    .featured-article{
      background:white;
    }
    .featured-art{
      min-height:440px;
      background:#f6dfbd;
      position:relative;
      display:grid;
      place-items:center;
      overflow:hidden;
    }
    .featured-art .person{
      width:280px;height:340px;
      background:#0476bc;
      border-radius:140px 140px 15px 15px;
      transform:rotate(-5deg);
      position:relative;
    }
    .featured-art .person:before{
      content:"";
      position:absolute;
      width:115px;height:115px;
      border-radius:50%;
      background:#f4ad88;
      left:78px;top:-37px;
      box-shadow:-25px -9px 0 8px #172345;
    }
    .stars{
      position:absolute;
      top:45px;right:45px;
      font-size:56px;
      color:#ffb600;
      letter-spacing:8px;
    }
    .featured-copy{padding:30px 20px 27px}
    .featured-copy h3{
      margin:0 0 15px;
      font-family:var(--serif);
      font-weight:400;
      font-size:27px;
      color:#00265c;
    }
    .featured-copy p{font-size:17px;line-height:1.65;margin:0 0 23px}

    .more-title{
      margin:0 0 14px;
      color:#075bc4;
      font-family:var(--serif);
      font-size:23px;
      font-weight:400;
    }
    .article-list{
      background:white;
      border-top:1px solid #e2e2e2;
    }
    .article-row{
      min-height:172px;
      padding:17px 15px;
      display:grid;
      grid-template-columns:1fr 185px;
      gap:18px;
      border-bottom:1px solid #e2e2e2;
      align-items:center;
    }
    .article-row h4{
      margin:0 0 5px;
      font-family:var(--serif);
      font-size:23px;
      line-height:1.05;
      color:#00265c;
      font-weight:400;
    }
    .article-row p{margin:0 0 9px;font-size:14px;line-height:1.35}
    .article-row img{
      width:185px;height:135px;object-fit:cover;
    }

    /* security focus */
    .focus{
      padding:90px 0;
      display:grid;
      grid-template-columns:.9fr 1.15fr;
      gap:75px;
      align-items:start;
    }
    .focus-copy p{font-size:17px;line-height:1.65;margin:20px 0 27px}
    .accordion{border-top:1px solid #d5dce6}
    .acc-item{border-bottom:1px solid #d5dce6}
    .acc-button{
      border:0;
      background:white;
      width:100%;
      text-align:left;
      padding:17px 0;
      display:flex;
      justify-content:space-between;
      gap:15px;
      align-items:flex-start;
      color:#00265c;
      font-family:var(--serif);
      font-size:27px;
      cursor:pointer;
    }
    .acc-symbol{font-family:var(--sans);font-weight:700;color:#637997}
    .acc-panel{
      display:none;
      padding:0 8px 18px 25px;
      font-size:16px;
      line-height:1.6;
    }
    .acc-item.open .acc-panel{display:block}
    .acc-item.open .acc-symbol:before{content:"×"}
    .acc-item:not(.open) .acc-symbol:before{content:"+"}

    /* start account mini-form */
    .start-account{
      padding:85px 0;
      background:#f8fafc;
    }
    .start-card{
      display:grid;
      grid-template-columns:1fr 1fr;
      background:white;
      box-shadow:0 16px 50px rgba(7,51,104,.10);
      border:1px solid #dce7f5;
    }
    .start-copy{padding:45px}
    .start-copy h2{
      margin:0 0 13px;
      font-family:var(--serif);
      font-size:42px;
      color:#0057bd;
      font-weight:400;
      line-height:1.08;
    }
    .start-copy p{margin:0;color:#4c5f76}
    .start-form{
      padding:38px 42px;
      background:#f4f8fe;
      display:grid;
      gap:12px;
    }
    .start-form label{font-size:12px;font-weight:800;color:#27435f}
    .start-form input{
      height:45px;
      border:1px solid #b8cbe4;
      border-radius:5px;
      padding:0 12px;
      width:100%;
      background:white;
    }
    .start-form input:focus{
      outline:none;border-color:var(--blue);
      box-shadow:0 0 0 3px rgba(0,87,189,.11);
    }

    /* bottom CTA */
    .cta-wrap{
      background:var(--navy);
      padding:95px 0 100px;
    }
    .cta-card{
      display:grid;
      grid-template-columns:1.12fr .88fr;
      min-height:395px;
      border-radius:0 30px 0 30px;
      overflow:hidden;
    }
    .cta-copy{
      background:var(--blue);
      color:white;
      padding:47px 34px;
      display:flex;
      flex-direction:column;
      align-items:flex-start;
    }
    .cta-copy h2{
      font-family:var(--serif);
      font-weight:400;
      font-size:49px;
      line-height:1.04;
      margin:0;
      max-width:520px;
    }
    .cta-copy .btn{margin-top:auto}
    .cta-art{
      background:var(--cream);
      display:grid;
      place-items:center;
      position:relative;
      overflow:hidden;
    }
    .cta-circle{
      width:330px;height:330px;border-radius:50%;
      background:#fff7db;
      position:relative;
    }
    .cta-person{
      position:absolute;
      width:135px;height:185px;
      background:#ffda37;
      left:78px;bottom:0;
      border-radius:70px 70px 0 0;
    }
    .cta-person:before{
      content:"";
      position:absolute;
      width:72px;height:72px;border-radius:50%;
      background:#d89a65;
      top:-45px;left:34px;
      box-shadow:10px -8px 0 5px #03275e;
    }
    .phone-art{
      position:absolute;
      width:34px;height:62px;
      background:#0057bd;
      border-radius:5px;
      left:220px;top:170px;
      transform:rotate(10deg);
    }
    .check-art{
      position:absolute;
      width:55px;height:55px;border-radius:50%;
      background:#78bd67;color:white;
      display:grid;place-items:center;
      font-size:29px;font-weight:800;
      left:235px;top:110px;
    }
    .coffee{
      position:absolute;
      right:48px;bottom:47px;
      width:68px;height:35px;border-radius:0 0 35px 35px;
      background:#ee1616;
    }

    /* footer */
    footer{
      background:var(--navy);
      color:#dfeaf7;
      padding:0 0 36px;
    }
    .footer-grid{
      padding:20px 0 45px;
      display:grid;
      grid-template-columns:1.6fr 1fr 1fr 1fr;
      gap:55px;
    }
    .footer-brand p{
      color:#d3deea;
      font-size:12px;
      max-width:390px;
      line-height:1.55;
      margin-top:15px;
    }
    footer h4{
      color:#7fa4d5;
      font-size:12px;
      font-weight:600;
      margin:0 0 17px;
    }
    .footer-links{
      display:grid;
      gap:16px;
      font-size:13px;
      font-weight:650;
    }
    .footer-links a:hover{text-decoration:underline}
    .socials{display:flex;gap:15px;margin-top:15px;font-weight:800}
    .footer-bottom{
      border-top:1px solid rgba(255,255,255,.35);
      padding-top:30px;
      font-size:11px;
      line-height:1.6;
      color:#cfdbeb;
    }
    .footer-badges{
      display:flex;justify-content:flex-end;gap:18px;
      font-weight:800;font-size:13px;margin-bottom:25px;
    }

    .feedback{
      position:fixed;
      right:0;top:45%;
      z-index:20;
      background:var(--blue);
      color:white;
      padding:25px 10px;
      writing-mode:vertical-rl;
      font-size:13px;
      border-radius:4px 0 0 4px;
    }

    @media(max-width:980px){
      .utility-links{display:none}
      .nav-toggle{display:block}
      .header-actions{display:none}
      .header-main{min-height:70px}

      .main-nav{
        position:absolute;
        left:0;right:0;top:70px;
        display:none;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        background:#fff;
        border-top:1px solid #dce3ed;
        padding:10px 22px 18px;
      }
      .site-header.open .main-nav{display:flex}
      .nav-item>a{padding:13px 0;border-bottom:1px solid #eef2f6}
      .hero-grid{grid-template-columns:1fr;gap:35px}
      .sign-in-panel{justify-self:start;max-width:520px}
      .needs-grid{grid-template-columns:1fr 1fr}
      .product-grid{grid-template-columns:1fr}
      .product-card{min-height:auto}
      .learning-grid{grid-template-columns:1fr}
      .focus{grid-template-columns:1fr;gap:35px}
      .start-card{grid-template-columns:1fr}
      .cta-card{grid-template-columns:1fr}
      .cta-art{min-height:380px}
      .footer-grid{grid-template-columns:1fr 1fr}
    }

    @media(max-width:620px){
      .insured-strip .container{font-size:10px}
      .container{width:min(100% - 28px,var(--max))}
      .hero{min-height:auto}
      .hero-grid{min-height:auto;padding:42px 0}
      .hero-copy h1{font-size:45px}
      .hero-copy p{font-size:16px}
      .sign-in-panel{padding:28px 22px;border-radius:0 38px 0 38px}
      .section{padding:65px 0}
      .needs-grid{grid-template-columns:1fr}
      .tabs{gap:26px}
      .product-heading{font-size:38px}
      .product-photo{height:220px}
      .learning{padding:65px 0;margin-top:55px}
      .learning-head{align-items:flex-start;flex-direction:column}
      .article-row{grid-template-columns:1fr}
      .article-row img{width:100%;height:190px}
      .start-copy,.start-form{padding:28px 22px}
      .cta-wrap{padding:65px 0}
      .cta-copy{min-height:350px;padding:35px 25px}
      .cta-copy h2{font-size:41px}
      .footer-grid{grid-template-columns:1fr}
      .feedback{display:none}
    }

.footer-logo{color:white}


/* Connected local image assets */
.need-icon{
  overflow:hidden;
  background:#fff;
}
.need-icon img{
  width:100%;
  height:100%;
  object-fit:contain;
}

.featured-art{
  min-height:440px;
  background:#f6dfbd;
  overflow:hidden;
}
.featured-art > img{
  display:block;
  width:100%;
  height:440px;
  object-fit:cover;
}
.featured-art .person,
.featured-art .stars{
  display:none !important;
}

.cta-art{
  background:#fff0b5;
  overflow:hidden;
}
.cta-art > img{
  width:100%;
  height:100%;
  min-height:395px;
  object-fit:cover;
}
.cta-circle,
.cta-person,
.phone-art,
.check-art,
.coffee{
  display:none !important;
}

@media(max-width:980px){
  .cta-art > img{min-height:380px;}
}
@media(max-width:620px){
  .featured-art > img{height:320px;}
  .cta-art > img{min-height:300px;}
}




/* ==========================================================
   BANKING CATEGORY TABS - CSS ONLY
   New stylesheet filename prevents stale browser/CDN caching.
   ========================================================== */
.banking-tab-control{
  position:absolute;
  inline-size:1px;
  block-size:1px;
  opacity:0;
  pointer-events:none;
}

.banking-tabs{
  display:flex;
  align-items:flex-end;
  gap:47px;
  margin:0 0 31px;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
}
.banking-tabs::-webkit-scrollbar{display:none}

.banking-tabs .tab{
  appearance:none;
  -webkit-appearance:none;
  border:0 !important;
  outline:0;
  background:transparent !important;
  box-shadow:none !important;
  margin:0;
  padding:0 0 14px;
  position:relative;
  display:inline-block;
  color:#0061d5;
  font-family:var(--serif);
  font-size:24px;
  font-weight:400;
  line-height:1.1;
  white-space:nowrap;
  cursor:pointer;
  user-select:none;
}

.banking-tabs .tab:hover{color:#004fac}

.banking-panel{display:none;}

#banking-everyday:checked ~ .panel-everyday,
#banking-business:checked ~ .panel-business,
#banking-private:checked ~ .panel-private{
  display:block;
  animation:bankingPanelFade .18s ease-out;
}

#banking-everyday:checked ~ .banking-tabs label[for="banking-everyday"]::after,
#banking-business:checked ~ .banking-tabs label[for="banking-business"]::after,
#banking-private:checked ~ .banking-tabs label[for="banking-private"]::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:4px;
  border-radius:4px;
  background:#0057bd;
}

#banking-everyday:focus-visible ~ .banking-tabs label[for="banking-everyday"],
#banking-business:focus-visible ~ .banking-tabs label[for="banking-business"],
#banking-private:focus-visible ~ .banking-tabs label[for="banking-private"]{
  outline:3px solid rgba(0,87,189,.20);
  outline-offset:5px;
}

@keyframes bankingPanelFade{
  from{opacity:.2;transform:translateY(3px)}
  to{opacity:1;transform:translateY(0)}
}

/* Match the reference spacing and card proportions more closely. */
.products-section{padding-top:76px;}
.products-section .product-heading{
  margin:0 0 35px;
  max-width:1110px;
  color:#0061c9;
  font-family:var(--serif);
  font-size:clamp(40px,4.15vw,55px);
  font-weight:400;
  line-height:1.06;
  letter-spacing:-.02em;
}
.products-section .product-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.products-section .product-card{
  min-width:0;
  min-height:490px;
  background:#f2f2f2;
  display:flex;
  flex-direction:column;
}
.products-section .product-photo{
  display:block;
  width:100%;
  height:246px;
  object-fit:cover;
}
.products-section .product-body{
  flex:1;
  display:flex;
  flex-direction:column;
  padding:19px 20px 24px;
}
.products-section .product-body h3{
  margin:0 0 15px;
  color:#001f4d;
  font-family:var(--serif);
  font-size:28px;
  font-weight:400;
  line-height:1.08;
}
.products-section .product-body p{
  margin:0 0 22px;
  font-size:17px;
  line-height:1.55;
}
.products-section .product-body .link-arrow{margin-top:auto;}

@media(max-width:980px){
  .banking-tabs{gap:32px;}
  .products-section .product-grid{grid-template-columns:1fr;}
  .products-section .product-photo{height:300px;}
}

@media(max-width:620px){
  .products-section{padding-top:55px;}
  .banking-tabs{gap:25px;margin-bottom:26px;}
  .banking-tabs .tab{font-size:20px;padding-bottom:12px;}
  .products-section .product-heading{font-size:38px;}
  .products-section .product-photo{height:220px;}
}
