:root {
    --w_max: 1220px;
    --color_default: #333;
}
body{margin:0px;}
body,
th,
td {
    font-size: 16px;
    line-height: 1.8;
    color: var(--color_default);
}

img {
    max-width: 100%;
    height: auto;
    vertical-align:top;
}
/*ボタン*/
.btn_01 {
    background: linear-gradient(0deg, rgba(0, 84, 176, 1) 0%, rgba(0, 149, 199, 1) 99.32%);
    border-style: Solid;
    border-color: #006D9A;
    border-color: rgba(0, 109, 154, 1);
    border-width: 1px;
    border-radius: 8px;
    text-align: center;

    color: #fff;
}

.btn_01 a {
    padding: 5px 20px;
    color: #fff;
    text-decoration: none;
    display: block;
}

.btn_02 {
    background: linear-gradient(0deg, rgba(238, 238, 238, 1) 32.65%, rgba(255, 255, 255, 1) 100%);
    border-style: Solid;
    border-color: #CCCCCC;
    border-color: rgba(204, 204, 204, 1);
    border-width: 1px;
    border-radius: 8px;
    text-align: center;

    color: #fff;
}

.btn_02 a {
    padding: 5px 20px;
    color: var(--color_default);
    text-decoration: none;
    display: block;
}

/*H2*/
.ttl_01{
    font-family : "Noto Serif JP";
    font-weight : bold;
    font-size : 40px;
    margin:0px auto 40px auto;
    text-align: center;
}

.ttl_01 span{
    position:relative;
    font-family : "Noto Sans JP";
    font-size : 80%;
        font-weight: 100;
    display: block;
    color : #1A90CC;
}
.ttl_01 span::before{
    content:"";
    position: absolute;
    top:0px;
    left:50%;
    transform: translateX(-50%);
    width: 180px;
    height:1px;
    background-color: var(--color_default);
}
/*H2*/
.ttl_02{
    font-size : 32px;
    line-height:1.5;
    font-weight : bold;
    color : #005EAB;
    margin:0px auto 40px auto;
    text-align: left;
}
/*============================================================
ヘッダー
============================================================*/

header#hd {
    width: calc(100% - 20px);
    max-width: calc(var(--w_max));
    margin: 30px auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
}

#logo {
    width: 260px;
    margin: 0px;
    line-height:1;
}

#nav_singup {
    margin: 0px;
}

#nav_singup ul {
    margin: 0px;
    padding: 0px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
}

#nav_singup ul li {
    margin: 0px;
    padding: 0px;
    list-style-type: none;
}

#nav_singup ul li+li {
    margin-left: 20px;
}



/*============================================================
スライダー
============================================================*/
#slider_index {
    width: calc(100% - 20px);
    max-width: calc(var(--w_max));
    margin: 0px auto;
    position: relative;
    aspect-ratio: 1200/400;
}
#slider_index .wrap_index_bnr{
    top:0px;
    left:0px;
    position: absolute;
}
#slider_index .wrap_cities{
position: absolute;
left:calc((2222.5 - 1585) / 1200 * 100%);
top:calc((1225 - 1195) / 400 * 100%);
max-width:193.5px;
max-height:315px;
width:calc(193.5 / 1200 * 100%);
height:calc(315 / 400 * 100%);
filter: blur(1px);
}

.wrap_cities circle{
    opacity:0;
}

#slider_index .wrap_city_lines{
    position: absolute;
    left:calc((2228.5 - 1585) / 1200 * 100%);
    top:calc((1203.5202 - 1195) / 400 * 100%);
    top:2.13%;
    max-width:183px;
    max-height:330.6023px;
    width:calc(183 / 1200 * 100%);
    height:calc(330.6023 / 400 * 100%);
}
#slider_index .wrap_city_lines svg{
    width: 100%;
}
#slider_index .wrap_city_lines path {
    fill: none;
    stroke: #ffffae;
    stroke-width: 2px;
    stroke-dasharray: 1180px;
    stroke-dashoffset: 1300px;
}
/*SP*/
#slider_index_sp {
    width: calc(100%);
    max-width: calc(var(--w_max));
    margin: 0px auto;
    position: relative;
    aspect-ratio: 750/400;
}
#slider_index .wrap_index_bnr{
    top:0px;
    left:0px;
    position: absolute;
}
#slider_index_sp .wrap_city_lines{
    position: absolute;
    left:calc((2228.5 - 1585) / 1200 * 100%);
    top:calc((1203.5202 - 1195) / 400 * 100%);
    top:2.13%;
    max-width:183px;
    max-height:330.6023px;
    width:calc(183 / 1200 * 100%);
    height:calc(330.6023 / 400 * 100%);
}
#slider_index_sp .wrap_city_lines svg{
    width: 100%;
}
#slider_index_sp .wrap_city_lines path {
    fill: none;
    stroke: #ffffae;
    stroke-width: 2px;
    stroke-dasharray: 1180px;
    stroke-dashoffset: 1300px;
}





#slider_index_sp {
    display:none;
}
/*============================================================
スペシャリスト一覧
============================================================*/
#wrap_specialists_all {
    margin: 60px auto 60px auto;
    width: calc(100% - 20px);
    max-width: calc(var(--w_max));
}
#wrap_specialists_all >section{
    margin:0px auto;
    display:flex;
    flex-wrap:wrap;
    justify-content: space-between;
}
/*広告*/
#wrap_specialists_all >section>div{
    width: calc(100% / 4 * 1 - 40px);
    background-color: #d9d9d9;
}


#wrap_specialists_all >section>section{
    width: calc(100% / 4 * 3 - 40px);
    max-width:calc(var(--w_max));
    margin:0px auto;
    display:flex;
    flex-wrap:wrap;
    justify-content: space-between;
}
#wrap_specialists_all >section>section >section{
    width: calc(100% / 3 - 40px);
    margin: 0px auto 60px auto;
display: flex;
flex-direction: column;
}
#wrap_specialists_all h3{
    font-size : 20px;
    color : #005EAB;
    margin:20px 0px;
    flex-grow: 2;
    line-height:1.5;
}
#wrap_specialists_all h3 a{
    color : #005EAB;
    text-decoration: none;
}
#wrap_specialists_all p{
    margin:0px;
}
#wrap_specialists_all h3+section{
    flex-grow: 1;
}
#wrap_specialists_all >section>section  img{
    border:solid 1px #aaa;
}
#wrap_specialists_all .btn_01, #wrap_specialists_all .btn_02{
 width:140px;   
 margin: 5px auto;
}

/*============================================================
ひとつなぎとは
============================================================*/
#wrap_about {
    margin:60px auto 120px auto;
    width: calc(100%);
}
#wrap_about>section {
    width: calc(100%);
    background-color : #C4E3E3;
    padding:90px 0px;
    position: relative;
}
#wrap_about>section::after {
content: "";
border-right: 46vw solid transparent;
border-top: 50px solid #C4E3E3;
border-left: 46vw solid transparent;
position: absolute;
bottom: -50px;
left: 50%;
transform: translateX(-50%);
}
#wrap_about>section>section {
    width: calc(100% - 20px);
    max-width: calc(var(--w_max));
    margin: 0px auto;
    display:flex;
    flex-wrap:wrap;
    justify-content: space-between;
}
#wrap_about>section>section+section {
    margin-top:90px;
    flex-direction: row-reverse;
}
#wrap_about>section>section>section {
    width: calc(100% / 2 - 40px);
}
#wrap_about>section>section>div {
    width: calc(100% / 2 - 40px);
}

/*============================================================
他との違い
============================================================*/
#wrap_features {
    margin: 150px auto 120px auto;
    width: calc(100%);
}
#wrap_features>section {
    width: calc(100% - 20px);
    max-width:calc(var(--w_max));
    margin:0px auto;
    display:flex;
    flex-wrap:wrap;
    justify-content: space-between;
}
#wrap_features>section>section {
    width: calc(100% / 2 - 40px);
    margin: 0px auto;
   
}

#wrap_features>section>section>section {
}
#wrap_features>section>section>div {
    width: calc(100%);
    margin:0px auto 40px 0px;
}
#wrap_features>section>section>section h3{
    text-align: center;
} 
#wrap_features>section>section>section p:nth-of-type(1){
    margin-top:0px;
}

/*============================================================
お問い合わせ・ログイン
============================================================*/
#wrap_signup {
    margin: 120px auto;
    width: calc(100%);
}
#btn_signup_signup{
background: linear-gradient(0deg, rgba(0, 84, 176, 1) 0%, rgba(0, 149, 199, 1) 99.32%);
border-style: Solid;
border-color: #006D9A;
border-color: rgba(0, 109, 154, 1);
border-width: 1px;
border-radius: 20px;
text-align: center;
color: #fff;
font-size:40px;
width:calc(100% - 80px);
max-width:600px;
margin:0px auto;
}

#btn_signup_signup a{
padding: 30px 20px;
color: #fff;
text-decoration: none;
display: block;
}
#wrap_signup >section p{
    text-align: center;
    font-size:20px;
}
/*============================================================
ログイン（ダミー）
============================================================*/
#wrap_login{
    display:none;
    position: fixed;
    width:80%;
    margin:auto;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    background-color: #fff;
    padding:20px;
    max-width:400px;
    border:solid 1px #eee;
    box-shadow:0px 0px 10px 0px rgb(0,0,0,0.2);
}
#wrap_login h2.ttl_02{
    margin:10px auto;
    text-align: center;
}
#wrap_login table td{
    padding:10px;
   
}
#wrap_login div{
    max-width:240px;
    margin:20px auto;
}
#wrap_login input{
    font-size: 14px;
}
/*============================================================
フッター
============================================================*/
#ft{
    margin:120px 0px 0px 0px;
    padding:10px 0px;
    width:100%;
    color:#fff;
    text-align: center;
    position: relative;
    background-color: #1A6FB5;
}
#ft p{
    text-align: center;
    width: var(--w_max);
    margin:10px auto;
    max-width:100%;
}
#ft address{
    font-style: normal;
    position: relative;
    text-align: right;
    width: var(--w_max);
    max-width:100%;
    top:-2.5em;
}

#ft address a{
    color:#fff;
}
#btn_top{
    width:80px;
    height:80px;
 position: fixed;
 bottom:100px;
 right:40px;
}
#btn_top a{
    display: block;
}
/*============================================================
個別ページ
============================================================*/
#wrap_specialist{
  
}
#wrap_specialist h2{
    background-image: url(../images/common/ttl_specialist_bg.png);
    background-size:cover;
    padding:40px 40px;
    font-size:40px;
    color:#fff;
    width: 100%;
    width: calc(100% - 20px - 80px);
    max-width: calc(var(--w_max) - 80px);
    margin:20px auto;
}
#wrap_specialist h2 span{
    font-size:80%;
    display: block;
    display: block;
    position: relative;
}
#wrap_specialist h2 span::before{
content: "";
position: absolute;
bottom: 0px;
width: 260px;
height: 1px;
background-color: #fff;
}
#wrap_specialist>section {
    width: calc(100% - 20px);
    max-width: calc(var(--w_max));
    margin: 0px auto;
    display:flex;
    flex-wrap:wrap;
    justify-content: space-between;
}
#wrap_specialist>section>section {
    width: calc(100% / 2 - 30px);
}
#wrap_specialist>section>div {
    width: calc(100% / 2 - 30px);
    position: relative;
    aspect-ratio: 1/1;;
}
#wrap_specialist>section>div img{
    position: absolute;
    display: block;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    max-width:500px;
}
#wrap_specialist>section>div img{
    border:solid 1px #aaa;
    width: 100%;
}

#wrap_specitalists_offers{
    margin:40px 0px 0px 0px;
}
#wrap_specitalists_offers h3{
    margin:0px 0px 20px 0px;
    font-size:20px;
    color:#005EAB;
}
#wrap_specitalists_offers p{
    margin:5px 0px;
}
#wrap_specitalists_offers>section+section{
    margin-top:20px;

}