@charset "UTF-8";



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

common

----------------------------------------------------------  */
/* heading-1 */
.heading-1 {
    line-height: 1;
    margin-bottom: 3rem;
    display: flex;
    font-weight: 500;
    position: relative;
    padding-bottom: 1.2rem;
}

.heading-1>span:nth-of-type(1) {
    background: #18a498;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    position: relative;
    margin-top: 1rem;
    margin-right: 2rem;
}

.heading-1>span:nth-of-type(1)::before,
.heading-1>span:nth-of-type(1)::after {
    content: "";
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    position: absolute;
}

.heading-1>span:nth-of-type(1)::before {
    background: #65f8ec;
    left: -0.7rem;
    top: -1.2rem;
    z-index: 1;
}

.heading-1>span:nth-of-type(1)::after {
    background: #E9F7F0;
    right: -0.7rem;
    top: -1rem;
    z-index: 2;
}

.heading-1>span:nth-of-type(2) {
    font-size: 2.8rem;
    display: flex;
    flex-direction: column;
}

.heading-1>span:nth-of-type(2)>span {
    color: #fff;
    font-family: var(--font-quick);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-top: 1rem;
}

.heading-1.vertical {
    flex-direction: column;
    align-items: center;
}

.heading-1.vertical>span:nth-of-type(1) {
    margin-top: 0;
    margin-right: 0;
    margin-bottom: 0.6rem;
}

.heading-1.vertical>span:nth-of-type(2) {
    align-items: center;
}

@media screen and (max-width: 768px) {
    .heading-1 {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .heading-1>span:nth-of-type(1) {
        margin-top: 0;
        margin-right: 0;
        margin-bottom: 0.6rem;
    }
}

/* heading-2 */
.heading-2 {
    font-size: 2.2rem;
    font-weight: normal;
    margin-bottom: 2rem;
}

/* img */
img.img {
    border-radius: 6rem 0 6rem 0;
}

@media screen and (max-width: 768px) {
    img.img {
        border-radius: 4rem 0 4rem 0;
    }
}

.color-g {
    color: #30d5c7 !important;
}


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

kv

----------------------------------------------------------  */
.top-kv {
    position: relative;
}

.top-kv .wrap {
    z-index: 99;
    color: #fff;
    font-size: 3.6rem;
    text-align: center;
}

#main {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 56rem;
}

@media screen and (max-width: 768px) {
    .top-kv .wrap {
        font-size: 2.4rem;
    }

    #main {
        height: 36rem;
    }
}



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

about

----------------------------------------------------------  */
.top-about {
    padding: 10rem 15rem 10rem 5rem;
    display: flex;
    align-items: flex-start;
}

.top-about>figure {
    width: 55%;
    position: relative;
    z-index: 10;
}

.top-about>figure img {
    height: 36rem;
    object-fit: cover;
}

.top-about>div {
    width: 55%;
    margin-left: -10%;
    padding-top: 4rem;
}

.top-about h2 {
    margin-left: 27%;
}

.top-about>div>div {
    background: var(--color-bg);
    padding: 6rem 4rem 6rem 27%;
    border-radius: 6rem 0 6rem 0;
}

.top-about p {
    margin-bottom: 3rem;
}

.top-about .more {
    margin: 0;
}

@media screen and (max-width: 768px) {
    .top-about {
        padding: 8rem 3rem;
        display: block;
    }

    .top-about>figure {
        width: 100%;
    }

    .top-about>figure img {
        height: 24rem;
    }

    .top-about>div {
        width: 100%;
        margin-left: 0;
        padding-top: 5rem;
    }

    .top-about h2 {
        margin-left: 0;
        margin-bottom: 1.5rem;
    }

    .top-about>div>div {
        padding: 4rem;
        border-radius: 4rem 0 4rem 0;
    }
}



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

service

----------------------------------------------------------  */
.top-service {
    margin: 0 15rem 100px;
    padding: 10rem 5rem;
    background: #F8F8F8;
    border-radius: 7rem;
}

.top-service ul {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5rem;
    flex-wrap: wrap;
}

.top-service ul li {
    width: 47%;
}

.top-service ul li:nth-child(n + 3) {
    margin-top: 5rem;
}

.top-service ul li figure img {
    height: 24rem;
    object-fit: cover;
}

.top-service .heading-2 {
    margin: 2rem 0 1rem 0;
    line-height: 1.5;
}

@media screen and (max-width: 768px) {
    .top-service {
        margin: 0;
        padding: 8rem 3rem;
        margin: 0;
        border-radius: 0;
    }

    .top-service ul {
        display: block;
    }

    .top-service ul li {
        width: 100%;
    }

    .top-service ul li:nth-child(n + 3) {
        margin-top: 0;
    }

    .top-service ul li:nth-child(n + 2) {
        margin-top: 5rem;
    }

    .top-service ul li figure img {
        height: 22rem;
    }
}



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

works

----------------------------------------------------------  */
.top-works {
    padding: 8rem 10rem;
    margin: 10rem 0;
    display: flex;
    position: relative;
}

.top-works::before {
    content: "";
    width: calc(100% - 15rem);
    height: 100%;
    background: var(--color-bg);
    border-radius: 7rem 0 0 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 0;
}

.top-works>* {
    width: 50%;
}

.top-works>div {
    padding: 0 10rem 0 5rem;
}

.top-works p {
    margin-bottom: 3rem;
}

.top-works figure img {
    height: 34rem;
    object-fit: cover;
}

@media screen and (max-width: 768px) {
    .top-works {
        padding: 8rem 3rem;
        margin: 0;
        display: block;
    }

    .top-works::before {
        width: 100%;
        border-radius: 0;
    }

    .top-works>* {
        width: 100%;
    }

    .top-works>div {
        padding: 4rem 0 0 0;
    }

    .top-works figure img {
        height: 24rem;
    }
}



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

recruit

----------------------------------------------------------  */
.top-recruit {
    padding: 8rem 10rem;
    display: flex;
    flex-direction: row-reverse;
    position: relative;
}

.top-recruit::before {
    content: "";
    width: calc(100% - 15rem);
    height: 100%;
    background: #F8F8F8;
    border-radius: 7rem 0 0 0;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
}

.top-recruit>* {
    width: 50%;
}

.top-recruit>div {
    padding: 0 5rem 0 10rem;
}

.top-recruit p {
    margin-bottom: 3rem;
}

.top-recruit figure img {
    height: 34rem;
    object-fit: cover;
}

.top-recruit p {
    margin-bottom: 3rem;
}

@media screen and (max-width: 768px) {
    .top-recruit {
        padding: 8rem 3rem;
        display: block;
    }

    .top-recruit::before {
        width: 100%;
        border-radius: 0;
    }

    .top-recruit>* {
        width: 100%;
    }

    .top-recruit>div {
        padding: 4rem 0 0 0;
    }

    .top-recruit figure img {
        height: 24rem;
    }
}



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

contact

----------------------------------------------------------  */
.top-contact {
    margin: 10rem 15rem;
    padding: 6rem 10rem;
    background: var(--color-bg);
    border-radius: 7rem 0 7rem 0;
}

.top-contact h2 {
    margin-bottom: 1.5rem;
}

.top-contact p {
    margin-bottom: 3rem;
}

@media screen and (max-width: 768px) {
    .top-contact {
        margin: 0;
        padding: 6rem 3rem;
        background: var(--color-bg);
        border-radius: 0;
    }
}



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

access

----------------------------------------------------------  */
.top-access {
    display: flex;
    flex-direction: row-reverse;
    margin-top: 5rem;
}

.top-access>* {
    width: 50%;
}

.top-access>*:nth-of-type(1) {
    background: var(--color-bg);
    padding: 8rem 4rem;
}

.top-access .logo {
    font-size: 2rem;
    margin-bottom: 2rem;
}

.top-access dl dt {
    background: #fff;
}

@media screen and (max-width: 768px) {
    .top-access {
        flex-direction: column-reverse;
    }

    .top-access>* {
        width: 100%;
    }

    .top-access>*:nth-of-type(1) {
        padding: 4rem 3rem;
    }
}

/*==================================================
  公式SNS
==================================================*/

.top-sns {
    padding: 120px 0;
    background: #fff;
}

.top-sns-head {
    text-align: center;
    margin-bottom: 70px;
}

.top-sns-en {
    display: inline-block;
    margin-bottom: 13px;
    color: #30cec5;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .35em;
    text-transform: uppercase;
}

.top-sns-head h2 {
    font-size: clamp(28px, 3vw, 42px);
    line-height: 1.7;
    font-weight: 700;
    color: #163d45;
    margin-bottom: 22px;
}

.top-sns-head p {
    font-size: 20px;
    line-height: 1.9;
    color: #5e6d73;
    font-weight: 400;
}

.top-sns-links {
    max-width: 760px;
    margin: 0 auto;
    border-top: 1px solid #d9eceb;
}

.top-sns-links a {

    display: flex;
    justify-content: space-between;
    align-items: center;

    padding: 34px 10px;

    text-decoration: none;

    border-bottom: 1px solid #d9eceb;

    transition: .35s ease;

    position: relative;

}

.top-sns-links a::before {

    content: "";

    position: absolute;

    left: 0;

    top: 0;

    width: 0;

    height: 100%;

    background: #30cec5;

    transition: .35s ease;

    opacity: .08;

}

.top-sns-links a:hover::before {

    width: 100%;

}

.top-sns-left {

    display: flex;

    align-items: center;

    gap: 24px;

    position: relative;

    z-index: 2;

}

.top-sns-left i {

    width: 70px;

    font-size: 42px;

    color: #30cec5;

    text-align: center;

}

.top-sns-left h3 {

    font-size: 28px;

    color: #163d45;

    margin-bottom: 6px;

    font-weight: 700;

}

.top-sns-left p {

    color: #7a8b90;

    font-size: 15px;

    letter-spacing: .05em;

}

.top-sns-arrow {

    position: relative;

    z-index: 2;

    font-size: 32px;

    color: #30cec5;

    transition: .35s;

}

.top-sns-links a:hover .top-sns-arrow {

    transform: translateX(12px);

}

.top-sns-links a:hover .top-sns-left h3 {

    color: #30cec5;

}

@media(max-width:768px) {

    .top-sns {

        padding: 80px 0;

    }

    .top-sns-head h2 {

        font-size: 28px;

    }

    .top-sns-links a {

        padding: 24px 0;

    }

    .top-sns-left {

        gap: 15px;

    }

    .top-sns-left i {

        width: 45px;

        font-size: 26px;

    }

    .top-sns-left h3 {

        font-size: 22px;

    }

    .top-sns-left p {

        font-size: 13px;

    }

    .top-sns-arrow {

        font-size: 24px;

    }

}

/*==================================================
  メディア掲載情報
==================================================*/

.top-media {
    padding: 110px 0 120px;
    background: #f7fbfb;
}

.top-media .wrap {
    width: min(1100px, calc(100% - 48px));
    margin: 0 auto;
}

.top-media-head {
    text-align: center;
    margin-bottom: 55px;
}

.top-media-en {
    display: inline-block;
    margin-bottom: 16px;
    color: #30c9c3;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .32em;
}

.top-media-head h2 {
    margin: 0 0 22px;
    color: #163d45;
    font-size: clamp(32px, 4vw, 50px);
    line-height: 1.45;
    font-weight: 700;
}

.top-media-lead {
    margin: 0;
    color: #40575e;
    font-size: 20px;
    line-height: 1.9;
    font-weight: 500;
}

.top-media-text {
    margin: 20px 0 0;
    color: #75878d;
    font-size: 16px;
    line-height: 2;
}

/* バナー全体 */
.top-media-card {
    display: block;
    position: relative;
    max-width: 1000px;
    margin: 0 auto;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(48, 201, 195, .2);
    box-shadow: 0 20px 55px rgba(20, 61, 69, .10);
    text-decoration: none;
    transition:
        transform .4s ease,
        box-shadow .4s ease;
}

/* バナー画像 */
.top-media-card img {
    display: block;
    width: 100%;
    height: auto;
    transition:
        transform .6s ease,
        filter .4s ease;
}

/* ホバー時の暗い膜 */
.top-media-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(13, 47, 54, .08);
    opacity: 0;
    transition: opacity .4s ease;
}

/* ホバー時に表示する文字 */
.top-media-card::after {
    content: "INTERVIEW  →";
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 2;
    transform: translate(-50%, -40%);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .18em;
    opacity: 0;
    transition:
        opacity .4s ease,
        transform .4s ease;
}

.top-media-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 30px 70px rgba(20, 61, 69, .16);
}

.top-media-card:hover img {
    transform: scale(1.025);
    filter: brightness(.72);
}

.top-media-card:hover::before {
    opacity: 1;
}

.top-media-card:hover::after {
    opacity: 1;
    transform: translate(-50%, -50%);
}

/* 詳しく見るボタン */
.top-media-btn-wrap {
    margin-top: 40px;
    text-align: center;
}

.top-media-btn {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
    min-width: 280px;
    padding: 18px 34px;
    border: 1px solid #30c9c3;
    color: #163d45;
    background: #fff;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
    text-decoration: none;
    transition:
        color .35s ease,
        background .35s ease,
        transform .35s ease,
        box-shadow .35s ease;
}

.top-media-btn::after {
    content: "→";
    color: #30c9c3;
    font-size: 22px;
    line-height: 1;
    transition: transform .35s ease;
}

.top-media-btn:hover {
    color: #fff;
    background: #30c9c3;
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(48, 201, 195, .22);
}

.top-media-btn:hover::after {
    color: #fff;
    transform: translateX(7px);
}

/*==================================================
  スマートフォン
==================================================*/

@media(max-width:768px) {

    .top-media {
        padding: 75px 0 85px;
    }

    .top-media .wrap {
        width: calc(100% - 32px);
    }

    .top-media-head {
        margin-bottom: 38px;
    }

    .top-media-en {
        margin-bottom: 12px;
        font-size: 12px;
        letter-spacing: .26em;
    }

    .top-media-head h2 {
        margin-bottom: 18px;
        font-size: 30px;
    }

    .top-media-lead {
        font-size: 17px;
        line-height: 1.9;
    }

    .top-media-text {
        margin-top: 15px;
        font-size: 14px;
        line-height: 1.9;
    }

    .top-media-card {
        box-shadow: 0 14px 35px rgba(20, 61, 69, .10);
    }

    .top-media-card::after {
        display: none;
    }

    .top-media-card:hover {
        transform: none;
    }

    .top-media-card:hover img {
        transform: none;
        filter: none;
    }

    .top-media-btn-wrap {
        margin-top: 30px;
    }

    .top-media-btn {
        width: 100%;
        min-width: 0;
        padding: 17px 24px;
    }
}

.about-highlight {
    color: #e54848;
    font-weight: 700;
    background: linear-gradient(transparent 62%, #fff39c 62%);
}

/* =========================================================
   TOP お知らせ・CMS対応完成版
========================================================= */

.home-news,
.home-news * {
    box-sizing: border-box;
}

.home-news {
    position: relative;
    padding: 58px 0 64px;
    background: #ffffff;
}

.home-news__inner {
    width: min(1380px, calc(100% - 80px));
    margin: 0 auto;
}

/* 見出し */
.home-news__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 25px;
}

.home-news__en {
    margin: 0 0 5px;
    color: #20b9b2;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.2em;
}

.home-news__heading h2 {
    margin: 0;
    padding: 0;
    background: none;
    color: #303d40;
    font-size: 29px;
    font-weight: 700;
    line-height: 1.5;
}

/* 一覧を見る */
.home-news__more {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 0 0 6px;
    border-bottom: 1px solid #30cec5;
    color: #344b50;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
}

.home-news__more span {
    color: #20b9b2;
    font-size: 19px;
    line-height: 1;
    transition: transform 0.3s ease;
}

.home-news__more:hover {
    color: #20b9b2;
    opacity: 1;
}

.home-news__more:hover span {
    transform: translateX(5px);
}

/* CMS一覧 */
.home-news .CMS-NEWS-INDEX {
    margin: 0;
    padding: 0;
    border-top: 1px solid #dce8e7;
    border-bottom: 0;
}

.home-news .CMS-NEWS-ITEM {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid #dce8e7;
}

/* CMSが生成するリンク */
.home-news .CMS-NEWS-ITEM>a {
    display: block;
    color: inherit;
    text-decoration: none;
}

/* 日付とタイトルの横並び */
.home-news .CMS-NEWS-WRAP {
    position: relative;
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    align-items: center;
    gap: 25px;
    width: 100%;
    min-height: 76px;
    margin: 0;
    padding: 16px 50px 16px 8px;
    transition:
        padding-left 0.3s ease,
        background-color 0.3s ease;
}

/* 右矢印 */
.home-news .CMS-NEWS-WRAP::after {
    position: absolute;
    top: 50%;
    right: 10px;
    color: #30cec5;
    content: "→";
    font-size: 20px;
    line-height: 1;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}

/* ホバー */
.home-news .CMS-NEWS-ITEM:hover .CMS-NEWS-WRAP {
    padding-left: 18px;
    background: #f4fbfa;
}

.home-news .CMS-NEWS-ITEM:hover .CMS-NEWS-WRAP::after {
    transform: translate(5px, -50%);
}

/* 投稿日 */
.home-news .CMS-NEWS-TIME {
    display: block;
    width: auto;
    margin: 0;
    padding: 0;
    color: #159f9a;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.6;
    text-align: left;
}

/* タイトル */
.home-news .CMS-NEWS-LINK {
    display: block;
    width: auto;
    margin: 0;
    padding: 0;
    color: #344b50;
    font-size: 14px;
    line-height: 1.7;
}

/* CMSがタイトル内にリンクを生成する場合 */
.home-news .CMS-NEWS-LINK a {
    display: block;
    color: #344b50;
    text-decoration: none;
}

.home-news .CMS-NEWS-LINK a:hover {
    color: #159f9a;
    opacity: 1;
}

/* CMS側の不要な画像などを非表示 */
.home-news .CMS-NEWS-THUMBNAIL,
.home-news .CMS-NEWS-CATEGORY {
    display: none;
}

/* =========================================================
   スマートフォン
========================================================= */

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

    .home-news {
        padding: 45px 0 50px;
    }

    .home-news__inner {
        width: calc(100% - 30px);
    }

    .home-news__heading {
        align-items: center;
        gap: 15px;
        margin-bottom: 20px;
    }

    .home-news__en {
        margin-bottom: 3px;
        font-size: 11px;
    }

    .home-news__heading h2 {
        font-size: 24px;
    }

    .home-news__more {
        gap: 8px;
        font-size: 12px;
    }

    .home-news__more span {
        font-size: 17px;
    }

    .home-news .CMS-NEWS-WRAP {
        display: block;
        min-height: 0;
        padding: 17px 35px 17px 4px;
    }

    .home-news .CMS-NEWS-ITEM:hover .CMS-NEWS-WRAP {
        padding-left: 4px;
    }

    .home-news .CMS-NEWS-TIME {
        margin-bottom: 5px;
        font-size: 12px;
    }

    .home-news .CMS-NEWS-LINK {
        font-size: 14px;
        line-height: 1.7;
    }

    .home-news .CMS-NEWS-WRAP::after {
        right: 5px;
        font-size: 18px;
    }
}

/* =========================================================
   TOP 代表紹介
========================================================= */

.top-owner,
.top-owner * {
    box-sizing: border-box;
}

.top-owner {
    position: relative;
    padding: 120px 0;
    overflow: hidden;
    background: #ffffff;
}

.top-owner::before {
    position: absolute;
    top: 50%;
    right: -170px;
    width: 430px;
    height: 430px;
    border: 1px solid rgba(48, 201, 195, .16);
    border-radius: 50%;
    content: "";
    transform: translateY(-50%);
}

.top-owner__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 48% 1fr;
    align-items: center;
    gap: 90px;
    width: min(1300px, calc(100% - 80px));
    margin: 0 auto;
}

.top-owner__visual {
    position: relative;
}

.top-owner__visual::before {
    position: absolute;
    top: 25px;
    left: -25px;
    z-index: -1;
    width: 100%;
    height: 100%;
    border: 1px solid rgba(48, 201, 195, .38);
    border-radius: 70px 0 70px 0;
    content: "";
}

.top-owner__visual img {
    display: block;
    width: 100%;
    height: 620px;
    object-fit: cover;
    border-radius: 70px 0 70px 0;
}

.top-owner__label {
    position: absolute;
    right: -30px;
    bottom: 45px;
    padding: 20px 28px;
    background: #163d45;
    color: #65f8ec;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .22em;
}

.top-owner__en {
    margin: 0 0 20px;
    color: #30c9c3;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .3em;
}

.top-owner__content h2 {
    margin: 0 0 32px;
    color: #163d45;
    font-size: clamp(34px, 3.6vw, 52px);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.02em;
}

.top-owner__lead {
    margin: 0 0 24px;
    color: #2e4b51;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.9;
}

.top-owner__text {
    margin: 0 0 38px;
    color: #677a80;
    font-size: 15px;
    line-height: 2.05;
}

.top-owner__profile {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    padding-top: 28px;
    border-top: 1px solid #dce9e8;
}

.top-owner__profile>div {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.top-owner__profile>div span {
    color: #74878c;
    font-size: 12px;
    letter-spacing: .08em;
}

.top-owner__profile>div strong {
    color: #163d45;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 30px;
    letter-spacing: .08em;
}

.top-owner__profile a {
    display: inline-flex;
    align-items: center;
    gap: 22px;
    padding-bottom: 7px;
    border-bottom: 1px solid #30c9c3;
    color: #163d45;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.top-owner__profile a span {
    color: #30c9c3;
    font-size: 21px;
    transition: transform .3s ease;
}

.top-owner__profile a:hover span {
    transform: translateX(7px);
}

.top-owner__catch {
    margin-top: 35px;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.8;
    color: #163d45;
}

.top-owner__catch span {
    display: inline-block;
    color: #163d45;
    font-weight: 800;
    position: relative;
    z-index: 1;
}

.top-owner__catch span::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 4px;
    width: 100%;
    height: 14px;
    background: rgba(48, 201, 195, .25);
    z-index: -1;
}

/* スマートフォン */
@media screen and (max-width: 768px) {

    .top-owner {
        padding: 80px 0 90px;
    }

    .top-owner__inner {
        display: flex;
        flex-direction: column;
        gap: 55px;
        width: calc(100% - 30px);
    }

    .top-owner__visual {
        width: 100%;
    }

    .top-owner__visual::before {
        top: 14px;
        left: -10px;
        border-radius: 42px 0 42px 0;
    }

    .top-owner__visual img {
        height: 440px;
        border-radius: 42px 0 42px 0;
    }

    .top-owner__label {
        right: -5px;
        bottom: 25px;
        padding: 15px 18px;
        font-size: 10px;
    }

    .top-owner__en {
        margin-bottom: 14px;
        font-size: 12px;
    }

    .top-owner__content h2 {
        margin-bottom: 24px;
        font-size: 34px;
    }

    .top-owner__lead {
        font-size: 17px;
    }

    .top-owner__text {
        font-size: 14px;
        line-height: 1.95;
    }

    .top-owner__profile {
        display: block;
    }

    .top-owner__profile>div {
        margin-bottom: 25px;
    }

    .top-owner__profile a {
        justify-content: space-between;
        width: 100%;
    }
}

/* =========================================================
   TOP 知る・学ぶ
========================================================= */

.top-learning,
.top-learning * {
    box-sizing: border-box;
}

.top-learning {
    position: relative;
    margin-top: 0;
    padding: 115px 0 125px;
    overflow: hidden;
    background: #f5f8f8;
}

.top-learning::before {
    position: absolute;
    top: -180px;
    right: -160px;
    width: 440px;
    height: 440px;
    border: 1px solid rgba(48, 201, 195, .18);
    border-radius: 50%;
    content: "";
}

.top-learning__inner {
    position: relative;
    z-index: 2;
    width: min(1200px, calc(100% - 80px));
    margin: 0 auto;
}

.top-learning__heading {
    display: grid;
    grid-template-columns: 38% 1fr;
    align-items: end;
    gap: 80px;
    margin-bottom: 58px;
}

.top-learning__en {
    margin: 0 0 14px;
    color: #30c9c3;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .3em;
}

.top-learning__heading h2 {
    margin: 0;
    color: #163d45;
    font-size: clamp(38px, 4vw, 58px);
    font-weight: 700;
    line-height: 1.4;
}

.top-learning__lead {
    margin: 0;
    color: #607379;
    font-size: 16px;
    line-height: 2;
}

.top-learning__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.top-learning__card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 390px;
    padding: 34px 32px 30px;
    overflow: hidden;
    border: 1px solid #dce9e8;
    border-radius: 34px 0 34px 0;
    background: #fff;
    color: #163d45;
    text-decoration: none;
    transition:
        transform .35s ease,
        box-shadow .35s ease,
        border-color .35s ease;
}

.top-learning__card::before {
    position: absolute;
    right: -75px;
    bottom: -85px;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background: rgba(48, 201, 195, .08);
    content: "";
    transition: transform .4s ease;
}

.top-learning__card:hover {
    border-color: #30c9c3;
    box-shadow: 0 22px 48px rgba(22, 61, 69, .12);
    transform: translateY(-7px);
}

.top-learning__card:hover::before {
    transform: scale(1.2);
}

.top-learning__number {
    display: block;
    margin-bottom: 55px;
    color: #30c9c3;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .12em;
}

.top-learning__category {
    margin: 0 0 16px;
    color: #30c9c3;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .22em;
}

.top-learning__card h3 {
    margin: 0 0 20px;
    color: #163d45;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.7;
}

.top-learning__card-body>p:last-child {
    margin: 0;
    color: #718287;
    font-size: 14px;
    line-height: 1.9;
}

.top-learning__arrow {
    position: absolute;
    right: 28px;
    bottom: 24px;
    z-index: 2;
    color: #30c9c3;
    font-size: 25px;
    transition: transform .3s ease;
}

.top-learning__card:hover .top-learning__arrow {
    transform: translateX(7px);
}

.top-learning__more {
    margin-top: 48px;
    text-align: center;
}

.top-learning__more a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    min-width: 320px;
    padding: 18px 34px;
    border: 1px solid #30c9c3;
    border-radius: 999px;
    background: #30c9c3;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    transition:
        background .3s ease,
        color .3s ease,
        transform .3s ease;
}

.top-learning__more a:hover {
    background: #fff;
    color: #163d45;
    transform: translateY(-3px);
}

.top-learning__more span {
    font-size: 20px;
    transition: transform .3s ease;
}

.top-learning__more a:hover span {
    transform: translateX(6px);
}

/* スマートフォン */
@media screen and (max-width: 768px) {

    .top-learning {
        margin-top: 45px;
        padding: 78px 0 85px;
    }


    .top-learning__inner {
        width: calc(100% - 30px);
    }

    .top-learning__heading {
        display: block;
        margin-bottom: 40px;
    }

    .top-learning__heading h2 {
        margin-bottom: 20px;
        font-size: 34px;
    }

    .top-learning__lead {
        font-size: 14px;
        line-height: 1.9;
    }

    .top-learning__cards {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .top-learning__card {
        min-height: 0;
        padding: 28px 24px 62px;
        border-radius: 26px 0 26px 0;
    }

    .top-learning__number {
        margin-bottom: 30px;
    }

    .top-learning__card h3 {
        font-size: 19px;
    }

    .top-learning__card-body>p:last-child {
        font-size: 13px;
    }

    .top-learning__more {
        margin-top: 34px;
    }

    .top-learning__more a {
        width: 100%;
        min-width: 0;
        padding: 17px 24px;
    }
}

/* =========================================================
   TOP FAQ PREMIUM
========================================================= */

.top-faq-premium,
.top-faq-premium * {
    box-sizing: border-box;
}

.top-faq-premium {
    position: relative;
    padding: 120px 0;
    overflow: hidden;
    background: #163d45;
}

.top-faq-premium::before {
    position: absolute;
    top: -160px;
    left: -130px;
    width: 420px;
    height: 420px;
    border: 1px solid rgba(101, 248, 236, .15);
    border-radius: 50%;
    content: "";
}

.top-faq-premium::after {
    position: absolute;
    right: -100px;
    bottom: -180px;
    width: 380px;
    height: 380px;
    border: 1px solid rgba(101, 248, 236, .12);
    border-radius: 50%;
    content: "";
}

.top-faq-premium__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 38% 1fr;
    align-items: start;
    gap: 90px;
    width: min(1200px, calc(100% - 80px));
    margin: 0 auto;
}

.top-faq-premium__intro {
    position: sticky;
    top: 130px;
}

.top-faq-premium__en {
    margin: 0 0 22px;
    color: #65f8ec;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .32em;
}

.top-faq-premium__intro h2 {
    margin: 0 0 30px;
    color: #fff;
    font-size: clamp(36px, 4vw, 58px);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: .02em;
}

.top-faq-premium__intro h2 span {
    color: #65f8ec;
}

.top-faq-premium__lead {
    margin: 0 0 42px;
    color: rgba(255, 255, 255, .68);
    font-size: 15px;
    line-height: 2.05;
}

.top-faq-premium__more {
    display: inline-flex;
    align-items: center;
    gap: 24px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(101, 248, 236, .6);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.top-faq-premium__more span {
    color: #65f8ec;
    font-size: 21px;
    transition: transform .3s ease;
}

.top-faq-premium__more:hover span {
    transform: translateX(7px);
}

.top-faq-premium__content {
    border-top: 1px solid rgba(255, 255, 255, .16);
}

.top-faq-premium__item {
    border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.top-faq-premium__question {
    display: grid;
    grid-template-columns: 52px 1fr 38px;
    align-items: center;
    gap: 24px;
    width: 100%;
    min-height: 108px;
    padding: 24px 10px;
    border: 0;
    background: transparent;
    color: #fff;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition:
        padding-left .3s ease,
        background-color .3s ease;
}

.top-faq-premium__question:hover {
    padding-left: 22px;
    background: rgba(255, 255, 255, .035);
}

.top-faq-premium__number {
    color: #65f8ec;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
}

.top-faq-premium__text {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.7;
}

.top-faq-premium__toggle {
    position: relative;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(101, 248, 236, .5);
    border-radius: 50%;
}

.top-faq-premium__toggle::before,
.top-faq-premium__toggle::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 1px;
    background: #65f8ec;
    content: "";
    transform: translate(-50%, -50%);
    transition: transform .3s ease;
}

.top-faq-premium__toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.top-faq-premium__item.is-open .top-faq-premium__toggle::after {
    transform: translate(-50%, -50%) rotate(0);
}

.top-faq-premium__answer {
    display: none;
    padding: 0 72px 30px 86px;
}

.top-faq-premium__answer p {
    margin: 0;
    padding: 24px 28px;
    border-left: 2px solid #65f8ec;
    background: rgba(255, 255, 255, .045);
    color: rgba(255, 255, 255, .75);
    font-size: 14px;
    line-height: 2;
}

/* スマートフォン */
@media screen and (max-width: 768px) {

    .top-faq-premium {
        padding: 78px 0 85px;
    }

    .top-faq-premium__inner {
        display: block;
        width: calc(100% - 30px);
    }

    .top-faq-premium__intro {
        position: static;
        margin-bottom: 48px;
    }

    .top-faq-premium__en {
        margin-bottom: 15px;
        font-size: 12px;
    }

    .top-faq-premium__intro h2 {
        margin-bottom: 22px;
        font-size: 34px;
        line-height: 1.45;
    }

    .top-faq-premium__lead {
        margin: 0;
        font-size: 14px;
        line-height: 1.9;
    }

    .top-faq-premium__question {
        grid-template-columns: 34px 1fr 30px;
        gap: 10px;
        min-height: 82px;
        padding: 17px 2px;
    }

    .top-faq-premium__question:hover {
        padding-left: 2px;
        background: transparent;
    }

    .top-faq-premium__text {
        font-size: 15px;
    }

    .top-faq-premium__toggle {
        width: 28px;
        height: 28px;
    }

    .top-faq-premium__answer {
        padding: 0 0 20px 34px;
    }

    .top-faq-premium__answer p {
        padding: 18px;
        font-size: 13px;
        line-height: 1.9;
    }

    .top-faq-premium__more--sp {
        justify-content: space-between;
        width: 100%;
        margin-top: 32px;
        padding: 15px 0;
    }
}

/* =========================================================
   TOP MEMBER'S VOICE
========================================================= */

.top-voice,
.top-voice * {
    box-sizing: border-box;
}

.top-voice {
    position: relative;
    overflow: hidden;
    margin-top: 80px;
    /* ←追加 */
    padding: 110px 30px;
    background: #f1f8f7;
}

/* 背景装飾 */
.top-voice::before {
    position: absolute;
    top: -180px;
    right: -120px;
    width: 440px;
    height: 440px;
    border: 1px solid rgba(47, 200, 193, .18);
    border-radius: 50%;
    content: "";
}

.top-voice::after {
    position: absolute;
    bottom: -220px;
    left: -160px;
    width: 420px;
    height: 420px;
    border: 1px solid rgba(47, 200, 193, .12);
    border-radius: 50%;
    content: "";
}

.top-voice__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

.top-voice__heading {
    margin-bottom: 55px;
    text-align: center;
}

.top-voice__en {
    margin: 0 0 12px;
    color: #2fc8c1;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .24em;
}

.top-voice__heading h2 {
    margin: 0 0 20px;
    color: #153b43;
    font-size: clamp(42px, 5vw, 68px);
    font-weight: 800;
    line-height: 1.2;
}

.top-voice__lead {
    margin: 0;
    color: #687c82;
    font-size: 16px;
    line-height: 2;
}

/* カード一覧 */
.top-voice__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

/* カード */
.top-voice__card {
    position: relative;
    min-width: 0;
    padding: 34px 32px 31px;
    border: 1px solid #d7e8e6;
    border-radius: 28px 0 28px 0;
    background: #fff;
    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.top-voice__card:hover {
    transform: translateY(-8px);
    border-color: rgba(47, 200, 193, .55);
    box-shadow: 0 20px 45px rgba(21, 59, 67, .10);
}

.top-voice__card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 25px;
}

.top-voice__number {
    color: #2fbdb7;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
}

.top-voice__rating {
    color: #efb833;
    font-size: 15px;
    letter-spacing: .08em;
    white-space: nowrap;
}

.top-voice__profile {
    margin: 0 0 13px;
    color: #30aaa4;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
}

.top-voice__card h3 {
    margin: 0 0 20px;
    color: #153b43;
    font-size: clamp(20px, 1.7vw, 25px);
    font-weight: 700;
    line-height: 1.7;
}

.top-voice__text {
    margin: 0;
    color: #687c82;
    font-size: 13px;
    line-height: 2;
}

.top-voice__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 25px;
    padding-top: 22px;
    border-top: 1px solid #dfedeb;
}

.top-voice__tags span {
    display: inline-flex;
    align-items: center;
    padding: 7px 11px;
    border: 1px solid rgba(47, 200, 193, .32);
    border-radius: 999px;
    background: #f6fbfa;
    color: #31545a;
    font-size: 10px;
    font-weight: 700;
}

/* 詳細リンク */
.top-voice__cta {
    display: flex;
    justify-content: center;
    margin-top: 48px;
}

.top-voice__cta a {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
    min-width: 300px;
    padding: 18px 4px;
    border-bottom: 1px solid #2fc8c1;
    color: #153b43;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
    transition: color .25s ease;
}

.top-voice__cta a:hover {
    color: #2fbdb7;
}

.top-voice__arrow {
    color: #2fc8c1;
    font-size: 24px;
    transition: transform .25s ease;
}

.top-voice__cta a:hover .top-voice__arrow {
    transform: translateX(7px);
}

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

    .top-voice {
        padding: 70px 20px;
    }

    .top-voice__heading {
        margin-bottom: 36px;
        text-align: left;
    }

    .top-voice__heading h2 {
        font-size: 32px;
    }

    .top-voice__lead {
        font-size: 13px;
        line-height: 1.9;
    }

    .top-voice__list {
        display: block;
    }

    .top-voice__card,
    .top-voice__card:last-child {
        width: 100%;
        margin: 0;
        padding: 28px 22px 25px;
    }

    .top-voice__card+.top-voice__card {
        margin-top: 18px;
    }

    .top-voice__card:hover {
        transform: none;
    }

    .top-voice__card-head {
        margin-bottom: 19px;
    }

    .top-voice__card h3 {
        font-size: 19px;
        line-height: 1.7;
    }

    .top-voice__text {
        font-size: 12px;
        line-height: 1.9;
    }

    .top-voice__cta {
        margin-top: 35px;
    }

    .top-voice__cta a {
        width: 100%;
        min-width: 0;
        font-size: 13px;
    }

}

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

    .top-voice {
        padding-right: 15px;
        padding-left: 15px;
    }

    .top-voice__card {
        padding: 24px 18px 22px;
    }

    .top-voice__rating {
        font-size: 13px;
    }

    .top-voice__card h3 {
        font-size: 17px;
    }

}

/* =========================================================
   TOP PURPOSE MENU
========================================================= */

.top-purpose,
.top-purpose * {
    box-sizing: border-box;
}

.top-purpose {
    padding: 120px 0;
    overflow: hidden;
    background: #f5fbfa;
}

.top-purpose__inner {
    width: min(1380px, calc(100% - 80px));
    margin: 0 auto;
}

/* 見出し */

.top-purpose__heading {
    max-width: 850px;
    margin: 0 auto 65px;
    text-align: center;
}

.top-purpose__icon {
    position: relative;
    display: block;
    width: 42px;
    height: 42px;
    margin: 0 auto 14px;
}

.top-purpose__icon i {
    position: absolute;
    width: 23px;
    height: 23px;
    border-radius: 50%;
}

.top-purpose__icon i:nth-child(1) {
    top: 0;
    left: 0;
    background: #4de4dc;
}

.top-purpose__icon i:nth-child(2) {
    top: 4px;
    right: 0;
    background: #dff7f5;
}

.top-purpose__icon i:nth-child(3) {
    right: 5px;
    bottom: 0;
    background: #129d98;
}

.top-purpose__en {
    margin: 0 0 8px;
    color: #30cec5;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.top-purpose__heading h2 {
    margin: 0 0 18px;
    color: #123f49;
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1.5;
}

.top-purpose__lead {
    margin: 0;
    color: #63777b;
    font-size: 15px;
    line-height: 2;
}

/* 3カード */

.top-purpose__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.top-purpose__item {
    overflow: hidden;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(18, 63, 73, 0.08);
    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease;
}

.top-purpose__item:hover {
    transform: translateY(-8px);
    box-shadow: 0 26px 55px rgba(18, 63, 73, 0.14);
}

.top-purpose__item>a {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.top-purpose__item figure {
    height: 285px;
    margin: 0;
    overflow: hidden;
    border-radius: 28px 28px 70px 0;
}

.top-purpose__item figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.top-purpose__item:hover figure img {
    transform: scale(1.05);
}

.top-purpose__content {
    padding: 30px 30px 32px;
}

.top-purpose__target {
    margin: 0 0 12px;
    color: #0f9f99;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.7;
}

.top-purpose__content h3 {
    margin: 0 0 17px;
    padding: 0;
    background: none;
    color: #123f49;
    font-size: clamp(23px, 2vw, 29px);
    line-height: 1.55;
}

.top-purpose__text {
    margin: 0;
    color: #5f7074;
    font-size: 14px;
    line-height: 1.95;
}

.top-purpose__more {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 25px;
    padding-top: 18px;
    border-top: 1px solid #d8e9e7;
    color: #123f49;
    font-size: 14px;
    font-weight: 700;
}

.top-purpose__more i {
    color: #30cec5;
    font-size: 20px;
    font-style: normal;
    transition: transform 0.3s ease;
}

.top-purpose__item:hover .top-purpose__more i {
    transform: translateX(6px);
}

/* レンタルスペース */

.top-purpose__rental {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    min-height: 440px;
    margin-top: 55px;
    overflow: hidden;
    border-radius: 32px;
    background: #123f49;
    box-shadow: 0 24px 55px rgba(18, 63, 73, 0.16);
}

.top-purpose__rental-image {
    min-height: 440px;
    margin: 0;
    overflow: hidden;
}

.top-purpose__rental-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.top-purpose__rental-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 55px 55px;
    color: #fff;
}

.top-purpose__rental-en {
    margin: 0 0 10px;
    color: #6ce6df;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.top-purpose__rental-content h3 {
    margin: 0 0 20px;
    padding: 0;
    background: none;
    color: #fff;
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.5;
}

.top-purpose__rental-text {
    margin: 0;
    color: rgba(255, 255, 255, 0.77);
    font-size: 14px;
    line-height: 2;
}

.top-purpose__rental-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 25px 0 30px;
    padding: 0;
    list-style: none;
}

.top-purpose__rental-tags li {
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: #fff;
    font-size: 12px;
}

.top-purpose__rental-btn {
    display: inline-flex;
    width: fit-content;
    min-width: 285px;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    padding: 17px 23px;
    border-radius: 999px;
    background: #30cec5;
    color: #08282e;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition:
        background-color 0.3s ease,
        transform 0.3s ease;
}

.top-purpose__rental-btn span {
    font-size: 20px;
    transition: transform 0.3s ease;
}

.top-purpose__rental-btn:hover {
    background: #fff;
    transform: translateY(-3px);
}

.top-purpose__rental-btn:hover span {
    transform: translateX(5px);
}

/* タブレット */

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

    .top-purpose__inner {
        width: calc(100% - 50px);
    }

    .top-purpose__list {
        grid-template-columns: 1fr;
    }

    .top-purpose__item>a {
        display: grid;
        grid-template-columns: 0.9fr 1.1fr;
    }

    .top-purpose__item figure {
        height: 100%;
        min-height: 330px;
        border-radius: 28px 0 70px 28px;
    }

    .top-purpose__rental {
        grid-template-columns: 1fr;
    }

    .top-purpose__rental-image {
        min-height: 380px;
    }
}

/* スマートフォン */

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

    .top-purpose {
        padding: 80px 0;
    }

    .top-purpose__inner {
        width: calc(100% - 30px);
    }

    .top-purpose__heading {
        margin-bottom: 42px;
    }

    .top-purpose__heading h2 {
        font-size: 32px;
    }

    .top-purpose__lead {
        font-size: 14px;
        line-height: 1.9;
    }

    .top-purpose__list {
        gap: 22px;
    }

    .top-purpose__item>a {
        display: block;
    }

    .top-purpose__item figure {
        height: 235px;
        min-height: 0;
        border-radius: 24px 24px 55px 0;
    }

    .top-purpose__content {
        padding: 25px 22px 27px;
    }

    .top-purpose__content h3 {
        font-size: 23px;
    }

    .top-purpose__rental {
        margin-top: 35px;
        border-radius: 24px;
    }

    .top-purpose__rental-image {
        min-height: 245px;
    }

    .top-purpose__rental-content {
        padding: 35px 23px;
    }

    .top-purpose__rental-content h3 {
        font-size: 28px;
    }

    .top-purpose__rental-btn {
        width: 100%;
        min-width: 0;
    }
}

/* =========================================================
   ノートPC向け調整
   大画面デスクトップには影響させない
========================================================= */
@media screen and (min-width: 1025px) and (max-width: 1500px) {

    .top-purpose__rental {
        grid-template-columns: 46% 54%;
    }

    .top-purpose__rental-content {
        padding: 42px 38px;
    }

    .top-purpose__rental-content h3 {
        font-size: 34px;
        line-height: 1.45;
    }

    .top-purpose__rental-text {
        font-size: 13px;
        line-height: 1.9;
    }

    .top-purpose__rental-tags {
        gap: 8px;
        margin: 20px 0 26px;
    }

    .top-purpose__rental-tags li {
        padding: 7px 13px;
        font-size: 11px;
    }

    .top-purpose__rental-btn {
        min-width: 260px;
        padding: 15px 21px;
    }
}

/* =========================================================
   TOP 施設紹介ダイジェスト
========================================================= */

.top-facility-preview {
    width: 100%;
    margin: 100px 0 80px;
}

.top-facility-preview__heading {
    margin-bottom: 48px;
    text-align: center;
}

.top-facility-preview__en {
    margin: 0 0 12px;
    color: #21c4bd;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.18em;
}

.top-facility-preview__heading h2 {
    margin: 0;
    color: #123f47;
    font-size: 42px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.06em;
}

.top-facility-preview__lead {
    margin: 20px 0 0;
    color: #62777c;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.04em;
}


/* 4枚グリッド */
.top-facility-preview__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}


/* 各カード */
.top-facility-preview__item {
    min-width: 0;
}

.top-facility-preview__item a {
    display: block;
    height: 100%;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    background: #fff;
    border-radius: 28px;
    box-shadow: 0 18px 45px rgba(17, 70, 77, 0.1);
    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease;
}

.top-facility-preview__item a:hover {
    transform: translateY(-7px);
    box-shadow: 0 24px 55px rgba(17, 70, 77, 0.16);
}


/* 写真 */
.top-facility-preview__image {
    width: 100%;
    margin: 0;
    overflow: hidden;
    aspect-ratio: 4 / 3;
}

.top-facility-preview__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.top-facility-preview__item a:hover img {
    transform: scale(1.05);
}


/* カード内テキスト */
.top-facility-preview__content {
    padding: 28px 26px 32px;
}

.top-facility-preview__number {
    margin: 0 0 12px;
    color: #21c4bd;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.16em;
}

.top-facility-preview__content h3 {
    margin: 0 0 16px;
    color: #123f47;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.5;
}

.top-facility-preview__content p:not(.top-facility-preview__number) {
    margin: 0;
    color: #657a7f;
    font-size: 14px;
    line-height: 2;
}


/* 施設紹介ボタン */
.top-facility-preview__button {
    margin-top: 48px;
    text-align: center;
}

.top-facility-preview__button a {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: min(100%, 340px);
    min-height: 64px;
    padding: 15px 26px;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-decoration: none;
    background: #123f47;
    border: 2px solid #123f47;
    border-radius: 999px;
    transition:
        color 0.3s ease,
        background 0.3s ease,
        transform 0.3s ease;
}

.top-facility-preview__button a span {
    color: #21c4bd;
    font-size: 23px;
    line-height: 1;
}

.top-facility-preview__button a:hover {
    color: #123f47;
    background: #fff;
    transform: translateY(-3px);
}

/* =========================================================
   ノートPC
========================================================= */
@media screen and (min-width: 1025px) and (max-width: 1500px) {

    .top-facility-preview {
        margin: 80px 0 70px;
    }

    .top-facility-preview__heading {
        margin-bottom: 38px;
    }

    .top-facility-preview__heading h2 {
        font-size: 36px;
    }

    .top-facility-preview__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px;
    }

    .top-facility-preview__image {
        aspect-ratio: 16 / 9;
    }

    .top-facility-preview__content {
        padding: 24px 26px 28px;
    }

    .top-facility-preview__content h3 {
        font-size: 21px;
    }
}

/* =========================================================
   タブレット
========================================================= */
@media screen and (max-width: 1024px) {

    .top-facility-preview {
        margin: 70px 0 60px;
    }

    .top-facility-preview__heading {
        margin-bottom: 34px;
    }

    .top-facility-preview__heading h2 {
        font-size: 34px;
    }

    .top-facility-preview__lead {
        font-size: 15px;
    }

    .top-facility-preview__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

    .top-facility-preview__content {
        padding: 24px 22px 28px;
    }

    .top-facility-preview__content h3 {
        font-size: 20px;
    }
}

/* =========================================================
   スマートフォン
========================================================= */
@media screen and (max-width: 767px) {

    .top-facility-preview {
        margin: 55px 0 48px;
    }

    .top-facility-preview__heading {
        margin-bottom: 28px;
        padding: 0 6px;
    }

    .top-facility-preview__en {
        margin-bottom: 8px;
        font-size: 11px;
    }

    .top-facility-preview__heading h2 {
        font-size: 28px;
    }

    .top-facility-preview__lead {
        margin-top: 14px;
        font-size: 14px;
        line-height: 1.9;
    }

    .top-facility-preview__grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .top-facility-preview__item a {
        border-radius: 22px;
    }

    .top-facility-preview__image {
        aspect-ratio: 16 / 10;
    }

    .top-facility-preview__content {
        padding: 22px 20px 25px;
    }

    .top-facility-preview__number {
        margin-bottom: 8px;
        font-size: 11px;
    }

    .top-facility-preview__content h3 {
        margin-bottom: 10px;
        font-size: 19px;
    }

    .top-facility-preview__content p:not(.top-facility-preview__number) {
        font-size: 13px;
        line-height: 1.85;
    }

    .top-facility-preview__button {
        margin-top: 30px;
    }

    .top-facility-preview__button a {
        width: 100%;
        min-height: 58px;
        padding: 13px 22px;
        font-size: 14px;
    }
}

/* =========================================================
   TOP Shark Style Gymとは
   インパクトデザイン
========================================================= */
.top-about-impact {
    position: relative;
    min-height: 850px;
    overflow: hidden;
    background: #052f38;
    color: #fff;
}

/* 背景写真 */
.top-about-impact__bg {
    position: absolute;
    inset: 0;
}

.top-about-impact__bg img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.01);
}

/* 暗いグラデーション */
.top-about-impact__overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg,
            rgba(2, 35, 43, 0.96) 0%,
            rgba(2, 35, 43, 0.83) 42%,
            rgba(2, 35, 43, 0.36) 75%,
            rgba(2, 35, 43, 0.2) 100%),
        linear-gradient(0deg,
            rgba(2, 35, 43, 0.8) 0%,
            rgba(2, 35, 43, 0) 50%);
}

/* コンテンツ */
.top-about-impact__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    align-items: center;
    gap: 80px;
    width: min(1500px, calc(100% - 100px));
    min-height: 850px;
    margin: 0 auto;
    padding: 110px 0 150px;
}

.top-about-impact__content {
    max-width: 780px;
}

.top-about-impact__en {
    position: relative;
    display: inline-block;
    margin: 0 0 25px;
    padding-left: 55px;
    color: #31d0ca;
    font-size: 14px;
    font-weight: 800;
    font-style: italic;
    letter-spacing: 0.25em;
}

.top-about-impact__en::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 38px;
    height: 2px;
    background: #31d0ca;
    transform: translateY(-50%);
}

.top-about-impact h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(48px, 5.5vw, 88px);
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: 0.025em;
    text-shadow: 0 8px 30px rgba(0, 0, 0, 0.35);
}

.top-about-impact__lead {
    margin: 36px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 18px;
    line-height: 2;
    letter-spacing: 0.04em;
}

/* 特徴タグ */
.top-about-impact__features {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 38px 0 0;
    padding: 0;
    list-style: none;
}

.top-about-impact__features li {
    position: relative;
    padding: 12px 22px 12px 38px;
    border: 1px solid rgba(49, 208, 202, 0.38);
    background: rgba(4, 45, 53, 0.66);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.05em;
    backdrop-filter: blur(7px);
}

.top-about-impact__features li::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 18px;
    width: 7px;
    height: 7px;
    background: #31d0ca;
    transform: translateY(-50%) rotate(45deg);
}

/* ボタン */
.top-about-impact__button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(100%, 390px);
    min-height: 74px;
    margin-top: 45px;
    padding: 0 18px 0 32px;
    border-radius: 999px;
    background: #31d0ca;
    color: #052f38;
    text-decoration: none;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.07em;
    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.top-about-impact__button-arrow {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #052f38;
    color: #fff;
    font-size: 20px;
    transition: transform 0.3s ease;
}

.top-about-impact__button:hover {
    background: #fff;
    color: #052f38;
    opacity: 1;
    transform: translateY(-4px);
}

.top-about-impact__button:hover .top-about-impact__button-arrow {
    transform: translateX(5px);
}

/* 65%訴求 */
.top-about-impact__stat {
    position: relative;
    padding: 45px 32px;
    border-top: 4px solid #31d0ca;
    background: rgba(3, 39, 47, 0.78);
    text-align: center;
    box-shadow: 0 25px 65px rgba(0, 0, 0, 0.34);
    backdrop-filter: blur(9px);
}

.top-about-impact__stat::before {
    content: "CONTINUE";
    position: absolute;
    top: 12px;
    right: -25px;
    color: rgba(255, 255, 255, 0.045);
    font-family: Arial, sans-serif;
    font-size: 48px;
    font-weight: 900;
    font-style: italic;
    letter-spacing: 0.02em;
    writing-mode: vertical-rl;
}

.top-about-impact__stat-number {
    margin: 0;
    color: #31d0ca;
    font-family: Arial, sans-serif;
    line-height: 1;
}

.top-about-impact__stat-number strong {
    font-size: 100px;
    font-weight: 900;
}

.top-about-impact__stat-number span {
    font-size: 34px;
    font-weight: 800;
}

.top-about-impact__stat-title {
    margin: 18px 0 0;
    color: #fff;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.6;
}

.top-about-impact__stat-note {
    margin: 18px 0 0;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.64);
    font-size: 13px;
    line-height: 1.8;
}

/* 次セクションへのつなぎ */
.top-about-impact__bottom {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    min-height: 96px;
    border-top: 1px solid rgba(49, 208, 202, 0.22);
    background: rgba(3, 39, 47, 0.7);
    backdrop-filter: blur(8px);
}

.top-about-impact__bottom p {
    margin: 0;
    color: #31d0ca;
    font-size: 13px;
    font-weight: 800;
    font-style: italic;
    letter-spacing: 0.3em;
}

.top-about-impact__bottom span {
    color: #fff;
    font-size: 22px;
    animation: aboutImpactArrow 1.5s ease-in-out infinite;
}

@keyframes aboutImpactArrow {

    0%,
    100% {
        transform: translateY(-3px);
    }

    50% {
        transform: translateY(5px);
    }
}

@media screen and (min-width: 1025px) and (max-width: 1500px) {

    .top-about-impact,
    .top-about-impact__inner {
        min-height: 720px;
    }

    .top-about-impact__inner {
        grid-template-columns: minmax(0, 1fr) 250px;
        gap: 48px;
        width: min(1320px, calc(100% - 60px));
        padding: 85px 0 125px;
    }

    .top-about-impact h2 {
        font-size: 58px;
    }

    .top-about-impact__lead {
        margin-top: 25px;
        font-size: 15px;
    }

    .top-about-impact__features {
        margin-top: 26px;
    }

    .top-about-impact__features li {
        padding: 10px 17px 10px 32px;
        font-size: 12px;
    }

    .top-about-impact__button {
        min-height: 64px;
        margin-top: 30px;
    }

    .top-about-impact__stat {
        padding: 38px 24px;
    }

    .top-about-impact__stat-number strong {
        font-size: 78px;
    }
}

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

    .top-about-impact {
        min-height: auto;
    }

    .top-about-impact__inner {
        display: block;
        width: calc(100% - 60px);
        min-height: auto;
        padding: 100px 0 155px;
    }

    .top-about-impact__content {
        max-width: 720px;
    }

    .top-about-impact h2 {
        font-size: 54px;
    }

    .top-about-impact__stat {
        width: min(100%, 360px);
        margin-top: 55px;
    }
}

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

    .top-about-impact__overlay {
        background:
            linear-gradient(0deg,
                rgba(2, 35, 43, 0.98) 0%,
                rgba(2, 35, 43, 0.82) 68%,
                rgba(2, 35, 43, 0.56) 100%);
    }

    .top-about-impact__bg img {
        object-position: 58% center;
    }

    .top-about-impact__inner {
        width: calc(100% - 30px);
        padding: 72px 0 135px;
    }

    .top-about-impact__en {
        margin-bottom: 16px;
        padding-left: 40px;
        font-size: 10px;
        letter-spacing: 0.2em;
    }

    .top-about-impact__en::before {
        width: 28px;
    }

    .top-about-impact h2 {
        font-size: 35px;
        line-height: 1.4;
    }

    .top-about-impact__lead {
        margin-top: 24px;
        font-size: 14px;
        line-height: 1.9;
    }

    .top-about-impact__features {
        gap: 8px;
        margin-top: 26px;
    }

    .top-about-impact__features li {
        padding: 9px 13px 9px 28px;
        font-size: 11px;
    }

    .top-about-impact__features li::before {
        left: 13px;
        width: 6px;
        height: 6px;
    }

    .top-about-impact__button {
        width: 100%;
        min-height: 64px;
        margin-top: 28px;
        padding-left: 23px;
        font-size: 12px;
    }

    .top-about-impact__button-arrow {
        width: 42px;
        height: 42px;
    }

    .top-about-impact__stat {
        width: 100%;
        margin-top: 40px;
        padding: 32px 20px;
    }

    .top-about-impact__stat-number strong {
        font-size: 72px;
    }

    .top-about-impact__stat-number span {
        font-size: 26px;
    }

    .top-about-impact__stat-title {
        font-size: 17px;
    }

    .top-about-impact__bottom {
        min-height: 78px;
    }

    .top-about-impact__bottom p {
        font-size: 10px;
        letter-spacing: 0.22em;
    }
}

/* =========================================================
   TOPページ PCヘッダー調整
   「初めての方へ」ページと同程度のサイズ
========================================================= */
@media screen and (min-width: 769px) {

    /* ヘッダー全体 */
    body>header {
        min-height: 170px;
        padding: 20px 40px;
    }

    /* ロゴ */
    body>header h1 {
        flex: 0 0 auto;
        width: 250px;
    }

    body>header h1 img {
        display: block;
        width: 100%;
        height: auto;
    }

    /* メニューエリア */
    body>header .gnav {
        margin-left: auto;
    }

    body>header .gnav-menu {
        display: flex;
        align-items: center;
        justify-content: flex-end;
    }

    /* メニュー文字 */
    body>header .gnav-menu>li>a {
        font-size: 18px;
        line-height: 1.5;
        white-space: nowrap;
    }

    /* メニュー間隔 */
    body>header .gnav-menu>li:not(:first-child) {
        margin-left: 48px;
    }
}

/* =========================================================
   TOPページ ノートPCヘッダー
========================================================= */
@media screen and (min-width: 769px) and (max-width: 1500px) {

    body>header {
        min-height: 130px;
        padding: 16px 28px;
    }

    body>header h1 {
        width: 190px;
    }

    body>header .gnav-menu>li>a {
        font-size: 14px;
    }

    body>header .gnav-menu>li:not(:first-child) {
        margin-left: 26px;
    }
}

/* =========================================================
   TOP PURPOSE MENU
   写真重視・補足文表示・4項目対応
========================================================= */

.top-purpose__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 28px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.top-purpose__item {
    min-width: 0;
    overflow: hidden;
    border-radius: 34px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(18, 63, 73, 0.1);
    transition:
        transform 0.35s ease,
        box-shadow 0.35s ease;
}

.top-purpose__item:hover {
    box-shadow: 0 30px 65px rgba(18, 63, 73, 0.17);
    transform: translateY(-8px);
}

.top-purpose__item>a {
    display: flex;
    height: 100%;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
}

/* 写真部分 */
.top-purpose__item figure {
    position: relative;
    flex: 0 0 380px;
    width: 100%;
    height: 380px;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    border-radius: 34px 34px 80px 0;
}

.top-purpose__item figure::after {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg,
            rgba(8, 44, 52, 0) 55%,
            rgba(8, 44, 52, 0.2) 100%);
    content: "";
}

.top-purpose__item figure img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition:
        transform 0.6s ease,
        filter 0.45s ease;
}

.top-purpose__item:hover figure img {
    filter: saturate(1.08) contrast(1.04);
    transform: scale(1.06);
}

/* 本文部分 */
.top-purpose__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 24px 29px 28px;
}

.top-purpose__target {
    margin: 0 0 9px;
    color: #0f9f99;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.65;
    letter-spacing: 0.02em;
}

.top-purpose__content h3 {
    margin: 0 0 13px;
    padding: 0;
    background: none;
    color: #123f49;
    font-size: clamp(23px, 2vw, 29px);
    font-weight: 700;
    line-height: 1.45;
}

/* 補足文を省略せず表示 */

.top-purpose__text {
    display: block;
    margin: 0;
    overflow: visible;
    color: #5f7074;
    font-size: 13px;
    line-height: 1.85;
    -webkit-box-orient: initial;
    -webkit-line-clamp: unset;
}

.top-purpose__more {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid #d8e9e7;
    color: #123f49;
    font-size: 13px;
    font-weight: 700;
}

.top-purpose__more i {
    color: #30cec5;
    font-size: 20px;
    font-style: normal;
    transition: transform 0.3s ease;
}

.top-purpose__item:hover .top-purpose__more i {
    transform: translateX(6px);
}

/* =========================================================
   SECTION SHARK ICON
   Instagram・目的別メニュー共通
========================================================= */

.section-title__icon {
    display: flex;
    width: 58px;
    height: 48px;
    align-items: center;
    justify-content: center;
    margin: 0 auto 8px;

    /* サメのヒレを切らない */
    overflow: visible;
}

.section-title__icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;

    /* 透明余白を補う拡大 */
    transform: scale(4.4);
    transform-origin: center;
}

/* ==========================================
   SNS Shark Icon
========================================== */

.top-sns .section-title__icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 48px;
    margin: 0 auto 10px;
}

.top-sns .section-title__icon img {
    width: 100%;
    height: auto;
    display: block;
}

.top-insta .heading-1>span:first-child {
    display: none;
}

/* ==========================================
   Facility
========================================== */

.top-facility__head .section-title__icon {
    margin-bottom: 8px;
}

.top-facility__head .top-facility__en {
    margin-top: 0;
    margin-bottom: 18px;
}

/* =========================================================
   FACILITY HEADING
========================================================= */

.top-facility-preview__heading {
    width: 100%;
    margin: 0 auto 55px;
    text-align: center;
}

.top-facility-preview__heading .section-title__icon {
    margin: 0 auto 8px;
}

.top-facility-preview__en {
    margin: 0 0 18px;
    color: #2fc9c5;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.16em;
}

.top-facility-preview__heading h2 {
    margin: 0 0 22px;
    color: #123f49;
    font-size: 42px;
    font-weight: 700;
    line-height: 1.4;
}

.top-facility-preview__lead {
    margin: 0;
    color: #64777b;
    font-size: 15px;
    line-height: 1.9;
}

/* =========================================================
   本格リングセクション レスポンシブ修正
========================================================= */

/* ノートPC */
@media screen and (min-width: 769px) and (max-width: 1500px) {

    .top-ring-gym {
        overflow: hidden;
    }

    .top-ring-gym__inner {
        display: grid;
        grid-template-columns: minmax(0, 58%) minmax(0, 42%);
        align-items: center;
        width: min(1400px, calc(100% - 60px));
        margin: 0 auto;
    }

    .top-ring-gym__visual,
    .top-ring-gym__content {
        min-width: 0;
    }

    .top-ring-gym__visual img {
        display: block;
        width: 100%;
        height: clamp(560px, 55vw, 760px);
        object-fit: cover;
    }

    .top-ring-gym__content {
        padding: 60px 35px 60px 60px;
    }

    .top-ring-gym__heading h2 {
        font-size: clamp(38px, 3.7vw, 58px);
        line-height: 1.45;
    }

    .top-ring-gym__text {
        font-size: 15px;
        line-height: 2;
    }
}


/* スマートフォン */
@media screen and (max-width: 768px) {

    .top-ring-gym {
        width: 100%;
        overflow: hidden;
    }

    .top-ring-gym__inner {
        display: flex;
        flex-direction: column;
        width: 100%;
        margin: 0;
    }

    /* 画像を必ず上に表示 */
    .top-ring-gym__visual {
        position: relative;
        display: block;
        order: 1;
        width: 100%;
        height: 310px;
        min-height: 0;
        margin: 0;
        overflow: hidden;
        transform: none;
    }

    .top-ring-gym__visual img {
        position: static;
        display: block;
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
        object-position: center;
        transform: none;
    }

    .top-ring-gym__visual-overlay {
        position: absolute;
        inset: 0;
    }

    /* 縦書き英字はSPでは非表示 */
    .top-ring-gym__vertical {
        display: none;
    }

    /* 画像上のSPECIAL表示 */
    .top-ring-gym__badge {
        position: absolute;
        right: 15px;
        bottom: 15px;
        left: 15px;
        width: auto;
        padding: 15px 18px;
        font-size: 14px;
        line-height: 1.7;
        transform: none;
    }

    .top-ring-gym__badge span {
        display: block;
        margin-bottom: 4px;
        font-size: 10px;
        letter-spacing: 0.18em;
    }

    /* 文章を画像の下に表示 */
    .top-ring-gym__content {
        order: 2;
        width: 100%;
        min-width: 0;
        margin: 0;
        padding: 48px 22px 70px;
        box-sizing: border-box;
        transform: none;
    }

    .top-ring-gym__heading {
        width: 100%;
    }

    .top-ring-gym__en {
        margin-bottom: 14px;
        font-size: 11px;
        letter-spacing: 0.2em;
    }

    .top-ring-gym__heading h2 {
        margin: 0;
        font-size: clamp(31px, 9vw, 40px);
        line-height: 1.45;
        letter-spacing: 0;
        word-break: normal;
        overflow-wrap: anywhere;
    }

    .top-ring-gym__lead {
        margin-top: 32px;
        padding-left: 18px;
        font-size: 16px;
        line-height: 1.8;
    }

    .top-ring-gym__lead span {
        display: block;
    }

    .top-ring-gym__text {
        margin-top: 28px;
        font-size: 14px;
        line-height: 2;
    }

    .top-ring-gym__special {
        margin-top: 30px;
        padding: 24px 20px;
    }

    .top-ring-gym__special-title {
        font-size: 19px;
        line-height: 1.65;
    }

    .top-ring-gym__points {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        margin-top: 28px;
    }

    .top-ring-gym__points li {
        min-width: 0;
        padding: 14px 10px;
        font-size: 12px;
    }

    .top-ring-gym__button {
        width: 100%;
        box-sizing: border-box;
    }
}


/* かなり小さい端末 */
@media screen and (max-width: 390px) {

    .top-ring-gym__visual {
        height: 280px;
    }

    .top-ring-gym__content {
        padding-right: 18px;
        padding-left: 18px;
    }

    .top-ring-gym__heading h2 {
        font-size: 30px;
    }

    .top-ring-gym__points {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   目的別メニュー ノートPC調整
========================================================= */

@media screen and (min-width: 1025px) and (max-width: 1500px) {

    .top-purpose {
        padding: 90px 0;
    }

    .top-purpose__inner {
        width: min(1180px, calc(100% - 60px));
    }

    .top-purpose__heading {
        margin-bottom: 48px;
    }

    .top-purpose__heading h2 {
        font-size: 40px;
    }

    .top-purpose__list {
        gap: 22px;
    }

    .top-purpose__item {
        border-radius: 24px;
    }

    .top-purpose__item figure {
        height: 240px;
        border-radius: 24px 24px 58px 0;
    }

    .top-purpose__content {
        padding: 25px 24px 28px;
    }

    .top-purpose__target {
        font-size: 12px;
    }

    .top-purpose__content h3 {
        font-size: 24px;
        line-height: 1.5;
    }

    .top-purpose__text {
        font-size: 13px;
        line-height: 1.85;
    }
}