*{box-sizing:border-box}
body{margin:0;font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:#2f2a2a;background:#fff;font-size:18px;line-height:1.9;letter-spacing:.03em}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2{margin:0}
p{margin:0}
.wrap{max-width:1120px;margin:0 auto;padding-left:24px;padding-right:24px}
.head{position:relative;z-index:3;background:#fff;border-bottom:3px solid #e0668c}
.head .wrap{padding-top:14px;padding-bottom:14px;display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between}
.logo{font-size:24px;font-weight:700;line-height:1.3}
.logo small{display:block;font-size:13px;font-weight:400;color:#5e5555}
.gnav{display:flex;flex-wrap:wrap;gap:8px 28px;font-size:16px;font-weight:600}
.tel-btn{background:#c24773;color:#fff;font-weight:800;font-size:20px;padding:10px 20px;border-radius:10px;white-space:nowrap}
.hero{position:relative;min-height:600px;display:flex;align-items:center;overflow:hidden;background:#fdeff3}
.hero-img{position:absolute;right:0;top:0;width:58%;height:100%;object-fit:cover;object-position:center 30%}
.hero-grad{position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(90deg,#fdeff3 0%,#fdeff3 41%,rgba(253,239,243,0) 50%)}
.hero-body{position:relative;width:100%;padding-top:72px;padding-bottom:72px}
.hero-in{max-width:440px}
.badge{display:inline-block;background:#fff;color:#c24773;font-weight:700;font-size:16px;padding:4px 16px;border-radius:999px;border:2px solid #e0668c}
.h1{margin:20px 0 0;font-size:clamp(32px,4.4vw,48px);line-height:1.5;font-weight:800}
.lead{margin-top:18px;font-size:19px}
.callbox{margin-top:28px;background:#fff;border:3px solid #e0668c;border-radius:16px;padding:16px 24px;display:inline-block}
.callbox .k{font-size:15px;font-weight:700;color:#c24773}
.tel-big{display:block;font-weight:800;line-height:1.3;white-space:nowrap}
.callbox .tel-big{font-size:clamp(30px,8vw,42px);color:#c24773}
.callbox .t{font-size:15px;color:#5e5555}
.sec{padding-top:88px}
h2.t2{text-align:center;font-size:34px;line-height:1.5}
.bar{width:64px;height:4px;background:#e0668c;border-radius:2px;margin:12px auto 0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:40px}
.cond{background:#fff8fa;border:2px solid #f0d3dd;border-radius:20px;padding:28px}
.no{width:52px;height:52px;border-radius:50%;background:#e0668c;color:#fff;font-weight:800;font-size:26px;display:flex;align-items:center;justify-content:center}
.cond b{display:block;margin-top:14px;font-size:22px}
.cond p{margin-top:6px;font-size:17px;color:#5e5555}
.center-note{margin-top:20px;text-align:center;font-size:16px;color:#5e5555}
.greet{display:flex;flex-wrap:wrap;gap:40px;align-items:center;padding-top:96px}
.greet .ph{flex:1 1 440px;position:relative}
.greet .ph::before{content:"";position:absolute;left:-16px;top:-16px;right:16px;bottom:16px;background:#fdeff3;border-radius:28px}
.greet .ph img{position:relative;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:24px}
.greet .tx{flex:1 1 440px}
.greet .lb{font-size:16px;font-weight:700;color:#c24773}
.greet h2{margin-top:4px;font-size:clamp(26px,3.4vw,34px);line-height:1.5}
.greet p{margin-top:18px}
.greet p+p{margin-top:12px}
.greet .name{margin-top:14px;font-size:17px;font-weight:700}
.menu{margin-top:96px;background:#fff8fa;padding:88px 0}
.cols{display:flex;flex-wrap:wrap;gap:32px;margin-top:44px;align-items:stretch}
.box{flex:1 1 380px;background:#fff;border-radius:20px;overflow:hidden;border:2px solid #f0d3dd}
.box img{width:100%;height:200px;object-fit:cover}
.box .hd{background:#e0668c;color:#fff;font-weight:700;font-size:20px;padding:14px 24px}
.box .rows{padding:8px 24px 20px}
.row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #f0d3dd}
.row:last-child{border-bottom:0}
.note{margin-top:20px;font-size:15px;color:#5e5555}
.more{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:40px}
.more div{background:#fff;border:2px solid #f0d3dd;border-radius:20px;padding:24px 20px}
.more b{font-size:19px;}
.more p{margin-top:6px;font-size:16px;color:#5e5555}
.contact{position:relative;overflow:hidden;min-height:520px;display:flex;align-items:center}
.contact>img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;max-width:none}
.c-grad{position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(90deg,rgba(194,71,115,.92) 0%,rgba(194,71,115,.82) 45%,rgba(194,71,115,.2) 100%)}
.c-body{position:relative;width:100%;padding-top:72px;padding-bottom:72px;color:#fff}
.c-in{max-width:520px}
.c-in h2{font-size:clamp(26px,3.6vw,36px);line-height:1.5}
.c-in .tel-big{margin-top:16px;font-size:clamp(34px,10vw,52px)}
.c-in p{margin-top:4px;font-size:16px}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.btn-w{background:#fff;color:#c24773;font-weight:800;font-size:20px;padding:14px 28px;border-radius:12px}
.btn-o{border:2px solid #fff;color:#fff;font-weight:700;font-size:20px;padding:12px 28px;border-radius:12px}
footer{background:#2f2a2a;color:#fff;padding:36px 24px;font-size:15px;text-align:center;line-height:2}
footer b{font-size:18px}
footer a{text-decoration:underline}
@media (max-width:760px){
.hero{display:block;min-height:0}
.hero-img{position:static;width:100%;height:240px}
.hero-grad{display:none}
.hero-body{padding-top:28px;padding-bottom:40px}
.c-grad{background:rgba(194,71,115,.88)}
.sec{padding-top:64px}
}

.crumb{font-size:14px;color:#5e5555;margin-bottom:8px}
.crumb a{text-decoration:underline}
.pg-hero{background:#fdeff3;padding:40px 0 32px}
.pg-hero h1{font-size:clamp(28px,4vw,40px);font-weight:800;line-height:1.5}
.pg{padding-top:56px}
.pg p+.cols{margin-top:28px}
.cols.one{flex-direction:column;gap:28px}
.cols.one .box{flex:1 1 auto}
.box .hd{margin:0}
.in-note{padding:0 24px 20px;margin-top:8px}
.svc .in{padding:16px 24px 0}
.eff-t{font-weight:700;color:#c24773;margin:0}
ul.eff{margin:6px 0 12px;padding-left:1.3em}
ul.eff li{margin:2px 0}
ul.eff.big{font-size:18px}
.t3{font-size:24px;line-height:1.5;margin:44px 0 12px;padding-left:14px;border-left:6px solid #e0668c}
.pg .t3:first-child{margin-top:0}
.dl{margin:0}
.dl>div{display:flex;flex-wrap:wrap;gap:4px 24px;padding:14px 0;border-bottom:1px solid #f0d3dd}
.dl dt{flex:0 0 140px;font-weight:700;color:#c24773}
.dl dd{flex:1 1 260px;margin:0}
.lk{color:#c24773;text-decoration:underline;font-weight:600}
.prose p{margin-top:8px}
.cta{margin-top:96px;background:#c24773;color:#fff;padding:64px 0;text-align:center}
.cta h2{font-size:clamp(24px,3.4vw,32px);line-height:1.5}
.cta .tel-big{margin:12px auto 0;font-size:clamp(34px,10vw,52px)}
.cta p{margin-top:4px;font-size:16px}
.cta .btns{justify-content:center}
.head .gnav a{padding:4px 0}
footer a{margin:0 6px}
footer small{opacity:.8}
.head .wrap{max-width:1200px;gap:10px 16px}
.head .gnav{gap:6px 18px;font-size:15px}
.head .tel-btn{font-size:17px;padding:10px 16px}
.row b{white-space:nowrap;flex:none}
.row span{min-width:0}
.prod{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;padding:20px 24px}
.prod img{width:121px;height:121px;border-radius:12px;border:1px solid #f0d3dd;flex:none}
.prod>div{flex:1 1 260px}
.prod p+p{margin-top:8px}
.pv{background:#fff8fa;padding:48px 0 8px;margin-top:0}
.pv-wrap{max-width:820px;margin:0 auto;padding:0 24px}
.pv-lead{background:#fff;border:2px solid #e0668c;border-radius:16px;padding:20px 24px;font-size:20px;font-weight:700;line-height:1.7;text-align:center}
.pv-item{display:flex;gap:20px;align-items:flex-start;background:#fff;border:2px solid #f0d3dd;border-radius:20px;padding:26px 28px;margin-top:20px}
.pv-no{flex:none;width:48px;height:48px;border-radius:50%;background:#e0668c;color:#fff;font-weight:800;font-size:24px;display:flex;align-items:center;justify-content:center}
.pv-body{flex:1;min-width:0}
.pv-body h2{font-size:22px;line-height:1.5;margin:6px 0 10px}
.pv-body p{font-size:17px;margin:0}
.pv-body p+p{margin-top:10px}
.pv-tags,.pv-list{list-style:none;margin:12px 0 0;padding:0}
.pv-tags{display:flex;flex-wrap:wrap;gap:8px}
.pv-tags li{background:#fdeff3;color:#8a2f52;border-radius:999px;padding:2px 16px;font-size:16px;font-weight:600}
.pv-list li{position:relative;padding:8px 0 8px 22px;border-bottom:1px solid #f0d3dd;font-size:17px}
.pv-list li:last-child{border-bottom:0}
.pv-list li::before{content:"";position:absolute;left:2px;top:19px;width:9px;height:9px;border-radius:50%;background:#e0668c}
.pv-last{background:#fdeff3;border-color:#e0668c}
.pv-tel a{font-size:30px;font-weight:800;color:#c24773;line-height:1.5}
.pv-date{text-align:right;font-size:14px;color:#5e5555;margin:20px 0 0;padding-bottom:24px}
@media (max-width:760px){.pv-item{flex-direction:column;gap:8px;padding:22px 20px}.pv-lead{font-size:18px;text-align:left}.pv{padding-top:32px}}
.pv-lead,.pv-body p{}.pv-lead{}

.flow{padding-top:88px}
.flow-list{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.flow-step{position:relative;background:#fff;border:2px solid #f0d3dd;border-radius:20px;padding:30px 22px 26px;text-align:center}
.flow-step:not(:last-child)::after{content:"";position:absolute;right:-24px;top:50%;width:18px;height:18px;margin-top:-9px;border-top:5px solid #e0668c;border-right:5px solid #e0668c;transform:rotate(45deg)}
.flow-no{position:absolute;left:50%;top:-18px;transform:translateX(-50%);background:#c24773;color:#fff;font-weight:800;font-size:16px;padding:2px 16px;border-radius:999px}
.flow-ic{width:76px;height:76px;border-radius:50%;background:#fdeff3;display:flex;align-items:center;justify-content:center;margin:6px auto 0}
.flow-ic svg{width:38px;height:38px;fill:none;stroke:#c24773;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.flow-step h3{margin:14px 0 0;font-size:21px;line-height:1.5}
.flow-step p{margin:8px 0 0;font-size:16px;color:#5e5555;text-align:left}
.flow-cta{margin-top:36px;text-align:center}
.flow-cta a.big{display:inline-block;background:#c24773;color:#fff;font-weight:800;font-size:clamp(22px,5vw,30px);padding:14px 36px;border-radius:14px}
.flow-cta p{margin-top:8px;font-size:15px;color:#5e5555}
@media (max-width:1000px){.flow-list{grid-template-columns:repeat(2,1fr)}.flow-step:nth-child(2)::after{display:none}}
@media (max-width:620px){.flow{padding-top:64px}.flow-list{grid-template-columns:1fr;gap:34px}.flow-step:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:-27px;margin:0 0 0 -9px;transform:rotate(135deg)}.flow-step:nth-child(2)::after{display:block}}


/* ハンバーガー（1100px以下） */
.menu-btn{display:none;width:48px;height:48px;border:2px solid #c24773;border-radius:10px;background:#fff;cursor:pointer;padding:0;flex:none;position:relative}
.menu-btn span{position:absolute;left:11px;right:11px;height:3px;border-radius:2px;background:#c24773;transition:transform .2s,opacity .2s}
.menu-btn span:nth-child(1){top:14px}.menu-btn span:nth-child(2){top:21px}.menu-btn span:nth-child(3){top:28px}
.hd-right{display:flex;align-items:center;gap:10px}
.head.open .menu-btn span:nth-child(1){top:21px;transform:rotate(45deg)}
.head.open .menu-btn span:nth-child(2){opacity:0}
.head.open .menu-btn span:nth-child(3){top:21px;transform:rotate(-45deg)}
@media (max-width:1100px){
.head .wrap{flex-wrap:wrap;align-items:center;justify-content:space-between}
.logo{order:1}
.hd-right{order:2}
.menu-btn{display:block}
.head .gnav{order:3;flex:0 0 100%;display:none;flex-direction:column;gap:0;font-size:18px;margin-top:4px;border-top:2px solid #f0d3dd}
.head.open .gnav{display:flex}
.head .gnav a{padding:15px 4px;border-bottom:1px solid #f0d3dd}
.head .tel-btn{font-size:16px;padding:10px 14px}
}
/* スマホ: 一番下に予約の電話を出し続ける */
.fix-call{display:none}
@media (max-width:760px){
.head .tel-btn{display:none}
.fix-call{display:block;position:fixed;left:0;right:0;bottom:0;z-index:50;background:#c24773;color:#fff;text-align:center;font-weight:800;font-size:20px;line-height:1.4;padding:14px 12px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -2px 10px rgba(0,0,0,.25)}
.fix-call small{display:block;font-size:13px;font-weight:600;opacity:.95}
body{padding-bottom:84px}
}
/* スマホの余白を詰める */
@media (max-width:760px){
.sec{padding-top:40px}
h2.t2{font-size:26px}
.bar{margin-top:8px}
.cards{margin-top:22px;gap:12px}
.cond{padding:18px 20px;border-radius:16px}
.no{width:42px;height:42px;font-size:21px}
.cond b{margin-top:8px;font-size:20px}
.cond p{margin-top:2px;font-size:16px}
.center-note{margin-top:14px}
.flow{padding-top:44px}
.flow-list{margin-top:30px;gap:30px}
.greet{padding-top:48px;gap:28px}
.menu{margin-top:52px;padding:44px 0}
.cols{margin-top:26px;gap:18px}
.cta{margin-top:52px;padding:40px 0}
.contact{min-height:0}
.c-body{padding-top:48px;padding-bottom:48px}
.pg-hero{padding:28px 0 22px}
.pg{padding-top:36px}
}
/* 日本語の折り返し（共通ルール）: 文節の途中で折り返さない。印(<wbr>)は .claude/tools/ja-wrap で入れる */
/* 本文は行の右端までつめる（通常の折り返し）。見出し・ボタン・料金の行・ラベルは語の途中で切らない */
body{word-break:normal;overflow-wrap:break-word;line-break:strict}
h1,h2,h3,h4,b,dt,.hd,.row,.logo,.badge,.lb,.eff-t,.pv-no,.flow-no,.gnav a,.tel-btn,.btn-w,.btn-o,.fix-call,.crumb,.k,.t,.tel-big,.pv-tags li,footer a{word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
.gnav a,.logo,.badge,.no,.flow-no,.tel-btn,.btn-w,.btn-o,.fix-call,.menu-btn{white-space:nowrap}
.logo small{white-space:normal}
@media (max-width:760px){
.box .rows{padding:6px 16px 16px}
.row{font-size:17px;gap:8px}
.box .hd{padding:12px 18px}
.in-note{padding:0 16px 16px}
.svc .in{padding:14px 18px 0}
}
/* ---- v5: 番号と見出しを同じ行に／短い文は行の長さをそろえる ---- */
.cond{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center}
.cond .no{grid-row:1;grid-column:1}
.cond b{grid-row:1;grid-column:2;margin:0}
.cond p{grid-column:1/-1;margin-top:12px}
.cond p,.center-note,.flow-step p,.pv-body p,.pv-list li,.more p,.note,.lead,.greet p{}
.cond p,.flow-step p,.more p,.greet p,.lead{}
.center-note,.pv-list li,.pv-body p,.note{}
@media (max-width:760px){
.pv-item{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;align-items:center}
.pv-body{display:contents}
.pv-body>*{grid-column:1/-1}
.pv-body h2{grid-column:2;grid-row:1;margin:0}
.pv-item .pv-no{grid-column:1;grid-row:1}
}

/* ---- v6: 本文は行の右端までつめる（text-wrap は使わない）／スマホを読みやすく ---- */
@media (max-width:760px){
.cond p,.flow-step p,.more p,.greet p,.lead,.pv-body p,.pv-list li,.prod p,.center-note,.note,.hero-in .lead,.t-body{font-size:18px;color:#2f2a2a;line-height:1.85}
.note,.in-note{font-size:16px;color:#3b3434}
.greet .ph::before{display:none}
.flow-step{padding:26px 18px 20px}
.flow-ic{width:60px;height:60px;margin-top:2px}
.flow-ic svg{width:30px;height:30px}
.flow-step h3{margin-top:10px;font-size:20px}
.flow-list{gap:26px}
}

/* ---- v7: 元の文に戻した分の見た目 ---- */
.lab{font-weight:700;color:#c24773;margin:12px 0 0}
.tag{margin:0 0 6px;font-size:17px;color:#2f2a2a}
.in-note.top{padding:12px 24px 0;margin-top:0}
.ol-ja{margin:8px 0 18px;padding-left:0;list-style:none}
.ol-ja li{margin:6px 0;font-size:18px;line-height:1.85}
.greet .tx p{margin-top:10px}
.plain-list{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.plain-list li{background:#fff;border:2px solid #f0d3dd;border-radius:999px;padding:6px 16px;font-weight:700}

/* ---- v8: スマホをパソコンの見た目に合わせる（写真を広く見せ、ピンクへなじませる／カードに影） ---- */
@media (max-width:760px){
.hero{position:relative;display:block;min-height:0;overflow:hidden}
.hero-img{position:absolute;left:0;top:0;width:100%;height:380px;object-fit:cover;object-position:68% 18%}
.hero-grad{display:block;position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(253,239,243,0) 0,rgba(253,239,243,0) 150px,rgba(253,239,243,.9) 310px,#fdeff3 380px)}
.hero-body{position:relative;padding-top:250px;padding-bottom:36px}
.hero-in .h1{font-size:32px;text-shadow:0 1px 0 rgba(255,255,255,.7)}
.badge{background:rgba(255,255,255,.92)}
.callbox{box-shadow:0 10px 28px rgba(194,71,115,.16)}
.cond,.flow-step,.box,.more div{box-shadow:0 8px 22px rgba(194,71,115,.10)}
.t2{font-size:26px}
.greet .ph img{border-radius:22px;box-shadow:0 12px 30px rgba(0,0,0,.12)}
.cta,.contact{border-radius:0}
.fix-call{box-shadow:0 -6px 20px rgba(0,0,0,.14)}
}

/* ---- v9: 代表者名は右寄せ ---- */
.greet .name{text-align:right;margin-top:18px}
