body {
    font-family: 'Zen Maru Gothic', sans-serif;
    background: #FFFAF7;
}

:root {
    --text-color: #2D2D2D;
    --text-color2: #35342E;
    --pink: #F09293;
    --back: #FFFAF7;
    --accent: #EAF5E4;
    --pink2: #FFE3E3;
    --hoverpink: #e57475;
}



img {
    max-width: 100%;
}

body.home header {
    background: white;
}

header {
    display: flex;
    position: fixed;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    padding: 32px 60px;
    z-index: 10;
    top: 0;
}


ul.header-nav {
    display: flex;
    gap: 30px;
    align-items: center;
}

header nav {
    display: flex;
    gap: 40px;
}

ul.header-nav li a {
    font-weight: bold;
    letter-spacing: 0.15em;
    transition: all 0.3s;
}

ul.header-nav li a:hover {
    color: var(--pink);
}

ul.header-banner {
    display: flex;
    gap: 16px;
}

ul.header-banner a {
    display: flex;
    background: var(--pink);
    padding: 14px 30px;
    border-radius: 40px;
    color: white;
    font-weight: bold;
    letter-spacing: 0.15em;
    gap: 8px;
    transition: all 0.3s;
}

li.line-banner a {
    background: #4CC764;
}


li.web-banner a:hover {
    background: var(--hoverpink);
}

li.line-banner a:hover {
    background: #35b74e;
}


ul.header-banner li a img {
    transition: all 0.3s;
}

ul.header-banner li a:hover img {
    transform: translateX(5px);
}

.mv {
    position: relative;
    height: 1120px;
}

.mv-bg {
    position: absolute;
    z-index: -1;
    top: -200px;
}

.mv-bg img {
    width: 100%;
}

.mv-logo {
    max-width: 540px;
}

.mv-logo img {
    width: 100%;
}

.mv-main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 140px;
    padding: 0 80px;
    padding-top: 60px;
    height: 100vh;
}

.mv-content p {
    font-size: 40px;
    font-weight: bold;
    letter-spacing: 0.1em;
    text-align: right;
}

.mv-content p:first-of-type {
    margin-bottom: 42px;
}

.mv-title {
    max-width: 620px;
    margin-top: 100px;
}

.mv-title img {
    width: 100%;
}

span.rubi {
    position: relative;
}

span.rubi:before {
    left: 8px;
    top: -16px;
    font-size: 14px;
    position: absolute;
    white-space: nowrap;
    letter-spacing: 0.2em;
    font-weight: normal;
}

span.rubi.rubi--first:before {
    content: "おうしん";
}

span.rubi.rubi--second:before {
    content: "びょうき";
}

span.rubi.rubi--third:before {
    content: "そうだん";
}

.waiting {
    position: absolute;
    right: 0;
    bottom: 100px;
    background: white;
    padding: 42px 72px 48px;
    border: 2px solid var(--pink);
    border-right: 0;
    border-top-left-radius: 48px;
    border-bottom-left-radius: 48px;
    display: flex;
    align-items: center;
    gap: 48px;
    justify-content: center;
}

p.waiting-content__title {
    font-size: 18px;
    text-align: center;
    background: var(--pink);
    color: white;
    padding: 14px 18px;
    border-radius: 40px;
    letter-spacing: 0.15em;
}

p.waiting-content__time {
    font-weight: bold;
    padding-top: 16px;
}

.waiting-content div {
    padding-top: 20px;
    text-align: center;
}

p.waiting-content__text1 {
    font-size: 26px;
    font-weight: bold;
    letter-spacing: 0.2em;
}

@media screen and (max-width:1440px) {
    .mv-logo {
        width: 420px;
    }

    .mv {
        height: 1040px;
    }

    .mv-main {
        gap: 100px;
        max-height: 800px;
    }

    .mv-bg {
        top: 0;
    }

    .mv-title {
        max-width: 480px;
        margin-top: 80px;
    }

    .mv-content p {
        font-size: 28px;
    }

    span.rubi:before {
        left: 4px;
        top: -16px;
        letter-spacing: 0.1em;
        font-size: 12px;
    }

    .waiting {
        bottom: 120px;
        padding: 36px 64px;
    }
}


@media screen and (max-width:1440px) {
    header {
        padding: 32px;
    }

    ul.header-nav {
        gap: 24px;
    }

    ul.header-nav li a {
        font-size: 15px;

    }

}

@media screen and (max-width:1280px) {


    .mv-bg {
        top: 60px;
    }

    .mv {
        max-height: 960px;
    }

    .mv-logo {
        width: 380px;
    }

    .mv-title {
        max-width: 460px;
        margin-top: 60px;
    }

    .waiting {
        bottom: 80px;
    }
}


.top-section {
    padding-left: 120px;
    padding-right: 120px;
    padding-bottom: 160px;
    /* max-width: 1680px; */
    margin: auto;
}

.link-area__inner {
    display: flex;
    flex-wrap: wrap;
    max-width: 1480px;
    margin: auto;
    gap: 120px 32px;
    position: relative;
}

.link-area__inner:after {
    content: "";
    position: absolute;
    width: 134px;
    height: 84px;
    background: url(../img/illust01.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    right: -90px;
    top: -20px;
}

.link-item {
    width: calc(100% / 3 - 22px);
}

.link-item a {
    background: var(--back);
    position: relative;
    border: 17px solid #FFE3E3;
    border-radius: 64px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 20px 10px 50px 10px;
    gap: 24px;
    height: 100%;
    transition: all 0.3s;
}

.link-item a:hover {
    transform: translateY(-10px);
}

@media screen and (max-width:1440px) {
    .link-item a {
        border: 12px solid #FFE3E3;
    }
}

p.link-item__title {
    font-size: 32px;
    font-weight: bold;
    line-height: 1.6em;
    text-align: center;
    letter-spacing: 0.1em;
}

.link-item__image {
    max-width: 90%;
}

.link-item__image img {
    width: 100%;
}

.link-item.link-item--first .link-item__image {
    max-width: 60%;
    margin-bottom: -12px;
}

.link-item.link-item--second .link-item__image {
    padding-bottom: 40px;
}

.link-item.link-item--sixth .link-item__image {
    max-width: 80%;
}

.link-item.link-item--sixth .link-item__title span {
    font-size: 22px;
    display: block;
    margin-top: -10px;
}

.link-item__arrow {
    position: absolute;
    bottom: -53px;
}


@media screen and (max-width:1580px) {
    .link-area__inner {
        max-width: 1280px;
    }

    p.link-item__title {
        font-size: 26px;
    }
}

section.link-area {
    padding-bottom: 180px;
}

.content-title {
    text-align: center;
    padding-bottom: 56px;
}

.content-title p {
    font-size: 14px;
    letter-spacing: 0.2em;
    padding-bottom: 10px;
}

.content-title h2 {
    font-size: 40px;
    font-weight: bold;
    display: inline-block;
    position: relative;
    letter-spacing: 0.1em;
}

.content-title h2:before {
    content: "";
    position: absolute;
    background: url(../img/title_icon.svg);
    width: 50px;
    height: 50px;
    left: -60px;
}

.content-title h2:before {
    content: "";
    position: absolute;
    background: url(../img/title_icon.svg);
    width: 53px;
    height: 61px;
    left: -72px;
    top: -7px;
    background-size: contain;
    background-repeat: no-repeat;
}

.medical-table {
    max-width: 1140px;
    margin: auto;
    border: 3px solid var(--pink);
    border-radius: 16px;
    background: white;
}

.table-row.table-row--header {
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    overflow: hidden;
}

.table-row {
    display: flex;
    border-bottom: 1px solid #c6c6c6;
}

.table-row p {
    font-size: 24px;
    padding: 24px 0;
    width: calc(100% / 7 - 34px);
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    letter-spacing: 0.2em;
}

.table-row.table-row--header p {
    color: white;
    background: var(--pink);
}

.table-row p:first-of-type {
    width: 242px;
}

.table-row.table-row--header p {
    color: white;
    background: var(--pink);
}

span.possible {
    display: block;
    width: 16px;
    height: 16px;
    background: var(--pink);
    border-radius: 20px;
}

span.not-possible {
    display: block;
    width: 16px;
    height: 2px;
    background: var(--text-color);
    border-radius: 10px;
}

.table-row:first-of-type,
.table-row:last-of-type {
    border: 0;
}

.medical-note {
    display: flex;
    justify-content: flex-end;
    gap: 20px;
    padding-top: 20px;
    letter-spacing: 0.2em;
    max-width: 1140px;
    margin: auto;
}

.medical-inner.medical-inner--second {
    padding-top: 64px;
}

.medical-inner.medical-inner--second h3 {
    text-align: center;
    font-size: 30px;
    letter-spacing: 0.1em;
    font-weight: normal;
    padding-bottom: 60px;
}

.medical-list {
    display: flex;
    gap: 24px;
    max-width: 1680px;
    margin: auto;
}

.medical-item {
    position: relative;
    width: calc(100% / 3 - 12px);
    background: var(--back);
    border-radius: 32px;
    padding: 40px;
    border: 3px solid var(--pink);
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 200px;
}


p.medical-item__num {
    position: absolute;
    top: -30px;
    width: 60px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 40px;
    left: calc(50% - 20px);
    background: var(--pink);
    font-size: 30px;
    color: white;
    letter-spacing: 0.1em;
    padding-left: 2px;
    padding-bottom: 4px;
}

p.medical-item__desc {
    letter-spacing: 0.2em;
    font-size: 18px;
    line-height: 1.8em;
}

section.medical {
    padding-bottom: 180px;
}

@media screen and (max-width:1800px) {
    p.medical-item__desc {
        font-size: 16px;
    }
}

@media screen and (max-width:1440px) {
    p.medical-item__desc {
        font-size: 15px;
    }

    .table-row p {
        font-size: 20px;
    }

    .medical-table,
    .medical-note {
        max-width: 960px;
    }
}



section.access.top-section {
    max-width: none;
    position: relative;
}

section.access.top-section:before {
    content: "";
    width: 100%;
    background: url(../img/access_bg.png);
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    left: 0;
    top: -17%;
    z-index: -1;
    background-size: contain;
    aspect-ratio: 1920 / 2010;
    display: block;
}

.access-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 80px 48px;
    /* max-width: 1440px; */
    margin: auto;
    position: relative;
}

.access-inner:after {
    width: 109px;
    height: 82px;
    content: "";
    position: absolute;
    left: -50px;
    bottom: -30px;
    background: url(../img/illust02.png);
    background-repeat: no-repeat;
    background-size: contain;
    z-index: -1;
}

.access-item {
    width: calc(50% - 24px);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

.access-body {
    display: flex;
    align-items: center;
    gap: 32px;
}

img.map {
    width: 100%;
    border: 8px solid var(--pink);
    box-sizing: border-box;
    border-radius: 32px;
}


p.access-desc__title {
    font-size: 30px;
    letter-spacing: 0.1em;
    margin-bottom: 8px;
    font-weight: bold;
}

p.access-desc__sub {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}

.access-item.access-item--pay {
    align-items: flex-start;
    gap: 0;
}

p.pay-title {
    font-size: 30px;
    background: var(--pink);
    color: white;
    padding: 16px 40px;
    letter-spacing: 0.1em;
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
}

.pay-wrap {
    width: 100%;
    background: white;
    border: 8px solid var(--pink);
    border-radius: 24px;
    border-top-left-radius: 0;
    display: flex;
    /*     justify-content: space-around; */
    justify-content: flex-start;
    padding: 58px 32px;
    padding-left: 64px;
    gap: 40px;
}

.pay-wrap ul li img {
    padding-top: 20px;
    width: 90%;
}

.pay-wrap ul {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.pay-wrap ul li p {
    font-size: 22px;
    font-weight: bold;
    letter-spacing: 0.15em;
    white-space: nowrap;
}

@media screen and (max-width:1440px) {
    p.access-desc__title {
        font-size: 24px;
    }

    p.access-desc__sub {
        font-size: 15px;
    }

    p.pay-title {
        font-size: 24px;
    }

    .pay-wrap ul li p {
        font-size: 18px;
    }

    .pay-wrap {
        gap: 20px;
        padding: 42px 18px;
        padding-left: 54px;
    }

    .access-body {
        gap: 24px;
    }

    .pay-wrap ul {
        gap: 24px;
    }

    section.access.top-section:before {
        top: -10%;
    }
}


section.beginner.top-section {
    padding-bottom: 200px;
    padding-top: 160px;
}

.beginner-inner {
    display: flex;
    align-items: center;
    gap: 40px;
    border: 8px solid var(--pink);
    border-radius: 48px;
    padding: 48px 88px;
    max-width: 1440px;
    margin: auto;
    position: relative;
}

.beginner-body h3 {
    font-size: 40px;
    letter-spacing: 0.1em;
    margin-bottom: 32px;
}

.beginner-body p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}

.beginner-body h3 span {
    color: var(--pink);
}

.beginner-body {
    width: 40%;
}

.beginner-image {
    position: absolute;
    right: 40px;
    width: 50%;
}

.beginner-body p:last-of-type {
    margin-top: 32px;
}

.more-button {
    margin-top: 56px;
}

.more-button a {
    display: flex;
    background: var(--pink);
    color: white;
    justify-content: center;
    padding: 24px 40px;
    gap: 10px;
    font-size: 18px;
    letter-spacing: 0.2em;
    border-radius: 24px;
    transition: all 0.3s;
}

.more-button a img {
    transition: all 0.3s;
}

.more-button a:hover {
    background: var(--hoverpink);
}

.more-button a:hover img {
    transform: translateX(5px);
}

@media screen and (max-width:1440px) {
    .beginner-body h3 {
        font-size: 28px;
    }

    .beginner-body p {
        font-size: 15px;
    }

    .more-button a {
        padding: 18px 20px;
        gap: 10px;
        font-size: 16px;
        border-radius: 18px;
    }

    .more-button {
        margin-top: 32px;
    }

    .beginner-inner {
        padding: 48px 68px;
    }
}

section.top-news.top-section {
    padding-top: 60px;
    /* 	    padding-left: 180px;
    padding-right: 180px; */
}

.top-news-title {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.top-news-title a img {
    transition: all 0.3s;
}

.top-news-title a:hover img {
    transform: translateX(5px);
}

.top-news-title h2 {
    font-size: 40px;
    letter-spacing: 0.1em;
}

.top-news-title p {
    font-weight: bold;
    font-size: 18px;
    display: flex;
    gap: 16px;
    letter-spacing: 0.15em;
}

.top-news-inner {
    display: flex;
    gap: 72px;
    max-width: 1440px;
    margin: auto;
}

.top-news-item a {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 32px 16px;
    border-top: 1px solid #c6c6c6;

}

.news-item__thumbnail img {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.top-news-item a * {
    transition: all 0.3s;
}

.top-news-item a:hover * {
    color: var(--pink);
}

.top-news-item:last-of-type a {
    border-bottom: 1px solid #c6c6c6;
}

p.top-news-item__date {
    font-size: 16px;
    letter-spacing: 0.2em;
}

p.top-news-item__title {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.6em;
    /* overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis; */
}

.top-news-title {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 180px;
}

.top-news-list {
    width: calc(100% - 250px);
}

@media screen and (max-width:1440px) {


    p.top-news-item__date {
        font-size: 14px;
    }
}


.clinic-inner {
    display: flex;
    gap: 120px;
    max-width: 1360px;
    margin: auto;
}


.clinic-item {
    width: 50%;
    position: relative;
    border: 8px solid var(--accent);
    border-radius: 48px;
    padding: 90px 72px 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.clinic-item.clinic-item--second h2 span {
    background: var(--pink2);
}

.clinic-item.clinic-item--second {
    border-color: var(--pink2);
}

.clinic-item h2 {
    position: absolute;
    top: -58px;
    position: absolute;
    top: -58px;
    display: flex;
    justify-content: center;
    width: 100%;
    left: 0;
}

.clinic-item h2 span {
    font-size: 40px;
    background: var(--accent);
    display: inline-block;
    padding: 24px 40px;
    border-radius: 24px;
    letter-spacing: 0.1em;
    border: 8px solid var(--back);
}

p.clinic-item__title {
    font-size: 30px;
    width: 100%;
    text-align: left;
    font-weight: bold;
    padding-bottom: 48px;
    letter-spacing: 0.2em;
    line-height: 1.6em;
}

p.clinic-item__desc {
    font-size: 18px;
    line-height: 1.8em;
    letter-spacing: 0.2em;
}

.clinic-item.clinic-item--first:after {
    content: "";
    position: absolute;
    width: 210px;
    height: 172px;
    background: url("../img/illust03.png");
    background-repeat: no-repeat;
    background-size: contain;
    left: -110px;
    bottom: -120px;
}

.clinic-item.clinic-item--second:after {
    content: "";
    position: absolute;
    width: 127px;
    height: 120px;
    background: url(../img/illust04.png);
    background-repeat: no-repeat;
    background-size: contain;
    right: -44px;
    bottom: -40px;
}

.clinic-item .more-button {
    position: absolute;
    bottom: -40px;
}

section.clinic.top-section {
    padding-top: 40px;
}

.clinic-item.clinic-item--first .more-button a {
    background: var(--accent);
    color: var(--black);
    font-weight: bold;
}



@media screen and (max-width:1440px) {
    .clinic-inner {
        gap: 60px;
    }

    p.clinic-item__title {
        font-size: 26px;
    }

    .clinic-item h2 span {
        font-size: 32px;
    }

    p.clinic-item__desc {
        font-size: 16px;
    }

    .clinic-item.clinic-item--first:after {
        width: 160px;
        height: 132px;
        left: -100px;
        bottom: -100px;
    }

    .clinic-item.clinic-item--second:after {
        width: 117px;
        height: 100px;
        right: -54px;
        bottom: -40px;
    }

    .clinic-item {
        padding: 80px 62px 70px;
    }

    .clinic-item .more-button {
        bottom: -35px;
    }
}



.family-title h2 {
    writing-mode: vertical-rl;
    /* 縦書き（右→左） */
    text-orientation: mixed;
    /* 漢字かなは縦、英数は横向きのまま */
    line-height: 1.8;
    font-size: 40px;
    letter-spacing: 0.2em;
    position: relative;
}

.family-title {
    padding-top: 100px;
}

.family-inner {
    display: flex;
    gap: 140px;
    margin-left: auto;
    margin-right: 0;
    padding-left: 120px;
    justify-content: flex-end;
}

.family-content {
    display: flex;
    background: var(--accent);
    padding: 184px 128px 200px;
    border-top-left-radius: 48px;
    border-bottom-left-radius: 48px;
    gap: 10%;
    max-width: 1330px;
    position: relative;
}

.family-body {
    width: 40%;
}

.family-image {
    width: 55%;
}

.family-body p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}

.family-body h3 {
    font-size: 30px;
    display: inline-block;
    position: relative;
    margin-bottom: 40px;
    letter-spacing: 0.1em;
}

.family-image {
    width: 40%;
    position: absolute;
    right: 120px;
    top: -15%;
}

.family-image img {
    border-radius: 48px;
}

section.family {
    padding-top: 180px;
}

.family-title h2:before {
    content: "";
    position: absolute;
    width: 240px;
    height: 212px;
    background: url(../img/illust05.png);
    background-repeat: no-repeat;
    background-size: contain;
    top: -130px;
    left: -160px;
    z-index: -1;
}

.family-content .more-button a {
    background: #89B56D;
}

.family-content .more-button a:hover {
    background: #64a13e;
}

.family-body h3:before {
    content: "";
    width: 100%;
    height: 10px;
    background: url(../img/title-line.svg);
    background-size: 100%;
    background-repeat: no-repeat;
    position: absolute;
    bottom: -20px;
    left: 0;
}

@media screen and (max-width:1440px) {

    .family-content {
        display: flex;
        background: var(--accent);
        padding: 100px 80px 120px;
        border-top-left-radius: 48px;
        border-bottom-left-radius: 48px;
        gap: 10%;
    }

    .family-body p {
        font-size: 16px;
        letter-spacing: 0.2em;
        line-height: 1.6em;
    }

    .family-body h3 {
        font-size: 24px;
        margin-bottom: 40px;
    }

    .family-title h2 {
        font-size: 32px;
    }

    .family-inner {
        display: flex;
        gap: 100px;
        margin-left: auto;
        margin-right: 0;
        padding-left: 140px;
        justify-content: flex-end;
    }

    .family-title h2:before {
        content: "";
        position: absolute;
        width: 220px;
        height: 182px;
        background: url(../img/illust05.png);
        background-repeat: no-repeat;
        background-size: contain;
        top: -120px;
        left: -140px;
        z-index: -1;
    }
}




section.contact-area {
    /* background: var(--accent); */
    margin-top: 100px;
    padding-left: 120px;
    padding-right: 120px;
    padding-bottom: 60px;
}

.top-bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: -60px;
    padding: 80px 30px 0 140px;
    background: var(--accent);
    position: relative;
}

.top-bottom:before {
    content: "";
    position: absolute;
    width: 100%;
    height: 200px;
    background: url("../img/footer-bg.png");
    background-size: 120%;
    background-position: center bottom;
    background-repeat: no-repeat;
    left: 0;
    top: -190px;
    z-index: -1;
}


.top-bottom__left,.top-bottom__right {
    position: relative;
    top: 5px;
}

.contact-banner a {
    display: flex;
    background: var(--pink);
    max-width: 1440px;
    margin: auto;
    border-radius: 32px;
    overflow: hidden;
    position: relative;
    transition: all 0.3s;
}

.contact-banner a:hover {
    background: var(--hoverpink);
}

.contact-banner a .contact-banner__body img {
    transition: all 0.3s;
}

.contact-banner a:hover .contact-banner__body img {
    transform: translateX(10px);
}

.contact-banner__image {
    width: 60%;
}

.contact-banner__body {
    width: 40%;
}


.contact-banner__body {
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
}


.contact-banner__body p {
    font-size: 40px;
    font-weight: bold;
    letter-spacing: 0.1em;
    color: white;
}

.contact-banner__body img {
    width: 43px;
}



@media screen and (max-width:1440px) {
    .contact-banner__body p {
        font-size: 28px;
    }

    .contact-banner__body img {
        width: 34px;
    }
}


.footer-inner {
    display: flex;
    justify-content: space-between;
    padding: 80px 80px;
}

.footer-info-wrapper {
    display: flex;
    align-items: center;
    gap: 48px;
}

.footer-info {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.footer-info h4 {
    font-size: 30px;
    letter-spacing: 0.1em;
    line-height: 1.4em;
}

.footer-info p:nth-child(3) {
    font-size: 20px;
    letter-spacing: 0.16em;
}

.footer-info p:nth-child(4) {
    font-size: 14px;
    letter-spacing: 0.2em;
    line-height: 1.6em;
}

.footer-info__tel a {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 40px;
    letter-spacing: 0.1em;
    font-weight: bold;
}
.footer-info__fax p {
    font-size: 18px;
    letter-spacing: 0.16em;
}
.footer-info__tel img {
    width: 50px;
}

ul.footer-banner {
    display: flex;
    gap: 24px;
    width: 100%;
}

.footer-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    padding-top: 32px;
}

.footer-link p {
    font-size: 18px;
    letter-spacing: 0.2em;
}

ul.footer-banner li {
    width: 50%;
}

ul.footer-banner li a {
    width: 100%;
    display: flex;
    background: var(--pink);
    padding: 14px 30px;
    border-radius: 40px;
    color: white;
    font-weight: bold;
    letter-spacing: 0.15em;
    gap: 8px;
    justify-content: center;
    transition: all 0.3s;
    white-space: nowrap;
}

ul.footer-banner li.line-banner a {
    background: #4CC764;
}



ul.footer-banner li.web-banner a:hover {
    background: var(--hoverpink);
}

ul.footer-banner li.line-banner a:hover {
    background: #35b74e;
}


ul.footer-banner li a img {
    transition: all 0.3s;
}

ul.footer-banner li a:hover img {
    transform: translateX(5px);
}

.footer-nav-list {
    display: flex;
    gap: 48px;
}

.footer-nav-list ul {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 326px;
}

.footer-nav-list ul li a {
    font-size: 18px;
    letter-spacing: 0.2em;
    position: relative;
    padding-left: 20px;
    transition: all 0.3s;
}

.footer-nav-list ul li a:hover {
    color: var(--pink);
}

.footer-nav-list ul li a:before {
    content: "";
    position: absolute;
    width: 13px;
    height: 11px;
    background: url(../img/list-icon.svg);
    top: 9px;
    left: 0;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

ul.footer-nav-child li a {
    font-size: 14px;
    padding-left: 26px;
}

ul.footer-nav-child li a:before {
    content: "";
    position: absolute;
    width: 20px;
    height: 2px;
    background: url(../img/list-icon2.svg);
    top: 9px;
    left: -2px;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

ul.footer-nav-child {
    gap: 12px;
    padding-top: 12px;
}

.footer-nav {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.subject p {
    font-size: 18px;
    letter-spacing: 0.2em;
    color: var(--pink);
}

.subject ul {
    display: flex;
    gap: 20px;
    padding-top: 10px;
}

.subject ul li {
    font-size: 14px;
    letter-spacing: 0.2em;
}

.footer-nav-bottom div:last-of-type {
    display: flex;
    justify-content: space-between;
    padding-top: 48px;
}

.footer-nav-bottom div:last-of-type p {
    letter-spacing: 0.2em;
    font-size: 14px;
}

p.privacy a {
    transition: all 0.3s;
}

p.privacy a:hover {
    color: var(--pink);
}

@media screen and (max-width:1560px) {
    .footer-nav-list ul {
        width: auto;
    }

    .footer-info h4 {
        font-size: 24px;
    }

    .footer-info__tel a {
        font-size: 32px;
        gap: 10px;
    }

    .footer-info__tel img {
        width: 32px;
    }

    .footer-info p:nth-child(3) {
        font-size: 18px;
    }

    .footer-nav-list ul li a {
        font-size: 16px;
    }

    ul.footer-nav-child li a {
        font-size: 14px;
    }

    .footer-inner {
        gap: 40px;
    }
}


.heading {
    margin-top: 120px;
    position: relative;
}

.page-title-wrap {
    position: absolute;
    bottom: -72px;
    min-width: 25%;
    background: var(--pink);
    color: white;
    display: flex;
    justify-content: flex-end;
    padding: 32px;
    padding-right: 60px;
    border-top-right-radius: 48px;
    border-bottom-right-radius: 48px;
    padding-left: 120px;
}

.heading-bg {
    width: 80%;
    margin-left: auto;
    max-width: 1560px;
    border-top-left-radius: 48px;
    border-bottom-left-radius: 48px;
    overflow: hidden;
}

.heading-bg img {
    width: 100%;
}

p.page-title__en {
    font-size: 30px;
    color: white;
    letter-spacing: 0.1em;
    padding-bottom: 10px;
}

.page-title h2 {
    font-size: 40px;
    color: white;
    letter-spacing: 0.1em;
}

@media screen and (max-width:1440px) {
    .page-title h2 {
        font-size: 32px;
    }

    p.page-title__en {
        font-size: 22px;
    }

    .page-title-wrap {
        border-top-right-radius: 36px;
        border-bottom-right-radius: 36px;
    }
}


main.page {
    padding-top: 200px;
    padding-bottom: 200px;
    padding-left: 120px;
    padding-right: 120px;
}

.arhive-wrap {
    display: flex;
    justify-content: flex-end;
    max-width: 1440px;
    margin: auto;
    gap: 120px;
}

nav.side-nav {
    width: 200px;
}



.page-nation ul {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
    padding-top: 80px;
    width: 200px;
    margin: auto;
    position: relative;
}


.news-archive,
.news-detail {
    width: calc(100% - 320px);
}

.page-nation ul li.prev a {
    display: flex;
    align-items: center;
    padding: 16px 20px;
    background: var(--back);
    border: 2px solid var(--pink);
    border-radius: 40px;
    letter-spacing: 0.2em;
    color: var(--pink);
    gap: 8px;
    font-weight: bold;
    font-size: 18px;
    box-shadow: 3px 3px;
    width: auto;
}

.page-nation ul li.next a {
    display: flex;
    align-items: center;
    padding: 16px 20px;
    background: var(--back);
    border: 2px solid var(--pink);
    border-radius: 40px;
    letter-spacing: 0.2em;
    color: var(--pink);
    gap: 8px;
    font-weight: bold;
    font-size: 18px;
    box-shadow: 3px 3px;
    width: auto;
}

.page-nation ul li a span {
    color: var(--pink);
}

.page-nation ul li * {
    font-size: 18px;
    font-weight: bold;
    color: #C0BCBA;
}

.page-nation ul li a {
    display: flex;
    display: flex;
    width: 38px;
    justify-content: center;
    padding-bottom: 10px;
    padding-top: 10px;
}

span.page-numbers.current {
    color: var(--pink);
    border-bottom: 2px dotted var(--pink);
    display: flex;
    width: 38px;
    justify-content: center;
    border-radius: 2px;
    padding-bottom: 10px;
    padding-top: 10px;
}


span.page-numbers.dots {
    padding-bottom: 12px;
    display: block;
}


li.next {
    position: absolute;
    right: -200px;
}

li.prev {
    position: absolute;
    left: -200px;
}

.page-nation ul li a img {
    transition: 0.2s;
}

.page-nation ul li.next a:hover img {
    transform: translateX(5px);
}

.page-nation ul li.prev a:hover img {
    transform: translateX(-5px);
}

.news-item a {
    display: flex;
    align-items: center;
    gap: 56px;
    transition: 0.3s;
}

.news-item a:hover {
    opacity: 0.8;
}

.news-item__thumbnail {
    width: 45%;
}

.news-item__body {
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 55%;
}

.news-meta {
    display: flex;
    gap: 16px;
    align-items: center;
}

p.news-meta__date {
    font-size: 14px;
    letter-spacing: 0.2em;
}

p.news-meta__category {
    background: var(--pink);
    color: white;
    padding: 4px 14px;
    font-size: 14px;
    letter-spacing: 0.2em;
    border-radius: 20px;
}

.news-item__body h4 {
    font-size: 22px;
    letter-spacing: 0.1em;
    line-height: 1.4em;
}

p.news-item__desc {
    font-size: 18px;
    line-height: 1.8em;
    letter-spacing: 0.2em;
}

.news-list {
    display: flex;
    flex-direction: column;
    gap: 80px;
}

nav.side-nav ul {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

nav.side-nav ul li a:before {
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    background: #C0BCBA;
    left: 0px;
    border-radius: 10px;
    top: 11px;
}

nav.side-nav ul li a {
    position: relative;
    padding-left: 18px;
    font-size: 18px;
    color: #C0BCBA;
    font-weight: bold;
    letter-spacing: 0.15em;
    transition: 0.3s;
}

nav.side-nav ul li a:hover:before {
    background: var(--pink);
}

nav.side-nav ul li a:hover {
    color: var(--pink);
}

nav.side-nav ul li.active a {
    color: var(--pink);
}

nav.side-nav ul li.active a:before {
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    background: url(../img/list-icon.svg);
    left: -2px;
    border-radius: 0;
    top: 10px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}


.news-title h2 {
    padding-top: 24px;
    font-size: 40px;
    letter-spacing: 0.1em;
    color: var(--text-color);
}

.news-content {
    padding-top: 16px;
}

.news-content p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
    padding: 16px 0;
}

.news-content h2,
.news-content h3,
.news-content h4 {
    padding: 16px 0;
    letter-spacing: 0.1em;
}

.news-content h2 {
    font-size: 30px;
}

.news-content h3 {
    font-size: 26px;
}

.news-content h4 {
    font-size: 22px;
}

.news-content figure {
    padding: 16px 0;
    margin: 0;
}

.page-nation ul li.back a {
    width: auto;
    letter-spacing: 0.2em;
    color: var(--pink);
    border-bottom: 2px dotted var(--pink);
    padding: 10px 16px;
}


.page-nation.page-nation--single ul {
    width: 100px;
}

.wp-block-image img {
    border-radius: 28px;
}

@media screen and (max-width:1440px) {
    .arhive-wrap {
        gap: 60px;
    }

    .news-archive,
    .news-detail {
        width: calc(100% - 260px);
    }

    p.news-item__desc {
        font-size: 16px;
    }

    .news-content p {
        font-size: 16px;
    }

    .news-title h2 {
        font-size: 32px;
    }
}





main.page.page--about {
    padding-left: 0;
    padding-right: 0;
}

main.page.page--about .page-inner {
    padding-left: 120px;
    padding-right: 120px;
}

.about-addwrap {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 10px;
}

.about-mail p img {
    padding-top: 7px;
}

.about-mail p {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
}

.about-mail {
    padding-top: 20px;
}

.max-1360 {
    max-width: 1360px;
    margin: auto;
    padding-bottom: 120px;
}

.max-1440 {
    max-width: 1440px;
    margin: auto;
    padding-bottom: 120px;
}

.greeting-image img {
    width: 100%;
}

.greeting-image {
    border-radius: 48px;
    overflow: hidden;
    max-width: 480px;
    width: 35%;
}

.greeting-inner {
    display: flex;
    gap: 88px;
    align-items: flex-start;
}

.greeting-body h3 {
    font-size: 30px;
    letter-spacing: 0.1em;
}

.greeting-body h3 span {
    color: var(--pink);
}

.greeting-body {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

p.greeting-body__desc {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}

.profile {
    display: flex;
    gap: 80px;
    padding-top: 20px;
}

.greeting-body {
    display: flex;
    flex-direction: column;
    gap: 32px;
    max-width: 872px;
    width: 65%;
}

.profile div {
    width: 50%;
}

p.profile-title span {
    display: inline-block;
    background: var(--accent);
    padding: 10px 16px;
    font-size: 22px;
    letter-spacing: 0.1em;
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

p.profile-title {
    border-bottom: 1px solid var(--accent);
}

.profile ul li:before {
    content: "";
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 8px;
    background: var(--accent);
    left: 0;
    top: 11px;
}

.profile ul li {
    position: relative;
    font-size: 16px;
    letter-spacing: 0.2em;
    padding-left: 20px;
    line-height: 1.8em;
}

.profile ul {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-top: 16px;
}

@media screen and (max-width:1440px) {
    p.greeting-body__desc {
        font-size: 16px;
    }

    .profile {
        gap: 40px;
    }
}



.philosophy-inner {
    max-width: 1280px;
    margin: auto;
    position: relative;
    margin-top: 70px;
}

.max-1280 {
    max-width: 1280px;
    margin: auto;
    padding-bottom: 120px;
}


.philosophy-body p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}

.philosophy-body h3 {
    font-size: 30px;
    letter-spacing: 0.1em;
    padding-bottom: 32px;
}

.philosophy-body {
    padding: 96px 144px 96px 96px;
    background: var(--pink2);
    border-radius: 64px;
    width: 70%;
}

p.philosophy-item__title {
    font-size: 22px;
    font-weight: bold;
    padding-bottom: 16px;
}

.philosophy-item {
    padding-bottom: 32px;
}

.philosophy-item:last-of-type {
    padding-bottom: 0;
}

.philosophy-image {
    position: absolute;
    top: -70px;
    right: 0;
    width: 36%;
    border: 8px solid var(--pink);
    border-radius: 64px;
    overflow: hidden;
}


@media screen and (max-width:1440px) {
    .philosophy-body p {
        font-size: 16px;
    }

    .philosophy-image {
        border-width: 6px;
    }

    .philosophy-image,
    .philosophy-body {
        border-radius: 48px;
    }
}


.about-map {
    margin-top: 60px;
}

.about-inner h4 {
    text-align: center;
    font-size: 30px;
    letter-spacing: 0.1em;
    padding-bottom: 32px;
}

.about-inner p {
    text-align: center;
    font-size: 18px;
    letter-spacing: 0.2em;
}

.access.access--page {
    padding-top: 80px;
    padding-bottom: 120px;
}


.access.access--page .access-inner:after {
    display: none;
}

.history-title h3 {
    font-size: 30px;
    letter-spacing: 0.1em;
    color: var(--pink);
}

.history-title {
    width: 120px;
}


.history-inner {
    display: flex;
    gap: 48px;
}

.history-item {
    display: flex;
    padding: 28px 0;
    border-top: 1px solid #C0BCBA;
    align-items: center;
}

.history-item p:first-of-type {
    width: 200px;
    font-size: 18px;
    letter-spacing: 0.2em;
    font-weight: bold;
}

.history-item p:last-of-type {
    font-size: 18px;
    letter-spacing: 0.2em;
    text-align: left;
    width: calc(100% - 200px);
    line-height: 1.6em;
}

.history-item:last-of-type {
    border-bottom: 1px solid #c0bcba;
}


@media screen and (max-width:1440px) {

    .history-item p:first-of-type,
    .history-item p:last-of-type {
        font-size: 16px;
    }
}



.gallery-slide__item {
    padding: 10px;
}

.gallery-inner {
    max-width: calc(100% - 120px);
    margin: 0 auto;
    padding: 0;
    margin-left: auto;
    margin-right: 0;
}

.gallery-slide {
    width: 100%;
}

.gallery-slide__item {
    overflow: hidden;
    border-radius: 12px;
    text-align: center;
}

.gallery-slide__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.gallery-slide__desc:before {
    width: 100%;
    height: 100%;
    content: "";
    position: absolute;
    background: #2D2D2D;
    left: 0;
    top: 0;
    border-radius: 48px;
    border: 4px solid #2D2D2D;
    z-index: -1;
}

.gallery-slide__desc {
    display: inline-block;
    background: var(--accent);
    padding: 16px 48px;
    border-radius: 48px;
    border: 4px solid #2D2D2D;
    margin-top: 16px;
    letter-spacing: 0.1em;
    position: relative;
    font-weight: bold;
}

/* スクロールバーの太さや角丸 */
.gallery-inner .swiper-scrollbar {
    height: 6px;
    border-radius: 999px;
}

.gallery-inner .swiper-scrollbar-drag {
    border-radius: 999px;
}

/* トラック（枠）を220px＆中央配置 */
.gallery-slide.swiper-horizontal>.swiper-scrollbar {
    position: absolute;
    bottom: 10px;
    width: 220px !important;
    height: 8px;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%);
    background: rgba(234, 111, 111, 0.25);
    border-radius: 999px;
}

/* ●ポインター（transformは指定しない） */
.gallery-slide .swiper-scrollbar-drag {
    width: 16px;
    /* 見た目も16pxに合わせる */
    height: 16px;
    background: #ea6f6f;
    border-radius: 50%;
    top: 50%;
    margin-top: -8px;
}


.swiper.gallery-slide.swiper-initialized.swiper-horizontal.swiper-backface-hidden {
    padding-bottom: 60px;
}

.swiper-slide.gallery-slide__item {
    height: auto;
}

.swiper-slide.gallery-slide__item img {
    aspect-ratio: 450 / 400;
    width: 100%;
    height: auto;
    /* ← これがポイント */
}

.gallery-slide__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 48px;
    border: 8px solid var(--pink);
}


.what {
    max-width: 1200px;
    margin: auto;
    display: flex;
    flex-direction: column;
    gap: 96px;
}

.what-intro p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}

.what-intro h3 {
    font-size: 30px;
    line-height: 1.8em;
    letter-spacing: 0.1em;
    padding-bottom: 32px;
}

.point {
    display: flex;
    flex-wrap: wrap;
    gap: 48px 72px;
    align-items: flex-start;
}

.point-item {
    width: calc(50% - 36px);
    border: 1px solid var(--pink);
    border-radius: 8px;
    overflow: hidden;
}

.point-item h4 {
    font-size: 22px;
    background: var(--pink);
    color: white;
    font-weight: normal;
    text-align: center;
    padding: 12px 16px;
    line-height: 1.6em;
}

.point-item p {
    padding: 32px;
    line-height: 1.8em;
    letter-spacing: 0.2em;
    font-size: 18px;
}

.what-message h4 {
    font-size: 30px;
    letter-spacing: 0.2em;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    position: relative;
    line-height: 1.6em;
}

.what-message p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}

.what-message {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 176px;
    max-width: 832px;
    margin: auto;
}

@media screen and (max-width:1440px) {
    .point-item p {
        font-size: 16px;
    }

    .point-item h4 {
        font-size: 20px;
    }

    .what-intro p {
        font-size: 16px;
    }
}

/*
.point-item.point-item--first {
    background: var(--pink2);
}

.point-item {
    width: calc(50% - 40px);
    max-width: 550px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 48px;
    padding: 0 72px 176px;
    border-radius: 300px;
    position: relative;
}

.point {
    display: flex;
    gap: 80px;
}

.point-item__body h4 {
    font-size: 28px;
    letter-spacing: 0.1em;
    padding-bottom: 16px;
    line-height: 1.4em;
}

.point-item__body p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.6em;
}

.point-item.point-item--second {
    background: var(--accent);
}

.point {
    display: flex;
    gap: 80px;
    justify-content: center;
}

.point-item.point-item--first:after {
    content: "";
    position: absolute;
    width: 310px;
    height: 220px;
    background: url(../img/family-medicine/family-medicine03.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    right: -200px;
    bottom: -80px;
}
*/
.cta {
    padding-top: 160px;
    max-width: 1200px;
    margin: auto;
}

.cta h3 span {
    color: var(--pink);
    display: inline-block;
    position: relative;
}

.cta h3 span:after {

    transform: rotate(45deg);
    content: "";
    width: 17px;
    height: 17px;
    background: #fffaf7;
    position: absolute;
    left: 50%;
    bottom: -25px;
    transform: translateX(-50%) rotate(45deg);
    border-bottom: 2px solid var(--pink);
    border-right: 2px solid var(--pink);
}

.cta h3 span:before {
    content: "";
    width: 100%;
    height: 2px;
    background: var(--pink);
    position: absolute;
    bottom: -16px;
}

.cta h3 {
    font-size: 40px;
    text-align: center;
    letter-spacing: 0.1em;
    /* color: var(--pink); */
}

p.cta-desc {
    font-size: 18px;
    text-align: center;
    letter-spacing: 0.2em;
    line-height: 1.8em;
    padding-top: 60px;
}

.cta-banner-wrap {
    display: flex;
    gap: 50px;
}

.cta-banner-wrap>div {
    border-radius: 48px;
    display: flex;
    width: 100%;
}

.cta-banner-wrap>div a {
    display: flex;
    padding: 32px 48px;
    align-items: center;
    gap: 48px;
    border-radius: 48px;
    width: 100%;
}

.cta-banner__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 60%;
}

.cta-banner.cta-banner--web * {
    color: white;
}

.cta-banner__content h4 {
    font-size: 40px;
    letter-spacing: 0.15em;
}

.cta-banner__content p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.6em;
}

.cta-banner.cta-banner--web a {
    background: var(--pink);
}

.cta-banner.cta-banner--line a {
    background: var(--accent);
}

img.cta-more {
    width: 32px;
}

.cta-banner-wrap {
    display: flex;
    gap: 50px;
    padding-top: 80px;
}

.cta-banner.cta-banner a img.cta-more {
    transition: 0.3s;
}

.cta-banner.cta-banner a:hover img.cta-more {
    transform: translateX(10px);
}


.cta.cta--information.cta--bottom {
    padding-bottom: 0;
    padding-top: 160px;
}


@media screen and (max-width:1440px) {

    /*
    .point-item__body p {
        font-size: 16px;
    }

    .point-item.point-item--first:after {
        content: "";
        position: absolute;
        width: 260px;
        height: 180px;
        background: url(../img/family-medicine/family-medicine03.png);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        right: -170px;
        bottom: -60px;
    }
*/
    .cta-banner__content h4 {
        font-size: 32px;
    }

    .cta-banner__content p {
        font-size: 16px;
    }

    .cta-banner-wrap>div a {
        gap: 32px;
    }

    p.cta-desc {
        font-size: 16px;
    }
}



/* .cta.cta--information {
    max-width: 1440px;
}

.cta.cta--information .cta-banner__content h4 {
    text-align: center;
}

.cta.cta--information {
    max-width: 1440px;
    padding-top: 0;
    padding-bottom: 120px;
} */
.cta.cta--information {
    padding-top: 0;
    padding-bottom: 120px;
}

.faq-item {
    border: 8px solid var(--pink);
    border-radius: 40px;
    padding: 48px;
    cursor: pointer;
}

.question {
    position: relative;
}

.question {
    display: flex;
    align-items: center;
    gap: 56px;
}

.answer__inner {
    display: flex;
    align-items: center;
    gap: 56px;
}

p.faq-item__title {
    font-size: 22px;
    letter-spacing: 0.1em;
    width: calc(100% - 180px);
    font-weight: bold;
}

p.faq-item__desc {
    width: calc(100% - 126px);
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}

p.faq-item__icon {
    display: flex;
    width: 68px;
    height: 68px;
    background: var(--pink);
    justify-content: center;
    align-items: center;
    border-radius: 50px;
    color: white;
    font-size: 30px;
    position: relative;
    font-weight: bold;
}



p.faq-item__icon.faq-item__icon--answer {
    background: var(--accent);
    color: var(--black);
}

p.faq-item__icon:before {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-right: 0;
    z-index: -1;
}

.question p.faq-item__icon:before {
    border-left: 20px solid var(--pink);
    left: -4px;
    bottom: 0;
    transform: rotate(135deg);
}

.answer p.faq-item__icon:before {
    border-left: 20px solid var(--accent);
    right: -4px;
    bottom: 0;
    transform: rotate(35deg);
}

.faq-inner {
    display: flex;
    flex-direction: column;
    gap: 64px;
    padding-left: 40px;
    padding-right: 40px;
}

.answer {
    max-height: 0;
    /* 初期は閉じる */
    overflow: hidden;
    transition: max-height 0.4s ease, opacity 0.4s ease;
    opacity: 0;
}

.faq-item.active .answer {
    max-height: 500px;
    /* 十分大きめに指定（答えが収まる高さ） */
    opacity: 1;
}

.answer__inner {
    padding-top: 56px;
}

.accordion {
    position: absolute;
    right: 0;
    width: 46px;
    height: 46px;
}

.accordion span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 5px;
    background: var(--pink);
    border-radius: 2px;
    transform: translate(-50%, -50%) rotate(0deg);
    transition: transform 0.3s ease;
}

/* 縦棒 */
.accordion span:last-of-type {
    transform: translate(-50%, -50%) rotate(90deg);
}

/* active時 → マイナスに */
.faq-item.active .accordion span:last-of-type {
    transform: translate(-50%, -50%) rotate(0deg);
}


.contact-banner.contact-banner--page {
    position: static;
}

@media screen and (max-width:1440px) {
    p.faq-item__desc {
        font-size: 16px;
    }

    p.faq-item__title {
        font-size: 20px;
    }

    .faq-item {
        border: 5px solid var(--pink);
    }
}



.contact-flow {
    width: 100px;
}

.contact-inner {
    width: calc(100% - 220px);
}

.contact-wrap.max-1440 {
    display: flex;
    gap: 120px;
}

p.contact-content__desc {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.6em;
}

p.contact-content__note {
    font-size: 14px;
    letter-spacing: 0.2em;
    padding-top: 20px;
    line-height: 1.6em;
}

.contact-flow ul li p {
    font-size: 18px;
    letter-spacing: 0.15em;
    line-height: 1.6em;
    color: var(--pink);
    font-weight: bold;
}

.contact-flow ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 37px;
}

.contact-flow ul li:before {
    content: "";
    position: absolute;
    width: 2px;
    height: 30px;
    background: var(--pink);
    left: 50%;
    top: -34px;
    border-radius: 2px;
}

.contact-flow ul li {
    position: relative;
}

.contact-flow ul li:first-of-type:before {
    display: none;
}


.contact-flow ul li {
    opacity: 0.3;
}

.contact-flow ul li.active {
    opacity: 1;
}


.heading-simple {
    padding-top: 120px;
    padding-bottom: 80px;
}

.heading-simple h2 {
    font-size: 40px;
    letter-spacing: 0.1em;
}

.privacy-policy p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}


.privacy-policy-list {
    display: flex;
    flex-direction: column;
    gap: 48px;
    padding-top: 48px;
}

.privacy-policy-item h4 {
    font-size: 24px;
    letter-spacing: 0.1em;
    padding-bottom: 20px;
    color: var(--text-color2);
}

.privacy-policy.max-1440 {
    padding-bottom: 0;
}

@media screen and (max-width:1440px) {
    .privacy-policy p {
        font-size: 16px;
    }
}


.disclosure-list {
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.disclosure-item h4 {
    font-size: 24px;
    letter-spacing: 0.1em;
    padding-bottom: 32px;
    color: var(--text-color2);
}

p.disclosure-item__desc,
p.disclosure-item__sub-desc,
p.disclosure-item__sub-title {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}

p.disclosure-item__sub-title {
    padding-bottom: 6px;
}

ul.disclosure-sublist li {
    padding-bottom: 28px;
}


.medical-inner.medical-inner--disclosure .medical-table,
.medical-inner.medical-inner--disclosure .medical-note {
    max-width: 1140px;
    margin-left: 0;
}




h3.guide-item__title {
    font-size: 40px;
    letter-spacing: 0.1em;
    color: var(--pink);
    padding-bottom: 32px;
    line-height: 1.4em;
}


.more-button.more-button--guide {
    display: flex;
}

.more-button.more-button--guide a img {
    width: 32px;
}

.more-button.more-button--guide {
    margin-top: 0px;
}

.more-button.more-button--guide a {
    border-radius: 100px;
    font-size: 22px;
    align-items: center;
    gap: 20px;
    padding: 18px 30px;
    height: 70px;
}

.more-button.more-button--guide a img.web-icon {
    transform: none;
}

.guide-item__desc p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.8em;
}

.button-wrap {
    padding-bottom: 56px;
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
}

.guide-item:first-of-type {
    padding-top: 120px;
}

.guide {
    display: flex;
    flex-direction: column;
    gap: 160px;
}

.more-button.more-button--guide.more-button--pt2 a {
    background: var(--pink2);
    color: var(--pink);
}

.more-button.more-button--guide.more-button--line a {
    background: #4CC764;
}

.guide-item__desc p span.bold {
    font-weight: bold;
}


.guide-item__desc p span.pink {
    color: var(--pink);
}

.guide-item__desc p a {
    color: var(--pink);
}


.access-item.access-item--guide img.map {
    width: 50%;
}

.access-item.access-item--guide {
    display: flex;
    flex-direction: row;
    width: 100%;
    padding: 32px 0;
}


.guide-item__desc.guide-item__desc--pt2 {
    padding-bottom: 48px;
}

.guide-item__desc.guide-item__desc--pt2 .more-button.more-button--guide {
    margin-top: 24px;
}

@media screen and (max-width: 1080px) {
    .guide-item__desc p {
        font-size: 16px;
        letter-spacing: 0.14em;
        line-height: 1.8em;
    }

    h3.guide-item__title {
        font-size: 24px;
        letter-spacing: 0.2em;
        font-weight: bold;
    }

    .guide-item:first-of-type {
        padding-top: 32px;
    }
}

.js-fade-item {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .6s ease, transform .6s ease;
}

.js-fade-item.is-in {
    opacity: 1;
    transform: none;
}



.sp-block {
    display: none;
}


p.post {
    letter-spacing: 0.2em;
}

.sp-nav {
    display: none;
}

.contact-complete .more-button {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 80px;
}

.contact-complete .more-button a {
    width: 260px;
}


/* 678px以上は矢印非表示 */
@media (min-width: 679px) {

    .gallery-slide .swiper-button-prev,
    .gallery-slide .swiper-button-next {
        display: none;
    }
}

/*    スマホ以下　*/
@media screen and (max-width:1080px) {
    .sp-nav {
        display: block;
    }

    .sp-none {
        display: none;
    }

    nav.pc-nav {
        display: none;
    }

    h1 img {
        width: 135px;
    }

    header {
        padding: 16px;
    }

    .mv-main {
        flex-direction: column;
        align-items: center;
        gap: 44px;
        padding: 20px;
    }

    .mv-content p {
        font-size: 22px;
        text-align: center;
    }

    span.rubi:before {
        left: 3px;
        top: -10px;
        letter-spacing: 0.1em;
        font-size: 10px;
    }

    .mv {
        height: auto;
    }

    .mv-logo {
        width: 100%;
    }

    .mv-title {
        display: none;
    }

    .mv-main {
        height: 580px;
    }

    .mv-bg {
        top: -40px;
        width: 100%;
    }

    .waiting {
        width: 90%;
        padding: 20px 20px 20px 30px;
        gap: 14px;
        border-top-left-radius: 100px;
        border-bottom-left-radius: 100px;
        bottom: -50px;
        align-items: flex-end;
    }

    p.waiting-content__title {
        font-size: 14px;
        padding: 10px 18px;
    }

    p.waiting-content__text1 {
        font-size: 22px;
        letter-spacing: 0.1em;
    }

    p.waiting-content__time {
        font-size: 12px;
    }

    .waiting-image {
        width: 35%;
    }

    .waiting-content div {
        padding-top: 14px;
    }

    .mv-content p:first-of-type {
        margin-bottom: 32px;
    }

    .top-section {
        padding-left: 20px;
        padding-right: 20px;
    }

    section.access.top-section {
        padding-bottom: 100px;
    }

    section.top-news.top-section {
        padding-top: 0;
    }

    section.link-area {
        padding-bottom: 100px;
    }

    .link-area__inner {
        gap: 24px;
    }

    .link-item {
        width: calc(50% - 12px);
    }

    .link-item a {
        border-radius: 40px;
        border-width: 4px;
        padding: 24px 10px 30px 10px;
        gap: 8px;
        justify-content: center;
    }

    .link-item.link-item--first .link-item__image {
        margin-bottom: 0;
    }

    p.link-item__title {
        font-size: 14px;
    }

    .link-item.link-item--second .link-item__image {
        padding-bottom: 20px;
    }

    .link-item__arrow {
        position: absolute;
        bottom: -15px;
        width: 30px;
    }

    .link-item.link-item--sixth .link-item__title span {
        font-size: 14px;
        display: block;
        margin-top: 0px;
    }

    .link-item.link-item--sixth .link-item__image {
        padding-bottom: 10px;
    }

    section.link-area {
        padding-bottom: 100px;
    }

    section.top-news.top-section {
        padding-bottom: 100px;
    }

    section.top-news.top-section {
        padding-top: 160px;
    }

    .link-area__inner:after {
        display: none;
    }

    .content-title h2 {
        font-size: 22px;
    }

    .content-title p {
        font-size: 10px;
    }

    .content-title h2:before {
        width: 36px;
        height: 42px;
        left: -66px;
        top: -14px;
    }

    .table-row p:first-of-type {
        width: auto;
    }

    .table-row p {
        width: auto;
        font-size: 13px;
        white-space: nowrap;
        letter-spacing: 0.1em;
        height: 40px;
        padding: 0;
    }

    .table-row {
        flex-direction: column;
        width: calc(100% / 4);
        border-bottom: 0;
        border-right: 1px solid hsl(0deg 0% 0% / 20%);
    }

    .table-row p {
        border-bottom: 1px solid hsl(0deg 0% 0% / 20%);
    }

    .table-row.table-row--header p {
        border: 0;
    }

    .table-row p:last-of-type {
        border: none;
    }


    .medical-table {
        display: flex;
    }

    .table-row.table-row--header {
        border-top-left-radius: 12px;
        border-bottom-left-radius: 12px;
        border-top-right-radius: 0;
    }

    span.possible {
        width: 10px;
        height: 10px;
    }

    span.not-possible {
        width: 10px;
    }

    .medical-note p {
        font-size: 14px;
    }

    .medical-inner.medical-inner--second h3 {
        font-size: 18px;
        font-weight: bold;
    }

    .medical-item {
        width: 100%;
        padding: 40px 26px;
        min-height: 160px;
    }

    p.medical-item__num {
        width: 48px;
        height: 48px;
        font-size: 20px;
        top: -25px;
    }

    .medical-inner.medical-inner--second {
        padding-top: 100px;
    }

    p.medical-item__desc {
        letter-spacing: 0.14em;
        font-size: 16px;
    }

    .medical-list {
        flex-direction: column;
        gap: 40px;
    }

    .sp-block {
        display: block;
    }

    section.access.top-section:before {
        display: none;
    }

    .access-inner {
        flex-direction: column;
        gap: 48px;
    }

    .access-item {
        width: 100%;
    }

    p.access-desc__title {
        font-size: 16px;
        margin-bottom: 12px;
    }

    .access-body img {
        width: 40px;
    }

    section.medical {
        padding-bottom: 100px;
    }

    p.access-desc__sub {
        font-size: 16px;
        letter-spacing: 0.14em;
    }

    .access-item.access-item--first p.access-desc__sub span {
        display: inline-block;
        width: 20px;
    }

    .pay-wrap {
        flex-direction: column;
        padding: 42px 26px;
        padding-left: 40px;
        border: 6px solid var(--pink);
    }

    .pay-wrap ul li img {
        width: auto;
    }

    .access-inner:after {
        display: none;
    }

    img.map {
        border: 6px solid var(--pink);
    }

    p.pay-title {
        font-size: 20px;
        padding: 16px 24px;
    }

    .pay-wrap ul li p {
        font-size: 16px;
    }

    .pay-wrap {
        gap: 40px;
    }

    .pay-wrap ul {
        gap: 40px;
    }

    .beginner-image {
        display: none;
    }

    .beginner-body {
        width: 100%;
    }

    .beginner-inner {
        padding: 48px 28px;
        border: 6px solid var(--pink);
        border-radius: 32px;
        background: white;
    }

    .beginner-body h3 {
        font-size: 22px;
    }

    section.beginner.top-section {
        position: relative;
    }

    section.beginner.top-section .more-button {
        display: flex;
        justify-content: center;
    }

    section.beginner.top-section:before {
        content: "";
        width: 100%;
        height: 60%;
        background: url("../img/about/faq-bg.jpg");
        background-position: center;
        background-size: cover;
        position: absolute;
        left: 0;
        bottom: -10%;
    }


    .beginner-body h3 {
        text-align: center;
    }

    .top-news-inner {
        flex-direction: column;
    }

    .top-news-list {
        width: 100%;
    }

    a.news-sp-more.sp-block p {
        display: flex;
        align-items: center;
        gap: 10px;
        font-weight: bold;
        font-size: 18px;
        padding-top: 40px;
        justify-content: flex-end;
    }

    .content-title {
        padding-bottom: 26px;
    }

    p.top-news-item__date {
        font-size: 12px;
    }

    .clinic-inner {
        flex-direction: column;
    }

    .clinic-item {
        width: 100%;
        padding: 60px 30px;
        padding-top: 80px;
    }

    .clinic-item h2 {
        top: -48px;
    }

    .clinic-item h2 span {
        font-size: 22px;
        padding: 24px 30px;
    }

    p.clinic-item__title {
        font-size: 20px;
        white-space: nowrap;
        letter-spacing: 0.1em;
        padding-bottom: 32px;
    }

    p.clinic-item__desc {
        letter-spacing: 0.14em;
    }

    .clinic-item.clinic-item--first:after {
        width: 96px;
        height: 74px;
        left: calc(100% - 80px);
        bottom: 28px;
    }

    .clinic-inner {
        gap: 180px;
    }

    .clinic-item.clinic-item--second:after {
        width: 77px;
        height: 74px;
        right: 12px;
        bottom: 97px;
    }

    .more-button a {
        padding: 16px 32px;
        gap: 10px;
        font-size: 16px;
        border-radius: 40px;
    }

    .family-inner {
        flex-direction: column;
        padding: 0 20px;
    }

    .family-title h2 {
        font-size: 22px;
    }

    .family-title {
        padding-top: 0;
        display: flex;
        justify-content: flex-end;
        padding-right: 60px;
        transform: translateY(-180px);
        position: relative;
    }

    .family-title:before {
        content: "";
        position: absolute;
        width: 146px;
        height: 128px;
        background: url(../img/illust05.png);
        background-repeat: no-repeat;
        background-size: contain;
        top: -90px;
        left: 0;
        z-index: -1;
    }

    .family-body {
        width: 100%;
    }

    .family-body p {
        letter-spacing: 0.14em;
        line-height: 1.8em;
    }

    .family-title h2:before {
        display: none;
    }

    .family-image {
        width: calc(100% + 40px);
        position: absolute;
        right: -20px;
        top: -80%;
        z-index: -1;
    }

    .family-image img {
        border-radius: 0;
        width: 100%;
    }

    .family-content {
        padding: 32px 24px;
    }

    .family-body h3 {
        font-size: 20px;
        margin-bottom: 50px;
        letter-spacing: 0.1em;
        padding: 4px 10px;
    }

    .family-content {
        padding: 40px 24px;
        border-radius: 24px;
    }

    .contact-banner a {
        flex-direction: column;
        position: static;
    }

    .contact-banner__image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .contact-banner__image {
        width: 100%;
        aspect-ratio: 358 / 112;
    }

    .contact-banner__body p {
        font-size: 16px;
        letter-spacing: 0.2em;
    }

    .contact-banner__body img {
        width: 22px;
    }

    .contact-banner__body {
        flex-direction: row;
        width: 100%;
        justify-content: center;
        padding: 30px;
        gap: 10px;
    }

    section.contact-area {
        padding-left: 20px;
        padding-right: 20px;
        padding-bottom: 0;
        position: relative;
        background: none;
        margin-top: 100px;
    }

    section.contact-area:before {
        content: "";
        width: 100%;
        height: 70%;
        background: var(--accent);
        position: absolute;
        left: 0;
        top: 75%;
        z-index: -1;
    }

    .top-bottom {
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
        margin-top: 20px;
        padding: 0 20px;
    }

    .top-bottom__left {
        width: 70px;
    }

    .top-bottom__right img:first-of-type {
        width: 32px;
    }

    .top-bottom__right img:last-of-type {
        width: 60px;
    }

    .footer-inner {
        flex-direction: column;
        padding: 48px 24px;
        gap: 60px;
    }

    .footer-info-wrapper {
        flex-direction: column;
        align-items: flex-start;
        gap: 32px;
    }

    .footer-info {
        align-items: flex-start;
    }

    .footer-info h4 {
        display: none;
    }

    p.post {
        font-size: 14px;
    }

    .footer-info p:nth-child(3) {
        font-size: 16px;
    }

    .footer-info__tel a {
        font-size: 22px;
        gap: 10px;
        letter-spacing: 0.2em;
    }

    .footer-link p {
        font-size: 16px;
        letter-spacing: 0.1em;
    }

    ul.footer-banner {
        gap: 10px;
    }

    .footer-nav-list {
        flex-direction: column;
        gap: 24px;
    }

    .footer-nav-bottom {
        padding-top: 40px;
    }

    ul.footer-nav-child li a {
        font-size: 12px;
    }

    ul.footer-nav-child li a {
        padding-left: 30px;
    }

    .footer-nav-list ul {
        gap: 24px;
    }

    ul.footer-nav-child {
        gap: 10px;
    }

    .footer-nav-bottom div:last-of-type {
        flex-direction: column;
        gap: 40px;
    }

    .footer-nav-bottom div:last-of-type p.copy {
        font-size: 12px;
    }

    .contact-wrap.max-1440 {
        flex-direction: column;
        gap: 36px
    }

    .contact-flow {
        width: 100%;
    }

    .contact-inner {
        width: 100%;
    }

    .contact-flow ul {
        flex-direction: row;
        justify-content: center;
    }

    .contact-flow ul li p {
        font-size: 16px;
        padding-top: 6px;
    }

    .contact-flow ul li:before {
        content: "";
        position: absolute;
        width: 2px;
        height: 20px;
        background: var(--pink);
        left: -25%;
        top: 15px;
        border-radius: 2px;
        transform: rotate(90deg);
    }

    p.contact-content__desc {
        font-size: 16px;
    }

    p.contact-content__note {
        font-size: 12px;
        padding-top: 32px;
    }

    .form {
        padding-top: 40px;
    }

    .profile ul li {
        letter-spacing: 0.14em;
    }

    p.profile-title {
        border-bottom: 2px solid var(--accent);
    }

    section.clinic.top-section {
        padding-bottom: 40px;
        padding-top: 200px;
    }

    section.beginner.top-section {
        padding-top: 0;
    }

    .top-bottom:before {
    height: 120px;
    top: -180px;
}

    /*----------------ハンバーガーメニュー------------------------*/
    .hamburger-menu {
        width: 26px;
        height: 26px;
        position: absolute;
        top: 20px;
        right: 20px;
        cursor: pointer;
        user-select: none;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .line {
        background-color: var(--pink);
        height: 2px;
        width: 100%;
        position: absolute;
        transition: all 0.3s;
    }

    .line:nth-of-type(1) {
        top: 4px;
    }

    .line:nth-of-type(2) {
        top: 50%;
        transform: translateY(-50%);
    }

    .line:nth-of-type(3) {
        bottom: 4px;
    }

    .menu-text {
        position: absolute;
        bottom: -15px;
        font-size: 12px;
        transition: all 0.3s;
        white-space: nowrap;
        letter-spacing: 0.16em;
        color: var(--pink);
    }

    .close-text {
        position: absolute;
        bottom: -15px;
        font-size: 12px;
        letter-spacing: 0.16em;
        color: var(--pink);
        transition: all 0.3s;
        white-space: nowrap;
        opacity: 0;
    }

    .hamburger-menu.active>.line:nth-of-type(1) {
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
    }

    .hamburger-menu.active>.line:nth-of-type(2) {
        display: none;
    }

    .hamburger-menu.active>.line:nth-of-type(3) {
        top: 50%;
        transform: translateY(-50%) rotate(-45deg);
    }

    .hamburger-menu.active .menu-text {
        opacity: 0;
    }

    .hamburger-menu.active .close-text {
        opacity: 1;
    }

    .nav-menu {
        display: none;
        flex-direction: column;
        position: absolute;
        top: 45%;
        left: 50%;
        transform: translate(-50%, -50%);
        align-items: center;
        justify-content: flex-start;
        padding: 8px;
        width: 50%;
        background-color: var(--back);
        border: 1px solid #ccc;
        opacity: 0;
        overflow-y: auto;
        overflow-x: hidden;
        box-sizing: border-box;
    }

    .nav-menu.active {
        display: flex;
        animation: fadeIn 0.5s forwards;
    }



    @keyframes fadeIn {
        0% {
            top: 45%;
            opacity: 0;
        }

        100% {
            top: 50%;
            opacity: 1;
        }
    }


    nav.nav-menu.active {
        width: 100%;
        height: 100vh;
        position: fixed;
        border: 0;
        top: 0;
        z-index: -1;
        padding: 50px;
        padding-top: 140px;
        padding-bottom: 140px;
    }

    .grobal-nav-list {
        display: flex;
        gap: 36px;
        flex-direction: column;
    }

    .grobal-nav-list ul {
        display: flex;
        flex-direction: column;
        gap: 36px;
    }

    .grobal-nav-list ul li a {
        font-size: 16px;
        letter-spacing: 0.2em;
        position: relative;
        padding-left: 20px;
        transition: all 0.3s;
    }

    .grobal-nav-list ul li a:hover {
        color: var(--pink);
    }

    .grobal-nav-list ul li a:before {
        content: "";
        position: absolute;
        width: 13px;
        height: 11px;
        background: url(../img/list-icon.svg);
        top: 7px;
        left: 0;
        background-size: contain;
        background-position: center;
        background-repeat: no-repeat;
    }

    ul.grobal-nav-child li a {
        font-size: 12px;
        padding-left: 26px;
    }

    ul.grobal-nav-child li a:before {
        content: "";
        position: absolute;
        width: 18px;
        height: 2px;
        background: url(../img/list-icon2.svg);
        top: 8px;
        left: 1px;
        background-size: contain;
        background-position: center;
        background-repeat: no-repeat;
    }

    ul.grobal-nav-child {
        gap: 12px;
        padding-top: 16px;
    }

    .grobal-nav {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 100%;
    }

    .grobal-nav-bottom {
        padding-top: 24px;
    }

    nav.nav-menu {
        overflow-y: scroll;
    }

    .grobal-nav-bottom p.privacy a {
        padding: 0;
        margin: 0;
    }

    .grobal-nav-bottom div:last-of-type {
        padding-top: 24px;
    }

    .grobal-logo {
        width: 260px;
        margin-left: 0;
        margin-right: auto;
    }

    .grobal-info {
        align-items: flex-start;
        display: flex;
        flex-direction: column;
        gap: 14px;
        padding-top: 60px;
    }

    .grobal-info p.post2 {
        letter-spacing: 0.14em;
        font-size: 18px;
    }

    .grobal-info p:nth-child(3) {
        font-size: 14px;
        line-height: 1.4em;
        letter-spacing: 0.14em;
    }

    .grobal-info__tel a {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 0;
        margin: 0;
    }

    .grobal-info__tel a p {
        font-size: 24px;
        letter-spacing: 0.14em;
        font-weight: bold;
    }

    .grobal-info__tel a img {
        width: 34px;
    }

    .grobal-link {
        padding-top: 24px;
    }


    ul.grobal-banner {
        display: flex;
        gap: 10px;
        width: 100%;
        padding-top: 24px;
    }

    ul.grobal-banner li {
        width: 50%;
    }

    ul.grobal-banner li a {
        width: 100%;
        display: flex;
        background: var(--pink);
        padding: 14px 20px;
        font-size: 15px;
        border-radius: 40px;
        color: white;
        font-weight: bold;
        letter-spacing: 0.15em;
        gap: 8px;
        justify-content: center;
        transition: all 0.3s;
        white-space: nowrap;
    }

    ul.grobal-banner li.line-banner a {
        background: #4CC764;
    }

    .contact-banner__body p {
        font-weight: normal;
    }

    /*----------------ハンバーガーメニュー終わり------------------------*/

    main.page {
        padding-top: 100px;
        padding-bottom: 200px;
        padding-left: 24px;
        padding-right: 24px;
    }

    .page-title-wrap {
        padding: 22px 36px 24px 40px;
        border-top-right-radius: 50px;
        border-bottom-right-radius: 50px;
        bottom: -42px;
    }

    p.page-title__en {
        font-size: 18px;
        padding-bottom: 10px;
    }

    .page-title h2 {
        font-size: 22px;
    }

    .arhive-wrap {
        flex-direction: column;
        gap: 56px;
    }

    .news-archive {
        width: 100%;
    }

    .news-item a {
        flex-direction: column;
        gap: 32px;
    }

    .news-item__thumbnail img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .news-item__thumbnail {
        width: 100%;
        aspect-ratio: 358 / 248;
    }

    p.news-meta__date {
        font-size: 12px;
    }

    p.news-meta__category {
        padding: 4px 18px;
        font-size: 12px;
    }

    .news-item__body {
        width: 100%;
        gap: 16px;
    }

    .news-item__body h4 {
        font-size: 18px;
        letter-spacing: 0.1em;
        line-height: 1.6em;
    }

    p.news-item__desc {
        font-size: 16px;
        line-height: 1.6em;
        letter-spacing: 0.14em;
    }

    .news-list {
        gap: 56px;
    }

    .heading-bg {
        width: 75%;
    }

    nav.side-nav ul li a {
        font-size: 16px;
    }

    nav.side-nav ul {
        flex-direction: row;
        gap: 20px;
        flex-wrap: wrap;
        padding: 0 10px;
    }

    nav.side-nav {
        width: 100%;
    }

    .heading {
        margin-top: 80px;
    }

    main.page.page--about .page-inner {
        padding-left: 24px;
        padding-right: 24px;
    }

    .greeting-inner {
        flex-direction: column;
        gap: 56px;
        align-items: center;
    }

    .greeting-image {
        width: 95%;
    }

    .greeting-body {
        gap: 24px;
        width: 100%;
    }

    .greeting-body h3 {
        font-size: 20px;
    }

    p.greeting-body__desc {
        letter-spacing: 0.14em;
    }

    .profile {
        flex-direction: column;
        gap: 56px;
    }

    .profile div {
        width: 100%;
    }

    p.profile-title span {
        font-size: 18px;
        font-weight: bold;
    }

    .philosophy-image {
        display: none;
    }

    .philosophy-body {
        width: 100%;
        padding: 40px 32px;
    }

    .philosophy-body h3 {
        font-size: 20px;
    }

    .philosophy-body p {
        letter-spacing: 0.14em;
        line-height: 1.6em;
    }

    .philosophy-inner {
        margin-top: 0;
    }

    .about-inner h4 {
        font-size: 20px;
    }

    .about-inner p {
        text-align: center;
        font-size: 16px;
        letter-spacing: 0.14em;
    }

    .about-map {
        margin-top: 24px;
    }

    .history-inner {
        flex-direction: column;
    }

    .history-title {
        display: none;
    }

    .history-item p:first-of-type {
        width: 100px;
    }

    .history-item p:last-of-type {
        width: calc(100% - 100px);
        line-height: 1.6em;
    }

    .history-item {
        padding: 20px 0;
    }


    .gallery-inner {
        max-width: 100%;
    }

    .gallery-slide__item {
        padding: 0 12px;

    }

    .swiper-slide.gallery-slide__item {
        padding-bottom: 20px;
    }

    .swiper-scrollbar.swiper-scrollbar-horizontal {
        display: none;
    }

    .gallery-slide__desc {
        padding: 8px 32px;
        border-radius: 48px;
        border: 4px solid #2D2D2D;
        margin-top: 30px;
        position: relative;
        font-size: 18px;
        font-weight: bold;
    }

    .gallery-slide__item img {
        border-radius: 24px;
        border: 4px solid var(--pink);
    }

    .swiper-slide.gallery-slide__item img {
        aspect-ratio: 358 / 220;
    }

    .swiper-button-next:after,
    .swiper-rtl .swiper-button-prev:after,
    .swiper-button-prev:after,
    .swiper-rtl .swiper-button-next:after {
        display: none;
    }

    .gallery-slide .swiper-button-prev,
    .gallery-slide .swiper-button-next {
        top: calc(100% - 100px);
    }

    .gallery-slide .swiper-button-next {
        right: 40px;
    }

    .gallery-slide .swiper-button-prev {
        left: 40px;
    }

    .max-1280,
    .access.access--page {
        padding-bottom: 100px;
    }

    .philosophy .content-title h2 {
        line-height: 1.4em;
    }

    .philosophy .content-title h2:before {
        top: 11px;
    }

    main.page.page--about {
        padding-bottom: 0;
    }

    .point {
        flex-direction: column;
        gap: 48px;
        align-items: center;
    }

    .cta-banner-wrap {
        flex-direction: column;
        gap: 56px;
    }

    /*
    .point-item {
        width: 100%;
        padding: 20px 32px 112px 32px;
        gap: 48px;
    }

    .point-item__body h4 {
        font-size: 20px;
        letter-spacing: 0.05em;
        white-space: nowrap;
    }

    .point-item.point-item--first:after {
        display: none;
    }

    .point-item__body p {
        letter-spacing: 0.14em;
    }

    .point-item.point-item--second {
        padding-top: 60px;
    }
*/
    .cta h3 {
        font-size: 22px;
        letter-spacing: 0.2em;
    }

    p.cta-desc {
        font-size: 16px;
        text-align: left;
        padding: 50px 16px 40px;
        letter-spacing: 0.14em;
    }

    .cta {
        padding-top: 120px;
    }

    .cta-banner-wrap>div a {
        flex-direction: column;
        padding: 24px 32px;
        gap: 16px;
    }

    .cta-banner__content h4 {
        font-size: 20px;
    }

    .cta-banner__content {
        width: 100%;
        gap: 10px;
    }

    .cta-banner__content p {
        letter-spacing: 0.14em;
    }

    img.cta-more {
        width: 35px;
    }

    .cta-banner-wrap {
        padding-top: 0;
    }

    /*     .cta.cta--information .cta-banner-wrap>div a {
        flex-direction: row;
        justify-content: center;
    }

    .cta.cta--information .cta-banner__content h4 {
        line-height: 1.6em;
    }

    .cta.cta--information .cta-banner__content {
        width: 46%;
    } */

    .faq-inner {
        padding-left: 0;
        padding-right: 0;
    }

    p.faq-item__icon {
        display: flex;
        width: 32px;
        height: 32px;
        font-size: 20px;
        padding-bottom: 2px;
    }

    .faq-item {
        padding: 32px 24px;
        border-radius: 24px;
    }

    p.faq-item__title {
        font-size: 18px;
        font-weight: bold;
        line-height: 1.4em;
        width: calc(100% - 80px);
    }

    .question {
        display: flex;
        align-items: center;
        gap: 20px;
    }

    .accordion {
        width: 22px;
        height: 22px;
    }

    .accordion span {
        width: 22px;
        height: 4px;
    }

    .question p.faq-item__icon:before {
        left: -4px;
        bottom: -3px;
    }

    p.faq-item__icon:before {
        border-top: 10px solid transparent;
        border-bottom: 10px solid transparent;
    }

    .answer p.faq-item__icon:before {
        border-top: 10px solid transparent;
        border-bottom: 10px solid transparent;
        bottom: -3px;
    }

    .answer__inner {
        gap: 20px;
        align-items: flex-start;
        padding-top: 32px;
    }

    p.faq-item__desc {
        width: calc(100% - 52px);
        letter-spacing: 0.14em;
    }

    .faq-inner {
        padding-left: 0;
        padding-right: 0;
        padding-top: 20px;
        gap: 48px;
    }

    .heading-simple h2 {
        font-size: 24px;
        letter-spacing: 0.2em;
        font-weight: bold;
    }

    .heading-simple {
        padding-top: 32px;
        padding-bottom: 40px;
    }

    .privacy-policy p {
        letter-spacing: 0.14em;
    }

    .privacy-policy-item h4 {
        font-size: 20px;
    }

    .disclosure-item h4 {
        font-size: 20px;
        line-height: 1.4em;
    }

    p.disclosure-item__desc,
    p.disclosure-item__sub-desc,
    p.disclosure-item__sub-title {
        font-size: 16px;
        letter-spacing: 0.14em;
        line-height: 1.8em;
    }

    .max-1440:last-of-type {
        padding-bottom: 0;
    }

    main.page {
        padding-bottom: 80px;
    }


    .contact-flow ul li.active:before {
        opacity: 0.3;
    }


    .news-archive,
    .news-detail {
        width: 100%;
    }

    .news-title h2 {
        font-size: 22px;
        padding-top: 32px;
    }

    .wp-block-image img {
        border-radius: 16px;
    }

    .news-content h2 {
        font-size: 20px;
    }

    .news-content h3 {
        font-size: 18px;
    }

    .news-content h4 {
        font-size: 16px;
    }

    .news-content p {
        padding: 12px 0;
    }

    .page-nation ul li * {
        font-size: 16px;
    }

    li.prev {
        left: -80px;
    }

    .news-archive li.prev {
        left: -60px;
    }


    li.next {
        right: -80px;
    }

    .news-archive li.next {
        right: -60px;
    }

    .page-nation ul li.next a,
    .page-nation ul li.prev a {
        border: 0;
        box-shadow: none;
    }

    .contact-complete .more-button a {
        width: auto;
    }

    .faq-item {
        border: 4px solid var(--pink);
    }

    .contact-banner a {
        border-radius: 48px;
    }

    .what-intro h3 {
        font-size: 20px;
    }

    .what-intro p {
        font-size: 16px;
        letter-spacing: 0.14em;
    }

    .point-item {
        width: 100%;
    }

    .point-item h4 {
        font-size: 18px;
        letter-spacing: 0.1em;
        text-align: left;
        display: flex;
        justify-content: center;
    }

    .point-item p {
        letter-spacing: 0.14em;
    }

    .what-message p {
        font-size: 16px;
        letter-spacing: 0.14em;
        line-height: 1.8em;
    }

    .what-message {
        align-items: flex-start;
        gap: 40px;
    }

    .more-button.more-button--guide a {
        font-size: 16px;
        gap: 14px;
        padding: 18px 20px;
        height: 60px;
    }

    .more-button.more-button--guide a img {
        width: 22px;
    }

    .button-wrap {
        flex-direction: column;
        gap: 18px;
    }

    .guide {
        gap: 100px;
    }

    .access-item.access-item--guide {
        flex-direction: column;
    }

    .access-item.access-item--guide img.map {
        width: 100%;
    }

    .button-wrap {
        padding-bottom: 40px;
    }

    .about-mail p img {
        padding-top: 5px;
    }

}




/*--------------------------------------------*/
/*フォーム*/
/*--------------------------------------------*/
.form-step ul {
    display: flex;
    justify-content: center;
    padding: 50px 0;
    gap: 10px;
}

.form-step ul li {
    color: white;
    padding: 12px 20px;
    width: 100%;
    text-align: center;
    max-width: 220px;
    background: #d4debc;
}

.form-step ul li.active {
    background: var(--main);
}

input[type=text],
input[type=email],
dd.form__input.form-input.form-input--tel input,
dd.form__input.form-input.form-input--pt3 input,
textarea,
dd.form__input.form-input select {
    border: 1px solid;
    font-size: 18px;
    line-height: 2em;
    background: white;
    border-color: #d9d9d9;
    width: 100%;
    padding: 5px 14px;
    font-weight: normal;
    color: var(--black);
    border-radius: 8px;
    border: 1px solid var(--text-color);
    letter-spacing: 0.1em;
}

textarea {
    height: 400px;
}

.wpcf7 textarea::placeholder {
    color: #2d2d2d;
}

.wpcf7 select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background: none;
    position: relative;
}


.form__submit {
    margin-top: 80px;
    text-align: center;
}

label {
    line-height: 0;
}

dt,
dd {
    font-weight: 500;
}

.form {
    margin: auto;
    padding-top: 80px;
}

dl.form__item {
    display: flex;
    align-items: center;
    padding: 28px 10px;
    margin: 0;
    position: relative;

}


.form-container.form-container--confirm dl.form__item {
    border-bottom: 1px solid #2D2D2D;
}

dl.form__item.form__wrap-textarea {
    align-items: flex-start;
}

dl.form__item.form__wrap-textarea dt.form__label {
    padding-top: 10px;
}

.form.form--confirm {
    padding-top: 0;
}

/* dl.form__item:before {
    content: "";
    position: absolute;
    width: 200px;
    background: #7D7557;
    bottom: -1px;
    left: 0;
    z-index: 2;
    height: 1px;
} */



dd.form__input.form-input p,
dd.form__textarea.form-textarea p {
    font-size: 18px;
    letter-spacing: 0.2em;
}

.form-container.form-container--confirm dl.form__item:last-of-type {
    border: 0;
}


span.select-icon {
    display: block;
    position: absolute;
    right: 40px;
    top: 25px;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 9px solid transparent;
    border-right: 9px solid transparent;
    border-top: 13px solid #141414;
    border-radius: 4px;
    pointer-events: none;
}


dl.form__item dt {
    width: 230px;
    font-size: 20px;
    letter-spacing: 0.1em;
}

dl.form__item dd {
    width: calc(100% - 230px);
    margin: 0;
    font-weight: normal;
    line-height: 1.6em;
    letter-spacing: 0.1em;
    position: relative;
}

dt.form__label span {
    background: var(--main);
    color: white;
    font-size: 12px;
    padding: 2px 5px;
    margin-left: 10px;
    font-weight: normal;
}

.form-radio label {
    display: inline-block;
}

.form-radio label:not(:first-of-type) {
    margin-left: 15px;
}

dt.form__label p {
    display: inline-block;
    position: relative;
}

dt.form__label span {
    background: var(--main);
    color: #D92D2D;
    font-size: 12px;
    padding: 2px 5px;
    font-weight: normal;
    position: absolute;
    top: -6px;
    right: -21px;
}

.form-radio input+span {
    position: relative;
    display: block;
    font-size: 0.9375rem;
    line-height: 1;
    cursor: pointer;
    padding: 0px 0px 0px 1.5em;
}

.form-radio input+span::before {
    content: "";
    width: 0.9375rem;
    height: 0.9375rem;
    display: block;
    position: absolute;
    top: 50%;
    left: 0px;
    transform: translateY(-50%);
    background: rgb(255, 255, 255);
    border-width: 1px;
    border-style: solid;
    border-color: rgb(204, 204, 204);
    -o-border-image: initial;
    border-image: initial;
    border-radius: 50%;
}

.form-radio input+span::after {
    content: "";
    width: 0.4375rem;
    height: 0.4375rem;
    position: absolute;
    top: 50%;
    left: 0.25rem;
    transform: translateY(-50%);
    opacity: 0;
    padding: 0.125rem;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    -o-border-image: initial;
    border-image: initial;
    border-radius: 50%;
    background: rgb(0, 0, 0);
    transition: all 0.3s ease 0s;
}

.form-radio input:checked+span:after {
    opacity: 1;
}

dd.form__input.form-input.form-input--pt2 {
    display: flex;
    gap: 10px;
    max-width: 340px;
    justify-content: flex-start;
    font-weight: normal;
}

dd.form__input.form-input.form-input--pt3 {
    max-width: 200px;
}




.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
    max-width: 800px;
    margin: auto;
    margin-top: 30px;
    border-color: var(--sub) !important;
}


.wpcf7-not-valid-tip {
    color: #dc3232;
    font-size: 1em;
    font-weight: normal;
    display: block;
    margin-top: 6px;
}

section.contact a.retry {
    text-decoration: underline;
    color: var(--main);
}

.contact-thanks {
    background: white;
    padding: 40px;
}

.contact-thanks h4 {
    font-size: 24px;
    color: var(--main);
    padding-bottom: 20px;
}

section.contact.contact--thanks {
    padding-top: 0;
}

section.contact.contact--thanks .inner-wrap {
    max-width: 980px;
}

.contact-complete h3 {
    font-size: 30px;
    letter-spacing: 0.1em;
    padding-bottom: 32px;
}

.contact-complete p {
    font-size: 18px;
    letter-spacing: 0.2em;
    line-height: 1.6em;
}

/*  フォーム用ボタン　*/
.more-btn.more-btn--content a {
    padding: 14px 32px;
    font-size: 16px
}

.more-btn.more-btn--form {
    display: flex;
    justify-content: center;
}


.more-btn button {
    display: flex;
    background: var(--pink);
    color: white;
    justify-content: center;
    padding: 24px 40px;
    gap: 10px;
    font-size: 18px;
    letter-spacing: 0.2em;
    border-radius: 24px;
    transition: all 0.3s;
    border: 0;
    width: 400px;
}

@media screen and (max-width:1440px) {
    .more-btn button {
        padding: 18px 20px;
        gap: 10px;
        font-size: 16px;
        border-radius: 18px;
    }
}


.more-btn button:hover:after {
    width: 36px;
}

.more-btn button:hover {
    opacity: 0.8;
}

.more-btn.more-btn--confirm button {
    margin: 0;
}

.more-btn.more-btn--confirm p {
    display: flex;
    justify-content: center;
    gap: 10px;
}

button.back-btn {
    background: #878787;
    max-width: 150px;
    width: 120px;
    text-align: center;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

button.back-btn:after {
    display: none;
}

section.contact.contact--confirm dl.form__item {
    padding: 40px 10px;
}

@media screen and (max-width:520px) {
    dl.form__item {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    dl.form__item dt {
        width: 100%;
    }

    dl.form__item dd {
        width: 100%;
        margin: 0;
    }

    dd.form__input.form-input.form-input--pt3 {
        max-width: none;
    }

    dl.form__item:before {
        display: none;
    }

    .form__submit {
        margin-top: 20px;
    }

    dl.form__item {
        padding: 24px 0px;
    }

    dl.form__item dt {
        font-size: 18px;
        font-weight: bold;
    }

    input[type=text],
    input[type=email],
    dd.form__input.form-input.form-input--tel input,
    dd.form__input.form-input.form-input--pt3 input,
    textarea,
    dd.form__input.form-input select {
        font-size: 16px;
        padding: 8px 14px;
    }

    span.select-icon {
        right: 30px;
        top: 26px;
    }

    .form {
        padding-top: 40px;
    }

    .more-btn button {
        width: auto;
        padding: 16px 32px;
        gap: 10px;
        font-size: 16px;
        border-radius: 40px;
    }

    dd.form__input.form-input p,
    dd.form__textarea.form-textarea p {
        font-size: 16px;
    }

    .form-container.form-container--confirm dl.form__item {
        padding: 28px 0px;
    }

    .contact-complete p {
        font-size: 16px;
        text-align: center;
        letter-spacing: 0.14em;
        line-height: 1.8em;
    }

    .contact-complete h3 {
        text-align: center;
        font-size: 20px;
    }

    .contact-complete .more-button.sp-block {
        display: flex;
        justify-content: center;
    }
}



.thanks p {
    line-height: 1.6em;
    letter-spacing: 0.1em;
}

.thanks h4 {
    font-size: 28px;
    letter-spacing: 0.1em;
    text-align: center;
    font-weight: normal;
    margin-bottom: 30px;
}

.thanks {
    background: #3b3b3b;
    padding: 60px 75px;
    border: 1px solid #6c6c6c;
    margin: auto;
    max-width: 860px;
    margin-top: 80px;
}



.notfound h3 {
    padding-bottom: 20px;
    letter-spacing: 0.14em;
    line-height: 1.6em;
}

.notfound p {
    line-height: 1.6em;
}

.notfound .more-button {
    display: inline-block;
}




/*タブレット*/
@media screen and (max-width:1080px) and (min-width:679px) {
    .top-section {
        padding-left: 120px;
        padding-right: 120px;
    }

    .waiting {
        max-width: 400px;
    }

    .mv-bg {
        top: -100%;
    }

    .family-image {
        top: -200%;
    }

    section.contact-area {
        padding-left: 120px;
        padding-right: 120px;
    }

    section.family {
        padding-top: 350px;
    }

    .family-title {
        padding-right: 120px;
        transform: translateY(-350px);
    }

    .family-title h2 {
        font-size: 32px;
    }

    .top-bottom__left {
        width: 100px;
    }

    .top-bottom__right img:first-of-type {
        width: 60px;
    }

    .top-bottom__right img:last-of-type {
        width: 120px;
    }

    .footer-inner {
        padding: 48px 80px;
    }

    .mv-content p {
        font-size: 32px;
    }

    span.rubi:before {
        top: -13px;
        font-size: 14px;
    }

    main.page.page--about .page-inner {
        padding-left: 120px;
        padding-right: 120px;
    }

    .gallery-inner {
        max-width: calc(100% - 60px);
    }

    .swiper-scrollbar.swiper-scrollbar-horizontal {
        display: block;
    }

    main.page {
        padding-left: 120px;
        padding-right: 120px;
    }

    section.top-news.top-section {
        padding-top: 200px;
    }


}