.wb-partner {
  --navy: #041c2a;
  --deep: #061a28;
  --ink: #14283b;
  --cream: #f5f7f7;
  --blue: #347c9b;
  --accent: #9bd7e3;
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font: 15px/1.9 Inter, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.wb-partner *, .wb-partner *::before, .wb-partner *::after { box-sizing: border-box; }
.wb-partner a { color: inherit; }
.wb-partner :is(a, summary):focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.wb-partner-skip { position: absolute; z-index: 5; left: 16px; top: -100px; padding: 8px 12px; background: #fff; }
.wb-partner-skip:focus { top: 50px; }
.wb-partner-shell { width: min(1380px, 86%); margin-inline: auto; }

.wb-partner-header {
  position: relative;
  z-index: 2;
  min-height: 85px;
  display: flex;
  align-items: center;
  gap: clamp(18px, 3vw, 55px);
  padding: 12px max(4vw, 20px);
  background: var(--navy);
  color: white;
}
.wb-partner-brand { display: inline-flex; align-items: center; gap: 10px; flex: none; text-decoration: none; }
.wb-partner-brand svg { width: 50px; height: auto; }
.wb-partner-brand strong { display: block; font-size: clamp(18px, 2vw, 24px); line-height: 1.04; letter-spacing: -.055em; white-space: nowrap; }
.wb-partner-brand em { font-weight: 400; font-style: normal; }
.wb-partner-brand small { display: block; margin-top: 4px; font-size: 9px; line-height: 1; font-weight: 700; letter-spacing: .35em; }
.wb-partner-desktop { display: flex; align-items: center; gap: clamp(13px, 1.7vw, 28px); margin-left: auto; }
.wb-partner-desktop a, .wb-partner-header-cta, .wb-partner-footer nav a {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .09em;
  text-decoration: none;
}
.wb-partner-desktop a:hover, .wb-partner-desktop a[aria-current="page"] { color: var(--accent); }
.wb-partner-header-cta { padding: 10px 15px; border: 1px solid #819eab; }
.wb-partner-header-cta:hover { background: white; color: var(--navy); }
.wb-partner-arrow { flex: none; vertical-align: middle; }
.wb-partner-header-cta .wb-partner-arrow { margin-left: 5px; }
.wb-partner-mobile { display: none; margin-left: auto; }
.wb-partner-mobile summary { display: grid; place-items: center; width: 44px; height: 44px; cursor: pointer; list-style: none; font-size: 24px; }
.wb-partner-mobile summary::-webkit-details-marker { display: none; }
.wb-partner-mobile nav { position: absolute; inset: 100% 0 auto; display: grid; padding: 5px 7vw 16px; background: var(--navy); }
.wb-partner-mobile nav a { display: block; padding: 10px 2px; border-top: 1px solid #315263; font-size: 13px; letter-spacing: .1em; text-decoration: none; }

.wb-partner-hero { position: relative; isolation: isolate; min-height: 590px; overflow: hidden; color: white; background: var(--deep); }
.wb-partner-hero-photo {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: url("waterfront.webp") center 52% / cover no-repeat;
}
.wb-partner-hero::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, #041c2a 0%, #041c2ae6 30%, #041c2a89 58%, #041c2a20 100%),
    linear-gradient(0deg, #041c2ab8, transparent 55%);
  content: "";
}
.wb-partner-hero-inner { padding: 44px 0 88px; }
.wb-partner-crumb { display: flex; align-items: center; gap: 12px; margin: 0 0 clamp(35px, 5vw, 70px); color: #c8dce4; font-size: 10px; letter-spacing: .19em; }
.wb-partner-crumb a { color: white; text-underline-offset: 4px; }
.wb-partner-kicker { margin: 0 0 17px; color: #306480; font-size: 11px; font-weight: 700; line-height: 1.5; letter-spacing: .22em; }
.wb-partner-hero .wb-partner-kicker, .wb-partner-process .wb-partner-kicker { color: var(--accent); }
.wb-partner-hero h1, .wb-partner-section h2 {
  margin: 0;
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-weight: 720;
  line-height: .99;
  letter-spacing: -.065em;
}
.wb-partner-hero h1 { font-size: clamp(32px, 8.5vw, 118px); }
.wb-partner-hero h1 span { color: var(--accent); }
.wb-partner-hero-lead { margin: 24px 0 8px; font-size: clamp(19px, 2.4vw, 31px); font-weight: 700; letter-spacing: .04em; }
.wb-partner-hero-copy { max-width: 560px; margin: 0 0 24px; color: #e0edf1; }
.wb-partner-photo-label { position: absolute; right: max(4vw, 20px); bottom: 14px; margin: 0; color: #dbe6ed; font-size: 10px; letter-spacing: .11em; }
.wb-partner .wb-partner-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(15px, 2vw, 34px);
  width: fit-content;
  max-width: 100%;
  min-height: 53px;
  padding: 13px clamp(14px, 2vw, 23px);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
}
.wb-partner .wb-partner-button-light { background: white; color: var(--navy); }
.wb-partner .wb-partner-button-light:hover { background: #d9edf2; }
.wb-partner .wb-partner-button-dark { background: var(--navy); color: white; }
.wb-partner .wb-partner-button-dark:hover { background: #17465a; }

.wb-partner-section { padding: clamp(50px, 7vw, 108px) 0; }
.wb-partner-section h2 { font-size: clamp(37px, 6vw, 83px); }
.wb-partner-section h2 em { font-style: normal; font-weight: 350; }
.wb-partner-section-lead { margin: 18px 0 0; font-size: clamp(16px, 1.7vw, 22px); font-weight: 700; }
.wb-partner-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; margin-top: 32px; }
.wb-partner-grid article { padding: clamp(19px, 2.7vw, 38px); border-top: 2px solid #5a98ac; background: white; }
.wb-partner-grid h3, .wb-partner-steps h3 { margin: 14px 0 5px; font-size: clamp(16px, 1.5vw, 21px); line-height: 1.55; }
.wb-partner-card-id { margin: 0; color: #306480; font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.wb-partner-card-id span { margin-left: 7px; font-size: 10px; }
.wb-partner-card-lead { font-weight: 700; }
.wb-partner-grid article p:not(.wb-partner-card-id) { margin: 8px 0 0; }
.wb-partner-grid article p:last-child { color: #4b6270; font-size: 14px; }
.wb-partner-process { background: #082736; color: white; }
.wb-partner-process-grid { display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: clamp(28px, 6vw, 92px); }
.wb-partner-process-copy, .wb-partner-steps p { color: #c7dce4; }
.wb-partner-process-copy { max-width: 475px; }
.wb-partner-steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid #416475; }
.wb-partner-steps li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 18px 0; border-bottom: 1px solid #416475; }
.wb-partner-steps li > span { color: var(--accent); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.wb-partner-steps h3, .wb-partner-steps p { margin: 0; }
.wb-partner-steps p { margin-top: 4px; font-size: 14px; }
.wb-partner-outro { background: #e7f0f2; }
.wb-partner-outro-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px 35px; }
.wb-partner-outro-inner p:last-child { margin-bottom: 0; }
.wb-partner-footer { padding: 34px 0; background: var(--deep); color: #a9c2cd; font-size: 11px; }
.wb-partner-footer nav { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-bottom: 15px; color: white; }
.wb-partner-footer nav a:hover { text-decoration: underline; }
.wb-partner-footer .footer-legal { border-top: 1px solid #345565; padding-top: 10px; }
.wb-partner-footer .footer-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; }
@media (max-width: 1000px) {
  .wb-partner-header { min-height: 70px; }
  .wb-partner-desktop, .wb-partner-header-cta { display: none; }
  .wb-partner-mobile { display: block; }
  .wb-partner-grid { gap: 12px; }
}
@media (max-width: 710px) {
  .wb-partner-shell { width: 88%; }
  .wb-partner-grid, .wb-partner-process-grid, .wb-partner-outro-inner { grid-template-columns: minmax(0, 1fr); }
  .wb-partner-grid { margin-top: 22px; }
  .wb-partner-hero { min-height: 0; }
  .wb-partner-hero-inner { padding: 26px 0 65px; }
  .wb-partner-hero-photo { background-position: 59% center; }
  .wb-partner-hero::after { background: linear-gradient(90deg, #041c2aef, #041c2a70), linear-gradient(0deg, #041c2aa8, transparent); }
  .wb-partner-hero-lead { margin-top: 18px; }
  .wb-partner-break { display: none; }
}
