/* 料金表専用スタイル。既存サイトの見出し・段落スタイルには影響しません。 */
.treatment-menu {
    --accent:#e85a12;
    box-sizing:border-box;
    max-width:1015px;
    margin:0 auto;
    padding:18px 16px 35px;
    font-family:"Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    color:#303030;
    font-size:16px;
    line-height:1.65;
    background:#fff;
}
.treatment-menu *, .treatment-menu *::before, .treatment-menu *::after {
    box-sizing:border-box;
}
.treatment-menu h2, .treatment-menu h3, .treatment-menu h4, .treatment-menu p {
    margin:0;
    padding:0;
    border:0;
    background:none;
    line-height:inherit;
}
.treatment-menu .menu-title {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    color:var(--accent);
    font-size:clamp(23px,3.4vw,37px);
    font-weight:800;
    text-align:center;
    margin:0 0 23px;
}
.treatment-menu .menu-title::before,.treatment-menu .menu-title::after {
    content:"";
    height:1px;
    width:85px;
    max-width:12%;
    background:linear-gradient(90deg,transparent,#e86b35);
}
.treatment-menu .menu-title::after {
    transform:rotate(180deg);
}
.treatment-menu .initial-fee {
    padding:19px 24px 20px;
    border:1px solid #f5cba9;
    border-radius:16px;
    background:#fff8f2;
    margin-bottom:18px;
}
.treatment-menu .initial-heading {
    display:flex;
    flex-wrap:wrap;
    gap:10px 25px;
    align-items:center;
    margin-bottom:8px;
    padding-left:18px;
    border-left:7px solid var(--accent);
}
.treatment-menu .initial-heading h3 {
    font-size:26px;
    font-weight:800;
    color:#33251f;
}
.treatment-menu .initial-amount {
    font-size:39px;
    color:var(--accent);
    line-height:1.1;
    white-space:nowrap;
}
.treatment-menu .initial-amount small, .treatment-menu .price small {
    font-size:.47em;
}
.treatment-menu .initial-fee p {
    margin-left:24px;
}
.treatment-menu .menu-group {
    --group:#3b7853;
    --soft:#f2faf1;
    --border:#cde9cb;
    margin:18px 0;
    padding:14px 13px 13px;
    border:1px solid var(--border);
    border-radius:16px;
    background:var(--soft);
}
.treatment-menu .menu-group--whole {
    --group:#175785;
    --soft:#f0f9ff;
    --border:#b7e0fa;
}
.treatment-menu .group-header {
    display:flex;
    align-items:center;
    gap:13px;
    margin:0 6px 13px;
    color:var(--group);
}
.treatment-menu .group-mark {
    position:relative;
    width:40px;
    height:40px;
    border-radius:50%;
    background:#3c8452;
    flex:0 0 40px;
}
.treatment-menu .group-mark::before {
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:16px;
    height:16px;
    background:#fff;
    border-radius:50%;
    transform:translate(-50%, -50%);
}
.treatment-menu .group-header h3 {
    font-size:27px;
    font-weight:800;
    white-space:nowrap;
}
.treatment-menu .group-header p {
    font-size:15px;
    margin-left:auto;
    color:var(--group);
    text-align:right;
}
.treatment-menu .course-list {
    display:grid;
    gap:12px;
}
.treatment-menu .course-card {
    padding:14px 12px;
    background:#fff;
    border:1px solid var(--border);
    border-radius:15px;
    box-shadow:0 3px 9px rgba(0,0,0,.035);
}
.treatment-menu .course-icon {
    width:72px;
    height:72px;
    object-fit:contain;
}
.treatment-menu .course-heading h4 {
    min-width:0;
    font-size:30px;
    font-weight:800;
    color:var(--group);
    line-height:1.3;
	margin-left: 10px;
}
.treatment-menu .course-body p {
    min-width:0;
    font-size:13px;
    line-height:1.55;
}

.treatment-menu .course-details {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex-shrink:0;
	
    border-left: 1px dashed #c5d1cc;
    padding-left: 18px;
}
.treatment-menu .duration {
    display:flex;
    align-items:center;
    gap:4px;
    color:var(--group);
    font-size:28px;
    font-weight:800;
    white-space:nowrap;
}
.treatment-menu .clock {
    display:inline-block;
    position:relative;
    width:20px;
    height:20px;
    border:2px solid currentColor;
    border-radius:50%;
    flex-shrink:0;
}
.treatment-menu .clock::before {
    content:"";
    position:absolute;
    width:2px;
    height:6px;
    top:3px;
    left:7px;
    background:currentColor;
}
.treatment-menu .clock::after {
    content:"";
    position:absolute;
    width:6px;
    height:2px;
    top:9px;
    left:7px;
    background:currentColor;
    transform:rotate(35deg);
    transform-origin:left center;
}
.treatment-menu .price {
    display:block;
    padding:4px 20px;
    min-width:100px;
    text-align:center;
    background:var(--soft);
    border-radius:22px;
    color:var(--accent);
    font-size:35px;
    font-weight:800;
    line-height:1.3;
    white-space:nowrap;
}
.treatment-menu .menu-notes {
    margin-top:18px;
    border:1px solid #f0d388;
    border-radius:15px;
    background:#fffaf0;
    padding:15px 20px 18px;
}
.treatment-menu .menu-notes h3 {
    display:flex;
    align-items:center;
    gap:12px;
    color:#7b2f11;
    font-size:25px;
    font-weight:800;
    margin-bottom:8px;
}
.treatment-menu .notes-mark {
    display:inline-grid;
    place-items:center;
    width:34px;
    height:34px;
    border-radius:50%;
    background:var(--accent);
    color:#fff;
    font-weight:900;
}
.treatment-menu .menu-notes ul {
    margin:0;
    padding-left:28px;
}
.treatment-menu .menu-notes li {
    padding:1px 0 1px 4px;
}
.treatment-menu .menu-notes li::marker {
    color:var(--accent);
}

/* コース情報：上段に名称・時間・料金、下段に画像・説明 */
.treatment-menu .course-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:-5px;
}
.treatment-menu .course-body {
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    align-items:center;
    gap:14px;
}
/* 既存サイトの共通header指定（固定高さ）を打ち消す */
.treatment-menu .group-header {
    height:auto;
    min-height:0;
}
.treatment-menu .course-heading {
    height:auto;
    min-height:0;
}
/* 初回料の＋の大きさと位置 */
.treatment-menu .price-plus {
    font-size:.65em;
    vertical-align:.15em;
}

@media (max-width:900px) {
    .treatment-menu .group-header {
        flex-wrap:wrap;
    }
    .treatment-menu .group-header p {
        flex-basis:100%;
        text-align:left;
        margin-left:0;
    }
}
@media (max-width:520px) {
    .treatment-menu {
        padding:14px 10px;
        font-size:14px;
    }
    .treatment-menu .initial-fee {
        padding:15px;
    }
    .treatment-menu .initial-fee p {
        margin-left:0;
    }
    .treatment-menu .initial-heading h3 {
        font-size:21px;
    }
    .treatment-menu .initial-amount {
        font-size:29px;
    }
    .treatment-menu .group-header h3 {
        font-size:22px;
    }
    .treatment-menu .course-heading {
        flex-wrap:wrap;
    }
    .treatment-menu .course-heading h4 {
        font-size:20px;
    }
    .treatment-menu .course-details {
        margin-left:auto;
    }
    .treatment-menu .course-body {
        grid-template-columns:64px minmax(0,1fr);
        gap:10px;
    }
    .treatment-menu .course-icon {
        width:64px;
        height:64px;
    }
    .treatment-menu .course-body p {
        font-size:14px;
    }
    .treatment-menu .menu-notes {
        padding:14px;
    }
}
