:root {
      --mbi-navy: #12324A;
      --mbi-navy-dark: #0C2436;
      --mbi-navy-soft: #1B4463;
      --mbi-teal: #237C7B;
      --mbi-gold: #C8A96B;
      --mbi-bg: #F3F7F8;
      --mbi-beige: #F7F2E8;
      --mbi-white: #FFFFFF;
      --mbi-text: #26343D;
      --mbi-muted: #65727A;
      --mbi-border: #DDE6E8;
      --mbi-radius: 6px;
      --mbi-shadow: 0 1px 2px rgba(18, 50, 74, .06), 0 8px 24px rgba(18, 50, 74, .05);
    }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: 88px;
      background-color: var(--mbi-bg);
    }

    body {
      font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
      color: var(--mbi-text);
      background-color: var(--mbi-white);
      font-size: 16px;
      line-height: 1.8;
      letter-spacing: .02em;
      overflow-x: hidden;
    }

    /* ---------- typography ---------- */
    .en-label {
      font-family: "Cormorant Garamond", serif;
      font-size: .95rem;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: var(--mbi-teal);
      display: inline-flex;
      align-items: center;
      gap: .6rem;
      margin-bottom: 1rem;
      font-weight: 600;
    }

    .en-label::before {
      content: "";
      width: 32px;
      height: 1px;
      background: var(--mbi-gold);
      display: inline-block;
    }

    .en-label.on-dark {
      color: var(--mbi-gold);
    }

    .en-label.on-dark::before {
      background: rgba(200, 169, 107, .6);
    }

    .section-title {
      font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);
      font-weight: 700;
      line-height: 1.55;
      letter-spacing: .01em;
      color: var(--mbi-navy);
      margin-bottom: 1.25rem;
    }

    .on-navy .section-title,
    .section-title.on-dark {
      color: #fff;
    }

    .lead-text {
      max-width: 760px;
      color: var(--mbi-text);
    }

    .measure {
      max-width: 760px;
    }

    .measure-narrow {
      max-width: 640px;
    }

    .text-muted-mbi {
      color: var(--mbi-muted);
    }

    .num-en {
      font-family: "Cormorant Garamond", serif;
      font-weight: 600;
    }

    .section {
      padding: 5.5rem 0;
    }

    .section-sm {
      padding: 4rem 0;
    }

    .bg-mbi-soft {
      background-color: var(--mbi-bg);
    }

    .bg-mbi-navy {
      background-color: var(--mbi-navy);
      color: rgba(255, 255, 255, .86);
    }

    .bg-mbi-beige {
      background-color: var(--mbi-beige);
    }

    @media (min-width:992px) {
      .section {
        padding: 7rem 0;
      }
    }

    .container {
      max-width: 1160px;
    }

    @media (max-width:767.98px) {
      .container {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
      }

      .section {
        padding: 4rem 0;
      }
    }

    /* ---------- header ---------- */
    .site-header {
      background: var(--mbi-white);
      border-bottom: 1px solid var(--mbi-border);
      transition: box-shadow .3s ease;
      z-index: 1040;
    }

    .site-header.is-scrolled {
      box-shadow: 0 2px 14px rgba(18, 50, 74, .10);
    }

    .brand {
      display: flex;
      align-items: center;
      gap: .7rem;
      text-decoration: none;
      min-width: 0;
    }

    .brand img {
      height: 44px;
      width: auto;
      display: block;
    }

    .brand-text {
      display: flex;
      flex-direction: column;
      line-height: 1.25;
      min-width: 0;
    }

    .brand-text .ja {
      font-size: .95rem;
      font-weight: 700;
      color: var(--mbi-navy);
      white-space: nowrap;
    }

    .brand-text .en {
      font-family: "Cormorant Garamond", serif;
      font-size: .65rem;
      letter-spacing: .16em;
      color: var(--mbi-muted);
      white-space: nowrap;
    }

    @media (max-width:400px) {
      .brand-text .ja {
        font-size: .85rem;
      }
    }

    .nav-main .nav-link {
      color: var(--mbi-text);
      font-size: .9rem;
      font-weight: 500;
      padding: .5rem .7rem;
      position: relative;
    }

    @media (min-width:1200px) {
      .nav-main .nav-link {
        font-size: .84rem;
        padding: .5rem .45rem;
        white-space: nowrap;
      }

      .site-header .btn-mbi {
        padding: .6rem 1rem;
        font-size: .86rem;
        white-space: nowrap;
      }

      .brand img {
        height: 40px;
      }

      .brand-text .ja {
        font-size: .86rem;
      }
    }

    .nav-main .nav-link::after {
      content: "";
      position: absolute;
      left: .7rem;
      right: .7rem;
      bottom: .25rem;
      height: 1px;
      background: var(--mbi-teal);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform .25s ease;
    }

    .nav-main .nav-link:hover,
    .nav-main .nav-link:focus-visible {
      color: var(--mbi-navy);
    }

    .nav-main .nav-link:hover::after,
    .nav-main .nav-link:focus-visible::after {
      transform: scaleX(1);
    }

    /* ---------- buttons ---------- */
    .btn {
      border-radius: var(--mbi-radius);
      font-weight: 500;
      letter-spacing: .03em;
    }

    .btn-mbi {
      background: var(--mbi-navy);
      color: #fff;
      border: 1px solid var(--mbi-navy);
      padding: .7rem 1.35rem;
      display: inline-flex;
      align-items: center;
      gap: .5rem;
    }

    .btn-mbi:hover,
    .btn-mbi:focus-visible {
      background: var(--mbi-navy-soft);
      border-color: var(--mbi-navy-soft);
      color: #fff;
    }

    .btn-mbi-gold {
      background: var(--mbi-gold);
      border: 1px solid var(--mbi-gold);
      color: #2B2415;
      padding: .7rem 1.35rem;
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      font-weight: 700;
    }

    .btn-mbi-gold:hover,
    .btn-mbi-gold:focus-visible {
      background: #B99755;
      border-color: #B99755;
      color: #241E10;
    }

    .btn-mbi-outline {
      background: transparent;
      border: 1px solid var(--mbi-navy);
      color: var(--mbi-navy);
      padding: .7rem 1.35rem;
      display: inline-flex;
      align-items: center;
      gap: .5rem;
    }

    .btn-mbi-outline:hover,
    .btn-mbi-outline:focus-visible {
      background: var(--mbi-navy);
      color: #fff;
    }

    .btn-mbi-light {
      background: #fff;
      border: 1px solid #fff;
      color: var(--mbi-navy);
      padding: .8rem 1.5rem;
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      font-weight: 700;
    }

    .btn-mbi-light:hover,
    .btn-mbi-light:focus-visible {
      background: var(--mbi-bg);
      color: var(--mbi-navy-dark);
    }

    .btn-mbi-ghost {
      background: transparent;
      border: 1px solid rgba(255, 255, 255, .55);
      color: #fff;
      padding: .8rem 1.5rem;
      display: inline-flex;
      align-items: center;
      gap: .5rem;
    }

    .btn-mbi-ghost:hover,
    .btn-mbi-ghost:focus-visible {
      background: rgba(255, 255, 255, .12);
      color: #fff;
      border-color: #fff;
    }

    @media (max-width:575.98px) {

      .btn-mbi,
      .btn-mbi-gold,
      .btn-mbi-outline,
      .btn-mbi-light,
      .btn-mbi-ghost {
        min-height: 52px;
        justify-content: center;
        width: 100%;
      }

      .btn-inline-auto {
        width: auto !important;
      }
    }

    a {
      text-underline-offset: 3px;
    }

    :focus-visible {
      outline: 2px solid var(--mbi-teal);
      outline-offset: 3px;
    }

    /* ---------- hero ---------- */
    .hero {
      position: relative;
      background-color: var(--mbi-navy-dark);
      background-image: url("../images/hero.png");
      background-size: cover;
      background-position: center 30%;
      color: #fff;
      isolation: isolate;
      display: flex;
      align-items: center;
    }

    @media (min-width:992px) {
      .hero {
        min-height: 720px;
      }
    }

    .hero::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: linear-gradient(100deg, rgba(9, 28, 42, .94) 0%, rgba(12, 36, 54, .86) 45%, rgba(18, 50, 74, .66) 100%);
    }

    .hero-net {
      position: absolute;
      inset: 0;
      z-index: -1;
      overflow: hidden;
      pointer-events: none;
      opacity: .55;
    }

    .hero-net span {
      position: absolute;
      border: 1px solid rgba(35, 124, 123, .45);
      border-radius: 50%;
    }

    .hero-net span:nth-child(1) {
      width: 520px;
      height: 520px;
      right: -140px;
      top: -120px;
    }

    .hero-net span:nth-child(2) {
      width: 340px;
      height: 340px;
      right: 40px;
      top: 60px;
      border-color: rgba(200, 169, 107, .28);
    }

    .hero-net span:nth-child(3) {
      width: 200px;
      height: 200px;
      right: 180px;
      bottom: 40px;
      border-color: rgba(255, 255, 255, .16);
    }

    .hero-net span:nth-child(4) {
      width: 8px;
      height: 8px;
      background: var(--mbi-gold);
      border: 0;
      right: 120px;
      top: 180px;
    }

    .hero-net span:nth-child(5) {
      width: 6px;
      height: 6px;
      background: rgba(255, 255, 255, .7);
      border: 0;
      right: 320px;
      top: 340px;
    }

    .hero-net span:nth-child(6) {
      width: 5px;
      height: 5px;
      background: var(--mbi-teal);
      border: 0;
      right: 60px;
      bottom: 160px;
    }

    .hero-net i {
      position: absolute;
      display: block;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(35, 124, 123, .55), transparent);
    }

    .hero-net i:nth-of-type(1) {
      width: 60%;
      right: 0;
      top: 26%;
    }

    .hero-net i:nth-of-type(2) {
      width: 40%;
      right: 0;
      top: 58%;
      background: linear-gradient(90deg, transparent, rgba(200, 169, 107, .4), transparent);
    }

    .hero-net i:nth-of-type(3) {
      width: 30%;
      right: 10%;
      bottom: 18%;
    }

    .hero-inner {
      padding: 7rem 0 3rem;
    }

    @media (min-width:992px) {
      .hero-inner {
        padding: 9rem 0 4rem;
      }
    }

    @media (max-width:767.98px) {
      .hero-inner {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
      }
    }

    .hero h1 {
      font-weight: 700;
      font-size: clamp(1.75rem, 1.2rem + 3vw, 3.1rem);
      line-height: 1.5;
      letter-spacing: .01em;
      margin-bottom: 1.25rem;
      color: #fff;
    }

    .hero .hero-en {
      font-family: "Cormorant Garamond", serif;
      font-size: clamp(.95rem, .85rem + .4vw, 1.2rem);
      color: rgba(255, 255, 255, .78);
      letter-spacing: .06em;
      line-height: 1.7;
      max-width: 620px;
    }

    .hero .hero-note {
      color: rgba(255, 255, 255, .86);
      max-width: 600px;
    }

    .hero-keywords {
      border-top: 1px solid rgba(255, 255, 255, .22);
      margin-top: 3.5rem;
      padding-top: 1.5rem;
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1rem;
    }

    @media (min-width:768px) {
      .hero-keywords {
        grid-template-columns: repeat(4, 1fr);
      }
    }

    .hero-keywords div {
      display: flex;
      flex-direction: column;
      gap: .15rem;
    }

    .hero-keywords .kw-en {
      font-family: "Cormorant Garamond", serif;
      font-size: 1.35rem;
      color: #fff;
      letter-spacing: .08em;
    }

    .hero-keywords .kw-ja {
      font-size: .78rem;
      color: rgba(255, 255, 255, .62);
      letter-spacing: .14em;
    }

    /* ---------- mission ---------- */
    .issue-card {
      border: 1px solid var(--mbi-border);
      border-radius: var(--mbi-radius);
      background: #fff;
      padding: 1.75rem 1.25rem;
      height: 100%;
      text-align: center;
      transition: border-color .25s ease, transform .25s ease;
    }

    .issue-card:hover {
      border-color: var(--mbi-teal);
      transform: translateY(-3px);
    }

    .issue-card i {
      font-size: 1.7rem;
      color: var(--mbi-teal);
    }

    .issue-card p {
      margin: .85rem 0 0;
      font-weight: 500;
      font-size: .98rem;
      line-height: 1.7;
    }

    /* ---------- media / figures ---------- */
    .figure-frame {
      position: relative;
      border-radius: var(--mbi-radius);
      overflow: hidden;
      background: var(--mbi-bg);
    }

    .figure-frame img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .figure-frame.ratio-4x3 {
      aspect-ratio: 4/3;
    }

    .figure-frame.ratio-3x4 {
      aspect-ratio: 3/4;
    }

    .figure-accent {
      position: relative;
    }

    .figure-accent::after {
      content: "";
      position: absolute;
      left: -14px;
      bottom: -14px;
      width: 96px;
      height: 96px;
      border-left: 2px solid var(--mbi-gold);
      border-bottom: 2px solid var(--mbi-gold);
    }

    .feature-list {
      list-style: none;
      margin: 2rem 0 0;
      padding: 0;
      border-top: 1px solid var(--mbi-border);
    }

    .feature-list li {
      display: flex;
      gap: 1rem;
      align-items: flex-start;
      padding: 1rem 0;
      border-bottom: 1px solid var(--mbi-border);
    }

    .feature-list .idx {
      font-family: "Cormorant Garamond", serif;
      font-size: 1rem;
      color: var(--mbi-gold);
      min-width: 2rem;
      padding-top: .15rem;
      letter-spacing: .06em;
    }

    .feature-list .ttl {
      font-weight: 700;
      color: var(--mbi-navy);
    }

    .feature-list .desc {
      color: var(--mbi-muted);
      font-size: .92rem;
      line-height: 1.75;
      margin: 0;
    }

    /* ---------- research cards ---------- */
    .research-card {
      border: 1px solid var(--mbi-border);
      border-radius: var(--mbi-radius);
      background: #fff;
      padding: 2rem 1.75rem 1.75rem;
      height: 100%;
      transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
    }

    .research-card:hover {
      transform: translateY(-5px);
      border-color: var(--mbi-teal);
      box-shadow: var(--mbi-shadow);
    }

    .research-card .rc-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      margin-bottom: 1rem;
    }

    .research-card .rc-num {
      font-family: "Cormorant Garamond", serif;
      font-size: 2.6rem;
      line-height: 1;
      color: var(--mbi-border);
      font-weight: 600;
    }

    .research-card:hover .rc-num {
      color: var(--mbi-gold);
    }

    .research-card .rc-icon {
      width: 52px;
      height: 52px;
      flex: 0 0 auto;
      display: grid;
      place-items: center;
      background: var(--mbi-bg);
      color: var(--mbi-teal);
      border: 1px solid var(--mbi-border);
      border-radius: var(--mbi-radius);
      font-size: 1.35rem;
    }

    .research-card h3 {
      font-size: 1.2rem;
      font-weight: 700;
      color: var(--mbi-navy);
      margin-bottom: .75rem;
    }

    .research-card p {
      color: var(--mbi-text);
      font-size: .97rem;
      margin-bottom: 1.25rem;
    }

    .tag {
      display: inline-block;
      font-size: .78rem;
      letter-spacing: .04em;
      padding: .3rem .7rem;
      border: 1px solid var(--mbi-border);
      border-radius: 99px;
      color: var(--mbi-muted);
      background: #fff;
    }

    .tag-list {
      display: flex;
      flex-wrap: wrap;
      gap: .45rem;
    }

    /* ---------- other business (navy) ---------- */
    .navy-card {
      border: 1px solid rgba(255, 255, 255, .16);
      border-radius: var(--mbi-radius);
      background: rgba(255, 255, 255, .045);
      padding: 1.5rem 1.35rem;
      height: 100%;
      transition: background .25s ease, border-color .25s ease, transform .25s ease;
    }

    .navy-card:hover {
      background: rgba(255, 255, 255, .09);
      border-color: rgba(200, 169, 107, .6);
      transform: translateY(-3px);
    }

    .navy-card i {
      color: var(--mbi-gold);
      font-size: 1.35rem;
    }

    .navy-card h3 {
      font-size: 1.02rem;
      font-weight: 700;
      color: #fff;
      margin: .85rem 0 0;
      line-height: 1.7;
    }

    /* ---------- vision ---------- */
    .concern-list {
      list-style: none;
      margin: 0 0 1.75rem;
      padding: 0;
    }

    .concern-list li {
      display: flex;
      gap: .85rem;
      align-items: flex-start;
      padding: .9rem 1.1rem;
      margin-bottom: .6rem;
      background: var(--mbi-bg);
      border-left: 3px solid var(--mbi-teal);
      border-radius: 0 var(--mbi-radius) var(--mbi-radius) 0;
      font-size: .98rem;
      line-height: 1.7;
    }

    .concern-list i {
      color: var(--mbi-teal);
      padding-top: .2rem;
    }

    /* ---------- future section ---------- */
    .future {
      position: relative;
      color: #fff;
      isolation: isolate;
      background-color: var(--mbi-navy-dark);
      background-image: url("../images/future.png");
      background-size: cover;
      background-position: center 40%;
    }

    .future::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: linear-gradient(180deg, rgba(9, 28, 42, .86), rgba(12, 36, 54, .78));
    }

    .future blockquote {
      margin: 2.25rem 0 0;
      padding: 1.5rem 0 0;
      border-top: 1px solid rgba(200, 169, 107, .5);
      font-size: clamp(1.1rem, 1rem + .8vw, 1.6rem);
      font-weight: 700;
      color: var(--mbi-gold);
      line-height: 1.6;
    }

    /* ---------- sakura ---------- */
    .pill-field {
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      background: #fff;
      border: 1px solid #E7DDC6;
      color: var(--mbi-navy);
      padding: .45rem .9rem;
      border-radius: 99px;
      font-size: .87rem;
      font-weight: 500;
    }

    .pill-field i {
      color: var(--mbi-gold);
    }

    /* ---------- members ---------- */
    .member-card {
      background: #fff;
      border: 1px solid var(--mbi-border);
      border-radius: var(--mbi-radius);
      padding: 1.5rem 1.35rem;
      height: 100%;
      display: flex;
      gap: 1rem;
      align-items: flex-start;
      transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
    }

    .member-card:hover {
      transform: translateY(-3px);
      border-color: var(--mbi-teal);
      box-shadow: var(--mbi-shadow);
    }

    .avatar {
      width: 56px;
      height: 56px;
      flex: 0 0 auto;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: var(--mbi-navy);
      color: #fff;
      font-family: "Cormorant Garamond", serif;
      font-size: 1.2rem;
      letter-spacing: .04em;
    }

    .member-card .m-name {
      font-size: 1.08rem;
      font-weight: 700;
      color: var(--mbi-navy);
      margin: 0 0 .35rem;
      line-height: 1.5;
    }

    .member-card .m-role {
      font-size: .85rem;
      color: var(--mbi-teal);
      font-weight: 500;
      margin: 0 0 .25rem;
      line-height: 1.7;
    }

    .member-card .m-org {
      font-size: .86rem;
      color: var(--mbi-muted);
      margin: 0;
      line-height: 1.7;
      overflow-wrap: anywhere;
    }

    .advisor-card {
      background: #fff;
      border: 1px solid #E4D9BE;
      border-left: 4px solid var(--mbi-gold);
      border-radius: var(--mbi-radius);
      padding: 2rem 1.75rem;
    }

    .advisor-card .avatar {
      background: var(--mbi-gold);
      color: #2B2415;
      width: 68px;
      height: 68px;
      font-size: 1.35rem;
    }

    /* ---------- access ---------- */
    .info-table {
      width: 100%;
      border-collapse: collapse;
      margin-top: 1.5rem;
    }

    .info-table th,
    .info-table td {
      padding: 1rem .5rem;
      border-bottom: 1px solid var(--mbi-border);
      vertical-align: top;
      font-size: .97rem;
    }

    .info-table th {
      width: 7.5rem;
      text-align: left;
      font-weight: 700;
      color: var(--mbi-navy);
      font-size: .9rem;
      letter-spacing: .04em;
      white-space: nowrap;
    }

    .info-table td {
      color: var(--mbi-text);
    }

    .info-table a {
      color: var(--mbi-teal);
      font-weight: 500;
    }

    .map-placeholder {
      border: 1px solid var(--mbi-border);
      border-radius: var(--mbi-radius);
      background:
        linear-gradient(rgba(35, 124, 123, .07) 1px, transparent 1px) 0 0/100% 34px,
        linear-gradient(90deg, rgba(35, 124, 123, .07) 1px, transparent 1px) 0 0/34px 100%,
        var(--mbi-bg);
      min-height: 340px;
      display: grid;
      place-items: center;
      text-align: center;
      padding: 2rem;
    }

    .map-placeholder i {
      font-size: 2.25rem;
      color: var(--mbi-navy);
    }

    /* ---------- footer ---------- */
    .site-footer {
      background: var(--mbi-navy-dark);
      color: rgba(255, 255, 255, .72);
      padding: 4rem 0 1.5rem;
    }

    .site-footer .footer-logo {
      background: #fff;
      border-radius: var(--mbi-radius);
      padding: .6rem .8rem;
      display: inline-block;
    }

    .site-footer .footer-logo img {
      height: 56px;
      width: auto;
      display: block;
    }

    .site-footer h2,
    .site-footer h3 {
      font-size: 1rem;
      color: #fff;
      font-weight: 700;
      margin-bottom: 1rem;
    }

    .site-footer a {
      color: rgba(255, 255, 255, .76);
      text-decoration: none;
    }

    .site-footer a:hover,
    .site-footer a:focus-visible {
      color: #fff;
      text-decoration: underline;
    }

    .footer-nav {
      list-style: none;
      padding: 0;
      margin: 0;
    }

    .footer-nav li {
      margin-bottom: .55rem;
      font-size: .92rem;
    }

    .footer-bottom {
      border-top: 1px solid rgba(255, 255, 255, .16);
      margin-top: 3rem;
      padding-top: 1.25rem;
      font-size: .82rem;
      color: rgba(255, 255, 255, .6);
    }

    /* ---------- to top ---------- */
    .to-top {
      position: fixed;
      right: 1rem;
      bottom: 1rem;
      z-index: 1030;
      width: 48px;
      height: 48px;
      border-radius: var(--mbi-radius);
      background: var(--mbi-navy);
      color: #fff;
      border: 1px solid var(--mbi-navy);
      display: grid;
      place-items: center;
      font-size: 1.15rem;
      opacity: 0;
      visibility: hidden;
      transition: opacity .25s ease, visibility .25s ease;
      text-decoration: none;
    }

    .to-top.is-visible {
      opacity: 1;
      visibility: visible;
    }

    .to-top:hover,
    .to-top:focus-visible {
      background: var(--mbi-teal);
      border-color: var(--mbi-teal);
      color: #fff;
    }

    /* ---------- reveal ---------- */
    .reveal {
      opacity: 0;
      transform: translateY(18px);
      transition: opacity .7s ease, transform .7s ease;
    }

    .reveal.is-in {
      opacity: 1;
      transform: none;
    }

    .no-js .reveal {
      opacity: 1;
      transform: none;
    }

    @media (prefers-reduced-motion:reduce) {
      html {
        scroll-behavior: auto;
      }

      *,
      *::before,
      *::after {
        transition-duration: .001ms !important;
        animation-duration: .001ms !important;
      }

      .reveal {
        opacity: 1 !important;
        transform: none !important;
      }
    }

    .skip-link {
      position: absolute;
      left: 1rem;
      top: -3rem;
      z-index: 2000;
      background: var(--mbi-navy);
      color: #fff;
      padding: .6rem 1rem;
      border-radius: 0 0 var(--mbi-radius) var(--mbi-radius);
      transition: top .2s ease;
      text-decoration: none;
    }

    .skip-link:focus {
      top: 0;
      color: #fff;
    }

    /* ---------- utility classes moved from inline styles ---------- */
    .qr-figure {
      max-width: 200px;
      margin-left: auto;
      margin-right: auto;
    }

    .advisor-label {
      margin-bottom: .5rem;
    }

    .advisor-title {
      font-size: 1.5rem;
    }

    .address-pin {
      color: var(--mbi-navy);
    }

    .address-detail {
      font-size: .9rem;
    }

    .footer-address {
      font-size: .92rem;
      line-height: 1.9;
    }

    .map-iframe {
      border: 0;
    }
