﻿@charset "utf-8";
/*====================================================================================================

  Layout

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


/*----------------------------------------------------------------------------------------------------

  expression
  
----------------------------------------------------------------------------------------------------*/
.lo {
  min-height: 100vh;
  position: relative;
}
.inner {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}
@media screen and (max-width:1240px) {
  .inner {
    width: calc(100% - 40px);
  }
}
@media screen and (max-width:640px) {
  .inner {
    width: calc(100% - 20px);
  }
}
.section-title {
  font-size: 215%;
  text-align: center;
  margin-bottom: 48px;
}
.section-title .section-title-icon {
  display: block;
  margin: 0 auto;
}
@media screen and (max-width:750px) {
  .section-title {
    font-size: 175%;
  }
}


/*----------------------------------------------------------------------------------------------------

  header
  
----------------------------------------------------------------------------------------------------*/
header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 30px 50px 20px;
  box-sizing: border-box;
}
header .hd-title .catch {
  margin: 0;
}
header .hd-title h1 {
  color: var(--fourthly-color);
  font-size: 42px;
  letter-spacing: 0;
  margin: 0;
  line-height: 1.2;
}
header .hd-title h1 a {
  text-decoration: none;
}
header .hd-title h1 a:hover {
  color: inherit;
}
header .hd-title h1 .fs-s {
  font-size: 25px;
}
header .navArea nav {
  text-align: right;
}
header .navArea .sale_btn {
  margin-bottom: 12px;
}
header .navArea .sale_btn img {
  display: inline-block;
  margin-right: 12px;
}
header .menu {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
header .menu li {
  list-style: none;
}
header .menu li::after {
  content: "｜";
  color: var(--primary-color-dark);
}
header .menu li:last-child:after {
  content: "";
}
header .menu li a {
  display: inline-block;
  padding: 0.1em 0.5em;
  margin: 0 0.25em;
  border-radius: 6px;
  color: var(--primary-color-dark);
  text-align: center;
  text-decoration: none;
  font-weight: bold;
  transition: 0.2s;
}
header .menu li:last-child a { margin-right: 0; }
header .menu li a:hover,
header .menu li.active a {
  background-color: var(--primary-color-dark);
  color: #fff;
}
@media (max-width:1500px) {
  header {
    padding: 30px 20px 20px;
  }
  header .menu {
    font-size: 14px;
  }
}
@media (max-width:1300px) {
  header {
    padding-right: 100px;
  }
  header .navArea {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    column-gap: 0.75rem;
  }
  header .navArea .sale_btn {
    margin-bottom: 0;
  }
  header .menu {
    display: none;
  }
}
@media (max-width:900px) {
  header .catch {
    font-size: 12px;
  }
  header .hd-title h1 {
    font-size: 30px;
  }
  header .hd-title h1 .fs-s {
    font-size: 18px;
  }
  header .navArea .sale_btn .sale_btn_txt span {
    display: none;
  }
}
@media (max-width:640px) {
  header {
    padding: 20px 70px 10px 10px;
  }
  header .catch {
    font-size: 10px;
  }
  header .hd-title h1 {
    font-size: 26px;
  }
  header .hd-title h1 .fs-s {
    font-size: 16px;
  }
  header .navArea .sale_btn .p-btn {
    position: fixed;
    z-index: 11;
    top: 10px;
    right: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 30px;
    padding: 15px;
    transition: 0.2s all;
  }
  header .navArea .sale_btn img {
    margin-right: 0;
  }
  header .navArea .sale_btn_txt {
    display: none;
  }
}
@media (max-width:450px) {
  header .navArea .sale_btn .p-btn {
    top: 80px;
    right: 10px;
  }
}


/*-----------------------------------------------------------------------------------
  SPnav
-----------------------------------------------------------------------------------*/

html.openNav_on { overflow-y:hidden; }

#openNav-warp {
  display: none;
  position:fixed;
  top:0;
  right:0;
  z-index:11;
  width:100%;
  height:100%;
}
#openNav-warp.on {
  display: block;
}

#openNav_sw {
  width:100%;
  height:100vh;
  filter:alpha(opacity=0);
  opacity:0;
  -moz-opacity:0;
  transition:opacity 0.2s ease;
}
#openNav-warp.on #openNav_sw {
  filter:alpha(opacity=100);
  opacity:1;
  -moz-opacity:1;
}
#openNav {
  height:100%;
  background-color:var(--primary-color-light);
}
#openNav .openNav-title {
  padding-top: 30px;
  margin-left: 30px;
}
#openNav .openNav-title .catch {
  margin: 0;
}
#openNav .openNav-title h1 {
  color: var(--primary-color);
  font-size: 42px;
  letter-spacing: 0;
  margin: 0;
  line-height: 1.2;
}
#openNav .openNav-title h1 a {
  text-decoration: none;
}
#openNav .openNav-title h1 a:hover {
  color: inherit;
}
#openNav .openNav-title h1 span {
  font-size: 25px;
}
@media (max-width:900px) {
  #openNav .openNav-title .catch {
    font-size: 12px;
  }
  #openNav .openNav-title h1 {
    font-size: 30px;
  }
  #openNav .openNav-title h1 span {
    font-size: 18px;
  }
}
@media (max-width:640px) {
  #openNav .openNav-title {
    padding-top: 20px;
    margin-left: 10px;
  }
  #openNav .openNav-title .catch {
    font-size: 10px;
  }
  #openNav .openNav-title h1 {
    font-size: 26px;
  }
  #openNav .openNav-title h1 span {
    font-size: 16px;
  }
}
#openNav nav {
  width: 100%;
  padding-top: 50px;
}
@media (max-width:450px) {
  #openNav nav {
    padding-top: 80px;
  }
}
#openNav nav > ul.mnav {
  list-style:none;
}
#openNav nav > ul.mnav > li {
  width:100%;
  text-align: center;
  margin: 1.5em 0;
}
#openNav nav > ul.mnav > li > a {
  position: relative;
  display: inline-block;
  padding: 0.1em 0.5em;
  border-radius: 6px;
  color: var(--primary-color-dark);
  font-size: 125%;
  text-align: center;
  text-decoration: none;
  transition: 0.2s;
}
#openNav nav > ul.mnav > li > a:hover,
#openNav nav > ul.mnav > li.active > a {
  background-color: var(--primary-color-dark);
  color: #fff;
}

/* ボタン ---------------------------------------- */

#openNav_btn {
  position: fixed;
  z-index: 12;
  top: 40px;
  right: 20px;
  display: none;
  cursor: pointer;
  width: 60px;
  height: 60px;
  text-align:center;
  background-color: var(--primary-color);
  border-radius: 30px;
  color:#fff;
  transition: 0.2s all;
}
@media screen and (max-width:1300px) {
  #openNav_btn {
    display: block;
  }
}
@media (max-width:900px) {
  #openNav_btn {
    top: 30px;
    right: 20px;
  }
}
@media (max-width:640px) {
  #openNav_btn {
    top: 10px;
    right: 10px;
  }
}
#openNav_btn:hover {
  background-color: var(--primary-color-hover);
}

.openNav_btn_ic,
.openNav_btn_ic span,
.openNav_btn_ic span:before,
.openNav_btn_ic span:after {
  display:inline-block;
  transition:transform .4s, opacity .4s;
  box-sizing:border-box;
}
.openNav_btn_ic {
  position:relative;
  width:33px;
  height:18px;
  margin-top:22px;
}
  
.openNav_btn_ic span,
.openNav_btn_ic span:nth-of-type(2),
.openNav_btn_ic span:nth-of-type(3) {
  position:absolute;
  right:0;
  height:1px;
  background-color:#fff;
}
.openNav_btn_ic span:nth-of-type(1) {
  width:100%;
  top:0;
}
.openNav_btn_ic span:nth-of-type(2) {
  width:80%;
  top:9px;
}
.openNav_btn_ic span:nth-of-type(3) {
  width:60%;
  bottom:0;
}
  
#openNav_btn.close .openNav_btn_ic span:nth-of-type(1) {
  -webkit-transform:translateY(8.5px) rotate(-325deg);
  transform:translateY(8.5px) rotate(-325deg);
}
#openNav_btn.close .openNav_btn_ic span:nth-of-type(2) {
  opacity:0;
}
#openNav_btn.close .openNav_btn_ic span:nth-of-type(3) {
  width: 100%;
  -webkit-transform:translateY(-8.5px) rotate(325deg);
  transform:translateY(-8.5px) rotate(325deg);
}

.preload .openNav_btn_ic,
.preload .openNav_btn_ic span,
.preload .openNav_btn_ic span:before,
.preload .openNav_btn_ic span:after {
  -webkit-transition:none !important;
  -moz-transition:none !important;
  -ms-transition:none !important;
  -o-transition:none !important;
  transition:none !important;
}

@media print {
  #openNav_btn { display:none !important; }
}


/*----------------------------------------------------------------------------------------------------

  Footer
  
----------------------------------------------------------------------------------------------------*/
/* cta */
#cta {
  margin-top: 50px;
  background-image: url("../image/footer/cta-bg.jpg");
  background-repeat: no-repeat;
  background-position: center bottom;
  text-align: center;
}
#cta .cta-wrap {
  padding: 50px 0;
  background-color: rgba(40,61,59,0.6);
  backdrop-filter: blur(3px);
}
#cta h2 {
	display: flex;
	justify-content: center;
	align-items: center;
  margin-bottom: 30px;
  color: #fff;
	font-size: 28px;
	text-align: center;  
  line-height: 1.4;
}
#cta h2::before,
#cta h2::after {
	content: '';
	width: 1px;
	height: 50px;
	background-color: #fff;
}
#cta h2::before {
	margin-right: 1em;
	transform: rotate(-35deg)
}
#cta h2::after {
	margin-left: 1em;
	transform: rotate(-35deg)
}
#cta h2 .sp {
  display: none;
}
#cta .cta-item-list {
  display: flex;
  justify-content: center;
}
#cta .cta-item {
  width: 385px;
  box-sizing: border-box;
  color: #fff;
}
#cta .cta-item:first-child {
  border-right: 1px dashed rgba(255,255,255,0.6);
  padding-right: 30px;
}
#cta .cta-item:last-child {
  padding-left: 30px;
}
#cta .cta-item strong {
  display: block;
  font-size: 20px;
}
#cta .cta-item .p-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 385px;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  height: 85px;
  margin: 1em auto;
  color: var(--primary-color);
  font-size: 24px;  
}
#cta .cta-item .p-btn:hover {
  background-color: var(--primary-color-light);
}
#cta .cta-item .p-btn img {
  display: inline-block;
  margin-right: 0.75rem;
}
#cta .cta-item p {
  font-size: 14px;
}
@media (max-width:750px) {
  #cta .cta-item-list {
    flex-wrap: wrap;
  }
  #cta .cta-item {
    width: 100%;
  }
  #cta .cta-item:first-child {
    border-bottom: 1px dashed rgba(255,255,255,0.6);
    padding-bottom: 30px;
    border-right: none;
    padding-right: 0;
  }
  #cta .cta-item:last-child {
    padding-top: 30px;
    padding-left: 0;
  }
}
@media (max-width:640px) {
  #cta h2::before,
  #cta h2::after {
    height: 70px;
  }
  #cta h2::before {
    margin-right: 1.5em;
  }
  #cta h2::after {
    margin-left: 1.5em;
  }
  #cta h2 .sp {
    display: block;
  }
}
@media (max-width:470px) {
  #cta h2 {
    font-size: 22px;
  }
  #cta .cta-item strong {
    font-size: 18px;
  }
}

/* footer */
footer {
  background-color: var(--fourthly-color);
  color: #fff;
}
footer .inner {
  padding: 80px 0 90px;
  text-align: center;
}
footer h1 {
  font-size: 42px;
  margin: 0 0 30px;
}
footer h1 a {
  text-decoration: none;
}
footer h1 a:hover {
  color: inherit;
  text-decoration: none;
}
footer .copyright {
  padding: 0.5em 0;
  background-color: var(--fourthly-color-dark);
  text-align: center;
}
@media (max-width:430px) {
  footer .copyright {
    font-size: 12px;
  }
}
@media screen and (max-width:640px) {
  footer h1 {
    font-size: 32px;
  }
}


/*--------------------------------------------------------------------------------
  back to top
--------------------------------------------------------------------------------*/
.l-backtoTop-wrap {
  display: none;
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 3;
  width: 100%;
  pointer-events: none;
  text-align: right;
}
.l-backtoTop {
  display: inline-block;
  pointer-events: auto;
  width: 80px;
  height: 80px;
  margin-right: 20px;
  margin-bottom: 20px;
  cursor: pointer;
  background-color: #fff;
  border: 2px solid var(--primary-color);
  border-radius: 6px;
}
.l-backtoTop-wrap.is-noFix {
  position: absolute;
  bottom: inherit;
  left: 0 !important;
}
.l-backtoTop__icon {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.l-backtoTop__icon:after {
  content: "";
  display: inline-block;
  width: 26px;
  height: 26px;
  margin-top: 18px;
  border-top: 2px solid var(--primary-color);
  border-right: 2px solid var(--primary-color);
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
@media screen and (max-width:640px) {
  .l-backtoTop-wrap {
    display: none !important;
  }
}


/*----------------------------------------------------------------------------------------------------

  subpage
  
----------------------------------------------------------------------------------------------------*/
/* page-title */
.page-title {
  width: 100%;
  background-repeat: no-repeat;
}
.page-title-wrap {
  display: flex;
  align-items: center;
  width: 100%;
  height: 300px;
  background-color: rgba(40,61,59,0.6);
  backdrop-filter: blur(3px);
}
.page-title h1 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  color: #fff;
  line-height: 1.4;
}
@media screen and  (max-width:1240px) {
  .page-title h1 {
    width: calc(100% - 40px);
  }
}
@media screen and (max-width:640px) {
  .page-title h1 {
    width: calc(100% - 20px);
  }
}
.page-title h1 .title {
  display: block;
  width: 100%;
  font-size: 60px;
  font-family: 'fot-rodin', sans-serif;
  font-weight: 800;
}
.page-title h1 .title .fs-mini {
  font-size: 42px;
  letter-spacing: -1pt;
}
.page-title h1 .eng {
  display: block;
  width: 100%;
  font-size: 30px;
  font-family: 'High Tide', sans-serif;
  font-weight: 500;
}
@media screen and (max-width:900px) {
  .page-title h1 .title {
    font-size: 42px;
  }
  .page-title h1 .title .fs-mini {
    font-size: 32px;
  }
  .page-title h1 .eng {
    font-size: 21px;
  }
}
@media screen and (max-width:640px) {
  .page-title h1 .title {
    font-size: 33px;
  }
  .page-title h1 .title .fs-mini {
    font-size: 22px;
  }
  .page-title h1 .eng {
    font-size: 16px;
  }
}

/* breadcrumbs */
.breadcrumbs {
  margin-top: 1em;
}
.breadcrumbs ul {
  list-style: none;
}
.breadcrumbs ul li {
  display: inline-block;
}
.breadcrumbs ul li::after {
  content: ">";
  display: inline-block;
  margin: 0 1em;
}
.breadcrumbs ul li:last-child:after {
  display: none;
}


/*--------------------------------------------------------------------------------
  fancybox
--------------------------------------------------------------------------------*/
.fancybox-slide {
  overflow: hidden !important;
  height: 85vh !important;
}
.fancybox-content {
  max-height: 85vh !important;
}
.compensate-for-scrollbar {
  margin-right: 0 !important;
}
.fancybox-button {
  background-color: #FF6868 !important;
  color: #fff !important;
}