/* ===== EXTRACTED STYLE BLOCK 1 ===== */
:root{
    --navy:#14213D;
    --navy-light:#1F3155;
    --paper:#FAF8F3;
    --paper-dim:#F1EDE3;
    --brass:#A9812F;
    --brass-light:#C9A354;
    --slate:#4C6580;
    --forest:#2F5233;
    --ink:#22262B;
    --ink-soft:#5B6169;
    --line:#DEDACE;
    --line-dark:rgba(255,255,255,0.14);
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter',sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    /* Keeps the footer pinned to the viewport bottom on short pages (the
       auth layout especially) instead of floating right under the content
       with empty page background beneath it. Long pages are unaffected —
       main just grows past the viewport as usual. */
    min-height:100vh;
    display:flex;
    flex-direction:column;
  }
  body>main{flex:1 0 auto;}
  h1,h2,h3,h4{font-family:'Source Serif 4',serif;font-weight:500;letter-spacing:-0.01em;}
  .mono{font-family:'IBM Plex Mono',monospace;}
  a{color:inherit;text-decoration:none;}
  button{font-family:inherit;}
  .wrap{max-width:1140px;margin:0 auto;padding:0 32px;}
  img{max-width:100%;display:block;}
  /* .page{display:none;} */
  .page.active{display:block;}

  /* NAV */
  header{position:sticky;top:0;z-index:50;background:var(--navy);border-bottom:1px solid var(--line-dark);}
  .navbar{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;max-width:1140px;margin:0 auto;}
  .brand{display:flex;align-items:center;gap:10px;color:var(--paper);cursor:pointer;background:none;border:none;}
  .brand .mark{width:32px;height:32px;border:1.5px solid var(--brass-light);border-radius:3px;display:flex;align-items:center;justify-content:center;font-family:'Source Serif 4',serif;font-size:15px;color:var(--brass-light);}
  .brand .name{font-family:'Source Serif 4',serif;font-size:19px;letter-spacing:0.01em;}
  nav ul{list-style:none;display:flex;gap:30px;}
  nav a{color:#D8DCE6;font-size:14px;font-weight:500;transition:color .15s;cursor:pointer;}
  nav a:hover,nav a.active{color:var(--brass-light);}
  .nav-cta{display:flex;align-items:center;gap:22px;}
  .phone-pill{display:flex;align-items:center;gap:8px;color:var(--paper);font-size:14px;font-weight:600;}
  .phone-pill svg{width:15px;height:15px;stroke:var(--brass-light);}
  .btn{display:inline-block;padding:11px 22px;border-radius:3px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .15s;font-family:inherit;}
  .btn-brass{background:var(--brass);color:#fff;border-color:var(--brass);}
  .btn:disabled{opacity:.75;cursor:wait;}
  .btn-spinner{display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-1px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:btn-spin .65s linear infinite;}
  @keyframes btn-spin{to{transform:rotate(360deg);}}
  .btn-brass:hover{background:var(--brass-light);}
  .btn-outline{background:transparent;color:var(--paper);border-color:rgba(250,248,243,0.35);}
  .btn-outline:hover{border-color:var(--paper);}
  /* Auth pages (layouts.auth) only load this stylesheet, not portal.css — a
     plain <button class="link-btn"> here rendered as an unstyled default
     button (e.g. the "Log out" link on verify-email) without this. */
  .link-btn{background:none;border:none;padding:0;color:var(--navy);font-size:12.5px;font-weight:600;text-decoration:underline;cursor:pointer;flex-shrink:0;}
  .menu-toggle{display:none;background:none;border:none;color:var(--paper);font-size:24px;cursor:pointer;}

  /* PAGE HEADER (interior pages) */
  .page-hero{background:var(--navy);color:var(--paper);padding:56px 0;}
  .page-hero .eyebrow{color:var(--brass-light);}
  .page-hero .eyebrow::before{background:var(--brass-light);}
  .page-hero h1{font-size:34px;margin-bottom:12px;}
  .page-hero p{color:#C6CBD7;max-width:560px;font-size:15.5px;line-height:1.65;}
  .crumb{font-size:12.5px;color:#8A91A3;margin-bottom:14px;}
  .crumb span{color:var(--brass-light);}

  /* HERO (home) */
  .hero{background:var(--navy);color:var(--paper);padding:78px 0 96px;position:relative;overflow:hidden;}
  .hero-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center;}
  .eyebrow{display:flex;align-items:center;gap:10px;color:var(--brass-light);font-size:12.5px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;margin-bottom:22px;}
  .eyebrow::before{content:"";width:26px;height:1px;background:var(--brass-light);}
  .hero h1{font-size:46px;line-height:1.12;margin-bottom:22px;}
  .hero h1 em{font-style:normal;color:var(--brass-light);}
  .hero p.lead{font-size:17px;color:#C6CBD7;max-width:460px;margin-bottom:32px;line-height:1.65;}
  .hero-actions{display:flex;gap:14px;margin-bottom:40px;flex-wrap:wrap;}
  .hero-stats{display:flex;gap:36px;padding-top:28px;border-top:1px solid var(--line-dark);}
  .hero-stats div{display:flex;flex-direction:column;gap:4px;}
  .hero-stats .num{font-family:'IBM Plex Mono',monospace;font-size:22px;font-weight:600;color:var(--paper);}
  .hero-stats .label{font-size:12.5px;color:#9AA2B4;}

  /* SIGNATURE: Loan Estimate document card */
  .doc-card{background:#fff;color:var(--ink);border-radius:6px;padding:0;box-shadow:0 24px 60px rgba(0,0,0,0.35);position:relative;}
  .doc-head{background:var(--navy-light);color:var(--paper);padding:18px 24px;display:flex;justify-content:space-between;align-items:center;border-radius:6px 6px 0 0;}
  .doc-head .doc-title{font-family:'Source Serif 4',serif;font-size:15px;}
  .doc-head .doc-id{font-family:'IBM Plex Mono',monospace;font-size:11px;color:#9AA2B4;}
  .doc-body{padding:26px 24px 22px;}
  .doc-row{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line);}
  .doc-row:last-child{border-bottom:none;}
  .doc-row .k{font-size:13px;color:var(--ink-soft);}
  .doc-row .v{font-family:'IBM Plex Mono',monospace;font-size:16px;font-weight:600;color:var(--navy);}
  .doc-row .v.rate{color:var(--forest);}
  .doc-stamp{position:absolute;top:-14px;right:-14px;width:76px;height:76px;border-radius:50%;border:2px solid var(--brass);display:flex;align-items:center;justify-content:center;text-align:center;background:var(--navy);color:var(--brass-light);font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:600;letter-spacing:0.06em;line-height:1.3;transform:rotate(9deg);}
  .doc-foot{padding:14px 24px;font-size:11px;color:var(--ink-soft);border-top:1px dashed var(--line);}

  /* SECTIONS */
  section{padding:88px 0;}
  section.tight{padding:64px 0;}
  .section-head{max-width:600px;margin-bottom:52px;}
  .section-head .eyebrow{color:var(--brass);}
  .section-head .eyebrow::before{background:var(--brass);}
  .section-head h2{font-size:32px;color:var(--navy);margin-bottom:14px;}
  .section-head p{color:var(--ink-soft);font-size:15.5px;line-height:1.65;}

  /* PROGRAMS */
  .programs{background:var(--paper-dim);}
  .program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  .program-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:32px 28px;display:flex;flex-direction:column;transition:border-color .15s;cursor:pointer;text-align:left;}
  .program-card:hover{border-color:var(--brass);}
  .program-card .tag{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--brass);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:18px;}
  .program-card h3{font-size:21px;color:var(--navy);margin-bottom:12px;}
  .program-card p{font-size:14.5px;color:var(--ink-soft);line-height:1.6;margin-bottom:22px;flex:1;}
  .program-card .link{font-size:13.5px;font-weight:600;color:var(--navy);display:flex;align-items:center;gap:6px;}
  .program-card .link svg{width:13px;height:13px;stroke:var(--brass);}

  /* PROCESS */
  .process-list{display:flex;flex-direction:column;}
  .process-item{display:grid;grid-template-columns:64px 1fr;gap:24px;padding:28px 0;border-top:1px solid var(--line);position:relative;}
  .process-item:last-child{border-bottom:1px solid var(--line);}
  .process-num{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--brass);font-weight:600;}
  .process-item h4{font-size:18px;color:var(--navy);margin-bottom:6px;}
  .process-item p{font-size:14.5px;color:var(--ink-soft);max-width:520px;}
  .process-item .days{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--slate);white-space:nowrap;}
  .process-item-inner{display:flex;justify-content:space-between;gap:20px;flex:1;}

  /* TRUST BAND */
  .trust{background:var(--navy);color:var(--paper);padding:56px 0;}
  .trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;align-items:start;}
  .trust-grid .item{border-left:2px solid var(--brass);padding-left:16px;}
  .trust-grid .item .num{font-family:'IBM Plex Mono',monospace;font-size:26px;color:var(--brass-light);margin-bottom:6px;}
  .trust-grid .item .label{font-size:13px;color:#B7BECC;line-height:1.5;}

  /* GENERIC INTERIOR CONTENT */
  .content-grid{display:grid;grid-template-columns:1.2fr 0.8fr;gap:48px;}
  .content-grid h2{font-size:26px;color:var(--navy);margin-bottom:14px;}
  .content-grid p{font-size:15px;color:var(--ink-soft);line-height:1.75;margin-bottom:18px;}
  .content-grid ul{margin:0 0 22px 0;list-style:none;}
  .content-grid li{display:flex;gap:10px;font-size:14.5px;color:var(--ink);padding:10px 0;border-bottom:1px solid var(--line);}
  .content-grid li svg{width:16px;height:16px;stroke:var(--forest);flex-shrink:0;margin-top:2px;}
  .side-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:26px;height:fit-content;}
  .side-card h4{font-size:16px;color:var(--navy);margin-bottom:14px;}
  .side-card .stat{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
  .side-card .stat:last-child{border-bottom:none;}
  .side-card .stat .v{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--navy);}

  /* FUNDING CTA */
  /* FUNDING CTA */
  .funding-banner-wrap{background:var(--paper-dim);padding:58px 0 72px;}
  .funding-banner{min-height:196px;background-color:#15254f;background-image:radial-gradient(circle at 88% 35%,rgba(74,112,205,.42) 0,rgba(74,112,205,.18) 18%,transparent 40%),radial-gradient(circle at 105% 85%,rgba(78,116,210,.28) 0,transparent 42%),linear-gradient(115deg,rgba(11,28,68,.78),rgba(34,63,125,.62)),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0,rgba(255,255,255,.035) 1px,transparent 1px,transparent 30px),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0,rgba(255,255,255,.035) 1px,transparent 1px,transparent 30px);border-radius:14px;padding:44px 48px;display:flex;align-items:center;justify-content:space-between;gap:48px;position:relative;overflow:hidden;box-shadow:0 18px 38px rgba(20,33,61,.12);}
  .funding-banner-copy{max-width:780px;position:relative;z-index:2;}
  .funding-banner .eyebrow{margin-bottom:10px;color:var(--brass-light);}
  .funding-banner h2{font-size:30px;color:var(--paper);margin-bottom:10px;}
  .funding-banner p{font-size:14px;color:#C6CBD7;line-height:1.7;max-width:700px;}
  .funding-banner .btn{flex-shrink:0;padding:13px 24px;position:relative;z-index:2;box-shadow:0 6px 18px rgba(0,0,0,.16);}
  @media(max-width:900px){
    .funding-steps{grid-template-columns:1fr;}
    .funding-banner{padding:36px 28px;flex-direction:column;align-items:flex-start;gap:26px;}
    .funding-banner h2{font-size:26px;}
  }

  /* ABOUT page */
  .value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px;}
  .value-card{background:#fff; padding:26px;border:1px solid var(--line);border-radius:6px;}
  .value-card .n{font-family:'IBM Plex Mono',monospace;color:var(--brass);font-size:12px;margin-bottom:10px;}
  .value-card h4{font-size:17px;color:var(--navy);margin-bottom:8px;}
  .value-card p{font-size:14px;color:var(--ink-soft);line-height:1.6;}

  /* CALCULATOR */
  .calc-wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
  .calc-form label{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:6px;margin-top:18px;}
  .calc-form label:first-child{margin-top:0;}
  .calc-form input[type=range]{width:100%;}
  .calc-form input[type=number],.calc-form select{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:4px;background:var(--paper);font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--ink);}
  .calc-row-label{display:flex;justify-content:space-between;align-items:baseline;}
  .calc-row-label .val{font-family:'IBM Plex Mono',monospace;color:var(--navy);font-weight:600;font-size:14px;}
  .calc-result{background:var(--navy);color:var(--paper);border-radius:6px;padding:32px;}
  .calc-result .big{font-family:'IBM Plex Mono',monospace;font-size:40px;color:var(--brass-light);margin:6px 0 4px;}
  .calc-result .cap{font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:#9AA2B4;}
  .calc-breakdown{margin-top:24px;border-top:1px solid var(--line-dark);padding-top:20px;}
  .calc-breakdown .row{display:flex;justify-content:space-between;padding:8px 0;font-size:13.5px;color:#C6CBD7;}
  .calc-breakdown .row .v{font-family:'IBM Plex Mono',monospace;color:var(--paper);}

  /* BORROWER PORTAL */
  .borrower-grid{display:grid;grid-template-columns:1fr;gap:40px;}
  .form-section{background:#fff;border:1px solid var(--line);border-radius:6px;padding:32px;}
  .form-section h3{font-size:18px;color:var(--navy);margin-bottom:4px;}
  .form-section .hint{font-size:13px;color:var(--ink-soft);margin-bottom:22px;}
  .field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .field-grid.cols-3{grid-template-columns:1fr 1fr 1fr;}
  .field{margin-bottom:14px;}
  .field label{display:block;font-size:12.5px;color:var(--ink-soft);margin-bottom:6px;}

  .field input,.field select{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:4px;background:#f1ede333;font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);}
  .field input:focus,.field select:focus{outline:2px solid var(--brass-light);outline-offset:1px;border-color:var(--brass);background:var(--paper);}

  .doc-category{border:1px solid var(--line);border-radius:6px;padding:22px 24px;margin-bottom:16px;}
  .doc-category:last-child{margin-bottom:0;}
  .doc-cat-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;}
  .doc-cat-head h4{font-size:15.5px;color:var(--navy);margin-bottom:4px;}
  .doc-cat-head p{font-size:13px;color:var(--ink-soft);}
  .status-pill{font-family:'IBM Plex Mono',monospace;font-size:11px;padding:4px 10px;border-radius:12px;white-space:nowrap;background:var(--paper-dim);color:var(--ink-soft);border:1px solid var(--line);}
  .status-pill.done{background:#EAF3DE;color:var(--forest);border-color:var(--forest);}
  .dropzone{border:1.5px dashed var(--line);border-radius:5px;padding:22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:#f1ede333;}
  .dropzone-label{display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--ink-soft);}
  .dropzone-label svg{width:22px;height:22px;stroke:var(--brass);flex-shrink:0;}
  .file-input-wrap{position:relative;overflow:hidden;display:inline-block;}
  .file-input-wrap input[type=file]{position:absolute;left:0;top:0;opacity:0;width:100%;height:100%;cursor:pointer;}
  .btn-choose{padding:9px 18px;border:1px solid var(--navy);border-radius:3px;font-size:13px;font-weight:600;color:var(--navy);background:var(--paper);cursor:pointer;}
  .btn-choose:hover{background:var(--navy);color:var(--paper);}
  .file-list{margin-top:14px;display:flex;flex-direction:column;gap:8px;}
  .file-chip{display:flex;align-items:center;justify-content:space-between;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:9px 12px;font-size:13px;}
  .file-chip .f-name{display:flex;align-items:center;gap:8px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .file-chip .f-name svg{width:15px;height:15px;stroke:var(--slate);flex-shrink:0;}
  .file-chip .f-size{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--ink-soft);margin-left:10px;flex-shrink:0;}
  .file-chip .f-remove{background:none;border:none;color:var(--ink-soft);cursor:pointer;font-size:16px;line-height:1;padding:0 2px;flex-shrink:0;margin-left:10px;}
  .file-chip .f-remove:hover{color:#A32D2D;}
  .upload-progress{background:var(--navy);color:var(--paper);border-radius:6px;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
  .upload-progress .cap{font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:#9AA2B4;margin-bottom:6px;}
  .upload-progress .big{font-family:'IBM Plex Mono',monospace;font-size:26px;color:var(--brass-light);}
  .progress-track{flex:1;min-width:180px;height:6px;background:rgba(255,255,255,0.14);border-radius:3px;overflow:hidden;}
  .progress-fill{height:100%;background:var(--brass);border-radius:3px;transition:width .25s;}
  .consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--ink-soft);margin:20px 0;line-height:1.6;}
  .consent input{margin-top:3px;}

  /* CONTACT */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
  .contact-info h2{font-size:30px;color:var(--navy);margin-bottom:16px;}
  .contact-info p{color:var(--ink-soft);font-size:15px;margin-bottom:28px;line-height:1.65;}
  .contact-detail{display:flex;gap:12px;margin-bottom:18px;font-size:14.5px;}
  .contact-detail svg{width:17px;height:17px;stroke:var(--brass);flex-shrink:0;margin-top:2px;}
  .contact-detail .l{color:var(--ink-soft);display:block;font-size:12px;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:2px;}
  .contact-detail .v{color:var(--navy);font-weight:600;}
  .form-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:32px;}
  .form-card h3{font-size:18px;color:var(--navy);margin-bottom:20px;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
  .form-card input,.form-card select,.form-card textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:4px;background:#f1ede333;font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);margin-bottom:14px;}
  /* .field (shared with the portal's labeled-field pattern) carries its own
     margin-bottom:14px, which stacks on top of the input's own — a field
     wrapped for field-validation.js's live-error slot (name fields here,
     every field on the auth pages) ends up with double the gap below it
     compared to a bare input on the same form. The input's margin alone is
     enough; the wrapper doesn't need its own on a .form-card. */
  .form-card .field{margin-bottom:0;}
  .form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:2px solid var(--brass-light);outline-offset:1px;border-color:var(--brass);}
  .form-card input.invalid,.form-card select.invalid,.form-card textarea.invalid{border-color:#B3261E;background:#FBEAEA;}
  .form-card textarea{min-height:90px;resize:vertical;}
  .form-card .btn-brass{width:100%;text-align:center;padding:13px;font-size:14.5px;border:none;}
  .form-fine{font-size:11.5px;color:var(--ink-soft);margin-top:12px;line-height:1.5;}
  .form-note{display:none;background:var(--bg-success,#EAF3DE);color:var(--forest);border:1px solid var(--forest);border-radius:4px;padding:12px 14px;font-size:13.5px;margin-bottom:14px;}
  .form-note.show{display:block;}

  /* FOOTER */
  footer{background:var(--navy);color:#AEB4C2;padding:56px 0 0;}
  /* Auth pages (login, signup, password reset, ...) skip the full marketing
     header/footer entirely — just a small way back above the card, and a
     one-line NMLS disclosure below it. Neither inherits footer{}'s navy
     background; both sit on the page's own light ground. */
  .auth-back-row{padding:28px 20px 0;}
  .auth-back-row-inner{max-width:460px;margin:0 auto;}
  .auth-home-link{font-size:13px;color:var(--ink-soft);white-space:nowrap;}
  .auth-home-link:hover{color:var(--navy);}
  .auth-footer{background:none;color:var(--ink-soft);padding:24px 0 32px;}
  .auth-footer-bar{text-align:center;font-size:12px;}
  .footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid var(--line-dark);}
  .footer-brand .brand{margin-bottom:14px;}
  .footer-top p{font-size:13.5px;line-height:1.7;max-width:320px;}
  .footer-col h5{font-size:12px;color:var(--paper);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:16px;}
  .footer-col ul{list-style:none;}
  .footer-col li{margin-bottom:10px;font-size:13.5px;}
  .footer-col a{cursor:pointer;}
  .footer-col a:hover{color:var(--brass-light);}
  .compliance{padding-top:36px;padding-bottom:36px;border-bottom:1px solid var(--line-dark);}
  .compliance h6{font-size:12px;color:var(--brass-light);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:12px;}
  .compliance p{font-size:11.5px;line-height:1.75;color:#8A91A3;}
  .footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:22px;padding-bottom:22px;font-size:12.5px;color:#7C8298;flex-wrap:wrap;gap:12px;}

  @media (max-width:900px){
    /* Log In / Get started / Dashboard / Log Out live inside #mobileNav's
       own drawer too — leaving the .btn pair showing here as well crammed
       three controls (both buttons plus the hamburger) into one row. */
    nav,.nav-cta .phone-pill,.nav-cta .btn{display:none;}
    .menu-toggle{display:block;}
    .hero-grid{grid-template-columns:1fr;}
    .hero h1{font-size:34px;}
    .program-grid{grid-template-columns:1fr;}
    .trust-grid{grid-template-columns:repeat(2,1fr);gap:28px;}
    .contact-grid{grid-template-columns:1fr;}
    .footer-top{grid-template-columns:1fr;gap:28px;}
    .form-row{grid-template-columns:1fr;}
    .process-item{grid-template-columns:40px 1fr;}
    .process-item-inner{flex-direction:column;gap:4px;}
    .content-grid{grid-template-columns:1fr;}
    .value-grid{grid-template-columns:1fr;}
    .calc-wrap{grid-template-columns:1fr;}
  }

/* ===== PHOTO HERO BANNER ===== */
.hero{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(90deg,
      rgba(5,24,52,.94) 0%,
      rgba(5,24,52,.84) 32%,
      rgba(5,24,52,.58) 55%,
      rgba(5,24,52,.20) 78%,
      rgba(5,24,52,.08) 100%),
    url("https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?auto=format&fit=crop&w=2400&q=90")
    center center / cover no-repeat;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(3,20,43,.10),rgba(3,20,43,.28));
}
.hero > .wrap,
.hero-grid{
  position:relative;
  z-index:2;
}
.hero h1,
.hero p,
.hero .eyebrow{
  text-shadow:0 2px 12px rgba(0,0,0,.18);
}
@media(max-width:900px){
  .hero{
    background:
      linear-gradient(90deg,rgba(5,24,52,.91),rgba(5,24,52,.70)),
      url("https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?auto=format&fit=crop&w=1600&q=88")
      center center / cover no-repeat;
  }
}

/* ===== SPACIOUS HERO BANNER ===== */
.hero{
  min-height:560px;
  padding:118px 0 132px;
}
.hero-grid.single{
  max-width:920px;
}
.hero-grid.single > div{
  max-width:820px;
}
.hero h1{
  font-size:52px;
  line-height:1.08;
  margin-bottom:24px;
}
.hero p.lead{
  max-width:720px;
  font-size:17px;
  line-height:1.8;
  margin-bottom:30px;
}
.hero-actions{
  margin-top:6px;
  gap:16px;
}
@media(max-width:900px){
  .hero{min-height:500px;padding:92px 0 105px;}
  .hero h1{font-size:42px;}
}

/* ===== ADDITIONAL RESPONSIVE FIXES ===== */
@media (max-width:900px){
  .navbar{padding:16px 20px;}
  .wrap{padding:0 20px;}
  .field-grid{grid-template-columns:1fr;}
  .field-grid.cols-3{grid-template-columns:1fr;}
  .doc-cat-head{flex-direction:column;align-items:flex-start;}
  .dropzone{flex-direction:column;align-items:flex-start;}
  .upload-progress{flex-direction:column;align-items:flex-start;}
  .trust-grid{grid-template-columns:1fr;}
  .doc-card{margin-top:8px;}
}

@media (max-width:600px){
  .wrap{padding:0 16px;}
  .navbar{padding:14px 16px;}
  .brand .name{font-size:16px;}
  section{padding:56px 0;}
  section.tight{padding:44px 0;}
  .hero{padding:52px 0 64px;}
  .hero h1{font-size:26px;}
  .hero p.lead{font-size:15px;}
  .hero-actions{flex-direction:column;align-items:stretch;}
  .hero-actions .btn{text-align:center;}
  .hero-stats{flex-direction:column;gap:14px;}
  .page-hero{padding:40px 0;}
  .page-hero h1{font-size:26px;}
  .section-head h2{font-size:24px;}
  .doc-body{padding:20px 16px 16px;}
  .doc-head{padding:14px 16px;}
  .doc-row{flex-direction:column;align-items:flex-start;gap:4px;}
  .program-card{padding:24px 20px;}
  .process-item{grid-template-columns:1fr;gap:6px;}
  .process-num{margin-bottom:2px;}
  .process-item-inner{flex-direction:column;gap:4px;}
  .process-item .days{margin-left:0;}
  .calc-result .big{font-size:30px;}
  .form-section, .form-card, .side-card{padding:20px;}
  .value-card{padding:20px;}
  .footer-bottom{flex-direction:column;align-items:flex-start;}
  .contact-detail{flex-wrap:wrap;}
  .file-chip{flex-wrap:wrap;}
}

/* ===== CLIENT REVISION STYLES ===== */
.hero-grid.single{grid-template-columns:1fr;max-width:900px;}
.program-grid-page{padding-top:8px;padding-bottom:8px;}
.team-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:start;}
.team-content{background:#fff;border:1px solid var(--line);border-radius:6px;padding:34px;}
.team-content h2{font-size:30px;color:var(--navy);margin-bottom:18px;}
.team-content h3{font-size:20px;color:var(--navy);margin:30px 0 12px;}
.team-content p{font-size:15px;color:var(--ink-soft);line-height:1.75;margin-bottom:16px;}
.team-content ul{list-style:none;margin:0 0 12px;}
.team-content li{position:relative;padding:8px 0 8px 22px;font-size:14px;color:var(--ink);line-height:1.6;border-bottom:1px solid var(--line);}
.team-content li:before{content:"✓";position:absolute;left:0;top:8px;color:var(--brass);font-weight:700;}
.team-content .btn{margin-top:20px;}
.team-aside{position:sticky;top:100px;}
.about-copy{max-width:1000px;}
.about-copy h2{font-size:30px;color:var(--navy);margin:0 0 14px;}
.about-copy h2:not(:first-child){margin-top:44px;}
.about-copy h3{font-size:20px;color:var(--navy);margin:28px 0 16px;}
.about-copy>p{font-size:15px;color:var(--ink-soft);line-height:1.8;margin-bottom:18px;}
.about-program-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px;margin:18px 0 10px;}
.about-program-list span{padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:4px;color:var(--navy);font-size:13.5px;font-weight:600;}
.about-note{font-size:12.5px !important;color:#7b818b !important;}
.about-values{grid-template-columns:repeat(2,1fr);margin-top:18px;}
.commitment-box{margin-top:48px;padding:34px;background:var(--navy);color:var(--paper);border-radius:6px;}
.commitment-box h2{color:var(--paper);margin-top:0 !important;}
.commitment-box p{color:#C6CBD7;}
.about-cta{margin-top:48px;padding:34px;border:1px solid var(--line);background:#fff;border-radius:6px;}
.about-cta h2{margin-top:0 !important;}
.footer-contact{font-size:12.5px;line-height:1.8;color:#9AA2B4;margin-top:14px;}
.compliance p a{color:#C9A354;}
@media(max-width:900px){.team-layout{grid-template-columns:1fr;}.team-aside{position:static;}.about-program-list,.about-values{grid-template-columns:1fr;}}

/* Loan program card imagery */
.program-card{
  overflow:hidden;
  padding:0 !important;
  background:#fff;
}
.program-card .program-image{
  width:100%;
  height:178px;
  overflow:hidden;
  background:#e9edf2;
  position:relative;
}
.program-card .program-image:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom,rgba(8,24,53,.03),rgba(8,24,53,.18));
  pointer-events:none;
}
.program-card .program-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.program-card > .tag,
.program-card > h3,
.program-card > p,
.program-card > .link{
  margin-left:28px;
  margin-right:28px;
}
.program-card > .tag{
  margin-top:24px;
}
.program-card > .link{
  margin-bottom:28px;
}
@media(max-width:900px){
  .program-grid{grid-template-columns:1fr;}
  .program-card .program-image{height:220px;}
}

/* Redesigned Loan Programs page */
/* .programs-hero{padding-bottom:104px;} */
.programs-showcase{background:var(--paper-dim);padding:88px 0 96px;}
.programs-intro{display:grid;grid-template-columns:1fr .72fr;gap:64px;align-items:end;margin-bottom:46px;}
.programs-intro h2{font-size:34px;line-height:1.18;color:var(--navy);margin-top:10px;}
.programs-intro p{font-size:15px;line-height:1.8;color:var(--ink-soft);margin:0;}
.program-showcase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch;}
.program-feature{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:border-color .18s,box-shadow .18s;box-shadow:0 4px 16px rgba(8,24,53,.035);}
.program-feature:hover{border-color:var(--brass);box-shadow:0 10px 28px rgba(8,24,53,.08);}
.program-feature-image{height:220px;position:relative;overflow:hidden;background:#e9edf2;}
.program-feature-image img{width:100%;height:100%;display:block;object-fit:cover;}
.program-feature-image:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,24,53,.48),rgba(8,24,53,0) 58%);pointer-events:none;}
.program-feature-number{position:absolute;left:20px;bottom:16px;z-index:1;font-family:'IBM Plex Mono',monospace;font-size:13px;color:#fff;letter-spacing:.08em;}
.program-feature-body{padding:30px 28px 28px;display:flex;flex-direction:column;flex:1;}
.program-feature-body .tag{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--brass);letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px;}
.program-feature-body h3{font-size:23px;line-height:1.2;color:var(--navy);margin-bottom:14px;}
.program-feature-body p{font-size:14.5px;line-height:1.72;color:var(--ink-soft);margin-bottom:22px;}
.program-fit{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px;}
.program-fit strong{width:100%;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);margin-bottom:2px;}
.program-fit span{font-size:11.5px;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:6px 9px;background:var(--paper);} 
.program-feature-link{margin-top:24px;border:0;background:none;padding:0;text-align:left;font:600 13.5px inherit;color:var(--navy);display:flex;align-items:center;gap:7px;cursor:pointer;}
.program-feature-link svg{width:14px;height:14px;stroke:var(--brass);}
.programs-disclaimer{margin-top:30px;font-size:12px;line-height:1.65;color:#7b818b;max-width:900px;}
@media(max-width:900px){.programs-intro{grid-template-columns:1fr;gap:18px;}.program-showcase-grid{grid-template-columns:1fr;}.program-feature-image{height:240px;}}

/* STACKED LOAN PROGRAMS - IMAGE + TEXT ONLY */
.stacked-programs{background:#FAF8F3;padding:38px 0 76px}
.stacked-program-card{
  display:grid;
  grid-template-columns:42% 58%;
  min-height:330px;
  background:#fff;
  border:1px solid #dbe2ec;
  border-radius:18px;
  overflow:hidden;
  margin-bottom:24px;
  box-shadow:0 2px 10px rgba(20,33,61,.025);
  transition:border-color .18s ease,box-shadow .18s ease;
}
.stacked-program-card:nth-child(even){grid-template-columns:58% 42%}
.stacked-program-card:hover{border-color:#c7d2e2;box-shadow:0 8px 24px rgba(20,33,61,.07)}
.stacked-program-card:nth-child(even) .stacked-program-image{order:2}
.stacked-program-card:nth-child(even) .stacked-program-main{order:1}
.stacked-program-image{min-height:330px;overflow:hidden;background:#e9edf3}
.stacked-program-image img{width:100%;height:100%;display:block;object-fit:cover}
.stacked-program-main{
  padding:52px 50px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
}
.stacked-program-tag{
  margin-bottom:13px;
  color:#4f6fe6;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.stacked-program-main h2{
  color:#102956;
  font-family:'Source Serif 4',serif;
  font-size:32px;
  font-weight:500;
  line-height:1.14;
  margin:0 0 17px;
}
.stacked-program-main p{
  color:#5b6169;
  font-size:15px;
  line-height:1.75;
  max-width:620px;
  margin:0;
}
/* The reference design is intentionally image + text only. */
.stacked-program-benefits,
.stacked-program-action,
.program-chips{display:none!important}
/* No card/image shrinking or zoom animation. */
#page-programs .stacked-program-card,
#page-programs .stacked-program-image img{transform:none!important}
#page-programs .stacked-program-card:hover .stacked-program-image img{transform:none!important}
.programs-bottom-cta{margin-top:30px;min-height:130px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:30px 38px;background:var(--navy);border-radius:16px;color:var(--paper)}
.programs-bottom-cta>div:first-child{min-width:0}
.cta-eyebrow{margin-bottom:5px;color:var(--brass-light);font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.programs-bottom-cta h2{margin:0 0 5px;color:var(--paper);font-family:'Source Serif 4',serif;font-size:27px;font-weight:500;line-height:1.15}
.programs-bottom-cta p{margin:0;color:#c6cbd7;font-size:12px;line-height:1.5}
.stacked-cta-btn{flex-shrink:0;min-width:112px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 14px;background:var(--brass);border:1px solid var(--brass);border-radius:4px;color:#fff;font-size:10px;font-weight:600;cursor:pointer}
.stacked-cta-btn svg{width:13px;height:13px}
@media(max-width:900px){
  .stacked-program-card,.stacked-program-card:nth-child(even){grid-template-columns:1fr;min-height:0}
  .stacked-program-card:nth-child(even) .stacked-program-image,.stacked-program-card:nth-child(even) .stacked-program-main{order:initial}
  .stacked-program-image{height:300px;min-height:300px}
  .stacked-program-main{padding:36px 34px}
  .stacked-program-main h2{font-size:28px}
  .programs-bottom-cta{flex-direction:column;align-items:flex-start}
}
@media(max-width:600px){
  .stacked-programs{padding:24px 0 54px}
  .stacked-program-card{border-radius:14px;margin-bottom:18px}
  .stacked-program-image{height:240px;min-height:240px}
  .stacked-program-main{padding:28px 24px}
  .stacked-program-tag{font-size:10px}
  .stacked-program-main h2{font-size:25px}
  .stacked-program-main p{font-size:14px;line-height:1.65}
  .programs-bottom-cta{padding:25px 22px;border-radius:14px}
  .stacked-cta-btn{width:100%}
}

  /* SHARED CTA ON EVERY PAGE EXCEPT CONTACT */
  .shared-funding-banner{padding:58px 0 72px;}
  .shared-funding-banner .funding-banner{min-height:220px;padding:48px 48px;}
  .shared-funding-banner .funding-banner-copy{max-width:780px;}
  .shared-funding-banner .funding-banner h2{font-size:30px;}
  @media(max-width:900px){.shared-funding-banner .funding-banner{min-height:0;padding:38px 28px;}}

/* ===== EMC MORTGAGE CALCULATOR ===== */
.emc-mc-section{background:#f8f8f7;padding:46px 0 82px}
.emc-mc-shell{max-width:1100px;margin:0 auto;background:#fff;border:1px solid #e2e2df;border-radius:7px;box-shadow:0 8px 28px rgba(20,33,61,.08);padding:28px 30px 34px}
.emc-mc-brand{text-align:center;color:#285a7d;font-family:'Inter',sans-serif;font-weight:700;font-size:28px;letter-spacing:-.055em;margin-bottom:28px}
.emc-mc-brand span{font-size:25px;margin:0 3px;color:#223d57}
.emc-mc-main{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:36px;align-items:start}
.emc-mc-inputs{padding:4px 0 0}
.emc-mc-field{margin-bottom:13px}
.emc-mc-field label{display:block;color:#23415d;font-size:11px;margin-bottom:5px;font-weight:500}
.emc-mc-money-input,.emc-mc-rate-input,.emc-mc-suffix-input,.emc-mc-inline-input{display:flex;height:27px;border:1px solid #cbd3da;background:#fff;border-radius:2px;overflow:hidden}
.emc-mc-money-input span,.emc-mc-rate-input span,.emc-mc-suffix-input span,.emc-mc-inline-input span{display:flex;align-items:center;justify-content:center;padding:0 8px;background:#eef1f3;color:#51606d;font-size:10px;white-space:nowrap}
.emc-mc-money-input input,.emc-mc-rate-input input,.emc-mc-suffix-input input,.emc-mc-inline-input input{width:100%;border:0;outline:0;padding:4px 8px;background:#fff;color:#273b4d;font:500 11px 'IBM Plex Mono',monospace;min-width:0}
.emc-mc-dual-input{display:grid;grid-template-columns:1fr 84px 24px;gap:0}
.emc-mc-dual-input .emc-mc-money-input{border-radius:2px 0 0 2px}
.emc-mc-dual-input>input{border:1px solid #cbd3da;border-left:0;width:100%;min-width:0;padding:4px 7px;font:500 11px 'IBM Plex Mono',monospace;color:#273b4d;outline:0}
.emc-mc-dual-input .emc-mc-suffix{border:1px solid #cbd3da;border-left:0;border-radius:0 2px 2px 0}
.emc-mc-rate-input input{font-size:11px}
.emc-mc-inline-input input{max-width:100px}
.emc-mc-range{width:100%;height:11px;display:block;margin-top:3px;accent-color:#5eafe0}
.emc-mc-range::-webkit-slider-runnable-track{height:2px;background:#d5dce1}
.emc-mc-range::-webkit-slider-thumb{appearance:none;width:9px;height:9px;border-radius:50%;background:#fff;border:1px solid #61b7eb;margin-top:-3px}
.emc-mc-date-row{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.emc-mc-date-row select{height:27px;border:1px solid #cbd3da;background:#fff;border-radius:2px;padding:3px 6px;font:500 11px 'Inter',sans-serif;color:#273b4d}
.emc-mc-result-card{background:#fff;border:1px solid #e0e0dd;border-radius:5px;box-shadow:0 3px 10px rgba(0,0,0,.05);overflow:hidden}
.emc-mc-result-top{background:#f5f5f4;padding:15px 15px 13px}
.emc-mc-payment{font:600 20px 'IBM Plex Mono',monospace;color:#162c42;margin-bottom:2px}
.emc-mc-result-note{font-size:9px;color:#a1a5a8}
.emc-mc-mini-grid{padding:11px 14px;display:grid;gap:5px}
.emc-mc-mini-grid>div{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#46525d}
.emc-mc-mini-grid strong{font:500 9px 'IBM Plex Mono',monospace;color:#24394c;text-align:right}
.emc-mc-divider{height:1px;background:#e6e6e3;margin:0 14px}
.emc-mc-breakdown-title{font-size:10px;font-weight:700;color:#263b4e;margin-bottom:9px}
.emc-mc-result-card .emc-mc-breakdown-title{padding:11px 14px 0}
.emc-mc-donut-wrap{display:flex;align-items:center;justify-content:center;gap:17px;padding:2px 13px 8px}
.emc-mc-donut{width:82px;height:82px;border-radius:50%;position:relative;background:conic-gradient(#0c3d65 0 40%,#2e7bb2 40% 70%,#91b7d0 70% 80%,#6e8da5 80% 89%,#d2d7dc 89% 100%)}
.emc-mc-donut:after{content:"";position:absolute;inset:22px;background:#fff;border-radius:50%}
.emc-mc-donut-legend{display:flex;flex-direction:column;gap:4px;font-size:8.5px;color:#46525d}
.emc-mc-donut-legend span{display:flex;align-items:center;gap:5px}
.emc-mc-donut-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}
.emc-mc-donut-legend i.principal{background:#0c3d65}.emc-mc-donut-legend i.interest{background:#2e7bb2}.emc-mc-donut-legend i.tax{background:#91b7d0}.emc-mc-donut-legend i.insurance{background:#6e8da5}.emc-mc-donut-legend i.down{background:#d2d7dc}
.emc-mc-outline-btn{display:block;margin:2px 13px 13px auto;padding:5px 9px;border:1px solid #4c91ff;background:#fff;color:#2775df;border-radius:2px;font-size:9px;cursor:pointer}
.emc-mc-outline-btn:hover{background:#f0f6ff}
.emc-mc-bottom-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:22px;margin-top:17px}
.emc-mc-panel{border:1px solid #e1e1de;border-radius:5px;background:#fff;box-shadow:0 3px 10px rgba(0,0,0,.035);overflow:hidden}
.emc-mc-panel-title{background:#f6f6f5;border-bottom:1px solid #e6e6e2;padding:10px 13px;font-size:10px;color:#25394c;font-weight:600}
.emc-mc-panel-icon{font-size:18px;vertical-align:-3px;margin-right:7px;color:#1d1d1d}
.emc-mc-details-grid{padding:11px 13px 5px;display:grid;grid-template-columns:1fr 1fr;column-gap:22px;row-gap:5px}
.emc-mc-details-grid>div{display:flex;justify-content:space-between;gap:8px;font-size:8.5px;color:#46525d}
.emc-mc-details-grid strong{font:500 8.5px 'IBM Plex Mono',monospace;color:#263a4d;text-align:right}
.emc-mc-detail-total{display:flex;justify-content:space-between;padding:7px 13px;border-top:1px solid #ededeb;font-size:8.5px;color:#46525d}
.emc-mc-detail-total strong{font:500 8.5px 'IBM Plex Mono',monospace;color:#263a4d}
.emc-mc-bi-grid{display:grid;grid-template-columns:1fr 1fr;padding:13px;gap:12px 22px}
.emc-mc-bi-grid>div{display:flex;flex-direction:column;gap:2px}
.emc-mc-bi-grid strong{font:600 12px 'IBM Plex Mono',monospace;color:#162d44}
.emc-mc-bi-grid span{font-size:8px;color:#67717a}
.emc-mc-savings{text-align:right;padding:0 13px 13px;font-size:9px;color:#263a4d}.emc-mc-savings strong{font-family:'IBM Plex Mono',monospace}
.emc-mc-amortization{margin-top:18px;border:1px solid #e1e1de;border-radius:5px;overflow:hidden;background:#fff}
.emc-mc-amortization[hidden]{display:none}
.emc-mc-amortization-head{display:flex;justify-content:space-between;align-items:center;padding:14px;background:#f6f6f5;border-bottom:1px solid #e1e1de}
.emc-mc-amortization-head p{font-size:9px;color:#77818a;margin-top:3px}
.emc-mc-close-btn{border:1px solid #9aa8b4;background:#fff;border-radius:3px;padding:5px 10px;font-size:9px;cursor:pointer}
.emc-mc-table-scroll{max-height:420px;overflow:auto}
.emc-mc-amortization table{width:100%;border-collapse:collapse;font-size:9px}.emc-mc-amortization th,.emc-mc-amortization td{padding:8px 12px;border-bottom:1px solid #ededeb;text-align:right}.emc-mc-amortization th:first-child,.emc-mc-amortization td:first-child{text-align:left}.emc-mc-amortization th{background:#fff;color:#4d5963;position:sticky;top:0}.emc-mc-amortization td{font-family:'IBM Plex Mono',monospace;color:#2a4054}
@media(max-width:900px){.emc-mc-main{grid-template-columns:1fr}.emc-mc-bottom-grid{grid-template-columns:1fr}.emc-mc-shell{max-width:720px}}
@media(max-width:600px){.emc-mc-section{padding:28px 0 54px}.emc-mc-shell{padding:20px 14px 24px}.emc-mc-brand{font-size:24px;margin-bottom:22px}.emc-mc-details-grid{grid-template-columns:1fr}.emc-mc-donut-wrap{justify-content:flex-start}.emc-mc-bi-grid{gap:14px}.emc-mc-date-row{grid-template-columns:1fr}.emc-mc-main{gap:18px}}
<style>
/* Subtle geometric finance-tech arc treatment for the shared CTA */
.funding-banner::before{content:"";position:absolute;width:560px;height:560px;border:1px solid rgba(126,158,235,.18);border-radius:50%;right:-170px;top:-285px;pointer-events:none;}
.funding-banner::after{content:"";position:absolute;width:760px;height:760px;border:1px solid rgba(126,158,235,.08);border-radius:50%;right:-280px;top:-390px;pointer-events:none;}

/* ===== EXTRACTED STYLE BLOCK 2 ===== */
.home-programs-redesign{
  background:#FAF8F3;
  padding:88px 0 92px;
}

.home-programs-head{
  width:100%;
  margin-bottom:42px;
}

.home-programs-head h2{
  color:var(--navy);
  font-size:42px;
  line-height:1.08;
  margin:0;
  max-width:none;
  letter-spacing:-0.02em;
}

.home-programs-rule{
  width:46px;
  height:1px;
  background:var(--brass);
  margin:18px 0 14px;
}

.home-programs-head p{
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.7;
  max-width:720px;
  margin:0;
}

.home-program-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.home-program-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  border-radius:9px;
  cursor:pointer;
  text-align:left;
  padding:0;
  color:inherit;
  box-shadow:0 2px 10px rgba(20,33,61,.035);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}

.home-program-card:hover{
  transform:translateY(-5px);
  border-color:rgba(169,129,47,.55);
  box-shadow:0 16px 34px rgba(20,33,61,.10);
}

.home-program-image{
  height:190px;
  overflow:hidden;
  background:#e9edf2;
}

.home-program-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}

.home-program-card:hover .home-program-image img{
  transform:scale(1.035);
}

.home-program-body{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:23px 24px 25px;
}

.home-program-title-row{
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:17px;
}

.home-program-icon{
  flex:0 0 48px;
  width:48px;
  height:48px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--navy);
  color:var(--brass-light);
  box-shadow:0 3px 8px rgba(20,33,61,.14);
}

.home-program-icon svg{
  width:24px;
  height:24px;
}

.home-program-tag{
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  color:var(--brass);
  font-weight:600;
  letter-spacing:.09em;
  text-transform:uppercase;
  margin-bottom:5px;
}

.home-program-body h3{
  color:var(--navy);
  font-size:22px;
  line-height:1.18;
  margin:0;
}

.home-program-body p{
  color:var(--ink-soft);
  font-size:14px;
  line-height:1.65;
  margin:0 0 23px;
  flex:1;
}

.home-program-link{
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--navy);
  font-size:13.5px;
  font-weight:600;
}

.home-program-link svg{
  width:14px;
  height:14px;
  stroke:var(--brass);
  transition:transform .2s ease;
}

.home-program-card:hover .home-program-link svg{
  transform:translateX(3px);
}

@media(max-width:900px){
  .home-programs-redesign{padding:68px 0 72px;}
  .home-programs-head h2{font-size:35px;}
  .home-program-grid{grid-template-columns:1fr;gap:20px;}
  .home-program-image{height:220px;}
}

@media (max-width:600px){
  .hero{min-height:0;padding:76px 0 88px;}
  .hero h1{font-size:32px;line-height:1.12;margin-bottom:20px;}
  .hero p.lead{font-size:15.5px;line-height:1.75;margin-bottom:26px;}
}

@media(max-width:560px){
  .home-programs-head h2{font-size:31px;}
  .home-program-body{padding:20px;}
}

/* ===== EXTRACTED STYLE BLOCK 3 ===== */
/* Larger, more breathable homepage hero */
#page-home .hero{
  min-height:650px;
  padding:150px 0 170px;
  background-position:center center;
}

#page-home .hero-grid.single{
  max-width:1140px;
}

#page-home .hero-grid.single > div{
  max-width:900px;
}

#page-home .hero h1{
  font-size:62px;
  line-height:1.06;
  margin-bottom:28px;
  max-width:850px;
}

#page-home .hero p.lead{
  max-width:760px;
  font-size:19px;
  line-height:1.82;
  margin-bottom:38px;
}

#page-home .hero-actions{
  gap:18px;
  margin-top:8px;
}

#page-home .hero-actions .btn{
  padding:16px 31px;
  font-size:15px;
  min-height:52px;
}

#page-home .hero-actions .btn-brass{
  box-shadow:0 7px 20px rgba(0,0,0,.16);
}

.nav-cta .btn{
  padding:14px 28px;
  font-size:15px;
  min-height:48px;
}

#page-home .funding-banner .btn,
#page-home .shared-funding-banner .btn{
  padding:15px 29px;
  font-size:15px;
  min-height:50px;
}

@media(max-width:900px){
  #page-home .hero{
    min-height:570px;
    padding:112px 0 125px;
    background-position:center center;
  }

  #page-home .hero h1{
    font-size:48px;
    max-width:700px;
  }

  #page-home .hero p.lead{
    font-size:17px;
    line-height:1.75;
    margin-bottom:32px;
  }
}

@media(max-width:600px){
  #page-home .hero{
    min-height:0;
    padding:86px 0 96px;
  }

  #page-home .hero h1{
    font-size:36px;
    line-height:1.1;
  }

  #page-home .hero p.lead{
    font-size:16px;
    line-height:1.7;
  }

  #page-home .hero-actions{
    gap:12px;
  }

  #page-home .hero-actions .btn{
    width:100%;
    min-height:54px;
    padding:16px 22px;
  }
}

/* AUTH (Login / Signup) */
/* .auth-main must itself be a flex column for .auth-shell's flex:1 below to
   have anything to grow against — the bare `main{flex:1 0 auto}` rule above
   only sizes <main> within body, it doesn't make <main> a flex container for
   its own children. Scoped to this class rather than every <main>, so it
   doesn't change how the marketing pages' <main> sections stack/margin. */
.auth-main{display:flex;flex-direction:column;}
/* flex:1 (not a fixed min-height) so it fills whatever space main actually
   has between the header and the now-pinned footer, keeping the card
   centered in the true visible area rather than a fixed 60vh slice of it. */
.auth-shell{flex:1;display:flex;align-items:center;justify-content:center;padding:56px 20px;}
.auth-card{width:100%;max-width:460px;}
.auth-card h3{font-size:22px;color:var(--navy);margin-bottom:6px;}
.auth-sub{font-size:13.5px;color:var(--ink-soft);margin-bottom:22px;line-height:1.5;}
.auth-hint{background:var(--paper-dim);border-radius:6px;padding:12px 14px;font-size:12px;color:var(--ink-soft);line-height:1.6;margin-bottom:20px;}
.auth-hint strong{color:var(--navy);}
.field-error{color:#B3261E;font-size:12px;margin:-10px 0 12px;}
/* Live errors from field-validation.js are injected directly after the input,
   inside .field — so they need their own spacing rather than the negative
   top margin used by server-rendered errors that sit after the whole block. */
.field .field-error[data-live-error]{margin:5px 0 0;}
.field input.invalid,.field select.invalid{border-color:#B3261E;background:#FBEAEA;}
.field input.invalid:focus{outline-color:#B3261E;border-color:#B3261E;}
.terms-row{display:flex;align-items:flex-start;gap:10px;margin:6px 0 18px;font-size:12.5px;color:var(--ink-soft);line-height:1.5;}
/* Custom box rather than the browser default, matching the portal's
   .checkbox-row. The old rule nudged a native checkbox down by a hardcoded 3px,
   which only lined up at one font size. */
.terms-row input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;
  box-sizing:border-box;
  width:17px;height:17px;flex-shrink:0;
  margin:0;padding:0;
  /* Centres the box on the first line of label text at any size. */
  margin-top:calc((1.5em - 17px) / 2);
  border:1.5px solid var(--line);border-radius:4px;
  background:#fff;cursor:pointer;position:relative;
  transition:border-color .15s ease,background-color .15s ease;
}
.terms-row input[type="checkbox"]:hover{border-color:var(--brass);}
.terms-row input[type="checkbox"]:focus-visible{outline:2px solid var(--brass-light);outline-offset:2px;}
.terms-row input[type="checkbox"]:checked{background:var(--navy);border-color:var(--navy);}
.terms-row input[type="checkbox"]:checked::after{
  content:"";position:absolute;left:5px;top:1.5px;
  width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);
}
.terms-row label{cursor:pointer;}

/* The lock overlays the input's right padding rather than sitting beside it,
   so the input keeps the full width of every other field.
   Two details make this exact:
   - display:block on the input. An <input> is inline-block by default, which
     leaves the wrapper taller than the input by the baseline's descender gap —
     that gap is why the icon sat low against a plain wrapper.
   - the button is absolutely positioned, so it is out of flow and can never
     contribute to the field's height. */
.password-row{position:relative;}
.password-row input{display:block;width:100%;padding-right:42px;}
/* Edge/Chromium draw their own reveal-password eye inside the field, which
   would sit next to ours and do the same job. Hide it so there's one control. */
.password-row input::-ms-reveal,
.password-row input::-ms-clear{display:none;width:0;height:0;}
.password-lock{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;width:42px;padding:0;border:none;background:none;color:var(--ink-soft);cursor:pointer;transition:color .15s;}
.password-lock:hover{color:var(--navy);}
.password-lock:focus-visible{outline:2px solid var(--brass-light);outline-offset:-2px;border-radius:4px;}
.password-lock.is-revealed{color:var(--brass);}
.password-lock svg{display:block;width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;}
.terms-row a{font-weight:600;color:var(--brass);}
/* Remember-me on the left, "Forgot password?" on the right, wrapping onto two
   rows rather than colliding on a narrow screen. */
.terms-row.login-options{justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
.terms-row.login-options .remember{display:flex;align-items:center;gap:9px;}
.terms-row.login-options .remember input{margin-top:0;}
.auth-foot{text-align:center;font-size:13.5px;color:var(--ink-soft);margin-top:18px;}
.auth-foot a{font-weight:600;color:var(--brass);}
@media(max-width:560px){
  .field-grid{grid-template-columns:1fr !important;}
}

/* ===== TWO-FACTOR AUTHENTICATION ===== */
/* Wider than the other auth cards: this one carries a QR code and a block of
   recovery codes, not a two-field form. */
.two-factor-card{max-width:520px;}
.two-factor-steps{margin:0 0 18px 18px;font-size:13.5px;color:var(--ink);line-height:1.7;}
.two-factor-steps li{margin-bottom:4px;}
/* The SVG the writer emits has no intrinsic size cap of its own. */
.qr-code{display:flex;justify-content:center;padding:18px;background:#fff;border:1px solid var(--line);border-radius:8px;margin-bottom:16px;}
.qr-code svg{width:220px;height:220px;display:block;}
.secret-fallback{font-size:12.5px;color:var(--ink-soft);line-height:1.6;margin-bottom:22px;text-align:center;}
.secret-fallback code{display:block;margin-top:6px;font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.08em;color:var(--navy);word-break:break-all;}
/* Monospace and generously spaced — these get read off a screen and typed on a
   phone, usually under mild stress. */
.code-input{font-family:'IBM Plex Mono',monospace;font-size:18px;letter-spacing:.22em;text-align:center;}
.recovery-codes{background:var(--paper-dim);border:1px solid var(--line);border-radius:8px;padding:18px 20px;margin-bottom:18px;}
.recovery-codes h4{font-size:14.5px;color:var(--navy);margin-bottom:6px;}
.recovery-codes p{font-size:12.5px;color:var(--ink-soft);line-height:1.6;margin-bottom:12px;}
.recovery-codes ul{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:6px 16px;}
.recovery-codes li{font-family:'IBM Plex Mono',monospace;font-size:13.5px;color:var(--navy);letter-spacing:.04em;}
@media(max-width:480px){.recovery-codes ul{grid-template-columns:1fr;}}
