@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Roboto:wght@400;500&display=swap');
:root {
  --pink: #e16ea5;
  --orange: #f18e38;
  --purple: #9e7bb6;
  --ink: #3b3e43;
  --line: #d6dce8;
  --brand: linear-gradient(90deg,#b094c4 0%,#f18e38 25%,#e16ea5 50%)
}

* {
  box-sizing: border-box
}

body {
  margin: 0;
  color: var(--ink);
  font-family: 'Noto Sans JP',sans-serif;
  font-size: 16px
}

a {
  color: inherit
}

button,input {
  font: inherit
}

button,a {
  -webkit-tap-highlight-color: transparent
}

button {
  cursor: pointer
}

button:focus-visible,a:focus-visible,input:focus-visible {
  outline: 3px solid #004ea2;
  outline-offset: 5px
}

ul,dl,p,h1,h2,h3,dd {
  margin: 0
}

ul {
  padding: 0;
  list-style: none
}

img {
  display: block
}

a:hover {
  filter: brightness(.96)
}

[hidden] {
  display: none!important
}

.display-none {
  display: none;
}

.skip-link {
  position: fixed;
  top: -100px;
  z-index: 100;
  background: #fff;
  padding: 16px
}

.skip-link:focus {
  top: 0
}

.top-stock {
  height: 32px;
  background: linear-gradient(#ffffff3d,#ffffff3d),var(--brand);
  display: flex;
  align-items: center;
  padding: 0 16px;
  gap: 16px;
  font-size: 14px
}

.top-stock__contetns {
  display: flex;
  gap: 16px
}

.top-stock b {
  background: #fff;
  border-radius: 3px;
  padding: 1px 6px;
  font-weight: 400;
  font-size: 12px;
  margin-right: 8px
}

.top-stock small {
  font-size: 11px
}

.stock-date {
  font-size: 11px
}

.stock-chart {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  text-decoration: none
}

.stock-chart img {
  max-width: 16px
}

.header-inner {
  height: 72px;
  display: flex;
  align-items: center;
  padding: 0 16px;
  gap: 12px
}

.global-bland img {
  width: 360px;
  height: auto
}

.security-code {
  font-size: 11px;
  border-left: 1px solid var(--line);
  padding-left: 12px;
  white-space: nowrap
}

.global-navigation {
  margin-left: auto;
  display: flex;
  gap: 20px;
  font-size: 16px;
  white-space: nowrap
}

.global-navigation a {
  text-decoration: none
}

.language,.search-toggle {
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  text-decoration: none;
  font-size: 12px;
  color: #4db1e8;
  background: #edf7fc;
  flex-shrink: 0
}

.search-toggle {
  background: #4db1e8
}

.search-toggle img {
  max-width: 24px
}

.mobile-navigation {
  display: none
}

.site-search {
  padding: 24px;
  background: #f6ecf0;
  display: flex;
  justify-content: center;
  gap: 16px
}

.site-search input {
  margin-left: 16px;
  padding: 8px
}

.site-search button {
  background: var(--pink);
  color: #fff;
  border: 0;
  padding: 8px 24px
}

.hero {
    height: calc(100vh + 104px);
    position: relative;
    overflow: hidden;
    padding-top: 104px;
    min-height: 796px;
}

.jumbotron-slider {
    height: calc(100vh - 104px);
    position: relative;
}

.jumbotron-slider__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1.2s ease
}

.jumbotron-slider__slide.is-active {
  opacity: 1
}

.jumbotron-image__wrapper {
  height: 100%;
  overflow: hidden
}

.jumbotron-image {
    height: 135.11%;
    width: 100%;
    position: absolute;
    top: -29.81%;
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

.jumbotron-slider:after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(126deg,#0085cf52,transparent 47%);
  pointer-events: none
}

.jumbotron {
  position: absolute;
  inset: 0;
  z-index: 2
}

.jumbotron-contents {
  padding: 72px 40px
}

.jumbotron-corporate-slogan h1 {
  font-size: 32px;
  line-height: 48px;
  color: white;
  text-shadow: 0 2px 7px #0002;
  margin-bottom: 32px
}

.link-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  border-radius: 100px;
  background: var(--pink);
  color: white;
  padding: 20px 32px;
  text-decoration: none;
  font-size: 16px;
  font-weight: 500;
  white-space: nowrap
}

.link-button img {
  max-width: 29px
}

.orange.link-button {
  background: var(--orange)
}

.purple.link-button {
  background: var(--purple)
}

.green.link-button {
  background: #61b337
}

.blue.link-button {
  background: #5580cb
}

.hero-controls {
  position: absolute;
  z-index: 5;
  right: 40px;
  bottom: 118px;
  display: flex;
  gap: 12px;
  align-items: center
}

.hero-controls button {
  border: 0;
  color: white;
  background: #004ea280;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  padding: 0
}

.hero-controls .hero-dot {
  width: 10px;
  height: 10px;
  background: #ffffff80;
  border: 1px solid white
}

.hero-dot.is-active {
  background: white
}

.brand-wave {
    position: absolute;
    bottom: 64px;
    left: 0;
    width: 100%;
    height: 318px;
    pointer-events: none
}

.brand-wave img {
  position: absolute;
  width: 110.2%;
  height: auto;
  left: -10.2%;
  top: 0
}

.brand-wave img+img {
  width: 100%;
  left: 0;
  top: 54px;
}

.jumbotron-data {
    position: absolute;
    bottom: 130px;
    left: 7.36%;
    width: 85.28%;
    height: 143px;
    display: flex;
    gap: 12px
}

.fund-card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 16px #00000014;
  padding: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px
}

.fund-card dt {
  font-size: 14px;
  text-align: center;
  line-height: 1.2
}

.fund-card dt small {
  display: block;
  font-size: 12px
}

.fund-card dd {
  font-size: 12px;
  text-align: center;
  margin-top: 8px;
  white-space: nowrap
}

.fund-card strong {
  font: 500 32px/1 Roboto,sans-serif;
  margin-right: 2px
}

.fund-card a {
  background: #004ea2;
  color: white;
  border-radius: 8px;
  font-size: 16px;
  text-decoration: none;
  padding: 2px 8px;
  white-space: nowrap
}

.forecast-values {
  display: flex;
  gap: 16px
}

.forecast-values dl+dl {
  border-left: 1px solid var(--line);
  padding-left: 16px
}

.metrics {
  flex: 1;
  flex-direction: row;
  justify-content: space-between;
  padding: 16px 32px;
  gap: 16px
}

.metrics dl {
  flex: 1;
  text-align: center;
  border-right: 1px solid var(--line);
  padding-right: 16px
}

.metrics dl:last-child {
  border: 0;
  padding: 0
}

.metrics dd {
  margin: 0 0 8px
}

.metrics dl:first-child strong {
  font-size: 44px
}

.metrics dt {
  display: inline-block;
  background: #567b03;
  border-radius: 8px;
  color: white;
  padding: 4px 12px;
  font-size: 16px;
  white-space: nowrap
}

.metrics small {
  font-size: 10px
}

.section {
  position: relative;
  padding: 128px max(24px,calc((100% - 1248px)/2));
}

.section-heading {
  display: flex;
  align-items: center;
  gap: 16px
}

.section-emblem {
  width: 62px;
  height: 62px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f6ecf0;
  flex-shrink: 0
}

.section-emblem img {
  max-width: 34px
}

.section-heading h2 {
  font-size: 32px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: .2px
}

.section-heading p {
  font: 400 16px/1 Roboto,sans-serif;
  color: #666;
  margin-top: 16px
}

.section>.link-button {
  position: absolute;
  right: max(24px,calc((100% - 1248px)/2));
  top: 128px
}

.news {
  padding-top: 96px;
  padding-bottom: 96px;
  min-height: 677px
}

.news>.link-button {
  top: 96px
}

.news__body {
  margin-top: 48px
}

.news .eirItem {
  min-height: 74px;
  display: flex;
  align-items: center;
  gap: 24px;
  border-bottom: 1px solid var(--line);
  font-size: 16px
}

.news-category {
  font-size: 16px;
  padding: 4px 8px;
  width: 96px;
  text-align: center;
  border-radius: 3px;
  background: #fff0f0;
  color: #ff4747
}

.category-1 {
  background: #f7f7f7;
  color: #666
}

.category-2 {
  background: #e2efff;
  color: #004ea2
}

.news .eirItem_title_link {
  display: flex;
  align-items: center;
  gap: 8px;
  line-height: 26px
}

.news-file img {
  max-width: 16px
}

.news-file small {
  display: none
}

.top-financial {
  background: linear-gradient(100deg,#f8f5fa,#fff6ef 28%,#fcf4f8 60%);
  min-height: 843px
}

.top-financial__contents {
  display: grid;
  grid-template-columns: 626px 658px;
  gap: 60px;
  margin-top: 48px
}

.top-financial__list li+li {
  margin-top: 8px
}

.top-financial__list a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px 24px;
  min-height: 72px;
  background: #fff;
  border-radius: 8px;
  text-decoration: none
}

.document-icon {
  max-width: 40px
}

.top-financial__list a>span:not(.document-arrow) {
  flex: 1;
  font-size: 18px
}

.top-financial__list small {
  display: block;
  font-size: 14px;
  color: #566071;
  margin-top: 8px
}

.document-arrow {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f6ecf0;
  display: grid;
  place-items: center
}

.document-arrow img {
  max-width: 20px
}

.financial-cover {
  position: relative;
  overflow: hidden;
  border-radius: 8px 0 0 8px;
  height: 472px
}

.financial-cover img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover
}

.top-portfolio {
  height: 892px;
  overflow: hidden
}

.top-portfolio .section-emblem {
  background: #f7f3f9
}

.portfolio-intro {
  margin-top: 48px;
  line-height: 28px
}

.top-portfolio>.link-button {
  position: static;
  margin-top: 48px
}

.image-gallery {
  position: absolute;
  left: 0;
  right: 0;
  top: 128px;
  bottom: 128px;
  pointer-events: none
}

.gallery-item {
  position: absolute;
  left: calc(50% + var(--x,16px));
  bottom: 0;
  width: 256px;
  height: 333px;
  border-radius: 8px;
  overflow: hidden;
  transition: left .8s ease,width .8s ease,height .8s ease,opacity .8s ease;
  pointer-events: auto
}

.gallery-item:nth-child(1) {
  --x: -832px
}

.gallery-item:nth-child(2) {
  --x: -560px
}

.gallery-item:nth-child(3) {
  --x: -288px
}

.gallery-item:nth-child(4) {
  --x: 16px
}

.gallery-item:nth-child(5) {
  --x: 576px
}

.gallery-item.is-active {
  width: 512px;
  height: 636px;
  box-shadow: 0 4px 20px #0003;
  z-index: 2
}

.gallery-item>img {
  width: 100%;
  height: 100%;
  object-fit: cover
}

.gallery-item>span {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 72px 16px 28px;
  background: linear-gradient(transparent,#4db1e8);
  color: #fff;
  font-weight: 500;
  text-decoration: underline
}

.gallery-item.is-active>span {
  font-size: 20px;
  padding: 96px 32px 36px
}

.gallery-controls {
  position: absolute;
  bottom: 72px;
  left: calc(50% + 16px);
  width: 512px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-size: 13px
}

.gallery-controls button {
  width: 32px;
  height: 32px;
  border: 1px solid var(--line);
  background: white;
  color: var(--purple);
  border-radius: 50%;
  font-size: 20px
}

.top-strategy {
  height: 754px;
  padding-top: 122px;
  padding-bottom: 122px;
  overflow: hidden
}

.top-strategy>.link-button {
  top: 122px
}

.strategy-background {
  position: absolute;
  inset: 0;
  background: #336adc
}

.strategy-background img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover
}

.strategy-background img+img {
  object-position: bottom
}

.top-strategy .section-heading {
  position: relative
}

.strategy-cards {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 24px;
  margin-top: 48px
}

.strategy-card {
  background: white;
  padding: 32px;
  border-radius: 8px;
  min-height: 356px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px
}

.strategy-card>img {
  max-width: 100px;
  height: auto;
  min-height: 80px
}

.strategy-card h3 {
  font-size: 20px;
  font-weight: 500;
  color: #61b337;
  text-align: center;
  line-height: 1.5;
  min-height: 60px;
  display: grid;
  align-content: center
}

.strategy-card:nth-child(2) h3 {
  color: #779cd6
}

.strategy-card:nth-child(3) h3 {
  color: #d6b11f
}

.strategy-card p {
  font-size: 16px;
  line-height: 1.9
}

.top-sustainability {
  height: 1200px;
  position: relative;
  overflow: hidden;
  color: #fff
}

.sustainability-background {
  position: absolute;
  inset: 0
}

.sustainability-background img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom;
  filter: blur(8px)
}

.sustainability-background:after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(#4db1e826,#0e312e33)
}

.sustainability-copy {
  position: absolute;
  top: 26.61%;
  left: 19.58%;
  right: 19.51%;
  text-align: center;
  z-index: 2
}

.sustainability-copy .section-emblem {
  margin: 0 auto 24px;
  background: #fff
}

.sustainability-copy h2 {
  font-size: 40px;
  line-height: 1.6;
  font-weight: 500
}

.sustainability-copy .english {
  font: 16px Roboto,sans-serif;
  margin-top: 8px
}

.sustainability-description {
  font-size: 24px;
  line-height: 1.8;
  margin-top: 48px;
  font-weight: 500
}

.sustainability-links {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 56px
}

.sustainability-photo {
  position: absolute;
  overflow: hidden;
  border-radius: 8px;
  will-change: transform
}

.sustainability-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover
}

.photo-1 {
  left: 6.67%;
  top: 7.11%;
  width: 21.18%;
  height: 22%
}

.photo-2 {
  left: 69.07%;
  top: 9.77%;
  width: 24.26%;
  height: 16.25%
}

.photo-3 {
  left: 3.89%;
  top: 39.77%;
  width: 20.62%;
  height: 17.1%
}

.photo-4 {
  left: 78.33%;
  top: 42.19%;
  width: 12.36%;
  height: 12.17%
}

.photo-5 {
  left: 6.67%;
  top: 71.77%;
  width: 30.48%;
  height: 17.59%
}

.photo-6 {
  left: 70.49%;
  top: 72.11%;
  width: 22.77%;
  height: 16.58%
}

.photo-6 img:last-child {
  width: 131.24%;
  height: 137.85%;
  left: -15.68%;
  top: -.16%
}

.top-related-link {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 64px max(24px,calc((100% - 1248px)/2))
}

.service-banner {
  padding: 40px 32px;
  border-radius: 8px;
  box-shadow: 0 2px 12px #0002;
  display: flex;
  align-items: center;
  gap: 24px;
  background: #fff7f2
}

.service-banner.purple {
  background: #f7f3fa
}

.service-banner>img {
  max-width: 90px
}

.service-banner h3 {
  font-size: 24px;
  font-weight: 500;
  white-space: nowrap
}

.service-banner small {
  display: inline-block;
  font-size: 14px;
  border: 1px solid #999;
  border-radius: 2px;
  padding: 3px 10px;
  color: #888;
  margin-top: 8px
}

.service-banner .link-button {
  font-size: 14px;
  padding: 12px 24px;
  gap: 16px;
  margin-left: auto
}

.service-banner .link-button img {
  max-width: 26px
}

.footer__banner {
  display: grid;
  grid-template-columns: 1fr 1fr
}

.footer__banner>a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  text-decoration: none;
  padding: 32px 24px 60px;
  border-right: 1px solid var(--line)
}

.footer__banner span {
  font-size: 16px
}

.footer__banner img {
  max-width: 90%;
  height: auto
}

.footer__banner>a:first-child>img {
  width: 465px
}

.footer__banner>a:last-child>img {
  width: 220px
}

.footer__navigation {
  background: var(--brand);
  position: relative;
  padding: 80px max(24px,calc((100% - 1248px)/2));
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 48px 0;
  color: #fff;
  min-height: 536px
}

.footer__navigation h3 {
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 16px
}

.footer__navigation h3 a {
  text-decoration: none
}

.footer__navigation li+li {
  margin-top: 8px
}

.footer__navigation li a {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  line-height: 1.4;
  text-decoration: none
}

.footer__navigation li img {
  max-width: 5px
}

.bt-pagetop {
  position: absolute;
  right: 32px;
  bottom: 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  font: 12px Roboto,sans-serif
}

.bt-pagetop>img {
  box-sizing: content-box;
  background: white;
  border-radius: 50%;
  padding: 23px;
  max-width: 18px
}

.sub-footer__navigation {
  padding: 32px max(24px,calc((100% - 1248px)/2));
  font-size: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px
}

.sub-footer__navigation>a {
  text-decoration: none;
  border-right: 1px solid var(--line);
  padding-right: 24px
}

.sub-footer__navigation p {
  width: 100%;
  color: #999
}

@media(min-width:1024px) and (max-width:1350px) {
  .global-bland img {
    width: 280px
  }
  .global-navigation {
    font-size: 12px;
    gap: 16px
  }
  .security-code {
    font-size: 10px
  }
  .metrics {
    padding: 16px;
    gap: 10px
  }
  .metrics dl {
    padding-right: 10px
  }
  .metrics strong {
    font-size: 26px
  }
  .metrics dt {
    font-size: 13px
  }
  .top-financial__contents {
    grid-template-columns: 1fr 1fr;
    gap: 40px
  }
  .service-banner {
    padding: 32px 20px;
    gap: 16px
  }
  .service-banner>img {
    max-width: 64px
  }
  .service-banner h3 {
    font-size: 18px
  }
  .service-banner .link-button {
    padding: 12px 16px;
    font-size: 12px
  }
  .sustainability-copy h2 {
    font-size: 32px
  }
  .sustainability-description {
    font-size: 20px
  }
}

@media(max-width:1023px) {
  body {
    font-size: 15px
  }
  .top-stock {
    height: 64px;
    padding: 0 12px;
    gap: 0;
    position: relative;
    align-items: flex-start;
    font-size: 12px
  }
  .top-stock__title {
    display: none
  }
  .top-stock__contetns {
    height: 32px;
    align-items: center;
    gap: 8px;
    white-space: nowrap
  }
  .top-stock b {
    padding: 3px 4px;
    font-size: 10px;
    margin-right: 4px
  }
  .top-stock small {
    font-size: 9px
  }
  .stock-date {
    position: absolute;
    top: 40px;
    left: 12px;
    font-size: 10px
  }
  .stock-chart {
    position: absolute;
    top: 35px;
    right: 12px;
    font-size: 10px
  }
  .header-inner {
    height: 56px;
    padding: 0 12px;
    gap: 8px
  }
  .global-bland {
    margin-right: auto
  }
  .global-bland img {
    width: 254px;
    max-width: calc(100vw - 110px)
  }
  .security-code,.global-navigation {
    display: none
  }
  .language,.search-toggle {
    width: 32px;
    height: 32px;
    font-size: 12px
  }
  .search-toggle img {
    max-width: 18px
  }
  .mobile-navigation {
    height: 40px;
    background: #f6ecf0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    font-size: 11px
  }
  .menu-toggle {
    display: flex;
    align-items: center;
    gap: 6px;
    border: 0;
    background: none;
    font-size: 11px;
    padding: 0
  }
  .menu-toggle img {
    max-width: 20px
  }
  #mobile-menu {
    padding: 16px 24px;
    background: #fff;
    position: absolute;
    top: 160px;
    left: 0;
    right: 0;
    z-index: 20;
    box-shadow: 0 10px 20px #0002
  }
  #mobile-menu a {
    display: block;
    padding: 14px 0;
    text-decoration: none;
    border-bottom: 1px solid var(--line);
  }
  .site-search {
    padding: 16px;
    font-size: 13px
  }
  .site-search input {
    width: 150px;
    margin-left: 8px
  }
  .hero {
    height: 984px;
    min-height: auto;
  }
  .jumbotron-slider {
    height: 450px
  }
  .jumbotron-image {
    height: 100%;
    top: 0;
    background-size: cover;
    background-position: center
  }
  .jumbotron-slider__slide: first-child .jumbotron-image {
    background-image: url('../img/redesign/top-hero-slide-mobile.png')!important
  }
  .jumbotron-contents {
    padding: 32px 24px
  }
  .jumbotron-corporate-slogan h1 {
    font-size: 23px;
    line-height: 36px;
    margin-bottom: 22px
  }
  .jumbotron-corporate-slogan br {
    display: none
  }
  .link-button {
    font-size: 14px;
    padding: 14px 24px;
    gap: 20px;
    min-height: 52px
  }
  .link-button img {
    max-width: 25px
  }
  .hero-controls {
    bottom: 66px;
    right: 24px;
    gap: 8px
  }
  .brand-wave {
    top: 378px;
    height: 126px
  }
  .brand-wave img {
    display: none
  }
  .brand-wave {
    background: url('../img/redesign/top-hero-wave-mobile.svg') center top/650px 126px no-repeat;
    pointer-events: none
  }
  .jumbotron-data {
    top: 450px;
    left: 0;
    width: 100%;
    height: 534px;
    padding: 24px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    background: white
  }
  .fund-card {
    height: 141px;
    width: 100%;
    padding: 20px 16px;
    gap: 16px
  }
  .fund-card dt {
    font-size: 14px
  }
  .fund-card dt small {
    font-size: 12px
  }
  .fund-card strong {
    font-size: 32px
  }
  .forecast-values {
    width: 100%;
    justify-content: center;
    gap: 24px
  }
  .forecast-values dl+dl {
    padding-left: 24px
  }
  .metrics {
    height: 180px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding: 0;
    background: none;
    box-shadow: none;
    gap: 12px
  }
  .metrics dl {
    height: 84px;
    background: #fff;
    box-shadow: 0 2px 16px #00000014;
    border-radius: 8px;
    padding: 12px;
    border: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center
  }
  .metrics strong,.metrics dl: first-child strong {
    font-size: 28px
  }
  .metrics dl:first-child strong {
    font-size: 44px;
  }
  .metrics dl: last-child strong {
    font-size: 20px
  }
  .metrics dd {
    font-size: 10px;
    margin: 0 0 8px
  }
  .metrics dt {
    font-size: 13px;
    padding: 4px 8px
  }
  .section {
    padding: 56px 24px
  }
  .section-heading {
    gap: 12px;
    min-height: 54px
  }
  .section-emblem {
    width: 48px;
    height: 48px;
    border-radius: 12px
  }
  .section-emblem img {
    max-width: 26px
  }
  .section-heading h2 {
    font-size: 24px;
    line-height: 32px
  }
  .section-heading p {
    font-size: 14px;
    margin-top: 8px
  }
  .section>.link-button {
    position: static;
    margin-top: 28px;
    order: 3;
    align-self: flex-start
  }
  .news {
    min-height: 824px;
    display: flex;
    flex-direction: column
  }
  .news__body {
    margin-top: 28px;
    order: 2
  }
  .news .eirItem {
    min-height: 110px;
    padding: 20px 0;
    display: grid;
    grid-template-columns: 60px auto;
    gap: 12px 16px;
    font-size: 12px;
    align-content: center
  }
  .news-category {
    font-size: 12px;
    padding: 4px 10px;
    width: max-content
  }
  .news .eirItem_title_link {
    grid-column: 1/-1;
    display: flex;
    font-size: 14px;
    justify-content: space-between;
    gap: 8px;
    min-height: 36px
  }
  .news-file {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    width: 70px
  }
  .news-file small {
    display: block;
    font-size: 10px;
    line-height: 14px
  }
  .top-financial {
    min-height: 1052px;
    display: flex;
    flex-direction: column
  }
  .top-financial h2 span {
    display: block
  }
  .top-financial__contents {
    display: flex;
    flex-direction: column;
    gap: 28px;
    margin-top: 28px;
    order: 2
  }
  .top-financial__list a {
    padding: 16px;
    gap: 12px
  }
  .top-financial__list a>span: not(.document-arrow) {
    font-size: 14px
  }
  .document-icon {
    max-width: 32px
  }
  .top-financial__list small {
    font-size: 12px;
    margin-top: 6px
  }
  .document-arrow {
    flex-shrink: 0
  }
  .financial-cover {
    height: auto;
    aspect-ratio: 342/246;
    border-radius: 8px
  }
  .top-portfolio {
    height: 784px;
    display: flex;
    flex-direction: column
  }
  .portfolio-intro {
    margin-top: 24px;
    line-height: 27px
  }
  .image-gallery {
    position: relative;
    inset: auto;
    flex-shrink: 0;
    width: 100%;
    height: 380px;
    margin-top: 24px;
    pointer-events: auto
  }
  .gallery-item {
    left: 0!important;
    bottom: 0;
    width: 100%;
    height: 380px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .7s,transform .7s;
    transform: scale(.96)
  }
  .gallery-item.is-active {
    width: 100%;
    height: 380px;
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
    box-shadow: none
  }
  .gallery-item.is-active>span {
    font-size: 18px;
    padding: 40px 12px 16px
  }
  .gallery-controls {
    position: static;
    width: 100%;
    margin-top: 24px;
    justify-content: space-between;
    height: 36px
  }
  .gallery-controls button {
    width: 36px;
    height: 36px
  }
  .top-portfolio>.link-button {
    order: 5;
    margin-top: 24px
  }
  .top-strategy {
    height: auto;
    min-height: 1310px;
    display: flex;
    flex-direction: column
  }
  .top-strategy .section-heading h2 {
    font-size: 23px
  }
  .top-strategy .section-heading p {
    font-size: 10px
  }
  .strategy-cards {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin-top: 28px
  }
  .strategy-card {
    padding: 24px;
    min-height: 0;
    gap: 24px
  }
  .strategy-card h3 {
    font-size: 18px;
    min-height: 0
  }
  .strategy-card p {
    font-size: 15px;
    line-height: 1.9
  }
  .strategy-background img {
    object-fit: cover
  }
  .strategy-background img+img {
    object-position: bottom
  }
  .top-strategy>.link-button {
    position: relative
  }
  .top-sustainability {
    height: 1100px;
    background: #004ea2
  }
  .sustainability-background img {
    filter: blur(4px)
  }
  .sustainability-copy {
    top: 26.61%;
    left: 0;
    right: 0;
    padding: 0 24px
  }
  .sustainability-copy .section-emblem {
    width: 62px;
    height: 62px;
    margin-bottom: 20px
  }
  .sustainability-copy .section-emblem img {
    max-width: 29px
  }
  .sustainability-copy h2 {
    font-size: 22px;
    line-height: 1.6;
    max-width: 230px;
    margin: auto
  }
  .sustainability-copy .english {
    font-size: 11px;
    margin-top: 16px
  }
  .sustainability-description {
    font-size: 15px;
    line-height: 1.8;
    margin-top: 24px
  }
  .sustainability-description br {
    display: none
  }
  .sustainability-links {
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px
  }
  .sustainability-links .link-button {
    font-size: 13px;
    padding: 14px 16px;
    gap: 12px
  }
  .sustainability-links .link-button img {
    max-width: 27px
  }
  .photo-1 {
    height: 22%
  }
  .photo-3 {
    height: auto;
    aspect-ratio: 251/171;
    top: 43%
  }
  .photo-5 {
    height: 17.59%
  }
  .photo-6 {
    height: 16.58%
  }
  .top-related-link {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 48px 24px
  }
  .service-banner {
    min-height: 163px;
    padding: 24px;
    gap: 16px;
    display: grid;
    grid-template-columns: 56px 1fr;
    background: #fff7f2
  }
  .service-banner>img {
    max-width: 56px
  }
  .service-banner h3 {
    font-size: 18px;
    white-space: normal
  }
  .service-banner small {
    font-size: 12px
  }
  .service-banner .link-button {
    grid-column: 1/-1;
    margin: 4px 0 0;
    justify-self: start;
    font-size: 14px;
    padding: 14px 24px
  }
  .footer__banner {
    display: flex;
    flex-direction: column;
    padding: 0 24px
  }
  .footer__banner>a {
    padding: 0 0 28px;
    border: 0;
    gap: 20px
  }
  .footer__banner>a+a {
    padding-top: 28px;
    border-top: 1px solid var(--line);
    padding-bottom: 40px
  }
  .footer__banner span {
    font-size: 13px
  }
  .footer__banner>a: first-child>img {
    width: 318px;
    max-width: 100%
  }
  .footer__banner>a: last-child>img {
    width: 250px
  }
  .footer__navigation {
    display: flex;
    flex-direction: column;
    padding: 40px 24px 148px;
    gap: 28px;
    min-height: 1172px
  }
  .footer__navigation h3 {
    font-size: 16px;
    margin-bottom: 16px
  }
  .footer__navigation li a {
    font-size: 14px;
    line-height: 20px
  }
  .bt-pagetop {
    bottom: 32px;
    right: calc(50% - 32px)
  }
  .sub-footer__navigation {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 32px 24px;
    font-size: 13px;
    min-height: 250px
  }
  .sub-footer__navigation>a {
    border: 0;
    padding: 0;
    line-height: 22px
  }
  .sub-footer__navigation p {
    font-size: 10px;
    line-height: 16px
  }
}

@media(prefers-reduced-motion:reduce) {
  *,*: before,*:after {
    scroll-behavior: auto!important;
    transition: none!important
  }
  .sustainability-photo {
    transform: none!important
  }
}

.section-heading h2 {
  line-height: 32px
}

.top-financial__list a>span:not(.document-arrow) {
  line-height: 18px
}

.top-financial__list small {
  line-height: 14px
}

.footer__banner>a:last-child>img {
  width: 408px
}

.top-portfolio>.section-heading,.portfolio-intro,.top-portfolio>.link-button {
  position: relative;
  z-index: 4
}

.top-portfolio>.link-button {
  right: auto;
  top: auto
}

.footer__banner span {
  display: flex;
  align-items: center;
  gap: 8px
}

.footer__banner span img {
  max-width: 16px
}

.footer__banner>a {
  height: 192px;
  padding-bottom: 24px
}

@media(max-width:1023px) {
  .footer__banner>a {
    height: auto
  }
  .footer__banner>a: last-child>img {
    width: 250px
  }
  .section-heading h2 {
    line-height: 32px
  }
  .top-financial__list a>span: not(.document-arrow) {
    line-height: 19px
  }
  .top-financial__list small {
    line-height: 13px
  }
  .top-portfolio>.link-button {
    position: relative
  }
  .top-stock__contetns {
    font-size: clamp(9px,3.08vw,12px);
    gap: clamp(2px,2vw,8px)
  }
  .top-stock b {
    font-size: clamp(8px,2.56vw,10px)
  }
  .top-stock small {
    font-size: clamp(7px,2.3vw,9px)
  }
}

@media(max-width:1023px) {
  .section>.link-button {
    height: 52px;
    padding-top: 12px;
    padding-bottom: 12px
  }
  .footer__banner span img {
    width: 16px;
    max-width: 16px;
    height: 16px
  }
  .top-related-link .link-button {
    height: 52px
  }
  .top-portfolio>.link-button {
    flex-shrink: 0
  }
}

@media(max-width:1023px) {
  .jumbotron-corporate-slogan h1 {
    font-size: 20px;
    line-height: 36px
  }
  .jumbotron-corporate-slogan br {
    display: block
  }
  .jumbotron-contents>.link-button {
    font-size: 16px
  }
  .top-sustainability .link-button {
    line-height: 13px
  }
}

@media(max-width:1023px) {
  .brand-wave {
    isolation: isolate
  }
  .brand-wave: before {
    content: '';
    position: absolute;
    z-index: -1;
    left: 0;
    right: 0;
    top: 21px;
    height: 105px;
    background: white
  }
}

.jumbotron-contents {
  opacity: 1;
  transform: translateX(0);
  transition: opacity .8s ease-out,transform .8s ease-out
}

.hero-intro-pending .jumbotron-contents {
  opacity: 0;
  transform: translateX(30px);
  transition: none
}

@media(prefers-reduced-motion:reduce) {
  .hero-intro-pending .jumbotron-contents {
    opacity: 1;
    transform: none
  }
  .jumbotron-contents {
    transition: none
  }
}

.global-header {
    position: fixed;
    width: 100%;
    background-color: #fff;
    z-index: 10;
}

.global-navigation>.gn {
  display: flex;
  align-items: center;
  gap: 20px
}

.global-menu__navigation__item {
  position: relative
}

.global-navigation .global-menu__navigation__primary {
  display: flex;
  align-items: center;
  height: 72px
}

.global-menu__navigation__secondary {
  background: white;
  border-top: 3px solid var(--pink);
  box-shadow: 0 8px 24px #00000026;
  border-radius: 0 0 8px 8px
}

.global-navigation .global-menu__navigation__secondary {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 260px;
  width: max-content;
  max-width: 380px;
  padding: 12px 0;
  white-space: normal
}

.global-navigation .global-menu__navigation__item:nth-last-child(-n+2)>.global-menu__navigation__secondary {
  left: auto;
  right: 0
}

.global-menu__navigation__secondary a {
  display: block;
  padding: 12px 20px;
  font-size: 14px;
  line-height: 1.6;
  text-decoration: none
}

.global-menu__navigation__secondary a:hover,.global-menu__navigation__secondary a:focus-visible {
  background: #f6ecf0;
  color: #b92370
}

.global-navigation .is-open>.global-menu__navigation__primary {
  color: #c43b80
}

@media(min-width:1024px) and (max-width:1350px) {
  .global-navigation>.gn {
    gap: 16px
  }
}

@media(max-width:1023px) {
  #mobile-menu {
    max-height: calc(100dvh - 160px);
    overflow-y: auto;
    overscroll-behavior: contain
  }
  #mobile-menu .global-menu__navigation__primary {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--line);
    background: white;
    text-align: left;
    padding: 16px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 15px;
    color: var(--ink)
  }
  #mobile-menu .global-menu__navigation__secondary {
    position: static;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    background: #faf5f8;
    padding: 8px 12px
  }
  #mobile-menu .global-menu__navigation__secondary a {
    border: 0;
    font-size: 13px;
    padding: 12px 8px
  }
  .submenu-chevron {
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--pink);
    border-bottom: 2px solid var(--pink);
    transform: rotate(45deg);
    margin-right: 6px;
    transition: transform .2s
  }
  .is-open>.global-menu__navigation__primary .submenu-chevron {
    transform: rotate(225deg)
  }
}

@media(max-width:1023px) {
  .section>.link-button {
    align-self: center;
    margin-left: auto;
    margin-right: auto
  }
  .service-banner .link-button {
    justify-self: center;
    margin-left: auto;
    margin-right: auto
  }
  .sustainability-links {
    justify-content: center
  }
}

.bt-pagetop {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 30;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .25s ease,visibility .25s ease;
  color: var(--ink)
}

.bt-pagetop.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto
}

.bt-pagetop>img {
  box-shadow: 0 2px 12px #00000026
}

.bt-pagetop>span {
  padding: 2px 5px;
  border-radius: 3px;
  background: #ffffffeb
}

@media(max-width:1023px) {
  .bt-pagetop {
    right: 16px;
    bottom: 16px
  }
}
/* JS adds these classes only when scroll observation is available. */
.section-reveal {
  opacity: 0;
  translate: 0 36px;
  transition: opacity .9s cubic-bezier(.22,1,.36,1),
              translate .9s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--reveal-delay, 0ms);
}
.section-reveal.is-revealed {
  opacity: 1;
  translate: 0 0;
}
@media(prefers-reduced-motion:reduce) {
  .section-reveal { opacity: 1; translate: none; transition: none; }
}
@media print {
  .section-reveal { opacity: 1; translate: none; transition: none; }
}
/* Sustainability copy enters horizontally while photos retain their parallax. */
.top-sustainability .sustainability-copy.section-reveal {
  translate: 48px 0;
  transition-duration: 1.1s;
}
.top-sustainability .sustainability-copy.section-reveal.is-revealed {
  translate: 0 0;
}
@media(max-width:1023px) {
  .top-sustainability .sustainability-copy.section-reveal {
    translate: 24px 0;
  }
  .top-sustainability .sustainability-copy.section-reveal.is-revealed {
    translate: 0 0;
  }
}
@media(prefers-reduced-motion:reduce) {
  .top-sustainability .sustainability-copy.section-reveal {
    translate: none;
    transition: none;
  }
}
@media print {
  .top-sustainability .sustainability-copy.section-reveal {
    translate: none;
    transition: none;
  }
}
/* The next section scrolls over the strategy after all its content is in view. */
.top-strategy {
  position: sticky;
  top: min(0px, calc(100svh - var(--strategy-height, 754px)));
  z-index: 1;
}
.top-sustainability {
  position: relative;
  z-index: 2;
  background-color: #336a50;
}
@media(prefers-reduced-motion:reduce) {
  .top-strategy { position: relative; top: auto; }
}
@media print {
  .top-strategy { position: relative; top: auto; }
}
/* Mobile hero: allow the header and CMS content to determine the layout. */
@media(max-width:1023px) {
  .hero {
    height: auto;
    min-height: 0;
    max-height: none;
    padding-top: var(--mobile-header-height, 120px);
  }
  .jumbotron-slider { height: 450px; }
  .jumbotron-contents {
    width: 100%;
    padding: 32px 24px;
  }
  .jumbotron-corporate-slogan h1 {
    font-size: clamp(17px, 4.5vw, 23px);
    line-height: 1.65;
    overflow-wrap: anywhere;
  }
  .jumbotron-contents > .link-button {
    max-width: 100%;
    white-space: normal;
  }
  .brand-wave {
    top: calc(var(--mobile-header-height, 120px) + 200px);
    height: 126px;
    background: none;
    z-index: 3;
  }
  .brand-wave img {
    display: block;
    width: 110.2%;
    height: 110px;
    left: -10.2%;
    top: 0;
  }
  .brand-wave img + img {
    width: 100%;
    height: 126px;
    left: 0;
    top: 20px;
  }
  .jumbotron-data {
    position: relative;
    top: auto;
    left: auto;
    height: auto;
    padding: 24px;
    grid-template-columns: minmax(0, 1fr);
    z-index: 4;
  }
  .jumbotron-data .display-none { display: none; }
  .fund-card { height: auto; min-height: 141px; min-width: 0; }
  .forecast-values { gap: 12px; }
  .forecast-values dl { flex: 1; min-width: 0; }
  .forecast-values dl + dl { padding-left: 12px; }
  .metrics {
    height: auto;
    min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .metrics dl, .metrics dl:last-child {
    width: 100%;
    height: auto;
    min-height: 100px;
    padding: 12px 8px;
  }
  .metrics strong, .metrics dl:first-child strong { font-size: clamp(24px, 6.8vw, 36px); }
  .metrics dl:last-child strong { font-size: clamp(18px, 5vw, 26px); }
  .metrics dt { max-width: 100%; white-space: normal; }
}
@media(max-width:1023px) {
  .brand-wave, .jumbotron-data { bottom: auto; }
}
@media(max-width:1023px) {
  .brand-wave img + img { top: 16px; }
}

/* 2026-10-14 commentback: announcement and consistent metric baselines. */
body.is-home:has(> .banner-wrap) {
  padding-top: var(--mobile-header-height, 104px);
}
.banner-wrap {
  position: relative;
  margin-top: 0;
  padding: 15px 15px;
  background: #eef8fc;
  color: #3b3e43;
}
.global-header { top: 0; }
.banner-wrap + .hero { padding-top: 0; }
@font-face {
  font-family: "FontAwesome";
  src: url("../vendor/font-awesome/fonts/fontawesome-webfont.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: block;
}
.banner-wrap p {
  display: flex;
  align-items: flex-start;
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  font-weight: bold;
  text-align: left;
  width: 100%;
}
.banner-wrap p::before {
  font-family: "Font Awesome 6 Free", "FontAwesome";
  content: "\f024";
  font-weight: 900;
  font-size: .75em;
  display: inline-block;
  width: 22px;
  height: 22px;
  background-color: #eb6d96;
  color: #ffffff;
  flex-shrink: 0;
  text-align: center;
  line-height: 22px;
  border-radius: 50%;
  margin-right: 10px;
}
body:not(.is-home) .top-stock, body:not(.is-home) .rf-top-stock { display: none !important; }
@media (min-width: 1024px) {
  .fund-card.metrics dl { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; }
  .fund-card.metrics dd { display: flex; align-items: baseline; justify-content: center; min-height: 44px; }
  .fund-card.metrics dt { margin-top: 0; }
}
body.is-en .fund-card dd small { font-size: 11px; }
body.is-en .fund-card.result, body.is-en .fund-card.forecast { min-width: 0; }
body.is-en .fund-card dd strong { font-size: clamp(24px,2.3vw,32px); }
@media (max-width: 1023px) {
  body.is-en .fund-card dd small { display: block; margin-top: 5px; }
}

.gallery-image-pending { width: 100%; height: 100%; min-height: 200px; display: grid; place-items: center; background: #f3f3f3; color: #666; }
.financial-webcast .eirItem_title_link { min-width: 0; white-space: normal; }
.financial-webcast .eirItem_title_link > span:first-of-type { min-width: 0; overflow-wrap: anywhere; }

/* Keep English financial cards intact when E-IR loads its own stylesheet. */
body.is-en .top-financial .top-financial__list,
body.is-en .top-financial .top-financial__list--inner,
body.is-en .top-financial .eir {
  min-width: 0;
  width: 100%;
}
body.is-en .top-financial .top-financial__list ul {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.is-en .top-financial .top-financial__list li {
  display: block;
  width: 100%;
  margin: 0 0 8px;
  padding: 0;
  border: 0;
}
body.is-en .top-financial .top-financial__list a.eirItem_title_link {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  box-sizing: border-box;
  width: 100% !important;
  min-height: 72px;
  padding: 16px 24px;
  gap: 8px;
  border-radius: 8px;
  background: #fff;
  white-space: normal;
  text-decoration: none;
}
body.is-en .top-financial .eirItem_title_link > .document-icon {
  display: block;
  width: 40px;
  max-width: 40px;
  height: auto;
  flex: 0 0 40px;
}
body.is-en .top-financial .eirItem_title_link > span:not(.document-arrow) {
  display: block;
  flex: 1 1 0;
  min-width: 0;
  padding: 0;
  background: transparent;
  overflow-wrap: anywhere;
}
body.is-en .top-financial .eirItem_title_link > .document-arrow {
  display: grid;
  flex: 0 0 40px;
  margin-left: auto;
}
@media (max-width: 1023px) {
  body.is-en .top-financial .top-financial__list a.eirItem_title_link {
    padding: 16px;
    gap: 12px;
  }
  body.is-en .top-financial .eirItem_title_link > .document-icon {
    width: 32px;
    max-width: 32px;
    flex-basis: 32px;
  }
}

/* Keep the fourth slide credit independent of background-image cropping. */
.jumbotron-image__wrapper {
  position: relative;
}
.jumbotron-copyright {
  position: absolute;
  bottom: 146px;
  right: 32px;
  z-index: 3;
  max-width: calc(100% - 32px);
  color: #fff;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  text-shadow: 0 1px 3px #000, 0 0 4px #000;
  overflow-wrap: anywhere;
  pointer-events: none;
}

@media (max-width: 1023px) {
  .jumbotron-copyright {
    bottom: 82px;
    right: 12px;
    max-width: calc(100% - 24px);
    font-size: 12px;
  }
}
