@charset "UTF-8";


/* common
-------------------------------------------------*/
:root {
  font-size: 100px;
}
@media screen and (max-width: 1440px) and (min-width: 751px) {
:root {
    font-size: 6.94444444444vw;
}
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
dl,
dt,
dd,
table,
tr,
th,
td,
form,
figure {
	font-size: inherit;
	margin: 0;
	padding: 0;
}
a {
	color: inherit;
	text-decoration: none;
}
summary {
	display: block;
}
table {
	border-collapse: collapse;
	empty-cells: show;
}
th,
td {
	text-align: left;
	vertical-align: top;
}
li {
	list-style: none;
}
img {
	vertical-align: top;
    width: 100%;
    max-width: 100%;
	height: auto;
}
input,
textarea,
select {
	color: inherit;
	font-family: inherit;
	-webkit-appearance: none;
	appearance: none;
}
textarea {
	form-sizing: content;
}
button {
	color: inherit;
	font-family: inherit;
}


/* module
------------------------------------------------- */
.pcon { display: block; }
.spon { display: none; }
@media screen and (max-width: 750px) {
.pcon { display: none; }
.spon { display: block; }
}


/* a
------------------------------------------------- */
a {
    margin: 0;
    padding: 0;
    font-size: 100%;
    vertical-align: baseline;
	text-decoration: none;
	outline: none;
    color: #fff;
}
@media screen and (min-width:751px){
a {
    transition: 0.4s;
}
a.al:hover {
    color: #fff;
	opacity: 0.7;
	filter: alpha(opacity=70);
	-ms-filter: "alpha(opacity=70)";
}
}


/* html, body
------------------------------------------------- */
html {
    font-size: 0.16rem;
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
}
body {
    min-height: 100vh;
    background-color: #8B8B8B;
    color: #fff;
    font-family: "Shippori Mincho", "Noto Serif JP", "游明朝", "Yu Mincho", "游明朝体", "YuMincho", serif;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.85;
	font-size: 0.16rem;
    overflow-x: hidden;
    position: relative;
}
.goth {
    font-family: "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "Zen Kaku Gothic New", sans-serif;
}
@media screen and (max-width: 750px) {
html {
    font-size: 3.733vw;
    overflow-x: hidden;
}
body {
    font-size: 3.733vw;
}
}


/* layout
------------------------------------------------- */
.inner {
    max-width: 12rem;
    margin: 0 auto;
    position: relative;
}
.d-flex {
    display: flex;
}
.f-wrap {
    flex-wrap: wrap;
}
.f-rev {
    flex-direction: row-reverse;
}
.just-start {
    justify-content: flex-start;
}
.just-center {
    justify-content: center;
}
.just-between {
    justify-content: space-between;
}
.just-end {
    justify-content: flex-end;
}
.align-start {
    align-items: flex-start;
}
.align-center {
    align-items: center;
}
.align-end {
    align-items: flex-end;
}
@media screen and (max-width: 750px) {
.inner {
    width: 86.66%;
}
.d-flex {
    display: block;
}
}


/* header, hbg
------------------------------------------------- */
#header {
    width: 100%;
    height: 0.8rem;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 90;
}
#header .logo {
    width: 1.8rem;
    position: absolute;
    left: 0.2rem;
    top: 0.1rem;
}
#header .logo svg path {
    fill: #fff;
    stroke-width: 0px;
}
#hbg {
    width: 100%;
    height: 0.8rem;
    background-color: #B0B0B0;
    mix-blend-mode: multiply;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 89;
    opacity: 0;
    transition: 0.4s;
}
body.header-bg #hbg {
    opacity: 1;
}
@media screen and (max-width: 750px) {
#header {
    height: 16vw;
}
#header .logo {
    width: 40vw;
    left: 2vw;
    top: 1.5vw;
}
#hbg {
    height: 16vw;
}
}


/* navtoggle
------------------------------------------------- */
#navtoggle {
    display: none;
}
@media screen and (max-width: 750px) {
#navtoggle {
    width: 13.33vw;
    height: 6.66vw;
    position: fixed;
    right: 4.66vw;
    top: 4.66vw;
    cursor: pointer;
    z-index: 99;
    display: block;
}
#navtoggle div {
    width: 100%;
    position: relative;
}
#navtoggle span {
    display: block;
    width: 100%;
    height: 1px;
    background: #fff;
    position: absolute;
    left: 0;
    top: 3.33vw;
    transition: 0.3s ease-in-out;
}
#navtoggle span:nth-child(2) {
    width: 1px;
    height: 6.66vw;
    left: 50%;
    top: 0;
}
body.nav-active #navtoggle span:nth-child(2) {
    scale: 1 0;
}
}


/* gnav
------------------------------------------------- */
@media screen and (min-width:751px){
#gnav {
    position: fixed;
    right: 0.3rem;
    top: 0.25rem;
    z-index: 96;
}
#gnav ul {
    font-size: 0.13rem;
}
#gnav ul li {
    margin-left: 0.35rem;
}
#gnav ul li:first-child {
    display: none;
}
#gnav ul li a {
    display: block;
    line-height: 2.3;
    color: #fff;
    position: relative;
    box-sizing: border-box;
}
#gnav ul li a::after {
    content: '';
    width: 0;
    height: 0.01rem;
    background-color: #fff;
    position: absolute;
    left: 50%;
    bottom: 0;
    transition: 0.4s;
}
#gnav ul li a:hover::after {
    width: 100%;
    left: 0;
}
#gnav ul li:last-child a {
    border: 0.01rem solid rgba(255,255,255,0.35);
    padding: 0 0.175rem;
}
#gnav ul li:last-child a::after {
    display: none;
}
#gnav ul li:last-child a:hover {
    border-color: rgba(255,255,255,1) !important;
}
#gnav .logo {
    display: none;
}
}
@media screen and (max-width: 750px) {
#gnav {
    width: 100%;
    height: 0;
    background-color: #303030;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 96;
    opacity: 0;
    transition: 0.4s;
    box-sizing: border-box;
    overflow-y: auto;
}
#gnav .inner {
    padding: 38vw 0 20vw;
}
#gnav ul {
    width: 86.66vw;
    margin: 0 auto;
    padding-bottom: 20vw;
}
#gnav ul li {
    font-size: 4.266vw;
    margin-bottom: 8vw;
}
#gnav ul li:first-child {
    font-size: 3.2vw;
    letter-spacing: 0.05em;
    color: #C0C0C0;
    margin-bottom: 11vw;
}
#gnav ul li a {
    letter-spacing: 0.1em;
}
#gnav .logo {
    display: block;
    width: 29vw;
    margin-left: -1vw;
}
body.nav-active #gnav {
    height: 100%;
    opacity: 1;
}
}

    
/* headline
------------------------------------------------- */
.headline1 {
    font-size: 0.22rem;
    border-bottom: 0.01rem solid rgba(255,255,255,0.35);
    font-weight: 400;
    line-height: 2.1;
    letter-spacing: 0.05em;
    padding-bottom: 0.03rem;
    margin-bottom: 0.5rem;
    position: relative;
}
.headline1::after {
    content: '';
    width: 0.15rem;
    height: 0.01rem;
    background-color: #fff;
    position: absolute;
    left: 0;
    bottom: -0.01rem;
    z-index: 2;
}
.headline2 {
    font-size: 0.20rem;
    font-weight: 400;
    line-height: 1.8;
    text-align: center;
    padding-bottom: 0.7rem;
}
@media screen and (max-width: 750px) {
.headline1 {
    font-size: 5.88vw;
    border-bottom: none;
    margin-bottom: 0.6rem;
}
.headline1::before {
    content: '';
    width: 100vw;
    height: 0.266vw;
    background-color: rgba(255,255,255,0.35);
    position: absolute;
    left: 0;
    bottom: -0.266vw;
    z-index: 1;
}
.headline1::after {
    width: 4vw;
    height: 0.266vw;
    bottom: -0.266vw;
}
.headline2 {
    font-size: 5.33vw;
    line-height: 1.6;
    padding-bottom: 0.45rem;
}
}


/* bg
------------------------------------------------- */
.bg {
    width: 100%;
    height: 62.5vw;
    background: url(../imgs/lp/fv.jpg) center center no-repeat;
    background-size: cover;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 1;
}
.bg::after {
    content: '';
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.25);
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
}
@media screen and (max-width: 750px) {
.bg {
    height: 170.66vw;
    background-image: url(../imgs/lp/fv_sp.jpg);
}
}


/* fv
------------------------------------------------- */
.fv {
    width: 100%;
    height: 62.5vw;
    position: relative;
    z-index: 2;
}
.fv h1 {
    width: 100%;
    font-size: 3.75vw;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: 0.05rem;
    text-align: center;
    padding: 0 0 0.6rem 0.05rem;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translateY(-50%) translateX(-50%);
    z-index: 2;
}
.fv h1 span {
    display: none;
}
@media screen and (max-width: 750px) {
.fv {
    height: 170.66vw;
}
.fv h1 {
    font-size: 10.4vw;
    padding: 0 0 0 0.05rem;
}
}


/* concept
------------------------------------------------- */
.concept {
    background-color: #8B8B8B;
    position: relative;
    z-index: 2;
}
.concept .con {
    width: 33.33%;
}
.concept .con p {
    font-size: 0.14rem;
    line-height: 2;
    padding-bottom: 0.25rem;
}
.concept .con p:last-of-type {
    padding-bottom: 0;
}
.concept .photo {
    width: 50vw;
    margin-right: calc(6rem - 50cqw);
}
@media screen and (max-width: 750px) {
.concept .con {
    width: 100%;
    padding-top: 16.5vw;
}
.concept .con p {
    font-size: 3.733vw;
    padding-bottom: 0.4rem;
}
.concept .con p:last-of-type {
    padding-bottom: 0;
}
.concept .photo {
    width: 93.33vw;
    margin: 11.5vw 0 0;
}
}


/* catalog1
------------------------------------------------- */
.catalog1 {
    background-color: #303030;
    position: relative;
    z-index: 2;
}
.catalog1 .inner {
    height: 5.6rem;
}
.catalog1 .con {
    width: 50%;
    margin-top: 0.3rem;
}
.catalog1 .con .headline1 {
    font-size: 0.2rem;
    letter-spacing: 0.1em;
    line-height: 1.7;
    padding-bottom: 0.3rem;
    margin-bottom: 0.35rem;
}
.catalog1 .con p {
    font-size: 0.14rem;
}
.catalog1 .con .btn {
    font-size: 0.14rem;
    margin-top: 0.4rem;
}
.catalog1 .con .btn a {
    width: 2.6rem;
    height: 0.6rem;
    background: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%229%22%20height%3D%226%22%20viewBox%3D%220%200%209%206%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1%201L4.65686%204.65686L8.31372%201%22%20stroke%3D%22white%22%2F%3E%3C%2Fsvg%3E') 92% 50% no-repeat;
    background-size: 0.1rem auto;
    border: 0.01rem solid rgba(255,255,255,0.35);
    display: flex;
    justify-content: center;
    align-items: center;
}
.catalog1 .photo {
    width: 41.66vw;
    margin-right: calc(6rem - 50cqw);
    margin-top: 0.15rem;
}
.catalog1 .photo .swiper-slide {
    width: 4.8rem;
    margin-right: 0.3rem;
}
.catalog1 .photo .swiper-slide span {
    display: block;
    font-size: 0.12rem;
    padding-top: 0.20rem;
    opacity: 0;
}
.catalog1 .photo .swiper-slide.swiper-slide-active span {
    animation: fadeIn 1s ease 0.5s 1 forwards;
}
.catalog1 .photo .swiper-pagination {
    display: none;
}
@media screen and (min-width:751px){
.catalog1 .con .btn a:hover {
    background-position: 92% 60%;
    border-color: rgba(255,255,255,1);
}
}
@media screen and (max-width: 750px) {
.catalog1 {
    padding-top: 16.5vw;
}
.catalog1 .inner {
    height: auto;
}
.catalog1 .con {
    width: 100%;
    margin-top: 0;
}
.catalog1 .con .headline1 {
    font-size: 5.33vw;
    line-height: 1.6;
    padding-bottom: 0.5rem;
    margin-bottom: 0.55rem;
}
.catalog1 .con p {
    font-size: 3.733vw;
}
.catalog1 .con .btn {
    font-size: 3.733vw;
    margin: 100vw 0 17vw;
}
.catalog1 .con .btn a {
    width: 69.33vw;
    height: 16vw;
    background-size: 0.15rem auto;
    border: 0.266vw solid rgba(255,255,255,0.7);
    margin: 0 auto;
}
.catalog1 .photo {
    width: 93.33vw;
    margin: 0;
    position: absolute;
    left: 0;
    top: 82vw;
}
.catalog1 .photo .swiper-slide {
    width: 86.66vw;
    margin-right: 0.2rem;
}
.catalog1 .photo .swiper-slide span {
    font-size: 3.2vw;
    line-height: 1.5;
    letter-spacing: 0.05em;
}
.catalog1 .photo .swiper-pagination {
    display: block;
    width: 86.66vw;
    bottom: -8vw;
}
.catalog1 .photo .swiper-pagination .swiper-pagination-bullet {
    width: 1vw;
    height: 1vw;
    background: rgba(255,255,255,0.35);
    margin: 0 1.5vw;
}
.catalog1 .photo .swiper-pagination .swiper-pagination-bullet-active {
    background: rgba(255,255,255,1);
}
}


/* works
------------------------------------------------- */
.works {
    width: 100vw;
    background-color: #8B8B8B;
    padding-top: 1.4rem;
    overflow: hidden;
    position: relative;
    z-index: 2;
}
.works .headline1 {
    border: none;
    margin-bottom: 1.4rem;
}
.works .headline1::before {
    content: '';
    width: 100vw;
    height: 0.01rem;
    background-color: rgba(255,255,255,0.35);
    position: absolute;
    left: 0;
    bottom: -0.01rem;
    z-index: 1;
}
.works .sec {
    margin-bottom: 1.4rem;
    padding-bottom: 1.4rem;
    position: relative;
}
.works .sec::after {
    content: '';
    width: 100vw;
    height: 0.01rem;
    background-color: rgba(255,255,255,0.35);
    position: absolute;
    left: 0;
    bottom: 0;
}
.works .sec.last {
    margin-bottom: 0;
}
.works .sec.last::after {
    display: none;
}
.works .con {
    width: 21.66%;
    min-width: 3.6rem;
}
.works .con .box {
    width: 2.6rem;
}
.works .con .box h3 {
    width: 100%;
    font-size: 0.24rem;
    font-weight: 400;
    letter-spacing: 0.6em;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
}
.works .con .box h4 {
    font-size: 0.16rem;
    font-weight: 400;
    border-top: 0.01rem solid rgba(255,255,255,0.35);
    padding: 0.4rem 0 0.25rem;
}
.works .con .box .txt {
    font-size: 0.14rem;
    padding-bottom: 0.3rem;
}
.works .con .box .detail {
    font-size: 0.14rem;
    border-top: 0.01rem solid rgba(255,255,255,0.35);
    padding-top: 0.4rem;
    margin-top: 0.1rem;
}
.works .photo {
    width: 66.66vw;
    margin-right: calc(6rem - 50cqw);
}
.works .photo .photo1 {
    margin-bottom: 0.1rem
}
.works .photo .photo2 img {
    display: block;
    width: 49.48%;
}
@media screen and (max-width: 750px) {
.works {
    padding-top: 17.5vw;
}
.works .headline1 {
    margin-bottom: 0.6rem;
}
.works .sec {
    margin-bottom: 0.9rem;
    padding-bottom: 0.8rem;
}
.works .sec.last {
    margin-bottom: 0;
    padding-bottom: 1.1rem;
}
.works .con {
    width: 74.66vw;
    min-width: 74.66vw;
    margin-left: 12vw;
}
.works .con .box {
    width: 100%;
}
.works .con .box h3 {
    width: 100%;
    font-size: 5.33vw;
    letter-spacing: 0.6em;
    align-items: flex-end;
    position: absolute;
    left: -2vw;
    top: 0;
}
.works .con .box h4 {
    font-size: 4.266vw;
    border-top: none;
    padding: 0 0 0.4rem;
}
.works .con .box .txt {
    font-size: 3.733vw;
    padding-bottom: 0.4rem;
}
.works .con .box .detail {
    font-size: 3.733vw;
    border-top: none;
    padding-top: 0;
    margin-top: -0.1rem;
}
.works .photo {
    width: 81.33vw;
    margin: 0 0 8vw 12vw;
}
.works .photo .photo1 {
    margin-bottom: 0.08rem
}
.works .photo .photo2 {
    display: flex;
}
.works .photo .photo2 img {
    width: 49.18%;
}
}


/* idea
------------------------------------------------- */
.idea {
    background-color: #606060;
    padding: 1.4rem 0;
    position: relative;
    z-index: 2;
}
.idea .col-side,
.faq .col-side {
    width: 20%;
    height: 100%;
    position: sticky;
    top: 1rem;
}
.idea .col-side .headline1,
.faq .col-side .headline1 {
    font-size: 0.2rem;
    line-height: 1.7;
    letter-spacing: 0.05em;
    padding-bottom: 0.25rem;
    margin-bottom: 0;
}
.idea .col-main,
.faq .col-main {
    width: 70%;
}
.idea .col-main .sec {
    margin-bottom: 0.6rem;
}
.idea .col-main .sec.last {
    margin-bottom: 0;
}
.idea .col-main .sec .photo {
    width: 42.85%;
}
.idea .col-main .sec .con {
    width: 52.38%;
}
.idea .col-main .sec .con h3 {
    font-weight: 400;
    padding-bottom: 0.15rem;
}
.idea .col-main .sec .con h3 span {
    display: block;
    color: #C0C0C0;
    padding-bottom: 0.15rem;
}
.idea .col-main .sec .con p {
    font-size: 0.14rem;
}
@media screen and (max-width: 750px) {
.idea {
    padding: 1rem 0 0.85rem;
}
.idea .col-side,
.faq .col-side {
    width: 100%;
    height: auto;
    position: static;
}
.idea .col-side .headline1,
.faq .col-side .headline1 {
    font-size: 5.33vw;
    line-height: 1.6;
    letter-spacing: 0.1em;
    padding-bottom: 0.4rem;
    margin-bottom: 0.7rem;
}
.idea .col-main,
.faq .col-main {
    width: 100%;
}
.idea .col-main .sec {
    margin-bottom: 0.8rem;
}
.idea .col-main .sec.last {
    margin-bottom: 0;
}
.idea .col-main .sec .photo {
    width: 100%;
}
.idea .col-main .sec .con {
    width: 100%;
}
.idea .col-main .sec .con h3 {
    font-size: 4.266vw;
    padding: 0.25rem 0 0.2rem;
}
.idea .col-main .sec .con h3 span {
    display: inline-block;
    padding: 0 1em 0 0;
}
.idea .col-main .sec .con p {
    font-size: 3.733vw;
}
}


/* faq
------------------------------------------------- */
.faq {
    background-color: #8B8B8B;
    padding: 0.9rem 0 0.85rem;
    position: relative;
    z-index: 2;
}
.faq .col-side .headline1 {
    padding: 0.2rem 0 0.15rem;
}
.faq .sec {
    border-bottom: 0.01rem solid rgba(255,255,255,0.35);
    padding: 0.05rem 0;
}
.faq .sec.last {
    border: none;
}
.faq .sec .con {
    display: none;
}
.faq .sec dl {
    display: flex;
    justify-content: space-between;
    padding: 0.2rem 0.75rem 0.2rem 0.2rem;
    position: relative;
}
.faq .sec .con dl {
    padding-top: 0;
}
.faq .sec dl.qa {
    cursor: pointer;
}
.faq .sec dl.qa::before {
    content: '';
    width: 0.15rem;
    height: 0.075rem;
    background: url('data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2211%22%20height%3D%227%22%20viewBox%3D%220%200%2011%207%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.5005%201L5.50049%206L0.500488%201%22%20stroke%3D%22white%22%2F%3E%3C%2Fsvg%3E') center bottom no-repeat;
    background-size: auto 100%;
    position: absolute;
    right: 0.25rem;
    top: 50%;
    margin-top: -0.035rem;
    transition: 0.4s;
}
.faq .sec dl.qa.is-open::before {
    transform: rotate(540deg);
}
.faq .sec dl dt {
    width: 3%;
}
.faq .sec dl dt span {
    font-size: 0.2rem;
    line-height: 1;
}
.faq .sec dl dd {
    width: 96%;
}
.faq .sec dl dd h3 {
    font-size: 0.15rem;
    font-weight: 400;
    line-height: 1.75;
    padding-top: 0.02rem;
}
.faq .sec dl dd p {
    font-size: 0.14rem;
    color: #F0F0F0;
}
@media screen and (max-width: 750px) {
.faq {
    padding: 0.95rem 0 0.6rem;
}
.faq .col-side .headline1 {
    padding: 0 0 0.15rem;
    margin-bottom: 0;
}
.faq .sec {
    padding: 0.1rem 0;
}
.faq .sec dl {
    padding: 0.2rem 0.5rem 0.2rem 0.1rem;
}
.faq .sec .con dl {
    padding-right: 0;
}
.faq .sec dl.qa {
    align-items: center;
}
.faq .sec dl.qa::before {
    content: '';
    width: 0.15rem;
    height: 0.075rem;
    right: 0.15rem;
    margin-top: -0.035rem;
}
.faq .sec dl dt {
    width: 0.4rem;
}
.faq .sec dl dt span {
    font-size: 5.33vw;
}
.faq .sec dl dd {
    width: calc(100% - 0.4rem);
}
.faq .sec dl dd h3 {
    font-size: 4vw;
    line-height: 1.6;
}
.faq .sec dl dd p {
    font-size: 3.733vw;
    line-height: 1.71;
    color: #fff;
    padding-bottom: 0.1rem;
}
}


/* catalog2
------------------------------------------------- */
.catalog2 {
    background: url("../imgs/lp/catalog_bg.jpg") center center no-repeat;
    background-size: cover;
    padding: 1.1rem 0;
    position: relative;
    z-index: 2;
}
.catalog2::after {
    content: '';
    width: 100%;
    height: 100%;
    background-color: rgba(144,144,144,1);
    position: absolute;
    left: 0;
    top: 0;
    mix-blend-mode: multiply;
    z-index: 1;
}
.catalog2 .inner {
    z-index: 2;
}
.catalog2 .con {
    width: 50%;
}
.catalog2 .con .headline1 {
    font-size: 0.2rem;
    letter-spacing: 0.1em;
    line-height: 1.7;
    padding-bottom: 0.3rem;
    margin-bottom: 0.35rem;
}
.catalog2 .con p {
    font-size: 0.14rem;
}
.catalog2 .con p span {
    display: block;
    padding-bottom: 0.1rem;
}
.catalog2 .con p.txt {
    padding-bottom: 0.35rem;
}
.catalog2 .con p.note {
    font-size: 0.12rem;
    padding-top: 0.075rem;
}
.catalog2 .con .photo {
    width: 4.66rem;
    position: absolute;
    right: 0.48rem;
    top: 0;
}
@media only screen and (max-width:750px){
.catalog2 {
    background-image: url("../imgs/lp/catalog_bg_sp.jpg");
    padding: 1.05rem 0 1rem;
}
.catalog2 .con {
    width: 100%;
}
.catalog2 .con .headline1 {
    font-size: 5.33vw;
    line-height: 1.6;
    padding-bottom: 0.4rem;
    margin-bottom: 0.55rem;
}
.catalog2 .con p {
    font-size: 3.733vw;
}
.catalog2 .con p.txt {
    padding-bottom: 0.3rem;
}
.catalog2 .con p.note {
    font-size: 3.2vw;
    padding-top: 0.2rem;
}
.catalog2 .con .photo {
    width: 76vw;
    position: static;
    margin: 0 auto 0.65rem;
}
}


/* contact
------------------------------------------------- */
.contact {
    background-color: #8B8B8B;
    padding: 1.75rem 0 1rem;
    position: relative;
    z-index: 2;
}
.contact dl {
    width: 8.4rem;
    margin: 0 auto 0.5rem;
    display: flex;
    justify-content: center;
}
.contact dl dt {
    width: 28.5%;
    padding-top: 0.1rem;
    position: relative;
}
.contact dl dt.required span::after {
    content: '必須';
    display: inline-block;
    width: 0.4rem;
    background-color: #222;
    border-radius: 0.03rem;
    font-size: 0.13rem;
    line-height: 0.2rem;
    color: #fff;
    text-align: center;
    box-sizing: border-box;
    position: absolute;
    right: 0.2rem;
    top: 0.15rem;
}
.contact dl dd {
    width: 71.5%;
}
.contact dl dd input[type=text],
.contact dl dd input[type=tel],
.contact dl dd input[type=email],
.contact dl dd textarea {
    width: 100%;
    height: 0.5rem;
    background-color: #C4C4C4;
    border: none;
    border-radius: 0;
    padding: 0 0.15rem;
    box-sizing: border-box;
    font-family: "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "Zen Kaku Gothic New", sans-serif;
    color: #222;
    line-height: 1.7;
}
.contact dl dd textarea {
    width: 100%;
    height: 2.7rem;
    padding: 0.15rem;
}
.contact dl dd textarea.add {
    height: 1rem;
}
.contact dl dd .box {
    width: 100%;
    height: 1.8rem;
    overflow-y: auto;
    background-color: #C4C4C4;
    padding: 0.15rem;
    box-sizing: border-box;
}
.contact dl dd .box p {
    font-size: 0.14rem;
    line-height: 1.7;
    padding-bottom: 1.5em;
    color: #222;
}
.contact .agree {
    margin-top: 0.3rem;
}
.contact .agree input[type=checkbox] {
    display: none;
}
.contact .agree input[type=checkbox] + span {
    width: auto;
    display: inline-block;
    font-weight: 500;
    padding: 0.05rem 0 0.05rem 0.3rem;
    position: relative;
    box-sizing: border-box;
    cursor: pointer;
}
.contact .agree input[type=checkbox] + span::before {
    content: '';
    display: block;
    width: 0.15rem;
    height: 0.15rem;
    background: #fff;
    border: 0.005rem solid #222;
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -0.075rem;
    box-sizing: border-box;
    transition: 0.4s;
}
.contact .agree input[type=checkbox] + span::after {
    content: '';
    display: block;
    width: 0.04rem;
    height: 0.08rem;
    border-right: 0.075em solid #fff;
    border-bottom: 0.075em solid #fff;
    position: absolute;
    left: 0.05rem;
    top: 50%;
    margin-top: -0.055rem;
    opacity: 0;
    transform: rotate(45deg) translate3d(0,2px,0) scale3d(.7,.7,1);
    transition: transform .2s ease-in-out, opacity .2s ease-in-out;
}
.contact .agree input[type=checkbox]:checked + span::before {
    background-color: #222;
}
.contact .agree input[type=checkbox]:checked + span::after {
    opacity: 1;
    transform: rotate(45deg) scale3d(1,1,1);
}
.contact .agree .wpcf7-list-item {
    margin: 0;
}
.contact .wpcf7-spinner {
    display: flex;
    justify-content: center;
    margin: 0 auto;
}
.contact input[type=submit] {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 3.6rem;
    height: 0.6rem;
    background-color: #606060;
    border: none;
    letter-spacing: 0.2em;
    text-align: center;
    margin: 0.1rem auto 0.3rem;
    transition: 0.4s;
    cursor: pointer;
}
.contact .policy {
    font-size: 0.14rem;
    text-align: center;
    letter-spacing: 0.05em;
}
.contact .policy a {
    text-decoration: underline;
}

.contact .wpcf7-not-valid-tip {
    width: -moz-fit-content;
    width: fit-content;
    margin: 0.5em 0 0;
    padding: 0 0.5em;
    background: #B73400;
    color: #fff;
    font-size: 0.14rem !important;
    line-height: 1.7857142857;
    white-space: nowrap;
    font-weight: normal;
    display: block;
}
.contact .wpcf7 form .wpcf7-response-output {
    width: 7.5rem;
    font-size: 0.14rem;
    text-align: center;
    margin: 1em auto 0;
    box-sizing: border-box;
}
@media screen and (min-width:751px){
.contact input[type=submit]:hover {
    background-color: #000;
    color: #fff;
}
.contact .policy a:hover {
    text-decoration: none;
}
}
@media only screen and (max-width:750px){
.contact {
    padding: 1.85rem 0 0.65rem;
    position: relative;
}
.contact::before {
    content: '';
    width: 1px;
    height: 21.33vw;
    background-color: rgba(255,255,255,0.35);
    position: absolute;
    left: 50%;
    top: 0;
}
.contact dl {
    width: 86.66vw;;
    margin: 0 auto 0.55rem;
    display: block;
}
.contact dl dt {
    width: 100%;
    font-size: 3.733vw;
    padding: 0 0 0.1rem;
}
.contact dl dt.required span::after {
    width: 9.33vw;
    border-radius: 0.8vw;
    font-size: 2.933vw;
    line-height: 4.266vw;
    right: 0;
    top: 0.1rem;
}
.contact dl dd {
    width: 100%;
}
.contact dl dd input[type=text],
.contact dl dd input[type=tel],
.contact dl dd input[type=email],
.contact dl dd textarea {
    height: 13.33vw;
    border-radius: 0.8vw;
}
.contact dl dd textarea {
    height: 40vw;
}
.contact dl dd textarea.add {
    height: 26vw;
}
.contact dl dd .box {
    height: 29vw;
}
.contact dl dd .box p {
    font-size: 2.933vw;
    line-height: 1.45;
}
.contact .agree {
    margin-top: 0.1rem;
}
.contact .agree input[type=checkbox] + span {
    padding: 0.05rem 0 0.05rem 0.4rem;
}
.contact .agree input[type=checkbox] + span::before {
    width: 0.2rem;
    height: 0.2rem;
    border: 0.01rem solid #222;
    margin-top: -0.1rem;
}
.contact .agree input[type=checkbox] + span::after {
    width: 0.05rem;
    height: 0.1rem;
    left: 0.07rem;
    margin-top: -0.07rem;
}
.contact input[type=submit] {
    width: 74.66vw;
    height: 16vw;
    margin: 0 auto 0.4rem;
}
.contact .policy {
    width: 86.66vw;
    margin: 0 auto;
    font-size: 2.933vw;
    line-height: 1.45;
    text-align: left;
}

.contact .wpcf7-not-valid-tip {
    font-size: 3.466vw !important;
}
}


/* footer
------------------------------------------------- */
#footer {
    background-color: #8B8B8B;
    position: relative;
    z-index: 2;
}
#footer small {
    display: block;
    width: 12rem;
    border-top: 0.005rem solid rgba(255,255,255,0.35);
    font-size: 0.13rem;
    letter-spacing: 0.05em;
    text-align: center;
    padding: 0.15rem 0 0.4rem;
    margin: 0 auto;
}
.grecaptcha-badge {
    visibility: hidden;
}
@media only screen and (max-width:750px){
#footer small {
    width: 86.66vw;
    border-top: 0.266vw solid rgba(255,255,255,0.35);
    font-size: 2.66vw;
    padding: 0.2rem 0 0.5rem;
}
}


/* animation
------------------------------------------------- */
@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}