/* Imported from local alpha template */

/* header  banner  footer  popup */

/* reset  start */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
u, i, center,
dl, dt, dd, ol:not(.art-detail *), ul:not(.art-detail *), li:not(.art-detail *) {
    margin: 0;
    padding: 0;
    border: 0;
}
body {
    font-size: 16px;
    font-weight: 600;
    font-family: 'Shippori Mincho';
    color: #414141;
    min-height: 100vh;
}
html, body {
    min-height: 100%;
}
#scroll-content {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
#contents {
    flex: 1 0 auto;
    position: relative;
    z-index: 1;
    width: 100%;
    margin: 0;
    background: #EFEAE3;
}
/* main が #scroll-content の直接子の場合（#contents なし）も同様に flex */
#scroll-content > main {
    flex: 1 0 auto;
    position: relative;
    z-index: 1;
    width: 100%;
    margin: 0;
}
body.menu-open {
    position: fixed;
    overflow: hidden;
    width: 100%;
    height: 100%;
}
img {
    display: block;
    vertical-align: middle;
}
a {
    color: #414141;
    text-decoration: none;
}
/* a を block にする必要がある箇所のみ */
header a,
header .banner-menu a,
header .btn-inquiry,
.alpha-breadcrumb a,
.alpha-treatment-card,
.alpha-treatment-panel__part dd a,
.alpha-column .sidebar-content-list-item a,
.alpha-column .sidebar-content-list .cat-item a,
.alpha-column .breadcrumb a,
.single-main .sidebar-content-list-item a,
.single-main .sidebar-content-list .cat-item a,
footer .footer-menu a,
.banner-left .btn-group a,
.aboutus-detail .facilities-cont a,
.access-detail .to-booking,
.price-detail .alpha-treatment-panel__part .btn-list a {
    display: block;
}
ol:not(.art-detail *), ul:not(.art-detail *), li:not(.art-detail *) {
    text-decoration: none;
    list-style: none;
}
input, button, select, textarea {
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    font: inherit;
    outline: none;
}
.disPC {
    display: block !important;
}
.disPcFlex {
    display: flex !important;
}
.disSP,.disSpFlex {
    display: none !important;
}
body#shippori-style {
    font-family: 'Shippori Mincho', serif;
}
body#shippori-style input[type=text],
body#shippori-style input[type=search],
body#shippori-style input[type=email],
body#shippori-style input[type=tel],
body#shippori-style textarea,
body#shippori-style select,
body#shippori-style button {
    font-family: 'Shippori Mincho', serif;
    background-color: #F8F4EF;
    border-radius: 8px;
    padding: 0 30px 0 0;
}
@media screen and (max-width: 594px) {
    .disPC,.disPcFlex {
        display: none !important;
    }
    .disSP {
        display: block !important;
    }
    .disSpFlex {
        display: flex !important;
    }
}
/* reset  end */

/* header start */
header {
    padding: 15px 3.47% 15px 3.19%;
    flex-shrink: 0;
}
header .header-main {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
header .left {
    width: 116px;
}
header .left img {
    width: 100%;
}
header .right,
header ul {
    display: flex;
    align-items: center;
    gap: 40px;
}
header a {
    font-size: 16px;
    font-weight: 600;
    position: relative;
}
header .banner-menu a {
    padding-bottom: 9px;
}
header .banner-menu a::before {
    content: '';
    display: inline-block;
    width: 32px;
    height: 2px;
    background: #C1A684;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}
header .header-main .right .btn-inquiry {
    width: 170px;
    height: 50px;
    line-height: 50px;
    padding-left: 53px;
    border-radius: 8px;
    box-sizing: border-box;
    font-weight: 600;
    color: #fff;
    background-color: #C1A684;
    background-image: url(../img/pc/icon_email.png);
    background-repeat: no-repeat;
    background-position: 20px center;
    background-size: 24px;
}
@media (any-hover: hover) {
    header a:hover {
        opacity: .7;
    }
}
@media screen and (max-width: 1000px) {
    header {
        padding: 15px 2%;
    }
    header .left {
        width: 8.63%;
    }
    header .right,
    header ul {
        gap: 20px;
    }
    header a {
        font-size: 14px;
    }
}
@media screen and (max-width: 594px) {
    header {
        position: relative;
        padding-top: 0;
        padding-bottom: 0;
    }
    header .header-main {
        position: fixed;
        left: 0;
        top: 0;
        width: 100%;
        min-height: 100vh;
        background: #fff;
        display: none;
        padding: 0 20px;
        box-sizing: border-box;
    }
    header .header-main.show {
        display: block;
        z-index: 9;
    }
    header .left {
        width: 20.2%;
        padding-top: 20px;
    }
    header .right,
    header ul {
        gap: 20px;
    }
}
/* header end */

@media screen and (max-width: 594px) {
    header .right,
    header ul {
        display: block;
    }
    header a {
        font-size: 18px;
    }
    header .banner-menu li {
        border-bottom: 1px solid #C1A684;
    }
    header .banner-menu a {
        text-align: center;
        padding: 20px 0;
    }
    header .banner-menu a::before {
        content: none;
    }
    header .header-main .right .btn-inquiry {
        width: 60%;
        min-width: 116px;
        height: 60px;
        line-height: 60px;
        margin: 0 auto;
        margin-top: 20px;
        text-align: center;
        padding-left: 30px;
    }
    header .btn-menu {
        display: block;
        position: fixed;
        right: 20px;
        top: 20px;
        cursor: pointer;
        width: 16px;
        height: 16px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        display: none;
    }
    header .btn-menu.show {
        display: flex;
        z-index: 10;
    }
    .btn-menu.menu-open span {
        background: #fff;
    }
    header .btn-menu span {
        display: block;
        width: 20px;
        height: 2px;
        background: #C1A684;
    }
    header .btn-menu.menu-close span {
        width: 2px;
        height: 100%;
        position: absolute;
        left: 50%;
        top: 0;
        transform: rotate(45deg);
    }
    header .btn-menu.menu-close span:last-child {
        top: 0;
        transform: rotate(-45deg);
    }
}

/* column banner start */
.alpha-banner {
    position: relative;
    height: clamp(120px, 12vw, 160px);
    background: #C1A684;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    z-index: 2;
    flex-shrink: 0;
}
.alpha-banner__accent {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: clamp(160px, 25vw, 320px);
    background: #D3C3B0;
    transform: skewX(-20deg);
    transform-origin: left top;
}
.alpha-banner__title {
    position: relative;
    color: #fff;
    font-size: clamp(20px, 2.8vw, 36px);
    letter-spacing: 0.08em;
}

/* breadcrumb (page) - inline で行末まで詰めてから改行する */
.alpha-breadcrumb {
    display: block;
    max-width: 1000px;
    margin: 20px auto 60px;
    color: #414141;
    font-size: 16px;
    line-height: 1.6;
}
.alpha-breadcrumb a,
.alpha-breadcrumb span {
    display: inline;
    position: relative;
    color: #414141;
    text-decoration: none;
    padding-right: 14.5px;
}
/* リンクは単体で改行されない。最後の span（現在ページ）は行末で折り返す */
.alpha-breadcrumb a {
    white-space: nowrap;
}
/* 項目間の隙間（inline では gap が効かないため） */
.alpha-breadcrumb a + a,
.alpha-breadcrumb a + span,
.alpha-breadcrumb span + a,
.alpha-breadcrumb span + span {
    margin-left: 10px;
}
.alpha-breadcrumb a::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    width: 4.5px;
    height: 4.5px;
    border-top: 1.5px solid #414141;
    border-right: 1.5px solid #414141;
    transform: translateY(-50%) rotate(45deg);
}

/* hide default breadcrumb */
#breadcrumb.footer_type1 {
    display: none !important;
}
/* column banner end */

/* main start */
main {
    background: #EFEAE3;
}
/* main end */

/* alpha-column（single 投稿ページ・column スタイル） */
.alpha-column {
    display: flex;
    flex-direction: column;
    gap: 60px;
    padding: 0 0 80px;
}
.alpha-column .container {
    max-width: 1112px;
    margin: 0 auto;
    width: 100%;
    padding: 0 16px;
}
.alpha-column .content {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background: #fff;
    padding: 25px;
}
.alpha-column .content.is-empty {
    justify-content: space-between;
}
.alpha-column .post-body {
    width: 100%;
}
.alpha-column .post-thumbnail {
    margin-bottom: 24px;
    width: 100%;
    overflow: hidden;
}
.alpha-column .post-thumbnail img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}
.alpha-column .post-meta {
    margin-bottom: 40px;
    color: #414141;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.alpha-column .category-title.category-title--left + .post-body .post-meta {
    margin-top: 10px;
}
.alpha-column .post-meta .post-date {
    white-space: nowrap;
}
.alpha-column .post-meta .post-meta-categories {
    margin-top: 0;
    min-width: 0;
}
.alpha-column .main-container {
    display: flex;
    gap: 20px;
}
.alpha-column .item-content-button {
    display: flex;
    gap: 5px;
    min-width: 205px;
    margin-top: 15px;
    flex-wrap: wrap;
}
.alpha-column .item-content-button a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 15px;
    height: 30px;
    font-size: 14px;
    color: #fff;
    background: rgba(193, 166, 132, 1);
    border-radius: 999px;
    text-decoration: none;
    font-weight: 600;
    min-width: 100px;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.alpha-column .item-content-button a:hover {
    background: #b08f6b;
}
.alpha-column .item-list-empty {
    grid-column: 1 / -1;
    text-align: center;
    color: #414141;
    font-size: 16px;
    padding: 24px 0;
}
.alpha-column .item-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    row-gap: 40px;
    column-gap: 30px;
    width: 100%;
}
.alpha-column .item-content {
    width: 100%;
    max-width: 335px;
    display: flex;
    flex-direction: column;
}
.alpha-column .item-content-image {
    position: relative;
    display: block;
}
.alpha-column .item-content-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.1);
    opacity: 0;
    transition: opacity 0.3s ease;
}
.alpha-column .item-content-image:hover::after {
    opacity: 1;
}
.alpha-column .item-content-image img {
    width: 100%;
    height: auto;
    aspect-ratio: 335 / 213;
    display: block;
    object-fit: cover;
}
.alpha-column .iten-content-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 10px;
}
.alpha-column .iten-content-text h3 {
    font-size: 14px;
    font-weight: 500;
    color: #414141;
    margin: 0 0 6px;
}
.alpha-column .iten-content-text p {
    font-size: 18px;
    line-height: 1.6;
    color: #414141;
    margin: 0;
}
.alpha-column .pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 90px 0 0;
    position: relative;
    flex-wrap: nowrap;
}
.alpha-column .pagination-viewport {
    overflow: hidden;
    width: calc(48px * 5 + 14px * 4);
}
.alpha-column .pagination-track {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    transition: transform 0.25s ease;
    will-change: transform;
}
.alpha-column .pagination .page-numbers {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #c1a684;
    color: #fff !important;
    font-size: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-family: "EB Garamond", serif;
    transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}
.alpha-column .pagination .page-numbers:not(.current):not(.prev):not(.next):hover {
    background: #b08f6b;
}
.alpha-column .pagination .prev,
.alpha-column .pagination .next {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: transparent;
    color: #000 !important;
    border: none;
    font-size: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    line-height: 0;
    position: relative;
    box-shadow: none;
}
.alpha-column .pagination .prev,
.alpha-column .pagination .next,
.alpha-column .pagination .prev.is-disabled,
.alpha-column .pagination .next.is-disabled {
    color: transparent;
}
.alpha-column .pagination button.page-numbers {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    font-family: "EB Garamond", serif;
    transition: opacity 0.2s ease;
}
.alpha-column .pagination button.page-numbers.prev,
.alpha-column .pagination button.page-numbers.next {
    transition: none;
}
.alpha-column .pagination button.page-numbers.is-disabled {
    cursor: default;
}
.alpha-column .pagination button.page-numbers:not(.is-disabled):hover {
    opacity: 0.7;
}
.alpha-column .pagination button.page-numbers.prev:hover,
.alpha-column .pagination button.page-numbers.next:hover {
    opacity: 1 !important;
}
.alpha-column .pagination .prev::before,
.alpha-column .pagination .next::before {
    content: '';
    width: 11.5px;
    height: 11.5px;
    border-width: 1px;
    border-style: solid;
    border-color: #000;
    display: block;
    box-sizing: border-box;
    box-shadow: none;
    transform-origin: center;
    transition: border-color 0.2s ease, opacity 0.2s ease;
}
.alpha-column .pagination .is-disabled {
    pointer-events: none;
    opacity: 0.35;
}
.alpha-column .pagination .prev::before {
    border-top: none;
    border-right: none;
    transform: rotate(45deg);
}
.alpha-column .pagination .next::before {
    border-bottom: none;
    border-left: none;
    transform: rotate(45deg);
}
.alpha-column .pagination .current {
    background: #3f3f3f;
}
.alpha-column .top-button {
    display: flex;
    justify-content: center;
    margin-top: 64px;
}
.alpha-column .top-button a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 230px;
    height: 50px;
    background: #3f3f3f;
    color: #fff;
    text-decoration: none;
    font-size: 16px;
    font-weight: 700;
    position: relative;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.alpha-column .top-button a:hover {
    background: #2f2f2f;
}
.alpha-column .top-button a::after {
    content: '';
    position: absolute;
    right: 16px;
    width: 6px;
    height: 6px;
    border-top: 1.5px solid #fff;
    border-right: 1.5px solid #fff;
    transform: rotate(45deg);
}
.alpha-column .sidebar {
    display: flex;
    flex-direction: column;
    gap: 30px;
}
.alpha-column .sidebar-content {
    display: flex;
    flex-direction: column;
}
.alpha-column .sidebar-content-title {
    width: 240px;
    height: 50px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    background-color: #C1A684;
    color: #fff;
}
.alpha-column .sidebar-content-title h3 {
    font-size: 22px;
    margin: 0;
    padding: 0 0 0 19px;
}
.alpha-column .sidebar-content-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 10px 0 0 10px;
}
.alpha-column .sidebar-content-list-item a,
.alpha-column .sidebar-content-list .cat-item a {
    font-size: 16px;
    text-decoration: none;
    color: #414141;
    transition: color 0.2s ease;
}
.alpha-column .sidebar-content-list-item a:hover,
.alpha-column .sidebar-content-list .cat-item a:hover {
    color: #c1a684;
}
/* パンくず：inline で行末まで詰めてから改行（flex だと項目ごとに折れるため） */
.alpha-column .breadcrumb {
    display: block;
    margin-bottom: 60px;
    margin-top: 10px;
    line-height: 1.6;
}
.alpha-column .breadcrumb a,
.alpha-column .breadcrumb span {
    display: inline;
    font-size: 16px;
    text-decoration: none;
    color: #414141;
    position: relative;
    padding-right: 14.5px;
}
.alpha-column .breadcrumb a {
    white-space: nowrap;
}
.alpha-column .breadcrumb a + a,
.alpha-column .breadcrumb a + span,
.alpha-column .breadcrumb span + a,
.alpha-column .breadcrumb span + span {
    margin-left: 10px;
}
.alpha-column .breadcrumb a::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    width: 4.5px;
    height: 4.5px;
    border-top: 1.5px solid #414141;
    border-right: 1.5px solid #414141;
    transform: translateY(-50%) rotate(45deg);
}
.alpha-column .category-title {
    text-align: center;
    margin-bottom: 40px;
    padding-bottom: 7px;
    border-bottom: 1px solid #3f3f3f;
    width: 100%;
    align-self: stretch;
}
.alpha-column .category-title.category-title--left {
    text-align: left;
    margin-bottom: 0;
}
.alpha-column .category-title h2 {
    font-size: 28px;
    font-weight: 500;
    color: #414141;
    margin: 0;
}
.alpha-column .post-content h2 {
    font-size: 26px;
    font-weight: 600;
    color: #414141;
    background: #D3C3B0;
    border-left: 6.51px solid #414141;
    letter-spacing: 0.08em;
    padding: 10px 16.28px;
    margin: 20px 0;
}
.alpha-column .post-content h3 {
    font-size: 22px;
    font-weight: 600;
    color: #414141;
    letter-spacing: 0.08em;
    margin: 40px 0 20px;
    position: relative;
    padding-bottom: 21px;
}
.alpha-column .post-content h3::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, #D3C3B0 0 6%, #FFFFFF 6% 100%);
}
.alpha-column .post-content ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.85em;
    width: 8px;
    height: 8px;
    background: #C1A684;
    border-radius: 50%;
    transform: translateY(-50%);
}
.alpha-column .post-content ul li {
    position: relative;
    padding-left: 14px;
}
.alpha-column .post-content ol {
    list-style: none;
    padding-left: 0;
    counter-reset: item;
}
.alpha-column .post-content ol li {
    list-style: none;
    position: relative;
    padding-left: 16px;
    counter-increment: item;
}
@media screen and (max-width: 767px) {
    .alpha-column .category-title h2 {
        font-size: 20px;
    }
    .alpha-column {
        gap: 32px;
        padding: 0 0 48px;
    }
    .alpha-column .content {
        padding: 25px 10px;
    }
    .alpha-column .main-container {
        flex-direction: column;
        gap: 32px;
    }
    .alpha-column .item-list {
        grid-template-columns: 1fr;
        row-gap: 24px;
    }
    .alpha-column .item-content {
        max-width: none;
    }
    .alpha-column .iten-content-text p {
        font-size: 16px;
    }
    .alpha-column .pagination {
        gap: 10px;
        margin: 48px 0 0;
        flex-wrap: nowrap;
    }
    .alpha-column .pagination .page-numbers,
    .alpha-column .pagination .prev,
    .alpha-column .pagination .next {
        width: 38px;
        height: 38px;
        min-width: 38px;
        min-height: 38px;
        flex-shrink: 0;
    }
    .alpha-column .pagination .prev,
    .alpha-column .pagination .next {
        flex-shrink: 0;
        padding: 0 !important;
        -webkit-tap-highlight-color: transparent;
    }
    .alpha-column .pagination .prev::before,
    .alpha-column .pagination .next::before {
        width: 10px;
        height: 10px;
    }
    .alpha-column .pagination .page-numbers {
        font-size: 18px;
    }
    .alpha-column .pagination-track {
        gap: 10px;
    }
    .alpha-column .pagination-viewport {
        width: calc(38px * 5 + 10px * 4);
        flex-shrink: 0;
    }
    .alpha-column .breadcrumb {
        margin-bottom: 32px;
    }
    .alpha-column .top-button {
        margin-top: 40px;
        width: 50%;
    }
    .alpha-column .top-button a {
        width: 100%;
        height: 46px;
        font-size: 15px;
    }
    .alpha-column .sidebar-content-title {
        width: 100%;
    }
    /* page-notice SP */
    .alpha-column .notice-list li a {
        gap: 20px;
        padding: 12px 0;
    }
    .alpha-column .notice-list .notice-date {
        width: 70px;
        font-size: 14px;
    }
    .alpha-column .notice-list .notice-title {
        font-size: 16px;
    }
}

/* page-notice：お知らせ一覧（一行表示・サイドバーなし） */
.alpha-column .content--notice {
    background: transparent;
}
.alpha-column .main-container--no-sidebar {
    flex-direction: column;
}
.alpha-column .notice-list {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
}
.alpha-column .notice-list li {
    border-bottom: 1px solid #414141;
}
.alpha-column .notice-list li a {
    display: flex;
    align-items: center;
    gap: 41px;
    padding: 15px 0;
    text-decoration: none;
    color: #414141;
}
.alpha-column .notice-list .notice-date {
    width: 94px;
    flex-shrink: 0;
    font-size: 16px;
}
.alpha-column .notice-list .notice-title {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 18px;
}
.alpha-column .notice-list .notice-empty {
    padding: 24px 0;
    text-align: center;
    color: #414141;
}

/* 固定ページ専用スタイル（page-style-alpha）：記事スタイルと衝突しない */
.page-style-alpha .cps-post-box {
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    padding: 0;
}

/* 統一テンプレート p タグ */
.page-style-alpha p {
    margin: 0;
    padding: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 170%;
    letter-spacing: 0.08em;
}

.page-style-alpha ul li {
    padding: 0;
}

/* Alpha 見出しスタイル（hl_style_preset = alpha で適用） */
.h2-style-alpha h2 {
    color: #414141;
    border-left: 9px solid #414141;
    background: #D3C3B0;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 0.08em;
}
@media (max-width: 767px) {
    .h2-style-alpha h2 {
        font-size: 20px;
        padding: 10px 12px;
        border-left-width: 4px;
        margin-bottom: 16px;
    }
}
@media (min-width: 594px) {
    .h2-style-alpha h2 {
        font-size: 26px;
        padding: 10px 23px;
        margin-bottom: 20px;
    }
}

.h3-style-alpha h3 {
    margin-top: 20px;
    color: #414141;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 0.08em;
    font-size: 22px;
    padding-bottom: 9px;
    border-bottom: 2px solid #fff;
    position: relative;
    margin-bottom: 20px;
}
.h3-style-alpha h3::before {
    content: '';
    display: inline-block;
    width: 58px;
    height: 2px;
    background: #D3C3B0;
    position: absolute;
    left: 0;
    bottom: -2px;
}
@media (max-width: 767px) {
    .h3-style-alpha h3 {
        font-size: 18px;
    }
}

.h4-style-alpha h4 {
    color: #414141;
    font-weight: 600;
}
@media (max-width: 767px) {
    .h4-style-alpha h4 {
        font-size: 1.1rem;
        line-height: 1.5rem;
        margin-top: 1rem;
        margin-bottom: 0.6rem;
    }
}
@media (min-width: 595px) {
    .h4-style-alpha h4 {
        font-size: 1.2rem;
        line-height: 1.6rem;
        margin-top: 1.4rem;
        margin-bottom: 0.8rem;
    }
}

/* ========================================
   リストスタイル（ul / ol）
   追加時：クラス名を追加し、対応するCSSを記述
   ======================================== */

/* ul：菱形マーク */
ul.ul-diamond {
    list-style: none;
    padding-left: 0;
}
ul.ul-diamond li {
    position: relative;
    padding-left: 23px;
    margin-bottom: 0.5em;
    line-height: 2em;
}
ul.ul-diamond li::before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    background: #414141;
    position: absolute;
    left: 0;
    top: 0.7em;
    transform: rotate(45deg);
}

/* ul：追加用（例：ul.ul-circle, ul.ul-square 等） */
/* ul.ul-xxx { } */

/* ol：追加用（例：ol.ol-decimal, ol.ol-alpha 等） */
/* ol.ol-xxx { } */

/* サイドバーなしページ：フル幅（payment, access, aboutus, reservation） */
.alpha-reservation-contents,
.alpha-payment-contents,
.alpha-access-contents,
.alpha-aboutus-contents {
    width: 100%;
    float: none;
    margin: 0;
    max-width: none;
}

/* treatment list page (menu.html → page-menu.php) */
main#main-contents.alpha-menu-contents.menu-detail,
main#main-contents.alpha-menu-contents.price-detail {
    margin-bottom: 120px;
}
/* .menu-detail {
    padding-top: 60px;
} */
.menu-detail .container {
    width: 1000px;
    margin: 0 auto;
}
.alpha-menu-contents {
    width: 100%;
    float: none;
    margin: 0;
    max-width: none;
}
.alpha-treatment-list,
.alpha-treatment-section {
    max-width: 1001px;
    margin: 0 auto 40px;
    padding: 0 16px;
}
.alpha-treatment-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 31px;
    justify-content: start;
}
.alpha-treatment-card {
    position: relative;
    display: block;
    height: 103px;
    overflow: hidden;
}
.alpha-treatment-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 250px;
    height: 100%;
    background: linear-gradient(90deg, rgba(65, 65, 65, 1) 37%, rgba(65, 65, 65, 0) 100%);
    z-index: 1;
}
.alpha-treatment-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.2);
    z-index: 1;
}
.alpha-treatment-card__label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    color: #fff;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.08em;
    z-index: 2;
    padding-left: 30px;
    text-align: left;
}
.alpha-treatment-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.alpha-treatment-card--face img {
    width: 442px;
    height: 302px;
    /* object-fit: none; */
    position: absolute;
    left: 0;
    top: 0;
    transform: translate(27px, -151px);
}
.alpha-treatment-card--body img {
    width: 350px;
    height: 240px;
    /* object-fit: none; */
    position: absolute;
    left: 0;
    top: 0;
    transform: translate(38px, -129px);
}
.alpha-treatment-card--dermatology img {
    width: 432px;
    height: 296px;
    /* object-fit: none; */
    position: absolute;
    left: 0;
    top: 0;
    transform: translate(-70px, -136px);
}
.alpha-treatment-detail {
    width: 100%;
    margin: 120px 0 0;
    position: relative;
    background: #efeae3;
}
.alpha-treatment-detail__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    aspect-ratio: 144 / 43;
    overflow: hidden;
    z-index: 0;
}
.alpha-treatment-detail__bg::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 100%);
}
.alpha-treatment-detail__bg::after {
    content: '';
    position: absolute;
    inset: -1px;
    z-index: 2;
    background: linear-gradient(
        to bottom,
        rgba(239, 234, 227, 0) 45%,
        rgba(239, 234, 227, 0.85) 75%,
        rgba(239, 234, 227, 1) 100%
    );
}
.alpha-treatment-detail__bg-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: 0% 94.8%;
    z-index: 0;
    display: block;
}
.alpha-treatment-hero {
    width: 100%;
    margin: 0;
    position: relative;
    z-index: 1;
    border-radius: 0;
    overflow: hidden;
}
.alpha-treatment-hero__title {
    text-align: center;
    color: #fff;
    letter-spacing: 0.08em;
    line-height: 1;
    margin: 30px 0 33px;
}
.alpha-treatment-hero__title-en {
    display: block;
    font-size: 90px;
    font-weight: 600;
    opacity: .4;
}
.alpha-treatment-hero__title-ja {
    display: block;
    font-size: 26px;
    font-weight: 600;
    position: relative;
    top: -5px;
}
.alpha-treatment-hero__tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    justify-content: center;
    gap: 10px;
    margin-bottom: 72px;
    width: 87%;
    margin: 0 auto 72px;
}
.alpha-treatment-hero__tabs.spe {
    display: flex;
}
.alpha-treatment-hero__tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    height: 34px;
    padding: 0 14px;
    border-radius: 999px;
    background: #fff;
    color: #C1A684;
    flex-shrink: 0;
    box-sizing: border-box;
    height: 50px;
    line-height: 50px;
}
.alpha-treatment-panel {
    max-width: 1001px;
    margin: 20px auto 60px;
    padding: 0 16px 0;
    position: relative;
    z-index: 1;
}
.alpha-treatment-panel:last-child {
    margin-bottom: 0;
}
.alpha-treatment-panel__title {
    text-align: center;
    font-size: 26px;
    letter-spacing: 0.08em;
    color: #fff;
    background: #bda27b;
    padding: 11.5px 0;
}
.alpha-treatment-panel__body {
    background: #fff;
    padding: 40px 4%;
    min-height: 120px;
}
.alpha-treatment-section__title {
    text-align: center;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: #414141;
    margin: 40px 0 20px;
}
.alpha-treatment-panel__part {
    background: #efeae3;
    margin-bottom: 20px;
    padding: 30px 0;
}
.alpha-treatment-panel__part:last-child {
    margin-bottom: 0;
}
.alpha-treatment-panel__part dt {
    font-size: 20px;
    text-align: center;
    margin-bottom: 20px;
}
.alpha-treatment-panel__part dt span {
    position: relative;
}
.alpha-treatment-panel__part dt span::before,
.alpha-treatment-panel__part dt span::after {
    content: '';
    width: 40px;
    height: 1px;
    background: #414141;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
.alpha-treatment-panel__part dt span::before {
    left: -60px;
}
.alpha-treatment-panel__part dt span::after {
    right: -60px;
}
.alpha-treatment-panel__part dd {
    display: flex;
    justify-content: center;
    gap: 14px;
}
.alpha-treatment-panel__part dd a {
    width: 25%;
    height: 50px;
    line-height: 50px;
    text-align: center;
    box-sizing: border-box;
    position: relative;
    min-width: 212px;
}
.alpha-treatment-panel__part dd a::after {
    content: '';
    display: inline-block;
    width: 11px;
    height: 11px;
    border-top: 1px solid;
    border-right: 1px solid;
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%) rotate(45deg);
}
.alpha-treatment-panel__part dd a:not(.to-booking) {
    border: 1px solid #414141;
    background: #fff;
}
.alpha-treatment-panel__part dd a:not(.to-booking)::after {
    border-color: #414141;
}
.alpha-treatment-panel__part dd a.to-booking {
    background: #414141;
    color: #fff;
}
.alpha-treatment-panel__part dd a.to-booking::after {
    border-color: #fff;
}
/* price-detail (料金一覧ページ) */
.price-detail .alpha-treatment-panel__part dd {
    flex-direction: column;
    gap: 20px;
    width: 84.7%;
    margin: 0 auto;
}
.price-detail .part-price_detail {
    width: 100%;
}
.price-detail .part-price_detail li {
    border-bottom: 1px solid #C1A684;
    padding: 12px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    font-size: 18px;
}
.price-detail .part-price_detail li .name {
    border-left: 2px solid #414141;
    padding-left: 14px;
}
.price-detail .alpha-treatment-panel__part .btn-list {
    display: flex;
    justify-content: center;
    gap: 14px;
    width: 100%;
}
.price-detail .alpha-treatment-panel__part .btn-list a {
    width: 29.5%;
    height: 50px;
    line-height: 50px;
    position: relative;
    min-width: 150px;
}
.price-detail .alpha-treatment-panel__part .btn-list a::after {
    content: '';
    display: inline-block;
    width: 11px;
    height: 11px;
    border-top: 1px solid;
    border-right: 1px solid;
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%) rotate(45deg);
}
.price-detail .alpha-treatment-panel__part .btn-list a:not(.to-booking) {
    border: 1px solid #414141;
    background: #fff;
}
.price-detail .alpha-treatment-panel__part .btn-list a:not(.to-booking)::after {
    border-color: #414141;
}
.price-detail .alpha-treatment-panel__part .btn-list a.to-booking {
    background: #414141;
    color: #fff;
}
.price-detail .alpha-treatment-panel__part .btn-list a.to-booking::after {
    border-color: #fff;
}
@media (any-hover: hover) {
    .alpha-treatment-panel__part dd a:not(.to-booking):hover {
        background: #414141;
        color: #fff;
    }
    .alpha-treatment-panel__part dd a:not(.to-booking):hover::after {
        border-color: #fff;
    }
    .price-detail .alpha-treatment-panel__part .btn-list a:not(.to-booking):hover {
        background: #414141;
        color: #fff;
    }
    .price-detail .alpha-treatment-panel__part .btn-list a:not(.to-booking):hover::after {
        border-color: #fff;
    }
    .alpha-treatment-panel__part dd a.to-booking:hover {
        background: #fff;
        color: #414141;
        border: 1px solid #414141;
    }
    .alpha-treatment-panel__part dd a.to-booking:hover::after {
        border-color: #414141;
    }
    .price-detail .alpha-treatment-panel__part .btn-list a.to-booking:hover {
        background: #fff;
        color: #414141;
        border: 1px solid #414141;
    }
    .price-detail .alpha-treatment-panel__part .btn-list a.to-booking:hover::after {
        border-color: #414141;
    }
}
@media screen and (max-width: 1280px) {
    .menu-detail .container {
        width: 89.33%;
    }
    .alpha-treatment-card__label {
        font-size: 18px;
    }
    .alpha-treatment-hero__tabs {
        grid-template-columns: repeat(3, 1fr);
    }
    .alpha-treatment-hero__tabs.spe {
        display: grid;
    }
    .alpha-treatment-panel__part dt {
        font-size: 18px;
    }
    .alpha-treatment-panel__part dt span::before,
    .alpha-treatment-panel__part dt span::after {
        width: 30px;
    }
    .alpha-treatment-panel__part dt span::before {
        left: -35px;
    }
    .alpha-treatment-panel__part dt span::after {
        right: -35px;
    }
    .alpha-treatment-panel__part dd a {
        min-width: 200px;
        font-size: 14px;
    }
}
@media screen and (max-width: 767px) {
    .alpha-banner {
        height: auto;
        padding: 30px 52px;
    }
    .alpha-banner__title {
        font-size: 22px;
    }
    .alpha-breadcrumb {
        margin: 16px auto 32px;
        padding: 0 5%;
        font-size: 14px;
    }
    main#main-contents.alpha-menu-contents.menu-detail,
    main#main-contents.alpha-menu-contents.price-detail {
        margin-bottom: 60px;
        padding: 0 0 40px;
    }
    .menu-detail .container,
    .alpha-treatment-list,
    .alpha-treatment-section {
        padding: 0 5%;
        margin-bottom: 28px;
    }
    .alpha-treatment-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .alpha-treatment-card__label {
        font-size: 14px;
        padding-left: 20px;
    }
    .alpha-treatment-section__title {
        font-size: 20px;
        margin: 32px 0 16px;
    }
    .alpha-treatment-detail {
        margin-top: 48px;
        padding-bottom: 0;
    }
    .alpha-treatment-hero__title {
        margin: 20px 0 24px;
        padding: 0 5%;
    }
    .alpha-treatment-hero__title-en {
        font-size: 48px;
    }
    .alpha-treatment-hero__title-ja {
        font-size: 20px;
    }
    .alpha-treatment-hero__tabs {
        grid-template-columns: repeat(2, 1fr);
        width: 90%;
        margin: 0 auto 40px;
        gap: 8px;
    }
    .alpha-treatment-hero__tab {
        font-size: 14px;
        min-width: 170px;
    }
    .alpha-treatment-panel {
        margin: 16px auto 40px;
        padding: 0 5%;
    }
    .alpha-treatment-panel:last-child {
        margin-bottom: 0;
    }
    .alpha-treatment-panel__title {
        font-size: 20px;
        padding: 10px 12px;
    }
    .alpha-treatment-panel__body {
        padding: 24px 5%;
    }
    .alpha-treatment-panel__part {
        margin-bottom: 16px;
        padding: 20px 16px;
    }
    .alpha-treatment-panel__part:last-child {
        margin-bottom: 0;
    }
    .alpha-treatment-panel__part dt {
        font-size: 18px;
        margin-bottom: 14px;
    }
    .alpha-treatment-panel__part dt.spe {
        font-size: 14px;
    }
    .alpha-treatment-panel__part dt span::before,
    .alpha-treatment-panel__part dt span::after {
        content: none;
    }
    .alpha-treatment-panel__part dd {
        flex-direction: column;
        align-items: center;
    }
    .alpha-treatment-panel__part dd a {
        width: 60%;
        margin-bottom: 10px;
        font-size: 14px;
        height: 44px;
        line-height: 44px;
    }
    .alpha-treatment-panel__part dd a:last-child {
        margin-bottom: 0;
    }
    .alpha-treatment-card {
        width: 70%;
        margin: 0 auto;
    }
    .alpha-treatment-card--dermatology img,
    .alpha-treatment-card--body img,
    .alpha-treatment-card--face img {
        width: 100%;
        transform: translate(10px, -136px);
        right: 0;
    }
    .alpha-treatment-card--body img {
        transform: translate(50px, -129px);
    }
    .alpha-treatment-card--face img {
        transform: translate(60px, -151px);
    }
    .price-detail .alpha-treatment-panel__part .btn-list {
        flex-direction: column;
        gap: 10px;
        margin-top: 16px;
    }
    .price-detail .alpha-treatment-panel__part .btn-list a {
        width: 60%;
        margin: 0 auto;
        font-size: 14px;
        height: 44px;
        line-height: 44px;
        min-width: 0;
    }
    .price-detail .part-price_detail {
        margin-bottom: 12px;
    }
    .price-detail .part-price_detail li {
        font-size: 15px;
        padding: 10px 0;
    }
    .price-detail .part-price_detail li .name {
        font-size: 14px;
    }
    .price-detail .part-price_detail li .price {
        font-size: 14px;
    }
    .price-detail .alpha-treatment-panel__part-text {
        margin-bottom: 12px;
        font-size: 14px;
        line-height: 1.7;
    }
}
@media screen and (max-width: 594px) {
    /* 右上ハンバーガーと重ならないよう左右対称の余白でタイトルを中央に */
    .alpha-banner {
        padding-left: 52px;
        padding-right: 52px;
        box-sizing: border-box;
    }
    .alpha-banner__title {
        font-size: 18px;
        max-width: 100%;
    }
    .alpha-breadcrumb {
        margin: 12px auto 24px;
        font-size: 13px;
    }
    main#main-contents.alpha-menu-contents.menu-detail,
    main#main-contents.alpha-menu-contents.price-detail {
        margin-bottom: 40px;
    }
    .menu-detail .container,
    .alpha-treatment-list,
    .alpha-treatment-section {
        margin-bottom: 20px;
        padding: 0 4%;
    }
    .alpha-treatment-detail {
        margin-top: 36px;
    }
    .alpha-treatment-hero__title {
        margin: 16px 0 20px;
    }
    .alpha-treatment-hero__title-en {
        font-size: 40px;
    }
    .alpha-treatment-hero__title-ja {
        font-size: 18px;
    }
    .alpha-treatment-hero__tabs {
        margin: 0 auto 32px;
        width: 92%;
    }
    .alpha-treatment-panel {
        margin: 12px auto 32px;
        padding: 0 4%;
    }
    .alpha-treatment-panel__body {
        padding: 20px 4%;
    }
    .alpha-treatment-panel__part {
        margin-bottom: 12px;
        padding: 16px 12px;
    }
    .alpha-treatment-card__label {
        font-size: 13px;
    }
    .alpha-treatment-panel__title {
        font-size: 18px;
        padding: 8px 10px;
    }
    .alpha-treatment-panel__part dt {
        margin-bottom: 12px;
        font-size: 16px;
    }
    .alpha-treatment-panel__part dd a {
        width: 85%;
        font-size: 13px;
        height: 40px;
        line-height: 40px;
    }
    .alpha-treatment-card {
        width: 100%;
        margin: 0 auto;
    }
    .alpha-treatment-card--dermatology img,
    .alpha-treatment-card--body img,
    .alpha-treatment-card--face img {
        width: 100%;
        transform: translate(40px, -136px);
        right: 0;
    }
    .alpha-treatment-card--body img {
        transform: translate(80px, -129px);
    }
    .alpha-treatment-card--face img {
        transform: translate(50px, -151px);
    }
    .price-detail .alpha-treatment-panel__part .btn-list {
        margin-top: 12px;
        gap: 8px;
    }
    .price-detail .alpha-treatment-panel__part .btn-list a {
        width: 85%;
        font-size: 13px;
        height: 40px;
        line-height: 40px;
    }
    .price-detail .part-price_detail li {
        font-size: 14px;
        padding: 8px 0;
    }
    .price-detail .part-price_detail li .name,
    .price-detail .part-price_detail li .price {
        font-size: 13px;
    }
    .price-detail .alpha-treatment-panel__part-text {
        font-size: 13px;
    }
}
@media screen and (max-width: 375px) {
    .alpha-treatment-hero__tabs,
    .alpha-treatment-hero__tabs.spe {
        display: flex;
        flex-direction: column;
        margin-bottom: 30px;
    }
}

/* footer start */
footer .footer-main {
    padding: 57px 7.15% 25px;
}
footer .footer-cont {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
footer .left {
    width: 153px;
}
footer .left img {
    width: 100%;
}
footer .footer-menu {
    display: flex;
    align-items: center;
    gap: 40px;
}
footer .footer-menu a {
    color: #fff;
    font-weight: 600;
}
footer .footer-btm {
    font-size: 12px;
    color: #fff;
    text-align: center;
    margin-top: 80px;
}
@media screen and (max-width: 1000px) {
    footer .footer-main {
        padding: 57px 4.5% 25px;
    }
    footer .left {
        width: 12.4%;
    }
    footer .footer-menu {
        gap: 20px;
    }
    footer .footer-menu a {
        font-size: 16px;
    }
}
@media screen and (max-width: 594px) {
    footer .footer-cont,
    footer .footer-menu {
        flex-direction: column;
    }
    footer .footer-menu {
        gap: 30px;
    }
    footer .footer-menu a {
        text-align: center;
    }
    footer .footer-main {
        padding: 60px 0 30px;
    }
    footer .left {
        width: 136px;
        margin: 0 auto 40px;
    }
    footer .footer-btm {
        margin-top: 61px;
        font-size: 12px;
        line-height: 18px;
    }
}
/* footer end */

/* index page start */
/* banner */
.banner {
    background: #D4DBE3;
    padding: 80px 0 0 10.41%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 11px;
}
.banner-left h1 {
    font-size: 65px;
}
.banner-left .h-prompt {
    font-size: 28px;
    margin: 26px 0 45px;
}
.banner-left .btn-group a {
    width: 280px;
    height: 60px;
    position: relative;
    border-radius: 30px;
}
.banner-left .btn-group a:not(.spe) {
    color: #C1A684;
    margin-top: 15px;
}
.banner-left .btn-group a.spe {
    color: #fff;
}
.banner-left .btn-group a::before {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: rotate(45deg);
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
}
.banner-left .btn-group a.spe::before {
    border-color: #C1A684;
}
/* index page end */

/* FAQ page (よくある質問) */
.faq-detail {
    width: 1000px;
    margin: 0 auto;
}
.faq-common-part {
    padding-bottom: 60px;
}
/* FAQ 専用：page-faq は統一 page テンプレートを使わないため個別スタイル */
.faq-common-part h2 {
    background: #C1A684;
    color: #fff;
    font-size: 24px;
    padding: 8px;
    text-align: center;
}
.faq-common-part .part-main {
    background: #fff;
    padding: 40px 60px;
}
.faq-common-part dl {
    margin-bottom: 20px;
}
.faq-common-part dt {
    font-size: 20px;
    padding-bottom: 13px;
    position: relative;
    border-bottom: 1px solid #C1A684;
    cursor: pointer;
}
.faq-common-part dt::before,
.faq-common-part dt::after {
    content: '';
    display: inline-block;
    width: 23px;
    height: 2px;
    background: #414141;
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
}
.faq-common-part dt::after {
    width: 2px;
    height: 23px;
    right: 24px;
}
.faq-common-part dt.show::after {
    content: none;
}
.faq-common-part dd {
    padding: 20px 0 10px;
    line-height: 1.7;
    display: none;
}
.faq-common-part dt.show+dd {
    display: block;
}
.faq-common-part dd .QA {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.faq-common-part dd .A  {
    margin-top: 0;
}
.faq-common-part dt.show+dd .A {
    display: flex;
}
.faq-common-part dd .left {
    display: block;
    width: 50px;
    height: 50px;
    text-align: center;
    line-height: 50px;
    color: #fff;
    font-size: 20px;
    border-radius: 50%;
    flex-shrink: 0;
}
.faq-common-part dd .A .left {
    background: #C1A684;
}
.faq-common-part dd .right {
    width: calc(100% - 60px);
}
.faq-common-part dd .A .right {
    padding: 0 20px;
}
@media screen and (max-width: 1280px) {
   .faq-detail {
        width: 89.33%;
    } 
}
@media screen and (max-width: 594px) {
    .faq-common-part h2 {
        font-size: 20px;
    }
    .faq-common-part .part-main {
        padding: 20px 20px;
    }
    .faq-common-part dt {
        font-size: 18px;
        /* ＋アイコンと文字が重ならないよう右余白を確保（iPhone SE 等） */
        padding-right: 50px;
    }
    .faq-common-part dt::before {
        width: 18px;
    }
    .faq-common-part dt::after {
        height: 18px;
        right: 22px;
    }
    .faq-common-part dd .left {
        width: 45px;
        height: 45px;
        font-size: 18px;
        line-height: 45px;
    }
}

/* Access page (アクセス) */
.access-detail {
    width: 1000px;
    margin: 0 auto 100px;
}
.access-detail .map {
    width: 100%;
    min-height: 430px;
    height: 430px;
    margin-bottom: 40px;
    position: relative;
}
.access-detail .map-label {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 1;
    background: rgba(255, 255, 255, 1);
    padding: 6px 10px 6px 12px;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    color: #5f6368;
    border-radius: 2px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.access-detail .map-label__name {
    color: #000;
    font-size: 14px;
    font-weight: 700;
}
.access-detail .map-label__link {
    color: #1a73e8;
    text-decoration: none;
    font-size: 11px;
}
.access-detail .map-label__link:hover {
    text-decoration: underline;
}
.access-detail .map iframe {
    width: 100%;
    height: 100%;
    display: block;
}
.access-detail .address {
    display: flex;
    justify-content: space-between;
}
.access-detail .address .add-left {
    width: 506px;
    flex-shrink: 0;
}
.access-detail .address .add-left .name {
    font-size: 26px;
    margin-bottom: 13px;
}
.access-detail .address .add-left .tel-add {
    margin-bottom: 15px;
}
.access-detail .address .add-left .access-info {
    margin-bottom: 30px;
    line-height: 1.7;
}
.access-detail .to-booking {
    width: 230px;
    height: 50px;
    background: #414141;
    color: #fff;
    text-align: center;
    line-height: 50px;
    position: relative;
}
.access-detail .to-booking::after {
    content: '';
    display: inline-block;
    width: 11px;
    height: 11px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%) rotate(45deg);
}
.access-detail .address .add-right {
    width: 494px;
    flex-shrink: 0;
}
.access-detail .address .add-right ul {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.access-detail .address .add-right li {
    display: flex;
}
.access-detail .address .add-right li.spe {
    background: #C1A684;
    justify-content: center;
    align-items: center;
    height: 50px;
    width: 100%;
    color: #fff;
}
.access-detail .address .add-right .left {
    width: 130px;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    background: #C1A684;
    flex-shrink: 0;
}
.access-detail .address .add-right .right {
    background: #fff;
    padding: 10px 0 10px 30px;
    line-height: 50px;
    width: calc((100% - 120px));
}
.access-detail .address .add-right .right a {
    color: inherit;
    text-decoration: none;
}
@media (any-hover: hover) {
    .access-detail .address .add-right .right a.tel-link:hover {
        color: #C1A684;
    }
}
.access-detail .address .add-right .tel-link-wrap .tel-hint {
    display: none;
}
@media screen and (max-width: 594px) {
    .access-detail .map-label {
        display: none;
    }
    .access-detail .address .add-right .tel-link-wrap {
        display: flex;
        flex-direction: column;
        gap: 10px;
        line-height: 1.3;
    }
    .access-detail .address .add-right .tel-link-wrap .tel-hint {
        display: inline;
        font-size: 11px;
        color: #C1A684;
    }
    .access-detail .address .add-right .schedule-line {
        display: flex;
        flex-direction: column;
        gap: 0;
        line-height: 1.4;
    }
    .access-detail .address .add-right .schedule-line .schedule-day,
    .access-detail .address .add-right .schedule-line .schedule-time {
        display: block;
    }
    .access-detail .address .add-right .schedule-line .schedule-day::after {
        content: none;
    }
    .access-detail .address .add-left .access-info {
        margin-bottom: 0;
    }
}
.access-detail .address .add-right .schedule-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    line-height: 1.5;
}
.access-detail .address .add-right .schedule-content span {
    display: block;
}
.access-detail .address .add-right .schedule-line .schedule-day,
.access-detail .address .add-right .schedule-line .schedule-time {
    display: inline;
}
.access-detail .address .add-right .schedule-line .schedule-day::after {
    content: '\00a0';
}
.access-detail+.art-detail {
    width: 1000px;
    padding: 100px 0;
}

/* 施術詳細 - single-menu.php (art-detail レイアウト) */
.art-detail {
    width: 860px;
    margin: 0 auto;
}
.art-detail > h2:first-of-type {
    color: #fff;
    font-size: 32px;
    padding: 12px;
    background: #C1A684;
    text-align: center;
    margin-bottom: 30px;
    border-left: none;
}
.art-detail .catch-copy {
    font-size: 28px;
    line-height: 1.7;
    margin-bottom: 20px;
}
.art-detail .description {
    line-height: 1.7;
    margin-bottom: 40px;
}
.art-detail .to-booking {
    width: 230px;
    height: 50px;
    color: #fff;
    text-align: center;
    line-height: 50px;
    position: relative;
    background: #414141;
    margin: 40px auto 60px;
    display: block;
    text-decoration: none;
}
.art-detail .to-booking::after {
    content: '';
    display: inline-block;
    width: 11px;
    height: 11px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    position: absolute;
    top: 50%;
    right: 18px;
    transform: translateY(-50%) rotate(45deg);
}
.art-detail .art-pic {
    margin: 0 auto 40px;
}
.art-detail .art-pic,
.art-detail .art-pic img {
    width: 100%;
}
/* 不拼接：上下並び・間隔約20px */
.art-detail .art-pic.art-pic--separate {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.art-detail .art-pic.art-pic--separate .art-pic__item {
    width: 100%;
}
.art-detail .art-pic.art-pic--separate .art-pic__item img {
    width: 100%;
    height: auto;
    display: block;
}
/* 拼接表示：左右 */
.art-detail .art-pic.art-pic--stitch.art-pic--row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0;
}
.art-detail .art-pic.art-pic--stitch.art-pic--row .art-pic__item {
    flex: 1;
    min-width: 0;
}
.art-detail .art-pic.art-pic--stitch.art-pic--row .art-pic__item img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}
/* 拼接表示：上下 */
.art-detail .art-pic.art-pic--stitch.art-pic--column {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.art-detail .art-pic.art-pic--stitch.art-pic--column .art-pic__item {
    width: 100%;
}
.art-detail .art-pic.art-pic--stitch.art-pic--column .art-pic__item img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}
.art-detail .fee {
    background: #fff;
    padding: 20px 4.65%;
}
.art-detail .fee li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    font-size: 18px;
    line-height: 1.7;
    border-bottom: 1px solid #C1A684;
}
.art-detail .fee li:first-child {
    padding-top: 0;
}
.art-detail .fee li:last-child {
    border-bottom: 0;
}
.art-detail .fee .left {
    border-left: 2px solid #414141;
    padding-left: 18px;
}
.art-detail .art-common-part .text {
    margin: 20px 0 40px;
}
.art-detail .art-common-part li .title {
    font-size: 22px;
    padding-bottom: 9px;
    border-bottom: 2px solid #fff;
    position: relative;
}
.art-detail .art-common-part li .title::after {
    content: '';
    display: inline-block;
    width: 50px;
    height: 2px;
    background: #D3C3B0;
    position: absolute;
    left: 0;
    bottom: -2px;
}
.art-detail .art-common-part h2 {
    background: #D3C3B0;
    border-left: 8px solid #414141;
    padding: 10px 28px;
    font-size: 26px;
    color: #414141;
    text-align: left;
}
.art-detail .art-common-part.no-first-text h2 {
    margin-bottom: 40px;
}
.art-detail .art-content p {
    font-size: 16px;
    font-weight: 600;
    line-height: 1.7;
    letter-spacing: 0.08em;
}
.art-detail .art-content p:first-child {
    margin-top: 0;
}

/* 施術詳細：本文（.art-content）内のリスト・テーブル専用スタイル */
.art-detail .art-content ul,
.art-detail .art-content ol {
    margin: 0 0 1.5em 1.6em;
    padding: 0;
}
.art-detail .art-content ul {
    list-style-type: disc;      /* 無序：圆点樣式 */
    list-style-position: outside;
    margin-bottom: 1.5em !important;
}
.art-detail .art-content ol {
    list-style-type: decimal;   /* 有序：数字序号樣式 */
    list-style-position: outside;
}
.art-detail .art-content li {
    margin-bottom: 0.35em;
}

/* .art-content 内のテーブル：page_contents_table2/3 と同じテイスト */
.art-detail .art-content table {
    width: 100%;
    border-collapse: collapse;
    font-size: 16px;
    color: #414141;
}
.art-detail .art-content th {
    background: rgba(211, 195, 176, 0.3);
    border: 1px solid #ccc;
    padding: 14px 18px;
    min-width: 140px;
    width: 28%;
    font-weight: 600;
    text-align: left;
    vertical-align: top;
}
.art-detail .art-content td {
    border: 1px solid #ccc;
    padding: 14px 18px;
    line-height: 1.7;
    vertical-align: top;
}
@media screen and (max-width: 594px) {
    .art-detail .art-content th {
        min-width: 100px;
        width: 32%;
        padding: 12px 14px;
        font-size: 14px;
    }
    .art-detail .art-content td {
        padding: 12px 14px;
        font-size: 14px;
    }
}
/* 人気施術メニュー / 関連施術メニュー（front-page と single-menu 共通） */
.index-main .favrite {
    padding-top: 100px;
    padding-bottom: 100px;
}
.index-main .favrite.art-part {
    padding: 80px 0 120px;
}
.index-main .favrite-list {
    max-width: 100%;
    margin: 0 auto;
    gap: 20px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}
.index-main .favrite-list li {
    flex-shrink: 0;
    width: 319px;
    height: 80px;
    max-width: 100%;
}
.index-main .favrite-list li a {
    display: flex;
    font-size: 18px;
    background: #fff;
    height: 100%;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    flex-direction: row-reverse;
}
.index-main .favrite-list li .left {
    width: 115px;
    height: 100%;
    flex-shrink: 0;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    text-align: center;
}
.index-main .favrite-list li .left span {
    display: block;
    line-height: 1.4;
}
.index-main .favrite-list li .right {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding-left: 15px;
}
@media screen and (max-width: 594px) {
    .index-main .favrite {
        padding-top: 60px;
    }
    .index-main .favrite-list {
        gap: 10px;
        display: block;
    }
    .index-main .favrite-list li {
        width: 100%;
        margin-bottom: 10px;
    }
    .index-main .favrite-list li:last-child {
        margin-bottom: 0;
    }
    .index-main .favrite-list li .left {
        width: 34.4%;
    }
}
@media screen and (max-width: 1000px) {
    .art-detail { width: 80%; }
}
@media screen and (max-width: 594px) {
    .art-detail { width: 89.33%; }
    .art-detail > h2:first-of-type { font-size: 26px; }
    .art-detail .catch-copy,
    .art-detail .art-common-part h2 { font-size: 22px; }
    .art-detail .art-common-part h2 {
        border-width: 4px;
        padding: 10px 12px;
    }
    .art-detail .fee li { font-size: 16px; }
    .art-detail .art-common-part li .title { font-size: 18px; }
    .art-detail .art-common-part .text { font-size: 14px; }
}
@media screen and (max-width: 594px) {
    .art-detail > h2:first-of-type { font-size: 24px; }
    .art-detail .catch-copy,
    .art-detail .art-common-part h2 { font-size: 20px; }
    .art-detail .fee li {
        flex-direction: column;
        align-items: flex-start;
    }
    .art-detail .fee li .left,
    .art-detail .fee li .right { padding-left: 10px; }
    .art-detail .fee li .right {
        border-left: 2px solid #414141;
    }
}

@media screen and (max-width: 1280px) {
    .access-detail+.art-detail,
    .access-detail {
        width: 89.33%;
    }
    .access-detail .address {
        gap: 1%;
    }
    .access-detail .address .add-left, 
    .access-detail .address .add-right {
        width: 50%;
    }
}
@media screen and (max-width: 594px) {
    .access-detail .address {
        flex-direction: column;
        gap: 10px;
    }
    .access-detail .address .add-left {
        display: flex;
        align-items: center;
        gap: 5px;
        margin-bottom: 20px;
    }
    .access-detail .address .add-left .text {
        width: calc(100% - 240px);
        flex-shrink: 0;
    }
    .access-detail .address .add-left, 
    .access-detail .address .add-right {
        width: 100%;
    } 
    .access-detail .address .add-left .name {
        font-size: 22px;
    }
    .access-detail .address .add-left .tel-add {
        margin-bottom: 13px;
    }
}
@media screen and (max-width: 594px) {
    .access-detail .address .add-left {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }
    .access-detail .address .add-left .text {
        width: 100%;
    }
    .access-detail .address .add-right .right {
        padding-left: 16px;
    }
    .alpha-column .alpha-breadcrumb {
        max-width: 100%;
    }
    .alpha-breadcrumb {
        max-width: 89.3%;
    }
}

/* About Us page (当院について) - container, common-title, giving, aboutus */
.index-main .container {
    width: 1000px;
    margin: 0 auto;
}
.index-main .common-title {
    color: #C1A684;
    position: relative;
    margin-bottom: 40px;
    text-align: center;
}
.index-main .common-title h2 {
    font-size: 32px;
    position: relative;
    display: inline-block;
}
.index-main .common-title h2 .color-b {
    color: #414141;
}
.index-main .common-title h2::before,
.index-main .common-title h2::after {
    content: '';
    display: inline-block;
    width: 100px;
    height: 1px;
    background: #C1A684;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
.index-main .common-title h2::before {
    left: -120px;
}
.index-main .common-title h2::after {
    right: -120px;
}
@media screen and (max-width: 594px) {
    .index-main .common-title {
        margin-bottom: 28px;
    }
    .index-main .common-title h2 {
        font-size: 24px;
    }
    .index-main .common-title h2::before,
    .index-main .common-title h2::after {
        width: 60px;
    }
    .index-main .common-title h2::before {
        left: -72px;
    }
    .index-main .common-title h2::after {
        right: -72px;
    }
}
@media screen and (max-width: 594px) {
    .index-main .common-title {
        margin-bottom: 24px;
    }
    .index-main .common-title h2 {
        font-size: 20px;
    }
    .index-main .common-title h2::before,
    .index-main .common-title h2::after {
        width: 48px;
    }
    .index-main .common-title h2::before {
        left: -58px;
    }
    .index-main .common-title h2::after {
        right: -58px;
    }
}
.index-main .giving {
    padding-top: 80px;
}
.index-main .giving::after {
    content: '';
    display: block;
    clear: both;
}
.index-main .giving img {
    width: 100%;
}
.index-main .giving dl {
    margin-bottom: 100px;
    display: flex;
    align-items: center;
    background: #D8CBBB;
    width: 77.78%;
    box-sizing: border-box;
}
.index-main .giving dl.r {
    padding-right: 11.16%;
    float: right;
}
.index-main .giving dl.l {
    flex-direction: row-reverse;
    padding-left: 11.16%;
    float: left;
}
.index-main .giving dt {
    width: 50%;
    flex-shrink: 0;
    position: relative;
    top: -40px;
}
.index-main .giving dl.l dt {
    right: -100px;
}
.index-main .giving dl.r dt {
    left: -100px;
}
.index-main .giving dd {
    position: relative;
    left: -60px;
    line-height: 1.7;
}
.index-main .giving dl.l dd {
    left: auto;
    right: -60px;
}
.aboutus-detail .giving dd .title {
    color: #414141;
    font-size: 32px;
    line-height: 1.7;
}
.aboutus-detail .top-giving {
    position: relative;
}
.aboutus-detail .top-giving dl.l {
    position: static;
    float: none;
    width: 69.44%;
    padding: 60px 40px 60px 29.2%;
    box-sizing: border-box;
    margin-bottom: 120px;
    background: #fff;
}
.aboutus-detail .top-giving dl.l dt {
    width: 41.67%;
    height: 344px;
    background: #D1D1D1;
    position: absolute;
    top: 0;
    right: auto;
    left: 0;
    overflow: hidden;
}
.aboutus-detail .top-giving dl.l dt img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
}
.aboutus-detail .top-giving dl.l dd {
    right: auto;
}
.aboutus-detail .top-giving dd .title {
    font-size: 26px;
    margin-bottom: 19px;
}
.aboutus-detail .facilities {
    margin-top: 20px;
    background: #fff;
    padding: 120px 0;
}
.aboutus-detail .facilities-cont {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2%;
}
.aboutus-detail .facilities-cont a {
    height: 60px;
    line-height: 60px;
    display: block;
    border: 1px solid #414141;
    text-align: center;
    box-sizing: border-box;
    position: relative;
    background: #fff;
    color: #414141;
    flex-shrink: 0;
}
.aboutus-detail .facilities-cont a::after {
    content: '';
    display: block;
    width: 11px;
    height: 11px;
    border-top: 1px solid #414141;
    border-right: 1px solid #414141;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%) rotate(45deg);
}
.aboutus-detail .facilities-cont a.to-booking {
    background: #414141;
    color: #fff;
}
.aboutus-detail .facilities-cont a.to-booking::after {
    border-color: #fff;
}
@media (any-hover: hover) {
    .aboutus-detail .facilities-cont a:not(.to-booking):hover {
        color: #fff;
        background: #414141;
    }
    .aboutus-detail .facilities-cont a:not(.to-booking):hover::after {
        border-color: #fff;
    }
    .aboutus-detail .facilities-cont a.to-booking:hover {
        background: #fff;
        color: #414141;
    }
    .aboutus-detail .facilities-cont a.to-booking:hover::after {
        border-color: #414141;
    }
}
@media screen and (max-width: 1280px) {
    .index-main .container {
        width: 89.33%;
    }
    .index-main .giving dl {
        padding: 20px 0;
    }
    .index-main .giving dl dt {
        top: -60px;
    }
}
@media screen and (max-width: 594px) {
    .aboutus-detail .giving dl.l,
    .aboutus-detail .giving dl.r {
        padding: 0;
        flex-direction: column;
        gap: 20px;
        float: none;
        width: 89.33%;
        margin: 0 auto 80px;
        position: relative;
    }
    .aboutus-detail .giving dl.l dt,
    .aboutus-detail .giving dl.r dt {
        top: -40px;
        width: 100%;
    }
    .aboutus-detail .giving dl.l dt {
        right: -18px;
    }
    .aboutus-detail .giving dl.r dt {
        left: -18px;
    }
    .aboutus-detail .giving dl.l dd,
    .aboutus-detail .giving dl.r dd {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        width: 100%;
        padding: 0 22px;
        box-sizing: border-box;
        padding-bottom: 20px;
    }
    .aboutus-detail .top-giving dl.l dt {
        position: relative;
        right: auto;
        left: -18px;
        height: auto;
        overflow: visible;
    }
    .aboutus-detail .top-giving dl.l dt img {
        width: 100%;
        height: auto;
        object-fit: contain;
        object-position: top center;
    }
    .aboutus-detail .top-giving dd .title {
        font-size: 20px;
    }
    .aboutus-detail .facilities-cont {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
}

/* 共通：ページコンテンツ幅（payment / reservation / 通常ページ） */
.content-detail {
    width: 1000px;
    padding: 0 0 80px;
    margin: 0 auto;
}

/* single 投稿ページ：main-container + sidebar-column レイアウト */
.single-main .single-content-detail {
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 3.7% 80px;
}
.single-main .single-main-container {
    display: flex;
    gap: 20px;
}
.single-main .single-content {
    flex: 1;
    min-width: 0;
}
.single-main .sidebar.sidebar-column {
    display: flex;
    flex-direction: column;
    gap: 30px;
    flex-shrink: 0;
}
.single-main .sidebar-content {
    display: flex;
    flex-direction: column;
}
.single-main .sidebar-content-title {
    width: 240px;
    height: 50px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    background-color: #C1A684;
    color: #fff;
}
.single-main .sidebar-content-title h3 {
    font-size: 22px;
    margin: 0;
    padding: 0 0 0 19px;
}
.single-main .sidebar-content-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 10px 0 0 10px;
}
.single-main .sidebar-content-list-item a,
.single-main .sidebar-content-list .cat-item a {
    font-size: 16px;
    text-decoration: none;
    color: #414141;
    transition: color 0.2s ease;
}
.single-main .sidebar-content-list-item a:hover,
.single-main .sidebar-content-list .cat-item a:hover {
    color: #c1a684;
}
@media screen and (max-width: 767px) {
    .single-main .single-main-container {
        flex-direction: column;
        gap: 32px;
    }
    .single-main .sidebar-content-title {
        width: 100%;
    }
    .single-main .single-content-detail {
        padding-bottom: 60px;
    }
}

/* page_contents_table2 / table3：求人・コンテンツ用テーブル */
.content-detail .scroll,
.art-detail .scroll {
    overflow-x: auto;
    margin-bottom: 24px;
}
.content-detail .page_contents_table2,
.content-detail .page_contents_table3,
.art-detail .page_contents_table2,
.art-detail .page_contents_table3 {
    width: 100%;
    border-collapse: collapse;
    font-size: 16px;
    color: #414141;
}
.content-detail .page_contents_table2 th,
.content-detail .page_contents_table3 th,
.art-detail .page_contents_table2 th,
.art-detail .page_contents_table3 th {
    background: rgba(211, 195, 176, 0.3);
    border: 1px solid #ccc;
    padding: 14px 18px;
    min-width: 140px;
    width: 28%;
    font-weight: 600;
    text-align: left;
    vertical-align: top;
}
.content-detail .page_contents_table2 td,
.content-detail .page_contents_table3 td,
.art-detail .page_contents_table2 td,
.art-detail .page_contents_table3 td {
    border: 1px solid #ccc;
    padding: 14px 18px;
    line-height: 1.7;
    vertical-align: top;
}
@media screen and (max-width: 594px) {
    .content-detail .page_contents_table2 th,
    .content-detail .page_contents_table3 th,
    .art-detail .page_contents_table2 th,
    .art-detail .page_contents_table3 th {
        min-width: 100px;
        width: 32%;
        padding: 12px 14px;
        font-size: 14px;
    }
    .content-detail .page_contents_table2 td,
    .content-detail .page_contents_table3 td,
    .art-detail .page_contents_table2 td,
    .art-detail .page_contents_table3 td {
        padding: 12px 14px;
        font-size: 14px;
    }
}

/* payment page */
.content-detail .contents_base .page_note,
.content-detail .contents_base .page_contents_text {
    margin-bottom: 40px;
    line-height: 1.7;
}
.payment-detail .contents_base img.page_contents_img {
    width: 58.6%;
    max-width: 100%;
    margin-bottom: 7px;
    display: block;
}
@media screen and (max-width: 767px) {
    .payment-detail .contents_base img.page_contents_img {
        width: 100%;
    }
}
.payment-common-part {
    margin-bottom: 40px;
    line-height: 1.7;
}
.payment-common-part.payment-intro .payment-intro-title {
    font-size: 28px;
    font-weight: 600;
    color: #414141;
    text-align: left;
    margin: 0 0 24px;
    padding: 0 0 12px;
    border-left: none;
    border-bottom: 4px solid #C1A684;
    padding-bottom: 12px;
    letter-spacing: 0.08em;
    display: inline-block;
    min-width: 60%;
}
@media screen and (max-width: 594px) {
    .payment-common-part.payment-intro .payment-intro-title {
        font-size: 24px;
        margin-bottom: 20px;
        padding-bottom: 10px;
        border-bottom-width: 3px;
        min-width: 80%;
    }
}
.payment-common-part .card-pic {
    width: 58.6%;
    /* min-width: 100%; */
    margin-bottom: 7px;
}
.payment-common-part .card-pic img {
    width: 100%;
}
.payment-common-part .payment-hold {
    margin-top: 40px;
}
.payment-common-part ul {
    margin: 0.5em 0 1em;
    padding-left: 0;
    list-style: none;
}
.payment-common-part ul li {
    position: relative;
    padding-left: 23px;
    margin-bottom: 0.5em;
}
.payment-common-part ul li::before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    background: #414141;
    position: absolute;
    left: 0;
    top: 0.5em;
    transform: rotate(45deg);
}
.payment-common-part ul li.no-flag::before {
    display: none;
}
.payment-common-part .contact-info a {
    color: #2483D6;
    text-decoration: underline;
}
.payment-common-part .contact-info .contact-line a {
    display: inline;
}
@media screen and (min-width: 769px) {
    .payment-common-part .contact-info .contact-line {
        white-space: nowrap;
    }
}
.payment-common-part .text.spe p {
    position: relative;
    padding-left: 18px;
}
.payment-common-part .text.spe p:not(.no-flag)::before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    background: #414141;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
}
.payment-detail .btn {
    margin-top: 40px;
    text-align: right;
}
.payment-detail .to-price {
    display: inline-block;
    color: #414141;
    width: 200px;
    height: 60px;
    text-align: center;
    line-height: 60px;
    position: relative;
    border: 1px solid #414141;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.payment-detail .to-price:hover {
    background: #414141;
    color: #fff;
    border-color: #414141;
}
.payment-detail .to-price:hover::after {
    border-color: #fff;
}

/* contact page */
.contact-detail .contact-form-content {
    margin-top: 20px;
}
.contact-detail .contact-actions {
    text-align: left;
    margin-top: 24px;
}
.contact-detail .contact-actions .to-price {
    margin-right: 0;
}

.page_note {
    display: flex;
    flex-direction: column;
    gap: 46px;
}
.page_note .center_box {
    text-align: center;
}
.page_note .center_box a {
    display: inline-block;
}
.page_note .wpcf7 {
    background-color: #fff;
    margin: 0;
    padding: 28px 70px 0;
    width: 100%;
}
/* CF7 フォーム：div レイアウト（table から移植） */
.page_note .wpcf7 form .cf7-form {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.page_note .wpcf7 form .cf7-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0;
}
.page_note .wpcf7 form .cf7-label {
    width: 34%;
    flex-shrink: 0;
    text-align: left;
    font-size: 16px;
    letter-spacing: 0.08em;
    padding-top: 11px;
    box-sizing: border-box;
}
.page_note .wpcf7 form .cf7-label b {
    background-color: #D60000;
    font-size: 12px;
    letter-spacing: 0.12em;
    border-radius: 3px;
    padding: 2px 7px;
    color: #fff;
    margin-left: 15px;
}
.page_note .wpcf7 form .cf7-field {
    width: 66%;
    flex: 1 1 66%;
    min-width: 0;
    box-sizing: border-box;
}
/* 単一 input/select の cf7-field：背景・角丸を最初の span のみに適用（counseling・tel・radio は除外） */
.page_note .wpcf7 form .cf7-field:not(.counseling):not(#tel):not(:has(.wpcf7-radio)) {
    background-color: transparent;
    border-radius: 0;
    padding: 0;
}
/* .page_note .wpcf7 form .cf7-field:not(.counseling):not(#tel):not(:has(.wpcf7-radio)) .wpcf7-form-control-wrap:first-of-type {
    background-color: #F8F4EF;
    border-radius: 8px;
    padding: 0 30px 0 0;
} */
.page_note .wpcf7 form .cf7-field:not(.counseling):not(#tel):not(:has(.wpcf7-radio)) .wpcf7-form-control-wrap:first-of-type input,
.page_note .wpcf7 form .cf7-field:not(.counseling):not(#tel):not(:has(.wpcf7-radio)) .wpcf7-form-control-wrap:first-of-type .choices__inner {
    background-color: #F8F4EF;
    border-radius: 8px;
    padding: 0 30px 0 10px;
}
.page_note .wpcf7 form .cf7-field .wpcf7-list-item {
    margin: 0 38px 0 0;
}
.page_note .wpcf7 form .cf7-field .wpcf7-list-item:last-child {
    margin-right: 0;
}
.page_note .wpcf7 form .cf7-field .attention {
    display: block;
    margin-top: 8px;
}

/* CF7 バリデーションエラー：入力框の外側に表示、背景なし、レイアウト崩れ防止 */
.page_note .wpcf7 form .cf7-field {
    position: relative;
}
.page_note .wpcf7 .wpcf7-not-valid-tip {
    margin-top: 6px;
    background: transparent !important;
    border: none !important;
    padding: 0;
    width: auto;
    font-size: 14px;
    line-height: 1.4;
    color: #D60000;
}
.page_note .wpcf7 form .cf7-field#tel .wpcf7-not-valid-tip {
    position: static;
    display: inline-block;
    margin: 6px 6px 0 0;
}
/* wpcf7-radio：30×30 の外円、選択時は中央に 16×16 の #D3C3B0 内円 */
.page_note .wpcf7 .wpcf7-radio input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 30px;
    height: 30px;
    min-width: 30px;
    min-height: 30px;
    border: 2px solid #ccc;
    border-radius: 50%;
    background-color: #fff;
    cursor: pointer;
    vertical-align: middle;
}
.page_note .wpcf7 .wpcf7-radio input[type="radio"]:checked {
    background: radial-gradient(circle at center, #D3C3B0 8px, #fff 8px);
}
.page_note .wpcf7 form .cf7-field select {
    width: 100%;
}
.page_note .wpcf7 form .cf7-field input[type="text"],
.page_note .wpcf7 form .cf7-field input[type="email"],
.page_note .wpcf7 form .cf7-field input[type="tel"],
.page_note .wpcf7 form .cf7-field textarea {
    border: none;
}
.page_note .wpcf7 form .cf7-field input[type="text"]::placeholder,
.page_note .wpcf7 form .cf7-field input[type="email"]::placeholder {
    color: #999;
}
.page_note .wpcf7 form .cf7-field p {
    margin: 0 !important;
}
.page_note .wpcf7 form .cf7-field .wpcf7-form-control-wrap {
    display: flex;
    flex-direction: column;
}
.page_note .wpcf7 form .cf7-field .wpcf7-form-control-wrap input[type="text"],
.page_note .wpcf7 form .cf7-field .wpcf7-form-control-wrap input[type="email"],
.page_note .wpcf7 form .cf7-field .wpcf7-form-control-wrap input[type="number"] {
    min-height: 44px;
    height: 44px;
    line-height: 44px;
    padding: 0 14px;
    margin: 0 !important;
    box-sizing: border-box;
    vertical-align: top;
}
.page_note .wpcf7 form .cf7-field .wpcf7-form-control-wrap.age input {
    width: 100%;
}
/* hopetel を含む span がある cf7-field 内の br を無効化 */
.page_note .wpcf7 form .cf7-field:has([class*="hopetel"]) br {
    display: none;
}

/* #tel 電話番号：各 your-phone に背景・角丸を適用 */
.page_note .wpcf7 form .cf7-field#tel {
    padding: 0;
    background-color: transparent;
    border-radius: 0;
    display: flex;
    flex-wrap: wrap;
}
.page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone1,
.page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone2,
.page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone3 {
    display: flex;
    border-radius: 8px;
    margin: 0 4px 0 0;
}
.page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone3 {
    margin-right: 0;
}
.page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap input[type="tel"] {
    width: 4em;
    min-width: 50px;
    height: 44px;
    min-height: 44px;
    line-height: 44px;
    padding: 0 8px;
    margin: 0 !important;
    font-size: 16px;
    box-sizing: border-box;
    vertical-align: top;
}
.page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone1 input[type="tel"] {
    width: 3.5em;
    min-width: 44px;
}
.page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone2 input[type="tel"],
.page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone3 input[type="tel"] {
    width: 4.5em;
    min-width: 56px;
}
.page_note .wpcf7 form .cf7-field#tel br {
    display: block;
    margin: 0;
    padding: 0;
}
.page_note .wpcf7 form .cf7-field#tel .attention,
.page_note .wpcf7 form .cf7-field:has(.your-email) .attention {
    display: block;
    margin-top: 24px;
    font-size: 14px;
    color: #D60000;
}
/* #tel 内の .attention を改行して一行で表示（flex で横並びにならないように） */
.page_note .wpcf7 form .cf7-field#tel .attention {
    flex-basis: 100%;
    width: 100%;
}
.page_note .wpcf7 form .cf7-field#tel .attention::before,
.page_note .wpcf7 form .cf7-field:has(.your-email) .attention::before {
    content: '※';
}

/* .counseling：日付・時間を横並び（デザイン図に準拠） */
.page_note .wpcf7 form .cf7-field.counseling {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    background: none;
    padding: 0;
    width: 100%;
}
.page_note .wpcf7 form .cf7-field.counseling br {
    display: none;
}
.page_note .wpcf7 form .cf7-field.counseling .wpcf7-form-control-wrap {
    flex: 1 1 auto;
    box-sizing: border-box;
}
/* date1〜date4, time1〜time4：日付・時間フィールドに背景・角丸を適用 */
.page_note .wpcf7 form .cf7-field.counseling .wpcf7-form-control-wrap[class*="date"],
.page_note .wpcf7 form .cf7-field.counseling .wpcf7-form-control-wrap[class*="time"] {
    flex: 0 1 45%;
    background-color: #F8F4EF;
    border-radius: 8px;
    padding: 0 30px 0 0;
}
.page_note .wpcf7 form .cf7-field.counseling .wpcf7-form-control-wrap[class*="time"] {
    flex: 0 1 calc(55% - 12px);
}
.page_note .wpcf7 form .cf7-field.counseling input[type="date"] {
    width: 100%;
    background-color: transparent;
    border: none;
    padding: 7.41px 14px;
    font-size: 16px;
    min-height: 44px;
    box-sizing: border-box;
    text-align: center;
    color: #414141;
}
.page_note .wpcf7 form .cf7-field.counseling input[type="date"]::placeholder {
    color: #999;
}
.page_note .wpcf7 form .cf7-field.counseling .attention {
    width: 100%;
}

/* 送信ボタン：320×60、背景 #414141、白文字 16px weight 700（table 外に配置時用） */
.page_note .wpcf7 form input[type="submit"] {
    width: 320px;
    height: 60px;
    background-color: #414141 !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    margin-top: 50.5px;
    border: none;
}

/* 戻る・送信ボタン行：上下に並べる */
.page_note .wpcf7 form .cf7-field:has(.wpcf7-previous),
.page_note .wpcf7 form .cf7-field:has(.wpcf7-back) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    margin-top: 50.5px;
}
.page_note .wpcf7 form .cf7-field:has(.wpcf7-previous) .ajax-loader,
.page_note .wpcf7 form .cf7-field:has(.wpcf7-back) .ajax-loader {
    order: 10;
}
.page_note .wpcf7 form .cf7-field:has(.wpcf7-previous) input[type="submit"],
.page_note .wpcf7 form .cf7-field:has(.wpcf7-back) input[type="submit"] {
    margin-top: 0;
    width: 100%;
    max-width: 320px;
}
.page_note .wpcf7 form .cf7-field:has(.wpcf7-previous) .wpcf7-previous,
.page_note .wpcf7 form .cf7-field:has(.wpcf7-previous) .wpcf7-back,
.page_note .wpcf7 form .cf7-field:has(.wpcf7-back) .wpcf7-previous,
.page_note .wpcf7 form .cf7-field:has(.wpcf7-back) .wpcf7-back {
    margin-top: 0;
    width: 100%;
    max-width: 320px;
}

/* 戻るボタン（previous）：送信ボタンと同サイズ、枠線スタイルで区別 */
.page_note .wpcf7 form .wpcf7-previous,
.page_note .wpcf7 form .wpcf7-back {
    width: 320px;
    height: 60px;
    background-color: #fff !important;
    color: #414141 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    margin: 50.5px auto 0;
    border: 2px solid #414141;
    cursor: pointer;
}
.page_note .wpcf7 form .wpcf7-previous:hover,
.page_note .wpcf7 form .wpcf7-back:hover {
    background-color: #414141 !important;
    color: #fff !important;
}

/* Choices.js カスタムスタイル（page_note 内 select） */
.page_note .choices {
    width: 100%;
    margin-bottom: 0;
    border: none;
    position: relative;
}
/* 時間選択ドロップダウン：デザイン図（span に背景・角丸、左揃えプレースホルダー、右側 chevron） */
.page_note .choices__inner {
    background-color: #F8F4EF;
    border: none;
    border-radius: 8px;
    padding: 7.41px 14px;
    font-size: 16px;
    min-height: 44px;
    position: relative;
    color: #414141;
}
/* .counseling 内の choices：span の背景を表示（choices__inner は透明） */
.page_note .wpcf7 form .cf7-field.counseling .choices .choices__inner {
    background-color: transparent;
}
.page_note .choices .choices__placeholder {
    color: #999;
}
.page_note .choices__list--dropdown,
.page_note .choices__list[aria-expanded="true"] {
    background-color: #fff;
    border: none;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin-top: 4px;
    z-index: 100;
}
.page_note .choices__list--dropdown .choices__item--choice,
.page_note .choices__list[aria-expanded="true"] .choices__item--choice {
    padding: 10px 14px;
    font-size: 16px;
    color: #414141;
}
.page_note .choices__list--dropdown .choices__item--choice.is-highlighted,
.page_note .choices__list[aria-expanded="true"] .choices__item--choice.is-highlighted {
    background-color: #F8F4EF;
    color: #414141;
}
.page_note .choices[data-type*="select-one"] .choices__inner {
    padding-right: 30px;
}
/* カスタムドロップダウン矢印：17px×8px chevron（inner に配置して開閉時の位置ずれを防止） */
.page_note .choices[data-type*="select-one"] .choices__inner::after {
    content: '';
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 17px;
    height: 8px;
    background-color: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='8' viewBox='0 0 17 8'%3E%3Cpath d='M0 0 L8.5 8 L17 0' stroke='%23414141' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
    background-size: 17px 8px;
    background-repeat: no-repeat;
    background-position: center;
    border: none;
    margin: 0;
}
/* Choices デフォルト矢印を非表示（.choices の ::after） */
.page_note .choices[data-type*="select-one"]::after {
    display: none;
}

.reservation-detail .cps-post-box.hentry {
    background: none;
    box-shadow: none;
    padding: 0;
}
.reservation-section {
    margin-bottom: 40px;
    line-height: 1.7;
}
.reservation-form-notice {
    text-align: center;
    margin: 20px 0 24px;
    line-height: 1.7;
}
.reservation-form-notice p {
    margin: 0 0 0.5em;
}
.reservation-form-notice p:last-child {
    margin-bottom: 0;
}
.reservation-form-notice a {
    display: inline;
    color: #2483D6;
    text-decoration: underline;
}
.payment-detail .to-price::after {
    content: '';
    display: inline-block;
    width: 11px;
    height: 11px;
    border-top: 1px solid #414141;
    border-right: 1px solid #414141;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%) rotate(45deg);
}
@media screen and (max-width: 1280px) {
    .content-detail {
        width: 89.33%;
    }
}

/* page_note フォーム SP 対応（div レイアウト） */
@media screen and (max-width: 594px) {
    .page_note .wpcf7 {
        padding: 28px 16px 0;
    }
    .page_note .wpcf7 form .cf7-form {
        gap: 16px;
    }
    .page_note .wpcf7 form .cf7-row {
        flex-direction: column;
        align-items: stretch;
    }
    .page_note .wpcf7 form .cf7-label {
        width: 100%;
        padding-top: 0;
        padding-bottom: 8px;
        font-size: 14px;
    }
    .page_note .wpcf7 form .cf7-label b {
        font-size: 11px;
        padding: 2px 6px;
        margin-left: 10px;
    }
    .page_note .wpcf7 form .cf7-field {
        width: 100%;
    }
    .page_note .wpcf7 form .cf7-field:not(.counseling):not(#tel):not(:has(.wpcf7-radio)) .wpcf7-form-control-wrap:first-of-type {
        padding: 0 14px 0 0;
    }
    .page_note .wpcf7 form .cf7-field .wpcf7-form-control-wrap input[type="text"],
    .page_note .wpcf7 form .cf7-field .wpcf7-form-control-wrap input[type="email"] {
        min-height: 40px;
        height: 40px;
        line-height: 40px;
        padding: 0 12px;
        font-size: 16px;
    }
    .page_note .wpcf7 form .cf7-field .wpcf7-list-item {
        margin: 0 24px 0 0;
    }
    .page_note .wpcf7 .wpcf7-radio input[type="radio"] {
        width: 26px;
        height: 26px;
        min-width: 26px;
        min-height: 26px;
    }
    .page_note .wpcf7 .wpcf7-radio input[type="radio"]:checked {
        background: radial-gradient(circle at center, #D3C3B0 6px, #fff 6px);
    }
    .page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone1,
    .page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone2,
    .page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone3 {
        margin-right: 2px;
    }
    .page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap input[type="tel"] {
        min-width: 44px;
        height: 40px;
        min-height: 40px;
        line-height: 40px;
        padding: 0 6px;
        font-size: 16px;
    }
    .page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone1 input[type="tel"] {
        min-width: 40px;
    }
    .page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone2 input[type="tel"],
    .page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap.your-phone3 input[type="tel"] {
        min-width: 48px;
    }
    .page_note .wpcf7 form .cf7-field#tel .attention,
    .page_note .wpcf7 form .cf7-field:has(.your-email) .attention {
        font-size: 12px;
        margin-top: 0;
    }
    .page_note .wpcf7 form .cf7-field.counseling .wpcf7-form-control-wrap[class*="date"],
    .page_note .wpcf7 form .cf7-field.counseling .wpcf7-form-control-wrap[class*="time"] {
        flex: 1 1 100%;
        padding: 0 14px 0 0;
    }
    .page_note .wpcf7 form .cf7-field.counseling input[type="date"] {
        min-height: 40px;
    }
    .page_note .choices__inner {
        min-height: 40px;
        padding: 6px 12px;
        font-size: 16px;
    }
    .page_note .wpcf7 form input[type="submit"] {
        width: 100%;
        max-width: 320px;
        height: 52px;
        font-size: 16px !important;
    }
    .page_note .wpcf7 form .cf7-field:has(.wpcf7-previous),
    .page_note .wpcf7 form .cf7-field:has(.wpcf7-back) {
        margin-top: 40px;
    }
    .page_note .wpcf7 form .wpcf7-previous,
    .page_note .wpcf7 form .wpcf7-back {
        height: 52px;
    }
}
@media screen and (max-width: 594px) {
    .page_note .wpcf7 {
        padding: 20px 12px 0;
    }
    .page_note .wpcf7 form .cf7-form {
        gap: 12px;
    }
    .page_note .wpcf7 form .cf7-label {
        font-size: 13px;
    }
    .page_note .wpcf7 form .cf7-field .wpcf7-form-control-wrap input[type="text"],
    .page_note .wpcf7 form .cf7-field .wpcf7-form-control-wrap input[type="email"] {
        min-height: 44px;
        height: 44px;
        line-height: 44px;
    }
    .page_note .wpcf7 form .cf7-field#tel .wpcf7-form-control-wrap input[type="tel"] {
        height: 44px;
        min-height: 44px;
        line-height: 44px;
    }
    .page_note .wpcf7 form input[type="submit"] {
        height: 48px;
    }
    .page_note .wpcf7 form .wpcf7-previous,
    .page_note .wpcf7 form .wpcf7-back {
        height: 48px;
    }
}

@media screen and (max-width: 594px) {
    .content-detail {
        padding-bottom: 60px;
    }
    .payment-common-part .card-pic {
        width: 100%;
    }
}
