/**------------------------**/
/*
reset.css
*/
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd {
  margin: 0;
}
ul[role="list"],
ol[role="list"] {
  list-style: none;
}
body {
  min-height: 100vh;
  line-height: 1.5;
}
h1,
h2,
h3,
h4,
button,
input,
label {
  line-height: 1.1;
}
h1,
h2,
h3,
h4 {
  text-wrap: unset;
}
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

input,
button,
textarea,
select {
  font: inherit;
}
textarea:not([rows]) {
  min-height: 10em;
}
:target {
  scroll-margin-block: 5ex;
}

a {
  text-decoration: none;
  color: inherit;
}
ul {
  padding: 0;
  margin: 0;
}
li {
  list-style: none;
}
table {
  border-collapse: collapse;
}
/*------------
基本設定
--------------*/
body {
  line-height: 1.5;
  font-size: 30px;
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
}
:root{
  --main-color:#cc0000;
  --accent-color:#ffdb00;
}
.pc {
  display: block;
}
.mobi {
  display: none;
}
.serif {
  font-family: "Noto Serif JP", serif;
}
.wrapper {
  width: 100%;
  max-width: 750px;
  margin: auto;
  position: relative;
  overflow: hidden;
}
.page-wrap{
  margin-top: 78px;
}
.container {
  margin: 0 auto;
  width: 95%;
}
.bold {
  font-weight: bold;
}
.y-line{
  background: linear-gradient(transparent 60%, #edcb05 60%);
}
.title {
  background: url(images/title-bg.png);
  color: #fff;
  font-size: 36px;
  text-align: center;
  padding: 25px 0;
  margin-bottom: 30px;
  line-height: 1.3;
}

h1{
	font-size:unset;
	line-height:1.5;
}

/*------------
header
--------------*/
header {
  position: relative;
  width: 100%;
  max-width: 750px;
}
.header-wrap {
  width: 100%;
  max-width: 750px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  top: 0;
  background: #fff;
  padding: 5px;
  box-sizing: border-box;
  z-index: 99;
}

.header-wrap .logo {
  font-size: 30px;
  font-weight: bold;
}
.header-wrap .logo span {
  display: block;
  font-size: 0.5em;
}
.hamburger {
  width: 50px;
  height: 30px;
  position: relative;
  cursor: pointer;
  z-index: 999;
}
.hamburger span {
  width: 90%;
  height: 6px;
  display: block;
  background: #000;
  position: absolute;
  border-radius: 5px;
  transition: all ease 0.3s;
}
.hamburger span:first-of-type {
  top: 0;
}
.hamburger span:nth-of-type(2) {
  top: 50%;
  transform: translateY(-50%);
}
.hamburger span:last-of-type {
  bottom: 0;
}

.hamburger span:first-of-type.active {
  top: 12px;
  transform: rotate(45deg);
}
.hamburger span:nth-of-type(2).active {
  opacity: 0;
}
.hamburger span:last-of-type.active {
  bottom: 12px;
  transform: rotate(-45deg);
}
.header-nav {
  position: fixed;
  width: 100%;
  max-width: 750px;
  height: auto;
  z-index: 99;
  box-sizing: border-box;
  transition: all ease 0.3s;
  top: 110px;
  left: 100%;
  background: #222;
}
.header-nav.active {
  left: 50%;
  transform: translateX(-50%);
}
.header-nav li {
  text-align: left;
  color: #222;
}
.header-nav li a {
  padding: 15px 20px;
  display: block;
  width: 100%;
  font-size: 20px;
	font-weight:bold;
  border-bottom: 1px solid #fff;
	color:#fff;
}
.header-nav li:last-of-type a{
	border-bottom:none;
}
.header-buttons{
  display: flex;
  justify-content: flex-end;
  align-items: center;
  column-gap: 20px;
}
.header-button-contact{
  background: #edcb05;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  width: 125px;
  padding: 5px;
  border-radius: 5px;
}
.header-button-contact span{
  background: #fff;
  display: block;
  padding: 0 5px;
  width: max-content;
  font-size: 22px;
  margin: auto;
  border-radius: 5px;
}
.header-button-contact p{
  font-size: 28px;
  color: #fff;
  text-align: center;
  text-shadow: rgb(0, 0, 0) 2px 0px 0px, rgb(0, 0, 0) 1.75517px 0.958851px 0px, rgb(0, 0, 0) 1.0806px 1.68294px 0px, rgb(0, 0, 0) 0.141474px 1.99499px 0px, rgb(0, 0, 0) -0.832294px 1.81859px 0px, rgb(0, 0, 0) -1.60229px 1.19694px 0px, rgb(0, 0, 0) -1.97998px 0.28224px 0px, rgb(0, 0, 0) -1.87291px -0.701566px 0px, rgb(0, 0, 0) -1.30729px -1.5136px 0px, rgb(0, 0, 0) -0.421592px -1.95506px 0px, rgb(0, 0, 0) 0.567324px -1.91785px 0px, rgb(0, 0, 0) 1.41734px -1.41108px 0px, rgb(0, 0, 0) 1.92034px -0.558831px 0px;
}
.header-button-contact img{
  width: 16px;
  aspect-ratio: 16/14;
  display: block;
}
/*------------
top
--------------*/
.kv {
  margin-top: 78px;
}
.kv img{
  width: 100%;
  display: block;
}
/*------------
お悩み
--------------*/
.onayami{
  background: url(images/onayami-bg.png) no-repeat;
  background-position: bottom center;
  background-size: 100%;
  padding: 0 0 70px;
}
.onayami h2{
  font-size: 32px;
}
.onayami h2 span{
  color: var(--accent-color);
}
.onayami img{
  margin: auto;
  display: block;
}
.onayami li{
  padding-left: 60px;
  font-size: 30px;
  position: relative;
  margin-bottom: 20px;
}
.onayami li::before{
  content: "";
  position: absolute;
  left: 0;
  width: 48px;
  aspect-ratio: 48/46;
  background: url(images/checkbox.png) no-repeat;
  background-size: cover;
}
.onayami li span{
  color: var(--main-color);
  font-weight: bold;
}
.onayami-txt {
  margin: 80px 0 0;
  text-align: center;
  font-weight: bold;
}
.onayami-txt p:first-of-type {
  color: #fff;
  background: #222222;
  font-size: 40px;
  width: max-content;
  padding: 5px 50px;
  margin: auto;
}
.onayami-txt p:last-of-type {
  color: #222222;
  font-size: 75px;
}
/*------------
メリット
--------------*/
.merit{
  background: var(--main-color);
}
.merit h2{
  background: url(images/merit-title-bg.png) no-repeat;
  background-size: 100% 100%;
  width: max-content;
  margin: 0 auto 30px;
  padding: 30px 50px 20px;
  position: relative;
  font-size: 48px;
  color: var(--accent-color);

}
.merit h2::before{
  content: "";
  position: absolute;
  background: url(images/merit-ttl-stars.png) no-repeat;
  background-size: cover;
  top: 5px;
  left: 50%;
  transform: translateX(-50%);
  width: 57px;
  aspect-ratio: 57/24;
}
.merit ul:first-of-type li{
  text-align: center;
  border-radius: 10px;
  font-size: 36px;
  font-weight: bold;
  margin-bottom: 20px;
  background: #fff;
  padding: 20px 10px 20px 60px;
  border: 2px solid #000;
  position: relative;
}
.merit ul:first-of-type li::before{
  content: "";
  position: absolute;
  left: 40px;
  top: 50%;
  transform: translateY(-50%);
  background: url(images/merit-check.png) no-repeat;
  background-size: cover;
  aspect-ratio: 11/10;
  width: 66px;
}
.merit ul:last-of-type{
  background: #fff;
  padding: 20px;
}
.merit ul:last-of-type li{
  font-size: 32px;
  padding-left: 70px;
  position: relative;
}
.merit ul:last-of-type li:not(:last-of-type){
  margin-bottom: 10px;
}
.merit ul:last-of-type li span{
  font-weight: bold;
}
.merit ul:last-of-type li::before{
  content: "";
  position: absolute;
  left: 0;
  background: url(images/check-red.png) no-repeat;
  background-size: cover;
  aspect-ratio: 24/23;
  width: 48px;
}
.merit-txt {
  margin-top: 40px;
  padding: 70px 0;
  background-color: #fff;
  background-image: url(images/onayami-bg.png);
  background-position: bottom;
  background-size: 100%;
  background-repeat: no-repeat;
}
.merit-txt p {
  width: 95%;
  margin: auto;
  text-align: center;
}
.merit-txt p:first-of-type {
  font-size: 50px;
  color: #fff;
  background: #222;
  padding: 20px;
  margin: 0 auto 40px;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  width: max-content;
}
.merit-txt p:last-of-type {
  font-size: 40px;
  color: #222;
  font-weight: bold;
}
.merit-txt p:last-of-type > span {
  font-size: 55px;
}
.merit-txt p:last-of-type .big {
  font-size: 70px;
}
/*------------
about
--------------*/
.about{
  padding: 0 0 60px;
  background-image: linear-gradient(90deg, rgba(222, 222, 222, 1), rgba(255, 255, 255, 1) 56%);
}
.about h2{
  position: relative;
  font-size: 42px;
}
.about h2::before{
  content: "";
  position: absolute;
  background: url(images/fether1.png) no-repeat;
  background-size: cover;
  aspect-ratio: 19/46;
  width: 57px;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
}
.about h2::after{
  content: "";
  position: absolute;
  background: url(images/fether2.png) no-repeat;
  background-size: cover;
  aspect-ratio: 19/46;
  width: 57px;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}

.about-txt span{
  color: var(--main-color);
  font-weight: bold;
}
.about-txt .box {
  border: 1px dashed #000;
  padding: 10px 15px;
  margin-bottom: 0;
  background: #fff;
  padding: 10px;
  margin-top: 40px;
}
/*------------
profile
--------------*/
.profile{
  background-image: linear-gradient(90deg, rgba(222, 222, 222, 1), rgba(255, 255, 255, 1) 56%);
}
.profile-con{
  background: #fff;
  padding: 20px 50px;
  box-shadow: 0 0 3px rgb(0 0 0 / 0.3);
  border-radius: 8px;
  margin-bottom: 50px;
}
.profile-txt{
  margin-top: 20px;
  font-size: 24px;
}
.profile-inner{
  display: flex;
  justify-content: flex-start;
  align-items: center;
  column-gap: 20px;
  font-size: 34px;
  font-weight: bold;
  border-bottom: 5px solid #333333;
  padding: 0 20px;
}
.profile-inner p{
  font-size: 34px;
}
.profile-inner p span{
  background: #000;
  color: #fff;
  padding: 0 5px;
  margin-right: 10px;
}
.profile-inner .small{
  font-size: 32px;
}
.company-table{
	margin: 0 auto 30px;
}
.company-table table{
  width: 100%;
}
.company-table tr:first-of-type th{
  background: none;
  color: #000;
  border: none;
  text-align: left;
  padding: 10px 0;
}
.company-table th {
  font-weight: 400;
  background: #222;
  color: #fff;
  border: 1px solid #fff;
  padding: 10px 20px;
  font-size: 28px;
  width: 25%;
}
.company-table td {
  border: 1px solid #222;
  padding: 10px 20px;
  background: #fff;
  font-size: 28px;
  width: 75%;
}
.company-table iframe{
  width: 100%;
  margin-top: 50px;
}
/*------------
reason
--------------*/
.reason h2{
  font-size: 60px;
  padding-left: 40px;
  position: relative;
}
.reason h2::before{
  content: "";
  position: absolute;
  background: url(images/crown.png) no-repeat;
  background-size: cover;
  width: 74px;
  height: auto;
  aspect-ratio: 74/63;
  left: 25px;
  top: 50%;
  transform: translateY(-50%);
}
.reason h2 .small{
  font-size: 32px;
  display: block;
}
.reason h2 span:not([class]){
  color: var(--accent-color);
}
.reason-con-inner{
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 50px 50px 60px;
  position: relative;
}
.reason-con-inner .img{
  position: absolute;
}
.reason-con:first-of-type .img{
  right: 80px;
  bottom: -50px;
}
.reason-con:nth-of-type(2) .img{
  right: 30px;
  bottom: -50px;
}
.reason-con:last-of-type .img{
  right: 20px;
}
.reason-con-txt{
  background: var(--main-color);
  padding: 50px 50px 30px;
}
.reason-con-txt dt{
  color: #fff;
  font-size: 36px;
  padding: 0 0 10px;
  border-bottom: 5px solid #fff;
  font-weight: bold;
}
.reason-con-txt dd{
  font-size: 32px;
  background: #fff;
  margin-top: 20px;
  padding: 20px;
  border-radius: 10px;
}
.reason-con-txt dd span{
  color: var(--main-color);
  font-weight: bold;
}
/*------------
text block
--------------*/
.text-block-ttl img{
  margin: 30px auto;
  display: block;
}
.text-block h2{
  background: #222222;
  color: #fff;
  text-align: center;
  padding: 10px 20px;
}
.text-block-inner p{
  font-size: 32px;
  padding: 0 50px;
  margin: 30px 0;
}
.text-block-inner .border{
  font-size: 28px;
  padding: 30px;
  border: 1px dashed #222;
  margin-bottom: 50px;
}

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

--------------*/
.reassure-area-bg{
  background: url(images/reassure-bg.png) no-repeat;
  background-size: cover;
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 375/373;
  width: 100%;
}
.reassure-area-bg-inner p{
  color: #fff;
  font-size: 36px;
  margin-bottom: 10px;
}
.reassure-area-bg-inner span{
  color: #000;
  background: var(--accent-color);
  font-size: 48px;
  padding: 0 10px;
  font-weight: bold;
}
.reassure-area-txt p{
  font-size: 32px;
  text-align: center;
  margin-top: 40px;
}
.reassure-area-txt p:last-of-type{
  background: var(--accent-color);
  border-radius: 10px;
  padding: 20px 10px;
  font-weight: bold;
  position: relative;
}
.reassure-area-txt p:last-of-type::before{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -23px;
  transform: translateX(-50%);
  border-style: solid;
  border-right: 11px solid transparent;
  border-left: 11px solid transparent;
  border-top: 23px solid var(--accent-color);
  border-bottom: 0;
}
.reassure-area-txt img{
  margin: 30px auto;
  display: block;
}
/*------------
case
--------------*/
.case h2 span{
  background: #fff;
  border-radius: 50px;
  color: #222;
  padding: 5px 40px;
}
.case-content{
  border: 3px solid #222;
  padding: 0 30px 30px;
  box-sizing: border-box;
  margin-bottom: 30px;
}
.case-content-ttl{
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 30px;
}
.case-content-ttl img{
  margin-right: 20px;
}
.case-content-ttl span{
  font-size: 34px;
  color: #fff;
  background: #222;
  font-weight: bold;
  width: 134px;
  height: auto;
  aspect-ratio: 1/1;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 20px;
}
.case-content-txt p{
  font-size: 32px;
  margin-bottom: 20px;
}
.case-content-txt p:first-of-type{
  font-size: 36px;
  color: var(--main-color);
  font-weight: bold;
}
.case-content-txt p:last-of-type{
  margin: 50px 0 0;
  background: #fdffd1;
  padding: 20px;
  font-size: 28px;
}
.case-content-txt p:last-of-type span{
  font-weight: bold;
}
/*------------
大切なお知らせとお願い
--------------*/
.text-block.notice h2{
  font-size: 32px;
  width: max-content;
  margin: auto;
}
.text-block.notice .text-block-ttl img{
  margin: 20px auto;
}
.text-block.notice .text-block-inner p{
  font-size: 30px;
}
.text-block.notice .text-block-inner span{
  font-weight: bold;
}
.text-block.notice .text-block-inner .color{
  color: var(--main-color);
}
/*------------
cta
--------------*/
.cta{
  text-align: center;
  background: url(images/cta-back.png) no-repeat;
  background-size: 100% 100%;
  padding: 100px 25px 50px;
  width: calc(100% - 100px);
  margin: auto;
}
.cta .serif{
  font-size: 48px;
  font-weight: bold;
  margin-bottom: 20px;
}
.cta .serif span{
  color: var(--accent-color);
  background: #222;
  margin: 0 5px;
}
.cta a{
  background: #fdffd1;
  display: block;
  padding: 10px;
  margin-bottom: 30px;
}
.cta a .tel{
  font-size: 65px;
  display: block;
  padding-left: 70px;
  position: relative;
  font-weight: bold;
  width: max-content;
  margin: auto;
  line-height: 1;
}
.cta a .tel::before{
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  background: url(images/cta-tel-icon.png) no-repeat;
  background-size: cover;
  width: 56px;
  aspect-ratio: 56/55;
  height: auto;
}
.cta a .time{
  font-size: 30px;
}
.cta p{
  font-weight: bold;
}
/*------------
料金プラン
--------------*/
.fee h3{
  font-size: 32px;
  text-align: center;
  margin-bottom: 30px;
}
.fee table{
  border-collapse: collapse;
  width: calc(100% - 100px);
  margin: 0 auto 50px;
}
.fee table th{
  border: 1px solid #222;
  background: var(--accent-color);
  padding: 5px 10px;
}
.fee table th:first-of-type{
  background: #f5efcd;
}
.fee table td{
  border: 1px solid #222;
  background: #fff;
  padding: 5px 10px;
  text-align: center;
}
.fee table td:first-of-type{
  background: #b8c9cc;
}
.fee table:last-of-type th{
  background: var(--accent-color);
}
.fee table:last-of-type td{
  background: #fff;
}
.fee .text-block h2{
  width: max-content;
  font-size: 36px;
  margin: auto;
}
.fee .text-block-inner span{
  font-weight: bold;
}
.fee .text-block-inner p:last-of-type{
  font-size: 28px;
}
/*------------

--------------*/
.list-block{
  background: var(--main-color);
  padding: 50px;
}
.list-block li{
  position: relative;
  border: 1px solid #222;
  border-radius: 10px;
  background: #fff;
  padding: 20px 10px 20px 100px;
  font-weight: bold;
}
.list-block li:not(:last-of-type){
  margin-bottom: 20px;
}
.list-block li::before{
  content: "";
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  background: url(images/merit-check.png) no-repeat;
  background-size: cover;
  aspect-ratio: 11/10;
  width: 66px;
}
/*------------
ご相談の流れ
--------------*/
.flow ul{
  margin: 0 50px;
}
.flow li{
  display: flex;
  justify-content: flex-start;
  align-items: center;
  background: #f4f4f4;
  margin-bottom: 30px;
  border-radius: 10px;
}
.flow .num{
  clip-path: polygon(0 0, 58% 0, 100% 100%, 0% 100%);
  display: block;
  background: var(--main-color);
  width: 133px;
  height: auto;
  aspect-ratio: 122/148;
  border-radius: 10px 0 0 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 72px;
  font-weight: bold;
  color: #fff;
}
.flow-img{
  width: 35%;
}
.flow-img img{
  margin: auto;
  display: block;
}
.flow li:last-of-type .flow-img,
.flow li:nth-of-type(4) .flow-img{
  align-self: flex-end;
}
.flow p{
  font-size: 36px;
  font-weight: bold;
}
/*------------
footer
--------------*/
.footer-wrap{
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #222;
  padding: 20px;
  color: #fff;
}
.footer-txt p{
  margin-bottom: 20px;
  font-weight: bold;
}
.footer-txt span{
  font-size: 20px;
}
.footer-txt span.tx-s{
  font-size: 16px;
}
.footer-nav{
  width: 40%;
}
.footer-nav li{
  font-size: 22px;
  border-bottom: 1px solid #fff;
  padding: 10px 20px;
}
.footer-nav li:last-of-type{
  border-bottom: 0;
}
/*------------
page
--------------*/
.page-wrap h1{
  margin: 50px auto;
  font-size: 45px;
}
.page-content h2{
  font-size: 40px;
}
.page-content h3{
  font-size: 35px;
}
.page-content h4{
  font-size: 30px;
}
.page-content p{
  font-size: 28px;
	margin-bottom:30px;
}
.page-content{
  margin: 50px auto;
}
/*------------
contact
--------------*/
#contact h2{
  margin: 0;
}
.contact-wrap{
  padding: 30px 20px 20px;
	background: #f5efcd;
}
.required{
  color: #fff;
  background: #ff1209;
  font-size: .6em;
  padding: 0 5px;
  margin-left: 10px;
  border-radius: 5px;
}
.contact-wrap table{
  border-collapse: collapse;
	width: 100%;
}
.contact-wrap th,
.contact-wrap td{
  display: block;
  text-align: left;
}
.contact-wrap th{
  padding-bottom: 10px;
}
.contact-wrap td{
  padding-bottom: 30px;
}
.contact-wrap td input[type="text"],
.contact-wrap td input[type="email"],
.contact-wrap td textarea{
  width: 100%;
	border: 1px solid #ccc;
	padding:5px;
}
.contact-wrap td textarea{
  height: 200px;
}
.contact-check{
  text-align: center;
	margin: 0 auto 30px;
}
.contact-check input[type="text"]{
  width: 60px;
  height: 50px;
	border: 1px solid #ccc;
	padding: 5px;
	font-size:22px;
}
.contact-wrap .submit{
  width: 280px;
  padding: 10px 20px;
  border: none;
  text-align: center;
  display: block;
  margin: auto;
  border-radius: 5px;
	background: var(--accent-color);
	font-weight: bold;
	cursor:pointer;
}

.contact-wrap .optional {
    font-size: .6em;
    color: #fff;
    background: #555;
    padding: 0 5px;
    margin-left: 10px;
    border-radius: 5px;
}

.contact-wrap input[name="text-postnum"] {
    margin-bottom: 10px;
    width: 40% !important;
}

.thanks p{
	font-size:20px;
	line-height:1.7;
}
