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

  Layout

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


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

  expression
  
----------------------------------------------------------------------------------------------------*/
.lo {
  min-height: 100vh;
  position: relative;
}
.base-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}


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

  header
  
----------------------------------------------------------------------------------------------------*/
header {
}


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

html.openNav_on { overflow-y:hidden; }

#openNav-warp {
  display: none;
  position:fixed;
  top:0;
  right:0;
  z-index:10;
  width:100%;
  height:100%;
}
#openNav-warp.on {
  display: block;
}
.lte-ie8 #openNav-warp {
  display:none !important;
}
.lte-ie8 #openNav-warp.on { min-width:1100px; }

#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:#fff;
}
#openNav a { transition:opacity 0.2s ease; }
#openNav a,
#openNav a:visited { color:#fff; text-decoration:none; }
#openNav nav {
  width:100%;
  padding:7rem 1.5rem 2rem 1.5rem;
  font-size:120%;
  display: block;
  box-sizing: border-box;
}
#openNav nav > ul.mnav {
  list-style:none;
}
#openNav nav > ul.mnav > li {
  width:100%;
}
#openNav nav > ul.mnav > li > a {
  border-bottom:1px solid rgba(255,255,255,0.2);
  width:100%;
  padding:0.7rem 1rem;
  display:block;
  font-size:118.8%;
  transition: 0.2s;
  box-sizing: border-box;
}
#openNav nav > ul.mnav > li:first-child a {
  border-top:1px solid rgba(255,255,255,0.2);
}
#openNav nav > ul.mnav > li.active > a,
#openNav nav > ul.mnav > li > a:hover {
  background-color:rgba(255,255,255,0.2);
}
#openNav .nav_info {
  width: calc(100% - 3em);
  padding: 1.5rem 2rem;
  margin: 1.5em;
  font-size: 112.5%;
  box-sizing: border-box;
  text-align: center;
  background-color: rgba(255,255,255,1.00);
}

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

#openNav_btn {
  display: none;
  cursor:pointer;
  width:48px;
  height:48px;
  text-align:center;
  color:#fff;
  transition: 0.2s all;
  position: fixed;
  top: 20px;
  right: 30px;
  z-index: 9999;
}

/*
@media screen and (max-width:750px) {
  #openNav_btn {
    display: block;
  }
}
*/

.lte-ie8 #openNav_btn {
  display:none !important;
}

.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:30px;
}
  
.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:#202020;
}
.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);
}

@media screen and (max-width:750px) {
  .openNav_btn_ic {
    width:50px;
    height:30px;
    margin-top: 36px;
  }
  .openNav_btn_ic span:nth-of-type(2) {
    top:15px;
  }
  #openNav_btn.close .openNav_btn_ic span:nth-of-type(1) {
    -webkit-transform:translateY(14px) rotate(-325deg);
    transform:translateY(14px) rotate(-325deg);
  }
  #openNav_btn.close .openNav_btn_ic span:nth-of-type(3) {
    width: 100%;
    -webkit-transform:translateY(-14px) rotate(325deg);
    transform:translateY(-14px) 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
  
----------------------------------------------------------------------------------------------------*/
footer {
}

footer .ft-contents {
  padding: 84px 24px 60px;
  background-color: #ddd;
  text-align: center;
  box-sizing: border-box;
}
@media screen and (max-width:750px) {
  footer .ft-contents {
    padding: 60px 24px 48px;
  }
}

footer .ft-contents .logo {
  margin-bottom: 36px;
}
@media screen and (max-width:500px) {
  footer .ft-contents .logo {
    margin-bottom: 24px;
  }
}

footer .ft-contents address {
  display: block;
}

footer .ft-contents address a,
footer .ft-contents address a:link,
footer .ft-contents address a:visited {
  color: #2CA1B9;
  text-decoration: none;
}
footer .ft-contents address a:hover {
  color: #6BC4D7;
}
footer .ft-contents address a.tel {
  color: inherit;
}

footer .ft-contents .note {
  color: #666;
  margin-top: 1em;
  line-height: 1.4;
}
footer .ft-contents .note span {
  text-align: left;
}

footer .copyright {
  padding: 1.5em 0;
  background-color: #8F7C7D;
  color: #fff;
  text-align: center;
  line-height: 1.2;
}


/*--------------------------------------------------------------------------------
  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: 88px;
  height: 88px;
  cursor: pointer;
}
.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: 14px;
  height: 14px;
  margin-top: 7px;
  border-top: 1px solid #202020;
  border-right: 1px solid #202020;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.l-backtoTop-wrap.is-scrFt .l-backtoTop__icon:after {
  border-top-color: #202020;
  border-right-color: #202020;
}


/*----------------------------------------------------------------------------
   table
------------------------------------------------------------------------------*/

.table-content {
  table {
    width:100%;
    border-top:1px solid #bbb;
    border-collapse:collapse;

    th {
      border-bottom:1px solid #bbb;
      text-align:left;
      vertical-align:top;
      white-space:nowrap;
      padding: 1em;
    }

    td {
      padding: 1em;
      border-bottom:1px solid #bbb;
    }
    
    @media (max-width:640px) {
      th {
        display: block;
        width: 100%;
        box-sizing: border-box;
        border-bottom: none;
        padding-bottom: 0;
      }

      td {
        display: block;
        width: 100%;
        box-sizing: border-box;
        padding-top: .25em;
      }
    }
  }
}


/* -----------------------------------------------------------------------------
	form
 -------------------------------------------------------------------------------*/
 
#mailform-layout {
}

#mailform-layout .item {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}

#mailform-layout .item .name {
	display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 240px;
  font-weight: bold;
}

#mailform-layout .item .answer {
  width: calc(100% - 264px);
}

@media (max-width:640px) {
  #mailform-layout .item {
    gap: 12px;
  }
  
  #mailform-layout .item .name {
    justify-content: space-between;
    flex-wrap: wrap;
    width: 100%;
  }

  #mailform-layout .item .answer {
    width: 100%;
  }
}

#mailform-layout .required-icon {
	background-color: #ff4545;
	display: block;
	color: #ffffff;
	text-align: center;
	width: 50px;
	padding-top: 3px;
	padding-bottom: 3px;
	border-radius: 3px;
  margin-left: 1em;
}

#mailform-layout ul {
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

.mailform-alart {
	background-color: #e3fff2;
	border: 1px solid #bae4d1;
	box-sizing: border-box;
	border-radius: 5px;
	padding-left: 15px;
	padding-right: 15px;
	padding-top: 15px;
	padding-bottom: 15px !important;
	margin-bottom: 30px;
	text-align: center;
}

.mailform-alart.error {
	background-color: #ffffff;
	border: 2px solid #ff5353;
	color: #ff5353;
	font-weight: bold;
}

.mailform-setup-alart {
	background-color: #ffffff;
	border: 1px solid #ff5353;
	box-sizing: border-box;
	border-radius: 5px;
	padding-left: 15px;
	padding-right: 15px;
	padding-top: 15px;
	padding-bottom: 15px !important;
	margin-bottom: 30px;
	text-align: center;
	color: #ff5353;
}

.mailform-setup-alart strong {
	display: block;
	text-align: center;
	margin-bottom: 10px;
	font-size: 20px;
}

.mailform-setup-alart p {
	margin: 0;
	padding: 0;
}

.mailform-box {
	background-color: #fff;
  border: 1px solid #999;
	padding: 30px;
	margin-bottom: 30px;
	box-sizing: border-box;
	border-radius: 12px;
	margin-top: 50px;
}
@media (max-width:750px) {
  .mailform-box {
    padding: 18px;
    margin-bottom: 24px;
    margin-top: 48px;
  }
}

.mailform-box .title {
	display: block;
	padding-bottom: 20px;
	padding-left: 60px;
	color: #ff6b6b;
	background-image: url("../image/contact/icon-mailplus.png");
	background-repeat: no-repeat;
	background-position: left 2px top 0;
  line-height: 1.4;
}
@media (max-width:500px) {
  .mailform-box .title {
    display: block;
    padding-top: 48px;
    padding-left: 0;
    color: #ff6b6b;
    background-position: top center;
    text-align: center;
  }
}

.sentok {
	text-align: center;
  line-height: 1.4;
  margin-bottom: 1em;
  
  .sentimg {
    display: block;
    margin: 0 auto;
  }
  
  strong {
    display: block;
	  color: #ff6b6b;
  }
  
  p {
    margin-top: 1em;
  }
}

.add {
	border: 1px solid #ccc;
	background: #fff;
	border-radius: 3px;
	width: 200px;
	height: 36px;
	margin-top: 5px;
}

.s_name {
	display: block;
	margin-bottom: 10px;
}

.button-limit {
	display: none !important;
}

/* input - text */

input[type=text] {
	border: 1px solid #cccccc;
	padding: 10px;
	box-sizing: border-box;
	border-radius: 3px;
}

@media screen and (max-width: 750px) {
	input[type=text] {
		width: 100%;
	}
}

/* input - tel */

input[type=tel] {
	border: 1px solid #cccccc;
	padding: 10px;
	box-sizing: border-box;
	border-radius: 3px;
	width: 250px;
}

@media screen and (max-width: 750px) {
	input[type=tel] {
		width: 100%;
	}
}

/* input - email */

input[type=email] {
	border: 1px solid #cccccc;
	padding: 10px;
	box-sizing: border-box;
	border-radius: 3px;
	width: 100%;
}

/* input - radio */

input[type=radio] {
	position: absolute;
  opacity: 0;
  z-index: -1; 
}
input[type=radio]+label {
	display:block;
	cursor:pointer;
	margin-top:0.25em;
	margin-bottom:0.25em;
	font-family:inherit;
}

input[type=radio]+label:before {
	width:1.25em;
	height:1.25em;
	display:inline-block;
	content:"";
	border-radius:1.25em;
	vertical-align:middle;
	border:2px solid #c8c8c8;
	background-color:#fff;
	margin:-2px 5px 0 0;
	-webkit-transition:border-color ease-in-out .15s, background-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
	-o-transition:border-color ease-in-out .15s, background-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
	transition:border-color ease-in-out .15s, background-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
}

input[type=radio]:hover+label:before {
	border-color:#c8c8c8;
	background-color:#c8c8c8;
	box-shadow:inset 0 0 0 0.25em #fff;
}

input[type=radio]:checked+label:before {
	border-color:#4593ea;
	background-color:#4593ea;
	box-shadow:inset 0 0 0 0.25em #fff;
}

.radio-group label {
	margin-right:1.5em;
}

.radio-group li {
	float: left;
}

/* input - checkbox */

.chk-group {
	position: relative;
	bottom: -5px !important;
	display: block;
}

.chk-group li {
	display: inline-block;
	padding-right: 20px;
}

.chk-group li label {
  display: block;
  position: relative;
  padding-left: 30px;
  padding-bottom: 5px;
  cursor: pointer;
  font-size: 18px;
}
.chk-group li label input {
  position: absolute;
  z-index: -1;
  opacity: 0;
}
.indicator {
  position: absolute;
  top: 2px;
  left: 0;
  height: 20px;
  width: 20px;
  background: #e6e6e6;
  border-radius: 2px;
}
.chk-group li label:hover input ~ .indicator,
.chk-group li label input:focus ~ .indicator {
  background: #ccc;
}
.chk-group li label input:checked ~ .indicator {
  background: #4593ea;
}
.chk-group li label:hover input:not([disabled]):checked ~ .indicator,
.chk-group li label input:checked:focus ~ .indicator {
  background: #4593ea;
}
.chk-group li label input:disabled ~ .indicator {
  background: #e6e6e6;
  opacity: 0.6;
  pointer-events: none;
}
.indicator:after {
  content: '';
  position: absolute;
  display: none;
}
.chk-group li label input:checked ~ .indicator:after {
  display: block;
}
.chk-group li .checkbox .indicator:after {
  left: 8px;
  top: 4px;
  width: 3px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.chk-group li .checkbox input:disabled ~ .indicator:after {
  border-color: #7b7b7b;
}

/* item - age */

#mailform-layout ul.age {
}

#mailform-layout ul.age li {
	float: left;
	width: 100px;
	margin-right: 5px;
}
#mailform-layout ul.age li input {
	width: 70px;
	border: 1px solid #cccccc;
	padding: 10px;
	box-sizing: border-box;
	border-radius: 3px;
	margin-right: 5px;
}

#mailform-layout ul.age li:nth-of-type(1) {
	width: 120px
}

#mailform-layout ul.age li:nth-of-type(1) input {
	width: 90px;
}

/* item - postcode */

#mailform-layout .postcode {
	display: block;
	padding-bottom: 10px;
}

#mailform-layout .postcode input {
	border: 1px solid #cccccc;
	padding: 10px;
	box-sizing: border-box;
	border-radius: 3px;
	margin-right: 5px;
}

#mailform-layout .postcode input:nth-of-type(1) {
	width: 60px;
}
#mailform-layout .postcode input:nth-of-type(2) {
	width: 80px;
}

#mailform-layout .postcode+input {
	width: 100%;
}

/* textarea */

#mailform-layout textarea {
	width: 100%;
	border: 1px solid #cccccc;
	padding: 10px;
	box-sizing: border-box;
	border-radius: 3px;
}

/* submit-button */

.submit-button {
	text-align: center;
}

.submit-button button,
.submit-button .btn {
  background: #c65901;
  border-radius: 9999px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  max-width: 600px;
  padding: 20px 30px;
  text-decoration: none;
  color: #fff;
  font-weight: bold;
  border: none;
  border-bottom: 5px solid #b65511;
  transition: 0.3s ease-in-out;
}

.submit-button button:hover,
.submit-button .btn:hover {
  background: #ee8134;
  color: #FFF;
  border-bottom: 2px solid #999;
  transform: translateY(3px);
}

.submit-button button.pageback {
  background: #ccc;
  color: #232323;
  border-bottom: 5px solid #999;
}
.submit-button button.pageback:hover {
  background: #ddd;
  color: #232323;
  border-bottom: 2px solid #999;
  transform: translateY(3px);
}

/* Design Template
 simple - 下線のみのシンプルなレイアウト
 table - テーブルタグで作成したようなレイアウト
 portable - タブレットスタイルでポップなレイアウト
*/

/* design - simple */
#mailform-layout.simple .item {
	padding-bottom: 15px;
	margin-bottom: 15px;
	border-bottom: 1px dotted #cccccc;
}


/* design - table */

#mailform-layout.table .item {
	position: relative;
	border: 1px solid #e0e0e0;
	margin-top: -1px;
}

#mailform-layout.table .item .name {
	position: absolute;
	left: 0;
	width: 180px;
	height: 100%;
	background-color: #f5f5f5;
	box-sizing: border-box;
	padding: 15px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: left;
}

#mailform-layout.table .item .answer {
	padding: 15px;
	padding-left: 200px;
	box-sizing: border-box;
}

@media screen and (max-width: 750px) {
	#mailform-layout.table .item .name {
		width: 100%;
		display: block;
		position: relative;
		top: inherit;
		left: inherit;
	}
	#mailform-layout.table .item .answer {
		padding-left: 15px;
	}
}

#mailform-layout.table .required {
	position: relative;
	top: inherit;
	right: inherit;
	margin-bottom: 5px;
}

@media screen and (max-width: 750px) {
	#mailform-layout.table .required {
		display: inline-block;
	}
}


/* design - portable */

#mailform-layout.portable .item {
	position: relative;
	margin-bottom: 10px;
}

#mailform-layout.portable .item .name {
	position: absolute;
	left: 0;
	width: 250px;
	height: 100%;
	background-color: #d2e7ff;
	border-radius: 5px;
	color: #333333;
	font-weight: bold;
	box-sizing: border-box;
	padding: 15px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: left;
}

#mailform-layout.portable .item .answer {
	padding: 15px;
	width: calc(100% - 260px);
	margin-left: 260px;
	box-sizing: border-box;
	border: 1px solid #eeeeee;
	border-radius: 5px;
	background-color: #ffffff;
}

#mailform-layout.portable .required {
	top: 50%;
    right: 10px;
    transform: translateY(-50%);
	background-color: #ffffff;
	box-sizing: border-box;
	color: #ff4545;
	border: 1px solid #ff4545;
}