* {
    float: none;
    position: static;
    margin: 0;
    padding: 0;
}

div, p {
    margin: 0 auto;
}

.clear {
    clear: both;
}
.clearfix::after {
    content: "";
    display: block;
    clear: both;
}

img {
    max-width: 100%;
    border: none;
    vertical-align: bottom;
}

a {
    text-decoration: none;
    color: #000;
}
@media screen and (min-width: 520px) {
    a[href^="tel:"] {
        pointer-events: none;
    }
}

.mini90 {
    font-size: 90%;
}
.mini {
    font-size: 80%;
}
@media screen and (max-width: 519px) {
    .sp-mini {
        font-size: 80%;
        letter-spacing: -0.13rem;
    }
}

@media print, screen and (min-width: 960px) {
    .tablet-br,
    .tablet-sp-br {
        display: none !important;
    }
}
@media screen and (max-width: 959px) {
    .pc-br,
    .pc-space,
    .header-link {
        display: none !important;
    }
}
@media screen and (max-width: 519px) {
    .tablet-br,
    .pc-tablet-space {
        display: none !important;
    }
}
@media screen and (min-width: 520px) {
    .sp-br,
    .sp-fix-tel {
        display: none !important;
    }
}
@media print {
    .sp-fix-tel {
        display: none !important;
    }
}
.container {
    width: 99%;
    max-width: 1280px;
}

/* body */
body {
    text-align: center;
    font-size: 1.1rem;
    line-height: 1.8;
}
@media screen and (max-width: 519px) {
    body {
        /* Android Chrome 40 upper */
        font-size: 1rem;
        line-height: 1.6;
    }
}

.BodyMain {
    font-family: "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    -webkit-text-size-adjust: 100%;
}
@media print, screen and (min-width: 960px) {
    .BodyMain {
        margin: 0 auto 100px;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .BodyMain {
        margin: 0 auto 150px;
    }
}
@media screen and (max-width: 519px) {
    .BodyMain {
        margin: 0 auto 100px;
    }
}

.copyright {
    font-family: unset;
    font-weight: normal;
}
@media screen and (min-width: 520px) {
    .copyright {
        font-size: 0.75rem;
    }
}
@media screen and (max-width: 519px) {
    .copyright {
        font-size: 0.7rem;
    }
}

/* header & footer & menu */
@media print, screen and (min-width: 960px) {
    footer {
        background: #f1f9f3;
        padding-bottom: 1.5rem;
    }
}
#fix {
    width: 100%;
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 1002;
}
.menu,
.nav2 .menu-item2,
.tablet-sp-menubtn {
    background-color: #4eac63;
}
.menu-contents,
.tablet-sp-menuBestnet,
.tablet-sp-menuBestnet .menu-contents {
    background-color: #5fc075;
}
@media print, screen and (min-width: 960px) {
    .menu-item1:hover {
        background-color: #5fc075;
    }
}
#fix {
    border-top: 3px solid #4eac63;
    background: rgba(255, 255, 255, 0.85);
}
header .clearfix {
    width: 99%;
    max-width: 1280px;
}
.header-logo {
    float: left;
    line-height: 0;
}
.menu-item2{
    background: #418f53;
}
.menu .linkEmergency {
    background: #be0030;
}
footer .linkB {
    padding-left: 1rem;
}
.pc-contact1,
.pc-tablet-fix-tel {
    color: #418f53;
}
.pc-contact1 span.num,
.pc-tablet-fix-tel span.num,
.freedial span.num {
    font-size: 160%;
}
.pc-contact1 span.tokumei,
.pc-tablet-fix-tel span.tokumei,
.freedial span.tokumei {
    font-size: 130%;
}
.pc-contact1 a,
.pc-tablet-fix-tel a {
    color: #418f53;
}
.pc-contact1 img,
.pc-tablet-fix-tel img,
.freedial img {
    vertical-align: middle;
}
.freedial img {
    max-height: 35px;
    margin: -8px 9px 0 0;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .freedial img {
        max-height: 28px;
        margin: -7px 8px 0 0;
    }
}
@media screen and (max-width: 519px) {
    .freedial img {
        max-height: 22px;
        margin: -6px 5px 0 0;
    }
}
.header-link .btnLink a,
.fix-link .btnLink a {
    width: 180px;
    padding: 0.2rem 0.5rem;
}
.header-link .btnLink:first-child a,
.fix-link .btnLink:first-child a {
    margin: 4px 0 2px;
}
.header-link .btnLink:last-child a,
.fix-link .btnLink:last-child a {
    margin: 2px 0 4px;
}
@media print, screen and (min-width: 960px) {
    header .clearfix {
        position: relative;
    }
    .pc-fix-logo {
        margin: 0;
    }
    .header-logo img,
    .pc-fix-logo img {
        max-height: 90px;
        margin: 5px 0;
    }
    h1 a,
    .pc-fix-logo a {
        display: inline-block;
    }
    .pc-contact1 {
        position: absolute;
        top: 0;
        right: 0;
    }
    .pc-contact1,
    .pc-tablet-fix-tel {
        width: 240px;
        line-height: 1.2;
        font-size: 95%;
    }
    .pc-tablet-fix-tel {
        margin: -7px 0 0 0;
    }
    .pc-contact1 a,
    .pc-tablet-fix-tel a {
        font-size: 2.1rem;
    }
    .pc-contact1 .phone,
    .pc-tablet-fix-tel .phone a {
        line-height: 1.1;
    }
    .pc-contact1 .phone a,
    .pc-tablet-fix-tel .phone a {
        font-size: 160%;
    }
    .pc-contact1 img,
    .pc-tablet-fix-tel img {
        max-height: 28px;
        margin: -5px 5px 0 0;
    }
    .tablet-sp-menuBestnet,
    .tablet-sp-link,
    .tablet-sp-menubtn,
    .tablet-sp-contact {
        display: none !important;
    }
    .header-link {
        margin: 0 auto;
        padding-right: 270px;
    }
}
@media screen and (max-width: 959px) {
    .pc-fix-logo,
    .pc-contact1,
    .pc-contact2,
    .pc-menu {
        display: none !important;
    }
    .tablet-sp-contact {
        color: #fff;
        font-size: 2rem;
        font-weight: bold;
        text-align: center;
        padding-top: 20px;
    }
    .tablet-sp-contact a {
        color: #fff;
    }
    .tablet-sp-contact img {
        max-height: 25px;
        margin: -5px 8px 0 0;
        vertical-align: middle;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    footer {
        margin: 0 0 -30px;
    }
    .fix-link {
        width: 45%;
    }
    .fix-link .btnLink a {
        width: 180px;
        padding: 0.2rem 0.5rem;
    }
    .pc-tablet-fix-tel {
        width: 53%;
        line-height: 2.1rem;
    }
    .pc-tablet-fix-tel a {
        font-size: 2.5rem;
    }
    .pc-tablet-fix-tel img {
        max-height: 30px;
        margin: -6px 3px 0 0;
    }
    .pc-tablet-fix-tel .phone {
        line-height: 1.6rem;
    }
    .pc-tablet-fix-tel .phone a {
        font-size: 160%;
    }
}
@media screen and (max-width: 519px) {
    .pc-tablet-fix-tel {
        display: none !important;
    }
    footer {
        margin-top: 7px;
    }
    .sp-fix-tel,
    .fix-link {
        font-size: 87%;
        letter-spacing: -0.1rem;
    }
    .sp-fix-tel {
        width: 47%;
        max-width: 140px;
    }
    .fix-link {
        width: 52%;
        max-width: 180px;
    }
    .sp-fix-tel img {
        width: 30px;
        margin: -3px 5px 0 0;
        vertical-align: middle;
    }
    .sp-fix-tel .btnLink {
        margin: 0 auto;
    }
    .sp-fix-tel .btnLink a {
        background: #4eac63;
        border-radius: 40px;
        color: #fff;
        text-shadow: 1px 2px 2px rgba(0, 0, 0, 0.85);
        margin: 0;
        padding: 6px;
    }
    .fix-link .btnLink {
        margin: 0 auto;
        padding: 2px 0;
    }
    .fix-link .btnLink a {
        width: 140px;
        margin: 3px auto;
        padding: 4px 0;
    }
}

.menu-inner {
    display: flex;
    align-items: center;
    height: 50px;
    position: relative;
}
.menu-inner,
.menu.active {
    z-index: 1003;
}
.menu-link {
    color: #fff;
    text-shadow: 1px 2px 2px rgba(0, 0, 0, 0.85);
}
@media print, screen and (min-width: 960px) {
    #menu {
      border-top: 1px solid #eee;
    }
    .menu {
        max-width: 1280px;
        margin: 0 auto;
    }
    .menu-inner li,
    .nav1_1 li {
        border-left: 1px solid #eee;
    }
    .menu-inner li:nth-child(1) {
        border-left: none;
    }
    .nav1_1 li:nth-child(1),
    .menu-contents li {
        border: none;
    }
    .nav1_1 .menu-item2 {
        width: 33.265%;
        float: left;
    }
    .nav1_1 .menu-link {
        line-height: 2.6;
    }
    .nav1_1::after {
        content: "";
        display: block;
        clear: both;
    }
    .menu-item1,
    .menu-item2 {
        width: 20%;
        height: 100%;
        font-size: 1.1rem;
        text-align: center;
    }
    .menu-item1::after {
        content: "";
        position: absolute;
        top: 18px;
        transform: translateY(-50%);
        transition: all 0.2s ease-in-out;
        display: block;
        width: 8px;
        height: 8px;
        border-top: 2px solid #fff;
        border-right: 2px solid #fff;
        -webkit-transform: rotate(135deg);
        transform: rotate(135deg);
        margin-left: 7px;
    }
    .menu-link {
        display: block;
        height: 100%;
        line-height: 3;
    }
    .menu-link span {
        margin-left: 15px;
    }
    /* メガメニュー */
    .menu-contents {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        width: calc(100% - 40px);
        padding: 20px;
    }
    .menu-contents ul {
        display: flex;
        justify-content: space-around;
    }
    .menu-contents ul li {
        height: 95px;
        margin: 0 5px;
    }
    .menu-contents ul li a {
        display: block;
        color: #fff;
        text-shadow: 1px 2px 2px rgba(0, 0, 0, 0.85);
        font-size: 0.9rem;
    }
    .pc-menu {
        display: flex;
        width: 98%;
        max-width: 1280px;
        padding: 1.5rem 0;
    }
    .pc-menu .serviceGroup {
        text-align: left;
        font-size: 0.95rem;
        line-height: 2;
        padding: 0.5rem;
    }
    .pc-menu .category {
        border-left: 4px solid #4eac63;
        font-size: 1.05rem;
        line-height: 1.5rem;
        margin-bottom: 0.5rem;
        padding-left: 0.5rem;
    }
    .pc-menu .emergency a {
        color: #c03;
    }
}
@media screen and (max-width: 959px) {
    .tablet-sp-header {
        width: 100%;
        max-width: 1280px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .tablet-sp-header-inner:before {
        content: "";
        width: 100%;
        background: linear-gradient(43.37deg, #4d4d4d 6.71%, #bcbbbb 101.43%);
        position: absolute;
        top: 0;
        left: 0;
        z-index: -100;
    }
    .tablet-sp-header-inner {
        width: 100%;
        height: 60px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .tablet-sp-menubtn {
        width: 60px;
        height: 100%;
        position: relative;
        display: block;
        z-index: 5000;
        border: none;
        cursor: pointer;
    }    
    .tablet-sp-menubtn span {
        display: block;
        overflow: hidden;
        white-space: nowrap;
        text-indent: 100%;
        width: 22px;
        height: 3px;
        background: #fff;
        position: absolute;
        transition: 0.2s;
        left: 50%;
        top: 50%;
    }    
    .tablet-sp-menubtn span:nth-child(1) {
        transform: translate(-50%, -9px);
    }    
    .tablet-sp-menubtn span:nth-child(2) {
        transform: translate(-50%, -50%);
    }    
    .tablet-sp-menubtn span:nth-child(3) {
        transform: translate(-50%, 6px);
    }    
    .tablet-sp-menubtn.active span {
        width: 27px;
        height: 3px;
        top: 45%;
    }    
    .tablet-sp-menubtn.active span:nth-child(1) {
        transform: translate(-50%, 50%) rotate(45deg);
    }    
    .tablet-sp-menubtn.active span:nth-child(2) {
        opacity: 0;
        left: 50%;
    }    
    .tablet-sp-menubtn.active span:nth-child(3) {
        transform: translate(-50%, 50%) rotate(-45deg);
    }
    .menu {
        position: fixed;
        top: 60px;
        left: 0;
        width: 100%;
        height: calc(100% - 60px);
        color: #fff;
        text-shadow: 1px 2px 2px rgba(0, 0, 0, 0.85);
        overflow: auto;
        opacity: 0;
        visibility: hidden;
        transition: opacity .6s ease, visibility .6s ease;
    }
    .menu.active {
        opacity: 100;
        visibility: visible;
    }
    .menu-inner {
        display: block;
        height: auto;
        margin: 0 auto;
    }    
    .menu-item1,
    .menu-item2 {
        border-bottom: 1px solid #eee;
        width: 100%;
        position: relative;
    }
    .menu-item1::after {
        content: "";
        position: absolute;
        right: 16px;
        top: 30px;
        transform: translateY(-50%);
        transition: all 0.2s ease-in-out;
        display: block;
        width: 10px;
        height: 10px;
        border-top: 2px solid #fff;
        border-right: 2px solid #fff;
        -webkit-transform: rotate(135deg);
        transform: rotate(135deg);
    }
    .menu-link {
        font-weight: bold;
        font-size: 1.15rem;
        letter-spacing: 0.04rem;
        height: 70px;
        display: flex;
        align-items: center;
        text-align: left;
        padding-left: 7px;
    }
    /* アコーディオン */
    .menu-contents {
        background: #4eac63;
        display: none;
        position: static;
        width: 100%;
        margin-bottom: 30px;
        padding: 0;
    }
    .menu-contents img {
        display: none !important;
    }
    .menu-contents ul {
        display: block;
    }
    .menu-contents ul li {
        width: 100%;
        height: auto;
        padding: 10px 0;
    }
    .menu-contents ul li a {
        width: 95%;
        color: #fff;
        display: block;
        text-align: left;
        line-height: 2;
        margin: 0 auto;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .header-logo img {
        height: 60px;
        vertical-align: middle;
    }
}
@media screen and (max-width: 519px) {
    .header-logo img {
        height: 60px;
    }
}
ul {
    list-style-type: none;
}

.flexslider {
    border: none;
}

#top .flexslider {
    margin: 0;
}

.sliderSide {
    overflow: hidden;
}
#top .flexslider .flex-control-nav {
    display: none;
}

/* section */
section {
    margin: auto;
}
@media print, screen and (min-width: 960px) {
    section {
        width: 99%;
        max-width: 1280px;
        font-size: 110%;
        padding: 30px 0;
    }
    section#top {
        padding: 0 0 10px;
        margin-top: -10px;
    }
    section#counsel {
        padding: 0 0 30px;
        margin-top: -1rem;
    }
    section#society {
        padding: 30px 0 0;
    }
}
@media screen and (max-width: 959px) {
    section {
        width: 95%;
    }
    section#top {
        padding: 0 0 20px;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    section {
        padding: 20px 0;
    }
}
@media screen and (max-width: 519px) {
    section {
        padding: 20px 0;
    }
}
section p {
    line-height: 3;
    text-align: left;
    margin: 1rem;
}
section .familyBox p {
    text-align: center;
    margin: 0 0.2rem;
}
@media print, screen and (min-width: 960px) {
    section#top p {
        text-align: center;
        margin: 0;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    section p {
        line-height: 2.3;
    }
}
@media screen and (max-width: 519px) {
    section p {
        line-height: 2;
    }
}

.center {
    text-align: center;
}
.right {
    text-align: right;
}

.waku {
    border: 1px solid #dcdcdc;
}

h2 {
    position: relative;
    text-align: center;
    font-weight: normal;
    font-size: 170%;
    letter-spacing: 0.05rem;
    line-height: 1;
}
h2.heading,
h2.heading1,
h2.heading2 {
    color: #418f53;
    font-size: 135%;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    h2.heading,
    h2.heading1,
    h2.heading2 {
        font-size: 125%;
    }
}
@media screen and (max-width: 519px) {
    h2.heading,
    h2.heading1,
    h2.heading2 {
        font-size: 120%;
    }
}
h2.heading,
h2.heading1,
h2.heading2 {
    line-height: 1.8;
}
h2.heading1,
h2.heading2 {
    background: linear-gradient(transparent 92%, #d0e9d5 20%);
}
@media screen and (max-width: 519px) {
    h2.heading2 {
        background: linear-gradient(transparent 96%, #d0e9d5 20%);
    }
}
h2.heading span {
    font-size: 130%;
}
h2:first-letter {
    font-size: 130%;
    color: #418f53;
}
h2.heading:first-letter,
h2.heading1:first-letter,
h2.heading2:first-letter,
h2.seo:first-letter {
    font-size: 100%;
}
h2.heading:first-letter {
    color: #418f53;
}
h2.seo:first-letter {
    color: #d3d3d3;
}
h2.seo {
    font-size: 75%;
    font-family: normal;
    text-decoration: none;
    color: #d3d3d3;
    margin: 0.5rem auto;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    h2 {
        font-size: 160%;
    }
    h2.seo {
        line-height: 1.5;
    }
}
@media screen and (max-width: 519px) {
    h2 {
        font-size: 130%;
    }
    h2.seo {
        line-height: 1.2;
    }
}

.balloon {
    background-color: #4eac63;
    border-radius: 20px;
    color: #fff;
    display: inline-block;
    font-size: 110%;
    margin: 0 8px 13px 0;
    padding: 0 8px 0 15px;
    position: relative;
}
.balloon::after {
    border-bottom: transparent;
    border-left: 14px solid transparent;
    border-top: 8px solid #4eac63;
    content: "";
    right: 12%;
    bottom: -7px;
    position: absolute;
    transform: translate(-50%);
}

.uline {
    border-bottom: 3px solid #feefc4;
    content: "";
    padding-bottom: 8px;
    display: inline-block;
}
#counsel .uline {
    border-bottom: 5px solid rgba(79, 131, 225, 0.3);
    padding-bottom: 0;
    line-height: 1.2;
}
#plan .uline {
    margin-top: 0.7rem;
}

p.banner {
    text-align: center;
}
.banner img {
    max-width: 400px;
    margin: 0 auto;
    padding-bottom: 4rem;
}
@media screen and (max-width: 959px) {
    .banner img {
        width: 70%;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .banner img {
        padding-bottom: 3rem;
    }
}
@media screen and (max-width: 519px) {
    .banner img {
        padding-bottom: 2.5rem;
    }
}

.dot {
    position: relative;
    padding-top: 6px;
}
h2.heading span.dot {
    font-size: 100%;
}
.dot:before {
    position: absolute;
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background-color: #418f53;
    top: 0;
    left: 45%;
    transform: translate(-50%);
}

.btnLink a {
    display: inline-block;
    margin: 0 auto;
    padding: 4px 2rem;
    font-size: 110%;
    text-align: center;
    border: 1px solid #418f53;
    background: #eafaed;
}
#useful .btnLink {
    padding: 4px 1rem;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    #useful .btnLink a {
        width: 175px;
    }
}
@media screen and (max-width: 519px) {
    #useful .btnLink a {
        width: 170px;
        padding: 4px 1.5rem;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    #counsel .btnLink a {
        margin: 2rem auto 2.5rem;
    }
}
@media screen and (max-width: 519px) {
    #counsel .btnLink a {
        margin: 1.5rem auto 2rem;
    }
}
.btnLink,
.btnLink a {
    color: #418f53;
}

.flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}
#counsel .flex {
    align-items: stretch;
    padding-top: 3rem;
}
@media screen and (max-width: 959px) {
    #counsel .flex {
        padding-top: 0;
    }
}
#useful .flex {
    margin-top: -0.7rem;
}

.ya {
    position: relative;
    display: inline-block;
    padding-left: 1rem;
    margin-left: 0.5rem;
    vertical-align: middle;
    text-decoration: none;
}
.ya::before,
.ya::after {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    content: "";
    vertical-align: middle;
    font-size: 0.95rem;
}
.ya::before {
    width: 18px;
    height: 18px;
    bottom: 2px;
}
.ya::after {
    left: 3px;
    bottom: 2px;
    width: 7px;
    height: 7px;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

.imgTxt {
    display: flex;
    align-items: center;
    text-align: justify;
    margin: 0 1.5rem 1.5rem;
}
.imgTxt .txtL {
    margin: 0 2rem 0 0;
}
@media screen and (max-width: 959px) {
    .general .txtL {
        margin: 0 auto;
    }
}

.backG {
    background: rgba(246, 246, 246, 0.7);
}

.slideIn {
    overflow: hidden;
    display: inline-block;
}
.slideIn_inner {
    display: inline-block;
}
/*左右のアニメーション*/
.leftAnime {
    opacity: 0;/*事前に透過0にして消しておく*/
}
.slideAnimeLeftRight {
    animation-name: slideTextX100;
    animation-duration: 2.5s;
    animation-fill-mode: forwards;
    opacity: 0;
}
.slideAnimeRightLeft {
    animation-name:slideTextX-100;
    animation-duration: 2.5s;
    animation-fill-mode:forwards;
    opacity: 0;
}
@keyframes slideTextX100 {
    from {
        transform: translateX(-100%); /*要素を左の枠外に移動*/
        opacity: 0;
    }
    to {
        transform: translateX(0);/*要素を元の位置に移動*/
        opacity: 1;
    }
}
@keyframes slideTextX-100 {
    from {
        transform: translateX(100%);/*要素を右の枠外に移動*/
        opacity: 0;
    }
    to {
        transform: translateX(0);/*要素を元の位置に移動*/
        opacity: 1;
    }
}

.mapIllust {
    width: 80%;
    padding-bottom: 0.8rem;
}
@media screen and (max-width: 959px) {
    .mapIllust {
        width: 90%;
    }
}
.parContainer {
    padding-top: 2rem;
}
.parImg p {
    font-size: 90%;
    line-height: 2;
}
@media print, screen and (min-width: 960px) {
    .parImg p {
        width: calc(98%/3);
        padding: 1rem 0;
    }
    #top .parImg p:nth-child(2),
    #top .parImg p:nth-child(5),
    #top .parImg p:nth-child(8) {
        margin: 0 1%;
    }
}
@media screen and (max-width: 959px) {
    .parImg p {
        text-align: center;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .parImg p {
        width: 47%;
        margin: 0.7rem auto;
    }
}
@media screen and (max-width: 519px) {
    .parImg p {
        width: 70%;
        margin: 0.5rem;
    }
}

#counsel img {
    max-width: 180px;
    margin: 0 auto 0 0;
}
@media screen and (max-width: 959px) {
    #counsel img {
        display: none !important;
    }
}
#counsel .flex:first-child {
    max-width: 1150px;
    width: 98%;
    margin: 0 auto;
    align-items: center;
}
#society {
    max-width: 1150px;
    padding: 3rem 0;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    #society {
        padding: 2rem 0 1.5rem;
    }
}
@media screen and (max-width: 519px) {
    #society {
        padding: 2rem 0 1rem;
    }
}
#society img {
    width: 23%;
    max-width: 220px;
    margin: 0 0 0 auto;
}
@media screen and (max-width: 959px) {
    #society img {
        width: 180px;
        margin: 0;
    }
}
.counselContainer,
.societyContainer {
    box-sizing: border-box;
    display: block;
    text-align: left;
}
.counselContainer {
    width: 80%;
    max-width: 1000px;
    margin: -20px 0 0 auto;
}
.societyContainer {
    width: 75%;
    margin: 0 auto 0 0;
}
@media screen and (max-width: 959px) {
    .counselContainer,
    .societyContainer {
        width: 98%;
        margin: 0 auto;
    }
    .counselContainer {
        margin: 0 auto;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .societyContainer {
        margin: 0 auto 1.5rem;
    }
}
@media screen and (max-width: 519px) {
    .societyContainer {
        margin: 0 auto 1rem;
    }
}
.counselBalloon,
.societyBalloon {
    background-color: #4eac63;
    border-radius: 20px;
    color: #fff;
    display: inline-block;
    padding: 0 12px;
    position: relative;
    transform: translateY(50%) translate(1em);
    z-index: 1;
}
.counselTxt,
.societyTxt {
    background-color: #eafaed;
    border: 1px solid #4eac63;
    padding: 1.5rem;
    position: relative;
}
@media screen and (max-width: 959px) {
    .counselTxt,
    .societyTxt {
        padding: 1rem 1rem 0.5rem;
    }
}
.counselTxtInner,
.societyTxtInner {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    overflow: hidden;
    text-align: left;
    text-decoration: none;
    line-height: 2.5;
}
@media screen and (max-width: 959px) {
    .counselTxtInner,
    .societyTxtInner {
        -webkit-box-orient: unset;
        line-height: 2.2;
    }
}
.fontGreen {
    font-size: 135%;
    color: #418f53;
}
@media screen and (max-width: 519px) {
    .fontGreen {
        font-size: 125%;
        line-height: 1.7;
    }
}

.counselBox {
    width: 48.5%;
    background: #e7f3fe;
    margin: 5px;
    padding: 0.3rem 0 0.7rem;
    border-radius: 0.5rem;
}
@media screen and (max-width: 959px) {
    .counselBox {
        width: 90%;
    }
}
.counselBox p.boxHeading {
    width: 100%;
    position: relative;
    font-size: 120%;
    margin: 0 auto;
    border-bottom: 1px solid #fff;
}
.counselBox .boxHeading::before {
    background-image: url("../images/butterfly.png");
    background-size: cover;
    content: "";
    display: inline-block;
    width: 35px;
    height: 35px;
    top: 9px;
    left: 20px;
    position: absolute;
}
@media screen and (max-width: 519px) {
    .counselBox .boxHeading::before {
        width: 30px;
        height: 30px;
        top: 7px;
        left: 15px;
    }
}
.counselBox p.boxHeading span {
    color: #262f8b;
    padding-left: 63px;
}
@media screen and (max-width: 519px) {
    .counselBox p.boxHeading span {
        padding-left: 50px;
    }
}
.counselBox p {
    line-height: 2.5;
}
p.counselComment {
    width: 93%;
    margin: 0 auto;
    padding-top: 0.5rem;
    overflow-wrap: break-word;
    font-size: 90%;
    letter-spacing: 0.05rem;
}
.counselComment span {
    color: #5278cc;
    font-size: 120%;
}

.creditcard {
    font-size: 90%;
    padding: 0.5rem 0 2rem;
}
.creditcard img {
    height: 30px;
}

.tabContainer {
    width: 98%;
}
.tabItem {
    border-radius: 0.5rem 0.5rem 0 0;
    width: calc(100%/3);
    padding-top: 5px;
    background-color: #f1f1f1;
    text-align: center;
    text-shadow: 1px 2px 2px rgba(255, 255, 255, 0.85);
    display: block;
    float: left;
    text-align: center;
    font-size: 120%;
    transition: all 0.2s ease;
    cursor: pointer;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .tabItem {
        font-size: 100%;
        height: 70px;
    }
}
@media screen and (max-width: 519px) {
    .tabItem {
        font-size: 80%;
        letter-spacing: -0.05rem;
        height: 45px;
    }
}
input[name="tabItem"] {
    display: none;
}
.tabContent {
    display: none;
    margin-bottom: 1.7rem;
    padding: 1rem;
    clear: both;
    overflow: hidden;
    border-radius: 0 0 0.5rem 0.5rem;
}
#tab1:checked ~ #tab1_content,
#tab2:checked ~ #tab2_content,
#tab3:checked ~ #tab3_content {
    display: block;
}
.tabContainer input:checked + .tabItem {
    color: #fff;
    text-shadow: 1px 2px 2px rgba(0, 0, 0, 0.85);
}
.tabContainer input#tab1:checked + .tabItem,
#tab1_content {
    background-color: rgba(78, 172, 99, 0.7);
}
.tabContainer input#tab2:checked + .tabItem,
#tab2_content {
    background-color: rgba(252, 167, 35, 0.7);
}
.tabContainer input#tab3:checked + .tabItem,
#tab3_content {
    background-color: rgba(242, 140, 220, 0.7);
}
.tabBox {
    display: flex;
    background: #fff;
    padding: 1.5rem;
    min-height: 630px;
}
@media screen and (max-width: 959px) {
    .tabBox {
        padding: 1rem;
    }
}
.tabImg {
    width: 42%;
    position: relative;
    font-size: 120%;
    line-height: 1.3;
    margin: 0 auto 0 0;
}
.tabImg img {
    margin-bottom: 1rem;
    width: 98%;
}
@media screen and (max-width: 959px) {
    .tabBox {
        display: block;
    }
    .tabImg {
        width: 100%;
        margin: 0 auto;
    }
}

@media screen and (min-width: 520px) and (max-width: 959px) {
    .tabImg img {
        width: 80%;
        max-width: 600px;
    }
}
@media screen and (max-width: 519px) {
    .tabImg img {
        width: 100%;
    }
}
#tab1_content .tabImg {
    color: #418f53;
}
#tab2_content .tabImg {
    color: #f6a01b;
}
#tab3_content .tabImg {
    color: #eb88d6;
}
.tabImg .fee {
    font-size: 270%;
}
.tabImg .feeT {
    font-size: 130%;
}
.tabComment {
    padding-top: 1rem;
}
#tab2_content .tabComment span,
#tab3_content .tabComment span {
    color: #fff;
    padding: 5px;
}
#tab2_content .tabComment span {
    background-color: #f6a01b;
}
#tab3_content .tabComment span {
    background-color: #eb88d6;
}
.tabTxt {
    width: 56%;
    margin: -0.5rem 0 0 auto;
}
@media screen and (max-width: 959px) {
    .tabTxt {
        width: 100%;
        margin: 1rem auto 0;
    }
}
.tabTxt .big {
    font-size: 105%;
}
.tabHeading {
    padding-bottom: 3px;
}
.tabPad1 {
    padding-top: 0.3rem;
}
#tab1_content .tabHeading {
    border-bottom: 3px solid #d0e9d5;
}
#tab2_content .tabHeading {
    border-bottom: 3px solid #fee2a8;
}
#tab3_content .tabHeading {
    border-bottom: 3px solid #ffd3fd;
}
.tabTxt ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    border-left: 1px solid #dcdcdc;
    border-top: 1px solid #dcdcdc;
    margin: 0.5rem 0;
}
#tab1_content .tabTxt li {
    background: rgba(228, 243, 231, 0.5);
}
#tab2_content .tabTxt li {
    background: rgba(255, 242, 215, 0.5);
}
#tab3_content .tabTxt li {
    background: rgba(254, 229, 253, 0.4);
}
.tabTxt li {
    width: 50%;
    font-size: 80%;
    text-align: left;
    letter-spacing: -0.03rem;
    padding: 0.1rem 1.1rem;
    border-bottom: 1px solid #dcdcdc;
    border-right: 1px solid #dcdcdc;
    box-sizing: border-box;
}

.society img {
    width: 250px;
}
.society {
    padding-top: 3.5rem;
}
.general {
    padding: 4rem 0 2rem;
}
@media screen and (max-width: 959px) {
    .general {
        display: block;
        margin: 0 1rem;
        text-align: center;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .general {
        padding: 2rem 0 1rem;
    }
}
@media screen and (max-width: 519px) {
    .general {
        padding: 1.5rem 0 1.5rem;
    }
}
.general img {
    width: 80%;
    max-width: 600px;
}
@media screen and (max-width: 959px) {
    .general img {
        width: 98%;
        margin-top: 1rem;
    }
}

.service {
    width: 31%;
    max-width: 330px;
    border: 8px solid #f2f2f2;
    border-radius: 0.5rem;
    margin: 0 auto 1rem;
    font-size: 110%;
}
@media print, screen and (min-width: 960px) {
    .service:nth-child(n+4) {
        margin: 1rem auto;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .service {
        width: 45%;
        margin: 0.7rem auto;
    }
    .service:first-child,
    .service:nth-child(2) {
        margin: -0.2rem auto 0.7rem;
    }
}
@media screen and (max-width: 519px) {
    .service {
        width: 44%;
        margin: 0.5rem auto;
    }
    .service:first-child,
    .service:nth-child(2) {
        margin: -0.2rem auto 0.5rem;
    }
}
.service img {
    border-radius: 0.3rem 0.3rem 0 0;
}

.googleMap {
    position: relative;
    padding-bottom: 45%; // これが縦横比
    height: 0;
    overflow: hidden;
    margin: 2rem 0;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .googleMap {
        padding-bottom: 55%; // これが縦横比
    }
}
@media screen and (max-width: 519px) {
    .googleMap {
        padding-bottom: 85%; // これが縦横比
    }
}
.googleMap iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
}

.letter {
    position: relative;
    border: 1px solid #dcdcdc;
    border-radius: 0.5rem;
    background: #fdfdfd;
    text-align: left;
    line-height: 3;
    margin-top: 2.5rem;
    padding: 1.9rem 0 3.3rem;
}
.letterTxt {
    background-image: linear-gradient(#e5e5e5 .1px, transparent .1em);
    background-size: auto 3.6rem;
    margin: 0 1.5rem;
    padding: 0 1rem;
}
@media screen and (max-width: 959px) {
    .letter {
        width: 98%;
    }
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .letter {
        margin-top: 2rem;
        padding: 1.3rem 0;
    }
    .letterTxt {
        background-size: auto 3.3rem;
        margin: 0 1rem;
    }
}
@media screen and (max-width: 519px) {
    .letter {
        margin-top: 1.5rem;
        padding: 1rem 0;
    }
    .letterTxt {
        background-size: auto 3rem;
        margin: 0 0.5rem;
        padding: 0 0.7rem;
    }
}
.letterTxt::before {
    content: "";
    position: absolute;
    border-top: 2px solid #fdfdfd;
    width: 98%;
    margin-left: -20px;
}

.custInfo {
    position: relative;
}
.custInfo div {
    position: absolute;
    background: rgba(255, 255, 255, 0.7);
    width: 55%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    line-height: 3;
    padding: 2rem 0;
    text-shadow: 1px 2px 2px rgba(255, 255, 255, 0.9);
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .custInfo div {
        width: 90%;
        line-height: 2.3;
    }
}
@media screen and (max-width: 519px) {
    .custInfo div {
        width: 100%;
        line-height: 1.7;
        font-size: 98%;
    }
}

.custInfo div img {
    width: 45px;
    vertical-align: middle;
    margin-left: 8px;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    .custInfo div img {
        width: 40px;
    }
}
@media screen and (max-width: 519px) {
    .custInfo div img {
        width: 30px;
    }
}

/* page-top */
#page-top {
    position: fixed;
    z-index: 100;
    bottom: 125px;
}
#page-top {
    right: 8px;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    #page-top {
        bottom: 116px;
        right: 5px;
    }
}
@media screen and (max-width: 519px) {
    #page-top {
        bottom: 98px;
        right: 5px;
    }
}
#page-top a {
    font-size: 14px;
    color: #fff;
    font-weight: bold;
    text-decoration: none;
    text-align: center;
    position: relative;
    letter-spacing: 2px;
    display: block;
    width: 44px;
    height: 44px;
    background: #4eac63;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    #page-top a {
        width: 44px;
        height: 44px;
    }
}
@media screen and (max-width: 519px) {
    #page-top a {
        width: 40px;
        height: 40px;
    }
}
#page-top a::after {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    content: "";
    display: block;
    position: absolute;
    left: 50%;
    margin-left: -7px;
    margin-top: -4px;
    top: 50%;
    width: 12px;
    height: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
}
@media screen and (min-width: 520px) and (max-width: 959px) {
    #page-top a::after {
        width: 10px;
        height: 10px;
        margin-left: -6px;
        margin-top: -4px;
    }
}
@media screen and (max-width: 519px) {
    #page-top a::after {
        width: 8px;
        height: 8px;
        margin-left: -5px;
        margin-top: -3px;
    }
}
