@charset "utf-8";
/* CSS Document */

/* ===================================================================
 Reset
=================================================================== */

*, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
html, body, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td {
 margin: 0; padding: 0; border: 0; font-weight: normal; font-size: 100%; vertical-align:baseline; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
article, header, footer, aside, figure, figcaption, nav, section { display:block; }
html { scroll-behavior:smooth; }
body { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
table { border-collapse: collapse; border-spacing: 0;}


/* ===================================================================
 Layout
=================================================================== */
html { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; }
*, :before, :after { -webkit-box-sizing:inherit; -moz-box-sizing:inherit; box-sizing:inherit; }

@font-face { font-family: "Yu Gothic M"; src: local("Yu Gothic Medium");}
@font-face { font-family: "Yu Gothic M"; src: local("Yu Gothic Bold"); font-weight: bold;}

body { background:#fff; padding:0; margin:0 auto; font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, sans-serif; color: #000; font-size:16px; line-height:1.5; letter-spacing: 0.05em; text-align: center;}

/* Chrome でのみフォントを太めに表示する */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  * { text-shadow: transparent 0 0 0, rgba(0, 0, 0, .7) 0 0 0 !important; }
}

/*--------------------------------------------------------------
5.0 Typography
--------------------------------------------------------------*/

h1, h2, h3, h4, h5, h6 { clear:both; line-height:1; }
h2, h3, h4, h5 { letter-spacing: 0.07em;}
p { margin:0 0 1em; padding:0; }
em,
i { font-style:italic; }
hr { background-color: #bbb; border: 0; height: 1px; margin-bottom: 1.5em;}
img { max-width:100%; height: auto; margin:0; padding:0; -ms-interpolation-mode: bicubic; border: 0; vertical-align: middle; }

embed,
iframe,
object { margin-bottom: 1.5em; max-width: 100%;}

li { list-style-type: none;}


/*--------------------------------------------------------------
 Links
--------------------------------------------------------------*/
a,
a:visited { color: #000; text-decoration: none;}
a:focus { }
a:hover,
a:active { text-decoration: underline; opacity:0.7; filter: alpha(opacity=70); -webkit-transition: all .3s; transition: all .3s; }

@media only screen and (min-width: 481px) {
    a.tel { text-decoration: none; color: #000;}
}
@media only screen and (max-width: 480px) {
    a.tel { text-decoration: underline; color: #000;}
}

/*--------------------------------------------------------------
 Flex
--------------------------------------------------------------*/

.flex { display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: justify; justify-content: space-between; }
.flex > *:last-child { margin-right: 0; }

.LtoR { -webkit-flex-direction: row; flex-direction: row;}
.RtoL { -webkit-flex-direction: row-reverse; flex-direction: row-reverse;}


section { clear: both; width: 1200px; margin: 0 auto; padding: 0;}
section:after { content:" "; display:block; clear:both;}

@media only screen and (max-width: 1200px) {
    section { width: 94%; }
}

#head { width: 100%; margin: 0 auto; padding: 10px 0; position: fixed; z-index: 9999; background-color: rgba(255,255,255,0.8); text-align: center; }
#head:after { content:" "; display:block; clear:both;}

#head .head-bg { max-width: 1200px; width: 94%; margin: 0 auto;}

#head h1 { float: left; width: 30.75%; text-align: left; }
#head .head-info { float: right; width: 50%; font-size: 17px; font-weight: bold; text-align: right; }
#head .head-info ul {}
#head .head-info ul li { float:left; width: 50%; }
#head .head-info ul li img { max-width: 100%;}

@media only screen and (min-width: 1200px) {
    #head { height: 110px; }
}

@media only screen and (min-width: 960px) {
    #head h1 { padding-top: 18px;}
    #head .head-info img.sp { display: none;}
}
@media only screen and (max-width: 959px) {
    #head h1 { padding-top: 0; width: calc(100% - 130px) ;}
    #head .head-info { width: 120px;}
    #head .head-info img.pc { display: none;}
}

#mv { position: relative; width: 100%; background: url("../images/mv_bg.png") repeat; text-align: center; margin: 0 auto; padding-top: 5.7%;}

@media only screen and (min-width: 641px) {
    #mv h2.pc { position: absolute; width: 100%; max-width: 1400px; top: 16%; left:0; right:0; margin: 0 auto; background: #FF6447; }
    #mv h2.pc img{ max-width: 90%; }
    #mv h2.sp { display: none;}
    #mv .flex .txt { width: 30.4%; padding: 15% 0 0 0;}
    #mv .flex .txt .sp { display: none;}
    #mv .flex .photo { width: 69.6%;}
    #mv .flex .txt .bt { padding-top: 8%;}
}

@media only screen and (max-width: 1200px) {
	#mv { padding-top: 14%;}
}

@media only screen and (max-width: 678px) {
	#mv { padding-top: 12%;}
}

@media only screen and (max-width: 640px) {
	#mv { padding-top: 8%;}
    #mv h2.sp { width: 100%; margin: 12% auto 0; background: #FF6447; }
    #mv h2.sp img{ max-width: 300px; margin: 0 auto;}
    #mv h2.pc { display: none;}
    #mv .flex .txt { width: 100%; margin: 0 auto; text-align: center;}
    #mv .flex .txt .pc { display: none;}
    #mv .flex .photo { width: 100%; margin: 0 auto; text-align: center;}
    #mv .flex .txt img,
    #mv .flex .photo img { max-width: 240px; margin: 0 auto;}
    #mv .flex .txt .bt { width:100%; padding: 15px 0;} 
    #mv .flex .txt .bt img{ width: 200px; margin: 0 auto;} 
}

#faq { padding: 50px 0 50px 0;}
#faq h3 { position: relative; display: inline-block; margin: 0 auto 30px auto; padding: 16px 10px; width: 100%; color: #fff; font-size: 36px; font-weight: bold; background: #00AC9A;}
#faq h3:before { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -15px; border: 15px solid transparent; border-top: 15px solid #00AC9A;}
#faq dl dt:before,
#faq dl dd:before{ font-size: 26px; }
#faq dl dt:before{ content:"Q. "; color: #2ECC71; margin-left: -1.4em;}
#faq dl dd:before{ content:"A. "; color:#FF511E; margin-left: -1.2em;}
#faq dl{ text-align: left;  }
#faq dl dt { font-size: 20px; }
#faq dl dd { font-size: 18px; margin-left: 0; margin-bottom: 0.7em; padding-bottom: 0.5em; border-bottom: 1px solid #AAA;}
#faq dl dt,
#faq dl dd { padding-left: 1.8em;}

@media only screen and (max-width: 960px) {
    #faq h3 {font-size: 26px;}
}


#merit { background: url("../images/mv_bg.png") repeat; padding: 30px 0;}
#merit h3 { font-size: 26px; font-weight: bold; position: relative; display: inline-block; padding: 0 55px; margin-top: 20px; margin-bottom: 30px;}
#merit h3:before, #merit h3:after { content: ''; position: absolute; top: 50%; display: inline-block; width: 45px; height: 3px; background-color: black;}
#merit h3:before { left:0;}
#merit h3:after { right:0;}

#merit .txt { width: 700px; padding-right: 50px; } 
#merit ul li { font-size: 19px; text-align: left; padding-left: 2em; margin-bottom: 0.8em;}
#merit ul li:before { font-family: "Font Awesome 5 Free"; content: '\f0a4'; font-weight: 400; color: #0091B8; font-size: 35px; margin-left: -1.2em; padding-right: 0.2em;}
#merit .photo { width: 500px; } 

@media only screen and (max-width: 1200px) {
    #merit .txt { width: 50%; } 
    #merit .photo { width: 41.7%; } 
}

@media only screen and (max-width: 959px) {
    #merit .txt { width: 100%; padding-right: 0px; } 
    #merit .photo { width: 100%;} 
}

#case { background: #FF6447; padding: 50px 0; }
#case h3 { font-size: 26px; color: #FFF; font-weight: bold; position: relative; display: inline-block; padding: 0 60px; margin-bottom: 50px; }
#case h3:before, #case h3:after { content: ''; position: absolute; top: 50%; display: inline-block; width: 45px; height: 3px; background-color: white;}
#case h3:before { left:0;}
#case h3:after { right:0;}

#case .case-box { min-height: 360px; background: #FFF; border-radius: 10px; padding: 0; margin-bottom: 50px;}
#case .case-box .photo { width: 12%; position: relative; margin:0 2.5%; }
#case .case-box .photo img { margin: 0 auto; position: absolute; top:-20px; left:0; right:0; }
#case .case-box .txt { width: 75%; padding: 40px 0 0 0; margin:0 6% 0 2%;}
#case .case-box .txt h4 { padding: 0 0 0.6em 0; margin-bottom: 1em; border-bottom: double 6px #0091B8; font-size: 26px; text-align: left;}
#case .case-box .txt img { margin-bottom: 1.2em;}
#case .case-box .txt p { text-align: left;}

@media only screen and (max-width: 480px) {
    #case { padding-bottom:30px; }
    #case .case-box { position: relative;}
    #case .case-box .photo { position: absolute; width: 60px; bottom: 140px; left: 0;}
    #case .case-box .txt h4 { font-size: 20px;}
    #case .case-box .txt { width: 100%; margin:0 3% 0 3%;}
    #case .case-box .txt p { margin-left:70px;}
}

#review { padding: 50px 0;}
#review section { width: 1000px;}
#review h4 { font-size: 23px; font-weight: bold; text-align: left; margin-bottom: 1em;}
#review p { font-size: 23px; text-align: left; line-height: 1.5;}
#review div div { width: 50%; display: flex;}
#review div div a { color: #fff; background: #000; border-radius: 10px; padding: 1em; display: block; width: fit-content; height: fit-content; margin: auto; position: relative;}
#review div div a:before { content: ""; position: absolute; top: 100%; left: 30%; margin-left: -15px; border: 15px solid transparent; border-top: 15px solid #000;}
#review div div a i { margin-right: 0.5em;}
#review div div p { margin: 0; display: flex; align-items: center; height: 100%;}
#review div div p:after { content: url("../images/mascot.png"); margin-left: 1em;}

@media (max-width: 1200px) {
    #review section { width: 94%;}
}

@media (max-width: 768px) {
    #review div.flex div { width: 100%; margin: 1em 0;}
    #review div div p { width: 100%; justify-content: center;}
}

#plan { padding: 50px 0;}
#plan section { padding:0 0 50px 0;}
#plan h3 { font-size: 26px; color: #000; font-weight: bold; position: relative; display: inline-block; padding: 0 60px; margin-bottom: 50px; }
#plan h3:before, #plan h3:after { content: ''; position: absolute; top: 50%; display: inline-block; width: 45px; height: 3px; background-color:#000;}
#plan h3:before { left:0;}
#plan h3:after { right:0;}

#plan .flex > * { width:50%; margin-bottom: 40px;}
#plan h4 { position: relative; display: inline-block; margin: 0 auto 50px auto; padding: 20px 10px; width: 100%; color: #fff; font-size: 36px; font-weight: bold; }
#plan h4:before { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -15px; border: 15px solid transparent; }
#plan .txt { padding-right: 30px;}
#plan p { text-align: left; margin-bottom: 1em; }
#plan .txt p strong { font-weight: bold; font-size: 20px;}
#plan .txt h5 { background: url("../images/mv_bg.png") repeat; font-size: 22px; text-align: left; padding: 0.5em; margin-bottom: 15px;}
#plan .txt ul li { text-align: left; margin-left: 1.3rem; text-indent: -1.3em; font-size: 18px;}
#plan .txt ul li:before { font-family: "Font Awesome 5 Free"; content: '\f0da'; font-weight: 900; color: #777; font-size: 23px; margin-right: .3em;}
#plan .good { }
#plan .good .box { border-radius: 10px; padding: 20px; }
#plan .good h5 { font-size: 20px; height: 74px; font-weight: bold; background: url("../images/mascot.png") no-repeat left top; display: inline-block; padding: 30px 60px 0 80px; margin-bottom: 15px;}
#plan .good p { text-align: left;}
#plan table { border-collapse: collapse; margin: 0 auto; padding: 0; width: 100%; font-size: 18px; table-layout: fixed;}
#plan table tr { padding: 0.5em; border-bottom: 3px solid #fff;}
#plan table th,
#plan table td { padding: 0.5em 0.5em 0.5em 0.5em; border-right: 3px solid #fff; text-align: left;}
#plan table thead tr { color:#fff;}
#plan table tbody th { color: #fff; font-weight: bold;}

#plan #plan01 h4 {background: #00AC9A;}
#plan #plan01 h4:before { border-top: 15px solid #00AC9A;}
#plan #plan01 .good .box { border: 5px solid #00AC9A;}
#plan #plan01 table tr { background-color: #E0F0EE; }
#plan #plan01 table th { background: #00AC9A; }
#plan #plan01 table thead tr { background-color: #E0F0EE;}
#plan #plan01 table tbody th { background: #00AC9A; }

#plan #plan02 h4 {background: #0091B8;}
#plan #plan02 h4:before { border-top: 15px solid #0091B8;}
#plan #plan02 .good .box { border: 5px solid #0091B8;}
#plan #plan02 table tr { background-color: #E5F4F8; }
#plan #plan02 table th { background: #0091B8;}
#plan #plan02 table thead tr { background-color: #E5F4F8;}
#plan #plan02 table tbody th { background: #0091B8; }

#plan #plan03 h4 {background: #BA3A3A;}
#plan #plan03 h4:before { border-top: 15px solid #BA3A3A;}
#plan #plan03 .good .box { border: 5px solid #BA3A3A;}
#plan #plan03 table tr { background-color: #F8EBEB; }
#plan #plan03 table th { background: #BA3A3A; text-align: center; font-weight: bold;}
#plan #plan03 table thead tr { background-color: #F8EBEB;}
#plan #plan03 table td { vertical-align: middle; }

@media screen and (min-width: 1200px) {
    #plan #plan01 table th,
    #plan #plan03 table th { white-space: nowrap; }
    }

@media only screen and (max-width: 959px) {
    #plan h4 { font-size: 26px; }
    #plan .flex > * { width:100%; margin-bottom: 40px;}
    #plan .txt { padding-right: 0;}
    #plan .good h5 { font-size: 20px; padding: 30px 0 0 75px; }
}

@media screen and (min-width: 641px) {
    #plan #plan02 table th { width: 260px;}
    #plan #plan01 table th, 
    #plan #plan03 table th.w {width: 15%;}
    }
    
@media screen and (max-width: 640px) {
    #plan { padding-bottom: 0;}
  #plan table { border: 0; width:100%; }
  #plan table th{ background-color: #167F92; display: block; border-right: none; width:100%; }
  #plan table thead {  border: none; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
  #plan table tr { display: block; margin-bottom: 5px; }
  #plan table td { border-bottom: 2px solid #fff; display: block; text-align: left; position: relative; padding: 5px; border-right: none; }
  #plan #plan01 table td { text-align: right; } 
  #plan #plan01 table td:before { content: attr(data-label); float: left; font-weight: bold; margin-right: 10px; color: #00AC9A; }
  #plan #plan03 table td { text-align: right; }  
  #plan #plan03 table td:before { content: attr(data-label); float: left; font-weight: bold; margin-right: 10px; color: #BA3A3A; }
  #plan table td:last-child { border-bottom: 0;}
  #plan table tbody th { color: #fff;}
}

#lawyer { background: #BA3A3A; text-align: center; padding: 60px 0;}
#lawyer h3 { font-size: 37px; color: #fff; font-weight: bold; position: relative; display: inline-block; padding: 0 80px; margin-bottom: 130px; letter-spacing: 0.1em; }
#lawyer h3:before, #lawyer h3:after { content: ''; position: absolute; top: 50%; display: inline-block; width: 60px; height: 5px; background-color:#fff;}
#lawyer h3:before { left:0;}
#lawyer h3:after { right:0;}
#lawyer .flex > * { background: #FFF; border-radius: 10px; width: 32%; margin-right: 1.3%; padding:267px 2.5% 0 2.5%;}
#lawyer .flex > *:last-child { margin-right: 0; }
#lawyer .lawyer-box { position: relative; }
#lawyer .lawyer-box img { position: absolute; top:-88px; left:0; right:0; margin: 0 auto;}
#lawyer .org { background: #000; width: 100%; border-radius: 20px; height: 40px; color: #fff; line-height: 40px;  margin-bottom: 1em;}
#lawyer .flex h4 { font-size: 22px; margin: 0 auto 0.5em auto;}
#lawyer .flex p { text-align: left; font-size: 15px;}

@media screen and (min-width: 1400px) {
    #lawyer h3 { max-width: 1400px; padding: 0 590px; }
    #lawyer h3:before, #lawyer h3:after { width: 550px; }
}

@media screen and (max-width: 959px) {
    #lawyer h3 { font-size: 26px; }
    #lawyer h3:before, #lawyer h3:after { height: 3px;}
    #lawyer .flex > * { width: 100%; max-width: 380px; margin:0 auto 100px auto; }
    #lawyer .flex > *:last-child { margin-right: auto; margin-bottom: 0; }
}

#office {padding: 50px 0 0;}
#office h3 { font-size: 26px; color: #000; font-weight: bold; position: relative; display: inline-block; padding: 0 80px; margin-bottom: 50px; letter-spacing: 0.1em; }
#office h3:before, #office h3:after { content: ''; position: absolute; top: 50%; display: inline-block; width: 45px; height: 3px; background-color:#000;}
#office h3:before { left:0;}
#office h3:after { right:0;}
#profile { margin-bottom: 30px;}
#profile .table-box { width: 75%;}
#profile .bt-box { width: 25%; text-align: right; }
#profile .bt-box img { margin: 0px 10px 0px 10px;}

@media screen and (max-width: 959px) {
    #profile .table-box { width: 100%;}
    #profile .bt-box { width: 100%; text-align: center;}
}

#profile table { border-collapse: collapse; margin: 0 auto; padding: 0; width: 100%; font-size: 18px; table-layout: fixed;}
#profile table tr { padding: 0.5em; border-bottom: 3px solid #fff; background-color: #EEE;}
#profile table th,
#profile table td { padding: 0.5em 0.5em 0.5em 0.5em; border-right: 3px solid #fff; text-align: left;}
#profile table th { background: #333; color: #fff;}
#profile table thead tr { color:#fff; background-color: #EEE;}
#profile table tbody th { color: #fff; font-weight: bold; background: #333;}

@media screen and (min-width: 641px) {
    #profile table th { width:200px; }
}

@media screen and (max-width: 640px) {
  #profile table { border: 0; width:100% }
  #profile table th{ display: block; border-right: none; width: 100%; }
  #profile table tr { display: block; margin-bottom: 5px; }
  #profile table td { border-bottom: 2px solid #fff; display: block; text-align: left; position: relative; padding: 5px; border-right: none; }
  #profile table td:last-child { border-bottom: 0;}
  #profile .bt-box img { margin: 10px 10px 0px 10px;}
}

#inside { padding-bottom: 30px;}
#inside.flex > * {width: 49.2%; margin-right: 1.6%;}
#inside.flex > *:last-child { margin-right: 0;}

#access .map { width: 67%;}
#access .map iframe { margin-bottom: 5px;}
#access .way { width: 33%; padding: 0 0 0 20px;}
#access dl { width: 100%; }
#access dl dt { display: block; position: relative;  text-align: left; margin:0 0 0.3em 0; padding-left: 1.3em; border-bottom: 1px solid #444; color: #444; font-size: 17px; font-weight: bold;}
#access dl dt.access-w:before { font-family: "Font Awesome 5 Free"; content: '\f554'; font-weight: 900; position: absolute; left: 0; }
#access dl dt.access-b:before { font-family: "Font Awesome 5 Free"; content: '\f207'; font-weight: 900; position: absolute; left: 0; }
#access dl dt.access-c:before { font-family: "Font Awesome 5 Free"; content: '\f1b9'; font-weight: 900; position: absolute; left: 0; }
#access dl dd { text-align: left; padding-bottom: 1em;}

@media screen and (max-width: 959px) {
    #access .map { width: 100%;}
    #access .map iframe { height: 300px;}
    #access .way { width: 100%; padding: 0;}
}

#payment { background: #deead6; margin: 0 auto; width: 100%; padding: 50px 0;}
#payment div { margin: 0px auto; width: 95%; max-width: 1200px; padding: 2em; border: 2px solid #000;}
#payment h4 { background: #deead6; width: fit-content; margin: -1.85em auto 1.5em; padding: 0 1em; font-size: 1.5em;}
#payment p { margin-bottom: 0; text-align: left; line-height: 1.75;}

@media screen and (max-width: 768px) {
	#payment div { padding: 1.5em 1em;}
	#payment h4 { padding: 0 0.5em; font-size: 1.25em; margin: -1.8em auto 1em;}
}
@media screen and (max-width: 640px) { 
	#payment h4 { font-size: 1.1em;}
}

#voice { background: #FF6447; padding: 50px 0;}
#voice h3 { position: relative; display: inline-block; margin: 0 auto 30px auto; padding: 16px 10px; width: 100%; max-width: 1200px; color: #0E1D3A; font-size: 36px; font-weight: bold; background: #fff;}
#voice h3:before { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -15px; border: 15px solid transparent; border-top: 15px solid #fff;}

#voice .flex { margin-bottom: 30px;}
#voice .LtoR {}
#voice .RtoL {}
#voice .man{ width: 16%; position: relative;}
#voice .man img { position:absolute; bottom: 0; left: 0; right: 0; margin: 0 auto;}
#voice .bln-r,
#voice .bln-l{ width: 80%; position: relative; display: inline-block; padding: 25px 15px 15px 35px; font-size: 16px; border-radius: 15px;}
#voice .bln-r{ margin: 0 15px 0 0; background: #F6E9DD; }
#voice .bln-l{ margin: 0 0 0 15px; background: #E4E1DE; }
#voice p { text-align: left;}
#voice .bln-r p::first-letter { color: #B83939; font-size: 175%;}
#voice .bln-l p::first-letter { color: #00468C; font-size: 175%;}

@media screen and (min-width:481px){
    #voice .bln-r:before{ content: ""; position: absolute; top: 65%; left: 100%; margin-top: -15px; border: 15px solid transparent; border-left: 15px solid #F6E9DD;}
    #voice .bln-l:before{  content: ""; position: absolute; top: 65%; left: -30px; margin-top: -15px; border: 15px solid transparent; border-right: 15px solid #E4E1DE;}
}

@media screen and (max-width:480px){
    #voice .man{ width: 100%; position: relative;}
    #voice .LtoR .man img { position:absolute; height: 105px; bottom: -20px; left: 0; margin: 0 0 0 68%; }
    #voice .RtoL .man img { position:absolute; height: 105px; bottom: -20px; right: 0; margin: 0; }
    #voice .bln-r,
    #voice .bln-l { width: 100%; margin:0 0 35px 0; padding-bottom: 32px;}
    #voice .bln-r:before { content: ""; position: absolute; top: 100%; left: 70%; margin-left: -15px; border: 15px solid transparent; border-top: 15px solid #F6E9DD;}
    #voice .bln-l:before { content: ""; position: absolute; top: 100%; left: 32%; margin-left: -15px; border: 15px solid transparent; border-top: 15px solid #E4E1DE;}
}

.contact { width: 100%; background: #333; text-align: center;}
.contact .photo { width: 38.25%; margin-left: 4.5%; }
.contact .txt { width: 57.25%; }
.contact .txt .s-txt { width: 50%;}
.contact .txt .s-txt img { margin-bottom: 10px; }
.contact .txt .s-txt p { color: #FFF; font-size: 20px; font-weight: bold; line-height: 1.3;}
.contact .txt .teladd { width:42%;}
.contact h3 { position: relative; padding: 0.5em; margin: 38px 0 38px 0; background: #fff; color:#00AC9A; font-size: 23px; font-weight: bold;}
.contact h3::before { position: absolute; content: ''; top: 100%; left: 0; border: none; border-bottom: solid 15px transparent; border-right: solid 20px #959E9B;}

@media screen and (min-width:1200px){
    .contact { height: 330px; }
}

@media screen and (max-width:1199px){
    .contact .txt .s-txt p br { display: none;}
    .contact .txt .s-txt p { font-size: 16px; }
}

@media screen and (max-width:960px){
    .contact .photo { width: 100%; margin: 0 auto; }
    .contact .txt { width: 100%; margin: 0 auto; }
    .contact h3 { font-size: 18px;}
    .contact .txt .teladd { margin-bottom: 15px;}
}

@media screen and (max-width:480px){
    .contact .txt .s-txt { width: 100%;}
    .contact .txt .teladd { width:100%;}
}

#faq h3 { width: auto; font-size: 26px; color: #000; font-weight: bold; position: relative; display: inline-block; padding: 0 80px; margin-bottom: 50px; letter-spacing: 0.1em; background: none; }
#faq h3:before { border: none;}
#faq h3:before, #faq h3:after { content: ''; position: absolute; top: 50%; display: inline-block; width: 45px; height: 3px; background-color:#000;}
#faq h3:before { left:0;}
#faq h3:after { right:0;}

#faq .faq { display:block; width:100%; margin:0 auto; padding-bottom: 20px; text-align:left; overflow:hidden;}
    /* チェックボックスは非表示にする（内部的な Off/On の機能だけ利用する） */
     #faq .faq input { display: none;}
    /* 開いた状態のサブメニュー */
     #faq .faq input:checked + p { line-height: 1.5; padding: 0 50px 10px 0 !important; }
    /* 閉じた状態のサブメニュー */
     #faq .faq p { overflow: hidden; line-height: 0; padding: 0 50px 0 0 !important; transition: 0.2s;
        /* 下記は開閉によらず共通の設定 */
        list-style: none; margin: 0 0 10px 0 !important;  border-bottom:1px dotted #666; }
    /* 親項目の装飾 */
     #faq .faq label { position:relative; display:block; padding:0 50px 10px 0; padding-left: 24px; text-indent: -24px;
    -webkit-transition: all 0.3s linear;
    -moz-transition: all 0.3s linear;
    -o-transition: all 0.3s linear;
    transition: all  0.3s linear; }
     #faq .faq label::before { content: 'Q. '; font-weight:bold; font-size:18px; color:#00AC9A; }
    
     #faq .faq label i { position:absolute; top:7px; right:10px;}
     #faq .faq label:hover { cursor:pointer;}




/* フッター------------------------------------------------ */
footer { background: url("../images/mv_bg.png") repeat; text-align: center; padding: 40px 0 15px 0;} 
footer ul { margin:0 auto 30px auto;}
footer ul li { display: inline-block; border-left: 1px solid #000; line-height: 1; padding: 0 2em;}
footer ul li:last-child { border-right: 1px solid #000; }
footer img { width: 295px;}
footer .copyright { font-size: 12px;}

@media screen and (max-width:640px){
    footer ul li { font-size: 14px; padding: 0 0.5em;}
    footer .copyright { font-size: 10px; letter-spacing: 0.02em;}
}

/* ページ先頭へ------------------------------------------------ */
#pagetop { position:fixed; bottom:6px; right:6px;}
#pagetop a { border:1px solid #fff; border-radius: 50%; background-color:rgba(0,145,184,0.7); width:46px; height:46px; line-height: 46px; text-align:center; display:block; font-size:25px; color:#fff; text-decoration:none; font-weight: bold;}
#pagetop a:hover { text-decoration:none; color:#fff; border:1px solid #fff;}

@media screen and (max-width:640px){
	#pagetop { display:none;}
	#pagetop a { display:none;}
}

/* スマホ表示------------------------------------------------ */
.sp_contact { display: none;}
@media only screen and (max-width: 768px) {
    .sp_contact { display: block; position: fixed; width: 100%;  bottom:0 ;border-top:1px solid #FFF; background: #034A91; }
    .sp_contact ul { background: #fff; display: flex; justify-content: center;}
    .sp_contact ul li { width: 49%;}
    .sp_contact ul li a { display: flex; color: #000; padding: 7px 5px; font-size: 13px; line-height: 1.2; text-decoration: none; font-weight: bold; text-align:center; margin: 3px; border: #FF6447 2px solid; border-radius: 6px; height: calc(100% - 6px); flex-wrap: wrap; justify-content: center; align-items: center; letter-spacing: 0.03em;}
	.sp_contact ul li a { font-size: 14px;}
	.sp_contact ul li a i { font-size: 14px; margin-right: 7.5px;}
	.sp_contact ul li:nth-child(2) a { border: none; background: #0091B8; color: #fff; font-size: 14px;}
	.sp_contact ul li:nth-child(2) a i { margin-right: 2px;}
 	.sp_contact ul li a span { font-size: 8px; font-weight: initial; display: block;}
	.sp_contact ul li a p { font-size: 12px; margin-bottom: 0; font-weight: bold; width: 100%; color: #ff0000;}
}

