@charset "UTF-8";

/* ==========================================================================
   Sections
========================================================================== */
.section {
  margin-top: 4rem;
  margin-bottom: 4rem;
}
.section_L {
  margin-top: 7rem;
  margin-bottom: 7rem;
}
.section-padding {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.content {
  margin-top: 2.75rem;
  margin-bottom: 2.75rem;
}
@media (max-width: 991px) {
  header + section.section {
    margin-top: 0;
  }
}
@media (min-width: 992px) {
  .section {
    margin-top: 5rem;
    margin-bottom: 5rem;
  }
  .section_L {
    margin-top: 11.5rem;
    margin-bottom: 11.5rem;
  }
  .section-padding {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
  .content {
    margin-top: 3.6rem;
    margin-bottom: 3.6rem;
  }
}


.container-fluid, .container {
  padding-right: 8vw;
  padding-left: 8vw;
}
.row {
  margin-right: -8vw;
  margin-left: -8vw;
}
.col, [class*="col-"] {
  padding-right: 8vw;
  padding-left: 8vw;
}
.no-gutters > .col,
.no-gutters > [class*="col-"] {
  padding-right: 0;
  padding-left: 0;
}

.gapXS > .row {
  margin-right: -2vw;
  margin-left: -2vw;
}
.gapXS > .row > .col,
.gapXS > .row > [class*="col-"] {
  padding-right: 2vw;
  padding-left: 2vw;
}

.gapS > .row {
  margin-right: -3.75vw;
  margin-left: -3.75vw;
}
.gapS > .row > .col,
.gapS > .row > [class*="col-"] {
  padding-right: 3.75vw;
  padding-left: 3.75vw;
}

@media (min-width: 576px) {
  .container-fluid, .container {
    padding-right: 1.5rem;
    padding-left: 1.5rem;
  }
  .row {
    margin-right: -1.5rem;
    margin-left: -1.5rem;
  }
  .col, [class*="col-"] {
    padding-right: 1.5rem;
    padding-left: 1.5rem;
  }

  .container.container_XS {
    max-width: min(88%, 46.5rem);
  }

  .gapXS > .row,
  .gapS > .row {
    margin-right: -.786rem;
    margin-left: -.786rem;
  }
  .gapXS > .row > .col,
  .gapXS > .row > [class*="col-"],
  .gapS > .row > .col,
  .gapS > .row > [class*="col-"] {
    padding-right: .786rem;
    padding-left: .786rem;
  }

}
@media (min-width: 992px) {
  .container.container_S {
    max-width: min(92%, 61rem);
  }
  .container.container_M {
    max-width: min(92%, 70rem);
  }
  .container {
    max-width: 92%;
  }
  .container.container_L {
    max-width: 96.5%;
  }
}
@media (min-width: 1200px) {
  .container-fluid,
  .container {
    width: 85.5%;
    max-width: 1280px;
  }
  .container.container_L {
    width: 92.5%;
    max-width: 1440px;
  }

  .gapM > .row {
    margin-right: -2rem;
    margin-left: -2rem;
  }
  .gapM > .row > .col,
  .gapM > .row > [class*="col-"] {
    padding-right: 2rem;
    padding-left: 2rem;
  }
  
  .gapL > .row {
    margin-right: -2.75rem;
    margin-left: -2.75rem;
  }
  .gapL > .row > .col,
  .gapL > .row > [class*="col-"] {
    padding-right: 2.75rem;
    padding-left: 2.75rem;
  }

  .gapXL > .row {
    margin-right: -4rem;
    margin-left: -4rem;
  }
  .gapXL > .row > .col,
  .gapXL > .row > [class*="col-"] {
    padding-right: 4rem;
    padding-left: 4rem;
  }
}


.row.no-gutters {
  margin-right: 0;
  margin-left: 0;
}



.over-right {
  margin-right: calc(((100vw - 100%) / 2) * -1);
}
.over-left {
  margin-left: calc(((100vw - 100%) / 2) * -1);
}

.full {
  width: 100vw;
  margin-right: calc(((100vw - 100%) / 2) * -1);
  margin-left: calc(((100vw - 100%) / 2) * -1);
  padding-right: 0;
  padding-left: 0;
}
@media (max-width: 991px) {
  .full_md {
    width: 100vw;
    margin-right: calc(((100vw - 100%) / 2) * -1);
    margin-left: calc(((100vw - 100%) / 2) * -1);
    padding-right: 0;
    padding-left: 0;
  }
  .over-right_md {
    margin-right: calc(((100vw - 100%) / 2) * -1);
  }
  .over-left_md {
    margin-left: calc(((100vw - 100%) / 2) * -1);
  }

  .no-over-right_md {
    margin-right: 0!important;
  }
  .no-over-left_md {
    margin-left: 0!important;
  }
}
@media (max-width: 767px) {
  .full_sm {
    width: 100vw;
    margin-right: calc(((100vw - 100%) / 2) * -1);
    margin-left: calc(((100vw - 100%) / 2) * -1);
    padding-right: 0;
    padding-left: 0;
  }
  .over-right_sm {
    margin-right: calc(((100vw - 100%) / 2) * -1);
  }
  .over-left_sm {
    margin-left: calc(((100vw - 100%) / 2) * -1);
  }

  .over-right_sm._scroll {
    overflow-y: hidden;
    overflow-x: auto;
  }
  .over-right_sm._scroll picture {
    min-width: 676px;
  }

  .no-over-right_sm {
    margin-right: 0!important;
  }
  .no-over-left_sm {
    margin-left: 0!important;
  }
}
@media (max-width: 575px) {
  .full_sp {
    width: 100vw;
    margin-right: calc(((100vw - 100%) / 2) * -1);
    margin-left: calc(((100vw - 100%) / 2) * -1);
    padding-right: 0;
    padding-left: 0;
  }
  .over-right_sp {
    margin-right: calc(((100vw - 100%) / 2) * -1);
  }
  .over-left_sp {
    margin-left: calc(((100vw - 100%) / 2) * -1);
  }
  .no-over-right_sp {
    margin-right: 0!important;
  }
  .no-over-left_sp {
    margin-left: 0!important;
  }
}
@media (min-width: 768px) {
  .over-right_sm._scroll + span.small {
    display: none;
  }
}

hr {
  border-top: 1px solid var(--border3);
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
body.ir-style hr,
.bg-white hr {
  border-top-color: var(--border1);
}


/* ==========================================================================
   Links
========================================================================== */
a {
  color: inherit;
  text-decoration: none;
  transition: .2s ease-in-out;
  transition-property: background, color, opacity, transform;
}
.link {
  color: var(--color1);
  text-decoration: underline;
}
.underline {
  text-decoration: underline;
}
a.underline:hover,
a:hover span.underline {
  text-decoration: none;
  opacity: 1;
}




/* ==========================================================================
   Image
========================================================================== */
picture {
  display: block;
}
picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


picture.cover {
  height: 100%;
}
picture.img_wide {
  height: min(100%,300px);
}
picture.img_portrait {
  height: min(100%,220px);
}
@media (min-width: 768px) {
  picture.img_wide {
    height: 400px;
  }
}
@media (min-width: 992px) {
  picture.img_wide,
  picture.img_portrait {
    height: 500px;
  }
}


figcaption {
  display: block;
  font-size: .929rem;
  line-height: 1.5;
  margin-top: .75em;
}


img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
svg {
  fill: currentColor;
}


.no-image {
  background: var(--l-gray) url(../img/logo.svg) no-repeat center;
  background-size: min(6%, 1.5rem);
}

.images.row figure {
  display: block;
  margin-top: 1.5rem;
}
@media (min-width: 992px) {
  .images.row figure {
    margin-top: 0;
  }
}

/* ==========================================================================
   Typography
========================================================================== */
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6,
.h7,
.h8 {
  font-weight: 700;
  line-height: 1.75;
  position: relative;
}
h1 a, .h1 a,
h2 a, .h2 a,
h3 a, .h3 a,
h4 a, .h4 a,
h5 a, .h5 a,
h6 a, .h6 a,
.h7 a,
.h8 a {
  text-decoration: none;
}

.huge1  { font-size: 2.5em; }
.huge1.en_ttl  { line-height: 1.1; }
.huge2  { font-size: 1.857em; }
h1, .h1 { font-size: 1.857em; }
h2, .h2 { font-size: 1.786em; }
h3, .h3 { font-size: 1.429em; }
h4, .h4 { font-size: 1.429em; }
h5, .h5 { font-size: 1.429em; }
h6, .h6 { font-size: 1.286em; }
.h7     { font-size: 1.143em; }
.h8     { font-size: 1.143em; }
@media (min-width: 576px) {
  .huge2 { font-size: 2.75em; }
}
@media (min-width: 768px) {
  .huge1 { font-size: 3em; }
  .huge2 { font-size: 3em; }
}
@media (min-width: 992px) {
  .huge1 { font-size: 4.285em; }
  .huge2 { font-size: 4em; }
  h1, .h1 { font-size: 2.857em; }
  h2, .h2 { font-size: 2.571em; }
  h3, .h3 { font-size: 2em; }
  h4, .h4 { font-size: 1.714em; }
  h5, .h5 { font-size: 1.571em; }
  h6, .h6 { font-size: 1.429em; }
  .h7     { font-size: 1.286em; }
  .h8     { font-size: 1.143em; }

  .read {
    font-size: 1.143em;
  }
}
@media (min-width: 1200px) {
  .huge { font-size: 6.154em; }
}


@media (max-width: 991px) {
  .md-h2 { font-size: 1.786em!important; }
  .md-h6 { font-size: 1.286em!important; }
  .md-h7 { font-size: 1.143em!important; }
}
@media (max-width: 575px) {
  .sp-h4,.sp-h5 { font-size: 1.429em!important; }
  .sp-h6 { font-size: 1.286em!important; }
  .sp-h7 { font-size: 1.143em!important; }
}



p {
  margin-top: 1.75rem;
  margin-bottom: 1.75rem;
}
p:first-child {
  margin-top: 0;
}
p:last-child {
  margin-bottom: 0;
}

.note {
  line-height: 1.75;
}


.ms {
  font-size: .929rem;
}
small {
  font-size: .857rem;
  display: inline-block;
  line-height: 1.5;
  font-weight: 400;
}
.small {
  font-size: .857em;
  display: inline-block;
}
.xsmall {
  font-size: .714em;
  display: inline-block;
}
.xxsmall {
  font-size: .571em;
  display: inline-block;
}

.fw-400, .text-normal { font-weight: 400 !important; }
.fw-500, .text-medium { font-weight: 500 !important; }
.fw-600, .text-semibold { font-weight: 600 !important; }
.fw-700, .text-bold { font-weight: 700 !important; }

.text-italic { font-style: italic; }
.text-justify { text-align: justify; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }
@media (min-width: 576px) {
  .text-sm-left { text-align: left !important; }
  .text-sm-right { text-align: right !important; }
  .text-sm-center { text-align: center !important; }
}
@media (min-width: 768px) {
  .text-md-left { text-align: left !important; }
  .text-md-right { text-align: right !important; }
  .text-md-center { text-align: center !important; }
}
@media (min-width: 992px) {
  .text-lg-left { text-align: left !important; }
  .text-lg-right { text-align: right !important; }
  .text-lg-center { text-align: center !important; }
}
@media (min-width: 1200px) {
  .text-xl-left { text-align: left !important; }
  .text-xl-right { text-align: right !important; }
  .text-xl-center { text-align: center !important; }
}


.en_ttl,
.en_txt {
  font-family: var(--font1);
}

.font1 {
  font-family: var(--font1) !important;
}
.font2 {
  font-family: var(--font2) !important;
}

.Gothic {
  font-family: var(--gothic) !important;
}
.Mincho {
  font-family: var(--mincho) !important;
}

.en_ttl .ttl {
  font-family: revert;
  font-size: 1rem;
}

.nowrap {
  white-space: nowrap;
}


/* ==========================================================================
   Text animation
========================================================================== */
.c-text {
  width: 100%;
  display: flex;
  margin-inline: calc(50% - 50vw);
  overflow: hidden;
  opacity: .2;
}
.c-text__item {
  flex-shrink: 0;
  white-space: nowrap;
  font-family: var(--font1);
  font-size: max(9vw, 5em);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  color: var(--l-blue);
}
.c-text__item > span {
  padding-right: .35em;
}
.c-text__item > span:nth-child(even) {
  color: var(--ll-blue3);
}
.c-text__item:nth-child(odd) {
  animation: MoveLeft var(--tick-duration, 24s) var(--tick-delay, -12s) infinite linear;
}
.c-text__item {
  animation: MoveLeft2 var(--tick-duration, 24s) infinite linear;
}
@keyframes MoveLeft {
  0% { transform: translateX(100%) }
  to { transform: translateX(-100%) }
}
@keyframes MoveLeft2 {
  0% { transform: translateX(0) }
  to { transform: translateX(-200%) }
}

/* ==========================================================================
   Button
========================================================================== */
.btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-family: inherit;
  font-size: .857rem;
  line-height: 1.35;
  font-weight: 700;
  padding: .5rem 1.25rem;
  width: 100%;
  max-width: 100%;
  height: 50px;
  background: var(--color1);
  color: var(--white);
  border: 0;
  text-decoration: none;
  border-radius: 5em;
  outline: none;
  cursor: pointer;
  overflow: hidden;
  position: relative;
  transition: .2s ease-in-out;
  transition-property: background,border,color;
}
.btn span {
  display: block;
  position: relative;
}
.btn small {
  display: block;
  font-family: var(--gothic);
  font-size: .714rem;
  line-height: 1;
  margin-top: .25em;
}
.btn::before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: linear-gradient(60deg, var(--color1) 0%, var(--color1-h) 100%);
  transition: opacity .3s;
}
.btn::after {
  font-family: 'icomoon' !important;
  content: "\e902";
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 1.5em;
  transform: translate(0,-50%);
  transition: transform .2s;
}
.btn:hover::before {
  opacity: 0;
}
.btn:hover::after {
  transform: translate(.25rem,-50%);
}

.btn._100 {
  width: 100% !important;
}



.btn._border {
  background: transparent;
  color: inherit;
  border: 1px solid currentColor;
  font-size: .929em;
  font-weight: 500;
}
.btn._white {
  background: var(--white);
  color: var(--color1);
  font-size: .929em;
  font-weight: 500;
}
.btn.switch {
  background: var(--l-blue);
  font-size: 1em;
}
.btn.switch:hover {
  background: var(--l-blue2);
}

.btn._border::before,
.btn._border:not(._arrow)::after,
.btn._white::before,
.btn._white:not(._arrow)::after,
.btn.switch::before,
.btn.switch:not(._arrow)::after,
.btn:has(.tel):not(._arrow)::after {
  display: none;
}

.btn .tel {
  font-family: var(--font2);
  font-size: 1.75em;
  font-weight: 400;
  line-height: .8;
}



@media (min-width: 576px) {
  .btn {
    width: 18rem;
  }
  .btn._large {
    width: 22rem;
  }
  .btn small {
    font-size: .786rem;
  }
}



.arrow-btn {
  display: inline-flex;
  align-items: center;
  gap: 1.5em;
  text-align: left;
  font-family: inherit;
  font-size: 1rem;
  line-height: 2;
  letter-spacing: .08em;
  font-weight: 500;
  padding: 0;
  background: transparent;
  color: var(--color1);
  text-decoration: none;
  border-radius: 0;
  outline: none;
  cursor: pointer;
  position: relative;
}
.arrow-btn::after {
  font-family: 'icomoon' !important;
  content: '\e902';
  font-size: 1.286em;
  display: block;
  text-align: center;
  flex: 0 0 4.25rem;
  width: 4.25rem;
  height: 4.25rem;
  line-height: 4.25rem;
  border: 0;
  background: linear-gradient(60deg, var(--color1) 0%, var(--color1-h) 100%);
  color: var(--white);
  border-radius: 100%;
  transition: .3s;
  transition-property: transform;
}
.arrow-btn:hover::after {
  transform: translateX(6px);
}
.arrow-btn span {
  display: block;
  white-space: nowrap;
}
.more:has(.arrow-btn) {
  display: flex;
  flex-wrap: wrap;
  column-gap: 2.5em;
  row-gap: 1.25em;
}
.more:has(.arrow-btn).text-right {
  justify-content: flex-end;
}
@media (max-width: 991px) {
  .more:has(.arrow-btn) {
    justify-content: flex-end;
  }
}

.more-btn {
  display: inline-flex;
  gap: 1.5em;
  text-align: left;
  font-family: inherit;
  font-size: .929rem;
  line-height: 2;
  font-weight: 500;
  padding: 0;
  background: transparent;
  color: var(--l-blue);
  text-decoration: none;
  border-radius: 0;
  outline: none;
  cursor: pointer;
  position: relative;
  margin-bottom: .5em;
}
.more-btn::after {
  font-family: 'icomoon' !important;
  content: '\e902';
  font-size: .625em;
  line-height: 2rem;
  display: block;
  text-align: center;
  flex: 0 0 calc(2rem + 2px);
  height: calc(2rem + 2px);
  border: 1px solid var(--ll-blue2);
  background: var(--white);
  color: var(--color1);
  border-radius: 100%;
  transition: .3s;
  transition-property: background, color;
}
.more-btn:hover {
  color: var(--color1);
}

.buttons {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-items: center;
  column-gap: .6em;
  row-gap: 1em;
}


/* ==========================================================================
   Badge
========================================================================== */
.badge {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: .929em;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  padding: .5em .6em;
  background: var(--l-blue2);
  color: var(--white);
}


/* ==========================================================================
   Label
========================================================================== */
.label {
  display: block;
  font-family: var(--font1);
  font-size: .741em;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color1);
}

/* ==========================================================================
   Icon
========================================================================== */
[class^="icon-"]::before,
[class*=" icon-"]::before {
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.icon-pdf::before {
  content: '';
  width: 1em;
  height: 1em;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2220%22%20viewBox%3D%220%200%2016%2020%22%3E%3Cpath%20d%3D%22M17.862%2C6.445a2.627%2C2.627%2C0%2C0%2C1%2C.5.848%2C2.731%2C2.731%2C0%2C0%2C1%2C.208.982V21.132a1.072%2C1.072%2C0%2C0%2C1-.292.759.933.933%2C0%2C0%2C1-.708.313h-14a.933.933%2C0%2C0%2C1-.708-.313%2C1.072%2C1.072%2C0%2C0%2C1-.292-.759V3.275a1.072%2C1.072%2C0%2C0%2C1%2C.292-.759A.933.933%2C0%2C0%2C1%2C3.571%2C2.2H12.9a2.271%2C2.271%2C0%2C0%2C1%2C.917.223%2C2.41%2C2.41%2C0%2C0%2C1%2C.792.536ZM13.237%2C3.721v4.2h3.917a1.247%2C1.247%2C0%2C0%2C0-.229-.458l-3.26-3.493a1.118%2C1.118%2C0%2C0%2C0-.427-.246Zm4%2C17.054V9.346H12.9a.933.933%2C0%2C0%2C1-.708-.312%2C1.072%2C1.072%2C0%2C0%2C1-.292-.759V3.632h-8V20.775H17.237Zm-5.354-6.618a7.912%2C7.912%2C0%2C0%2C0%2C.875.625%2C9.656%2C9.656%2C0%2C0%2C1%2C1.219-.078q1.531%2C0%2C1.844.547a.572.572%2C0%2C0%2C1%2C.021.58.033.033%2C0%2C0%2C1-.01.022l-.021.022v.011q-.063.424-.74.424a4.038%2C4.038%2C0%2C0%2C1-1.2-.223%2C7.316%2C7.316%2C0%2C0%2C1-1.354-.592%2C17.684%2C17.684%2C0%2C0%2C0-4.083.926q-1.594%2C2.924-2.521%2C2.924a.574.574%2C0%2C0%2C1-.292-.078l-.25-.134q-.01-.011-.063-.056a.488.488%2C0%2C0%2C1-.063-.4%2C2.463%2C2.463%2C0%2C0%2C1%2C.583-1.021%2C5.072%2C5.072%2C0%2C0%2C1%2C1.375-1.077q.146-.1.24.067a.066.066%2C0%2C0%2C1%2C.021.045q.542-.949%2C1.115-2.2a17.771%2C17.771%2C0%2C0%2C0%2C1.083-2.924%2C9.6%2C9.6%2C0%2C0%2C1-.318-1.78%2C4.643%2C4.643%2C0%2C0%2C1%2C.068-1.423q.115-.446.438-.446h.229a.427.427%2C0%2C0%2C1%2C.365.167.945.945%2C0%2C0%2C1%2C.094.759.249.249%2C0%2C0%2C1-.042.089.31.31%2C0%2C0%2C1%2C.01.089v.335a15.638%2C15.638%2C0%2C0%2C1-.146%2C2.143%2C5.716%2C5.716%2C0%2C0%2C0%2C1.521%2C2.656Zm-6%2C4.587A4.827%2C4.827%2C0%2C0%2C0%2C7.31%2C16.98a6.143%2C6.143%2C0%2C0%2C0-.911.938A3.743%2C3.743%2C0%2C0%2C0%2C5.883%2C18.744ZM10.029%2C8.476a3.549%2C3.549%2C0%2C0%2C0-.021%2C1.473q.01-.078.073-.491%2C0-.033.073-.48a.259.259%2C0%2C0%2C1%2C.042-.089.033.033%2C0%2C0%2C1-.01-.022.024.024%2C0%2C0%2C0-.005-.017.024.024%2C0%2C0%2C1-.005-.017.671.671%2C0%2C0%2C0-.135-.4.033.033%2C0%2C0%2C1-.01.022v.022ZM8.737%2C15.853a14.5%2C14.5%2C0%2C0%2C1%2C2.958-.9%2C1.579%2C1.579%2C0%2C0%2C1-.135-.106%2C1.905%2C1.905%2C0%2C0%2C1-.167-.151%2C5.913%2C5.913%2C0%2C0%2C1-1.323-1.964%2C15.518%2C15.518%2C0%2C0%2C1-.865%2C2.2q-.313.625-.469.926Zm6.729-.179q-.25-.268-1.458-.268a3.718%2C3.718%2C0%2C0%2C0%2C1.292.313.944.944%2C0%2C0%2C0%2C.188-.011q0-.011-.021-.033Z%22%20transform%3D%22translate(-2.571%20-2.203)%22%20fill%3D%22red%22%2F%3E%3C%2Fsvg%3E');
}
.icon-window::before {
  content: '';
  width: 1em;
  height: 1em;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20height%3D%2215.706%22%20viewBox%3D%220%200%2017.5%2015.706%22%20width%3D%2217.5%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%23111%22%3E%3Cpath%20d%3D%22m-.75-.75h13.014v11.519h-13.014zm11.514%201.5h-10.014v8.519h10.014z%22%20transform%3D%22translate(5.236%20.75)%22%2F%3E%3Cpath%20d%3D%22m317.664%20284.619h-13.014v-11.369h3.143v1.5h-1.643v8.369h10.014v-1.343h1.5z%22%20transform%3D%22translate(-304.65%20-268.914)%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
}
.icon-ex-link::before {
  content: '';
  width: .75em;
  height: .75em;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%229%22%20height%3D%229%22%20viewBox%3D%220%200%209%209%22%3E%3Cpath%20d%3D%22M0%2C0V9H9V6.75H7.875V7.875H1.125V1.125H2.25V0ZM4.5%2C0%2C6.188%2C1.688%2C3.375%2C4.5%2C4.5%2C5.625%2C7.313%2C2.813%2C9%2C4.5V0Z%22%20fill%3D%22%23111%22%2F%3E%3C%2Fsvg%3E');
}
.icon-map::before {
  content: '';
  width: 1em;
  height: 1.25em;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20iewBox%3D%220%200%2012%2016%22%3E%3Cpath%20d%3D%22M5.383%2C15.677C.843%2C9.095%2C0%2C8.419%2C0%2C6A6%2C6%2C0%2C0%2C1%2C12%2C6c0%2C2.419-.843%2C3.095-5.383%2C9.677a.75.75%2C0%2C0%2C1-1.233%2C0ZM6%2C8.5A2.5%2C2.5%2C0%2C1%2C0%2C3.5%2C6%2C2.5%2C2.5%2C0%2C0%2C0%2C6%2C8.5Z%22%20fill%3D%22%23a8becb%22%2F%3E%3C%2Fsvg%3E');
}

/* ==========================================================================
   Numbers (汎用)
========================================================================== */
.numbers {
  counter-reset: numbers;
}
.numbers ._item {
  counter-increment: numbers;
  position: relative;
}
.numbers ._item .count {
  display: flex;
  align-items: center;
  gap: .75rem;
}
.numbers ._item .count::before {
  content: counter(numbers);
  display: block;
  width: 2em;
  height: 2em;
  line-height: 2;
  text-align: center;
  border-radius: 100%;
  background: var(--color1);
  color: var(--white);
  font-family: var(--font1);
  font-size: 1.017em;
  font-weight: 500;
}

/* ==========================================================================
   Page header
========================================================================== */
.page__header,
.page__header_S {
  position: relative;
  z-index: 2;
}
.page__header .ttlBox,
.page__header_S .ttlBox {
  position: relative;
}
.page__header .ttlBox .ttl,
.page__header_S .ttlBox .en_ttl {
  display: inline-flex;
  font-weight: 500;
  line-height: 1.143;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 0 1em;
  padding-left: 2em;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M0%2C6H4L2%2C8ZM0%2C6V0H4V6Z%22%20transform%3D%22translate(6)%22%20fill%3D%22%230089cf%22%2F%3E%3Cpath%20d%3D%22M2%2C4%2C0%2C2%2C2%2C0H8V4Z%22%20transform%3D%22translate(8%206)%22%20fill%3D%22%23ed1c25%22%2F%3E%3Cpath%20d%3D%22M6%2C0%2C8%2C2%2C6%2C4ZM0%2C4V0H6V4Z%22%20transform%3D%22translate(0%206)%22%20fill%3D%22%2309a451%22%2F%3E%3Cpath%20d%3D%22M0%2C8V2L2%2C0%2C4%2C2V8Z%22%20transform%3D%22translate(6%208)%22%20fill%3D%22%23ffcb03%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 1.143em;
  position: relative;
}
.page__header .ttlBox .en_ttl,
.page__header_S .ttlBox .ttl {
  font-weight: 700;
  line-height: 1;
  display: block;
}


.page__header .ttlBox .ttl {
  margin: 0 0 1.5em;
}
@media (min-width: 992px) {
  .page__header .ttlBox .ttlBox {
    padding-top: 1.5rem;
  }
}


.page__header picture {
  aspect-ratio: 25 / 14;
}
@media (min-width: 576px) {
  .page__header picture {
    aspect-ratio: 108 / 35;
  }
}
.page__header picture._auto {
  aspect-ratio: auto;
}


.headline {
  margin-bottom: 1.5rem;
}
.headline .ttl {
  line-height: 1.6;
  letter-spacing: .04em;
}
.ttl em {
  font-size: 1.214em;
  font-style: normal;
}
@media (max-width: 991px) {
  .headline .ttl.h3 {
    font-size: 1.571rem;
  }
}


.headline .ttl[data-en]::before {
  content: attr(data-en);
  display: block;
  font-family: var(--font1);
  font-size: .929rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--color1);
  margin-bottom: .25em;
}
.headline .ttl[data-sub-title]::before {
  content: attr(data-sub-title);
  display: block;
  font-size: .929rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--color1);
  margin-bottom: .25em;
}

.bg-gradation .headline .ttl[data-en]::before {
  color: inherit;
}


body.ir-style .headline .ttl[data-en]::before,
body.ir-style .headline .ttl[data-sub-title]::before {
  color: var(--l-blue2);
}



/* ==========================================================================
   Contents link
========================================================================== */
.cont-header {
  margin-bottom: 1.5rem;
}
.cont-header .en_ttl,
.cont-link .en_ttl {
  display: inline-flex;
  font-weight: 500;
  line-height: 1.143;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 0 1em;
  padding-left: 2em;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M0%2C6H4L2%2C8ZM0%2C6V0H4V6Z%22%20transform%3D%22translate(6)%22%20fill%3D%22%230089cf%22%2F%3E%3Cpath%20d%3D%22M2%2C4%2C0%2C2%2C2%2C0H8V4Z%22%20transform%3D%22translate(8%206)%22%20fill%3D%22%23ed1c25%22%2F%3E%3Cpath%20d%3D%22M6%2C0%2C8%2C2%2C6%2C4ZM0%2C4V0H6V4Z%22%20transform%3D%22translate(0%206)%22%20fill%3D%22%2309a451%22%2F%3E%3Cpath%20d%3D%22M0%2C8V2L2%2C0%2C4%2C2V8Z%22%20transform%3D%22translate(6%208)%22%20fill%3D%22%23ffcb03%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 1.143em;
  position: relative;
}
.cont-header .ttl,
.cont-link .ttl {
  line-height: 1.5;
  letter-spacing: .08em;
}
@media (max-width: 991px) {
  .cont-header .ttl.h3,
  .cont-link .ttl.h3 {
    font-size: 1.714em;
  }
}



/* ==========================================================================
   MV
========================================================================== */
#mv {
  width: 100%;
  height: 100vh;
  padding: 8vh 0;
  background-color: var(--gray);
  color: var(--white);
  position: relative;
  overflow: hidden;
}
#mv .container {
  padding-top: 74px;
  height: 100%;
  position: relative;
}
#mv:not(:has(.row)) .container {
  display: flex;
}
#mv .container > .row {
  min-height: 100%;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  z-index: 5;
  padding-bottom: 70px;
}
#mv .image {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
#mv .image::before {
  content: '';
  background: #354752;
  opacity: .8;
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
#mv .image * {
  width: 100%;
  height: 100%;
}
#mv .image picture {
  display: block;
  width: 100%;
  height: 100%;
}
#mv .image picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
#mv .en_ttl {
  font-size: 2.308rem;
}
#mv .mv-copy {
  line-height: 0;
  margin: .5rem 0 1.5rem;
}
#mv .mv-copy span {
  display: inline-block;
  border: 1px solid currentColor;
  white-space: nowrap;
  padding: 0 .25em;
  margin-top: -1px;
  font-size: 1.714rem;
  letter-spacing: .06em;
  line-height: 1.375;
}
#mv .copy em {
  font-style: normal;
  display: inline-block;
  border-bottom: 1px solid currentColor;
}
#mv .overlay-txt {
  font-size: 10.8vw;
  opacity: .5;
  height: auto;
  right: 0;
  text-align: center;
}

video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


#mv .mv-badge {
  width: 9em;
  margin-left: auto;
}
@media (min-width: 768px){
  #mv .mv-copy span {
    font-size: 2.571rem;
  }
}
@media (min-width: 992px){
  body:has(#mv .image) #siteHeader:not(.fixed) {
    border-bottom-color: var(--white);
  }
  #mv .container {
    padding-top: 105px;
  }
  #mv .container > .row {
    flex-direction: row;
    justify-content: space-between;
  }
  #mv .mv-copy {
    margin: 1.25rem 0 2.75rem;
  }
  #mv .mv-copy span {
    font-size: 3.572rem;
  }
  #mv .mv-right .row {
    row-gap: 15em;
    padding-bottom: 5em;
  }
  #mv .mv-badge {
    width: 12.143em;
  }
}


/* ==========================================================================
   fancybox.js
========================================================================== */
[data-fancybox] {
  cursor: pointer;
}
body .fancybox__container {
  --f-arrow-svg-width: 13px;
  --f-arrow-bg: transparent;
}
body .f-button.is-arrow {
  border: 1px solid currentColor;
}
body .fancybox__slide.has-html {
  padding: 5svh 5vw;
  overflow-x: hidden;
}
body .fancybox__container .f-html {
  --f-html-padding: min(3.5rem, 6vw);
  --f-close-button-color: #111;
}
body .fancybox__container .f-html .f-button[data-fancybox-close] {
  top: 1.5rem;
  right: 1.5rem;
  color: currentColor!important;
}
body .fancybox__container .f-html .f-button[data-fancybox-close] svg {
  transform: scale(.825);
  --f-button-svg-stroke-width: 1.2;
}
body .fancybox__container[theme=dark] {
  --fancybox-backdrop-bg: rgba(0,0,0,0.4);
}
body .fancybox__container[theme=light] {
  --fancybox-color: #111;
  --fancybox-backdrop-bg: #F8FAFA;
  --f-arrow-color: #111;
}
@media (min-width: 992px){
  body .fancybox__slide.has-html {
    padding: 5vw;
  }
}


.modal {
  max-width: 1280px;
}
.modal:has(.entry__content) {
  max-width: 900px;
}
.modal-inner .entry__content > *:last-child {
  margin-bottom: 0;
}
@media (max-width: 991px){
  .modal-inner .entry__meta {
    font-size: .857em;
  }
  .modal-inner .entry__ttl .ttl {
    font-size: 1.143rem;
    font-weight: 500;
  }
}
@media (max-width: 575px){
  .modal-inner:has(.entry__content) {
    padding: 2% 2% 4%;
  }
}

/* ==========================================================================
   Slick.js
========================================================================== */
.slick-track {
  display: flex;
  margin-left: 0;
  margin-right: 0;
}
.slick-slide {
  height: auto !important;
}

.slick-controller {
  font-family: var(--font1);
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1rem;
}
.slider-inner + .slick-controller {
  margin: 1rem 0 0;
}
.slick-counter {
  letter-spacing: .16em;
}
.slick-arrowBox {
  font-family: var(--font3);
  font-size: 1.077em;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: .75rem;
}

/* Arrows */
.slick-arrow {
  font-size: 0;
  line-height: 0;
  display: block;
  width: 40px;
  height: 40px;
  background: var(--white);
  color: var(--color1);
  margin: 0;
  border-radius: 100%;
  padding: 0;
  cursor: pointer;
  border: 0;
  outline: none;
  position: relative;
  transition: transform .2s, opacity .2s;
}
.slick-arrow::before {
  font-family: 'icomoon' !important;
  content: '\e902';
  font-size: 16px;
  width: 40px;
  height: 40px;
  line-height: 40px;
  display: block;
  text-align: center;
  transition: .3s;
  transition-property: background, color;
}
.slick-prev::before {
  content: '\e901';
}
.slick-arrow:hover {
  opacity: 1;
  transform: scale(1.1);
}
.slick-disabled {
  transform: scale(1)!important;
  opacity: .4!important;
}

/* ------------------
  Slider Layout
------------------ */
.card-slider .slick-list,
.gallery-slider .slick-list {
  overflow: visible;
}
.slider-inner {
  padding-right: 7px;
  padding-left: 7px;
}
.slick-slide {
  padding-right: 7px;
  padding-left: 7px;
}
.slider-inner:has(.slider) {
  padding-right: 0;
  padding-left: 0;
  margin-right: 0!important;
  margin-left: 0!important;
}
.slider-inner:has(.slider) .slick-slide {
  padding-right: 0;
  padding-left: 0;
}
.slider-inner:has(.card-slider) {
  padding-right: 0;
  padding-left: 0;
  margin-right: -4vw!important;
  margin-left: -4vw!important;
}
.slider-wrapper:has(.card-slider) {
  position: relative;
}
.slider-wrapper:has(.card-slider)::before {
  content: '';
  display: block;
  width: 100vw;
  height: calc(75% + 5.75rem);
  background: var(--white);
  position: absolute;
  bottom: -5.75rem;
  left: calc(50% - 50vw);
}
.card-slider .slick-slide {
  padding-right: 4vw;
  padding-left: 4vw;
}
@media (min-width: 576px){
  .slider-inner {
    padding-right: 0;
    padding-left: 0;
    margin-right: -10px!important;
    margin-left: -10px!important;
  }
  .slick-slide {
    padding-right: 10px;
    padding-left: 10px;
  }

  .slider-inner:has(.card-slider) {
    margin-right: -20px!important;
    margin-left: -20px!important;
  }
  .card-slider .slick-slide {
    padding-right: 20px;
    padding-left: 20px;
  }
}
@media (min-width: 992px){
  .slider-wrapper:has(.card-slider)::before {
    height: calc(75% + 6.6rem);
    bottom: -6.6rem;
  }
}


/* ==========================================================================
   Slide photo
========================================================================== */
.slide-photo.mt-negative {
  margin-top: -2.25rem;
  position: relative;
  z-index: -1;
}
.slide-photo li {
  width: 240px;
}
@media (min-width: 992px) {
  .slide-photo li {
    width: 340px;
  }
}


/* ==========================================================================
   Responsive iframe
========================================================================== */
.iframeBox {
  width: 100%;
  height: 100%;
  padding-top: 56.25%;
  position: relative;
}
.iframeBox iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.iframeBox._map {
  padding-top: 66.4705%;
}

._grayscale {
  filter: grayscale(100%);
}

/* ==========================================================================
   Sticky notes
========================================================================== */
.sticky-notes {
  row-gap: calc(.786rem*2);
}
.sticky-notes ._item {
  background: var(--ll-blue);
  padding: max(2rem, 6%);
  border-radius: .5rem;
  line-height: 1.75;
  height: 100%;
  box-shadow: 0 0 20px rgba(144,143,160,0.1);
}
.sticky-notes ._item .ttl {
  font-weight: 500;
  margin-bottom: 1em;
}
.sticky-notes.numbers ._item .count::before {
  width: 1.75em;
  height: 1.75em;
  line-height: 1.75;
}

/* ==========================================================================
   Examples
========================================================================== */
.examples {
  row-gap: calc(.786rem*2);
}
.examples ._item {
  display: flex;
  align-items: center;
  background: var(--white);
  border-radius: .5rem;
  line-height: 1.75;
  height: 100%;
  box-shadow: 0 0 20px rgba(144,143,160,0.1);
}
.examples ._item picture {
  flex: 0 0 120px;
  height: 80px;
}
.examples ._item picture img {
  border-radius: .5rem 0 0 .5rem;
}
.examples ._item .ttl {
  flex-basis: 100%;
  font-weight: 500;
  padding: 0 1.25em;
  text-align: center;
}
@media (min-width: 992px) {
  .examples ._item picture {
    flex: 0 0 100px;
    height: 100px;
  }
}

/* ==========================================================================
   balloon
========================================================================== */
.balloons {
  row-gap: 2em;
}
.balloons ._item {
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--white);
  border-radius: 3rem;
  line-height: 1.75;
  height: 100%;
  min-height: 3.75em;
  box-shadow: 0 0 20px rgba(144,143,160,0.1);
  position: relative;
}
.balloons ._item::after {
  content: '';
  display: block;
  width: 22px;
  height: 13px;
  background: var(--white);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
  margin: -1px auto 0;
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -11px;
}
.balloons ._item .ttl {
  font-weight: 500;
}
@media (min-width: 992px) {
  .balloons {
    row-gap: 3em;
  }
}

hr.arrow {
  border-top-color: var(--color1);
  margin: 3rem 0 2rem;
  height: 13px;
}
hr.arrow::after {
  content: '';
  display: block;
  width: 22px;
  height: 13px;
  background: var(--color1);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  -webkit-clip-path: polygon(0 0, 100% 0, 50% 100%);
  margin: -1px auto 0;
}


/* ==========================================================================
   Label list
========================================================================== */
.label-list {
  display: flex;
  flex-direction: column;
  row-gap: .9rem;
}
.label-list ._item,
.label-item,
.label-list ._box {
  display: inline-flex;
  align-items: center;
  background: var(--white);
  color: var(--black);
  padding: 1em 1.75em;
  border-radius: 3rem;
  line-height: 1.75;
}
.label-list._check ._item,
.label-list._check ._box {
  padding: 0 1.75em 0 0;
}
.label-list._check ._item::before,
.label-list._check ._box::before {
  content: '';
  display: block;
  width: 3.5em;
  height: 3.5em;
  border-radius: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.25em;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220.001%22%20viewBox%3D%220%200%2020%2020.001%22%3E%0A%3Cpath%20d%3D%22M11.5%2C21.492q-.186%2C0-.373-.007A10%2C10%2C0%2C1%2C1%2C15.57%2C2.357a.909.909%2C0%2C1%2C1-.74%2C1.661A8.182%2C8.182%2C0%2C1%2C0%2C8.665%2C19.166%2C8.182%2C8.182%2C0%2C0%2C0%2C19.682%2C11.5V10.66a.909.909%2C0%2C1%2C1%2C1.818%2C0V11.5a10%2C10%2C0%2C0%2C1-10%2C10Z%22%20transform%3D%22translate(-1.5%20-1.49)%22%20fill%3D%22%23a8becb%22%2F%3E%3Cpath%20d%3D%22M15.636%2C15.418a.909.909%2C0%2C0%2C1-.643-.266l-2.727-2.727a.909.909%2C0%2C0%2C1%2C1.286-1.286l2.084%2C2.084%2C8.448-8.457A.909.909%2C0%2C0%2C1%2C25.37%2C6.052l-9.091%2C9.1a.909.909%2C0%2C0%2C1-.643.267Z%22%20transform%3D%22translate(-5.636%20-2.676)%22%20fill%3D%22%230089cf%22%2F%3E%0A%3C%2Fsvg%3E%0A');
}
.label-list._check ._item em {
  font-style: normal;
}
.label-item.ttl em {
  font-size: 1.5em;
}
.label-item.ttl:has(em) {
  padding: .6em 1.75em .75em;
}
@media (max-width: 992px) {
  .label-list._check ._item {
    font-size: .929rem;
  }
}
@media (max-width: 767px) {
  .label-list {
    row-gap: .786rem;
  }
  .label-list._check ._item {
    font-size: .786rem;
  }
  .label-item {
    display: block;
    border-radius: .5rem;
    padding: 1em;
  }
  .label-item.ttl:has(em) {
    padding: .6em 1em .75em;
  }
}



.label-list.row {
  flex-direction: row;
}
.label-list ._box {
  font-weight: 500;
}
@media (max-width: 767px) {
  .label-list.row {
    row-gap: .5rem;
  }
  .label-list._check ._box {
    width: 100%;
    text-align: left;
    font-size: .857rem;
    border-radius: 3rem .5rem .5rem 3rem;
    padding: .25em .5em .25em 0;
    align-items: center;  
  }
  .label-list._check ._box::before {
    width: 2.75em;
    height: 2.75em;
  }
}
@media (min-width: 768px) {
  .label-list._check.row {
    row-gap: 2.75rem;
    margin-top: 3.5rem;
  }
  .label-list._check ._box {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
    min-height: 6em;
    border-radius: .5rem;
    padding: 1em;
  }
  .label-list._check ._box::before {
    width: 2.25em;
    height: 2.25em;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%,-50%);
    background-color: var(--white);
    background-size: 1.25em;
  }
}



/* ==========================================================================
   Flow
========================================================================== */
.flow {
  padding-top: 1px;
  padding-bottom: 3rem;
}
.flow .flow-block {
  text-align: center;
  position: relative;
}
.flow .flow-block:first-child {
  margin-top: -3.5365rem;
}
.flow .flow-label {
  position: relative;
}
.flow .flow-label span {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.286rem;
  font-weight: 500;
  width: 5.555em;
  height: 5.555em;
  margin: 0 auto;
  border-radius: 100%;
  background: var(--color1);
  border: 5px solid currentColor;
  position: relative;
  z-index: 2;
}
.flow .flow-block:not(:first-of-type) .flow-label::before,
.flow .flow-block:not(:first-of-type) .flow-label::after {
  content: '';
  display: block;
  width: 55vw;
  height: 5px;
  background: currentColor;
  position: absolute;
  top: 50%;
  right: calc(50% + 2.5rem);
  transform: rotate(8deg);
  transform-origin: right center;
  z-index: -1;
}
.flow .flow-block:not(:first-of-type) .flow-label::after {
  left: calc(50% + 2.5rem);
  transform: rotate(-8deg);
  transform-origin: left center;
}
.flow .ttl {
  margin: 1em auto 1.75em;
}
.flow ol.row {
  row-gap: 2rem;
  padding-bottom: 3rem;
}

.flow ._item {
  line-height: 1.5;
}
.flow ._item .count::before {
  width: auto;
  height: 1em;
  line-height: 1;
  font-size: 1.429rem;
  content: counter(numbers, decimal-leading-zero);
  background: transparent;
}
.flow ._item .count {
  flex-direction: column;
}
.flow ._item figure {
  width: min(100%,200px);
  aspect-ratio: 1/1;
}
.flow ._item figure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.flow ._item p {
  margin: 0;
}
@media (max-width: 991px) {
  .flow ._item p {
    font-size: .929rem;
    text-align: left;
  }
}
@media (max-width: 575px) {
  .flow ol.row {
    margin-right: -3.75vw;
    margin-left: -3.75vw;
  }
  .flow ol.row > .col,
  .flow ol.row > [class*="col-"] {
    padding-right: 3.75vw;
    padding-left: 3.75vw;
  }
}
@media (min-width: 768px) {
  .flow ._item .count::before {
    font-size: 1.714rem;
    position: absolute;
    top: 0;
    left: 0;
  }
}
@media (min-width: 992px) {
  .flow ol.row {
    padding-bottom: 4.5rem;
  }
  .flow ._item .count::before {
    left: 1.5rem;
  }
}

/* ==========================================================================
   Card
========================================================================== */
.cards {
  list-style-type: none;
}
.cards.row {
  row-gap: 3rem;
}
.card {
  line-height: 2;
  display: block;
  position: relative;
}
.card picture {
  overflow: hidden;
  margin-bottom: 1.25rem;
}
a.card picture img {
  transition: transform .3s;
}
a.card:hover picture img {
  transform: scale(1.1);
}
.card p {
  margin-top: .75rem;
  margin-bottom: .75rem;
}
.card p:first-child {
  margin-top: 0;
}
.card p:last-child {
  margin-bottom: 0;
}
.card .date {
  display: block;
  color: var(--l-blue2);
  font-size: .786rem;
}
.card .card-meta {
  line-height: 1.8;
  display: flex;
  align-items: flex-start;
  gap: 1.25em;
}

@media (max-width: 991px){
  .cards .card {
    font-size: .929em;
  }
  .card .card-meta {
    flex-direction: column;
    gap: .75em;
  }
  .card .card-meta .badge {
    width: 100%;
  }
}
@media (max-width: 767px){
  .card hr {
    margin: 2.5em 0 0;
  }
}
@media (max-width: 575px){
  .cards.row .card {
    max-width: 390px;
    margin-right: auto;
    margin-left: auto;
  }
}


.card .card-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.card .card-link::after {
  font-family: 'icomoon' !important;
  content: '\e902';
  font-size: .857rem;
  line-height: 2.5rem;
  display: block;
  text-align: center;
  flex: 0 0 2.5rem;
  height: 2.5rem;
  background: var(--white);
  color: var(--color1);
  border-radius: 100%;
  transition: .3s;
  transition-property: background, color;
}
.card .card-link.headline .ttl[data-en]::before {
  font-size: .786rem;
}


dl.card {
  background: var(--white);
  border-radius: .375rem;
  box-shadow: 0 0 20px rgba(144,143,160,0.1);
}
dl.card dt {
  background: var(--l-blue2);
  color: var(--white);
  display: block;
  text-align: center;
  border-radius: .375rem .375rem 0 0;
  padding: .25em;
  font-size: 1.143rem;
  font-weight: 500;
}
dl.card dd {
  padding: 1.5rem;
}
dl.card dd.row {
  row-gap: 1em;
}
@media (min-width: 992px){
  dl.card dd {
    padding: 1.75rem 7.5%;
  }
}

/* ==========================================================================
   List
========================================================================== */
ul,ol {
  list-style-type: none;
}
.list-ttl {
  padding-top: .75rem;
  line-height: 1.5;
}
.lists {
  margin: 2em 0 3em;
}
.list:first-child {
  border-top: 1px solid var(--border1);
}
.list {
  display: block;
  padding: 1em 0;
  line-height: 1.75;
  border-bottom: 1px solid var(--border1);
}
.list:hover {
  color: var(--l-blue2);
}
.list .entry__meta {
  white-space: nowrap;
}
.list .entry__meta time {
  display: block;
  width: 10em;
  margin-bottom: .5em;
}
.list .entry__title .ttl {
  margin-top: 1em;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5em;
}
.list .entry__title .ttl i {
  flex: 0 0 3.5em;
  width: 3.5em;
  height: 3.5em;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--l-gray);
  border-radius: 100%;
}
.list .entry__title .ttl i::before {
  font-size: .929em;
}
.list .entry__title .ttl i.icon-pdf::before,
.list .entry__title .ttl i.icon-window::before {
  width: 1.25em;
  height: 1.5em;
}
@media (min-width: 992px){
  .lists {
    width: 100%;
    display: table;
    border-collapse: collapse;
  }
  .list {
    display: table-row;
    padding: 0;
  }
  .list > div {
    display: table-cell;
    vertical-align: middle;
  }
  .list .entry__meta .meta {
    display: flex;
    align-items: center;
  }
  .list .entry__meta:not(:has(.category)) {
    width: 10em;
  }
  .list .entry__meta:not(:has(.category)) .entry__meta {
    padding-right: 0;
  }
  .list .entry__title {
    display: table-cell;
    width: 90%;
  }
  .list .entry__meta time {
    margin-bottom: 0;
  }
  .list .entry__meta .category {
    padding-right: 2.5em;
  }
  .list .entry__title .ttl {
    margin-top: 0;
    padding: 1.125em 0;
  }
}

/* ==========================================================================
   Category
========================================================================== */
.category {
  display: flex;
  gap: .25rem;
}
.category .cat {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: .857em;
  line-height: 1.35;
  white-space: nowrap;
  padding: .4em .8em;
  background: var(--l-blue2);
  color: var(--white);
}

.cat._ir { background: var(--blue); }
.cat._sustainability { background: var(--green); }
.cat._pr { background: var(--orange); }


/* ==========================================================================
   Alert
========================================================================== */
.alert {
  background: var(--ll-blue);
  margin: 1.5rem 0;
  padding: min(2.5rem, 6.5%) min(2.75rem, 8.5%);
  line-height: 1.857;
}
.alert._blue {
  background: linear-gradient(60deg, var(--color1) 0%, var(--color1-h) 100%);
  color: var(--white);
  font-weight: 700;
}


/* ==========================================================================
   Box
========================================================================== */
.box {
  background: rgba(255,255,255,.4);
  padding: min(3rem, 8%) min(1.25rem, 5%);
  font-weight: 500;
  line-height: 1.75;
  margin: .5rem 0;
}
.box:has(.row) {
  padding: min(3rem, 6%) min(3rem, 7%);
}
.box .ttl {
  display: block;
  font-weight: 500;
}
.box .small,
.box .xsmall {
  display: block;
}
.box .btn {
  width: 19.5rem;
}
@media (min-width: 768px){
  .boxes.row {
    row-gap: .5rem;
  }
}


/* ==========================================================================
   gridBox
========================================================================== */
.gridBox {
  display: grid;
  grid-template-rows: auto;
  grid-column-gap: 2%;
}
.gridBox picture.cover {
  aspect-ratio: 1/1;
}
@media (max-width: 767px){
  .gridBox {
    grid-template-columns: repeat(3, 1fr);
    grid-row-gap: 1.25rem;
  }
  .gridBox .ttlBox {
    align-self: center;
    padding-left: 6%;
  }
  .gridBox .imgBox { grid-area: 1 / 1 / 2 / 2; }
  .gridBox .ttlBox { grid-area: 1 / 2 / 2 / 4; }
  .gridBox .txtBox { grid-area: 2 / 1 / 3 / 4; }
}
@media (min-width: 768px){
  .gridBox {
    grid-template-columns: repeat(3, 1fr);
    grid-row-gap: 1rem;
  }
  .gridBox .imgBox {
    padding-right: 10%;
  }
  .gridBox .ttlBox {
    align-self: end;
  }
  .gridBox .imgBox { grid-area: 1 / 1 / 3 / 2; }
  .gridBox .ttlBox { grid-area: 1 / 2 / 2 / 4; }
  .gridBox .txtBox { grid-area: 2 / 2 / 3 / 4; }
}
@media (min-width: 1200px){
  .gridBox .imgBox {
    padding-right: 15.5%;
  }
}

/* ==========================================================================
   dl
========================================================================== */
.outline dl {
  border-top: 1px solid var(--border1);
  line-height: 1.857;
}
.outline dl dt {
  display: block;
  font-weight: 700;
  padding: 1.25rem 0 .75rem;
  position: relative;
}
.outline dl dt::before {
  content: '';
  display: block;
  width: 7em;
  height: 1px;
  background: var(--l-blue);
  position: absolute;
  top: -1px;
  left: 0;
}
body.ir-style .outline dl dt::before {
  background: var(--black);
}
.outline dl dd {
  padding-bottom: 1.375rem;
}
@media (max-width: 767px){
  .outline dl:last-of-type dd {
    padding-bottom: 0;
  }
}
@media (min-width: 768px){
  .outline dl {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
  }
  .outline dl:last-of-type {
    border-bottom: 1px solid var(--border1);
  }
  .outline dl dt {
    flex: 0 0 min(16rem, 22.5%);
    display: flex;
    align-items: center;
    font-weight: 500;
    padding: 2rem 0;
  }
  .outline dl dt::before {
    width: 100%;
  }
  .outline dl:last-of-type dt::after {
    content: '';
    display: block;
    width: 100%;
    height: 1px;
    background: var(--l-blue);
    position: absolute;
    bottom: -1px;
    left: 0;
  }
  body.ir-style .outline dl:last-of-type dt::after {
    background: var(--black);
  }
  .outline dl dd {
    display: block;
    flex: 0 0 calc(100% - min(16rem, 22.5%));
    padding: 2rem 0 2rem 2rem;
    margin-bottom: 0;
  }
}



/* ==========================================================================
   History
========================================================================== */
.history-list ol > li {
  line-height: 1.643em;
  position: relative;
}
.history-list ol > li:not(:last-child)::before {
  content: '';
  display: block;
  width: 1px;
  height: 100%;
  background: var(--ll-blue2);
  position: absolute;
  top: 1rem;
  left: 2px;
}
.history-list ol > li .year {
  color: var(--l-blue);
  font-family: var(--font1);
  font-weight: 500;
  line-height: 1.3;
  display: flex;
  align-items: center;
  gap: 2rem;
  position: relative;
}
.history-list ol > li .year::before {
  content: '';
  display: block;
  flex: 0 0 5px;
  width: 5px;
  height: 5px;
  background: currentColor;
  border-radius: 100%;
}
.history-list ol > li dl {
  display: flex;
  flex-wrap: wrap;
  padding: 1em 0 1.5em calc(2rem + 5px);
}
.history-list ol > li:last-child dl {
  padding-bottom: 0;
}
.history-list ol > li dl dt {
  color: var(--l-blue);
  font-weight: 700;
  flex: 0 0 4em;
}
.history-list ol > li dl dd {
  flex: 0 0 calc(100% - 4em);
  margin-bottom: 1em;
}
.history-list ol > li:last-child dl dd:last-child {
  margin-bottom: 0;
}
.history-list ol > li dl dd ul li {
  display: flex;
  column-gap: .25em;
  margin-top: .125em;
}
.history-list ol > li dl dd ul li p a {
    color: var(--blue);
}
.history-list ol > li dl dd ul li::before {
  content: '・';
}

@media (min-width: 992px) {
  .history-list ol > li:not(:last-child)::before {
    left: calc(6.284rem - 3px);
  }
  .history-list ol > li {
    display: flex;
    align-items: flex-start;
  }
  .history-list ol > li .year {
    flex: 0 0 4em;
    justify-content: space-between;
    gap: 0;
  }
  .history-list ol > li .year::before {
    order: 2;
  }
  .history-list ol > li dl {
    flex-basis: calc(100% - 6.3em);
  }
  .history-list ol > li dl dd {
    margin-bottom: 1.25em;
  }
  .history-list ol > li dl {
    padding: .1em 0 1.5em calc(2rem + 5px);
  }
}


/* ==========================================================================
   Tab
========================================================================== */
.archive-menu {
  position: relative;
  z-index: 2;
}

.tab-links,
.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .571rem;
  text-align: center;
  margin: .5rem 0;
  position: relative;
  z-index: 2;
}
.tab-links li,
.tab {
  flex: 0 0 calc((100% - .571rem)/2);
}
.tab-links li > *,
.tab > * {
  display: block;
  background: var(--l-gray2);
  color: var(--gray);
  border: 1px solid transparent;
  border-radius: .25em;
  padding: .75em .5em;
  font-size: .929em;
  line-height: 1.5;
  cursor: pointer;
  position: relative;
  transition: .3s;
  transition-property: background, color, border;
}
.tab-links li:hover > *,
.tab:hover > * {
  color: var(--black);
}
.tab-links li.active > *,
.tab.active > * {
  color: var(--black);
  background: transparent;
  border-color: currentColor;
}
@media (min-width: 768px) {
  .tab-links,
  .tabs {
    gap: 1rem;
  }
  .tab-links li,
  .tab {
    flex: 0 0 calc((100% - 3rem)/4);
  }
}
@media (min-width: 992px) {
  .tab-links,
  .tabs {
    margin: 3rem 0 2rem;
  }
  .tab-links li,
  .tab {
    flex: 1 0 calc((100% - 4rem)/5);
    max-width: calc((100% - 3rem)/4);
  }
}


/* ==========================================================================
   Accordion
========================================================================== */
@media (max-width: 767px) {
  .sp-acc {
    position: relative;
  }
  .sp-acc_body {
    display: none;
  } 

  .archive-menu.sp-acc .sp-acc_btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent;
    color: var(--black);
    border: 1px solid currentColor;
    border-radius: .25em;
    padding: .75em 1.25em;
    font-size: .929em;
    line-height: 1.5;
    cursor: pointer;
    position: relative;
    transition: .3s;
    transition-property: background, color, border;
  }
  .archive-menu.sp-acc .sp-acc_btn::after {
    font-family: 'icomoon' !important;
    content: "\e907";
  }
  .archive-menu.sp-acc.on .sp-acc_btn::after {
    content: "\e904";
  }


  .archive-menu.sp-acc .sp-acc_body {
    width: 100%;
    background: var(--l-gray);
    padding: .75em;
    position: absolute;
    top: 100%;
    left: 0;
  }
  .archive-menu.sp-acc .sp-acc_body ul.tab-links,
  .archive-menu.sp-acc .sp-acc_body ul.tabs {
    flex-direction: column;
    text-align: left;
    gap: 0;
  }
  .archive-menu.sp-acc .sp-acc_body ul.tab-links li,
  .archive-menu.sp-acc .sp-acc_body ul.tabs li.tab {
    flex: 0 0 auto;
  }
  .archive-menu.sp-acc .sp-acc_body ul.tab-links li > *,
  .archive-menu.sp-acc .sp-acc_body ul.tabs li.tab > * {
    background: transparent;
    color: inherit;
  }
  .archive-menu.sp-acc .sp-acc_body ul.tab-links li.active,
  .archive-menu.sp-acc .sp-acc_body ul.tabs li.tab.active {
    display: none;
  }
}

@media (min-width: 768px) {
  .sp-acc_body {
    display: block!important;
  } 
}


.acc {
  border-bottom: 1px solid var(--border1);
  position: relative;
}
.acc::before {
  content: '';
  display: block;
  width: min(14.285em, 30%);
  height: 1px;
  background: var(--l-blue);
  position: absolute;
  bottom: -1px;
  left: 0;
}
.acc_btn {
  display: block;
  font-weight: 500;
  white-space: nowrap;
  line-height: 1.5;
  padding: 1.357rem 3rem 1.357rem 0;
  position: relative;
  cursor: pointer;
  transition: opacity .2s;
}
.acc_btn:hover {
  opacity: .5;
}
.acc_btn::before,
.acc_btn::after {
  content: "";
  display: block;
  width: 1rem;
  height: 1px;
  background: currentColor;
  position: absolute;
  top: 50%;
  right: .75rem;
  transition: opacity .2s;
  transform: translateY(-50%);
}
.acc_btn:not(.arrow-btn)::after {
  transform: translateY(-50%) rotate(90deg);
}
.acc.on .acc_btn:not(.arrow-btn)::after {
  opacity: 0;
}

.acc_body {
  padding: 0 0 2.25rem;
}
@media (min-width: 992px) {
  .acc_body {
    padding: 0 0 3rem;
  }
  .acc_body .inner {
    margin-right: 1.5rem;
    margin-left: 1.5rem;
  }
  .acc_btn::before,
  .acc_btn::after {
    right: 1.5rem;
  }
}

.acc-list {
  border-top: 1px solid var(--border1);
  position: relative;
}
.acc-list::after {
  content: '';
  display: block;
  width: min(14.285em, 30%);
  height: 1px;
  background: var(--l-blue);
  position: absolute;
  top: -1px;
  left: 0;
}

.faq-list {
  color: var(--dd-gray);
  background: var(--l-gray);
  padding: min(2rem, 2%) min(3rem, 6%);
}
.faq-list .item {
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--border1);
}
.faq-list .item:last-child {
  margin-bottom: 0;
  border-bottom: 0;
}
.faq-list .faq__q {
  font-family: var(--mincho);
  line-height: 1.5;
  letter-spacing: 0.08em;
  white-space: normal;
  padding: .2rem 0 .2rem 2.25rem;
  position: relative;
}
.faq-list .faq__q .label {
  font-family: var(--font1);
  color: var(--black);
  display: block;
  font-size: 1.154rem;
  line-height: 1.75;
  position: absolute;
  top: 0;
  left: 0;
}

.faq-list .faq__a {
  padding: .2rem 0 .2rem 2.25rem;
  position: relative;
}
.faq-list .faq__a .label {
  font-family: var(--font1);
  display: block;
  font-size: 1.154rem;
  line-height: 1.75;
  position: absolute;
  top: 0;
  left: 0;
  visibility: hidden;
}
.faq-list .faq__a a:not([class*="btn"]) {
  color: inherit;
  text-decoration: underline;
}
.faq-list .faq__a a[class*="btn"] {
  margin-top: .75em;
}

@media (min-width: 992px) {
  .faq-list {
    margin: 0 1.5rem;
  }
}


/* ==========================================================================
   Counter
========================================================================== */
.counter-row {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.5rem;
}
.count-item {
  flex-basis: 100%;
  display: flex;
  align-items: center;
  font-size: 1.143rem;
  font-weight: 700;
  white-space: nowrap;
  padding: 1rem;
  background: var(--white);
  border-radius: .5em;
  position: relative;
}
.count-item .badge {
  width: 100px;
  background: var(--color1);
  border-radius: 2em;
  padding: .6em 1.5em;
  font-size: 1rem;
  font-weight: 700;
}
.count-item > span {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: .25em;
  flex-basis: calc(100% - 100px);
  transform: translateY(5%);
}
.count-item .num {
  display: block;
  color: var(--color1);
  font-family: var(--font2);
  font-size: 2.286rem;
  line-height: 1;
  transform: translateY(5%);
}
@media (min-width: 576px) {
  .counter-row {
    flex-direction: row;
    margin-top: 3rem;
  }
  .count-item {
    justify-content: center;
    padding: 2.5rem .5rem 1.5rem;
  }
  .count-item .badge {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%,-50%);
  }
}


/* ==========================================================================
   Hero
========================================================================== */
.hero,
.hero picture {
  display: block;
  position: relative;
}
.hero picture::before {
  content: '';
  background: #354752;
  opacity: .8;
  mix-blend-mode: multiply;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
}
.hero .txtBox {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: var(--white);
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
}
.hero:has(.over-right) .txtBox {
  padding-left: min(8vw, 7.5rem);
}
.hero .head-label {
  width: 5rem;
  height: 5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border: 1px solid currentColor;
  border-radius: 100%;
  font-family: var(--font1);
  font-size: .857rem;
  font-weight: 500;
  line-height: 1;
  padding-top: .25em;
}
.hero .head-label .num {
  font-size: 1.667em;
  display: block;
  margin-top: .25em;
}
.hero .head-label + .ttl {
  margin: 1em 0;
}
.hero .txtBox .ttl::before {
  color: inherit;
}
.hero .txtBox .badge_b {
  padding: .18em .25em .26em;
  line-height: 1;
  letter-spacing: .04em;
  border: 1px solid currentColor;
}
.overlay-txt {
  display: block;
  font-family: var(--font1);
  font-size: 11vw;
  font-weight: 700;
  line-height: 1;
  text-align: right;
  text-transform: uppercase;
  color: #FFF;
  mix-blend-mode: overlay;
  transform: translateY(.14em);
  position: absolute;
  right: 0;
  bottom: 1px;
  z-index: 2;
}
.overlay-txt.text-center {
  right: 0;
  left: 0;
}
.bg-gradation .overlay-txt {
  letter-spacing: .08em;
  opacity: .15;
}
a.hero + a.hero {
  margin-top: 1.5rem;
}
a.hero picture {
  height: calc(11vw + 22em);
  overflow: hidden;
}
a.hero picture img {
  transition: transform .3s;
}
a.hero:hover picture img {
  transform: scale(1.1);
}
a.hero::before {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.286rem;
  width: 3em;
  height: 3em;
  content: "\e902";
  font-family: 'icomoon' !important;
  border-radius: 100%;
  background: var(--white);
  color: var(--color1);
  position: absolute;
  bottom: calc(11vw + .5em);
  right: 0;
  margin-top: -1.5em;
  z-index: 2;
}
a.hero .txtBox {
  padding: 11vw 0;
}
@media (max-width: 767px) {
  a.hero .txtBox {
    justify-content: flex-start;
    padding-left: 8vw;
  }
  .hero:has(.over-right) .overlay-txt,
  .hero:has(.over-right_sm) .overlay-txt {
    right: -8vw;
  }
}
@media (max-width: 575px) {
  .hero:has(.full_sp) .overlay-txt {
    right: -8vw;
  }
}
@media (min-width: 576px) {
  .overlay-txt {
    right: 8%;
  }
  .overlay-txt {
    font-size: 8vw;
  }
  .hero:has(.over-right) .overlay-txt {
    right: -1.5vw;
  }
  .hero .headline:has(.head-label) {
    display: flex;
    align-items: center;
    gap: 2em;
  }
  .hero .headline .head-label {
    flex: 0 0 5rem;
  }
  .hero .head-label + .ttl {
    margin: 0;
  }
}
@media (min-width: 768px) {
  a.hero::before {
    bottom: auto;
    top: 50%;
    right: 8%;
  }
  a.hero picture {
    height: calc(11vw + 18em);
  }
}
@media (min-width: 992px) {
  .overlay-txt {
    font-size: min(120px, 7vw);
  }
  .bg-gradation .overlay-txt {
    font-size: min(150px, 9vw);
  }
  a.hero + a.hero {
    margin-top: 2.25rem;
  }
  a.hero picture {
    height: calc(11vw + 22em);
  }
}


/* ==========================================================================
   Color
========================================================================== */
.bg-white {
  background-color: var(--white);
}
.bg-white40 {
  background-color: rgba(255,255,255,.4);
}
.bg-l-gray {
  background-color: var(--l-gray);
  overflow: hidden;
}
.bg-l-gray2 {
  background-color: var(--l-gray2);
}
.bg-l-gray3 {
  background-color: var(--l-gray3);
}
.bg-color1 {
  background-color: var(--color1);
  color: var(--white);
}
.bg-gradation {
  background: linear-gradient(0deg, var(--color1) 0%, var(--color1-h) 100%);
  color: var(--white);
}
.bg-gradation90 {
  background: linear-gradient(90deg, var(--color1) 0%, var(--color1-h) 100%);
  color: var(--white);
}
.color-base1 {
  color: var(--color-base1);
}
.color-base2 {
  color: var(--color-base2);
}
.color1 {
  color: var(--color1);
}
.color2 {
  color: var(--color2);
}
.color3 {
  color: var(--color3);
}
.white {
  color: var(--white);
}
.gray {
  color: var(--gray);
}
.d-gray {
  color: var(--d-gray);
}
.black {
  color: var(--black);
}
.red {
  color: var(--red);
}
.l-blue2 {
  color: var(--l-blue2);
}


section[class*="bg-"] {
  overflow: hidden;
}


/* ==========================================================================
   WP Post
========================================================================== */
.article__header {
  border-bottom: 1px solid var(--border1);
  padding-bottom: 2rem;
  margin-bottom: 2rem;
}
.article__header .entry__meta {
  display: flex;
  align-items: center;
  margin-bottom: .5em;
}
.article__header .entry__meta .category {
  padding: .25rem 0;
  margin-left: 1.25em;
}
.article__header .ttl {
  font-weight: 400;
  line-height: 1.75;
  margin: 0 !important;
}

.article__footer {
  margin: 60px auto 15px;
  padding-top: 45px;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

/* entry__content */
.entry__content {
  line-height: 2;
  -webkit-font-smoothing: antialiased;
}

.entry__content a:not(.btn) {
  color: var(--color1);
  text-decoration: underline;
}

.entry__content blockquote {
  margin: 0 0 1.5em 0.75em;
  padding: 0 0 0 0.75em;
  border-left: 3px solid #8da0b6;
  font-style: italic;
  color: #abb1b5;
}

.entry__content dl {
  margin-top: 1rem;
  margin-bottom: 2rem;
}
.entry__content dt {
  font-weight: 500;
  font-size: 1.143em;
  line-height: 1.56;
  margin-bottom: .75rem;
}
.entry__content dd {
  margin-left: 0;
  margin-bottom: 1.75rem;
  padding: 0 0 1.75rem;
  border-bottom: 1px solid var(--border1);
}
.entry__content dd > * {
  margin: 0 0 .5em;
}
.entry__content dd > *:last-child {
  margin: 0;
}

.entry__content figure {
  margin-top: 1rem;
  margin-bottom: 2rem;
}
.entry__content img {
  display: block;
  max-width: 100%;
  height: auto;
  margin-top: 1rem;
  margin-bottom: 2rem;
}
.entry__content pre {
  background: #323944;
  color: #f8f9fa;
  font-size: 0.9em;
  padding: 15px;
  border-radius: 3px;
  margin-top: 1rem;
  margin-bottom: 2rem;
}

.entry__content .video {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.entry__content .video iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  margin-top: 1rem;
  margin-bottom: 2rem;
}

.entry__content table {
  width: 100%;
  margin-top: 1rem;
  margin-bottom: 2rem;
  line-height: 1.5;
}
.entry__content table th {
  background-color: var(--l-gray2);
  border: 1px solid var(--border1);
  padding: 0.5em;
  font-weight: 400;
}
.entry__content table tbody th {
  text-align: left;
}
.entry__content table td {
  border: 1px solid var(--border1);
  padding: 0.5em;
}


.entry__content ul, .entry__content ol {
  margin-left: 0;
  padding-left: 0;
  margin-top: 1rem;
  margin-bottom: 2rem;
  counter-reset: cnt;
}
.entry__content ul {
  list-style-type: disc;
  padding-left: 1.25em;
}
.entry__content ol ol, .entry__content ul ul, .entry__content ol ul, .entry__content ul ol {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
.entry__content ol li {
  list-style-type: none;
  counter-increment: cnt;
  position: relative;
}
.entry__content ol li::before {
  font-family: sans-serif;
  content: "( " counter(cnt) " )";
  margin-right: 0.5em;
}
.entry__content ol li ol li::before {
  font-family: sans-serif;
  display: inline-block;
  width: 2em;
  text-align: center;
  margin-right: 0;
  content: counter(cnt);
  transform: scale(0.75);
}
.entry__content ol li ol li::after {
  content: "";
  display: block;
  width: 2em;
  height: 2em;
  border: 1px solid currentColor;
  border-radius: 50%;
  position: absolute;
  top: 0;
  left: 0;
  transform: scale(0.65);
}
.entry__content ol li ol li ol {
  margin-left: 2em;
}

.entry__content p {
  margin-top: 1rem;
  margin-bottom: 2rem;
}
.entry__content h1, 
.entry__content h2, 
.entry__content h3, 
.entry__content h4, 
.entry__content h5, 
.entry__content h6 {
  margin: 2em 0 1rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
}

.entry__content h1 {
  font-size: 1.857em;
}
.entry__content h2 {
  font-size: 1.714em;
}
.entry__content h3 {
  font-size: 1.429em;
}
.entry__content h4 {
  font-size: 1.286em;
}
.entry__content h5 {
  font-size: 1.143em;
}
.entry__content h6 {
  font-size: 1em;
  
}

.entry__content > .section > h2:first-child {
  margin-top: 0;
}

.entry__content h1 small, 
.entry__content h2 small, 
.entry__content h3 small, 
.entry__content h4 small, 
.entry__content h5 small, 
.entry__content h6 small {
  margin: 1em 0;
}

/* not found */
#post-not-found {
  text-align: center;
  margin: 2rem auto 3rem;
  padding: 2.5rem 1.5rem;
}

.entry__content .alignfull, .entry__content .alignwide {
  width: 100vw;
  margin-left: calc(((100vw - 100%) / 2) * -1);
}
@media (min-width: 576px) {
  .entry__content .alignwide {
    width: calc(100% + (100vw - 100%) / 2);
    margin-left: calc(((100vw - 100%) / 4) * -1);
  }
}
.entry__content .alignfull > img, .entry__content .alignwide > img {
  display: block;
  margin-right: auto;
  margin-left: auto;
  min-width: 100%;
}
@media (min-width: 576px) {
  .entry__content .excerpt {
    margin-right: -1.25em;
    margin-left: -1.25em;
  }
}

.entry__content small svg {
  max-width: 16px;
  top: 3px;
  position: relative;
  fill: var(--color2);
}



/* ==========================================================================
   Pagination - Archive
========================================================================== */
.pagination,
.wp-prev-next {
  margin: 3rem 0 2rem;
}

.pagination {
  text-align: center;
}
.pagination ul {
  width: min(100%, 570px);
  display: flex;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
  padding: 0 2.5rem;
  margin-right: auto;
  margin-left: auto;
  position: relative;
}
.pagination li {
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.pagination li .page-numbers {
  margin: 0 0.375em;
  padding: 0;
  min-width: 2.5rem;
  font-size: .857em;
  line-height: 2.5rem;
  font-weight: normal;
  text-decoration: none;
  background: var(--l-gray);
  display: flex;
  justify-content: center;
  align-items: center;
}
.pagination li .page-numbers:hover,
.pagination li .page-numbers:focus {
  background: var(--l-gray2);
}
.pagination li .page-numbers.current {
  background: var(--black);
  color: var(--white);
  cursor: default;
}

.pagination li:has(.page-numbers.dots) {
  align-self: flex-end;
}
.pagination li .page-numbers.dots {
  min-width: initial;
  background: transparent;
  line-height: 1;
  margin: 0;
}

.pagination li .page-numbers.next,
.pagination li .page-numbers.prev {
  display: flex;
  align-items: center;
  gap: 1.25em;
  background: transparent;
  font-size: .857em;
  font-weight: 700;
  text-transform: uppercase;
  margin: 0;
  border-bottom: 0;
}
.pagination li:has(.page-numbers.next) {
  position: absolute;
  top: 50%;
  right: 0;  
  transform: translateY(-50%);
}
.pagination li:has(.page-numbers.prev) {
  position: absolute;
  top: 50%;
  left: 0; 
  transform: translateY(-50%);
}
.pagination li .page-numbers i[class*="icon-"] {
  font-size: .668em;
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 2rem;
  height: 2rem;
  border-radius: 100%;
  border: 1px solid var(--border1);
  transition: border .3s;
}
.pagination li .page-numbers:hover i[class*="icon-"] {
  border-color: currentColor;
}
@media (min-width: 768px) {
  .pagination ul {
    padding: 0 6.5rem;
  }
  .pagination li .page-numbers.next::before {
    content: 'NEXT';
  }
  .pagination li .page-numbers.prev::after {
    content: 'PREV';
  }
}


/* ==========================================================================
   Pagination - Single
========================================================================== */
.pagenav {
  border-top: 1px solid var(--border1);
  padding: 3.5rem 0 0;
}
.pagenav nav {
  width: min(100%, 570px);
  display: flex;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
  padding: 0 2.5rem;
  margin-right: auto;
  margin-left: auto;
  position: relative;
}
.pagenav a {
  vertical-align: bottom;
}
.pagenav a:not(.btn) {
  display: flex;
  align-items: center;
  gap: 1.25em;
  background: transparent;
  font-size: .857em;
  font-weight: 700;
  text-transform: uppercase;
  margin: 0;
  border-bottom: 0;
}
.pagenav .next {
  position: absolute;
  top: 50%;
  right: 0;  
  transform: translateY(-50%);
}
.pagenav .prev {
  position: absolute;
  top: 50%;
  left: 0; 
  transform: translateY(-50%);
}
.pagenav a i[class*="icon-"] {
  font-size: .668em;
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 2rem;
  height: 2rem;
  border-radius: 100%;
  border: 1px solid var(--border1);
  transition: border .3s;
}
.pagenav a:hover i[class*="icon-"] {
  border-color: currentColor;
}
@media (min-width: 768px) {
  .pagenav nav {
    padding: 0 6.5rem;
  }
  .pagenav .next a::before {
    content: 'NEXT';
  }
  .pagenav .prev a::after {
    content: 'PREV';
  }
}


/* ==========================================================================
   Form
========================================================================== */
.form dl dt {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75em;
  font-weight: 500;
  line-height: 2.25rem;
  padding: .75rem 0;
  margin: 0;
}
.form dl dt .badge {
  order: 2;
  border-radius: .2em;
}
.form dl dd {
  padding: 0 0 1.75rem;
  border-bottom: 1px solid var(--border1);
  margin-bottom: .5rem;
}
.form dl dd p {
  margin-top: 0;
  margin-bottom: 0;
  font-size: .929rem;
  line-height: 1.75;
}
.form dl dd p + p {
  margin-top: .5em!important;
}
.form .buttons {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 2em;
  row-gap: 1em;
  position: relative;
}

.form dl dd input[type="button"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: inherit;
  background-color: transparent;
  color: inherit;
  padding: 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  outline: 0;
  box-sizing: border-box;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
textarea,
select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: inherit;
  background-color: var(--l-gray);
  border: 1px solid transparent;
  border-radius: 0;
  outline: 0;
  box-sizing: border-box;
  font-size: 1rem;
  color: inherit;
  width: 100%;
  transition: border 0.2s ease-out;
}
input:focus,
textarea:focus,
select:focus {
  outline: none;
  border-color: var(--border1);
}
/* label {
  cursor: pointer;
} */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"] {
  height: 49px;
  padding: 10px 15px;
}
input[type="text"][name*="zip"] {
  width: min(calc(50% - 4.25em), 10em);
}
textarea {
  padding: 10px;
  width: 100%;
  height: auto;
}
select {
  width: auto;
  height: 49px;
  padding: 10px 15px;
  background-image: url(../img/icon-arrow-down.svg);
  background-repeat: no-repeat;
  background-position: center right 15px;
  background-size: 10px 6px;
}
select::-ms-expand {
  display: none;
}

.form dl input[type="text"], .form dl input[type="email"], .form dl input[type="tel"], .form dl input[type="number"], .form dl textarea, .form dl select {
  font-family: var(--gothic);
}

input[type="radio"],
input[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: inherit;
  background: var(--white);
  border: 1px solid var(--border1);
  border-radius: 2px;
  outline: 0;
  box-sizing: border-box;
  color: inherit;
  width: 20px;
  height: 20px;
  margin: 0 .5em 0 0 !important;
  position: relative;
}
input[type="checkbox"]:before {
  position: absolute;
  top: 10%;
  left: 32%;
  transform: rotate(45deg);
  width: 32%;
  height: 64%;
  border-right: 2px solid transparent;
  border-bottom: 2px solid transparent;
  content: '';
  transition: border 0.2s ease-out;
}
input[type="checkbox"]:checked:before {
  border-color: var(--color1);
}
input[type="radio"] {
  border-radius: 100%;
}
input[type="radio"]:before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 100%;
  background: var(--white);
  content: '';
  transform: scale(0.5);
  transition: 0.15s;
}
input[type="radio"]:checked:before {
  background: var(--color1);
  transform: scale(0.6);
}
input[type="radio"] + span,
input[type="checkbox"] + span {
  font-size: 1rem;
}


input[type="submit"] {
  width: 18em;
}

.form dl a {
  color: var(--color1);
  text-decoration: underline;
}
.form dl a:hover {
  text-decoration: none;
}

::placeholder {
  color: var(--gray);
}
::-ms-input-placeholder {
  color: var(--gray);
}
:-ms-input-placeholder {
  color: var(--gray);
}

.file-button {
  font-size: 12px;
}
.file-button::file-selector-button {
  font-weight: bold;
  color: inherit;
  background: var(--white);
  font-size: 14px;
  font-weight: 400;
  border: 0;
  border-radius: 0;
  padding: 16px 20px;
  text-align: center;
  transition: background .2s;
}
.file-button::file-selector-button:hover {
  background: var(--l-blue);
}


@media (max-width: 767px) {
  .form dl dt:first-child {
    padding-top: 1.25rem;
    border-top: 1px solid var(--border1);
  }
}
@media (min-width: 768px) {
  .form dl {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    border-top: 0;
    border-bottom: 1px solid var(--border1);
    padding-bottom: 2rem;
  }
  .form dl dt {
    font-size: 1rem;
    font-weight: 400;
    flex: 0 0 17.5rem;
    justify-content: flex-start;
    padding-top: 9px;
    padding-bottom: 0;
    margin-bottom: 1.5rem;
  }
  .form dl dt .badge {
    order: 0;
  }
  .form dl dd {
    flex: 0 0 calc(100% - 17.5rem);
    margin-bottom: 1.5rem;
    padding-bottom: 0;
    border-bottom: 0;
  }
  .form dl dd.privacy {
    padding-top: 12px;
  }
}



.form-box .form {
  background: rgba(255,255,255,.4);
  border: 0;
}
.form-box .form dd {
  border-bottom: 0;
}
.form-box input[type="text"],
.form-box input[type="email"],
.form-box input[type="tel"],
.form-box input[type="number"],
.form-box textarea,
.form-box select {
  background-color: var(--white);
}
.form-box .buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: 2em;
  row-gap: 1em;
  position: relative;
}
@media (max-width: 767px) {
  .form-box .form dt {
    padding-right: 8vw;
    padding-left: 8vw;
    background: #F1F8FE;
  }
  .form dl dt:first-child {
    padding-top: .75rem;
    border-top: 0;
  }
  .form-box .form dd {
    padding: 1.5rem 8vw 1.75rem;
  }
}
@media (max-width: 575px) {
  .form-box {
    width: 100vw;
    margin-right: calc(((100vw - 100%) / 2) * -1);
    margin-left: calc(((100vw - 100%) / 2) * -1);
    padding-right: 0;
    padding-left: 0;
  }
  .form-box .buttons .btn._white {
    padding: 1.5em;
    width: 84%;
  }
}
@media (min-width: 768px) {
  .form-box .form {
    padding: min(3rem, 5%);
  }
  .form dl {
    padding-bottom: 1rem;
    margin-bottom: 3.25rem;
  }
  .form dl:last-of-type {
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 0;
  }

  .form-box .form dl dt {
    flex: 0 0 15rem;
  }
  .form-box .form dl dd {
    flex: 0 0 calc(100% - 15rem);
  }
}


.wpcf7-acceptance,
.wpcf7-radio,
.wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  column-gap: 2.5rem;
  row-gap: .5rem;
}
.text-center .wpcf7-acceptance,
.text-center .wpcf7-radio,
.text-center .wpcf7-checkbox {
  display: inline-flex;
}
.wpcf7-list-item {
  margin: 0;
}
.wpcf7-spinner {
  position: absolute;
  top: 100%;
  margin-top: 1rem;
  background: var(--color1);
  opacity: 1;
}
.wpcf7-spinner::before {
  background: var(--white);
}
@media (max-width: 767px) {
  .wpcf7-acceptance,
  .wpcf7-radio,
  .wpcf7-checkbox {
    column-gap: 0;
  }
  .wpcf7-list-item {
    min-width: 50%;
  }
  .sp-block > .wpcf7-list-item {
    width: 100%;
  }
}



/****************************************************************************
   PRINT STYLE
****************************************************************************/
@media print {
  * {
    background: transparent !important;
    color: black !important;
    text-shadow: none !important;
    filter: none !important;
    -ms-filter: none !important;
  }

  a,
  a:visited {
    color: #444 !important;
    text-decoration: underline;
  }
  a:after,
  a:visited:after {
    content: " (" attr(href) ")";
  }
  a abbr[title]:after,
  a:visited abbr[title]:after {
    content: " (" attr(title) ")";
  }

  .ir a:after,
  a[href^="javascript:"]:after,
  a[href^="#"]:after {
    content: "";
  }

  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }

  thead {
    display: table-header-group;
  }

  tr,
  img {
    page-break-inside: avoid;
  }

  img {
    max-width: 100% !important;
  }

  @page {
    margin: 0.5cm;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
  h3 {
    page-break-after: avoid;
  }

  .sidebar, .page-navigation, .wp-prev-next, .respond-form,
  nav {
    display: none;
  }
}

