/* ============================================================= *

404

* ============================================================= */
/* CMN-notfound
============================== */
.CMN-notfound {
  font-size: calc(12px + var(--slope-1px) * 1);
}

/* ============================================================= *

index

* ============================================================= */
@media (any-hover: none) {
  body[data-id=index] .l-wrapper {
    position: relative;
  }
  body[data-id=index] .l-wrapper:before, body[data-id=index] .l-wrapper:after {
    content: "";
    position: fixed;
    z-index: -1;
    display: block;
    width: 375px;
    aspect-ratio: 1/1;
    background: url(../img/gradation.svg) 50% 50%/contain no-repeat;
    pointer-events: none;
  }
  body[data-id=index] .l-wrapper:before {
    top: 0;
    right: 0;

    rotate: -90deg;
    translate: 17.33333% -16%;
  }
  body[data-id=index] .l-wrapper:after {
    bottom: 0;
    left: 0;

    rotate: 90deg;
    translate: -17.33333% 16%;
  }
}

/* p-index-title
============================== */
.p-index-title {
  position: relative;
  display: flex;
  align-items: center;
  height: calc(var(--en-height) + var(--padding-bottom));
  padding-bottom: var(--padding-bottom);
  font-weight: 600;
  font-size: calc(32px + var(--slope-1px) * 12);

  --en-height: calc(61px + var(--slope-1px-md) * 24);
  --logo-height: calc(30px + var(--slope-1px-md) * 10);
  --padding-bottom: calc(var(--logo-height) + 11px + var(--slope-1px-md) * 5);
}

@media screen and (max-width: 767px) {
  .p-index-title {
    overflow: hidden;
    width: calc(100% + var(--inner-padding));
  }
}

.p-index-title:before {
  content: attr(data-en);
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  color: var(--bg-color);
  font-size: calc(86px + var(--slope-1px-md) * 34);
  font-family: var(--en-font-family);
  line-height: .8;
}

.p-index-title:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  height: var(--logo-height);
  aspect-ratio: 52/40;
  background: url(../img/symbol.svg) 50% 50%/contain no-repeat;
}

/* p-index-hero
============================== */
.p-index-hero {
  height: calc(var(--vh) * 100);

  --easing: cubic-bezier(.25, 1, .5, 1);
  --symbol-width: min(90vh, 80vw);
}

body.is-hero-hidden .p-index-hero {
  --easing: cubic-bezier(.5, 0, .75, 0);
}

.p-index-hero__inner {
  position: fixed;
  inset: 0;
  display: grid;
  align-items: center;
  grid-template-rows: 326fr 231fr;
  gap: calc(20px + var(--slope-1px-md) * 10);
  width: calc(var(--outer-width-px) + 22px * 2);
  height: calc(var(--vh) * 100);
  max-width: calc(var(--vw) * 100);
  max-height: calc(667px + var(--slope-1px) * 133);
  margin: auto;
  padding-inline: 22px;
  padding-top: var(--header-height);
  padding-bottom: 32px;
  transition: all .5s var(--easing);

  container-type: size;
}

body.is-prescrolled .p-index-hero__inner {
  transition: none;
}

body.is-hero-hidden .p-index-hero__inner {
  visibility: hidden;
  opacity: 0;
  filter: blur(20px);

  scale: 4;
}

/* p-index-hero-symbol
============================== */
.p-index-hero-symbol {
  position: relative;
  z-index: 0;
  align-self: flex-end;
  height: min(calc(229px + var(--slope-1px) * 97), calc(100cqb / (326 + 231 + 30) * 326));
  aspect-ratio: 630/492;
  margin-inline: auto;
  transition: all .7s cubic-bezier(.33, 1, .68, 1) .2s;

  scale: 1.25;
  translate: 0 20%;
}

.p-index-hero.is-animated .p-index-hero-symbol {
  scale: 1;
  translate: 0 0;
}

@media screen and (max-width: 767px) {
  .p-index-hero-symbol {
    align-self: center;
  }
}

.p-index-hero-symbol:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  background: url(../img/symbol/texture.svg) 50% 50%/contain no-repeat;
  opacity: 0;
  transition: opacity .7s cubic-bezier(.33, 1, .68, 1) .2s;
  pointer-events: none;
}

.p-index-hero.is-animated .p-index-hero-symbol:before {
  opacity: 1;
}

.p-index-hero-symbol > div {
  will-change: mask-image, -webkit-mask-image;

  -webkit-mask-image: linear-gradient(var(--reveal-deg, 90deg), transparent var(--reveal-p), #000 calc(var(--reveal-p) + 1%));
          mask-image: linear-gradient(var(--reveal-deg, 90deg), transparent var(--reveal-p), #000 calc(var(--reveal-p) + 1%));
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  --reveal-p: 100%;
  --to-right-bottom: 315deg;
  --to-right-top: 225deg;
  --to-left-bottom: 45deg;
  --to-left-top: 135deg;
}

.p-index-hero-symbol svg {
  display: block;
  height: auto;
  max-width: 100%;
}

.p-index-hero-symbol :is(img, svg) {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-index-hero-symbol ._line-1, .p-index-hero-symbol ._line-2, .p-index-hero-symbol ._line-3, .p-index-hero-symbol ._line-4, .p-index-hero-symbol ._line-5, .p-index-hero-symbol ._line-6 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.p-index-hero-symbol ._line-1 {
  z-index: 1;

  --reveal-deg: var(--to-left-top);
}

.p-index-hero-symbol ._line-2 {
  --reveal-deg: var(--to-left-bottom);
}

.p-index-hero-symbol ._line-3 {
  --reveal-deg: var(--to-right-bottom);
}

.p-index-hero-symbol ._line-4 {
  --reveal-deg: var(--to-right-top);
}

.p-index-hero-symbol ._line-5 {
  --reveal-deg: var(--to-left-top);
}

.p-index-hero-symbol ._line-6 {
  --reveal-deg: var(--to-left-bottom);
}

/* p-index-hero-lead
============================== */
.p-index-hero-lead {
  position: relative;
  z-index: 1;
  opacity: 0;
  transition: all .7s cubic-bezier(.33, 1, .68, 1) .2s;

  translate: 0px 30px;
  --lead-px: calc(100cqb / (326 + 231 + 30) * 1);
}

.p-index-hero.is-animated .p-index-hero-lead {
  opacity: 1;

  translate: 0px 0px;
}

.p-index-hero-lead__ja {
  margin-block: var(--leading-trim);
  font-weight: 900;
  font-size: min(calc(var(--lead-px) * 80), calc(45px + var(--slope-1px-md) * 35));
  line-height: min(calc(var(--lead-px) * 112), calc(65px + var(--slope-1px-md) * 47));
}

@media screen and (max-width: 767px) {
  .p-index-hero-lead__ja {
    font-size: 45px;
    line-height: 65px;
  }
}

.p-index-hero-lead__ja span {
  display: block;
}

.p-index-hero-lead__en {
  margin-block: var(--leading-trim);
  padding-top: min(calc(var(--lead-px) * 32), calc(30px + var(--slope-1px-md) * 2));
  font-weight: 600;
  font-size: min(calc(var(--lead-px) * 24), calc(18px + var(--slope-1px-md) * 6));
  font-family: var(--en-font-family);
  line-height: 1.4;
}

@media screen and (max-width: 767px) {
  .p-index-hero-lead__en {
    padding-top: 30px;
    font-size: 18px;
  }
}

/* p-index-main
============================== */
.p-index-main {
  padding-top: calc(var(--header-height) + 32px);

  --easing: cubic-bezier(.25, 1, .5, 1);
  --delay: 0s;
}

body.is-hero-hidden .p-index-main {
  --easing: cubic-bezier(.5, 0, .75, 0);
  --delay: .5s;
}

.p-index-main__inner {
  opacity: 0;
  filter: blur(20px);
  transition: all .5s var(--easing) var(--delay);
  transform: scale(.5);
  transform-origin: 50% calc(var(--vh) * 50);
}

body.is-prescrolled .p-index-main__inner {
  transition: none;
}

body.is-hero-hidden .p-index-main__inner {
  opacity: 1;
  filter: blur(0px);
  transform: scale(1);
}

/* p-index-site
============================== */
.p-index-site {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(20px + var(--slope-1px) * 4);
}

@media screen and (max-width: 767px) {
  .p-index-site {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  }
}

/* p-index-site-block
============================== */
.p-index-site-block {
  display: grid;
  grid-template-columns: 100%;
  gap: calc(28px + var(--slope-1px-md) * 12);
  padding: 32px;
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--base-box-shadow);
}

.p-index-site-block__head {
  height: 54px;
}

@media screen and (max-width: 767px) {
  .p-index-site-block__head {
    height: 26px;
  }
}

.p-index-site-block__head img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.p-index-site-block__body {
  display: grid;
  grid-template-columns: 100%;
  gap: calc(28px + var(--slope-1px-md) * 4);
}

.p-index-site-block__count {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 3px;
  font-weight: 600;
  font-size: 18px;
  line-height: 1;
}

.p-index-site-block__count em {
  font-weight: 500;
  font-size: calc(72px + var(--slope-1px-md) * 8);
  font-family: var(--en-font-family);
}

.p-index-site-block__nav {
  display: grid;
  grid-template-columns: 100%;
  gap: 12px;
}

/* p-index-information
============================== */
.p-index-information {
  display: grid;
  grid-template-columns: 100%;
  gap: calc(16px + var(--slope-1px-md) * 8);
  margin-top: calc(72px + var(--slope-1px-md) * 28);
}

/* p-index-information-nav
============================== */
.p-index-information-nav {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px 20px;
  padding: calc(24px + var(--slope-1px) * -4) calc(46px + var(--slope-1px) * 4) calc(24px + var(--slope-1px) * -4) 32px;
  border: 1px solid #fff;
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--base-box-shadow);
  text-decoration: none;
  font-weight: 600;
  transition: border .2s ease-out;
}

@media screen and (max-width: 767px) {
  .p-index-information-nav {
    flex-direction: column;
    align-items: flex-start;
  }
}

.p-index-information-nav.is-important {
  color: var(--red);
}

@media (any-hover: hover) {
  .p-index-information-nav:hover {
    border-color: currentColor;
  }
}

.p-index-information-nav:after {
  content: "";
  position: absolute;
  top: 0;
  right: calc(18px + var(--slope-1px) * 6);
  bottom: 0;
  display: block;
  width: calc(14px + var(--slope-1px) * 4);
  aspect-ratio: 1/1;
  margin-block: auto;
  background: currentColor;
  mask: var(--icon-angle) 50% 50%/contain no-repeat;
}

.p-index-information-nav__date {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--en-font-family);
  line-height: 1;
}

.p-index-information-nav__date:before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: calc(18px + var(--slope-1px) * 10);
  aspect-ratio: 1/1;
  background: currentColor;
  mask: var(--icon-info) 50% 50%/contain no-repeat;
}

.p-index-information-nav__text {
  margin-block: var(--leading-trim);
  padding-bottom: .2em;
}

/* p-index-recruit
============================== */
.p-index-recruit {
  display: grid;
  align-items: center;
  grid-template-columns: 459px 1fr;
  gap: 32px 24px;
  overflow: hidden;
  width: calc(100% + var(--inner-margin));
  padding-block: calc(72px + var(--slope-1px-md) * 48);
}

@media screen and (max-width: 767px) {
  .p-index-recruit {
    grid-template-columns: 100%;
    overflow: visible;
    width: 100%;
  }
}

.p-index-recruit__contents {
  display: grid;
  grid-template-columns: 100%;
  gap: calc(24px + var(--slope-1px-md) * 16);
}

.p-index-recruit__body {
  margin-block: var(--leading-trim);
  font-weight: 400;
  font-size: calc(17px + var(--slope-1px) * 3);
  line-height: 1.65;
}

.p-index-recruit__foot {
  width: calc(272px + var(--slope-1px) * 12);
}

@media screen and (max-width: 767px) {
  .p-index-recruit__image {
    overflow: hidden;
    width: calc(100% + var(--inner-margin));
  }
}

/* p-index-recruit-slider
============================== */
.p-index-recruit-slider {
  overflow: hidden;
  width: 100%;
  height: var(--slide-size);
  clip-path: polygon(calc(var(--slide-size) * 0) calc(var(--slide-size) * .5), calc(var(--slide-size) * .5) 0, calc(var(--slide-size) * 1) calc(var(--slide-size) * .5), calc(var(--slide-size) * 1.5) 0, calc(var(--slide-size) * 2) calc(var(--slide-size) * .5), calc(var(--slide-size) * 1.5) 100%, calc(var(--slide-size) * 1) calc(var(--slide-size) * .5), calc(var(--slide-size) * .5) 100%, calc(var(--slide-size) * 0) calc(var(--slide-size) * .5));

  --slide-size: calc(237px + var(--slope-1px) * 272);
}

.p-index-recruit-slider__list {
  display: flex;
  overflow: hidden;
}

.p-index-recruit-slider__list.slick-initialized {
  display: block;
  overflow: visible;
  width: calc(var(--slide-size) * 2);
}

.p-index-recruit-slider__list.slick-initialized .slick-list {
  overflow: visible;
}

.p-index-recruit-slider__item {
  flex-shrink: 0;
  width: var(--slide-size);
  height: var(--slide-size);
}

/* p-index-company
============================== */
.p-index-company {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px 9.25926%;
  padding-block: calc(72px + var(--slope-1px-md) * 48);
}

.p-index-company:before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  z-index: -1;
  display: block;
  width: calc(var(--vw) * 100);
  height: 100%;
  background: linear-gradient(90deg, rgba(242, 242, 242, .2) 0%, rgba(199, 199, 199, .2) 100%);
  transform: translateX(-50%);
}

@media screen and (max-width: 767px) {
  .p-index-company {
    grid-template-columns: 100%;
  }
}

/* p-index-company-table
============================== */
.p-index-company-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--border-color);
}

@media screen and (max-width: 767px) {
  .p-index-company-table {
    display: block;
  }
  .p-index-company-table tbody {
    display: contents;
  }
}

.p-index-company-table tr {
  border-bottom: 1px solid var(--border-color);
}

@media screen and (max-width: 767px) {
  .p-index-company-table tr {
    display: grid;
    grid-template-columns: 100%;
    gap: calc(24px + var(--leading-trim) * 2);
    padding-block: calc(32px + var(--leading-trim));
  }
}

@media screen and (min-width: 768px) {
  .p-index-company-table th,
  .p-index-company-table td {
    padding-block: calc(32px + var(--leading-trim));
    vertical-align: middle;
  }
}

.p-index-company-table th {
  box-sizing: content-box;
  min-width: 8.3em;
  font-weight: 600;
}

@media screen and (min-width: 768px) {
  .p-index-company-table th {
    padding-inline: calc(16px + var(--slope-1px-md) * 16) 56px;
  }
}

.p-index-company-table td {
  font-weight: 400;
}

@media screen and (min-width: 768px) {
  .p-index-company-table td {
    padding-right: calc(16px + var(--slope-1px-md) * 16);
  }
}

/* ============================================================= *

ownership

* ============================================================= */
/* p-ownership-text
============================== */
.p-ownership-text {
  margin-block: var(--leading-trim);
}

.p-ownership-text:not(:last-child) {
  margin-bottom: calc(24px + var(--leading-trim));
}

@media screen and (max-width: 767px) {
  .p-ownership-text:not(:last-child) {
    margin-bottom: calc(32px + var(--leading-trim));
  }
}

.p-ownership-text em {
  color: #c00;
  font-weight: inherit;
}

/* p-ownership-notes
============================== */
.p-ownership-notes {
  margin-block: var(--leading-trim);
  font-size: calc(12px + var(--slope-1px) * 2);
}

@media screen and (min-width: 768px) {
  .p-ownership-notes {
    text-align: right;
  }
}

/* p-ownership-frame
============================== */
.p-ownership-frame {
  display: grid;
  grid-template-columns: 100%;
  gap: var(--gap);
  padding: calc(20px + var(--slope-1px) * 12) calc(20px + var(--slope-1px) * 20) calc(24px + var(--slope-1px) * 16);
  border: 1px solid var(--border-color);
  border-radius: 10px;

  --gap: calc(20px + var(--slope-1px) * 4);
}

.p-ownership-frame._small {
  padding: calc(20px + var(--slope-1px) * 4) calc(20px + var(--slope-1px) * 12) calc(24px + var(--slope-1px) * 8);

  --gap: 20px;
}

.p-ownership-frame__head {
  margin-top: var(--leading-trim);
  padding-bottom: calc(var(--gap) + var(--leading-trim));
  border-bottom: 1px solid var(--border-color);
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-weight: 600;
  font-size: calc(16px + var(--slope-1px) * 2);
}

.p-ownership-frame__body {
  font-size: calc(16px + var(--slope-1px) * 2);
}

.p-ownership-frame__text {
  margin-block: var(--leading-trim);
  text-align: center;
}

.p-ownership-frame__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17em, 1fr));
  gap: 20px;
}

.p-ownership-frame__list._x1 {
  grid-template-columns: 100%;
}

.p-ownership-frame__list > li {
  position: relative;
  margin-block: var(--leading-trim);
  padding-left: 1em;
}

.p-ownership-frame__list > li:before {
  content: "\25a0";
  position: absolute;
  top: 0;
  left: 0;
}

.p-ownership-frame__list > li small {
  display: inline-block;
  font-size: 14px;
}

.p-ownership-frame__list._style-none > li {
  padding-left: 0;
}

.p-ownership-frame__list._style-none > li:before {
  content: none;
}

.p-ownership-frame__button {
  width: calc(273px + var(--slope-1px) * 9);
  margin-inline: auto;
  margin-top: calc(24px + var(--slope-1px) * 16);
}

/* p-ownership-example
=============================== */
.p-ownership-example {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 32px 30px;
  padding-top: 32px;
}

.p-ownership-example__block {
  max-width: 435px;
  margin-inline: auto;
}

.p-ownership-example__head {
  margin-block: var(--leading-trim) calc(16px + var(--slope-1px) * 4 + var(--leading-trim));
  text-align: center;
  font-weight: 400;
  font-size: calc(16px + var(--slope-1px) * 2);
}

.p-ownership-example__bubble {
  position: relative;
  margin-top: 15px;
  padding: calc(20px + var(--slope-1px) * 12) calc(20px + var(--slope-1px) * 4);
  border: 1px solid #7c7c7c;
  border-radius: 10px;
  background: #fff;
  font-size: calc(14px + var(--slope-1px) * 2);
}

.p-ownership-example__image img {
  margin-inline: auto;
}

.p-ownership-example__bubble::before {
  content: "";
  position: absolute;
  top: 0;
  left: 77%;
  border-width: 0 0 77px 33px;
  border-style: solid;
  border-color: transparent transparent #7c7c7c;
  transform: skew(-20deg);
  transform-origin: bottom;

  translate: -50% -100%;
}

.p-ownership-example__bubble::after {
  content: "";
  position: absolute;
  top: 0;
  left: 77%;
  border-width: 0 0 72.1px 30.9px;
  border-style: solid;
  border-color: transparent transparent #ffffff;
  transform: skew(-20deg);
  transform-origin: bottom;

  translate: calc(-50% + .1px) -100%;
}

/* p-ownership-flow
============================== */
.p-ownership-flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 34px 40px;
}

@media screen and (max-width: 767px) {
  .p-ownership-flow {
    grid-template-columns: 100%;
  }
}

.p-ownership-flow__item {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-block: 58px 48px;
  border: 1px solid var(--border-color);
  border-radius: 10px;
}

@media screen and (max-width: 767px) {
  .p-ownership-flow__item {
    padding-block: 35px 34px;
  }
}

.p-ownership-flow__item:not(:first-child):before {
  content: "";
  position: absolute;
  top: 0;
  right: calc(100% + 8px);
  bottom: 0;
  display: block;
  width: 24px;
  aspect-ratio: 1/1;
  margin-block: auto;
  background: #7c7c7c;
  mask: var(--icon-angle) 50% 50%/contain no-repeat;
}

@media screen and (max-width: 767px) {
  .p-ownership-flow__item:not(:first-child):before {
    top: auto;
    right: 0;
    bottom: calc(100% + 5px);
    left: 0;
    margin-block: 0;
    margin-inline: auto;

    rotate: 90deg;
  }
}

.p-ownership-flow__number {
  position: absolute;
  top: calc(12px + var(--slope-1px) * 4);
  left: calc(12px + var(--slope-1px) * 4);
  color: #c7c7c7;
  font-weight: 600;
  font-size: calc(24px + var(--slope-1px) * 12);
  font-family: var(--en-font-family);
  line-height: .65;
}

.p-ownership-flow__text {
  margin-block: var(--leading-trim);
  padding-inline: 1em;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-size: calc(15px + var(--slope-1px) * 1);
}

/* p-ownership-case
============================== */
.p-ownership-case {
  display: grid;
  grid-template-columns: 100%;
  gap: calc(24px + var(--slope-1px) * 8);
  margin-top: 8px;
}

.p-ownership-case + .p-ownership-case {
  margin-top: calc(56px + var(--slope-1px) * 8);
}

.p-ownership-case__body {
  display: grid;
  grid-template-columns: 100%;
  gap: calc(12px + var(--slope-1px) * 4);
}

/* p-ownership-contact-grid
============================== */
.p-ownership-contact-grid {
  display: grid;
  gap: calc(12px + var(--slope-1px) * 12) 32px;
}

@media screen and (min-width: 768px) {
  .p-ownership-contact-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .p-ownership-contact-grid > *:first-child:last-child {
    grid-column: span 2;
  }
}

/* ============================================================= *

sms

* ============================================================= */
/* ============================================================= *

environment

* ============================================================= */
.p-environment-fig {
  position: relative;
  padding-block: calc(72px + var(--slope-1px) * 41);
  line-height: 2;
}

.p-environment-fig:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  background: url(/environment/direction/common/img/bgHeaderTop.gif) top center/auto calc(40px + var(--slope-1px) * 9) repeat-x, url(/environment/direction/common/img/bgHeaderBottom.gif) bottom center/auto calc(40px + var(--slope-1px) * 9) repeat-x;
}

.p-environment-fig sub {
  display: inline-block;
  font-size: 65%;
}

.p-environment-fig__head {
  margin-block: var(--leading-trim);
  padding-bottom: calc(40px + var(--slope-1px) * 35);
  color: #7ea311;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-weight: 400;
  font-size: calc(20px + var(--slope-1px) * 4);
  line-height: 1.7;
}

.p-environment-fig__frame {
  position: relative;
  padding: 1.4em;
  font-size: 1.125em;
}

.p-environment-fig__frame em {
  display: block;
  font-size: 1.16667em;
}

.p-environment-fig__title {
  display: grid;
  align-items: center;
  grid-template-columns: 1fr auto 1fr;
  gap: calc(16px + var(--slope-1px) * 8);
  margin-block: var(--leading-trim);
  margin-bottom: calc(46px + var(--slope-1px) * 10);
  text-align: center;
  line-height: 1;
}

.p-environment-fig__title:before, .p-environment-fig__title:after {
  content: "";
  justify-self: stretch;
  height: 7px;
  background: url(/environment/direction/common/img/bg_policyTitle.gif) left bottom/auto 100% repeat-x;
}

.p-environment-fig__title span {
  color: #b18147;
  font-weight: 400;
  font-size: calc(18px + var(--slope-1px) * 6);
}

.p-environment-fig__body {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: calc(40px + var(--slope-1px) * 16) 24px;
  max-width: 900px;
  margin-inline: auto;
  color: #b18147;
  font-weight: 400;
  line-height: 2;
}

.p-environment-fig__body:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: -1;
  display: block;
  width: calc(60px + var(--slope-1px) * 4);
  aspect-ratio: 64/66;
  background: url(/environment/direction/common/img/character_img01.jpg) left bottom/contain no-repeat;
}

.p-environment-fig__body dl {
  display: contents;
}

@media screen and (max-width: 767px) {
  .p-environment-fig__body dl {
    display: grid;
    grid-template-columns: 100%;
    grid-column: span 2;
    gap: 24px;
  }
}

.p-environment-fig__body dt {
  margin-block: var(--leading-trim);
}

.p-environment-fig__body dt:before {
  content: "\25a0";
}

.p-environment-fig__body dd {
  display: grid;
  grid-template-columns: 100%;
  gap: 24px;
}

.p-environment-fig__body dd > p {
  margin-block: var(--leading-trim);
}

.p-environment-fig__body dd ol {
  margin-block: var(--leading-trim);
  padding-left: 1.5em;
}

.p-environment-fig__body dd li {
  list-style: decimal;
  list-style-position: outside;
}

.p-environment-fig__sign {
  grid-column: span 2;
  text-align: right;
  line-height: 1.65;
}

/* ============================================================= *

privacy

* ============================================================= */
/* p-privacy-sub
============================== */
.p-privacy-sub {
  counter-reset: sub;
  display: grid;
  gap: calc(24px + var(--slope-1px) * 8);
}

.p-privacy-sub__item {
  counter-increment: sub;
}

.p-privacy-sub__head {
  position: relative;
  margin-block: var(--leading-trim);
  margin-left: 34px;
}

.p-privacy-sub__head:before {
  content: counter(sub, lower-roman) ".";
  position: absolute;
  top: 0;
  right: 100%;
  padding-right: 16px;
}

/* p-privacy-detail
============================== */
.p-privacy-detail {
  display: grid;
  grid-template-columns: 100%;
  gap: 24px;
  margin-top: 20px;
  padding: calc(32px + var(--slope-1px) * 8) calc(24px + var(--slope-1px) * 16);
  border: 1px solid var(--border-color);
  border-radius: 10px;
}

.p-privacy-detail__head {
  margin-block: var(--leading-trim);
  font-weight: 400;
  font-size: calc(16px + var(--slope-1px) * 2);
}

.p-privacy-detail__head:before {
  content: "\FF1C";
}

.p-privacy-detail__head:after {
  content: "\FF1E";
}

.p-privacy-detail__body {
  margin-block: var(--leading-trim);
}

.p-privacy-detail__body > li {
  list-style-position: inside;
  list-style-type: disc;
}

/* p-privacy-banner
============================== */
.p-privacy-banner a {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  transition: opacity .2s;
}

.p-privacy-banner a:hover {
  opacity: .7;
}

/* ============================================================= *

terms

* ============================================================= */
/* p-terms-plugin
============================== */
.p-terms-plugin {
  padding: calc(24px + var(--slope-1px) * 8) calc(24px + var(--slope-1px) * 16);
  border: 1px solid var(--border-color);
  border-radius: 10px;
}

.p-terms-plugin__link {
  display: grid;
  align-items: center;
  grid-template-columns: auto 1fr;
  gap: 1em;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  text-decoration: none;
  transition: all .2s ease-out;
}

.p-terms-plugin__link:hover {
  opacity: .7;
}
