/* =================================
共通
================================= */

/* =================================
上部コンテンツ
================================= */
.top-content {
    padding-right: 5rem;
    position: relative;
}

.top-content-text {
    position: absolute;
    top: 5rem;
    left: 50%;
    transform: translateX(-50%);
    max-width: 23.4rem;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .top-content {
        padding-right: 12px;
        padding-left: 13px;
        position: relative;
    }
}



/* =================================
メインビジュアル
================================= */
.mv-area {
    padding-right: 5rem;
    position: relative;
}

.mb-bg {
    padding-top: 1.2rem;
    background-color: #aacf52;
}

.mv-img {
    max-width: 73rem;
    width: 100%;
}

.mv-area .service-logo {
    padding-top: 2.7rem;
    max-width: 22.6rem;
    width: 100%;
    margin: 0 auto 3rem;
}

.mv-flex {
    display: flex;
    justify-content: space-between;
}

.mv-left {
    max-width: 32rem;
    width: 100%;
}

.mv-text {
    margin: 0 auto;
    color: #fff;
    max-width: 21.2rem;
    font-size: 1.4rem;
    line-height: 2.4rem;
    letter-spacing: 0.05em;
}

.text-wrapper {
    bottom: 3.8rem;
    position: absolute;
    left: 4rem;
    max-width: 43.3rem;
    z-index: 100;
    width: 100%;
}

.styled-heading {
    font-size: 2.2rem;
    font-weight: 500;
    font-weight: bold;
    line-height: 2.2;
}

/* 行ごとに白背景をクローンして付ける */
.styled-heading.line-bg{
  display:inline;                    /* 重要：inlineのまま */
  background:#fff;
  padding: .4rem .8rem;               /* 文字の左右上下の余白 */
  line-height:2.8rem;                   /* 行間 */
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone; /* Safari対策 */

  /* 端を少し伸ばして“タブ”っぽく見せる（任意） */
  box-shadow: .2em 0 0 #fff, -.2em 0 0 #fff;
}

.fv-bnr {
    text-align: center;
    margin-left: 0;
    margin-right: auto;
    margin-top: 5.3rem;
    max-width: 20.1rem;
    width: 100%;
}

/* 見出しの各行に白背景を“行ごと”に複製して付ける */
.styled-heading{
  display: inline;                 /* 重要：inlineのままにする */
  background:#fff;
  padding: .4rem .8rem;               /* 文字の左右上下の余白 */
  line-height:2.2;                   /* 行間 */
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone; /* Safari */

  /* 行頭・行末の欠け防止（任意。外したい場合は削除） */
  box-shadow: .2em 0 0 #fff, -.2em 0 0 #fff;

}

.styled-heading span + span {
    margin-top: 0.7rem;
}

.mv-right {
    padding-bottom: 2.5rem;
}


/* ▼ MV 全体の親を基準にする */
.mv-area {
  position: relative;
  overflow: hidden;
}

/* ▼ 既存の .wp-block-columns は flex のままでOK */
.mv-flex.wp-block-columns {
  align-items: center;
}

/* ▼ 右の画像カラムは普通に */
.mv-right.wp-block-column {
  position: relative;
  z-index: 1;
}

.mv-right .mv-img img {
  width: 100%;
  height: auto;
  display: block;
}

/* ▼ 問題の見出し部分だけを「上にかぶせる」 */
.text-wrapper {
  position: absolute;          /* ★ ここだけ absolute */
  left: 5.1rem;                     /* 左端固定（必要なら padding で調整） */
  bottom: 0;                    /* エリアの中央あたりに配置 */
  max-width: 520px;            /* 横幅はざっくりでOK。テキストはこの中で折り返す */
  padding: 1.5rem 2rem 1.5rem 0;
  z-index: 2;                  /* 画像より前面 */
  box-sizing: border-box;
}

/* バナーも一緒にオーバーレイしたい場合 */
.text-wrapper .fv-bnr {
  margin-top: 1.2rem;
}

/* ▼ 左のリード文とロゴは通常フローのまま */
.mv-text,
.service-logo {
  position: relative;
  z-index: 2;  /* 画像に負けないよう一応前面にしておく */
}


.header-inner {
    position: relative;
    padding-bottom: 2rem;
}




@media screen and (max-width: 768px) {
    .mv-line {
        top: 14px;
        bottom: auto;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        width: 100%;
        padding: 0 2px;
    }

    .mv-line .pc {
        display: none;
    }

    .mv-line .sp {
        display: block;
    }

    .mv-ttl {
        position: absolute;
        left: 0;
        top: auto;
        bottom: -6px;
        max-width: 214px;
        width: 100%;
    }

    .mv-area {
        padding-left: 13px;
        padding-right: 12px;
    }

    .styled-heading {
        font-size: 18px;
        font-weight: 500;
        font-weight: bold;
        line-height: 2.5;
    }

    .styled-heading span {
        display: block;
        line-height: 1;
        font-weight: 500;
        padding: 4px 8px;
        background: white;
    }

    .fv-bnr {
        text-align: center;
        margin-left: auto;
        margin-right: auto;
        margin-top: 30px;
        margin-bottom: 30px;
        max-width: 240px;
        width: 100%;
    }

    .mv-flex {
        display: block;
        position: relative;
        gap:0;
        justify-content: center;
    }

    .mb-bg {
        padding-top: 16px;
        background-color: #aacf52;
    }

    .mv-text {
        margin: 0 auto;
        color: #fff;
        max-width: 100%;
        display: table;
        padding: 0 35px;
        font-size: 14px;
        line-height: 24px;
        letter-spacing: 0.05em;
    }

    .mv-area .service-logo {
        padding-top: 18px;
        max-width: 144px;
        width: 100%;
        margin: 0 auto 28px;
    }

    .mv-right {
        padding-bottom: 25px;
    }

    .mv-img {
        padding-left: 12px;
        padding-right: 16px;
        max-width: 100%;
        width: 100%;
    }

    .text-wrapper {
        bottom: 0;
        position: static;
        left: 50%;
        padding: 0 35px;
        transform: translateX(0);
        margin-left: auto;
        margin-right: auto;
        width: 100%;
        margin-bottom: 18px;
    }
    .text-wrapper .wp-block-group__inner-container {
        display: table;
        margin: 0 auto;
    }
}






/* =================================
上部バナーエリア
================================= */
.top-bnr-area {
    padding-right: 5rem;
}

.top-bnr-bg {
    padding: 4rem 10.5rem;
    background-color: #aacf52;
}

@media screen and (max-width: 768px) {
    .top-bnr-area {
        padding-left: 13px;
        padding-right: 12px;
    }

    .top-bnr-bg {
        padding: 2px 5px 47px;
        background-color: #aacf52;
    }
}

/* =================================
キャッチエリア
================================= */
.catch-copy-area {
    padding-right: 4.9rem;
}

.catch-copy-bg {
    background-color: #444444;
    padding-top: 11.5rem;
    padding-bottom: 8rem;
}

.catch-img {
    max-width: 46.4rem;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 768px) {
    .catch-copy-area {
        padding-right: 12px;
        padding-left: 13px;
    }

    .catch-copy-bg {
        background-color: #444444;
        padding-top: 54px;
        padding-bottom: 41px;
    }

    .catch-img {
        max-width: 238px;
        width: 100%;
        margin: 0 auto;
    }
}

/* =================================
メッセージエリア
================================= */
.message-highlight-area {
    padding-right: 4.9rem;
    padding-bottom: 9.4rem;
    position: relative;
}

.message-highlight-color-box {
    position: absolute;
    background: #555555;
    height: calc(100% - 9rem);
    width: 100%;
    top: 9rem;
    z-index: -1;
}

.message-highlight-bg {
    position: relative;
    padding-top: 17.7rem;
    background-color: #aacf52;
    padding-bottom: 15.7rem;
}

.message-title {
    font-size: 3.2rem;
    line-height: 1.5;
    letter-spacing: 0.05em;
    color: #fff;
    font-weight: 500;
    text-align: center;
    margin: 0 auto 5.4rem;
}

.message-img-left {
    max-width: 19.2rem;
    left: 0;
    top: 11.1rem;
    width: 100%;
    position: absolute;
}

.message-img-right {
    position: absolute;
    max-width: 23.9rem;
    width: 100%;
    right: -4.9rem;
    bottom: -4.2rem;
}

.message-text {
    max-width: 56.4rem;
    width: 100%;
    margin: 0 auto;
}

.message-description {
    font-size: 2rem;
    color: #fff;
    letter-spacing: 0.05em;
    line-height: 2;
}

@media screen and (max-width: 768px) {
    .message-highlight-area {
        padding-right: 12px;
        padding-left: 13px;
        padding-bottom: 87px;
        position: relative;
    }

    .message-highlight-bg {
        position: relative;
        padding-top: 40px;
        background-color: #aacf52;
        padding-bottom: 0;
    }

    .message-text {
        padding: 0 15px;
        max-width: 56.4rem;
        width: 100%;
        margin: 0 auto;
    }

    .message-title {
        font-size: 22px;
        line-height: 32px;
        letter-spacing: 0.05em;
        color: #fff;
        font-weight: 500;
        text-align: center;
        margin: 0 auto 22px;
    }

    .message-description {
        font-size: 16px;
        color: #fff;
        letter-spacing: 0.05em;
        line-height: 28px;
    }

    .message-img-left {
        max-width: 160px;
        width: 100%;
        margin-bottom: 51px;
        margin-left: -13px;
        position: static;
    }

    .message-img-right {
        position: static;
        max-width: 160px;
        margin-top: -20px;
        width: 100%;
        margin-left: auto;
        margin-right: -13px;
        right: -4.9rem;
        bottom: -4.2rem;
        transform: translateY(45px);
    }
}

/* =================================
intro-feature-area
================================= */
.intro-feature-area {
    padding-bottom: 9rem;
    padding-top: 7.8rem;
}

.intro-feature-area h3 {
    text-align: center;
    font-size: 3.2rem;
    font-weight: 500;
    margin-bottom: 5.4rem;
    letter-spacing: 0.05em;
}

.intro-feature-image {
    max-width: 84rem;
    width: 100%;
    margin: 0 auto 5.4rem;
}

.intro-feature-image img {
    border-radius: 2.4rem;
}

.intro-feature-text {
    max-width: 62.4rem;
    line-height: 2.8rem;
    letter-spacing: 0.05em;
    font-size: 1.8rem;
    width: 100%;
    margin: 0 auto;

}
.intro-feature-text p {
    font-size: 2rem;
    letter-spacing: 0.05em;
    line-height: 3.6rem;
}

@media screen and (max-width: 768px) {
    .intro-feature-area {
        padding-bottom: 64px;
        padding-top: 44px;
    }

    .intro-feature-inner {
        padding: 0 17px;
    }

    .intro-feature-image {
        max-width: 84rem;
        width: 100%;
        margin: 0 auto 32px;
    }

    .intro-feature-area h3 {
        text-align: center;
        font-size: 24px;
        font-weight: 500;
        margin-bottom: 40px;
        letter-spacing: 0.05em;
    }

    .intro-feature-text p {
        font-size: 16px;
        letter-spacing: 0.05em;
        line-height: 28px;
    }

    .intro-feature-area .more-btn {
        display: table;
        margin: 40px auto 0;
    }
    .intro-feature-text {
        line-height: 28px;
        letter-spacing: 0.05em;
        font-size: 18px;
    }
}

/* =================================
core-element-area
================================= */
.core-element-area {
    padding: 8rem 0 7.2rem;
    background-color: #aacf52;
}

.core-element-area h3 {
    text-align: center;
    font-size: 3.2rem;
    color: #fff;
    letter-spacing: 0.05em;
    font-weight: 500;
    margin-bottom: 3.2rem;
}

.core-element-area .more-btn .check_wrap span.circle span {
    background-color: #aacf52;
}

.core-element-box {
    display: flex;
    margin-left: auto;
    max-width: 106.5rem;
    width: 100%;
    justify-content: flex-end;
    align-items: center;
}

.core-element-box > .wp-block-group__inner-container {
  display: flex;
  margin-left: auto;
  max-width: 106.5rem;
  width: 100%;
  justify-content: flex-end;
  align-items: center;
}

.core-element-img-box .core-element-img-wrap {
    background-color: #fff;
    border-radius: 50% 50%;
    width: 49.4rem;
    display: flex;
    position: relative;
    z-index: 997;
    align-items: center;
    justify-content: center;
    height: 49.4rem;
}

.core-element-box .core-element-text {
    padding: 12rem 0 12rem 8.4rem;
    position: relative;
    margin-left: -7.6rem;
    z-index: 1000;
    background-color: #fff;
    width: 100%;
    min-height: 49.4rem;
    z-index: 99;
}

.core-element-img-box {
    position: relative;
    z-index: 100;
}

.core-element-img {
    width: 37.1rem;
    height: 37.1rem;
}

.core-element-img img {
    width: 100% !important;
    height: auto !important;
    border-radius: 50% 50%;
}

.core-element-description {
    max-width: 40.8rem;
    width: 100%;
    font-size: 1.8rem;
    line-height: 2;
    letter-spacing: 0.05em;
}

.core-element-area .more-btn {
    display: table;
    margin: 4.2rem auto 0;
}

@media screen and (max-width: 768px) {
    .core-element-area {
        padding: 48px 0 55px;
        background-color: #aacf52;
    }

    .core-element-area h3 {
        text-align: center;
        font-size: 24px;
        color: #fff;
        letter-spacing: 0.05em;
        font-weight: 500;
        margin-bottom: 25px;
    }

    .core-element-box {
        display: block;
        margin-left: auto;
        max-width: 106.5rem;
        width: 100%;
        justify-content: flex-end;
        align-items: center;
    }
    .core-element-box > .wp-block-group__inner-container {
        display: block;
        margin-left: auto;
        max-width: 106.5rem;
        width: 100%;
        justify-content: flex-end;
        align-items: center;
    }
    .core-element-img-box .core-element-img-wrap {
        background-color: #fff;
        border-radius: 50% 50%;
        width: 348px;
        display: flex;
        position: relative;
        z-index: 997;
        align-items: center;
        justify-content: center;
        height: 348px;
        margin: 0 auto;
    }

    .core-element-img {
        width: 268px;
        height: 268px;
    }

    .core-element-box .core-element-text {
        padding: 60px 16px 97px 20px;
        position: relative;
        margin-top: -57px;
        margin-left: auto;
        margin-right: auto;
        max-width: 338px;
        z-index: 1000;
        background-color: #fff;
        width: 100%;
        min-height: auto;
        z-index: 99;
    }

    .core-element-description {
        max-width: 338px;
        width: 100%;
        font-size: 16px;
        line-height: 28px;
        letter-spacing: 0.05em;
    }

    .core-element-area .more-btn {
        display: table;
        margin: 40px auto 0;
    }
}

/* =================================
two-column-cards-area
================================= */
.two-column-cards-area {
    padding-top: 9.7rem;
    padding-bottom: 8rem;
}

.two-column-cards-area h3 {
    font-size: 3.2rem;
    font-weight: 500;
    margin-bottom: 8rem;
    text-align: center;
}

.two-column-cards-wrapper {
    display: flex;
    max-width: 84rem;
    gap: 0 2.4rem;
    width: 100%;
    margin: 0 auto;
}

.two-column-cards-wrapper .card-item {
    max-width: 40.8rem;
    width: 100%;
}

.card-heading {
    margin-top: 3.2rem;
    font-weight: 500;
    font-size: 2.4rem;
    margin-bottom: 2rem;
}

.card-text {
    font-size: 1.8rem;
    line-height: 2;
    letter-spacing: 0.05em;
}

@media screen and (max-width: 768px) {
    .two-column-cards-area {
        padding-top: 58px;
        padding-bottom: 87px;
    }

    .two-column-cards-area h3 {
        font-size: 24px;
        font-weight: 500;
        margin-bottom: 24px;
        text-align: center;
    }

    .two-column-cards-wrapper {
        display: block;
        max-width: 84rem;
        gap: 0 2.4rem;
        width: 100%;
        margin: 0 auto;
    }

    .cards-inner {
        padding-left: 17px;
        padding-right: 18px;
    }

    .card-heading {
        margin-top: 24px;
        font-weight: 500;
        font-size: 20px;
        margin-bottom: 16px;
    }

    .card-text {
        font-size: 16px;
        line-height: 28px;
        letter-spacing: 0.05em;
    }

    .two-column-cards-wrapper .card-item {
        max-width: 100%;
        width: 100%;
    }

    .two-column-cards-wrapper .card-item + .card-item {
        margin-top: 40px;
    }

    .two-column-cards-area .more-btn {
        display: table;
        margin: 58px auto 0;
    }
}

/* =================================
media-list-area
================================= */
.media-list-area {
    padding-top: 9.2rem;
    background-color: #aacf52;
}

.media-list-area h3 {
    text-align: center;
    font-size: 3.2rem;
    font-weight: 500;
    color: #fff;
    letter-spacing: 0.05em;
}

.media-list-inner {
    max-width: 86.3rem;
    width: 100%;
    margin: 0 auto;
}

.media-list {
    margin-top: 8rem;
}

.media-item {
    border-top: 1px solid #ffffff;
    padding: 2.4rem 2.4rem 2.4rem 2.3rem;
}

.media-item:last-child {
    border-bottom: 1px solid #ffffff;
}

.media-item img {
    border-radius: 2rem;
}

.media-item .media-flex {
    display: block;
}
.media-item .media-flex > .wp-block-group__inner-container {
    display: flex;
}
.media-text {
    max-width: 43.2rem;
    width: 100%;
}

.media-image {
    max-width: 30rem;
    width: 100%;
    margin-right: 8.4rem;
}

.media-title {
    font-size: 2.4rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    color: #fff;
    margin-bottom: 3.6rem;
}

.media-description {
    color: #fff;
    line-height: 2.8rem;
    letter-spacing: 0.05em;
    font-size: 1.8rem;
}

.media-list-area .more-btn .check_wrap span.circle span {
    background-color: #a7c53c;
}

.media-gallery {
    margin: 8rem 0 0;
    display: flex;
    width: 100%;
}

.media-gallery > .wp-block-group__inner-container {
    margin: 8rem 0 0;
    display: flex;
    width: 100%;
}

.media-gallery .media-gallery-list {
    width: 33.33333%;
}

@media screen and (max-width: 768px) {
    .media-list-area {
        padding-top: 61px;
        background-color: #aacf52;
    }

    .media-list-area h3 {
        text-align: center;
        font-size: 24px;
        font-weight: 500;
        color: #fff;
        letter-spacing: 0.05em;
    }

    .media-list-inner {
        max-width: 100%;
        padding: 0 17px;
        width: 100%;
        margin: 0 auto;
    }

    .media-list {
        margin-top: 45px;
    }

    .media-item {
        border-top: 1px solid #ffffff;
        padding: 36px 0 37px 0;
    }

    .media-item .media-flex {
        display: block;
    }

    .media-item .media-flex > .wp-block-group__inner-container {
        display: block;
    }

    .media-image {
        max-width: 30rem;
        width: 100%;
        margin-right: 8.4rem;
        margin-bottom: 20px;
    }

    .media-title {
        font-size: 20px;
        font-weight: 500;
        letter-spacing: 0.05em;
        color: #fff;
        margin-bottom: 17px;
    }

    .media-description {
        color: #fff;
        line-height: 28px;
        letter-spacing: 0.05em;
        font-size: 18px;
    }

    .media-gallery {
        margin: 73px 0 0;
        display: flex;
    }

    .media-gallery div:last-child {
        display: none;
    }

    .media-list-area .more-btn {
        display: table;
        margin: 45px auto 0;
    }
}

/* =================================
office-locations-area
================================= */
.office-locations-area {
    padding-top: 10rem;
    padding-bottom: 10.8rem;
    background-color: #aacf52;
}

.office-locations-area h3 {
    text-align: center;
    color: #fff;
    font-size: 3.2rem;
    font-weight: 500;
    margin-bottom: 8rem;
}

.locations-inner {
    padding-left: 10.8rem;
    padding-right: 15.4rem;
}

.office-item {
    max-width: 37.1rem;
    width: 100%;
    position: relative;
}

.main.office-item {
    width: 100%;
    max-width: 100%;
    margin-bottom: 4.8rem;
}

.office-info-left {
    max-width: 27.6rem;
    width: 100%;
}

.office-item-white-box {
    padding: 2rem 1.6rem;
    background-color: #fff;
}

.main .office-item-white-box {
    padding: 2.8rem 2.4rem;
    background-color: #fff;
}

.office-toggle {
    padding-right: 5.7rem;
    font-size: 2.8rem;
    color: #fff;
    font-weight: 500;
    cursor: pointer;
}

.office-info {
    gap: 0 2.4rem;
    display: flex;
}

.office-info-right p {
    font-size: 1.8rem;
    letter-spacing: 0.05em;
}

.office-info-right .tel-fax {
    font-size: 1.8rem;
    margin-top: 2rem;
    letter-spacing: 0.025em;
}

.office-access {
    margin-top: 3.2rem;
}

.office-access h5 {
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    padding-left: 0.8rem;
    font-size: 1.8rem;
    font-weight: 500;
    background-color: #a7c53c;
    color: #fff;
    line-height: 1;
    margin-bottom: 0.8rem;
}

.access-text {
    font-size: 1.8rem;
    letter-spacing: 0.025em;
    line-height: 2.8rem;
}

.office-photo-map {
    margin-top: 2.8rem;
}

.office-photo-map iframe {
    height: 33.4rem;
    width: 100%;
}

.plus-minus {
    cursor: pointer;;
    position: absolute;
    right: 0;
    bottom: -0.5rem;
    width: 5rem;
    height: 5rem;
    border-radius: 50% 50%;
    align-items: center;
    z-index: 10000;
    margin-left: -0.6rem;
    background-color: #ffffff;
    justify-content: center;
    display: flex;
}

.plus-minus-bg {
    position: absolute;
    right: -1px;
    bottom: -0.5rem;
    width: calc(5rem + 2px);
    height: calc(5rem + 2px);
    border-radius: 50% 50%;
    display: block;
    z-index: 1;
}

.office-row {
    position: relative;
}

.plus-minus > span {
    position: relative;
    background-color: #fff;
    width: 3.7rem;
    height: 3.7rem;
    background-color: #aacf52;
    display: block;
    border-radius: 50% 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.plus-minus > span:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: 1.6rem;
    height: 1px;
    background: #ffffff;
    display: block;
}

.plus-minus > span:after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: 1px;
    height: 1.6rem;
    background: #ffffff;
    display: block;
    transition: 0.3s cubic-bezier(0.76, 0, 0.24, 1);
    will-change: transform;
}

/* 開いているとき（.open）＝縦棒非表示 → − になる */
.office-item.open .plus-minus > span:after {
    transform: translate(-50%, -50%) scaleY(0);
}

.office-content {
    min-height: 0.6rem;
    cursor: pointer;
    background-color: #fff;
    z-index: 2;
    position: relative;
}

.office-content-wrap {
    display: none;
}

.office-address {
    font-size: 1.8rem;
    margin-bottom: 2.2rem;
    letter-spacing: 0.05em;
}

.office-item-white-box .tel-fax {
    font-size: 1.8rem;
    letter-spacing: 0.025em;
}

.office-item-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 3.8rem 9rem;
}

.office-locations-area .more-btn .check_wrap span.circle span {
    background-color: #a7c53c;
}

@media screen and (max-width: 768px) {
    .office-locations-area {
        padding-top: 58px;
        padding-bottom: 85px;
        background-color: #aacf52;
    }

    .locations-inner {
        padding-left: 17px;
        padding-right: 18px;
    }

    .office-locations-area h3 {
        text-align: center;
        color: #fff;
        font-size: 24px;
        font-weight: 500;
        margin-bottom: 40px;
    }

    .office-toggle {
        font-size: 22px;
        color: #fff;
        font-weight: 500;
    }

    .plus-minus {
        position: absolute;
        right: 0;
        bottom: -2px;
        width: 45px;
        height: 45px;
        border-radius: 50% 50%;
        align-items: center;
        z-index: 10000;
        margin-left: -0.6rem;
        background-color: #ffffff;
        justify-content: center;
        display: flex;
    }
    .plus-minus-bg {
        position: absolute;
        right: -1px;
        bottom: -2px;
        width: calc(45px + 2px);
        height: calc(45px + 2px);
        border-radius: 50% 50%;
        display: block;
        z-index: 1;
    }
    .plus-minus > span {
        position: relative;
        background-color: #fff;
        width: 33px;
        height: 33px;
        background-color: #aacf52;
        display: block;
        border-radius: 50% 50%;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .main .office-item-white-box {
        padding: 18px 15px 31px;
        background-color: #fff;
    }

    .office-info {
        gap: 0 2.4rem;
        display: block;
    }

    .office-info-right {
        margin-top: 10px;
    }

    .office-info-right p {
        font-size: 16px;
        letter-spacing: 0.05em;
    }

    .office-item-white-box .tel-fax {
        margin-top: 10px;
        line-height: 24px;
        font-size: 16px;
        letter-spacing: 0.025em;
    }

    .office-access {
        margin-top: 21px;
    }

    .office-access h5 {
        padding-top: 4px;
        padding-bottom: 4px;
        padding-left: 8px;
        font-size: 16px;
        font-weight: 500;
        background-color: #a7c53c;
        color: #fff;
        line-height: 1;
        margin-bottom: 0.8rem;
    }

    .access-text {
        font-size: 16px;
        letter-spacing: 0.025em;
        line-height: 25px;
    }

    .office-photo-map {
        margin-top: 24px;
    }

    .office-photo-map iframe {
        height: 194px;
        width: 100%;
    }

    .main.office-item {
        width: 100%;
        max-width: 100%;
        margin-bottom: 40px;
    }

    .office-item-wrap {
        display: block;
        flex-wrap: wrap;
        gap: 3.8rem 7rem;
    }

    .office-item + .office-item {
        margin-top: 28px;
    }

    .office-content {
        min-height: 4px;
        cursor: pointer;
        background-color: #fff;
        z-index: 2;
        position: relative;
    }

    .office-item-white-box {
        padding: 17px 15px;
        background-color: #fff;
    }

    .offfice-address {
        font-size: 16px;
        line-height: 24px;
        margin-bottom: 10px;
        letter-spacing: 0.05em;
    }

    .plus-minus > span:before {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        width: 18px;
        height: 1px;
        background: #ffffff;
        display: block;
    }

    .plus-minus > span:after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        width: 1px;
        height: 18px;
        background: #ffffff;
        display: block;
        transition: 0.3s cubic-bezier(0.76, 0, 0.24, 1);
        will-change: transform;
    }

    .office-locations-area .more-btn {
        display: table;
        margin: 55px auto 0;
    }
    .office-address {
        font-size: 16px;
        margin-bottom: 10px;
        letter-spacing: 0.025em;
    }
}

/* =================================
新着情報
================================= */
.news-slider-area {
    padding-top: 5.6rem;
    padding-bottom: 6.4rem;
    background-color: #fff4ea;
}

.news-slider-area h3 {
    text-align: center;
    font-weight: 500;
    font-size: 3.2rem;
    margin-bottom: 6.9rem;
}

.news-slider-section__inner {
    padding-left: 10.7rem;
    position: relative;
}

.news-slider {
    overflow: visible;
}

.news-slider .swiper-slide {
    width: 40.8rem;
    flex-shrink: 0;
}

.news-slider,
.news-slider .swiper-wrapper {
    overflow: visible;
}

.news-slider .dummy-slide {
    pointer-events: none;
    visibility: hidden;
    width: 40.8rem;
}

.news-slider-area .more-btn .check_wrap span.circle span {
    background-color: #fff4ea;
}

.news-detail {
    align-items: center;
    display: flex;
    margin-top: 1.6rem;
    justify-content: space-between;
}

.news-cat {
    line-height: 1;
    padding: 0.5rem 2.5rem;
    background-color: #aacf52;
    color: #fff;
    font-size: 1.4rem;
    letter-spacing: 0.05em;
}

.news-date {
    font-family: "Urbanist", serif;
    font-size: 1.4rem;
    letter-spacing: 0.05em;
}

.news-slider {
    position: relative;
}

.news-text {
    margin-top: 1.6rem;
    font-size: 1.8rem;
    letter-spacing: 0.05em;
    line-height: 3.2rem;
}

.news-slider-area .swiper-button-prev::after,
.news-slider-area .swiper-button-next::after {
    content: none;
}

.news-slider-area .swiper-button-prev {
    position: absolute;
    bottom: 0;
    top: auto;
    width: 4rem;
    left: 10.7rem;
    height: auto;
}

.news-slider-area .swiper-button-next {
    position: absolute;
    bottom: 0;
    width: 4rem;
    right: 9.1rem;
    top: auto;
    height: auto;
}

.news-slider-area .more-btn {
    margin-top: 5.3rem;
}

.news-slider-area .swiper-button-prev.swiper-button-disabled,
.news-slider-area .swiper-button-next.swiper-button-disabled {
    opacity: 0.49;
    pointer-events: none;
}

@media screen and (max-width: 768px) {
    .news-slider-area {
        padding-top: 55px;
        padding-bottom: 65px;
        background-color: #fff4ea;
    }

    .news-slider-area h3 {
        text-align: center;
        font-weight: 500;
        font-size: 24px;
        margin-bottom: 42px;
    }

    .news-slider-section__inner {
        padding-left: 0;
        position: relative;
    }

    .news-slider-area .news-slider {
        padding-left: 17px;
    }

    .news-slider .swiper-slide {
        width: 301px;
        flex-shrink: 0;
    }

    .news-detail {
        align-items: center;
        display: flex;
        margin-top: 12px;
        justify-content: space-between;
    }

    .news-cat {
        line-height: 1;
        padding: 3px 18px;
        background-color: #aacf52;
        color: #fff;
        font-size: 10px;
        letter-spacing: 0.05em;
    }

    .news-date {
        font-family: "Urbanist", serif;
        font-size: 10px;
        letter-spacing: 0.05em;
    }

    .news-text {
        margin-top: 12px;
        font-size: 16px;
        letter-spacing: 0.05em;
        line-height: 24px;
    }

    .news-slider-area .more-btn {
        margin-top: 94px;
    }

    .news-slider-area .swiper-button-prev {
        position: absolute;
        bottom: 65px;
        top: auto;
        left: 20px;
        width: 40px;
        height: auto;
    }

    .news-slider-area .swiper-button-next {
        position: absolute;
        bottom: 65px;
        right: 20px;
        top: auto;
        width: 40px;
        height: auto;
    }
}

/* =================================
バナーリスト
================================= */
.bnr-list-area {
    padding-top: 10.5rem;
    padding-bottom: 15.6rem;
}

.bnr-list-inner {
    max-width: 84rem;
    width: 100%;
    margin: 0 auto;
}

.bnr-middle-box {
    max-width: 62.4rem;
    margin: 8rem auto 0;
}

.bnr-list-area .bnr-list-inner .bnr-large-box,
.bnr-list-area .bnr-list-inner .bnr-middle-box {
    display: table;
    margin: 0 auto;
}
.bnr-two-column .bnr-left img, .bnr-two-column .bnr-right img {
    width: 100% !important;
}
.bnr-two-column .wp-block-group__inner-container {
    display: flex;
    justify-content: space-between;
    margin: 8rem auto 0;
}
.bnr-list-area .bnr-list-inner .bnr-middle-box {
    margin: 8rem auto 0;
}
.bnr-two-column .bnr-left,
.bnr-two-column .bnr-right {
    max-width: 40.8rem;
    width: 100%;
}
@media screen and (max-width: 768px) {
    .bnr-list-area {
        padding-top: 48px;
        padding-bottom: 71px;
    }
    .bnr-list-inner {
        padding-left: 17px;
        padding-right: 18px;
        max-width: 100%;
        width: 100%;
        margin: 0 auto;
    }
    .bnr-middle-box {
        max-width: 100%;
        padding: 0 86px;
        width: 100%;
        margin: 33px auto 0;
    }
    .bnr-two-column {
        display: block;
        justify-content: space-between;
        margin: 0;
        gap: 0;
    }
    .bnr-two-column .wp-block-group__inner-container {
        display: flex;
        justify-content: space-between;
        margin: 32px auto 0;
        gap: 0 10px;
    }
}