/*------------------------------
Re・De 製品ページ
テンプレート スタイルシート
※ 適宜複製・改変し使用してください
------------------------------*/
:root {
	--color-black: #111111;
	--color-common: #333333;
	--color-d-grey: #5d5d5d;
	--color-grey: #999999;
	--color-l-grey: #cccccc;
    --color-bg-grey: #f0f0f0;
	--color-bg: #f5f5f5;
	--color-white: #ffffff;
	--color-transparent: #ffffff00;

    --icon-arrow: url(../img/icons/icon-arrow.svg);
    --icon-cart: url(../img/icons/icon-cart.svg);
    --icon-circle: url(../img/icons/icon-circle.svg);
    --icon-download: url(../img/icons/icon-download.svg);
    --icon-facebook: url(../img/icons/icon-facebook.svg);
    --icon-instagram: url(../img/icons/icon-instagram.svg);
    --icon-link: url(../img/icons/icon-link.svg);
    --icon-note: url(../img/icons/icon-note.svg);
    --icon-popup: url(../img/icons/icon-popup.svg);
    --icon-search: url(../img/icons/icon-search.svg);
    --icon-twitter: url(../img/icons/icon-twitter.svg);
    --icon-twitter-x: url(../img/icons/icon-twitter-x.svg);

	--font-common: 游ゴシック, YuGothic, "hiragino kaku gothic pron", sans-serif;
    --font-poppins: 'Poppins', 游ゴシック, YuGothic, "hiragino kaku gothic pron", sans-serif;
	--font-stix: 'STIX Two Text', serif;
}

/*------------------------------COMMON*/
* {
	-ms-overflow-style: none;
	scrollbar-width: none;
}
*::-webkit-scrollbar {
	display: none;
}

section:not(:first-of-type):not(:last-of-type) {
    border-bottom: 0 ;
}


main [class^="inner"] {
	margin: auto;
	max-width: 1200px;
	padding: 0 5dvw;
	width: 100%;
}
main .inner-full {
    max-width: unset;
}
main .inner-narrow {
	max-width: 1024px;
}
main .inner-wide {
	max-width: 1360px;
}


@media screen and (max-width:769px) {
	.content {
	padding-bottom: 90px;
	}
	.logo-product {
    width: 190px;
	}
	#top .content.top {
    margin-top: 0;
	}
}
/*------------------------------
Re・De Range
スタイルシート
------------------------------*/
:root {
	--color-black: #000000;
	--color-common: #111111;
	--color-d-grey: #5d5d5d;
	--color-grey: #999999;
	--color-l-grey: #cccccc;
    --color-bg-grey: #f0f0f0;
	--color-bg: #f5f5f5;
	--color-white: #ffffff;
	--color-transparent: #ffffff00;

    --icon-arrow: url(../img/icons/icon-arrow.svg);
    --icon-cart: url(../img/icons/icon-cart.svg);
    --icon-circle: url(../img/icons/icon-circle.svg);
    --icon-download: url(../img/icons/icon-download.svg);
    --icon-facebook: url(../img/icons/icon-facebook.svg);
    --icon-instagram: url(../img/icons/icon-instagram.svg);
    --icon-link: url(../img/icons/icon-link.svg);
    --icon-note: url(../img/icons/icon-note.svg);
    --icon-popup: url(../img/icons/icon-popup.svg);
    --icon-search: url(../img/icons/icon-search.svg);
    --icon-twitter: url(../img/icons/icon-twitter.svg);
    --icon-twitter-x: url(../img/icons/icon-twitter-x.svg);

	--font-common: 游ゴシック, YuGothic, "hiragino kaku gothic pron", sans-serif;
    --font-poppins: 'Poppins', 游ゴシック, YuGothic, "hiragino kaku gothic pron", sans-serif;
	--font-stix: 'STIX Two Text', serif;
}

/*------------------------------COMMON*/
* {
	-ms-overflow-style: none;
	scrollbar-width: none;
}
*::-webkit-scrollbar {
	display: none;
}


.localnav {
    margin: 0 0 0 168px;
    width: calc(100% - 160px);
}

main :where(h1, .h1) {
	font-size: 240%;
}
main :where(h2, .h2) {
	font-size: 180%;
}
main :where(h3, .h3) {
	font-size: 140%;
}
main :where(h4, .h4) {
	font-size: 120%;
}

@media screen and (min-width: 768px) {
    main :where(h1, .h1) {
        font-size: 260%;
    }
    main :where(h2, .h2) {
        font-size: 200%;
    }
    main :where(h3, .h3) {
        font-size: 160%;
    }
    main :where(h4, .h4) {
        font-size: 140%;
    }
}

main a {
    transition-duration: .3s;
}

@media screen and (hover: hover) {
    main a:hover {
        opacity: .8;
    }
}

main button {
    background: unset;
    border: unset;
    color: inherit;
    cursor: pointer;
    letter-spacing: inherit;
    padding: unset;
}

main figure {
    height: 100%;
    margin: unset;
    width: 100%;
}

main img[src*="svg"] {
	height: 1em;
	padding: 0 0 .2em;
	vertical-align: middle;
    width: auto;
}

main [class^="inner"] {
	margin: auto;
	max-width: 1200px;
	padding: 0 5dvw;
	width: 100%;
}
main .inner-full {
    max-width: unset;
}
main .inner-narrow {
	max-width: 1024px;
}
main .inner-wide {
	max-width: 1360px;
}
main .section-spec .inner-narrow {

}


/*------------------------------アイコン*/
[data-icon]::before {
    content: "";
    margin-right: .4em;
}
[data-icon]::before, [class*="icon"] {
    aspect-ratio: 1/1;
    background-image: var(--icon-circle);
    background-repeat: no-repeat;
    background-size: cover;
    display: inline-block;
    width: .8em;
}
[data-icon^="arrow"]::before, [class*="icon-arrow"] {
    background-image: var(--icon-arrow);
}
[data-icon="arrow-top"]::before, .icon-arrow-top {
    transform: rotate(-90deg);
}
[data-icon="arrow-bottom"]::before, .icon-arrow-bottom {
    transform: rotate(90deg);
}
[data-icon="arrow-left"]::before, .icon-arrow-left {
    transform: rotate(180deg);
}
[data-icon="cart"]::before, .icon-cart {
    background-image: var(--icon-cart);
}
[data-icon="download"]::before, .icon-download {
    background-image: var(--icon-download);
}
[data-icon="link"]::before, .icon-link {
    background-image: var(--icon-link);
}
[data-icon="popup"]::before, .icon-popup {
    background-image: var(--icon-popup);
}
[data-icon="search"]::before, .icon-search {
    background-image: var(--icon-search);
}

/*SNS*/
[data-icon="facebook"]::before, .icon-facebook {
    background-image: var(--icon-facebook);
}
[data-icon="instagram"]::before, .icon-instagram {
    background-image: var(--icon-instagram);
}
[data-icon="note"]::before, .icon-note {
    background-image: var(--icon-note);
}
[data-icon="twitter"]::before, .icon-twitter {
    background-image: var(--icon-twitter);
}
[data-icon="x"]::before, .icon-x {
    background-image: var(--icon-twitter-x);
}

/*------------------------------見出し*/
main [class*="heading"] {
    font-size: 260%;
    line-height: 1;
    position: relative;
}
main [class*="heading"] > .sub {
    display: block;
    font-family: var(--font-common);
    font-size: 30%;
    font-weight: 600;
    letter-spacing: .05em;
    margin-bottom: .5em;
}

main .logo-product {
    font-size: clamp(3.2rem, 1.455rem + 8.73vw, 8rem);
    padding: unset;
    position: unset;
    transform: unset;
    width: unset;
}

.title-page {
    padding: 2em;
}

@media screen and (orientation: landscape) {
    .title-page {
        padding: 4em;
    }
}

.title-section {
    margin: 10dvh 0;
    padding: 0 5dvw;
    position: relative;
}
.title-section:first-child {
    margin-top: 0;
}

.title-section::before {
    border-left: 1px solid var(--color-black);
    content: "";
    display: block;
    height: 100%;
    position: absolute;
        top: 0;
        left: 0;
}

.title-section [class*="heading"] {
    font-size: 320%;
}
.title-section [class*="heading"] > .sub {
    font-size: 25%;
}

@media screen and (min-width: 768px) {
    .title-section::before {
        left: 2em;
    }

    .title-section [class*="heading"] {
        font-size: 400%;
    }
    .title-section [class*="heading"] > .sub {
        font-size: 20%;
    }
}

.pg_menu {
    display: flex;
    align-items: center;
    justify-content: center;
}
.pg_menu li {
    min-width: 20%;
    margin: 0 3rem;
}
.pg_menu [class*="font-poppins"] a{
    width: 100%;
    font-size: 300%;
    display: inline-block;
    line-height: 1;
    text-align: center;
    padding: 1.8rem 6rem;
    border: 1px solid #000;
    border-radius: 90px;
    opacity: 1;
    transition: opacity 0.4s 0s linear;
}
.pg_menu [class*="font-poppins"] a:hover {
    opacity: 0.5;
    transition: opacity 0.4s 0s linear;
}
.pg_menu [class*="font-poppins"] a > span {
    font-size: 32%;
    letter-spacing: 0.045em;
    display: block;
    padding-bottom: 0.5rem;
}
@media screen and (max-width: 767px) {
    .pg_menu li {
    min-width: 42%;
    margin: 0 1%;
    }
    .pg_menu [class*="font-poppins"] a{
    font-size: 156%;
    padding: 1rem 3rem;
    white-space: nowrap;
    }
    .pg_menu [class*="font-poppins"] a > span {
    font-size: 40%;
    }
}


/*------------------------------ラベル*/
[class^="label"] {
	background: var(--color-common);
	border: 1px solid var(--color-common);
    border-radius: 2px;
    color: var(--color-white);
    display: inline-block;
    line-height: 1;
	padding: .8em;
    vertical-align: middle;
	width: fit-content;
}

.label-wired {
	background: var(--color-transparent);
	border-color: var(--color-common);
    color: var(--color-common);
}

.unit-label {
    display: flex;
}
.unit-label > [class^="label"]:not(:last-of-type) {
    border-radius: 0;
    border-right-width: 0;
}
.unit-label > [class^="label"]:first-of-type {
    border-radius: 2px 0 0 2px;
}
.unit-label > [class^="label"]:last-of-type {
    border-radius: 0 2px 2px 0;
}

/*------------------------------ボタンとテキストリンク*/
main [class^="button"] {
    font-size: 95%;
    margin-right: auto;
    margin-left: auto;
    max-width: calc(100% - 4em);
    position: relative;
    width: 100%;
}
main [class^="button"] > * {
    background: var(--color-common);
	border: 1px solid var(--color-common);
    border-radius: 2px;
    color: var(--color-white);
    display: block;
    line-height: 1;
	padding: 1em 2em;
    text-align: center;
    transition-duration: .3s;
    width: 100%;
}
main .button.color-white > * {
    background: #ffffffee;
    border-color: var(--color-white);
    color: var(--color-common);
}

main .button-border {
    width: fit-content;
}
main .button-border > * {
    background: none;
    border-radius: 0;
    border-width: 0 0 2px 0;
    color: var(--color-common);
    padding: 1em 0 .5em;
}
main .button-border.color-white > * {
    border-color: var(--color-white);
    color: var(--color-white);
}

main .button-wired > * {
    background: none;
    color: var(--color-common);
}
main .button-wired.color-white > * {
    border-color: var(--color-white);
    color: var(--color-white);
}

main [class^="button"][data-icon]::before {
    filter: contrast(0);
    mix-blend-mode: plus-lighter;
    position: absolute;
        top: 1.05em;
        left: 1em;
    z-index: 2;
    width: 1em;
}
main .button[data-icon].color-white::before {
    filter: unset;
    mix-blend-mode: unset;
}
main :is(.button-border, .button-wired)[data-icon]::before {
    filter: contrast(1);
}
main :is(.button-border, .button-wired)[data-icon].color-white::before {
    filter: contrast(0);
}
main .button-border[data-icon] > * {
    padding: 1em 5em .5em;
}

@media screen and (hover:hover) {
    main [class^="button"] > *:hover {
        opacity: .8;
    }
    main .button-border:not([data-icon]) > *:hover {
        padding: 1em 1em .5em;
    }
    main .button-wired > *:hover {
        opacity: .5;
    }
}

@media screen and (orientation: landscape) {
    main [class^="button"]:not(.button-border) {
        margin: unset;
        max-width: calc(calc(100% - 3.2rem) / 3);
        width: auto;
    }
}

main .unit-button {
    display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 1.6rem;
        justify-content: center;
    width: 100%;
}


main [class^="link"].color-white {
    color: var(--color-white);
}
main [class^="link"].color-white::after {
    border-color: var(--color-white);
}
main [class^="link"][data-icon].color-white::before {
    filter: contrast(0);
    mix-blend-mode: plus-lighter;
}

main .link-arrow::after {
    bottom: 0;
    height: .4rem;
    transform: skewX(56deg);
    width: calc(100% + 1em);
}

@media screen and (hover:hover) {
    main [class^="link"]:hover {
        opacity: .8;
    }
    main .link-arrow:hover::after {
        width: calc(100% + 1.5em);
    }
}

/*------------------------------リスト*/
main ul[class^="list-"] {
    padding-left: .8em;
}
main ul[class^="list-"] > li {
    padding-left: 1em;
    text-indent: -1em;
}
main ul[class^="list-"] > li::before {
    content: "・";
    display: inline-block;
    text-align: center;
    width: 1em;
}
main ul[class^="list-"] > li + li {
    margin-top: 1em;
}

main ul:is(.list-icon, .list-sns) {
    display: flex;
        align-items: center;
        gap: 1em;
        justify-content: center;
    padding: unset;
}
main ul:is(.list-icon, .list-sns) > li {
    padding: unset;
    text-indent: unset;
}
main ul:is(.list-icon, .list-sns) > li::before {
    display: none;
}
main ul:is(.list-icon, .list-sns) > li + li {
    margin-top: unset;
}

main ul.list-note > li {
    text-indent: -1.2em;
}
main ul.list-note > li::before {
    content: "※";
}

main .news {
    padding: 0 var(--spacing-common);
}
main .news dl {
    margin: unset;
}

/*------------------------------テーブル*/
.table-spec {
    padding: 0 0;
    width: 100%;
}

/*------------------------------画像 & 動画*/
main figure[class*="overlay"] {
    background: var(--color-black);
}
main figure[class*="overlay"] :is(img, video) {
    opacity: .6;
}
main figure.overlay-lv1 :is(img, video){
    opacity: .3;
}
main figure.overlay-lv2 :is(img, video){
    opacity: .6;
}
main figure.overlay-lv3 :is(img, video){
    opacity: .8;
}

main figcaption * + :is(h1, .h1, h2, .h2, h3, .h3, h4, .h4),
main figcaption :is(h1, .h1, h2, .h2, h3, .h3, h4, .h4) + * {
    margin-top: 0;
}
main * + figcaption {
    margin-top: 1em;
}

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

.ratio-1v1 {
    aspect-ratio: 1/1;
}
.ratio-2v1 {
    aspect-ratio: 2/1;
}
.ratio-3v1 {
    aspect-ratio: 3/1;
}
.ratio-3v4 {
    aspect-ratio: 3/4;
}
.ratio-4v3 {
    aspect-ratio: 4/3;
}
.ratio-4v5 {
    aspect-ratio: 4/5;
}
.ratio-8v5 {
    aspect-ratio: 8/5;
}
.ratio-58v21 {
	aspect-ratio: 58 / 21;
}
.areaVideo,
.thumb-video {
    position: relative;
}
.thumb-video::after {
    background-image: url('data:image/svg+xml,<svg id="icon-play" xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80"><circle id="bg" cx="40" cy="40" r="40" fill="rgba(17,17,17,0.1)"/><g id="border" fill="none" stroke="%23fff" stroke-width="2"><circle cx="40" cy="40" r="40" stroke="none"/><circle cx="40" cy="40" r="39" fill="none"/></g><path id="path" d="M12,0,24,20H0Z" transform="translate(52 28) rotate(90)" fill="%23fff"/></svg>');
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    display: block;
    height: clamp(4rem, 2.545rem + 7.27vw, 8rem);
    position: absolute;
        top: 50%;
        left: 50%;
    transform: translate(-50%, -50%);
    width: clamp(4rem, 2.545rem + 7.27vw, 8rem);
}
.areaVideo .ratio-16v9 {
	position: absolute;
	top: 0;
	left: 0;
}

/*------------------------------テキストボックス*/
[class^="box"] {
    background: var(--color-transparent);
    border: 1px solid var(--color-transparent);
    display: flex;
        flex-direction: column;
}
[class^="box"] * + :is(h1, .h1, h2, .h2, h3, .h3, h4, .h4) {
    margin-top: 0;
}
[class^="box"] :is(h1, .h1, h2, .h2, h3, .h3, h4, .h4) + p {
    margin-top: 2em;
}
[class^="box"] * + p {
    margin-top: 1em;
}
[class^="box"] [class^="inner"] {
    padding: 5dvh 5dvw;
}
[class^="box"] [class^="flexInner"] {
    padding: 0 4vw;
}


/*------------------------------カード*/
[class^="card"] {
    display: flex;
        flex-direction: column;
    position: relative;
}

.card-figure > .layer-text {
    position: absolute;
        bottom: 3em;
        left: 50%;
    transform: translateX(-50%);
    width: 100%;
}

/*------------------------------バナー*/
[class^="banner"] {
    position: relative;
}
[class^="banner"] > .layer-image {
    height: 100%;
    position: absolute;
        top: 0;
        left: 0;
    width: 100%;
    z-index: -1;
}
[class^="banner"] > .layer-image.flx {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}
[class^="banner"] > .layer-text {
    padding: 10dvh 0;
}
.banner.h33 {
    padding-top: 33.3%;
}
@media screen and (max-width:1024px) {
    [class^="flexInner"] :is(h1, .h1, h2, .h2, h3, .h3, h4, .h4){
    line-height: 1.6;
    font-size: 150%;
    }
    [class^="flexInner"] :is(h1, .h1, h2, .h2, h3, .h3, h4, .h4) + p {
    margin-top: 0.5rem;
    }
    [class^="box"] [class^="flexInner"] {
    padding: 0 3.5dvw;
    }
}

@media screen and (orientation: landscape) {
    [class^="banner"] {
        position: relative;
    }
}
@media screen and (max-width:840px) {
    [class^="banner"] > .layer-image.flx {
    flex-direction: column;
    }
    [class^="banner"] > .layer-image.flx li:first-child{
    position: absolute;
    top: 0;
    left: 0;
	opacity: 0;
	animation: fdcross 8s linear infinite;
	animation-delay: -8.5s;
    }
    [class^="box"] [class^="flexInner"] {
    padding: 2rem 10dvw 4rem;
    }
    [class^="flexInner"] :is(h1, .h1, h2, .h2, h3, .h3, h4, .h4) + p {
    margin-top: 1.2rem;
    }
@keyframes fdcross {
    0% {
        opacity: 0;
    }
    12.5% {
        opacity: 1;
    }
    50% {
        opacity: 1;
    }
    62.5% {
        opacity: 0;
    }
    100% {
        opacity: 0;
        }
    }
}
@media screen and (max-width: 640px) {
    [class^="box"] [class^="flexInner"] {
    padding: 2rem 5dvw 4rem;
    }
}
    
/*------------------------------ブロックコンテナ*/
.container-block .item-block + .item-block {
    margin-top: 5dvh;
}

@media screen and (orientation: landscape) {
    .container-block .item-block + .item-block {
        margin-top: 10dvh;
    }
}

/*------------------------------フレックスコンテナ*/
.container-flex {
    display: flex;
        align-items: center;
        flex-wrap: wrap;
    position: relative;
}
.container-flex > .item-flex {
    width: 100%;
}

.container-flex.gap-lv1 {
    gap: 2em;
}
.container-flex.gap-lv1 + .container-flex.gap-lv1 {
    margin-top: 2em;
}

@media screen and (max-width: 767px) {
    .container-flex.col-2-sp > .item-flex {
        max-width: 50%;
    }
    .container-flex.col-2-sp.gap-lv1 > .item-flex {
        max-width: calc(50% - 1em);
    }
}

@media screen and (min-width: 840px) {
    .container-flex.align-bottom {
        align-items: flex-end;
    }
    .container-flex.align-top {
        align-items: flex-start;
    }
    .container-flex.rtl {
        flex-direction: row-reverse;
    }
    .container-flex > .item-flex {
        max-width: 50%;
    }
    .container-flex.gap-lv1 > .item-flex {
        max-width: calc(50% - 1em);
    }
}

@media screen and (min-width: 1024px) {
    .container-flex.col-3.gap-lv1 > .item-flex {
        max-width: calc(calc(100% - 4em) / 3);
    }
    .container-flex.col-4.gap-lv1 > .item-flex {
        max-width: calc(calc(100% - 6em) / 4);
    }
}

/*------------------------------グリッドコンテナ*/
.container-grid > [class^="item"] {
    width: 100%;
}
.container-grid + .container-grid {
    margin-top: 2em;
}

@media screen and (orientation: portrait) {
    .container-grid {
        display: flex;
            flex-wrap: wrap;
            gap: 2em 1em;
        padding-right: 5dvw;
    }
    .container-grid > [class^="item-image"] {
        height: 30dvh;
        width: calc(50% - .5em);
    }
    .container-grid > [class^="item-text"] {
        padding-left: 5dvw;
    }
    .container-grid > .item-text1 {
        padding-bottom: 2em;
    }
}

@media screen and (orientation: landscape) {
    .container-grid {
        display: grid;
            gap: 2em;
            grid-template-columns: auto; 
            grid-template-rows: 3fr 1fr 1fr 1fr 1fr 3fr; 
            grid-template-areas: 
                ". item-text1 item-image1 ."
                "item-image2 item-image2 item-image1 ."
                "item-image2 item-image2 item-image3 item-image3"
                "item-image2 item-image2 item-image3 item-image3"
                ". item-image4 item-image3 item-image3"
                ". item-image4 item-text2 .";
    }
    .container-grid > .item-image1 {grid-area: item-image1;}
    .container-grid > .item-image2 {grid-area: item-image2;}
    .container-grid > .item-image3 {grid-area: item-image3;}
    .container-grid > .item-image4 {grid-area: item-image4; justify-self: flex-end;}
    .container-grid > .item-text1 {grid-area: item-text1; justify-self: flex-end;}
    .container-grid > .item-text2 {grid-area: item-text2;}

    .container-grid > :is(.item-image1, .item-image4) {
        max-width: calc(600px - 5dvw - 1em);
    }

    .container-grid > [class^="item-text"] {
        max-width: calc(600px - 5dvw - 1em);
        padding: 10dvh 0;
    }
}

/*------------------------------セクション*/
[class^="section"] {
    position: relative;
}
[class^="section"] > [class^="layer"] {
    position: absolute;
        top: 50%;
        left: 0;
    transform: translateY(-50%);
    width: 100%;
}
[class^="section"] > .layer-image {
    height: 100%;
}

.section-detail {
    display: flex;
    flex-direction: column;
    gap: 10dvh;
}

@media screen and (orientation: landscape) {
    .section-detail {
        gap: 20dvh;
    }
}

.section-hero {
    background-color: #00000055;
    color: var(--color-white);
    height: 100dvh;
}
.section-hero > .layer-logo {
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
}

.section-movie {
    height: 100dvh;
    position: absolute;
        top: 0;
        left: 0;
    width: 100%;
    z-index: -1;
}
.section-movie > [class^="layer-movie"] {
    opacity: 0;
}
.section-movie > [class^="layer-movie"] + .layer-image {
    opacity: 0;
    transition: 1s;
}
.section-movie > [class^="layer-movie"].is-playing {
    opacity: 1;
}
.section-movie > [class^="layer-movie"] + .layer-image.is-show {
    opacity: 1;
}

.section-mv {
    height: 90dvh;
}
.section-imgMv {
    position: relative;
    padding-top: 43.75%;
}
.section-imgMv img {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
}

.section-news {
    border-top: 1px solid var(--color-l-grey);
    padding-top: 10dvh;
}

@media screen and (orientation: landscape) {
    .section-news {
        padding-top: 15dvh;
    }
}

/*------------------------------レイアウト*/
[class^="wrap-"] {
    display: flex;
        flex-direction: column;
        gap: 10dvh;
}
[class^="wrap-"] > [class*="bg-"] {
    padding: 10dvh 0;
}

[class^="wrap-"] > .section-title + [class^="section"] {
    margin-top: -10dvh;
}

@media screen and (orientation: landscape) {
    [class^="wrap-"] {
        gap: 18dvh;
    }
    [class^="wrap-"] > [class*="bg-"] {
        padding: 20dvh 0;
    }

    [class^="wrap-"] > .section-title + [class^="section"] {
        margin-top: -20dvh;
    }

    [class^="wrap-"] > * + .section-intro {
        margin-top: -5dvh;
    }
}

@media screen and (max-width: 767px) {
    [class^="wrap-"] {
        gap: 7dvh;
    }
}

/*------------------------------ローカルナビゲーション*/
main ul.list-menu {
    font-weight: 600;
    padding: unset;
}
main ul.list-menu > li {
    padding: unset;
    text-indent: unset;
}
main ul.list-menu > li::before {
    display: none;
}
main ul.list-menu > li a {
    display: block;
    padding: 1em 0;
}
main ul.list-menu > li + li {
    margin-top: 0;
}

.nav-local {
    background: var(--color-white);
    border-bottom: 1px solid var(--color-l-grey);
    display: flex;
        align-items: center;
        gap: 1em;
    font-size: 95%;
    min-height: 4em;
    opacity: 0;
    padding: 0 5vw;
    position: fixed;
        top: 0;
    transform: translateY(-100%);
    transition: .3s;
    visibility: hidden;
    width: 100%;
    z-index: 9;
}
.nav-local.is-show {
    opacity: 1;
    transform: translateY(0%);
    visibility: visible;
}

.nav-local .area-cta {
    margin-left: auto;
}

.nav-local [class^="button"] {
    max-width: unset!important;
}
.nav-local [class^="button"][data-icon] > * {
    padding-right: 3em;
    padding-left: 4em;
}

.nav-local .logo-product {
    font-size: 160%;
    padding: unset;
    position: unset;
    transform: unset;
    width: auto;
}

.nav-local .trigger-menu {
    cursor: pointer;
    height: 2.4rem;
    position: relative;
    transition: .5s;
    width: 2.4rem;
}
.nav-local .trigger-menu::before, .nav-local .trigger-menu::after {
    border-top: 1px solid var(--color-common);
    content: "";
    display: block;
    position: absolute;
        top: 50%;
        left: 0;
    height: 0;
    width: 100%;
}
.nav-local .trigger-menu::after {
    transform: rotate(90deg);
}
.nav-local .trigger-menu.is-active {
    transform: rotate(135deg);
}

@media screen and (orientation: portrait) {
    main ul.list-menu > li + li {
        border-top: 1px solid var(--color-l-grey);
    }

    .nav-local .area-menu {
        background: #f9f9f9;
        opacity: 0;
        padding: 0 5dvw .25em;
        position: absolute;
            top: 100%;
            left: 0;
        transition: .5s;
        visibility: hidden;
        width: 100%;
        z-index: -1;
    }
    .nav-local .area-menu.is-show {
        opacity: 1;
        visibility: visible;
    }

    .nav-local [class^="button"] {
        font-size: 80%;
    }
}

@media screen and (orientation: landscape) {
    main ul.list-menu {
        display: flex;
            gap: 1em;
    }
    main ul.list-menu > li a {
        padding: 1em;
    }

    .nav-local .area-menu {
        margin-right: auto;
        margin-left: 2em;
    }

    .nav-local .trigger-menu {
        display: none;
    }
}

/*------------------------------スライダー*/
.slick-slide{
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    height: auto!important;
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
}

[class^="slider"] {
    margin: auto;
    width: 100%;
}
* + [class^="slider"] {
    margin-top: 5dvh;
}

.slider-colors {
    max-width: 32rem;
}

.slider-dots {
    color: var(--color-transparent);
    display: flex;
        gap: .5em;
        justify-content: center;
    padding: 0 5dvw;
}
.slider-dots button[role="tab"] {
    background-image: url('data:image/svg+xml,<%3Fxml version="1.0" encoding="UTF-8"%3F><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><circle cx="20" cy="20" r="12" style="fill:%23111;"/></svg>');
    background-repeat: no-repeat;
    background-size: cover;
    height: 100%;
    width: 100%;
}
.slider-dots li[role="presentation"] {
    line-height: 1;
    height: 1em;
    opacity: .4;
    width: 1em;
}
.slider-dots li[role="presentation"].slick-active {
    opacity: 1;
}

[class^="slider"] .item-slider {
    padding: 0 .5em;
}

@media screen and (min-width: 768px) {
    [class^="slider"] .item-slider {
        padding: 0 1em;
    }
}

/*カラーチップ*/
.color-chips {
	display: flex;
		gap: 1em;
		justify-content: center;
}
.color-chips li {
	border-radius: 50%;
    box-shadow: 0 0 0 1px var(--color-transparent);
	padding: .4rem;
    transition: .3s;
}
.color-chips li.slick-active {
	box-shadow: 0 0 0 1px var(--color-grey);
}
.color-chips li :is(button, label) {
	border: 1px solid var(--color-common);
	border-radius: 50%;
	cursor: pointer;
	display: block;
    font-size: 0;
    max-width: unset;
	width: 2.4rem;
	height: 2.4rem;
}
.color-chips li:nth-child(1) :is(button, label) {
	background: #111111;
	border-color: #111111;
}
.color-chips li:nth-child(2) :is(button, label) {
	background: #f5f5f5;
	border-color: #dddddd;
}

/*------------------------------ポップアップエリア*/
.mfp-arrow {
	opacity: 1;
	padding: 0!important;
}
.mfp-arrow:active {
	margin-top: -55px;
}
.mfp-arrow::before {
	content: none;
}
.mfp-arrow::after {
	background-color: var(--color-white);
	border: none;
	margin: unset;
	top: calc(50% - calc(var(--spacing-common) * 2));
	width: var(--spacing-common);
	height: calc(var(--spacing-common) * 2);
}
.mfp-arrow-right::after, .mfp-arrow-left::after {
	clip-path: polygon(10% 0, 100% 50%, 10% 100%, 0% 100%, 90% 50%, 0% 0%);
}
.mfp-arrow-right::after {
	right: var(--spacing-common)!important;
	left: unset;
}
.mfp-arrow-left::after {
	left: var(--spacing-common)!important;
	transform: rotate(180deg);
}
.mfp-bottom-bar {
	margin-top: calc(var(--spacing-common) * -1.5);
}
.mfp-close {
	color: var(--color-transparent)!important;
	opacity: 1;
}
.mfp-close::after {
	background-color: var(--color-white);
	clip-path: polygon(2% 0, 0 2%, 48% 50%, 0 98%, 2% 100%, 50% 52%, 98% 100%, 100% 98%, 52% 50%, 100% 2%, 98% 0, 50% 48%);
	content: "";
	display: block;
	position: absolute;
		top: calc(var(--spacing-common) * -.4);
		right: 0;
	width: calc(var(--spacing-common) * 2);
	height: calc(var(--spacing-common) * 2);
}
.mfp-container {
	padding-right: calc(var(--spacing-common) * 2);
	padding-left: calc(var(--spacing-common) * 2);
}
.mfp-counter {
	display: none;
}
.mfp-img {
	background: none;
	max-height: 90vh!important;
}
.mfp-title {
	padding-right: 0;
}
:is(.popup_image_area, .popup_movie_area) figure {
	aspect-ratio: 1/1;
	position: relative;
}
.popup_movie_area a {
	display: block;
}
.popup_movie_area figure::after {
	background: url(../img/icon-play.svg);
	background-size: contain;
	content: "";
	display: block;
	position: absolute;
		top: calc(50% - 32px);
		right: calc(50% - 32px);
	width: 64px;
	height: 64px;
}

@media screen and (min-width:768px) {
	.mfp-arrow::after {
		top: calc(50% - calc(var(--spacing-common) / 2));
		width: calc(var(--spacing-common) / 2);
		height: var(--spacing-common);
	}
	.mfp-arrow-right::after {
		right: calc(var(--spacing-common) * 2)!important;
	}
	.mfp-arrow-left::after {
		left: calc(var(--spacing-common) * 2)!important;
	}
	.mfp-bottom-bar {
		margin-top: calc(var(--spacing-common) * -.8);
	}
	.mfp-close::after {
		top: 0;
		right: calc(var(--spacing-common) * -1.5);
		width: var(--spacing-common);
		height: var(--spacing-common);
	}
	:is(.popup_image_area, .popup_movie_area) figure img {
		transition: .5s;
	}
	:is(.popup_image_area, .popup_movie_area):hover figure img {
		transform: scale(1.1);
	}
}

/*------------------------------Modifier*/
.align-center {
	margin-right: auto;
	margin-left: auto;
}
.align-right {
	margin-right: 0;
    margin-left: auto;
}
.align-left {
    margin-right: auto;
	margin-left: 0;
}
[class^="unit"].align-center {
    justify-content: center;
}
[class^="unit"].align-right {
    justify-content: flex-end;
}
[class^="unit"].align-left {
    justify-content: flex-start;
}

@media screen and (max-width:767px) {
	.align-center-sp {
		margin-right: auto;
		margin-left: auto;
	}
	.align-right-sp {
		margin-right: 0;
        margin-left: auto;
	}
	.align-left-sp {
        margin-right: auto;
		margin-left: 0;
	}
    [class^="unit"].align-center-sp {
        justify-content: center;
    }
    [class^="unit"].align-right-sp {
        justify-content: flex-end;
    }
    [class^="unit"].align-left-sp {
        justify-content: flex-start;
    }
}

@media screen and (min-width:768px) {
	.align-center-pc {
		margin-right: auto;
		margin-left: auto;
	}
	.align-right-pc {
		margin-right: 0;
        margin-left: auto;
	}
	.align-left-pc {
        margin-right: auto;
		margin-left: 0;
	}
    [class^="unit"].align-center-pc {
        justify-content: center;
    }
    [class^="unit"].align-right-pc {
        justify-content: flex-end;
    }
    [class^="unit"].align-left-pc {
        justify-content: flex-start;
    }
}

.bg-black {
    background-color: var(--color-black);
}
.bg-d-grey {
    background-color: var(--color-grey);
}
.bg-grey {
    background-color: var(--color-l-grey);
}
.bg-l-grey {
    background-color: var(--color-bg-grey);
}
.bg-white {
    background-color: var(--color-white);
}

.bd-black {
    border-color: var(--color-black);
}
.bd-d-grey {
    border-color: var(--color-grey);
}
.bd-grey {
    border-color: var(--color-l-grey);
}
.bd-l-grey {
    border-color: var(--color-bg-grey);
}
.bd-white {
    border-color: var(--color-white);
}

.font-common {
    font-family: var(--font-common);
}
.font-poppins {
    font-family: var(--font-poppins);
    font-weight: 400;
    letter-spacing: normal;
}
.font-stix {
    font-family: var(--font-stix);
    font-weight: 400;
}

.only-pc {
    display: block!important;
}
.only-sp {
    display: none!important;
}
@media screen and (max-width:1200px) {
    .only-pc.m_none {
    display: none !important;
    }
}
@media screen and (max-width:768px) {
    .only-pc {
    display: none!important;
    }
    .only-sp {
    display: block!important;
    }
}

.text-center {
	text-align: center;
}
.text-right {
	text-align: right;
}
.text-left {
	text-align: left;
}
.text-justify {
    text-align: justify;
}

@media screen and (max-width:767px) {
	.text-center-sp {
		text-align: center;
	}
	.text-right-sp {
		text-align: right;
	}
	.text-left-sp {
		text-align: left;
	}
    .text-justify-sp {
        text-align: justify;
    }
}

@media screen and (min-width:768px) {
	.text-center-pc {
		text-align: center;
	}
	.text-right-pc {
		text-align: right;
	}
	.text-left-pc {
		text-align: left;
	}
    .text-justify-pc {
        text-align: justify;
    }
}

.text-black {
    color: var(--color-black);
}
.text-d-grey {
    color: var(--color-d-grey);
}
.text-grey {
    color: var(--color-grey);
}
.text-l-grey {
    color: var(--color-l-grey);
}
.text-white {
    color: var(--color-white);
}

/*------------------------------Animation*/
:is(.popup_image_area, .popup_movie_area) figure {
    aspect-ratio: 1 / 1;
    position: relative;
    overflow: hidden;
}

#gallery .inner-wide .item-flex img {
	width: 100%;
	height: auto;
}
.logo-product {
	width: 240px;
}
.localnav {
	margin: 0 0 0 200px;
}
.spec .content + .content {
    margin-top: calc(var(--spacing-common) * 3);
}
.spec section {
	padding: calc(var(--spacing-common) * 3) 0;
}
.spec section .en{
    font-family: "Poppins", sans-serif;
    font-weight: 400;
    font-style: normal;
}

.logo-product {
	width: 240px;
}
.localnav {
	margin: 0 0 0 240px;
}
@media screen and (max-width:769px) {
	.localnav {
	margin: 0 0 0 200px;
	}
	.logo-product {
    width: 190px;
	}
	[class^="wrap-"] > .section-title + [class^="section"] {
    margin-top: -4dvh;
	}
}