/* MV */
.section-mv {
  position: relative;
}
.mv-wrap {
  position: sticky;
  top: 0;
  height: 100dvh;
  width: 100%;
  aspect-ratio: 1920 / 1080;
}
.mv-wrap img {
  object-fit: cover;
  height: 100dvh;
  width: 100%;
}
.mv-wrap video {
  object-fit: cover;
  height: 100dvh;
  width: 100%;
}
.mv-text-wrap {
  position: relative;
  z-index: 1;
}
.mv-catch {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: -100dvh;
  width: 100%;
  height: 100dvh;
  font-size: min(calc(24 / 430 * 100vw), 64px);
  color: #fff;
  letter-spacing: 0.04em;
}
.mv-lead {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row-reverse;
  width: 100%;
  height: 100dvh;
  color: #fff;
  background-image: linear-gradient(180deg, rgba(13, 26, 19, 0), rgba(13, 26, 19, 1));
  letter-spacing: 0.04em;
}
.mv-lead-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row-reverse;
}
.mv-lead .mv-lead-title {
  display: flex;
  gap: min(calc(50 / 430 * 100vw), 65px);
  margin-left: min(calc(30 / 430 * 100vw), 72px);
  writing-mode: vertical-rl;
  font-size: min(calc(36 / 430 * 100vw), 48px);
}
.mv-lead .mv-lead-text {
  display: flex;
  flex-direction: column;
  gap: min(calc(12 / 430 * 100vw), 44px);
  writing-mode: vertical-rl;
  font-size: min(calc(16 / 430 * 100vw), 18px);
}
@media (max-width: 860px) {
  .section-mv {
    width: 100dvw;
  }
  .mv-catch {
    width: 100dvw;
    writing-mode: vertical-rl;
  }
  .mv-catch span {
    display: block;
    font-size: calc(24 / 430 * 100vw);
    line-height: 2;
  }
  .mv-lead {
    width: 100dvw;
  }
  .mv-lead-inner  {
    align-items: flex-start;
  }
  .mv-lead .mv-lead-text {
    margin-top: calc(80 / 430 * 100vw);
  }
}

/* intro */
.section-intro{
  position: relative;
  background: #F0EEE9;
  overflow: clip;
  --introTextY: 100dvh;
  --introTextOpacity: 0;
  --introClipR: calc(min(calc(288 / 430 * 100vw), 488px) / 2);
  --introClipRend: 120vmax;
  --introRingDia: min(calc(288 / 430 * 100vw), 488px);
  --introRingBorderW: min(calc(28 / 430 * 100vw), 48px);
  --introRingOpacity: 1;
}
.section-intro .intro-pin{
  position: sticky;
  top: 0;
  height: 100dvh;
  width: 100%;
  z-index: 1;
}
.section-intro .intro-bgfull{ display: none; }
.section-intro .intro-image,
.section-intro .intro-text-wrap{
  position: absolute;
  inset: 0;
  height: 100%;
  width: 100%;
}
.section-intro .intro-spacer{ height: 100dvh; }
.section-intro.is-intro-done .intro-spacer{ height: 0; }
.section-intro .intro-image{
  z-index: 2;
}
.intro-image > span{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  clip-path: circle(var(--introClipR) at 50% 50%);

  will-change: clip-path;
  transition: clip-path 900ms ease;
}
.intro-image > span picture,
.intro-image > span img{
  width: 100%;
  height: 100%;
  display: block;
}
.intro-image > span img{
  object-fit: cover;
}
.intro-image > span::before{
  content:"";
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--introRingDia);
  height: var(--introRingDia);
  transform: translate(-50%, -50%);
  border-radius: 999px;
  border: var(--introRingBorderW) solid #004620;
  pointer-events: none;
  opacity: var(--introRingOpacity);
  will-change: width, height, opacity, border-width;
  transition:
    width 900ms ease,
    height 900ms ease,
    opacity 450ms ease,
    border-width 900ms ease,
    border-radius 900ms ease;
}
.section-intro.is-intro-done .intro-image > span::before {
  opacity: 0;
  border-width: 0;
  transition: none;
}
.section-intro .intro-text-wrap{
  display: grid;
  place-items: center;
  z-index: 3;
  transform: translateY(var(--introTextY));
  opacity: var(--introTextOpacity);
  will-change: transform, opacity;
}
.intro-text{
  margin: 0;
  width: min(calc(220 / 430 * 100vw), 376px);
  aspect-ratio: 1;
  border: 1px solid #fff;
  border-radius: 999px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  writing-mode: vertical-rl;
  font-size: min(calc(36 / 430 * 100vw), 48px);
  color: #fff;
  letter-spacing: 0.05em;
  background: transparent;
}
.section-intro.is-intro-reveal{
  --introClipR: var(--introClipRend);
  --introRingOpacity: 0;
  --introRingBorderW: 0px;

  --introTextY: 0px;
  --introTextOpacity: 1;
}
.section-intro.is-intro-done .intro-image > span{
  clip-path: none;
  transition: none;
}
.section-intro.is-intro-reveal .intro-text {
  background-color: #fff;
  color: #111;
}

@media (max-width: 860px) {
    .section-intro{ --introBg: url('/img/usr/pages/brand/sp/img-intro.jpg');
  }
}

/* block */
.section-block {
  margin-bottom: min(calc(60 / 430 * 100vw), 160px);
}
.block-head{
  position: relative;
  width: 100%;
  --bhPicH: 0px;
}
.block-head-sticky{
  position: sticky;
  top: 0;
  width: 100%;
  aspect-ratio: 1920 / 1020;
  overflow: hidden;
}
.block-head-sticky picture,
.block-head-sticky img{
  width: 100%;
  height: 100%;
  display: block;
}
.block-head-sticky img{ object-fit: cover; }

.block-head-move{
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}

.block-head .block-title{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--bhPicH);
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: min(calc(24 / 430 * 100vw), 24px);
  color: #fff;
  letter-spacing: 0.05em;
  writing-mode: vertical-rl;
  background-image: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,0.3));
  will-change: transform;
}

.block-head-spacer{
  height: var(--bhPicH);
}

.section-block .section-inner {
  padding-inline: min(calc(16 / 430 * 100vw), 40px);
  max-width: 1840px;
}
.section-block .unit {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-start;
  gap: min(calc(40 / 430 * 100vw), 44px);
  padding: min(calc(64 / 430 * 100vw), 100px) 0;
}
.section-block .unit-body {
  margin-top: auto;
  width: 100%;
  max-width: 590px;
}
.section-block .unit-title {
  margin: 0 0 min(calc(32 / 430 * 100vw), 40px);
  padding: 0;
  border: none;
  font-size: min(calc(28 / 430 * 100vw), 44px);
}
.section-block .unit-text {
  margin-bottom: min(calc(60 / 430 * 100vw), 60px);
  font-size: min(calc(15 / 430 * 100vw), 16px);
  line-height: calc(26 / 16)
}
.section-block .unit-text p:not(:last-child) {
  margin-bottom: min(calc(10 / 430 * 100vw), 10px);
}
.section-block .unit-link {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #006D31;
  border-radius: 50vh;
  color: #fff;
  background-color: #006D31;
  width: 250px;
  height: min(calc(72 / 430 * 100vw), 48px);
  font-size: min(calc(20 / 430 * 100vw), 15px);
}
.section-block .unit-link:hover {
  opacity: 0.8;
}
.section-block .unit-link span {
  display: flex;
  align-items: center;
}
.section-block .unit-link span::before {
  content: '';
  display: inline-block;
  width: 22px;
  height: 22px;
  margin-right: 10px;
  background: url(/img/usr/pages/brand/icon-cart.png) no-repeat;
}
@media (max-width: 860px) {
  .block-head-sticky{
    aspect-ratio: auto;
    height: 100dvh;
  }
  .section-block .unit {
    flex-direction: column;
  }
  .section-block .unit-link {
    width: 100%;
  }
}

.subnav {

}
.subnav-list {
  display: flex;
  flex-wrap: wrap;
  gap: min(calc(16 / 430 * 100vw), 40px);
}
.subnav-list .list-link {
  position: relative;
  border-radius: min(calc(24 / 430 * 100vw), 44px);
  overflow: hidden;
  width: calc((100% - 40px) / 2);
  color: #fff;
}
.subnav-list .list-link:hover {
  opacity: 1;
}
.subnav-list .list-link.full {
  width: 100%;
}
.subnav-list .list-link .nav-media img {
  transition: 0.5s ease;
}
.subnav-list .list-link:hover .nav-media img {
  transform: scale(1.1);
}
.subnav-list .list-link .nav-text {
  position: absolute;
  bottom: min(calc(16 / 430 * 100vw), 40px);
  left: min(calc(16 / 430 * 100vw), 40px);
  z-index: 10;
}
.subnav-list .list-link.full.large.right .nav-text {
  top: 50%;
  right: 160px;
  bottom: unset;
  left: unset;
  transform: translateY(-50%);
  text-align: right;
}
.subnav-list .list-link .arrow {
  display: inline-block;
  width: min(calc(38 / 430 * 100vw), 70px);
  height: min(calc(38 / 430 * 100vw), 70px);
  background: url(/img/usr/pages/brand/arrow.png) no-repeat;
  background-size: contain;
}
.subnav-list .list-link .nav-title {
  margin-bottom: min(calc(8 / 430 * 100vw), 8px);
  font-size: min(calc(24 / 430 * 100vw), 48px);
}
.subnav-list .list-link.full.large .nav-title {
  font-size: min(calc(24 / 430 * 100vw), 64px);
}
.subnav-list .list-link .nav-caption {
  margin-bottom: min(calc(8 / 430 * 100vw), 8px);
  font-size: min(calc(12 / 430 * 100vw), 18px);
}
@media (max-width: 860px) {
  .subnav-list .list-link {
    width: 100%;
  }
  .subnav-list .list-link.full.large.right .nav-text {
    top: unset;
    right: unset;
    bottom: min(calc(16 / 430 * 100vw), 40px);
    left: min(calc(16 / 430 * 100vw), 40px);
    transform: unset;
    text-align: left;
  }
  #cosmetics .subnav-list .list-link {
    width: calc((100% - (16 / 430 * 100vw)) / 2);
  }
  #cosmetics .subnav-list .list-link.full {
    width: 100%;
  }
}

/* company */
.section-company {
  margin-bottom: 0;
}
.section-company .block-head-sticky{
  overflow: hidden;
}
.section-company .block-head {
  background-color: #004620;
}
.section-company .block-head-move{
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  will-change: transform;
}
.section-company .unit {
  padding: 0 min(calc(16 / 430 * 100vw), 40px) 100px;
  height: var(--bhPicH);
  align-items: center;
  justify-content: center;
  color: #fff;
  background-image: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.3));
  transition: 0.3s ease;
}
.section-company .is-bh-done .unit {
  background-color: rgba(0, 0, 0, 0.3);
}
.section-company .unit-body {
  margin-top: unset;
}
.section-company .unit-title {
  margin: 0 0 min(calc(16 / 430 * 100vw), 32px);
  color: #fff;
  font-size: min(calc(28 / 430 * 100vw), 40px);
}
.section-company .unit-media {
  flex: 1;
}
.section-company .unit-media iframe {
  width: 100%;
}
.unit-address dl {
  margin-top: 15px;
  border-top: 1px solid #fff;
}
.unit-address dl .wrap {
  display: flex;
  padding: min(calc(15 / 430 * 100vw), 15px) 0;
  border-bottom: 1px solid #fff;
}
.unit-address dl .wrap dt {
  width: min(calc(100 / 430 * 100vw), 90px);
}
.unit-address dl .wrap dd {
  flex: 1;
}
.unit-address a {
  color: #fff;
  text-decoration: underline;
}
.unit-address a:hover {
  opacity: 0.7;
}
@media (max-width: 860px) {
  .section-company .block-head-sticky{
    position: relative;
    top: auto;
    overflow: visible;
    height: auto;
  }
  .section-company .block-head,
  .section-company .is-bh-done .unit {
    background-color: transparent;
  }
  .section-company .block-head-sticky picture {
    height: auto;
  }
  .section-company .block-head-sticky img{
    object-fit: unset;
    height: auto;
  }
  .section-company .block-head-move{
    position: relative;
    inset: auto;
    overflow: visible;
    margin-top: calc(32 / 430 * 100vw);
  }
  .section-company .block-head-spacer{
    height: 0 !important;
    display: none;
  }
  .section-company .unit {
    flex-direction: column-reverse;
    align-items: unset;
    color: #000;
    background: none;
    height: auto;
    transform: none !important;
  }
  .section-company .unit-media iframe {
    width: 100%;
    height: auto;
    aspect-ratio: 398 / 265;
  }
  .section-company .unit-title {
    color: #000;
  }
  .section-company .unit-text {
    margin-bottom: calc(40 / 430 * 100vw);
  }
  .unit-address dl {
    border-top: 1px solid #eee;
  }
  .unit-address dl .wrap {
    border-bottom: 1px solid #eee;
  }
  .unit-address a {
    color: inherit;
  }
}



/* footer */
.footer {
  background-color: #004620;
  min-height: var(--footerFill);
}