:root{--pink:#e95b87;--deep:#164d82;--green:#43886b;--ink:#242424;--soft:#fff5f8;--line:#f1dbe3;--max:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Hiragino Maru Gothic ProN","Hiragino Maru Gothic Pro","Yu Gothic","Meiryo",sans-serif;font-size:18px;line-height:1.9;background:#fff}a{color:inherit}img{max-width:100%;height:auto;display:block}.wrap{width:min(var(--max),calc(100% - 36px));margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:74px;gap:24px}.brand{display:flex;align-items:center;text-decoration:none;font-weight:800;color:var(--pink);font-size:1.5rem}.brand img{width:52px;margin-right:9px}.nav{display:flex;gap:22px;font-size:.92rem}.nav a{text-decoration:none}.nav a:hover{color:var(--pink)}.hero{background:#fff}.hero-inner{width:min(1200px,100%);margin:0 auto}.hero img{width:100%;height:auto;max-height:none;object-fit:contain}.breathing-space{height:72px}.intro{text-align:center;padding:0 0 48px}.intro h1,.section-title{color:var(--pink);letter-spacing:.04em}.intro h1{font-size:clamp(1.65rem,4vw,2.45rem);margin:.2em 0}.lead{max-width:720px;margin:0 auto;font-size:1.05rem}.section{padding:64px 0}.section.soft{background:var(--soft)}.section-title{text-align:center;font-size:clamp(1.5rem,3vw,2rem);margin:0 0 34px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 8px 26px rgba(80,40,55,.06)}.card-body{padding:20px}.card h3{margin:0 0 8px;color:var(--deep);font-size:1.25rem}.button{display:inline-block;margin-top:10px;padding:10px 20px;border-radius:999px;background:var(--pink);color:#fff;text-decoration:none;font-weight:700}.price-grid,.reserve-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;max-width:820px;margin:auto}.price,.reserve{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;text-align:center}.price strong{display:block;color:var(--pink);font-size:1.8rem}.reserve-grid{grid-template-columns:repeat(4,1fr);max-width:none}.reserve{text-decoration:none;font-weight:700}.reserve small{display:block;font-weight:400}.profile-teaser{display:grid;grid-template-columns:1.3fr .7fr;gap:34px;align-items:center}.profile-box{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px}.profile-box h3{color:var(--pink);font-size:1.5rem;margin-top:0}.footer{padding:36px 0;background:#fff0f4;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1fr 2fr;gap:30px}.footer-brand{display:flex;align-items:center;color:var(--pink);font-weight:800;font-size:1.45rem}.footer-brand img{width:64px;margin-right:10px}.page-head{padding:58px 0;background:var(--soft);text-align:center}.page-head h1{color:var(--pink);margin:0}.profile-main{max-width:820px;margin:auto}.profile-main h2{color:var(--deep);border-left:5px solid var(--pink);padding-left:12px;margin-top:44px}.timeline{border-left:2px solid #f0b5c7;padding-left:24px}.timeline p{margin:0 0 14px}.note{font-size:.9rem;color:#666}@media(max-width:800px){.nav{display:none}.cards,.reserve-grid{grid-template-columns:1fr}.price-grid{grid-template-columns:1fr 1fr}.profile-teaser,.footer-grid{grid-template-columns:1fr}.breathing-space{height:48px}.section{padding:48px 0}.hero img{object-fit:contain}.header-inner{min-height:64px}.brand{font-size:1.25rem}}@media(max-width:520px){.price-grid{grid-template-columns:1fr}.wrap{width:min(var(--max),calc(100% - 24px))}.breathing-space{height:36px}}

.social-links{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.social-links a{min-width:110px;text-align:center;padding:9px 18px;border-radius:999px;background:#fff;color:var(--deep);text-decoration:none;font-weight:700;border:1px solid var(--line)}.social-links a:hover{color:var(--pink);border-color:#efabc0}.access-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:start}.access-layout h2{color:var(--pink);margin-top:0}.map-frame{border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 8px 26px rgba(80,40,55,.06)}.map-frame iframe{display:block;width:100%;height:480px;border:0}@media(max-width:800px){.access-layout{grid-template-columns:1fr}.map-frame iframe{height:380px}}

p,li,.card-body,.profile-main,.footer{color:#242424}.note{color:#444;font-size:1rem}
.nav{align-items:center;flex-wrap:wrap}.nav a{color:#333;font-weight:700}
.social-section{padding:54px 0;background:#fff;border-top:1px solid var(--line)}
.social-intro{text-align:center;max-width:720px;margin:0 auto 18px;color:#333}
.social-section .social-links{border-top:0;padding-top:0;margin-top:18px}
.social-section .social-links a{background:#fff5f8;color:#333;font-size:1rem}
.footer a{color:#333;font-weight:700}
.profile-photo{max-width:620px;margin:36px auto 46px}.profile-photo img{width:100%;border-radius:18px;box-shadow:0 8px 28px rgba(80,40,55,.12)}.profile-photo figcaption{text-align:center;margin-top:10px;color:#555;font-size:.95rem}.center-action{text-align:center;margin-top:26px}
@media(max-width:800px){body{font-size:17px}.nav{display:flex;overflow-x:auto;flex-wrap:nowrap;gap:16px;padding:8px 0;white-space:nowrap;font-size:.88rem}.header-inner{align-items:flex-start;flex-direction:column;gap:0;padding:8px 0}.brand{align-self:flex-start}}

/* v5: トップ導入文・プロフィール本文の可読性を強化 */
.lead,
.intro p,
.profile-main p,
.profile-main li,
.profile-main .profile-text {
    font-size: 19px;
    font-weight: 600;
    line-height: 1.9;
    color: #222;
    letter-spacing: 0.01em;
}

/* トップページの導入部分 */
.hero + .section p,
.hero + section p {
    font-size: 19px;
    font-weight: 600;
    line-height: 1.9;
    color: #222;
}

/* プロフィールの経歴・説明文も同じ読みやすさに */
.profile-main {
    font-size: 19px;
    line-height: 1.9;
}
.profile-main p {
    margin-bottom: 1.35em;
}

@media (max-width: 800px) {
    .lead,
    .intro p,
    .profile-main,
    .profile-main p,
    .profile-main li,
    .profile-main .profile-text,
    .hero + .section p,
    .hero + section p {
        font-size: 18px;
        font-weight: 600;
        line-height: 1.85;
    }
}

/* v6: サイト内の細かな文字も含め、通常文字を太く濃く統一 */
body,
p,
li,
a,
span,
strong,
small,
figcaption,
address,
.card-body,
.profile-main,
.profile-main p,
.profile-main li,
.profile-main span,
.profile-main strong,
.profile-main figcaption,
.footer,
.footer p,
.footer a,
.note,
.price,
.price span,
.social-intro,
.social-links a,
.access-info,
.access-info p,
.contact-box,
.contact-box p,
.brand,
.brand-text {
    color: #222;
    font-weight: 600;
}

/* 小さく設定されていた補足文字も読みやすい大きさへ */
small,
.note,
figcaption,
.price span,
.footer,
.footer p,
.footer a,
.social-intro,
.access-info,
.access-info p {
    font-size: 17px;
    line-height: 1.8;
}

/* 氏名・資格などプロフィール内の文字を明瞭に */
.profile-main strong,
.profile-main .name,
.profile-main h1,
.profile-main h2,
.profile-main h3 {
    font-weight: 700;
}

/* メニューはこれまで通りはっきり */
.nav a {
    font-weight: 700;
}

/* ピンク系の見出し色は既存設定を優先 */
.section-title,
h1,
h2,
h3 {
    font-weight: 700;
}

/* ボタン文字 */
.button,
.btn,
.contact-buttons a {
    font-weight: 700;
}

@media (max-width: 800px) {
    small,
    .note,
    figcaption,
    .price span,
    .footer,
    .footer p,
    .footer a,
    .social-intro,
    .access-info,
    .access-info p {
        font-size: 16px;
    }
}


/* v7: スマートフォン用ハンバーガーメニュー */
.menu-toggle {
    display: none;
    width: 48px;
    height: 48px;
    padding: 10px;
    border: 0;
    border-radius: 10px;
    background: #fff5f8;
    cursor: pointer;
    position: absolute;
    right: 16px;
    top: 12px;
    z-index: 1002;
}
.menu-toggle span {
    display: block;
    width: 26px;
    height: 3px;
    margin: 5px auto;
    border-radius: 3px;
    background: #333;
    transition: transform .25s ease, opacity .25s ease;
}

@media (max-width: 800px) {
    .header-inner {
        position: relative;
        display: flex;
        flex-direction: row;
        align-items: center;
        min-height: 72px;
        padding-right: 76px;
    }

    .menu-toggle {
        display: block;
    }

    .nav {
        display: none;
        position: absolute;
        top: 72px;
        left: 0;
        right: 0;
        z-index: 1001;
        background: #fff;
        border-top: 1px solid #eee;
        border-bottom: 1px solid #e5e5e5;
        box-shadow: 0 8px 18px rgba(0,0,0,.08);
        padding: 8px 18px 16px;
        overflow: visible;
        white-space: normal;
    }

    .nav.is-open {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .nav a {
        display: block;
        width: 100%;
        padding: 14px 6px;
        border-bottom: 1px solid #f0e4e8;
        color: #222;
        font-size: 17px;
        font-weight: 700;
    }

    .nav a:last-child {
        border-bottom: 0;
    }

    /* 開いた時は三本線を×印に */
    .menu-toggle.is-open span:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }
    .menu-toggle.is-open span:nth-child(2) {
        opacity: 0;
    }
    .menu-toggle.is-open span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }
}
.online-consult{max-width:760px;margin:28px auto;padding:22px 26px;background:#fff5f8;border-radius:16px;text-align:center}.online-consult p{margin:6px 0;color:#222;font-size:18px;font-weight:600;line-height:1.8}.online-consult h3{margin:0 0 10px;color:#e76583;font-size:21px;font-weight:700}.price-grid{justify-content:center}.language-switch{display:flex;gap:4px;align-items:center;margin-left:auto;margin-right:12px}.language-switch a,.language-switch span{padding:7px 12px;border-radius:999px;font-size:15px;font-weight:700;text-decoration:none}.language-switch .active{background:#ef7792;color:#fff}.language-switch a{background:#fff5f8;color:#222}.map-wrap iframe{width:100%;height:480px;border:0;border-radius:16px}@media(max-width:800px){.language-switch{margin-left:auto;margin-right:58px}.language-switch a,.language-switch span{padding:6px 9px;font-size:13px}.map-wrap iframe{height:360px}}
/* v11 bilingual alignment and page-preserving language switch */
.page-title-band{
    background:#fff0f4;
    border-top:1px solid #f8dce4;
    border-bottom:1px solid #f8dce4;
    padding:24px 0;
    text-align:center;
}
.page-title-band h1{
    margin:0;
    color:#e76583;
    font-size:30px;
    font-weight:700;
}
html[lang="en"] .hero-image{
    width:100%;
    max-width:1180px;
    margin-left:auto;
    margin-right:auto;
}
html[lang="en"] .hero-image img{
    display:block;
    width:100%;
    height:auto;
    margin:0 auto;
}
html[lang="en"] .contact-buttons{
    display:flex;
    justify-content:center;
    align-items:stretch;
    flex-wrap:wrap;
    gap:14px;
    max-width:900px;
    margin-left:auto;
    margin-right:auto;
}
html[lang="en"] .contact-buttons .button{
    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
}
html[lang="en"] .social-links{
    justify-content:center;
}
@media(max-width:800px){
    .page-title-band{padding:18px 0}
    .page-title-band h1{font-size:25px}
    html[lang="en"] .contact-buttons{flex-direction:column}
    html[lang="en"] .contact-buttons .button{width:100%}
}

/* v12: English profile title and name share the same pink background */
.page-title-band .page-title-name {
    margin: 7px 0 0;
    color: #222;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.5;
}
@media(max-width:800px){
    .page-title-band .page-title-name {
        font-size: 19px;
    }
}

/* v13: English fee sections aligned like Japanese pages */
html[lang="en"] #fee .wrap,
html[lang="en"] .profile-main .price-grid,
html[lang="en"] .profile-main .online-consult,
html[lang="en"] .profile-booking-action {
    text-align: center;
}

html[lang="en"] #fee .price-grid,
html[lang="en"] .profile-main .price-grid {
    display: flex;
    justify-content: center !important;
    align-items: stretch;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

html[lang="en"] #fee .price,
html[lang="en"] .profile-main .price {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

html[lang="en"] #fee .online-consult,
html[lang="en"] .profile-main .online-consult {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

html[lang="en"] .profile-booking-action {
    margin: 28px auto 0;
}

html[lang="en"] .profile-booking-action .button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}
