@charset "utf-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@300;400;500;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@1,300;1,400&display=swap');


/* -----------------------------------------------------------
font-size
------------------------------------------------------------*/
@media (min-width: 751px) {
  :root {
    font-size: calc(0.5625rem + ((1vw - 7.68px) * 0.1736));
    min-height: 0vw;
  }
  p,div,span,li,i,td,th,em,dt,dd {
    font-size:1.6rem;
  }
}
@media (min-width: 1344px) {
  :root {
    font-size: 10px;
  }
}
@media (max-width: 1100px) {
  @media (min-width: 751px) {
    :root {
      font-size: calc(0.52rem + ((1vw - 7.68px) * 0.1736));
      min-height: 0vw;
    }

  }
}
@media screen and (max-width:750px) {
  html {
  font-size: 62.5%;
  }
  body { font-size: 1.4rem; }
  p,div,span,li,i,td,th,em,dt,dd {
    font-size:1.4rem;
  }
}

/* -----------------------------------------------------------
	common
------------------------------------------------------------*/
html,body {
height:100%;
}
html {
font-family: sans-serif;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
font-weight: 400;
line-height:1.8;
-webkit-text-size-adjust: 100%;
-webkit-font-smoothing: antialiased;
-webkit-overflow-scrolling: touch;
}

body, table, th, td, p, li, div, span,dt,dd,
h1,h2,h3,h4,h5,h1 span,h2 span {
font-family:'Noto Sans JP', sans-serif;
}
.min {
font-family: 'Noto Serif JP', serif;
}

* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}

*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
p,li,dt,dd,th,td,div,span,em {
color: #191919;
word-wrap: break-word;
}
p,div,span,em {
line-height: 1.8;
}
li,dt,dd,th,td {
line-height: 1.4;
}
p {
  margin-top:0;
}
li {
line-height: 1.4;
list-style: none;
}
ul,ol,figure {
	padding-left:0;
	margin:0;
	width:100%;
}
table {
width: 100%;
border-collapse: collapse;
}
a {
  word-break: break-word;
  text-decoration: none;
}
header a,
footer a {
  text-decoration: none;
}
main a {
color: #191919;
}
img {
line-height: 0;
max-width: 100%;
vertical-align: bottom;
}
article:after,main:after,
clearfix:after {
content: "";
display: block;
clear: both;
}

@media screen and ( min-width: 751px ){
  a {
  -webkit-transition: background  0.3s ease, color 0.3s ease;
  -moz-transition: background  0.3s ease, color 0.3s ease;
  -o-transition: background  0.3s ease, color 0.3s ease;
  transition: background  0.3s ease, color 0.3s ease;
}
	a:hover {
	filter: alpha(opacity=70);
	-ms-filter: "alpha(opacity=70)";
	opacity: 0.7;
	cursor:pointer;
  transition:opacity 0.3s;
  text-decoration: none;
	}
	a:hover img {
	-ms-filter: "alpha(opacity=70)";
	filter: alpha(opacity=70);
	}
	#page-top a:hover {
  text-decoration: none;
  opacity: 0.7;
	}
  a[href^="tel:"] { pointer-events: none; }
  .sp {
  display:none!important;
  }

}


/* -----------------------------------------------------------
common default
------------------------------------------------------------*/
.ac { margin:auto; }
.tc { text-align:center!important; }
.tl { text-align:left!important; }
.fl { float:left; }
.fr { float:right; }
.bold { font-weight:bold; }
.inline { display:inline-block; }
.block { display:block; }
.super { vertical-align: super; font-size:10px;}

dl,dt,dd,li {
  margin:0;
  padding:0;
}

/* -----------------------------------------------------------
page
------------------------------------------------------------*/
.full {
	width:100vw;
	margin:0 calc(50% - 50vw);
}
.container {
	margin: 0 auto;
	max-width:1000px;
	width:90%;
	position: relative;
}
.container.wide {
  max-width:1510px;
}
.container.big {
  max-width:1280px;
}
.container.large {
	max-width:1200px;
}
.container.medium {
  max-width:1126px;
}
.container.base {
  max-width:980px;
}
.container.short {
  max-width:800px;
}
.container-inner {
  max-width:1080px;
  margin:0 auto;
}
.wrap a {
  text-decoration: underline;
}
/* -----------------------------------------------------------
reset
------------------------------------------------------------*/
a:focus, a:active {
outline: none;
outline-offset: 0;
text-decoration: none;
}
.btn:active, .btn.active {
box-shadow:none;
}
.btn:focus, .btn:active:focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn.active.focus {
outline:none;
}
.btn-link:hover {
  text-decoration:none;
}

/* -----------------------------------------------------------
font
------------------------------------------------------------*/
.fs10 { font-size: 10px; }
.fs11 { font-size: 11px; }
.fs12 { font-size: 12px; }
.fs13 { font-size: 13px; }
.fs14 { font-size: 1.4rem; }
.fs16 { font-size: 1.6rem; }
.fs18 { font-size: 1.8rem; }
.fs20 { font-size: 2rem; }
.fs21 { font-size: 2.1rem }
.fs22 { font-size: 2.2rem; }
.fs23 { font-size: 2.3rem; }
.fs24 { font-size: 24px; }
.fs26 { font-size: 26px; }
.fs28 { font-size: 28px; }
.fs29 { font-size: 29px; }
.fs30 { font-size: 30px; }
.fs32 { font-size: 32px; }
.fs34 { font-size: 34px; }
.fs36 { font-size: 36px; }
.fs38 { font-size: 38px; }
.fs40 { font-size: 40px; }
p.mb0 {
  margin-bottom:0;
}

/* -----------------------------------------------------------
btn
------------------------------------------------------------*/

button {
width: auto;
padding: 0;
margin: 0;
background: none;
border: 0;
font-size: 0;
line-height: 0;
overflow: visible;
cursor: pointer;
}
button:focus {
outline: none;
appearance: none;
}

@media screen and (min-width: 751px) {
  .sp {
    display: none!important;
}
}

@media screen and (max-width: 750px) {
  .fs18 { font-size:4.6875vw }
  .fs28 { font-size:4.6875vw }
  .pc, .md, .ms, .breadcrumbs {
    display: none!important;
  }
}

/* -----------------------------------------------------------
	index home
------------------------------------------------------------*/
body {
  margin:0;
}
#mv {
  position: relative;
  text-align: center;
}
#mv,
.mv-outer,
.mv-inner,
.mv-img  {
  width:100%;
}
.mv-img {
  width:100%;
  height:auto;
  z-index: -1;
  position: relative;
}
.mv-catch {
  width:100%;
}
.en-ttl {
  font-family: 'Arial',sans-serif;
  text-align:center;
  line-height:1;
  font-weight: bold;
}
.bg-dot {
  background: url(../img/common/bg-dot.jpg) repeat center top;
  background-size:100%;
}
#en-about {
  padding:6rem 0 1rem;
}
.top-signature {
  text-align:right;
}
.ttlA {
  font-family: 'Arial',serif;
  color:#223050;
  margin:0;
}
.en-case .gray {
  background-color: #606A81;
  display: flex;
  justify-content: center;
  align-items: center;
}
.bg {
  background-color: #E8EAED;
}



/* responsive
-----------------------------------------------------------*/

@media screen and (min-width: 751px) {
  #mv {
    background: url(../img/home/mv-bg.png)no-repeat center 35%;
    background-size:cover;
    position: relative;
    z-index: -1;
  }
  .mv-outer {
    max-width:1580px;
    width:95%;
    margin:0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .mv-img {
    margin: 2% auto 0 -2%;
    width: 77%;
  }
  .mv-catch {
    margin: 6% 2% 0 -8%;
    width: 30%;
  }
  .mv-catch img {
    width:calc(366/1200*100vw);
  }
  .top-message {
    font-size: 1.8rem;
    margin-bottom:3em;
  }
  .en-ttl {
    margin-bottom:4rem;
  }
  .en-ttl {
    font-size:calc(33/1200*100vw);
    margin:1em auto 2rem;
  }
  .ttlA {
    font-size:calc(26/1200*100vw);
  }
  #en-case .ttlA,
  #en-other .ttlA {
    color:#191919;
    font-size: calc(24/1200*100vw);
  }
  #en-case .ttlA.s,
  #en-other .ttlA.s {
    font-size: calc(23/1200*100vw);
    letter-spacing: -0.01em;
  }
  .section {
    padding:4rem 0;
  }
  #en-case {
    margin-bottom:9.5rem;
  }
  .box  {
    display: flex;
    justify-content: space-between;
    background-color: #fff;
    margin-bottom:2.5rem;
  }
  #en-other .box,
  #en-case .box {
    margin-bottom:3rem;
    border:1px solid #ccc;
  }
  #en-other .box-txt,
  #en-case .box-txt  {
    padding:2.8rem 1.8rem 1.3rem;
  }
  .box figure {
    max-width:396px;
    width:39.6%;
  }
  .box-txt {
    width:59.5%;
    padding:1.5rem 2rem;
  }
  #en-other .box figure,
  #en-case .box figure {
    background-color: #606A81;
    padding:2.7rem 4rem;
  }
  .box p {
    font-size:1.7rem;
  }
  .en-case,
  .en-other {
    margin-top:4.5rem;
  }
  .en-case .gray {
    padding:2rem;
  }
  #en-flagship {
    margin-bottom:11.5rem;
  }
  #en-other .box.pt figure{
    padding-top:5rem;
  }
  #en-other {
    margin-bottom:15rem;
  }
  #flagship {
    margin:4rem 0;
    padding:7rem 0 5.5rem;
  }
}

@media screen and (min-width: 751px) and (max-width: 1200px) {
  .en-ttl {
    font-size:2.8rem;
  }
}


@media screen and (max-width: 750px) {
  .mv-bottom {
    margin:1rem 0 0 auto;
    text-align: right;
    padding-left:3%;
  }
  .mv-bottom img {
    width:100%;
  }
  .en-ttl {
    font-size:calc(48/640*100vw);
  }
  #en-about .en-ttl {
    font-size:calc(40/640*100vw);
    margin:0 auto 2.5rem;
  }
  .top-message,
  .top-signature {
    font-size: calc(26/640*100vw);
    margin-bottom:1em;
  }
  #en-about {
    margin-bottom:calc(130/640*100vw);
  }
  .ttlA {
    font-size: calc(40/640*100vw);
    line-height:1.2;
    margin-bottom: 0.5rem;
  }
  .box {
    background-color: #fff;
    margin-bottom: 2.5rem;
  }
  .box-txt {
    padding: calc(15/640*100vw) calc(30/640*100vw);
  }
  .box-txt p {
    font-size: calc(26/640*100vw);
  }
  #flagship {
    margin: 2.5rem 0;
    padding: 2.5rem 0 2.5rem;
  }
  #en-other .box figure, #en-case .box figure {
    background-color: #606A81;
    padding: 2rem 3rem;
  }
  #en-other .box, #en-case .box {
    margin-bottom: 3rem;
    border: 1px solid #ccc;
  }
  #en-other {
    padding-bottom:2rem;
  }
}

/* -----------------------------------------------------------
form
------------------------------------------------------------*/

/* contact
----------------------------------------------- */
.contact-box {
  background-color: #9097a7;
  padding:4rem 2rem 1rem;
  text-align:center;
}
.contact-box * {
  color:#fff;
}
.contact-box .ttl-jp {
  font-size:1.8rem;
  margin-bottom:2rem;
}
.contact-box .cta-tel {
  margin-bottom:2rem;
}
.contact-read {
  text-align:center;
}



/* form
----------------------------------------------- */
#form-list {
margin-top:20px;
}
#form-list dl {
margin: 0 0 1.2em;
padding: 0;
font-size: 16px;
line-height: 1.6;
vertical-align: top;
text-align: left;
}
#form-list dt {
font-size: 2.1rem;
font-weight:bold;
margin:4rem 0 1rem;
display: flex;
}
#form-list .required {
margin-left:1em;
background: #ea005b;
color:#fff;
font-size: 13px;
width:auto;
height: 24px;
padding:0 1rem;
line-height: 1.2;
display: flex;
justify-content: center;
align-items: center;
}
#form-list dd {
vertical-align: middle;
text-align: left;
}
#form-list dd + dd {
  margin-top:1rem;
}
#form-list dl dd span {
font-size:88%;
}
#form-list dl dd a {
text-decoration: underline;
}
#form-list dl dd a:hover {
text-decoration: none;
}
form .size1 {
width:100%;
font-size:14px;
padding:1rem 1.5rem;
border:none;
}
form .size2 {
width:30%;
margin-bottom:8px !important;
font-size:14px;
padding:1rem 1.5rem;
}
form .size3 {
width:44%;
font-size:14px;
padding:1rem 1.5rem;
}
form .size4 {
width:80%;
min-height:80px;
font-size:14px;
padding:1.5rem 1.5rem;
}
form .size5 {
width:73%;
font-size:14px;
padding:1rem 1.5rem;
}
form textarea {
font-size:14px;
padding:1rem 1.5rem;
background: #fff;
border:none;
min-height: 12em;
}
form input[type="text"],
form input[type="email"] {
background: #fff;
padding:1rem 1.5rem;
height: 64px;
box-sizing: border-box;
border:none;
}
form .btn_area {
margin-top: 50px;
margin-bottom: 0px;
text-align:center;
}
form .form_btn {
display: flex;
margin:0 auto;
background-color:#333;
text-align:center;
border:0;
cursor:pointer;
}
.form-btn {
display: flex;
justify-content: center;
margin:5rem auto 6rem;
}
.form-btn input,
.form-btn button {
margin:0 5px;
cursor: pointer;
outline: none;
border:none;
font-size: 2rem;
}
.form-btn input:hover,
.form-btn button:hover,
.confirm-btn input:hover,
.confirm-btn button:hover {
opacity: 0.85;
}
/* form-sub */
#form-sub {
  margin:4rem 0;
}
.ttl-form {
  font-size:1.8rem;
  margin:2rem 0 0.5rem;
}
.form-box {
  border:2px solid #9097a7;
  padding:2rem 3% 2rem 5%;
  background-color: #fff;
}
.form-radio {
	display: flex;
}
.form-radio li {
	margin-right:10px;
  font-size:14px;
}
#form-sub input,
#form-sub select {
	padding:7px 10px;
	font-size: 14px;
}
 input[type="radio"] {
	 margin:3px 5px 5px;
}
.form-select * {
  font-size:14px;
}
.select-ttl {
  margin-right:1em;
}
.form-check label {
  display: block;
  margin: 1rem 0;
}
.accept-area {
  margin:0 auto;
  text-align:center;
}
.accept-ttl {
  font-size:1.8rem;
}
input,textarea {
	font-family: 'Noto Sans JP';
}
.btn01 {
  border:1px solid #46bc9a;
  border-radius: 10em;
  padding:1rem 2.5rem;
  color:#46bc9a;
  font-weight: bold;
}
.btn01 img {
  vertical-align: middle;
  margin-left:1rem;
}
.btn05 {
  width: 260px;
  height: 68px;
  background:url(../img-en/arrow.svg)no-repeat 93% center;
  background-size:18px 19px;
	background-color: #646e84;
	border:1px solid #646e84;
	display: flex;
	justify-content: center;
	align-items: center;
	align-content: center;
	line-height: 1.2;
	padding:0.5rem 1.5rem;
	font-size: 2.4rem;
	color:#fff;
	font-weight: bold;
	padding-left:1em;
  border-radius: 7px;
}
.btn06 {
  width: 260px;
  height: 64px;
  background-color: #646e84;
  border: none;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  line-height: 1.2;
  padding: 0.5rem;
  font-size: 1.8rem;
  color: #fff;
  font-weight: bold;
  border-radius: 7px;
  cursor: pointer;
}
.confirm-btn .btn06.ar-l {
  background-color:#9eaabe;
}
.btn06.ar-l {
  background-image:url(../img/common/btn-l.svg);
  background-repeat:no-repeat;
  background-position: 15% center;
  background-size:18px;
}
.btn06.ar-r {
  background-image:url(../img/common/btn-r.svg);
  background-repeat:no-repeat;
  background-position: 90% center;
  background-size:18px;
}
.form-privacy {
  text-align: center;
}
.form-privacy-ttl {
  font-size:1.8rem;
  font-weight: bold;
}
.form-privacy-txt {
  font-size:14px;
  color:#ea005b;
}
.icn-key {
  max-width:43px;
  margin:0 auto;
}

/* confirm
----------------------------------------------- */
.confirm-read,
.thanks-read {
  margin:0 auto 6rem;
  text-align:center;
}
#form-list.confirm-list {
  margin:0;
}
.confirm-table,
.confirm-table th,
.confirm-table td {
  border-collapse: collapse;
}
.confirm-table th,
.confirm-table td {
  padding:1.1em 0;
  border-top:1px solid #d1d1d1;
}
.confirm-table tr:last-of-type th,
.confirm-table tr:last-of-type td {
  border-bottom:1px solid #d1d1d1;
}
.confirm-table th {
  text-align: right;
  width:30%;
  vertical-align: top;
}
.confirm-btn {
  display: flex;
  justify-content: space-between;
  margin: 8rem -1.5% 6rem;
}
.confirm-btn .btn06 {
  margin:0 1.5%;
}


/* thanks
----------------------------------------------- */
.thanks-txt {
  margin-bottom:4rem;
}
.thanks-txt span {
  font-size:2.8rem;
  padding-bottom:5px;
  font-weight:500;
  border-bottom:2px solid #575757;
}
.thanks-btn {
  margin:8rem auto;
  justify-content: center;
  text-align: center;
}
.thanks-btn .btn06.ar-l {
  background-position:8% center;
  padding-left:1em;
  margin:auto;
}

@media screen and (min-width: 751px) {
  .form-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .form-flex .form-radio {
    width:25%;
  }
  .form-flex .form-select {
    width:70%;
  }
  .confirm-table td {
    padding-left:2em;
  }
  #contact {
    padding-bottom:10rem;
  }
  .txt-l {
    font-size:2.1rem;
  }
  .txt-m {
    font-size:1.8rem;
  }
  .contact-read {
    margin:8rem 0 5rem;
  }
  .ttlB {
    font-size:3.8rem;
    text-align: center;
    line-height: 1;
    margin: 0;
  }
  
}

/* form */
@media screen and (max-width: 750px) {
  .form-btn input, .form-btn button, .form-btn .btn05 {
  	font-size: 1.6rem;
  }
  .form-area {
  	min-height: 45vh;
  }
  .mail-box p {
    text-align: left;
  }
  #form-list dt {
    font-size: 1.5rem;
  }
  form input[type="text"], form input[type="email"] {
    height: 48px;
  }
  .form-privacy-txt {
    font-size: 3vw;
  }
  .icn-key {
    max-width: 30px;
  }
  .accept-ttl {
    font-size:1.4rem;
  }
  .btn05 {
    width: 100%;
    height: calc(115/640*100vw);
  }
  .form-select {
    text-align: center;
  }
  .form-radio {
    justify-content: center;
    margin-bottom:1rem;
  }
  .confirm-table th {
    width:32%;
  }
  .confirm-table td {
    padding-left:1em;
  }
  .confirm-read .txt-m {
    font-size:14px;
    text-align: center;
  }
  .confirm-read {
    margin-bottom:4rem;
  }
  .btn06 {
    font-size:14px;
    height:54px;
  }
  .btn06.ar-l,
  .btn06.ar-r {
    background-size:13px;
  }
  .thanks-sub {
    text-align: left;
  }
  .thanks-txt span {
    font-size:2rem;
  }
  .txt-l {
    font-size:calc(33/640*100vw);
    margin-bottom:0;
  }
  .txt-m {
    font-size:calc(26/640*100vw);
  }
  .contact-area .en-ttl {
    margin-bottom:1.5rem;
  }
  #contact {
    padding:2rem 0 7rem;
  }
  .form-privacy * {
    line-height: 1.3;
  }
  .form-privacy-txt {
    font-size:calc(26/640*100vw);
  }
  .icn-key {
    margin-bottom:1rem;
  }
  .ttlB {
    font-size:calc(40/640*100vw);
    text-align: center;
    line-height: 1;
    margin: 0;
  }
  #heading {
    padding:6rem 0 2rem;
  }
  .confirm-read .txt-l {
    margin-bottom:1rem;
  }

}


