/* hover
=================================================================== */
/* ================================================ vw vh */
/* common
=================================================================== */
/* layout
=================================================================== */
/* imgCover
=================================================================== */
/* mask
=================================================================== */
/* background
=================================================================== */
/* flex
=================================================================== */
/* animation delay
=================================================================== */
/* 3d
=================================================================== */
/* font
=================================================================== */
/* textTate
=================================================================== */
/* form
=================================================================== */
/* =================================================================== hover anime */
@-webkit-keyframes pop-hover {
  0% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
  10% {
    -webkit-transform: translate(0, 2px) rotate(-6deg);
            transform: translate(0, 2px) rotate(-6deg);
  }
  20% {
    -webkit-transform: translate(0, -6px) rotate(0);
            transform: translate(0, -6px) rotate(0);
  }
  30% {
    -webkit-transform: translate(0, 3px) rotate(3deg);
            transform: translate(0, 3px) rotate(3deg);
  }
  40% {
    -webkit-transform: translate(0, -3px) rotate(0);
            transform: translate(0, -3px) rotate(0);
  }
  50% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
  100% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
}
@keyframes pop-hover {
  0% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
  10% {
    -webkit-transform: translate(0, 2px) rotate(-6deg);
            transform: translate(0, 2px) rotate(-6deg);
  }
  20% {
    -webkit-transform: translate(0, -6px) rotate(0);
            transform: translate(0, -6px) rotate(0);
  }
  30% {
    -webkit-transform: translate(0, 3px) rotate(3deg);
            transform: translate(0, 3px) rotate(3deg);
  }
  40% {
    -webkit-transform: translate(0, -3px) rotate(0);
            transform: translate(0, -3px) rotate(0);
  }
  50% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
  100% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
}
@-webkit-keyframes pop-hover-sm {
  0% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
  10% {
    -webkit-transform: translate(0, 2px) rotate(-1deg);
            transform: translate(0, 2px) rotate(-1deg);
  }
  20% {
    -webkit-transform: translate(0, -6px) rotate(0);
            transform: translate(0, -6px) rotate(0);
  }
  30% {
    -webkit-transform: translate(0, 3px) rotate(0.5deg);
            transform: translate(0, 3px) rotate(0.5deg);
  }
  40% {
    -webkit-transform: translate(0, -3px) rotate(0);
            transform: translate(0, -3px) rotate(0);
  }
  50% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
  100% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
}
@keyframes pop-hover-sm {
  0% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
  10% {
    -webkit-transform: translate(0, 2px) rotate(-1deg);
            transform: translate(0, 2px) rotate(-1deg);
  }
  20% {
    -webkit-transform: translate(0, -6px) rotate(0);
            transform: translate(0, -6px) rotate(0);
  }
  30% {
    -webkit-transform: translate(0, 3px) rotate(0.5deg);
            transform: translate(0, 3px) rotate(0.5deg);
  }
  40% {
    -webkit-transform: translate(0, -3px) rotate(0);
            transform: translate(0, -3px) rotate(0);
  }
  50% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
  100% {
    -webkit-transform: translate(0, 0) rotate(0);
            transform: translate(0, 0) rotate(0);
  }
}
/* =================================================================== slider anime */
@-webkit-keyframes slider-anime {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(-100%, 0, 0);
            transform: translate3d(-100%, 0, 0);
  }
}
@keyframes slider-anime {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(-100%, 0, 0);
            transform: translate3d(-100%, 0, 0);
  }
}
/* ================================================ color */
:root {
  --color-concept-border: 197, 197, 197;
  --color-concept-titleBg: 219, 207, 190;
}

/* ============================================================================================ conceptArticle */
.conceptArticle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.conceptSticky {
  width: 25.9882869693%;
}

.conceptSection {
  width: 74.0117130307%;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: rgba(var(--color-concept-border), 1);
}

/* ============================================================== conceptSticky */
.conceptSticky {
  position: relative;
  position: sticky;
  top: 70px;
  padding-top: 75px;
}
.conceptSticky::after {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 1px;
  top: auto;
  bottom: 0;
  background-color: rgba(var(--color-concept-border), 1);
}

/* --------------------------------------- conceptSticky__inner */
.conceptSticky__inner {
  position: relative;
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

/* --------------------------------------- conceptLeader__list */
.conceptLeader__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: auto;
  margin-bottom: auto;
}

/* --------------------------------------- conceptLeader__target */
.conceptLeader__target {
  margin-left: 0.5124450952vw;
  margin-right: 0.5124450952vw;
}

.conceptLeader--p {
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  font-size: min(3.125vh, 25px);
  letter-spacing: 0.22em;
  line-height: 1;
  font-weight: 700;
}
.conceptLeader--p > span.wm {
  -webkit-writing-mode: sideways-rl;
      -ms-writing-mode: sideways-rl;
          writing-mode: sideways-rl;
}
.conceptLeader--p > span.margin {
  position: relative;
  margin-top: -0.25em;
  margin-bottom: 0.35em;
  left: 0.2em;
}

/* --------------------------------------- conceptNav */
.conceptNav {
  position: relative;
  width: calc(100% - 2.9282576867vw);
  padding-left: 2.9282576867vw;
  margin-left: auto;
  margin-right: auto;
}

.conceptNav__title {
  position: absolute;
  top: 0.3660322108vw;
  left: 0;
  -webkit-writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  font-size: min(1.75vh, 14px);
  line-height: 1;
  letter-spacing: 0.2em;
}

.conceptNav {
  position: relative;
  font-size: 0;
}

.conceptNav__target {
  cursor: pointer;
  padding-bottom: min(1.875vh, 15px);
}
.conceptNav__target.selected .conceptNav--p::after {
  width: 100%;
  right: auto;
  left: 0;
}

.conceptNav--p {
  display: inline-block;
  position: relative;
  font-size: min(1.875vh, 15px);
  line-height: 1;
  white-space: nowrap;
  padding-bottom: min(0.625vh, 5px);
}
.conceptNav--p::after {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  height: 1px;
  top: auto;
  bottom: 0;
  background-color: rgba(var(--color-text), 0.5);
  width: 0;
  left: auto;
  right: 0;
  transition-duration: 0.5s;
  transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
  -ms-transition-duration: 0.5s;
  -ms-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
  -webkit-transition-duration: 0.5s;
  -webkit-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition-duration: 0.5s;
  -moz-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
}

/* ============================================================== conceptSection */
.conceptSection {
  position: relative;
}
.conceptSection::before {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  width: 1px;
  background-color: #c5c3c2;
}

/* ============================================================== csBlock__grid */
.csBlock__grid {
  padding-top: 1.0980966325vw;
  padding-bottom: 1.0980966325vw;
  padding-left: 1.6105417277vw;
  padding-right: 1.6105417277vw;
}

.csBlock__gridInner {
  padding-top: 1.4641288433vw;
  padding-bottom: 2.196193265vw;
}

/* ============================================================== csBlock__title */
.csBlock__title {
  background-color: rgba(var(--color-concept-titleBg), 1);
  border-top: 1px solid rgba(var(--color-concept-border), 1);
  border-bottom: 1px solid rgba(var(--color-concept-border), 1);
}

.csBlock__title--p {
  font-size: 2.4158125915vw;
  line-height: 1.2;
  text-align: left;
}

/* ============================================================== csBlock__text */
.csBlock__text {
  font-size: 1.1713030747vw;
  text-align: left;
  font-weight: 300;
  margin-bottom: 1.8301610542vw;
}

/* ============================================================== csBlock__bannerBox */
.csBlock__bannerBox--flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.csBlock__bannerBox {
  position: relative;
  width: calc(50% - 1.317715959vw);
}

/* --------------------------------------- csBlock__bannerBox link */
.csBlock__bannerBox--link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
}

/* --------------------------------------- csBlock__bannerBox title */
.csBlock__bannerBox--title {
  white-space: nowrap;
  text-align: left;
  line-height: 1.4;
}

/* --------------------------------------- csBlock__bannerBox p */
.csBlock__bannerBox--p {
  font-size: 1.0980966325vw;
  line-height: 1.7;
}

/* --------------------------------------- csBlock__bannerBox inner */
.csBlock__bannerBox--inner {
  position: relative;
  padding: 1.0980966325vw 1.4641288433vw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  border-width: 1px;
  border-style: solid;
  border-color: rgba(var(--color-concept-border), 1);
  transition-duration: 0.5s;
  transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
  -ms-transition-duration: 0.5s;
  -ms-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
  -webkit-transition-duration: 0.5s;
  -webkit-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition-duration: 0.5s;
  -moz-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
}

.csBlock__bannerBox--link ~ .csBlock__bannerBox--inner {
  background-color: #fff;
}

/* --------------------------------------- csBlock__bannerBox thum */
.csBlock__bannerBox--thum {
  position: absolute;
  width: 10.8345534407vw;
  bottom: 0;
  right: 0;
}

.csBlock__bannerBox--thumImg {
  display: block;
  padding-top: 67.5675675676%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

/* --------------------------------------- csBlock__bannerBox btn */
.csBlock__bannerBox--btn {
  font-size: 0;
}

.csBlock__bannerBox--btn--p {
  display: inline-block;
  min-width: 10.2489019034vw;
  text-align: center;
  font-size: 0.9516837482vw;
  line-height: 1;
  border-width: 1px;
  border-style: solid;
  border-color: rgba(var(--color-concept-border), 1);
  background-color: #fff;
  border-radius: 9999px;
  padding: 0.5856515373vw;
  transition-duration: 0.5s;
  transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
  -ms-transition-duration: 0.5s;
  -ms-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
  -webkit-transition-duration: 0.5s;
  -webkit-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
  -moz-transition-duration: 0.5s;
  -moz-transition-timing-function: cubic-bezier(0.075, 0.82, 0.165, 1);
}

.textColumn--2 {
  -webkit-column-count: 2;
     -moz-column-count: 2;
          column-count: 2;
  -webkit-column-gap: 2.9282576867vw;
     -moz-column-gap: 2.9282576867vw;
          column-gap: 2.9282576867vw;
}

/* ============================================================== csBlock__bannerBox about */
.csBlock__bannerBox--about .csBlock__bannerBox--inner, .csBlock__bannerBox--message .csBlock__bannerBox--inner {
  height: 21.0102489019vw;
}

.csBlock__bannerBox--about .csBlock__bannerBox--title {
  font-size: 3.2942898975vw;
}

/* ============================================================== csBlock__bannerBox message */
.csBlock__bannerBox--message {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.csBlock__bannerBox--message .csBlock__bannerBox--title {
  font-size: 2.7086383602vw;
}

/* ============================================================== csBlock__techBanner tech */
.csBlock__techBanner .csBlock__bannerBox--thum {
  bottom: auto;
  right: auto;
  top: 0;
  left: 0;
}
.csBlock__techBanner .csBlock__bannerBox--title {
  font-size: 1.5vw;
  line-height: 1.35;
  padding-left: 11.7130307467vw;
  padding-top: 0.7320644217vw;
  padding-bottom: 2.5622254758vw;
}

/* ============================================================== csBlock__techBanner quality */
.csBlock__qualityBanner, .csBlock__conceptBanner {
  width: 100%;
}
.csBlock__qualityBanner .csBlock__bannerBox--title, .csBlock__conceptBanner .csBlock__bannerBox--title {
  font-size: 1.756954612vw;
  line-height: 1.55;
  margin-bottom: 1.0980966325vw;
}
.csBlock__qualityBanner .csBlock__bannerBox--inner, .csBlock__conceptBanner .csBlock__bannerBox--inner {
  padding-right: 13.9092240117vw;
  padding-bottom: 2.5622254758vw;
}

/* ============================================================== csBlock__techBanner taste */
.csBlock__bannerBox--taste .csBlock__bannerBox--inner {
  height: 19.7657393851vw;
}
.csBlock__bannerBox--taste .csBlock__bannerBox {
  width: calc((100% - 5.270863836vw) / 3);
}
.csBlock__bannerBox--taste .csBlock__bannerBox:nth-child(1) .csBlock__bannerBox--title {
  font-size: 2.4890190337vw;
}
.csBlock__bannerBox--taste .csBlock__bannerBox:nth-child(2) .csBlock__bannerBox--title {
  font-size: 1.9399707174vw;
}
.csBlock__bannerBox--taste .csBlock__bannerBox--thum {
  width: 8.2723279649vw;
}

/* ============================================================== csBlock__techBanner job */
.csBlock__bannerBox--job .csBlock__bannerBox--inner {
  height: 21.2298682284vw;
}
.csBlock__bannerBox--job .csBlock__bannerBox:nth-child(1) {
  width: calc(50% + 1.317715959vw);
}
.csBlock__bannerBox--job .csBlock__bannerBox:nth-child(1) .csBlock__bannerBox--title {
  font-size: 2.196193265vw;
}
.csBlock__bannerBox--job .csBlock__bannerBox:nth-child(2) {
  width: calc((100% - 5.270863836vw) / 3);
}
.csBlock__bannerBox--job .csBlock__bannerBox:nth-child(2) .csBlock__bannerBox--title {
  font-size: 1.9399707174vw;
}
.csBlock__bannerBox--job .csBlock__bannerBox:nth-child(2) .csBlock__bannerBox--thum {
  width: 8.2723279649vw;
}

/* ============================================================================================ hover pc */
@media (hover: hover) and (pointer: fine) {
  .conceptNav__target:hover .conceptNav--p::after, .conceptNav__target:active .conceptNav--p::after {
    width: 100%;
    right: auto;
    left: 0;
  }
  .csBlock__bannerBox--link:hover ~ .csBlock__bannerBox--inner, .csBlock__bannerBox--link:active ~ .csBlock__bannerBox--inner {
    background-color: rgba(var(--color-concept-titleBg), 1);
    border-color: rgba(var(--color-text), 1);
  }
  .csBlock__bannerBox--link:hover ~ .csBlock__bannerBox--inner .csBlock__bannerBox--btn--p, .csBlock__bannerBox--link:active ~ .csBlock__bannerBox--inner .csBlock__bannerBox--btn--p {
    border-color: rgba(var(--color-text), 1);
  }
}
.conceptSticky__update {
  position: relative;
  height: calc(100% - 90px);
}

@-moz-document url-prefix() {
  .conceptLeader--p > span.wm {
    writing-mode: inherit;
  }
  .conceptLeader--p > span.wm.wmBottom {
    writing-mode: inherit;
  }
}
/* ============================================================================================ edit 202507 */
.csBlock__tech .csBlock__bannerBox--thumImg {
  padding-top: 82.9931972789%;
}

.csBlock__techBanner .csBlock__bannerBox--title {
  min-height: 10.2489019034vw;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

/* ============================================================================================ edit 20250708 */
/* Safari */
_::-webkit-full-page-media, _:future, :root .conceptLeader__target {
  min-width: 1.5em;
}

_::-webkit-full-page-media, _:future, :root .conceptLeader--p > span.wm {
  display: inline-block;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}

_::-webkit-full-page-media, _:future, :root .conceptLeader__target:nth-child(2) {
  margin-top: -0.5em;
}

.csBlock.csBlock__tech .csBlock__bannerBox:nth-child(1) {
  width: calc(50% - 7vw);
}
.csBlock.csBlock__tech .csBlock__bannerBox:nth-child(2) {
  width: calc(50% + 4vw);
}