/* Kameido adaptation: original layout retained, new supplied imagery and lemon palette. */
:root { --kameido-yellow: #e7d64b; --kameido-ink: #151515; }
.l-header-cta__link { color: #151515 !important; }
.kameido-brand-heading { display:inline-block; font-size:1em; letter-spacing:inherit; line-height:inherit; }
.kameido-review-source { text-align:center; font-size:1.5rem; margin-top:1.2em; }
.kameido-plan-label { font-size:1.4rem; font-weight:700; color:#151515; margin:1em 0 .4em; }
.l-main .reason .reason-box-list__img img { width:100%; height:auto; aspect-ratio:698/540; object-fit:cover; }
.l-main .reason .reason-facility-box .item__img img { width:100%; height:auto; aspect-ratio:780/586; object-fit:cover; }
.l-main .info .info-box__img img { width:100%; height:auto; aspect-ratio:328/259; object-fit:cover; }
.l-main .campaign .campaign-price-list .item__des picture { display:block; }
.l-main .lead { color:#151515; }

.l-main .case .menu .menu-list .item .item-content .item-content__name .kind { color:#151515; }

/* Existing graphic labels kept while harmonizing their legacy pink accent. */



.l-main .voice .voice-box .voice-box-item:first-child .voice-box-item__beaf::before { background-image:url("../img/kameido-voice-span.webp"); }


.voice-period { font-size:1.3rem; line-height:1.6; margin-top:.7em; }

.kameido-brand-heading { white-space:nowrap; }
@media screen and (max-width:767px) { .kameido-brand-heading { font-size:3rem; letter-spacing:.02em; } }
.l-main .trainer .trainer-box .person .person-qualification .kameido-award-label { width:auto; white-space:nowrap; flex-shrink:0; }

/* Optional approved-color comparison; default palette remains unchanged. */
body.theme-lemon { --kameido-yellow: #f7f157; }

/* 2026-09-14 request: restore original green header reservation button. */
.l-header-cta__link { color:#fff !important; background-color:#23ae39 !important; }
.l-header-cta__link::before { background-color:#1a6329 !important; }
.l-header-cta__link::after { border-left-color:#fff !important; }
@media (hover:hover) { .l-header-cta__link:hover { background-color:#1a6329 !important; } }

/* Rating summary: center the score and source as a single group. */
.l-main .review .review-box .review-box-num {
  width:max-content; max-width:100%; margin:2.9rem auto 0;
  align-items:center; gap:1.1rem;
}
.l-main .review .review-box .review-box-num .num {
  flex:0 0 13rem; margin-right:0;
}
.l-main .review .review-box .review-box-num .num img { display:block; width:100%; height:auto; }
.l-main .review .review-box .review-box-num .detail { flex:0 0 16rem; width:16rem; }
.l-main .review .review-box .review-box-num .detail__google,
.l-main .review .review-box .review-box-num .detail__attention { white-space:nowrap; }
.l-main .review .review-box .review-box-num .detail__star img { display:block; width:100%; height:auto; }

/* 2026-09-18 request: pending menu photos (supplied later) keep the circular slot. */
.l-main .case .menu .menu-list .item .item__img--pending {
  flex-shrink:0; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center;
  background:#f1f1ef; border:1px dashed #c9c9c4; border-radius:50%;
  color:#8a8a86; font-size:1rem; font-weight:700; line-height:1.3; letter-spacing:.04em; text-align:center;
}
@media screen and (min-width:768px) { .l-main .case .menu .menu-list .item .item__img--pending { font-size:1.2rem; } }

/* Case photos (2026-09-18 supply). Name lines were not supplied, so anchor people to the head block bottom
   to keep them clear of the first content heading. Case2's outstretched arm needs more room: its copy starts
   further right, the hand stays inside the card gap on PC and bleeds off the screen edge on SP. */
.l-main .case .case-box .head .head__person.head__person01 { top:auto; bottom:0; }
.l-main .case .case-box .head .head__person.head__person02 { top:auto; bottom:0; left:-37%; width:79.6%; }
@media screen and (min-width:768px) {
  .l-main .case .case-box .head .head__person.head__person01 { bottom:-11%; }
  .l-main .case .case-box .head .head__person.head__person02 { bottom:-4%; left:-19.9%; width:49.4%; }
}
@media screen and (min-width:1100px) {
  /* 2-column: both heads share one height and both photos one bottom line, so the photos and the
     first "お客様のお悩み" headings align across the two cards. */
  .l-main .case .case-box .head { min-height:28rem; }
  .l-main .case .case-box .head .head__person.head__person01 { top:auto; bottom:-3.5rem; }
  .l-main .case .case-box .case-box-item:nth-child(2) .head .head-detail { width:57.5%; }
  .l-main .case .case-box .head .head__person.head__person02 { top:auto; bottom:-3.5rem; left:-18.5%; width:60.9%; }
}
@media screen and (min-width:1200px) {
  .l-main .case .case-box .head { min-height:23.5rem; }
}
/* Break case themes at phrase boundaries (<wbr>) instead of mid-word. */
@media screen and (min-width:768px) { .l-main .case .case-box .head .head-detail .head-detail__theme { word-break:keep-all; overflow-wrap:anywhere; } }
/* Menu photos: longer copy makes rows taller; keep the photo slot a true circle instead of stretching. */
.l-main .case .menu .menu-list .item .item__img { align-self:flex-start; flex-shrink:0; aspect-ratio:1/1; height:auto; border-radius:50%; }
.l-main .case .menu .menu-list .item .item__img img { display:block; width:100%; height:100%; object-fit:cover; }

/* 2026-09-30: logo image widened (536->578) for a larger "kameido"; keep "Body Make Stand" at the same size. */
.l-header .l-header-logo { width:min(100%, 64vw); padding-right:1rem; box-sizing:content-box; }
@media screen and (min-width:768px) { .l-header .l-header-logo { width:min(100%, 24.8rem); } }
/* 1200-1219px: Case2 copy wraps to 5 lines; keep both heads the same height so photo bottoms align. */
@media screen and (min-width:1200px) and (max-width:1219px) { .l-main .case .case-box .head { min-height:27.5rem; } }

/* 2026-09-30: W・S様 (no program length supplied) - hide the period badge until confirmed. Sister-store note. */
.l-main .voice .voice-box .voice-box-item.voice-box-item--noperiod .voice-box-item__beaf::before { display:none; }
.kameido-voice-note { font-size:1.2rem; line-height:1.7; text-align:center; margin-top:2.4rem; color:#151515; }
@media screen and (min-width:768px) { .kameido-voice-note { font-size:1.4rem; margin-top:3.6rem; } }

/* 2026-10-05 feedback: center menu photos against their copy, and the 資格/受賞歴 label against its 2-line list. */
.l-main .case .menu .menu-list .item { align-items:center; }
.l-main .case .menu .menu-list .item .item__img { align-self:center; }
.l-main .trainer .trainer-box .person .person-qualification { align-items:center; }


/* 2026-11-02 キャンペーンバナーの上下余白（PCのみ）。
 * バナーを表示しているときだけ出力される要素に付けたクラスで調整するため、バナーがないときは影響しない。 */
@media screen and (min-width: 768px) {
  /* FV直後：上下50pxずつ詰める（幅1023px以下はFVの斜めの帯に重ならないよう上は30px） */
  .l-main .banner.banner--campaign-top { margin-top: -30px; }
  .l-main .banner.banner--campaign-top .banner__container .banner__box { margin-bottom: 10px; }
  /* 料金表内：下を30px詰める */
  .l-main .campaign .campaign-price .campaign-price-list .item.item--campaign-banner { padding-bottom: 0; margin-bottom: -15px; }
  /* CTA直前：上50px・下100px詰める（下は最低10px残す） */
  .l-main .banner.banner--campaign-bottom { margin-top: -50px; }
  .l-main .banner.banner--campaign-bottom .banner__container { padding-bottom: max(calc(4vw - 40px), 10px); }
  .l-main .banner.banner--campaign-bottom .banner__container .banner__box { margin-bottom: 0; }
}
@media screen and (min-width: 1024px) {
  .l-main .banner.banner--campaign-top { margin-top: -50px; }
}
