.global-nav a[aria-current="page"] { color: #23627a; }
.global-nav a[aria-current="page"]::after { right: 0; left: 0; }
.ip-kicker { margin: 0 0 13px; font-size: 12px; letter-spacing: .28em; }
.ip-hero { height: var(--hero-third-height); min-height: var(--hero-third-height); position: relative; background: #eaf4f8 url("../../assets/research/research-hero-common.webp") center / cover no-repeat; }
.ip-hero::before { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(236,246,249,.98), rgba(236,246,249,.78) 42%, rgba(236,246,249,.06) 74%); }
.ip-hero__inner { max-width: var(--max); min-height: var(--hero-third-height); margin: 0 auto; padding: 12px 14px 16px; position: relative; z-index: 1; }
.ip-breadcrumb { display: flex; align-items: center; gap: 12px; color: #4e687b; font-size: 11px; }
.ip-breadcrumb a { transition: color .25s ease; }
.ip-hero__copy { margin-top: 18px; }
.ip-hero h1 { margin: 0 0 6px; font-size: 32px; line-height: 1.35; font-weight: 400; letter-spacing: .06em; }
.ip-hero__copy > p:last-child { margin: 0; font-size: 15px; line-height: 1.5; letter-spacing: .04em; }
.ip-hero__side { width: 145px; margin: 0; position: absolute; right: 8px; bottom: 43px; font: 9px/1.85 var(--sans); letter-spacing: .12em; }
.ip-hero__side span { width: 42px; height: 1px; display: inline-block; margin: 0 0 3px 9px; background: #9bb0bc; }

.ip-shell { max-width: 940px; margin: 0 auto; }
.ip-copy h2, .ip-flow h2, .ip-assets h2, .ip-contact h2 { margin: 0 0 17px; font-size: 28px; line-height: 1.48; font-weight: 400; letter-spacing: .05em; }
.ip-copy p { margin: 0; color: #405c70; font-size: 14px; line-height: 1.85; }
.ip-copy p + p { margin-top: 8px; }
.ip-intro { min-height: 275px; padding: 26px 0; display: grid; grid-template-columns: .93fr 1.07fr; gap: 42px; align-items: center; border-bottom: 1px solid var(--line); }
.ip-copy { padding: 0 16px; }
.ip-intro__image { min-height: 224px; position: relative; background: url("../../assets/research/ip/ip-intro.webp") center / cover no-repeat; }
.ip-intro__image small { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); font: 8px/1.9 var(--sans); letter-spacing: .14em; }

.ip-flow { padding: 24px 16px 29px; border-bottom: 1px solid var(--line); }
.ip-flow h2 { margin-bottom: 7px; }
.ip-flow > p { margin: 0 0 17px; color: #405c70; font-size: 13px; }
.ip-flow ol { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 31px; list-style: none; }
.ip-flow li { min-width: 0; position: relative; display: grid; justify-items: center; text-align: center; }
.ip-flow li:not(:last-child)::after { position: absolute; top: 42px; right: -21px; content: "›"; color: #173e60; font: 28px/1 var(--sans); }
.ip-flow img { width: 82px; height: 82px; margin-bottom: 6px; object-fit: cover; border-radius: 50%; }
.ip-flow b { margin-bottom: 2px; font: 18px/1.2 Georgia, var(--serif); font-weight: 400; }
.ip-flow strong { margin-bottom: 8px; font-size: 12px; font-weight: 500; }
.ip-flow small { color: #526a7b; font-size: 11px; line-height: 1.65; }

.ip-assets { padding: 22px 4px 21px; }
.ip-assets__heading { padding: 0 12px 12px; }
.ip-assets__heading h2 { margin-bottom: 5px; }
.ip-assets__heading p { margin: 0; color: #526a7b; font-size: 12px; }
.ip-grid { max-width: 720px; margin: 0 auto; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 10px; }
.ip-card { min-width: 0; padding: 9px; border: 1px solid #cfdae1; background: #fff; }
.ip-card > img { width: 100%; height: 94px; display: block; object-fit: cover; }
.ip-card h3 { margin: 7px 0; font-size: 16px; font-weight: 500; }
.ip-card dl { margin: 0; border-top: 1px solid #d5dfe5; }
.ip-card dl div { min-height: 22px; display: grid; grid-template-columns: 62px 1fr; border-bottom: 1px solid #d5dfe5; }
.ip-card dt, .ip-card dd { margin: 0; padding: 4px 7px; font-size: 10px; line-height: 1.4; }
.ip-card dt { color: #354f63; background: #f2f6f8; }
.ip-card dd { color: #405c70; }
.ip-assets__note { margin: 10px 7px 0; color: #526a7b; font-size: 10px; line-height: 1.6; }

.ip-contact { min-height: 184px; position: relative; background: #eaf4f8 url("../../assets/research/ip/ip-contact.webp") center / cover no-repeat; }
.ip-contact::before { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgba(237,247,250,.96), rgba(237,247,250,.8) 48%, rgba(255,255,255,.05)); }
.ip-contact__inner { max-width: var(--max); min-height: 184px; margin: 0 auto; padding: 29px 16px 22px; position: relative; z-index: 1; }
.ip-contact h2 { margin-bottom: 8px; }
.ip-contact p { margin: 0 0 14px; color: #405c70; font-size: 13px; line-height: 1.75; }
.ip-contact a { width: 220px; min-height: 40px; padding: 0 22px; display: flex; align-items: center; justify-content: space-between; border: 1px solid #6e899b; border-radius: 22px; background: rgba(255,255,255,.75); font-size: 13px; transition: color .25s ease, background-color .25s ease, transform .25s ease; }
.ip-contact a span { font-family: var(--sans); }
.ip-contact small { position: absolute; right: 13px; bottom: 29px; font: 8px/1.9 var(--sans); letter-spacing: .14em; }

@media (max-width: 900px) {
  .ip-hero__inner, .ip-contact__inner { padding-right: 6vw; padding-left: 6vw; }
  .ip-shell { margin: 0 4vw; }
  .ip-intro { gap: 24px; }
  .ip-flow ol { gap: 18px; }
  .ip-flow li:not(:last-child)::after { right: -13px; }
}

@media (max-width: 680px) {
  .ip-hero { height: var(--hero-third-height); min-height: var(--hero-third-height); background-position: 62% center; }
  .ip-hero::before { background: linear-gradient(180deg, rgba(236,246,249,.97), rgba(236,246,249,.62) 62%, rgba(236,246,249,.15)); }
  .ip-hero__inner { height: var(--hero-third-height); min-height: var(--hero-third-height); padding: 22px 7vw 38px; }
  .ip-hero__copy { margin-top: 48px; }
  .ip-hero h1 { font-size: 34px; }
  .ip-hero__copy > p:last-child { font-size: 18px; }
  .ip-hero__side { display: none; }
  .ip-shell { margin: 0; }
  .ip-intro { padding: 40px 6vw 44px; display: flex; flex-direction: column; align-items: stretch; gap: 27px; }
  .ip-copy { padding: 0; }
  .ip-copy h2, .ip-flow h2, .ip-assets h2, .ip-contact h2 { font-size: 26px; }
  .ip-copy p { font-size: 16px; }
  .ip-intro__image { min-height: 0; aspect-ratio: 1.55 / 1; }
  .ip-intro__image small { display: none; }
  .ip-flow { padding: 40px 6vw 44px; }
  .ip-flow > p { margin-bottom: 28px; font-size: 16px; line-height: 1.8; }
  .ip-flow ol { grid-template-columns: 1fr; gap: 0; }
  .ip-flow li { padding: 0 0 22px; grid-template-columns: 92px 1fr; grid-template-rows: auto auto auto; justify-items: start; column-gap: 16px; text-align: left; border-bottom: 1px solid var(--line); }
  .ip-flow li + li { padding-top: 22px; }
  .ip-flow li:last-child { padding-bottom: 0; border-bottom: 0; }
  .ip-flow li:not(:last-child)::after { display: none; }
  .ip-flow img { width: 92px; height: 92px; margin: 0; grid-row: 1 / 4; }
  .ip-flow b { font-size: 20px; }
  .ip-flow strong { font-size: 15px; }
  .ip-flow small { font-size: 14px; }
  .ip-assets { padding: 38px 6vw 44px; }
  .ip-assets__heading { padding: 0 0 20px; }
  .ip-assets__heading p { font-size: 15px; }
  .ip-grid { grid-template-columns: 1fr; gap: 16px; }
  .ip-card { padding: 11px; }
  .ip-card > img { height: auto; aspect-ratio: 2.15 / 1; }
  .ip-card h3 { font-size: 19px; }
  .ip-card dl div { grid-template-columns: 90px 1fr; }
  .ip-card dt, .ip-card dd { padding: 6px 8px; font-size: 13px; }
  .ip-assets__note { margin-top: 14px; font-size: 12px; }
  .ip-contact { min-height: 320px; background-position: 62% center; }
  .ip-contact::before { background: linear-gradient(180deg, rgba(237,247,250,.97), rgba(237,247,250,.57) 76%, rgba(255,255,255,.08)); }
  .ip-contact__inner { min-height: 320px; padding: 42px 7vw; }
  .ip-contact p { max-width: 24em; font-size: 16px; }
  .ip-contact p br { display: none; }
  .ip-contact a { width: 235px; min-height: 46px; font-size: 14px; }
  .ip-contact small { display: none; }
}

@media (hover: hover) {
  .ip-breadcrumb a:hover { color: #23627a; }
  .ip-contact a:hover { color: #fff; background: #23627a; transform: translateX(3px); }
}
