/* =======================================================
   1. 基本・共通設定 (Header, Footer, Reset)
======================================================= */
html { margin-top: 0 !important; scroll-behavior: auto; overflow-x: hidden; }
body.admin-bar { margin-top: 0 !important; }

/* 既存テーマの干渉を防ぐ */
footer#footer.wrap, #footer.wrap { display: none !important; height: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important; }

:root {
  --beauty-mincho: "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
}

body { 
  margin: 0; padding: 0; 
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; 
  background-color: #fdfcf8; 
  color: #333; line-height: 1.6; 
}

/* フォーム要素のフォント統一 */
button, input, select, textarea { font-family: inherit; }

/* フッター調整 (左右切れ防止 & 上部余白削除) */
.ggf-footer { 
  width: 100vw; 
  position: relative; 
  left: 50%; 
  right: 50%; 
  margin-left: -50vw; 
  margin-right: -50vw; 
  padding: 14px 16px; 
  box-sizing: border-box;
  margin-top: 0 !important; /* 上部の隙間を強制排除 */
}

/* アンカーリンクで飛んだ時の位置調整（ヘッダー被り防止） */
.item-card, .price-card, .menu-section {
    scroll-margin-top: 110px; /* ヘッダー90px + 余白 */
}


/* =======================================================
   2. 料金表 & メニュー一覧 共通スタイル
======================================================= */
#umekita-price-container { width: 100%; box-sizing: border-box; padding: 80px 15px; min-height: 100vh; font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif; }
#umekita-menu-container { width: 100%; box-sizing: border-box; padding: 80px 15px; min-height: 100vh; font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif; }
.uc-inner { max-width: 1280px; margin: 0 auto !important; width: 100%; padding: 0 10px; box-sizing: border-box; }

/* タイトルデザイン */
.price-header { text-align: center; margin-bottom: 60px; padding: 0 10px; }
.price-header h1, .price-header h2 { 
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif; 
  font-size: clamp(24px, 3.5vw, 42px); 
  color: #8c7b64; 
  letter-spacing: 0.1em; 
  margin: 0 0 15px 0; 
  font-weight: 500; 
  text-transform: uppercase;
  line-height: 1.3;
  word-wrap: break-word;
}
.price-header span { 
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(16px, 2vw, 24px); 
  font-weight: 700; 
  color: #555; 
  display: block;
  letter-spacing: 0.05em;
}

/* 料金表用パーツ */
.price-notice { text-align: center; margin-bottom: 60px; font-size: 20px; line-height: 1.8; }
.price-nav-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 80px; }
.price-nav-item { position: relative; height: 140px; background: #ccc; overflow: hidden; text-decoration: none; border-radius: 4px; display: flex; align-items: center; justify-content: center; }
.price-nav-item img { position: absolute; width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.price-nav-item:hover img { transform: scale(1.1); }
.price-nav-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.3); z-index: 1; }
.price-nav-text { position: relative; z-index: 2; color: #fff; text-align: center; text-shadow: 0 2px 5px rgba(0,0,0,0.5); }
.price-nav-text strong { display: block; font-size: 20px; letter-spacing: 0.1em; margin-bottom: 5px; font-weight: 500; text-transform: uppercase; }
.price-nav-text span { font-size: 18px; opacity: 0.9; }
.counseling-box { background: #f7f3f0; border: 1px solid #eaddcf; padding: 40px; margin-bottom: 100px; }
.counseling-inner { background: #fff; border: 1px solid #ddd; display: flex; align-items: stretch; }
.counseling-label { width: 40%; padding: 20px; font-weight: bold; display: flex; align-items: center; border-right: 1px solid #ddd; font-size: 16px; }
.counseling-price { width: 60%; padding: 20px; display: flex; align-items: center; font-size: 16px; font-weight: bold; }
.counseling-note { font-size: 14px; color: #555; margin-top: 15px; padding-left: 5px; }

/* カード共通 */
.price-card, .uc-card { background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); border: 1px solid #eee; margin-bottom: 80px; display: flex; flex-direction: column; }
.uc-card { margin-bottom: 0; height: 100%; transition: box-shadow 0.3s ease, transform 0.3s ease; }
.uc-card:hover { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); transform: translateY(-3px); }

.price-card-header, .uc-card-header { position: relative; height: 200px; background-color: #ddd; overflow: hidden; width: 100%; flex-shrink: 0; }
.uc-card-header { height: 220px; }
.price-card-header img, .uc-card-header img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.uc-card:hover .uc-card-header img { transform: scale(1.08); }
.uc-header-link { display: block; width: 100%; height: 100%; text-decoration: none; color: inherit; }

.uc-cat-label { position: absolute; top: 15px; left: 0; background-color: #8c7b64; color: #fff; padding: 6px 20px; font-size: 14px; font-weight: 600; letter-spacing: 0.05em; z-index: 2; }
.uc-header-overlay { position: absolute; bottom: 0; left: 0; width: 100%; background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.4) 60%, transparent 100%); padding: 20px 30px; color: #fff; pointer-events: none; }
.uc-header-overlay h3 { font-size: 32px; font-weight: 700; margin: 0; text-shadow: 0 2px 5px rgba(0,0,0,0.7); line-height: 1.25; color: #fff; }
.uc-header-overlay .uc-en { font-size: 14px; text-transform: uppercase; opacity: 0.9; display: block; margin-bottom: 4px; font-family: serif; letter-spacing: 0.1em; color: #fff; }

.price-card-body, .uc-card-body { padding: 50px; background: #fff; flex-grow: 1; }
.uc-card-body { padding: 25px 30px 35px; display: flex; flex-direction: column; }

/* 料金表テーブル (旧スタイル互換) */
.menu-section { margin-bottom: 60px; }
.menu-section:last-child { margin-bottom: 0; }
.menu-title { font-size: 24px; color: #333; font-weight: 700; margin-bottom: 20px; padding-left: 15px; border-left: 6px solid #8c7b64; background-color: #faf9f6; padding-top: 12px; padding-bottom: 12px; }

/* メニュー一覧リスト */
.uc-grid-wrapper { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; align-items: stretch; width: 100%; }
.uc-menu-list { list-style: none; width: 100%; padding: 0; margin: 0; }
.uc-menu-list.col-2 { column-count: 2; column-gap: 30px; }
.uc-menu-item { border-bottom: 1px dotted #ccc; break-inside: avoid; width: 100%; box-sizing: border-box; }
.uc-menu-link { 
  display: flex; 
  justify-content: space-between; 
  align-items: center; 
  padding: 14px 5px; 
  text-decoration: none; 
  color: #444; 
  font-size: 15px; 
  font-weight: 500; 
  transition: all 0.2s; 
  width: 100%; 
  box-sizing: border-box;
}
.uc-menu-link:hover { color: #8c7b64; background-color: #fafafa; }
.uc-arrow { font-size: 12px; color: #bbb; margin-left: 10px; opacity: 0.8; flex-shrink: 0; }

.uc-spacer { width: 100%; height: 120px; clear: both; display: block; }
.uc-action-area { text-align: center; width: 100%; display: block; }
.uc-price-btn { display: inline-flex; align-items: center; justify-content: center; flex-direction: column; background-color: #8c7b64; color: #fff; text-decoration: none; min-width: 360px; padding: 18px 60px; min-height: 80px; border-radius: 999px; transition: all 0.3s ease; box-shadow: 0 5px 20px rgba(140, 123, 100, 0.3); font-size: 22px; font-weight: 600; letter-spacing: 0.1em; line-height: 1.2; }
.uc-price-btn:hover { background-color: #7a6a55; transform: translateY(-3px); box-shadow: 0 10px 30px rgba(140, 123, 100, 0.4); }
.uc-price-btn span { display: block; font-size: 14px; opacity: 0.9; font-weight: normal; margin-top: 5px; letter-spacing: 0.05em; }

@media (max-width: 900px) {
  .price-nav-grid { grid-template-columns: repeat(2, 1fr); }
  .uc-grid-wrapper { grid-template-columns: 1fr; }
  .uc-menu-list.col-2 { column-count: 1; }
  .uc-price-btn { width: 100%; box-sizing: border-box; min-width: auto; }
}
@media (max-width: 768px) {
  #umekita-price-container, #umekita-menu-container { padding: 50px 15px; }
  .price-header h1, .price-header h2 { margin-bottom: 10px; }
  .price-card-body { padding: 20px; }
  .counseling-inner { display: block; }
  .counseling-label, .counseling-price { width: 100%; border-right: none; border-bottom: 1px solid #ddd; padding: 15px; }
  .counseling-price { border-bottom: none; }
  .uc-spacer { height: 80px; }
}


/* =======================================================
   3. 詳細ページ共通CSS
======================================================= */
:root {
    --accent-gold: #916F4E;
    --text-black: #111111;        
    --text-gray: #333333;         
    --bg-white: #ffffff;
    --brand-brown: #57370D;
    --font-gothic: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}
.custom-page-wrapper {
    font-family: var(--font-gothic);
    background-color: var(--bg-white);
    color: var(--text-black);
    line-height: 1.8; 
    font-weight: 600;
    -webkit-font-smoothing: antialiased;
    width: 100%;
    box-sizing: border-box;
}
@media (min-width: 768px) { .custom-page-wrapper { font-size: 1vw; } }
@media (max-width: 767px) { .custom-page-wrapper { font-size: 14px; } }

.cp-container { width: 90%; max-width: 1280px; margin: 0 auto; }
.header-section { padding: 5rem 0; border-bottom: 1px solid #e0e0e0; margin-bottom: 5rem; background-color: var(--bg-white); }
.header-inner { display: flex; align-items: stretch; justify-content: space-between; gap: 4rem; }
.header-text-area { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 2rem; }
.header-image-area { flex: 0 0 45%; background-color: #f0f0f0; border-radius: 0.4rem; overflow: hidden; box-shadow: 0 0.5rem 1.5rem rgba(0,0,0,0.1); display: flex; }
.header-image-area img { width: 100%; height: 100%; object-fit: cover; }
.custom-page-wrapper h1 { font-family: var(--font-gothic); font-size: 3rem; margin: 0; letter-spacing: 0.05em; font-weight: 800; line-height: 1.2; color: var(--text-black); }
.intro-text p { font-size: 1.1rem; line-height: 2.0; color: var(--text-black); font-weight: 600; text-align: justify; margin-bottom: 1.5rem; }
.intro-text p:last-child { margin-bottom: 0; }
.treatment-list { display: flex; flex-direction: column; gap: 6rem; margin-bottom: 0; /* ← 隙間削除 */ }

/* カードデザイン */
.item-card { display: flex; flex-direction: row; align-items: flex-start; border-bottom: 1px solid #e0e0e0; padding-bottom: 4rem; }
.item-card:last-child { border-bottom: none; }
.item-image { flex: 0 0 35%; margin-right: 4rem; }
.item-image img { width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; border-radius: 0.3rem; box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.08); }
.item-content { flex: 1; display: flex; flex-direction: column; }
.item-header { display: flex; align-items: center; margin-bottom: 1.5rem; flex-wrap: wrap; gap: 1rem; }
.item-title { font-family: var(--font-gothic); font-size: 2.2rem; margin: 0; font-weight: 800; letter-spacing: 0.02em; line-height: 1.3; color: #000; }
.badge { font-size: 0.8rem; padding: 0.4rem 1rem; color: #fff; font-weight: 700; letter-spacing: 0.1em; border-radius: 0.2rem; box-shadow: 0 0.3rem 0.5rem rgba(0,0,0,0.2); }
.badge-rec { background: linear-gradient(135deg, #a83d3d, #6e2c2c); }
.badge-new { background: linear-gradient(135deg, #2c3e50, #1a252f); }
.badge-attn { background: linear-gradient(135deg, #e6b422, #b8860b); }
.item-desc { font-size: 1.12rem; color: var(--text-gray); margin-bottom: 3rem; white-space: pre-wrap; text-align: justify; font-weight: 600; }
.treatment-list .item-desc{
  white-space: pre-line; /* 改行は反映、先頭スペースは潰す */
}

/* ボタンデザイン */
.btn-wrap { margin-top: auto; display: flex; gap: 1.5rem; flex-wrap: wrap; }
.item-link { 
  display: inline-flex; align-items: center; justify-content: center; 
  padding: 1.2rem 2rem; 
  min-width: 280px; 
  text-decoration: none; 
  font-size: 1.1rem; font-weight: 700; letter-spacing: 0.05em; 
  border-radius: 6px; 
  text-align: center; 
  transition: all 0.3s ease; 
  box-sizing: border-box; 
  white-space: nowrap; 
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
.item-link:hover { transform: translateY(-3px); box-shadow: 0 8px 15px rgba(0,0,0,0.15); opacity: 1; }

.btn-detail { 
  color: #333; 
  background: linear-gradient(135deg, #f0ddaa 0%, #d4af37 50%, #a67c30 100%); 
  border: none; 
  text-shadow: 0 1px 0 rgba(255,255,255,0.4);
}
.btn-detail:hover { filter: brightness(1.1); }

.btn-fee { 
  color: #57370D; 
  background-color: #fff; 
  border: 2px solid #57370D; 
  box-shadow: 0 2px 5px rgba(0,0,0,0.05); 
}
.btn-fee:hover { background-color: #57370D; color: #fff; }

@media (max-width: 767px) {
    .header-section { padding: 40px 0; margin-bottom: 40px; }
    .header-inner { flex-direction: column; gap: 30px; align-items: center; }
    .header-text-area { gap: 15px; }
    .header-image-area { flex: none; width: 100%; height: 250px; }
    .custom-page-wrapper h1 { font-size: 27px; }
    .intro-text p { font-size: 15px; line-height: 1.8; margin-bottom: 15px; }
    .treatment-list { gap: 50px; margin-bottom: 50px; }
    .item-card { flex-direction: column; padding-bottom: 40px; }
    .item-image { width: 100%; margin-right: 0; margin-bottom: 20px; }
    .item-title { font-size: 25px; }
    .item-desc { font-size: 15px; margin-bottom: 20px; }
    .btn-wrap { width: 100%; flex-direction: column; gap: 15px; }
    .item-link { width: 100%; padding: 15px 0; min-width: auto; white-space: normal; }
}


/* =======================================================
   4. LP用CSSの統合
======================================================= */
.blp-wrapper {
  --c-main: #8B7B64;
  --c-main-light: #FDFCFB;
  --c-text: #333333;
  --c-white: #ffffff;
  --c-gray-bg: #F9F9F9;
  --c-price-head: #AFA69C;
  --c-line: #06c755;
  --font-sans:  "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --font-serif: "Shippori Mincho", "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  width: 100%;
  color: var(--c-text);
  font-family: var(--font-sans);
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
  font-size: 16px;
  font-weight: 500;
  word-break: break-word;
  overflow-wrap: break-word;
}
.blp-wrapper h1, .blp-wrapper h2, .blp-wrapper h3, .blp-wrapper .blp-sec-title, .blp-wrapper .blp-hero__catch, .blp-wrapper .blp-hero__title{ font-family: var(--font-serif); font-weight: 600; }
.blp-wrapper *, .blp-wrapper *::before, .blp-wrapper *::after { box-sizing: inherit; }
.blp-wrapper img { max-width: 100%; height: auto; vertical-align: bottom; }
.blp-wrapper a { text-decoration: none; color: inherit; transition: opacity 0.3s; }
.blp-container { width: 92%; max-width: 1400px; margin: 0 auto; position: relative; }
.blp-container-narrow { width: 92%; max-width: 1000px; margin: 0 auto; position: relative; }
.blp-sec-title { font-family: var(--font-serif); font-size: 40px; text-align: center; margin: 0 0 60px 0; font-weight: 700; letter-spacing: 0.05em; color: var(--c-text); margin-bottom: 20px;  margin-top: 60px;}
.blp-sub-title { font-family: var(--font-serif); font-size: 24px; text-align: center; margin: 0 0 20px 0; font-weight: 600; color: var(--c-main); }
.blp-fade-up { opacity: 0; transform: translateY(20px); transition: opacity 0.8s ease, transform 0.8s ease; }
.blp-fade-up.is-visible { opacity: 1; transform: translateY(0); }
@media screen and (max-width: 768px) {
  .blp-wrapper { font-size: 15px; }
  .blp-sec-title { font-size: 28px; margin-bottom: 28px; margin-top: 34px; }
  .blp-sub-title { font-size: 18px; }
}
/* LP: Hero */
.blp-hero-split { display: flex; width: 100%; background-color: #F7F5F0; align-items: center; position: relative; overflow: hidden; margin-top:0 !important; }
.blp-hero-img { width: 50%; align-self: stretch; }
.blp-hero-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.blp-hero-content { width: 50%; padding: 4vw; display: flex; flex-direction: column; justify-content: center; white-space: normal; word-break: break-word; }
.blp-hero-sub { font-size: 1.3vw; margin-bottom: 1.5vw; font-weight: 700; color: var(--c-main); line-height: 1.4; letter-spacing: 0.05em; }
.blp-hero-main { font-family: var(--font-serif); font-size: 3.2vw; font-weight: 700; line-height: 1.3; margin-bottom: 3vw; color: #222; }
.blp-hero-points { display: flex; gap: 1.5vw; flex-wrap: wrap; }
.blp-hero-point { width: 9vw; height: 9vw; min-width: 80px; min-height: 80px; background-color: rgba(109, 143, 153, 0.9); border-radius: 50%; color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; font-size: 1vw; line-height: 1.2; font-weight: 700; box-shadow: 0 0.5vw 1.5vw rgba(139, 123, 100, 0.3); overflow: hidden; padding: 5px; }
.blp-hero-point span.num { font-family: var(--font-serif); font-size: 1.4vw; margin-bottom: 0.3vw; border-bottom: 1px solid rgba(255,255,255,0.6); padding-bottom: 0.2vw; display: block; width: 40%; }
@media screen and (max-width: 900px) {
  .blp-hero-split { flex-direction: column; }
  .blp-hero-img { width: 100%; height: 300px; }
  .blp-hero-content { width: 100%; padding: 40px 20px; }
  .blp-hero-sub, .blp-hero-main { text-align: left; max-width: 560px; margin-left: auto; margin-right: auto; }
  .blp-hero-sub { font-size: 15px; margin-bottom: 15px; }
  .blp-hero-main { font-size: 28px; margin-bottom: 30px; }
  .blp-hero-points { justify-content: center; gap: 15px; }
  .blp-hero-point { width: 90px; height: 90px; font-size: 11px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); }
  .blp-hero-point span.num { font-size: 18px; margin-bottom: 5px; padding-bottom: 2px; }
}
/* LP: Reco */
.blp-reco { padding: 80px 0; background-color: var(--c-white); }
.blp-reco-box { border: 1px solid #ccc; padding: 60px; max-width: 1100px; margin: 0 auto; }
.blp-reco-title { font-size: 32px; font-weight: 700; color: #333; margin: 0 0 40px 0; padding-bottom: 20px; border-bottom: 1px solid #998F7E; font-family: var(--font-sans); }
.blp-reco-title span { color: var(--c-main); }
.blp-reco-list { list-style: none; padding: 0; margin: 0; }
.blp-reco-item { display: flex; align-items: center; margin-bottom: 30px; font-size: 20px; font-weight: 700; }
.blp-reco-icon { width: 44px; height: 44px; border: 2px solid var(--c-main); border-radius: 50%; margin-right: 25px; position: relative; flex-shrink: 0; }
.blp-reco-icon::after { content: ""; position: absolute; left: 14px; top: 9px; width: 11px; height: 19px; border: solid var(--c-main); border-width: 0 3px 3px 0; transform: rotate(45deg); }
@media screen and (max-width: 768px) {
  .blp-reco { padding: 60px 0; }
  .blp-reco-box { padding: 30px 20px; border: none; }
  .blp-reco-title { font-size: 24px; }
  .blp-reco-item { font-size: 16px; margin-bottom: 20px; }
  .blp-reco-icon { width: 30px; height: 30px; margin-right: 15px; }
  .blp-reco-icon::after { left: 9px; top: 5px; width: 8px; height: 14px; }
}
/* LP: About */
.blp-about { padding: 60px 0 80px; background-color: var(--c-white); text-align: center; }
.blp-about-content { width: 100%; text-align: center; display: inline-block; max-width: 1100px; }
.blp-about-text { font-size: 20px; line-height: 1.8; font-weight: 550; text-align: left; }
.blp-about-text p { margin-bottom: 1.5em; }
@media screen and (max-width: 768px) {
  .blp-about { padding: 50px 0; }
  .blp-about-text { font-size: 15px; text-align: justify; }
}
/* LP: Case (Slider) */
.uklp-case-section { padding: 80px 0 0 0; background-color: #fff; font-family: var(--font-sans); }
.uklp-case-title-wrapper { text-align: center; margin-bottom: 40px; }
.uklp-title01 { font-size: 40px; font-weight: 700; color: #333; margin: 0; font-family: var(--font-serif); }
.uklp-slider-wrapper { position: relative; max-width: 1000px; margin: 0 auto; display: flex; align-items: center; justify-content: center; gap: 20px; padding-bottom: 60px; }
/* gapを0にして、計算ズレを防止 */
.uklp-case-slider { display: flex; overflow-x: auto; gap: 0 !important; width: 100%; max-width: 850px; padding: 20px 0 30px 0; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scroll-behavior: smooth; scrollbar-width: none; }
.uklp-case-slider::-webkit-scrollbar { display: none; }
.uklp-slider-nav { background-color: #f7f7f7; border: 1px solid #ddd; width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s; flex-shrink: 0; color: #333; z-index: 2; }
.uklp-slider-nav:hover { background-color: var(--c-main); color: #fff; border-color: var(--c-main); }
.uklp-slider-nav svg { width: 20px; height: 20px; fill: currentColor; }
.uklp-slider-nav.is-hidden { opacity: 0; pointer-events: none; }
.uklp-slider-dots { display: flex; justify-content: center; gap: 10px; position: absolute; bottom: 10px; left: 0; width: 100%; height: 30px; }
.uklp-dot { width: 12px; height: 12px; background-color: #ddd; border-radius: 50%; cursor: pointer; transition: 0.3s; }
.uklp-dot.is-active { background-color: var(--c-main); transform: scale(1.2); }
.uklp-case-card { 
  flex: 0 0 100%; 
  width: 100%; 
  background: #fff; 
  /* 枠線の色を濃く変更 (#eee → #e5e5e5) */
  border: 1px solid #e5e5e5; 
  border-radius: 12px; 
  padding: 30px; 
  box-shadow: 0 4px 20px rgba(0,0,0,0.06); 
  scroll-snap-align: center; 
  box-sizing: border-box;
  margin: 0;
  /* 透明ボーダーハックを廃止し、純粋なborderのみにする */
  /* border-left: 15px solid transparent; 削除 */
  /* border-right: 15px solid transparent; 削除 */
  /* background-clip: padding-box; 削除 */
  position: relative;
}

/* スライダー内の隙間はラッパー側で担保されているため、カード自体のmarginは不要ですが
   もしカード同士がくっついて見える場合は以下を追加 */
.uklp-case-slider {
  gap: 20px; /* カード間の隙間を明示 */
}
.uklp-case-head { font-family: var(--font-serif); font-size: 28px; font-weight: 600; margin: 0 0 25px 0; color: #000; text-align: center; }
.uklp-case-photos { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 30px; }
.uklp-case-photo-box { flex: 1; text-align: center; cursor: pointer; }
.uklp-case-photo-box img { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; display: block; margin-bottom: 10px; border-radius: 4px; background-color: #f0f0f0; transition: opacity 0.2s; }
.uklp-case-photo-box img:hover { opacity: 0.9; }
.uklp-case-photo-label { font-size: 15px; color: #333; margin: 0; font-family: var(--font-serif); }
.uklp-case-arrow { flex: 0 0 30px; display: flex; justify-content: center; align-items: center; padding-bottom: 30px; }
.uklp-case-arrow svg { width: 30px; height: 30px; fill: none; stroke: #333; }
.uklp-case-info { margin-bottom: 30px; }
.uklp-case-row { border-top: 1px solid #e5e5e5; padding: 15px 0; text-align: left; }
.uklp-case-label { display: block; font-weight: 700; font-size: 17px; margin-bottom: 5px; color: var(--c-main); }
.uklp-case-value { display: block; font-size: 16px; line-height: 1.8; color: #333; }
.uklp-case-doctor { border-top: 1px solid #e5e5e5; padding: 25px; background-color: #fafafa; border-radius: 8px; text-align: left; }
.uklp-case-doctor-title { font-weight: 700; font-size: 17px; margin: 0 0 15px 0; color: #000; }
.uklp-case-doctor-body { display: flex; gap: 20px; align-items: flex-start; }
.uklp-case-doctor-profile { width: 120px; flex-shrink: 0; text-align: center; }
.uklp-case-doctor-img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; border: 3px solid #fff; box-shadow: 0 2px 10px rgba(0,0,0,0.1); margin: 0 auto 10px auto; }
.uklp-case-doctor-name { font-size: 14px; font-weight: 700; line-height: 1.4; }
.uklp-case-doctor-text { flex: 1; font-size: 15px; line-height: 1.9; color: #333; text-align: justify; }
@media screen and (max-width: 768px) {
  .uklp-slider-nav { display: none; }
  .uklp-case-slider { gap: 0 !important; padding: 0 15px 40px 15px; }
  .uklp-case-card { flex: 0 0 90%; max-width: 90%; padding: 20px 15px; border-left: 0; border-right: 15px solid transparent; }
  .uklp-case-head { font-size: 24px; margin-bottom: 20px; }
  .uklp-case-doctor-body { flex-direction: column; gap: 15px; }
  .uklp-case-doctor-profile { display: flex; align-items: center; gap: 15px; width: 100%; text-align: left; }
  .uklp-case-doctor-img { margin: 0; width: 80px; height: 80px; }
  .uklp-slider-wrapper { padding-bottom: 20px; }
}

/* LP: Effects (期待できる効果) */
.blp-effects{ padding: 40px 0 80px; background:#fff; }
.blp-effects-head{ max-width: 1400px; margin: 0 auto 45px; width: 92%; }
.blp-effects-title{ font-family: var(--font-serif); font-size: 40px; font-weight: 700; color: #8c7b64; letter-spacing: 0.08em; margin: 0 0 14px 0; }
.blp-effects-rule{ height: 1px; width: 100%; background: rgba(140,123,100,0.55); }
/* align-itemsを stretch に変更し、カードの高さを100%にする */
.blp-effects-grid{ 
    display: grid; 
    grid-template-columns: repeat(2, minmax(0,1fr)); 
    gap: 50px; 
    align-items: start; /* stretch（引き伸ばし）をやめて、上揃え（なりゆき）にする */
}

.blp-effect-card{ 
    border: 1px solid rgba(0,0,0,0.14); 
    background:#fff; 
    border-radius: 10px; 
    overflow: hidden; 
    box-shadow: 0 6px 24px rgba(0,0,0,0.05); 
    display: flex; 
    flex-direction: column; 
    height: auto; /* 100%をやめて、中身に合わせる */
}
.blp-effect-card summary{ list-style:none; }
.blp-effect-card summary::-webkit-details-marker{ display:none; }
.blp-effect-summary{ display:flex; align-items:center; justify-content:space-between; gap: 14px; padding: 18px 22px; background: rgba(140,123,100,0.92); color:#fff; cursor:pointer; font-weight: 700; font-size: 18px; letter-spacing: 0.04em; }
.blp-effect-sum-text{ display:block; }
.blp-effect-chevron{ width: 12px; height: 12px; border-right: 2px solid rgba(255,255,255,0.95); border-bottom: 2px solid rgba(255,255,255,0.95); transform: rotate(45deg); transition: transform 0.2s ease; flex-shrink:0; margin-left:auto; }
.blp-effect-card[open] .blp-effect-chevron{ transform: rotate(225deg); }
/* --- アニメーション用に修正した body スタイル --- */
.blp-effect-body { 
    padding: 22px 22px 24px; 
    font-size: 17px; 
    line-height: 1.9; 
    color:#333; 
    flex: 1; 
    overflow: hidden; /* はみ出し防止（必須） */
    box-sizing: border-box; 
    display: block; 
    
    /* 滑らかに動かすプロパティを指定 */
    transition: height 0.3s ease, opacity 0.3s ease, padding 0.3s ease, margin 0.3s ease;
}

/* 閉じている時の初期状態（JSで制御するためCSSでの非表示は解除気味にするが、初期ロード時のチラつき防止で残す） */
details:not([open]) .blp-effect-body { 
    height: 0; 
    opacity: 0; 
    padding-top: 0; 
    padding-bottom: 0; 
    margin: 0;
}
details[open] .blp-effect-body { height: auto; }

@media screen and (max-width: 900px){
  .blp-effects-grid{ grid-template-columns: 1fr; gap: 22px; }
}
@media screen and (max-width: 768px){
  .blp-effects{ padding: 30px 0 60px; }
  .blp-effects-title{ font-size: 28px; }
  .blp-effect-summary{ padding: 14px 16px; font-size: 15px; }
  .blp-effect-body{ padding: 16px 16px 18px; font-size: 14px; }
}

/* LP: Detail (ボトックスの詳細) */
.blp-detail{ position: relative; padding: 90px 0; background:#fff; overflow:hidden; }
.blp-detail-bg{ position:absolute; inset:0; pointer-events:none; background: radial-gradient(1200px 400px at 70% 35%, rgba(0,0,0,0.06), transparent 60%), radial-gradient(900px 320px at 30% 65%, rgba(0,0,0,0.04), transparent 60%), linear-gradient(180deg, #ffffff 0%, #fbfbfb 100%); opacity: 0.9; }
.blp-detail .blp-sec-title{ margin-top: 0; margin-bottom: 40px; }
.blp-detail-table-wrap{ background: rgba(255,255,255,0.72); border: 1px solid rgba(0,0,0,0.08); box-shadow: 0 10px 30px rgba(0,0,0,0.04); }
.blp-detail-table{ width:100%; border-collapse: collapse; background: transparent; }
.blp-detail-table th, .blp-detail-table td{ border-bottom: 1px solid rgba(0,0,0,0.08); padding: 18px 22px; vertical-align: top; }
.blp-detail-table tr:last-child th, .blp-detail-table tr:last-child td{ border-bottom:none; }
.blp-detail-table th{ width: 220px; background: rgba(140,123,100,0.06); color: #8c7b64; font-weight: 700; letter-spacing: 0.05em; text-align:left; white-space: nowrap; }
.blp-detail-table td{ color:#333; font-weight: 500; }
@media screen and (max-width: 768px){
  .blp-detail{ padding: 60px 0; }
  .blp-detail-table-wrap{ border-radius: 6px; overflow:hidden; }
  .blp-detail-table th{ width: 36%; white-space: normal; }
  .blp-detail-table th, .blp-detail-table td{ padding: 14px 14px; font-size: 14px; }
}

/* LP: YouTube */
.youtube-compare-section { padding: 0 0 80px 0; background-color: #fff; }
.youtube-container { max-width: 1000px; margin: 0 auto; padding: 0 20px; }
.youtube-grid { display: flex; justify-content: center; gap: 40px; width: 100%; }
.youtube-item { flex: 1; width: 100%; max-width: 600px; }
.youtube-embed-wrapper { position: relative; width: 100%; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.youtube-embed-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
@media screen and (max-width: 768px) { .youtube-grid { flex-direction: column; gap: 28px; } }

/* LP: Features */
.blp-features { padding: 80px 0; background-color: var(--c-gray-bg); }
.blp-feat-item { display: flex; gap: 50px; margin-bottom: 60px; background: #fff; padding: 50px; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.03); }
.blp-feat-img { flex: 0 0 40%; }
.blp-feat-img img { border-radius: 6px; width: 100%; }
.blp-feat-txt { flex: 1; }
.blp-feat-title { font-family: var(--font-serif); font-size: 26px; color: var(--c-main); margin: 0 0 25px 0; font-weight: 700; }
.blp-feat-desc { margin-bottom: 25px; line-height: 1.8; font-size: 18px; }
.blp-more-content { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.2s ease-out; }
.blp-more-inner { overflow: hidden; font-size: 16px;}
.blp-more-content.is-open { grid-template-rows: 1fr; }
.blp-more-btn { background: none; border: none; color: var(--c-main); font-weight: 700; cursor: pointer; padding: 0; display: inline-flex; align-items: center; font-size: 16px; }
.blp-more-btn::after { content: "▼"; font-size: 10px; margin-left: 8px; transition: transform 0.2s; }
.blp-more-btn.is-open::after { transform: rotate(180deg); }
@media screen and (max-width: 768px) { .blp-feat-item { flex-direction: column; padding: 25px; gap: 20px; } }

/* LP: Price (Simple Note) */
.blp-price { padding-top: 10px; padding-bottom: 100px; background-color: #F8F5F2; }
.blp-price-note-box { background: #fff; border: 1px solid #ddd; padding: 25px; margin-bottom: 40px; font-size: 16px; }
.blp-price-note-row { display: flex; border-bottom: 1px solid #eee; padding-bottom: 15px; margin-bottom: 15px; }
.blp-price-note-row:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.blp-price-note-label { width: 220px; font-weight: 700; font-size: 18px; }
.blp-price-note-val { font-size: 18px; font-weight: 500; }
@media screen and (max-width: 768px) { .blp-price-note-row { flex-direction: column; } }

/* LP: Flow */
.blp-flow { padding: 80px 0; background: #fff; }
.blp-flow-layout { display: grid; grid-template-columns: 1fr 1.2fr; gap: 60px; align-items: stretch; }
.blp-flow-img-col { position: relative; width: 100%; height: 100%; }
.blp-flow-img-col img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 4px; }
.blp-flow-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; justify-content: space-between; }
.blp-flow-item { display: flex; gap: 25px; margin-bottom: 50px; position: relative; }
.blp-flow-item:last-child { margin-bottom: 0; }
.blp-flow-item::before { content: ""; position: absolute; top: 65px; left: 27px; width: 1px; height: calc(100% + 10px); background-color: #ddd; z-index: 0; }
.blp-flow-item:last-child::before { display: none; }
.blp-flow-circle { flex: 0 0 55px; height: 55px; background-color: var(--c-main); border-radius: 50%; color: #fff; display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 1; position: relative; }
.blp-flow-step-label { font-size: 10px; line-height: 1; margin-bottom: 2px; }
.blp-flow-step-num { font-size: 22px; font-family: var(--font-serif); line-height: 1; }
.blp-flow-text h3 { margin: 0 0 10px 0; font-size: 20px; font-weight: 700; color: #444; }
.blp-flow-desc { font-size: 16px; color: #666; line-height: 1.8; text-align: justify; }
@media screen and (max-width: 900px) {
  .blp-flow-layout { grid-template-columns: 1fr; gap: 40px; display: flex; flex-direction: column; }
  .blp-flow-img-col { height: auto; aspect-ratio: 16/9; }
}

/* LP: FAQ */
.blp-faq { padding: 80px 0; background: var(--c-gray-bg); }
.blp-faq-container { max-width: 1000px; margin: 0 auto; }
.blp-faq-item { background: #fff; margin-bottom: 25px; border-radius: 8px; overflow: hidden; border: 1px solid #eee; }
.blp-faq-q { padding: 25px 35px; font-weight: 700; font-size: 19px; color: #333; display: flex; align-items: flex-start; gap: 20px; line-height: 1.6; }
.blp-faq-q::before { content: "Q."; color: var(--c-main); font-size: 24px; font-family: var(--font-serif); font-weight: 700; flex-shrink: 0; white-space: nowrap; line-height: 1.2; width: 1.5em; }
.blp-faq-icon { display: none; }
.blp-faq-a-wrapper { display: block; visibility: visible; opacity: 1; }
.blp-faq-a-inner { min-height: 0; overflow: hidden; padding: 0 35px 30px 35px; display: flex; align-items: flex-start; gap: 20px; }
.blp-faq-a-inner::before { content: "A."; color: var(--c-main); font-size: 24px; font-family: var(--font-serif); font-weight: 700; line-height: 1.2; flex-shrink: 0; width: 1.5em; }
.blp-faq-a-text { font-size: 17px; line-height: 1.8; color: #444; padding-top: 0; margin-top: 0px; }
@media screen and (max-width: 768px) {
  .blp-faq-q { padding: 20px; font-size: 16px; gap: 15px; }
  .blp-faq-a-inner { padding: 0 20px 25px 20px; gap: 15px; }
}

/* LP: Contact */
.blp-contact { padding: 100px 0; background: #fff; text-align: center; }
.blp-contact-btns { display: flex; justify-content: center; gap: 20px; max-width: 900px; margin: 0 auto; flex-wrap: wrap; }
.blp-btn { flex: 1; display: flex; align-items: center; justify-content: center; padding: 25px 20px; border-radius: 6px; font-size: 20px; font-weight: 700; text-decoration: none; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(0,0,0,0.08); position: relative; overflow: hidden; min-width: 280px; white-space: normal; text-align: center; line-height: 1.4; }
.blp-btn:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(0,0,0,0.15); }
.blp-btn svg { width: 24px; height: 24px; margin-right: 12px; fill: currentColor; flex-shrink: 0; }
.blp-btn.reserve { background-color: #fff; color: var(--c-main); border: 2px solid var(--c-main); }
.blp-btn.reserve:hover { background-color: var(--c-main); color: #fff; }
.blp-btn.line { background-color: var(--c-line); color: #fff; border: 2px solid var(--c-line); }
.blp-btn.line:hover { background-color: #05b54d; border-color: #05b54d; }
@media screen and (max-width: 768px) {
  .blp-contact-btns { flex-direction: column; max-width: 400px; }
  .blp-btn { width: 100%; font-size: 18px; padding: 20px; }
}

/* Lightbox */
.uklp-lightbox { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.9); z-index: 99999; display: none; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s ease; }
.uklp-lightbox.is-visible { display: flex; opacity: 1; }
.uklp-lightbox img { max-width: 90%; max-height: 85vh; border-radius: 4px; object-fit: contain; }
.uklp-lightbox-close { position: absolute; top: 20px; right: 20px; width: 44px; height: 44px; background: rgba(255,255,255,0.2); border-radius: 50%; color: #fff; font-size: 32px; display: flex; align-items: center; justify-content: center; cursor: pointer; }

/* --- Table Field Plugin用スタイル（修正版） --- */
.blp-price-table, .acf-price-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    font-size: 16px;
    border: 1px solid #ddd;
    table-layout: fixed; /* 列幅を固定してはみ出し防止 */
}

/* ヘッダーの色をサイトのテーマ（茶色）に合わせる */
.blp-price-table th, .acf-price-table th {
    background-color: #6d665e; /* サイト内の他テーブルに合わせた色 */
    color: #fff;               /* 文字色を白に */
    font-weight: 700;
    padding: 14px 10px;
    border: 1px solid #ccc;
    text-align: center;
    vertical-align: middle;
}

.blp-price-table td, .acf-price-table td {
    padding: 14px 12px;
    border: 1px solid #ddd;
    vertical-align: middle;
    color: #333;
    word-wrap: break-word;       /* 長い単語も折り返す */
    overflow-wrap: break-word;   /* 確実に折り返す */
}

/* 詳細ページの料金表エリア調整 */
.blp-price-wrapper {
    margin-bottom: 30px;
    width: 100%;
}

/* ==============================================
   スマホ表示の修正：マージン方式による強制適用
============================================== */
@media screen and (max-width: 768px) {
  .uklp-slider-nav {
    display: none !important;
  }

  /* スライダー本体 */
  .uklp-case-slider {
    /* gapは無効化し、marginで制御する（iPhone対策） */
    gap: 0 !important;
    
    /* 左右の余白を7.5%にする */
    /* 計算式：(画面幅100% - カード幅85%) ÷ 2 = 7.5% */
    /* これにより、一番端のカードも画面中央に配置可能になります */
    padding: 0 7.5% 40px 7.5% !important;
    
    /* スクロール開始位置を左端に固定 */
    justify-content: flex-start !important;
    scroll-snap-type: x mandatory;
  }

  /* 個々のカード */
  .uklp-case-card {
    /* 幅を85%に固定 */
    flex: 0 0 85% !important;
    width: 85% !important;
    max-width: 85% !important;
    
    /* カードの右側に20pxの隙間を作る */
    margin-right: 20px !important;
    margin-left: 0 !important;
    
    /* 以前の透明な枠線ハックを確実にリセット */
    border: 1px solid #eee !important;
    background-clip: border-box !important;
    
    /* 画面中央に吸着させる */
    scroll-snap-align: center;
  }

  /* 最後のカードだけ右余白をゼロにする（不要な余白防止） */
  .uklp-case-card:last-child {
    margin-right: 0 !important;
  }
}


/* =======================================================
   5. Botox Custom HTML Inline CSS Moved (Case + Magnify + Lightbox)
   ※ 元: ボトックスページ_カスタムHTML.html 内の <style> を統合
======================================================= */
/* --- 表示切り替え用ユーティリティ --- */
.view-sp { display: none !important; }
@media screen and (max-width: 768px) {
  .view-pc { display: none !important; }
  .view-sp { display: block !important; }
}

/* --- 共通ライトボックス（PC・スマホ兼用） --- */
#uklp-lightbox {
  position: fixed; top:0; left:0; width:100%; height:100%;
  background: rgba(0,0,0,0.85);
  z-index: 99999;
  display: none; 
  opacity: 0;
  transition: opacity 0.3s;
  justify-content: center;
  align-items: center;
}
#uklp-lightbox.is-visible { display: flex; opacity: 1; }

/* 閉じるボタン */
.uklp-lightbox-close {
  position: fixed; 
  top: 20px; 
  right: 20px;
  width: 50px; 
  height: 50px;
  background: rgba(0,0,0,0.6);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 50%;
  color: #fff;
  font-size: 36px;
  line-height: 46px;
  text-align: center;
  cursor: pointer;
  z-index: 100002;
  transition: background 0.3s;
}
.uklp-lightbox-close:hover {
  background: rgba(0,0,0,0.9);
}

/* スクロール領域 */
#uklp-lightbox-scroll {
  width: 100%; height: 100%;
  overflow-y: auto;
  padding: 80px 20px 40px;
  box-sizing: border-box;
  display: flex; 
  flex-direction: column; 
  align-items: center;
}

/* 内部コンテナ */
#uklp-lightbox-inner {
  width: 100%; 
  display: flex; 
  gap: 30px;
}

.uklp-lb-group { flex: 1; }
.uklp-lb-label {
  display: block; color: #fff;
  font-size: 18px; font-weight: 700;
  margin-bottom: 10px; padding-left: 10px;
  border-left: 5px solid #8c7b64;
}
.uklp-lb-img { width: 100%; height: auto; border-radius: 6px; display: block; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }

/* PC用ライトボックスレイアウト */
@media screen and (min-width: 769px) {
  #uklp-lightbox-scroll { justify-content: center; }
  #uklp-lightbox-inner {
    flex-direction: row;
    width: 90vw;
    max-width: 1400px;
    align-items: flex-start;
  }
}

/* スマホ用ライトボックスレイアウト */
@media screen and (max-width: 768px) {
  #uklp-lightbox-inner {
    flex-direction: column;
    max-width: 500px;
    gap: 40px;
  }
  .uklp-lightbox-close {
    width: 44px; height: 44px; font-size: 30px; line-height: 42px;
    top: 15px; right: 15px;
  }
}

#new-case-section {
  width: 100%; overflow: hidden; background: #fff; padding: 50px 0;
  font-family: "Noto Sans JP", sans-serif;
}
#new-case-section * { box-sizing: border-box; }

.ncs-title-area { text-align: center; margin-bottom: 20px; padding: 0 20px; }
.ncs-main-title { font-family: "Shippori Mincho", serif; font-size: 26px; font-weight: 700; color: #333; margin: 0; }

.ncs-wrapper { position: relative; max-width: 900px; margin: 0 auto; padding: 0; }
.ncs-slider-container {
  width: 100%; display: flex; gap: 0; padding: 0 0 30px 0;
  overflow-x: scroll; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.ncs-slider-container::-webkit-scrollbar { display: none; }

@media screen and (max-width: 768px) {
  .ncs-wrapper { padding: 0; }
  .ncs-nav-btn { display: none !important; }
  .ncs-spacer { flex: 0 0 7.5%; width: 7.5%; min-width: 7.5%; visibility: hidden; }
  .ncs-card { flex: 0 0 85%; width: 85%; min-width: 85%; margin-right: 12px; }
  .ncs-card:last-of-type { margin-right: 0; }
}

.ncs-nav-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 50px; height: 50px; background: #f7f7f7; border: 1px solid #ddd;
  border-radius: 50%; display: flex; align-items: center; justify-content: center;
  cursor: pointer; z-index: 10; transition: all 0.3s; color: #333;
}
.ncs-nav-btn:hover { background: #8c7b64; color: #fff; border-color: #8c7b64; }
.ncs-nav-btn svg { width: 24px; height: 24px; fill: currentColor; }
.ncs-prev { left: 0; }
.ncs-next { right: 0; }

.ncs-card {
  background: #fff; border: 1px solid #e5e5e5; border-radius: 12px;
  padding: 20px 15px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.03);
  scroll-snap-align: center; scroll-snap-stop: always;
  position: relative; display: flex; flex-direction: column; height: auto;
}
@media (max-width: 768px) { .ncs-card { padding: 20px 14px; } }

.ncs-card-title {
  font-family: "Shippori Mincho", serif; 
  font-size: 20px;
  text-align: center; 
  margin: 0 0 15px 0;
  color: #333; 
  font-weight: 600; 
}

/* スマホ用画像エリア */
.ncs-images {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 15px;
}
.ncs-img-box {
  flex: 1; 
  text-align: center; 
  position: relative; 
  cursor: pointer;
}
.ncs-img-box img { 
  width: 100%; height: auto; aspect-ratio: 3/2; 
  object-fit: cover; display: block; 
  border-radius: 6px; 
  border: 1px solid #eee;
}
.ncs-label { 
  display: block; 
  margin-top: 6px; 
  font-size: 12px; 
  color: #666; 
  font-weight: 500;
  text-align: center;
}

/* 虫眼鏡アイコン（共通クラス） */
.magnify-icon {
  position: absolute; bottom: 0; right: 0;
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none; opacity: 0.9; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.5));
  z-index: 2;
}
.ncs-img-wrapper {
  position: relative;
  display: block;
}
.magnify-icon svg { width: 18px; height: 18px; fill: #fff; }

/* 矢印 */
.ncs-arrow {
  flex: 0 0 16px;
  color: #bbb;
  display: flex; justify-content: center;
  margin-top: -20px; 
}
.ncs-arrow svg { width: 20px; height: 20px; }

.ncs-info-row { border-top: 1px solid #f0f0f0; padding: 12px 0; }
.ncs-info-label { font-size: 13px; font-weight: 700; color: #8c7b64; margin-bottom: 4px; display: block; }
.ncs-info-text { font-size: 13px; line-height: 1.6; color: #333; }

.ncs-doctor-box { background: #f9f9f7; border-radius: 8px; padding: 15px; margin-top: 15px; }
.ncs-doc-head { font-size: 13px; font-weight: 700; margin-bottom: 10px; color: #333; }
.ncs-doc-content { display: flex; gap: 12px; align-items: flex-start; }
.ncs-doc-icon { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; width: 60px; }
.ncs-doc-icon img { width: 50px; height: 50px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 2px 5px rgba(0,0,0,0.1); object-fit: cover; margin-bottom: 4px; }
.ncs-doc-name { font-size: 10px; font-weight: 700; white-space: nowrap; text-align: center; line-height: 1.2; }
.ncs-doc-text { font-size: 12px; line-height: 1.6; color: #444; text-align: justify; }

.ncs-dots { display: flex; justify-content: center; gap: 8px; margin-top: 15px; }
.ncs-dot { width: 10px; height: 10px; background: #ddd; border-radius: 50%; transition: all 0.3s; cursor: pointer; }
.ncs-dot.active { background: #8c7b64; transform: scale(1.1); }

/* PC用画像ラッパー */
.uklp-img-wrapper {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
  line-height: 0;
}
.uklp-img-wrapper img {
  display: block;
  width: 100%;
  height: auto;
}
/* PC用虫眼鏡: サイズアップ + 位置を少し内側へ */
.view-pc .magnify-icon {
  position: absolute;
  /* 画像の右下隅から10pxずつ離して配置 */
  bottom: 10px; 
  right: 5px;
  background: transparent;
  margin: 0;
  width: 40px;
  height: 40px;
}
.view-pc .magnify-icon svg {
  width: 24px;
  height: 24px;
}

/* =====================================================
   view-pc / view-sp utilities (hard guarantee)
   - Prevents duplicate sections on mobile
   ===================================================== */
.view-pc{display:block !important;}
.view-sp{display:none !important;}
@media screen and (max-width: 768px){
  .view-pc{display:none !important;}
  .view-sp{display:block !important;}
}

/* ==========================
   Lightbox labels restore
   ========================== */
#uklp-lightbox-scroll{
  width: 100%;
  height: 100%;
  overflow-y: auto;
  padding: 80px 20px 40px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#uklp-lightbox-inner{
  width: 100%;
  display: flex;
  gap: 30px;
}

.uklp-lb-group{ flex: 1; }

.uklp-lb-label{
  display: block;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 10px;
  padding-left: 10px;
  border-left: 5px solid #8c7b64;
}

.uklp-lb-img{
  width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}

/* PC layout */
@media screen and (min-width: 769px){
  #uklp-lightbox-scroll{ justify-content: center; }
  #uklp-lightbox-inner{
    flex-direction: row;
    width: 90vw;
    max-width: 1400px;
    align-items: flex-start;
  }
}

/* SP layout */
@media screen and (max-width: 768px){
  #uklp-lightbox-inner{
    flex-direction: column;
    max-width: 500px;
    gap: 40px;
  }
}

/* --- リッチユニット共通デザイン (視認性強化版 v6) --- */
.uklp-rich-unit {
    max-width: 1280px; 
    width: 94%; 
    margin: 60px auto; 
    background: #fff;
    border: 1px solid #eaddcf;
    box-shadow: 0 5px 25px rgba(0,0,0,0.06); 
    border-radius: 12px;
    overflow: hidden;
    font-family: "Noto Sans JP", sans-serif;
}
.uklp-rich-flex { display: flex; align-items: stretch; }
.uklp-rich-flex.is-reverse { flex-direction: row-reverse; }

/* 画像エリア */
.uklp-rich-img { flex: 0 0 50%; background: #f0f0f0; min-height: 300px; }
.uklp-rich-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* テキストエリア */
.uklp-rich-body { 
    flex: 1; 
    padding: 50px 45px; /* 横余白を少し広げ、縦も確保 */
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
}

/* タイトル：より大きく、より太く */
.uklp-rich-title { 
    font-family: "Shippori Mincho", serif; 
    font-size: 32px; /* 28px -> 32px にアップ */
    font-weight: 800; 
    color: #8c7b64; 
    margin-bottom: 20px; 
    letter-spacing: 0.1em; 
    line-height: 1.3;
}

/* 本文：18pxでしっかり読ませる */
.uklp-rich-text { 
    font-size: 18px; /* 15px -> 18px にアップ */
    font-weight: 600; /* 少し太めに */
    color: #333; 
    line-height: 1.8; 
    margin-bottom: 30px; 
}

/* ボタン：縦幅を出し、文字も大きく */
.uklp-rich-btn {
    display: inline-block; 
    padding: 22px 40px; /* 縦幅を 16px -> 22px にアップ */
    background: #8c7b64; 
    color: #fff !important; 
    text-decoration: none; 
    font-size: 20px; /* 16px -> 20px にアップ */
    font-weight: 700; 
    border-radius: 8px; 
    transition: all 0.3s ease;
    border: none; 
    cursor: pointer; 
    text-align: center;
    box-shadow: 0 4px 12px rgba(140, 123, 100, 0.25);
    min-width: 280px; 
    line-height: 1.4;
    white-space: nowrap; 
	box-sizing: border-box;
}
.uklp-rich-btn:hover { 
    background: #766854; 
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(140, 123, 100, 0.35);
}

/* LINEボタン */
.uklp-rich-btn.line { 
    background: #06c755; 
    box-shadow: 0 4px 12px rgba(6, 199, 85, 0.25);
}
.uklp-rich-btn.line:hover { background: #05b54d; }

.uklp-rich-btns { 
    display: flex; 
    justify-content: center; 
    gap: 20px; 
    flex-wrap: wrap; 
}

/* --- スマホ表示調整 --- */
@media (max-width: 900px) {
    .uklp-rich-unit { margin: 40px auto; width: 92%; }
    .uklp-rich-flex { flex-direction: column !important; }
    
    .uklp-rich-img { 
        width: 100%; 
        height: 0; 
        padding-top: 56.25%; /* 16:9維持 */
        position: relative;
        flex: none;
        min-height: auto;
    }
    .uklp-rich-img img { position: absolute; top: 0; left: 0; }

    .uklp-rich-body { padding: 40px 24px; text-align: center; }
    
    /* スマホ見出し：28px */
    .uklp-rich-title { font-size: 28px; margin-bottom: 15px; }
    
    /* スマホ本文：16px */
    .uklp-rich-text { font-size: 16px; text-align: left; margin-bottom: 30px; }
    
    .uklp-rich-btns { flex-direction: column; gap: 15px; }
    
    /* スマホボタン：縦幅 20px / 文字 18px */
    .uklp-rich-btn { 
        width: 100%; 
        min-width: auto; 
        padding: 20px 20px; 
        font-size: 18px;
        white-space: normal; 
    }
}

/* =======================================================
   Beauty Top Page (Ritz Premium v10 - Final Scroll Fix)
======================================================= */
:root {
    --ritz-gold: #916F4E;
    --ritz-black: #111;
    --ritz-bg: #fdfcfb;
    --font-serif: "Shippori Mincho", serif;
}

/* --- 【最重要】スクロール二重化防止（スクロールは html に一本化） --- */
/*
  目的:
  - 縦スクロールのコンテナが「html」と「body」/ラッパーに分裂して二重スクロールになるのを防ぐ
  - JS（ドロワー等）が body に inline で overflow:hidden を付けた時は、そのロックを必ず優先する
*/

/* スクロールは html 側に集約（ブラウザ標準の挙動に寄せる） */
html{
    overflow-y: auto;
    overflow-x: hidden;
    height: auto;
    min-height: 100%;
}

/* body をスクロールコンテナにしない（テーマ側の overflow 指定を打ち消す） */
body{
    overflow: visible !important;
    overflow-x: hidden;
    height: auto;
    min-height: 100%;
    margin: 0;
    position: relative;
    width: 100%;
}

/* JSでドロワー等を開いた時のスクロールロック（inline style）を必ず通す */
body[style*="overflow: hidden"],
body[style*="overflow:hidden"]{
    overflow: hidden !important;
}

/* テーマ/プラグイン側で「固定高さ + overflow」を付けてしまう可能性があるラッパーを解除 */
#page, .site, .site-content, .ritz-wrapper,
#wrap, #wrapper, #container, #content, main, .wrap, .container{
    overflow: visible !important;
    height: auto !important;
    min-height: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
}


/* 共通設定 */
.ritz-section { padding: 100px 0; background: var(--ritz-bg); font-family: var(--font-serif); width: 100%; box-sizing: border-box; }
.ritz-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; width: 100%; box-sizing: border-box; }

/* 見出し */
.ritz-sec-title {
    text-align: center; font-size: 42px; color: var(--ritz-black);
    font-weight: 500; margin-bottom: 60px; letter-spacing: 0.05em;
}
.ritz-sec-title span {
    display: block; font-size: 16px; color: var(--ritz-gold);
    margin-top: 12px; letter-spacing: 0.1em; font-family: "Noto Sans JP", sans-serif; font-weight: 600;
}

/* 1. Hero (高さ微調整) */
.ritz-hero {
    position: relative; 
    height: 80vh; /* 85vh -> 80vh に短縮 */
    min-height: 650px; 
    display: flex; align-items: center; justify-content: center;
    background: #000; overflow: hidden; width: 100%;
    margin-top: 0; padding-top: 0;
}
.ritz-hero-bg img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; opacity: 0.6;
    animation: bgZoom 10s ease-out forwards;
}
@keyframes bgZoom { from { transform: scale(1.1); } to { transform: scale(1.0); } }

.ritz-hero-content {
    position: relative; z-index: 10; color: #fff; text-align: left;
    width: 100%; max-width: 1200px; padding: 0 40px; box-sizing: border-box;
    display: flex; flex-direction: column; justify-content: center; height: 100%;
    padding-bottom: 50px;
}
.ritz-hero-en {
    font-family: "Times New Roman", serif; font-size: 80px;
    line-height: 1.1; letter-spacing: 0.02em; font-weight: 400; margin-bottom: 40px;
}
.ritz-hero-jp-wrap {
    border-left: 1px solid rgba(255,255,255,0.5);
    padding-left: 30px; margin-left: 5px;
}
.ritz-hero-jp-main { font-size: 32px; font-weight: 500; line-height: 1.4; margin-bottom: 15px; }
.ritz-hero-jp-sub { font-size: 16px; font-family: "Noto Sans JP", sans-serif; line-height: 1.8; opacity: 0.9; }
.anim-fade-up { opacity: 0; transform: translateY(20px); animation: fadeUp 1s ease forwards; }
.delay-200 { animation-delay: 0.4s; }
@keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }

/* 2. Doctor Top */
.ritz-doctor-top { background: #000; color: #fff; padding: 0; }
.ritz-doctor-top .ritz-container { max-width: 100%; padding: 0; }
.ritz-doc-flex { display: flex; align-items: stretch; }
.ritz-doc-info { width: 50%; padding: 100px 6%; display: flex; flex-direction: column; justify-content: center; }
/* 本文サイズアップ */
.ritz-doc-lead { font-size: 36px; margin-bottom: 30px; line-height: 1.5; font-weight: 500; letter-spacing: 0.05em; }
.ritz-doc-desc { font-size: 18px; line-height: 2.2; opacity: 0.95; font-family: "Noto Sans JP", sans-serif; margin-bottom: 40px; }
.ritz-doc-sign { font-size: 24px; text-align: right; margin-top: 10px; font-family: var(--font-serif); }
.ritz-doc-img-wrap { width: 50%; position: relative; min-height: 600px; }
.ritz-doc-img-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.fade-bottom {
    mask-image: radial-gradient(circle at center, black 60%, transparent 100%);
    -webkit-mask-image: radial-gradient(circle at center, black 60%, transparent 100%);
}

/* 3. About */
.ritz-about { background: #fff; }
.ritz-lead { 
    text-align: center; font-size: 20px; /* サイズアップ */
    line-height: 2.2; margin-bottom: 60px; font-family: "Noto Sans JP", sans-serif; color: #333; 
}
.ritz-features { display: flex; flex-direction: column; gap: 40px; }
.ritz-feat-item { display: flex; align-items: stretch; border: 1px solid #eee; background: #fff; }
.ritz-feat-item.reverse { flex-direction: row-reverse; }
.ritz-feat-num { background: #111; color: #fff; width: 100px; display: flex; align-items: center; justify-content: center; font-size: 36px; font-family: serif; flex-shrink: 0; }
.ritz-feat-text { flex: 1; padding: 40px 50px; display: flex; flex-direction: column; justify-content: center; }
.ritz-feat-text h4 { font-size: 28px; margin-bottom: 15px; color: var(--ritz-black); }
.ritz-feat-text p { font-size: 18px; /* サイズアップ */ line-height: 1.8; font-family: "Noto Sans JP", sans-serif; margin: 0; }
.ritz-feat-img { width: 40%; min-width: 300px; }
.ritz-feat-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 4. Menu Simple */
.ritz-menu-simple { background: #fdfcfb; }
.ritz-menu-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ritz-menu-item { position: relative; display: block; height: 240px; overflow: hidden; text-decoration: none; border-radius: 4px; }
.ritz-menu-bg { width: 100%; height: 100%; }
.ritz-menu-bg img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.ritz-menu-item:hover .ritz-menu-bg img { transform: scale(1.1); }
.ritz-menu-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.3); transition: 0.3s; }
.ritz-menu-item:hover .ritz-menu-overlay { background: rgba(0,0,0,0.5); }
.ritz-menu-cat { position: absolute; top: 15px; left: 0; background: var(--ritz-gold); color: #fff; font-size: 12px; padding: 4px 12px; font-family: "Noto Sans JP", sans-serif; }
/* メニュー名サイズアップ */
.ritz-menu-name { 
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); 
    color: #fff; font-size: 24px; /* アップ */
    font-weight: 500; width: 90%; text-align: center; text-shadow: 0 2px 10px rgba(0,0,0,0.5); 
    font-family: var(--font-serif); 
}
.ritz-menu-more { text-align: center; margin-top: 50px; }
.ritz-menu-more a { display: inline-block; padding: 18px 60px; border: 1px solid var(--ritz-gold); color: var(--ritz-gold); text-decoration: none; font-size: 16px; font-weight: 500; transition: all 0.3s ease; position: relative; background: #fff; letter-spacing: 0.1em; }
.ritz-menu-more a:hover { background: var(--ritz-gold); color: #fff; }

/* 5. Doctors List (Fix Mask) */
.ritz-doctors-list { background: #f4f4f4; }
.ritz-doctors-flex { display: flex; justify-content: space-between; align-items: center; gap: 50px; }
.ritz-doctors-text { width: 40%; }
.ritz-doctors-desc { font-size: 18px; /* アップ */ line-height: 2; margin-bottom: 40px; font-family: "Noto Sans JP", sans-serif; color: #333; }
.ritz-doctors-links { list-style: none; padding: 0; margin: 0; }
.ritz-doctors-links li { border-bottom: 1px solid #ccc; padding: 18px 0; display: flex; align-items: center; }
.ritz-doctors-links li::before { content: "●"; color: #8c7b64; font-size: 8px; margin-right: 15px; }
.ritz-doctors-links a { color: #8c7b64; text-decoration: none; display: flex; justify-content: space-between; font-size: 20px; font-weight: 700; font-family: var(--font-serif); width: 100%; }
.ritz-doctors-links a::after { content: '→'; color: #ccc; }
.ritz-doctors-links a:hover { opacity: 0.7; }

/* 画像同化：範囲を狭めて境界線を完全に消す */
.ritz-doctors-img { width: 55%; position: relative; }
.ritz-doctors-img img { width: 100%; display: block; }
.fade-bottom-white {
    /* グラデーションの開始位置を調整 */
    mask-image: radial-gradient(rectangle at center, black 50%, transparent 95%);
    -webkit-mask-image: radial-gradient(rectangle at center, black 50%, transparent 95%);
}

/* 6. News */
.ritz-news { background: #f9f9f9; }
.ritz-news-list { list-style: none; margin: 0; padding: 0; max-width: 900px; margin: 0 auto; }
.ritz-news-list li { border-bottom: 1px solid #ddd; }
.ritz-news-list a { display: flex; gap: 40px; padding: 25px 0; text-decoration: none; color: #333; align-items: center; }
.news-date { font-family: "Times New Roman", serif; color: #888; font-size: 16px; }
.news-title { font-family: "Noto Sans JP", sans-serif; font-size: 18px; /* アップ */ }
.ritz-news-more { text-align: right; max-width: 900px; margin: 30px auto 0; }
.ritz-news-more a { color: var(--ritz-gold); text-decoration: none; font-size: 16px; border-bottom: 1px solid; }

/* 7. Access */
.ritz-access { background: #fff; }
.ritz-access-flex { display: flex; gap: 60px; align-items: stretch; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 60px 0; }
.ritz-access-info { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
.ritz-access-text-wrap { height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.ritz-addr { font-size: 18px; /* アップ */ line-height: 1.8; margin-bottom: 30px; font-family: "Noto Sans JP", sans-serif; }
.ritz-tel-row { border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; padding: 25px 0; display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; }
.ritz-tel { font-size: 36px; font-family: serif; color: var(--ritz-black); text-decoration: none; }
.ritz-link-arrow { display: inline-block; padding: 15px 40px; background: #f4f4f4; color: #333; text-decoration: none; border: 1px solid #ddd; font-size: 16px; font-weight: 500; transition: all 0.3s ease; text-align: center; margin-top: auto; max-width: 280px; }
.ritz-link-arrow:hover { background: var(--ritz-gold); color: #fff; border-color: var(--ritz-gold); }
.ritz-access-map { flex: 1; min-height: 400px; }
.ritz-access-map iframe { width: 100%; height: 100%; display: block; }

/* SP調整 */
@media (max-width: 768px) {
    .sp-only { display: block; }
    .ritz-section { padding: 60px 0; }
    .ritz-container { width: 100%; padding: 0 16px; }
    
    /* Hero */
    .ritz-hero { height: auto; min-height: 560px; padding: 100px 0 60px; }
    .ritz-hero-content { padding: 0 20px; text-align: center; display: block; padding-bottom: 0; }
    .ritz-hero-en { font-size: 42px; margin-bottom: 30px; line-height: 1.2; word-break: break-word; }
    .ritz-hero-jp-wrap { border-left: none; padding-left: 0; margin-left: 0; }
    .ritz-hero-jp-main { font-size: 24px; line-height: 1.4; margin-bottom: 20px; }
    .ritz-hero-jp-sub { font-size: 14px; line-height: 2; text-align: center; display: inline-block; width: 100%; }

    /* Doctor */
    .ritz-doc-flex { flex-direction: column-reverse; }
    .ritz-doc-info { width: 100%; padding: 50px 16px; }
    .ritz-doc-img-wrap { width: 100%; min-height: 450px; height: 450px; }
    
    /* About (Ritz Style) */
    .ritz-features { gap: 60px; position: relative; }
    .ritz-feat-item, .ritz-feat-item.reverse { 
        flex-direction: column; 
        border: none; background: transparent; 
        position: relative;
        min-height: 280px; 
        margin-bottom: 20px;
    }
    .ritz-feat-img { 
        position: absolute; top: 0; width: 70%; height: 100%; 
        object-fit: cover; z-index: 0; border-radius: 0; 
    }
    .ritz-feat-item:nth-child(odd) .ritz-feat-img {
        right: -16px; 
        mask-image: linear-gradient(to right, transparent 0%, black 40%);
        -webkit-mask-image: linear-gradient(to right, transparent 0%, black 40%);
    }
    .ritz-feat-item:nth-child(even) .ritz-feat-img {
        left: -16px; 
        mask-image: linear-gradient(to left, transparent 0%, black 40%);
        -webkit-mask-image: linear-gradient(to left, transparent 0%, black 40%);
    }
    .ritz-feat-text { 
        position: relative; z-index: 2; width: 60%; 
        padding: 20px 0; background: transparent; 
    }
    .ritz-feat-item:nth-child(odd) .ritz-feat-text { margin-right: auto; }
    .ritz-feat-item:nth-child(even) .ritz-feat-text { margin-left: auto; text-align: right; }
    .ritz-feat-num { 
        width: auto; height: auto; font-size: 32px; 
        color: var(--ritz-black); background: transparent; 
        justify-content: flex-start; margin-bottom: 10px;
        border-bottom: 2px solid var(--ritz-gold); display: inline-block; padding-bottom: 5px;
    }
    .ritz-feat-item:nth-child(even) .ritz-feat-num { margin-left: auto; justify-content: flex-end; }
    .ritz-feat-text h4 { font-size: 20px; font-weight: 700; margin-bottom: 10px; }
    .ritz-feat-text p { font-size: 14px; line-height: 1.6; text-shadow: 0 0 10px rgba(255,255,255,0.8); }

    /* Menu */
    .ritz-menu-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .ritz-menu-item { height: 160px; }
    .ritz-menu-name { font-size: 16px; }
    
    /* Doctors List */
    .ritz-doctors-flex { flex-direction: column-reverse; gap: 30px; }
    .ritz-doctors-text, .ritz-doctors-img { width: 100%; }
    
    /* News & Access */
    .ritz-news-list a { gap: 10px; flex-direction: column; align-items: flex-start; padding: 15px 0; }
    .ritz-access-flex { flex-direction: column; gap: 30px; padding: 30px 0; }
    .ritz-access-map { min-height: 300px; }
}



/* =========================================================
   FIX: スマホ時の右側はみ出し（横スクロール）対策
   - 二重縦スクロール対策は維持
   - モバイル(iOS Safari含む)での 100vw / 負のvwマージン起因のはみ出しを抑止
   ========================================================= */

/* 1) ルートで横方向のはみ出しを確実に抑止（iOS対策で body も指定） */
html, body{
  max-width: 100% !important;
}
@supports (overflow: clip){
  html, body{
    overflow-x: clip !important;
  }
}
@supports not (overflow: clip){
  html, body{
    overflow-x: hidden !important;
  }
}

/* 2) 特定要素が横に伸びてもスクロールバーを出さない（主要ラッパー） */
#page, .site, .site-content, .l-container, .l-wrap, .container, main, #content, #primary{
  max-width: 100% !important;
}

/* 3) フッターの full-bleed(100vw + -50vw) はモバイルで誤差が出やすいので
      モバイル時だけ安全な指定に切り替え（見た目は同等、横はみ出し防止） */
@media (max-width: 767px){
  .ggf-footer{
    width: 100% !important;
    left: 0 !important;
    right: auto !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* 4) 画像/動画など置換要素のはみ出し保険 */
img, video, iframe, svg{
  max-width: 100% !important;
}



/* =========================================================
   SP表示の余白/見切れ/Map余白 調整（iPhone mini〜ProMaxで統一見え）
   - 横はみ出し防止 & 二重縦スクロール対策は維持
   - 目的：左右の窮屈さを改善しつつ、要素の見切れを防ぐ
   ========================================================= */

@media (max-width: 768px){
  /* 1) SPの基準左右パディングを可変に（端末サイズ差を吸収） */
  :root{
    --uklp-sp-pad: clamp(18px, 5vw, 28px);
  }

  /* 2) 全体の左右余白を少し増やす（窮屈さ解消） */
  .ritz-container{
    padding-left: var(--uklp-sp-pad) !important;
    padding-right: var(--uklp-sp-pad) !important;
  }

  /* 3) Doctor Top（黒いコメントユニット）の右見切れ対策 */
  .ritz-doc-info{
    padding-left: var(--uklp-sp-pad) !important;
    padding-right: var(--uklp-sp-pad) !important;
  }

  .ritz-doc-lead{
    font-size: clamp(22px, 6.2vw, 30px) !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .ritz-doc-desc{
    font-size: clamp(14px, 4vw, 16px) !important;
    line-height: 2.0 !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .ritz-doc-sign{
    font-size: clamp(16px, 4.5vw, 20px) !important;
    line-height: 1.6 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  /* 4) Aboutの“左右にはみ出す画像”を、余白変更に合わせて維持（見た目を揃える） */
  .ritz-feat-item:nth-child(odd) .ritz-feat-img{
    right: calc(-1 * var(--uklp-sp-pad)) !important;
  }
  .ritz-feat-item:nth-child(even) .ritz-feat-img{
    left: calc(-1 * var(--uklp-sp-pad)) !important;
  }

  /* 5) AccessのGoogleMap：下の謎余白を解消（親に明確な高さを与える） */
  .ritz-access-map{
    min-height: 0 !important;
    height: clamp(240px, 62vw, 340px) !important;
  }
  .ritz-access-map iframe{
    width: 100% !important;
    height: 100% !important;
    display: block !important;
  }
}



/* =========================================================
   SP最終調整: Doctor見切れ / 連絡先の不自然改行防止 / Aboutリード左揃え
   - iPhone mini〜ProMax で“同じ印象”になるように可変サイズで調整
   ========================================================= */

@media (max-width: 768px){
  /* About リード文は中央揃え */
  .ritz-about .ritz-lead{
    text-align: center !important;
    font-size: clamp(15px, 3.8vw, 18px) !important;
    line-height: 2.0 !important;
  }

  /* Doctor コメント/肩書き・氏名の見切れ防止（サブピクセル対策も含む） */
  .ritz-doc-info{
    box-sizing: border-box !important;
    padding-right: calc(var(--uklp-sp-pad, 20px) + 8px) !important; /* 右端の“1px切れ”防止 */
    padding-left:  calc(var(--uklp-sp-pad, 20px) + 2px) !important;
  }
  .ritz-doc-sign{
    display: block !important;
    padding-right: 2px !important;
    max-width: 100% !important;
  }

  /* “電話番号など”の見た目維持：番号は折り返さず、端末が小さいほど文字だけ縮める */
  .ritz-tel-row{
    gap: 10px;
  }
  .ritz-tel-row span{
    flex: 1 1 auto;
    min-width: 10ch; /* ラベルは必要に応じて折り返してOK */
  }
  .ritz-tel{
    flex: 0 0 auto;
    white-space: nowrap !important;      /* 番号の途中改行を禁止 */
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    font-size: clamp(22px, 7.0vw, 34px) !important; /* miniでも1行に収める */
    letter-spacing: 0.02em;
  }

  /* 住所/診療時間なども小端末での不自然な段落崩れを抑制 */
  .ritz-addr{
    font-size: clamp(14px, 3.7vw, 17px) !important;
  }
  .ritz-hours{
    font-size: clamp(12px, 3.4vw, 15px) !important;
    line-height: 1.8 !important;
  }
}



/* =========================================================
   追加要望対応（2026-02-10）
   1) PC: ヘッダー＋ヒーロー＝ウィンドウ高（ぴったり）
   2) Heroの日本語コピーを明朝体に
   3) Aboutリード：不自然な“最後だけ改行”を起こしにくくする
   4) SP: 01/02 の数字と本文の距離を詰める／見出しの“術だけ改行”を防止
   5) ゴールド色は #916F4E に統一（--ritz-gold / --accent-gold）
   ========================================================= */

/* 1) PC: ヘッダー高は JS が --uklp-header-h をセット済み（page sourceより） */
@media (min-width: 769px){
  .ritz-hero{
    /* 既存の 80vh / min-height を上書き */
    height: calc(100vh - var(--uklp-header-h, 0px)) !important;
    min-height: 0 !important;
  }
}
@supports (height: 100dvh){
  @media (min-width: 769px){
    .ritz-hero{
      height: calc(100dvh - var(--uklp-header-h, 0px)) !important;
    }
  }
}

/* 2) Heroの日本語コピー（想像を超える... 等）を明朝体へ */
.ritz-hero-jp,
.ritz-hero-jp .ritz-hero-sub,
.ritz-hero-jp-wrap,
.ritz-hero-jp-main,
.ritz-hero-jp-sub{
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "MS Mincho", serif !important;
  font-weight: 500;
}

/* 3) Aboutリード：行末の“数文字だけ孤立”を減らす（PC中心） */
.ritz-lead{
  /* 既存のセンターは維持（SPは別で左揃え） */
  text-wrap: balance;
  line-break: strict;
  word-break: normal;
  max-width: 72ch;
  margin-left: auto;
  margin-right: auto;
  font-size: clamp(17px, 0.9vw + 13px, 20px);
}

/* 4) SP: 01/02と本文の距離調整 + 見出しの不自然改行防止 */
@media (max-width: 768px){
  .ritz-feat-num{
    margin-bottom: 6px !important;
    padding-bottom: 3px !important;
  }
  .ritz-feat-text h4{
    /* “術だけ次行”を抑止：フォントを少し可変にして1行に収めやすく */
    font-size: clamp(18px, 4.9vw, 22px) !important;
    line-height: 1.25 !important;
    margin-bottom: 8px !important;
    word-break: keep-all;
    overflow-wrap: normal;
    text-wrap: balance;
  }
  /* 端末が極端に小さい場合の保険 */
  @media (max-width: 360px){
    .ritz-feat-text h4{
      font-size: 18px !important;
      letter-spacing: -0.01em;
    }
  }
}



/* =========================================================
   FORCE OVERRIDE (SP About lines + spacing + reverse right edge)
   反映されない場合でも勝つように詳細セレクタ & !important 多用
   ========================================================= */
@media (max-width: 768px){
  .ritz-about .ritz-features .ritz-feat-item{ overflow: visible; }
  .ritz-about .ritz-features .ritz-feat-item .ritz-feat-num{
    position: relative !important;
    display: inline-flex !important;
    align-items: flex-end !important;
    justify-content: flex-start !important;
    border-bottom: none !important;
    padding-bottom: 10px !important; /* 数字→線 */
    margin-bottom: 8px !important;   /* 線→見出し（詰めたい場合はここをさらに下げる） */
    line-height: 1 !important;
  }
  .ritz-about .ritz-features .ritz-feat-item .ritz-feat-num::after{
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    bottom: 0 !important;
    width: clamp(140px, 42vw, 220px) !important;
    height: 2px !important;
    background: var(--ritz-gold, #916F4E) !important;
    opacity: .95 !important;
  }
  .ritz-about .ritz-features .ritz-feat-item.reverse .ritz-feat-num{
    justify-content: flex-end !important;
  }
  .ritz-about .ritz-features .ritz-feat-item.reverse .ritz-feat-num::after{
    left: auto !important;
    right: 0 !important;
  }

  /* 線→見出し/本文の距離（元の padding/margin telling を潰す） */
  .ritz-about .ritz-features .ritz-feat-item .ritz-feat-text{
    padding-top: 6px !important;
    padding-bottom: 0 !important;
  }
  .ritz-about .ritz-features .ritz-feat-item .ritz-feat-text h4{
    margin-top: 0 !important;
    margin-bottom: 8px !important;
  }
  .ritz-about .ritz-features .ritz-feat-item .ritz-feat-text p{
    margin-top: 0 !important;
  }

  /* 02（reverse）見出し右端＝本文右端：同じ“箱幅”で右寄せ */
  .ritz-about .ritz-features .ritz-feat-item.reverse .ritz-feat-text{
    text-align: right !important;
    max-width: min(26em, 78vw) !important;
    margin-left: auto !important;
    margin-right: 0 !important;
  }
}

/* =========================================================
   Aboutユニット：レイアウト精密調整版 (2026-02-11)
   1) PC: 黒ブロックとの隙間を詰め、画像手前で改行
   2) SP: 02の右揃え徹底、03の文末「す。」の孤立解消
   ========================================================= */

/* --- 全体共通：画像の低コントラスト・淡色化 --- */
.ritz-feat-img img {
    filter: contrast(0.55) brightness(1.2) saturate(0.6) !important;
    width: 100%; height: 100%; object-fit: cover; display: block;
}

/* ---------------------------------------------------------
   PC表示 (769px以上)
--------------------------------------------------------- */
@media (min-width: 769px) {
    .ritz-about .ritz-features {
        display: flex; flex-direction: column; gap: 30px !important;
    }

    .ritz-feat-item {
        display: flex; align-items: stretch;
        border: 1px solid #000 !important;
        height: 200px !important; background: #fff; overflow: hidden; position: relative;
    }

    /* 黒い番号ブロック：幅を維持 */
    .ritz-feat-num-box {
        width: 105px !important; background: #000 !important; color: #fff !important;
        display: flex !important; flex-direction: column; justify-content: center; align-items: center;
        flex-shrink: 0; z-index: 10;
    }
    .ritz-point-label { font-family: "Shippori Mincho", serif; font-size: 14px; margin-bottom: 5px; }
    .ritz-num { font-family: "Shippori Mincho", serif; font-size: 46px; line-height: 1; font-weight: 500; }

    /* コンテンツエリア：赤丸の空白を詰め、水色の線で改行させる */
    .ritz-feat-content {
        flex: 1; display: flex; align-items: center;
        z-index: 5; position: relative;
        /* 左右のパディングを個別に調整して黒ブロックに近づける */
        padding: 0 !important; 
    }

    .ritz-feat-text {
        width: 100%;
        /* 水色のライン付近で改行させるための最大幅 (画像への侵入を防ぐ) */
        max-width: 480px; 
		
		padding-left: 10px;
		padding-right: 10px;
        padding-top: 10px;
    }

    /* 01, 03：テキストが左、画像が右 */
    .ritz-feat-item:not(.reverse) .ritz-feat-content {
        padding-left: 15px !important; /* 黒ブロックとの隙間を詰める */
        justify-content: flex-start;
    }

    /* 02：テキストが右、画像が左（黒ブロックは右端） */
    .ritz-feat-item.reverse { flex-direction: row-reverse; }
    .ritz-feat-item.reverse .ritz-feat-content {
        padding-right: 15px !important; /* 黒ブロックとの隙間を詰める */
        justify-content: flex-end;
    }
    .ritz-feat-item.reverse .ritz-feat-text {
        text-align: right;
    }

    /* 画像：フェードを調整してテキスト領域を白く確保 */
    .ritz-feat-img { 
        width: 60% !important; 
        position: absolute !important; 
        top: 0; height: 100%;
        z-index: 1; 
    }
    .ritz-feat-item:not(.reverse) .ritz-feat-img {
        right: 0;
        mask-image: linear-gradient(to left, black 30%, transparent 80%);
        -webkit-mask-image: linear-gradient(to left, black 30%, transparent 80%);
    }
    .ritz-feat-item.reverse .ritz-feat-img {
        left: 0;
        mask-image: linear-gradient(to right, black 30%, transparent 80%);
        -webkit-mask-image: linear-gradient(to right, black 30%, transparent 80%);
    }
}

/* ---------------------------------------------------------
   スマホ表示 (768px以下)
--------------------------------------------------------- */
@media (max-width: 768px) {
    .ritz-about .ritz-features { gap: 20px !important; }

    .ritz-feat-item {
        position: relative !important; display: flex !important; flex-direction: column !important;
        min-height: 240px !important; /* 高さを詰めて間延び感を解消 */
        border: none !important; background: transparent !important;
        justify-content: center !important; 
    }

    /* Point + 横線 + 数字 */
    .ritz-feat-num-box {
        display: flex !important; flex-direction: column; width: auto !important;
        background: transparent !important; color: #333 !important; margin-bottom: 8px !important;
    }
    .ritz-point-label {
        font-family: "Shippori Mincho", serif; font-size: 15px; position: relative;
        padding-bottom: 4px; display: inline-block; width: fit-content;
    }
    .ritz-point-label::after {
        content: ""; position: absolute; bottom: 0; left: 0;
        width: 160%; height: 1px; background: #916F4E;
    }
    /* 02のみ右揃え */
    .ritz-feat-item.reverse .ritz-feat-num-box { align-items: flex-end; }
    .ritz-feat-item.reverse .ritz-point-label::after { left: auto; right: 0; }

    .ritz-num {
        font-family: "Shippori Mincho", serif; font-size: 40px;
        line-height: 1.1; font-weight: 500; margin-top: 2px;
    }

    /* コンテンツ */
    .ritz-feat-content { width: 100% !important; z-index: 10; margin-top: 0; }
    .ritz-feat-text h4 {
        font-size: 19px !important; font-family: "Shippori Mincho", serif;
        margin-bottom: 5px !important; font-weight: 600; line-height: 1.3;
    }
    
    /* 03の改行対策：文字間をわずかに詰め、幅を調整して「す。」を前の行へ送る */
    .ritz-feat-text p {
        font-size: 14px !important; line-height: 1.65 !important; color: #333;
        text-align: justify; letter-spacing: -0.01em; 
        max-width: 120%; /* わずかに幅を制限して禁則処理を誘発 */
    }

    /* 02の右揃え徹底 */
    .ritz-feat-item.reverse { align-items: flex-end; text-align: right; }
    .ritz-feat-item.reverse .ritz-feat-text { 
        text-align: right; 
        padding-right: 0 !important; /* 右端にきっちり寄せる */
    }

    /* 画像：コンパクト化に合わせたフェード調整 */
    .ritz-feat-img {
        position: absolute !important; top: 0; width: 85% !important; height: 100% !important;
        z-index: 1; pointer-events: none;
    }
    .ritz-feat-item:not(.reverse) .ritz-feat-img {
        right: -10px;
        mask-image: radial-gradient(circle at center right, black 10%, transparent 80%);
        -webkit-mask-image: radial-gradient(circle at center right, black 10%, transparent 80%);
    }
    .ritz-feat-item.reverse .ritz-feat-img {
        left: -10px;
        mask-image: radial-gradient(circle at center left, black 10%, transparent 80%);
        -webkit-mask-image: radial-gradient(circle at center left, black 10%, transparent 80%);
    }

    /* テキスト幅の微調整 */
    .ritz-feat-item:not(.reverse) .ritz-feat-text { max-width: 85%; }
    .ritz-feat-item.reverse .ritz-feat-text { max-width: 85%; margin-left: auto; }
}

/* =======================================================
   症例モニター募集バナー (Final Adjustments v3 - Tablet & iOS Fix)
======================================================= */
.ritz-monitor-promo {
    /* 外側の余白と背景色設定 */
    padding-top: 50px !important;
    padding-bottom: 50px !important;
    background: #fff;
    margin: 0 !important;
    width: 100%;
}

.rmb-sp-br { display: none; }

/* --- バナー枠 (PCベース) --- */
.rmb-link {
    display: block;
    position: relative;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    overflow: hidden; /* はみ出しを隠す */
    text-decoration: none;
    border-radius: 12px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.15);
    height: 380px;
    background: #f5f0e6;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    
    /* ★iOS（iPhone）の角丸バグ対策 */
    -webkit-mask-image: -webkit-radial-gradient(white, black);
    mask-image: radial-gradient(white, black);
    transform: translateZ(0); /* ハードウェアアクセラレーション有効化 */
}

.rmb-link:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 50px rgba(0,0,0,0.25);
}

/* 背景画像 */
.rmb-bg-image {
    position: absolute;
    inset: 0;
    z-index: 0;
}
.rmb-bg-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: brightness(1.05);
}

/* 黒透かし */
.rmb-black-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, 
        rgba(0,0,0,0) 0%, 
        rgba(0,0,0,0) 40%, 
        rgba(0,0,0,0.5) 65%, 
        rgba(0,0,0,0.95) 100%
    );
    z-index: 1;
}

.rmb-inner {
    position: relative;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    width: 100%;
}

/* 画像エリア（PC） */
.rmb-image {
    position: absolute;
    left: 20px;
    bottom: 0;
    width: 480px;
    height: 100%;
    z-index: 2;
    display: flex;
    align-items: flex-end;
}
.rmb-image img {
    height: 98%;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: bottom left;
    filter: drop-shadow(5px 0 15px rgba(0,0,0,0.2));
}

/* テキストエリア（PC） */
.rmb-content {
    position: relative;
    z-index: 6;
    width: 55%;
    margin-left: auto; 
    padding-right: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    height: 100%;
}

/* 各テキストスタイル（PC） */
.rmb-sub {
    font-family: "Shippori Mincho", serif;
    font-size: 20px;
    font-weight: 600;
    color: #f0eadd;
    margin: 0 0 10px 0;
    letter-spacing: 0.1em;
    text-shadow: 0 2px 4px rgba(0,0,0,0.9);
}
.rmb-title {
    font-family: "Shippori Mincho", serif;
    font-size: 60px;
    font-weight: 700;
    margin: 0 0 25px 0;
    line-height: 1.1;
    letter-spacing: 0.02em;
    color: #f1dca7; 
    background: linear-gradient(to bottom, #fff 0%, #f1dca7 50%, #bf9857 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,0.9));
}
.rmb-band {
    width: 110%;
    background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 30%, #000 100%);
    padding: 10px 0;
    margin-bottom: 20px;
    position: relative;
    border-top: 1px solid rgba(220, 180, 110, 0.9);
    border-bottom: 1px solid rgba(220, 180, 110, 0.9);
    box-shadow: 0 5px 20px rgba(0,0,0,0.6);
}
.rmb-band-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    font-family: "Shippori Mincho", serif;
}
.rmb-offer-text {
    font-size: 26px;
    font-weight: 600;
    color: #eaddcf;
    text-shadow: 0 2px 5px rgba(0,0,0,0.9);
}
.rmb-offer-price {
    font-size: 70px;
    font-weight: 700;
    color: #fff;
    line-height: 1;
    text-shadow: 0 0 25px rgba(255,255,255,0.8);
    margin-left: 5px;
}
.rmb-period {
    font-size: 19px;
    color: #eee;
    font-family: "Noto Sans JP", sans-serif;
    letter-spacing: 0.05em;
    margin: 0;
    font-weight: 500;
    text-shadow: 0 2px 5px rgba(0,0,0,1);
}

/* --- タブレット端末向け調整 (iPad mini等 768px ~ 1024px) --- */
/* PCレイアウトを維持しつつ、要素を全体的に縮小して収めます */
@media (min-width: 768px) and (max-width: 1099px) {
    .rmb-link { height: 320px; }
    
    .rmb-image {
        left: 0;
        width: 400px;
    }
    .rmb-image img { height: 95%; }
    
    .rmb-content {
        width: 60%;
        padding-right: 20px;
    }
    
    /* フォントサイズ縮小 */
    .rmb-sub { font-size: 16px; }
    .rmb-title { font-size: 42px; margin-bottom: 20px; }
    .rmb-offer-text { font-size: 20px; }
    .rmb-offer-price { font-size: 50px; }
    .rmb-period { font-size: 15px; }
}

/* --- スマホ対応 (Responsive: 767px以下) --- */
@media (max-width: 767px) {
    .rmb-sp-br { display: block; }

    /* バナー枠：標準スマホサイズ */
    .rmb-link {
        width: 100%;
        height: 300px;
        min-height: 300px;
        aspect-ratio: auto;
        border-radius: 12px;
        /* iOS角丸対策念押し */
        -webkit-mask-image: -webkit-radial-gradient(white, black);
        mask-image: radial-gradient(white, black);
    }

    .rmb-inner {
        padding: 0 10px;
        position: relative;
    }

    .rmb-image {
        position: absolute;
        left: -20px;
        bottom: 0;
        width: 48%;
        height: 100%;
        z-index: 20;
        display: flex;
        align-items: flex-end;
    }
    .rmb-image img {
        height: 95%;
        width: auto;
        max-width: 160%;
        object-fit: contain;
        object-position: bottom center;
        filter: drop-shadow(0 5px 10px rgba(0,0,0,0.3));
    }

    /* テキストエリア */
    .rmb-content {
        position: relative;
        z-index: 10;
        width: 60%;
        margin-left: auto;
        padding-right: 6px;
        padding-left: 0;
        height: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center; /* 中央揃え */
    }

    /* フォントサイズ */
    .rmb-sub {
        font-size: 15px;
        margin-bottom: 8px;
        line-height: 1.5;
        text-align: center;
        text-shadow: 0 2px 4px rgba(0,0,0,1);
        width: 100%;
    }

    .rmb-title { 
        font-size: 26px;
        margin-bottom: 12px;
        line-height: 1.2;
        white-space: nowrap;
        filter: drop-shadow(0 2px 4px rgba(0,0,0,1));
    }
    
    .rmb-band {
        width: 150%;
        margin-right: -25px;
        padding: 8px 30px 8px 0;
        margin-bottom: 12px;
        background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.85) 30%, #000 100%);
    }
    
    .rmb-band-content {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 5px;
        white-space: nowrap;
        width: 100%;
        padding-right: 10px;
    }
    
    .rmb-offer-text {
        font-size: 13px;
        font-weight: 700;
        margin-top: 2px;
    }
    .rmb-offer-price {
        font-size: 38px;
        margin-left: 0;
    }
    
    .rmb-period {
        font-size: 12px;
        line-height: 1.5;
        text-align: center;
        font-weight: 700;
        text-shadow: 0 2px 4px rgba(0,0,0,1);
        width: 100%;
    }
}

/* --- 小型端末向け (iPhone mini, SEなど 幅390px以下) --- */
@media (max-width: 390px) {
    .rmb-link { 
        height: 260px;
        min-height: 260px;
    }
    .rmb-image { 
        left: -15px; 
        width: 46%;
    }
    .rmb-image img {
        height: 94%;
        max-width: 155%;
    }
    .rmb-sub { font-size: 13px; margin-bottom: 6px; }
    .rmb-title { font-size: 23px; margin-bottom: 10px; }
    .rmb-band {
        padding: 6px 20px 6px 0;
        margin-bottom: 10px;
    }
    .rmb-offer-text { font-size: 11px; }
    .rmb-offer-price { font-size: 33px; }
    .rmb-period { font-size: 10px; }
    .rmb-content {
        padding-right: 5px;
        width: 62%;
    }
}

/* 美容トップ（ritz-wrapper）内だけ：症例誘導バナーの文字レンダリングを詳細ページ寄せ */
.ritz-wrapper .uklp-rich-unit.case-unit{
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
}

/* =======================================================
   6. ドクター詳細ページ (Ritz Style Layout - Updated)
======================================================= */
.dr-wrapper {
    width: 100%;
    background-color: #fff;
    padding-bottom: 100px;
    font-family: "Shippori Mincho", "Yu Mincho", "YuMincho", serif;
    color: #333;
}

/* ヘッダーエリア */
.dr-header {
    text-align: center;
    padding: 80px 0 60px;
}
.dr-header-en {
    font-size: 50px;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin: 0;
    line-height: 1;
    color: #111;
    font-family: "Times New Roman", serif;
}
.dr-header-jp {
    font-size: 16px;
    margin-top: 15px;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: #555;
}

/* ドクターナビゲーション */
.dr-nav-container {
    max-width: 1000px;
    margin: 0 auto 80px;
    padding: 0 20px;
}
.dr-nav-list {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}
.dr-nav-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 280px;
    padding: 15px 25px;
    border: 1px solid #ccc;
    border-radius: 999px;
    text-decoration: none;
    color: #333;
    transition: all 0.3s ease;
    background: #fff;
}
.dr-nav-btn:hover, .dr-nav-btn.current {
    background: #8c7b64;
    border-color: #8c7b64;
    color: #fff;
}
.dr-nav-role {
    font-size: 11px;
    font-family: "Noto Sans JP", sans-serif;
    display: block;
    margin-bottom: 2px;
}
.dr-nav-name {
    font-size: 15px;
    font-weight: 700;
}

/* プロフィールメインエリア */
.dr-profile-area {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
    font-family: "Noto Sans JP", sans-serif;
}

.dr-top-flex {
    display: flex;
    gap: 50px;
    margin-bottom: 50px;
    align-items: flex-start;
}
.dr-photo-col {
    width: 38%;
    flex-shrink: 0;
}
.dr-photo-col img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: top center;
    box-shadow: 0 5px 20px rgba(0,0,0,0.05);
    border-radius: 4px;
}
.dr-info-col {
    flex: 1;
}

/* 名前ブロック */
.dr-name-box {
    margin-bottom: 40px;
}
.dr-role-wrap {
    font-size: 16px;
    color: #8c7b64;
    font-weight: 600;
    display: block;
    margin-bottom: 8px;
}
.dr-clinic-name {
    margin-right: 12px;
}
.dr-name-jp {
    font-size: 38px;
    font-family: "Shippori Mincho", serif;
    font-weight: 500;
    margin: 0 0 5px 0;
    letter-spacing: 0.1em;
}
.dr-name-en {
    font-size: 14px;
    color: #999;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    display: block;
}

/* 各セクション共通 */
.dr-content-sec { margin-bottom: 40px; }
.dr-sec-title {
    font-size: 19px;
    color: #8c7b64;
    border-bottom: 1px solid #dcd3c6;
    padding-bottom: 10px;
    margin-bottom: 20px;
    font-weight: 600;
}
.dr-list { list-style: none; padding: 0; margin: 0; }
.dr-list li {
    position: relative;
    padding-left: 1.2em;
    margin-bottom: 10px;
    font-size: 16px;
    color: #333;
    line-height: 1.6;
}
.dr-list li::before {
    content: "・";
    position: absolute;
    left: 0;
    color: #333;
}
.dr-history-row {
    display: flex;
    margin-bottom: 15px;
    font-size: 16px;
    line-height: 1.6;
}
.dr-history-year { width: 5em; flex-shrink: 0; color: #333; }
.dr-history-text { flex: 1; color: #333; }

.dr-message-text p {
    font-size: 16px;
    line-height: 1.9;
    color: #333;
    margin-bottom: 1.5em;
    text-align: justify;
}
.dr-message-text p:last-child { margin-bottom: 0; }

.dr-youtube-wrap {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    background-color: #f5f5f5;
    border-radius: 8px;
    overflow: hidden;
}
.dr-youtube-wrap iframe {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
}

/* =======================================================
   レスポンシブ対応 (スマホ・小型スマホ調整)
======================================================= */
@media (max-width: 768px) {
    .dr-top-flex {
        flex-direction: column;
        gap: 30px;
        align-items: center; /* コンテナ全体を中央に */
        width: 100%;
    }
    .dr-photo-col {
        width: 100%;
        max-width: 320px;
        margin: 0 auto;
    }
    .dr-info-col {
        width: 100%;
        box-sizing: border-box;
    }
    
    /* スマホ時の氏名・役職の中央揃えと改行 */
    .dr-name-box {
        text-align: center; 
        border-bottom: 1px solid #eee;
        padding-bottom: 25px;
        width: 100%;
        box-sizing: border-box;
    }
    
    /* 役職・クリニック名 */
    .dr-role-wrap {
        display: block;
        text-align: center;
        width: 100%;
        margin-bottom: 15px;
    }
    .dr-clinic-name {
        display: block;
        margin: 0 auto 4px auto;
        font-size: 15px;
        text-align: center;
    }
    .dr-role-name {
        display: block;
        margin: 0 auto;
        font-size: 16px;
        text-align: center;
    }

    /* 氏名 */
    .dr-name-jp {
        display: block;
        font-size: 34px;
        text-align: center;
        letter-spacing: 0.1em;
        /* letter-spacingの右余白分を左にも足して、完璧な中央にする */
        padding-left: 0.1em; 
        margin: 0 auto 5px auto;
    }
    .dr-name-en {
        display: block;
        font-size: 13px;
        text-align: center;
        letter-spacing: 0.1em;
        padding-left: 0.1em;
        margin: 0 auto;
    }

    .dr-content-sec { text-align: left; }
    
    /* ★フッター強制1行化＆見切れ防止（CSSの画面比率で確実に収める） */
    .ggf-footer {
        padding-left: 5px !important;
        padding-right: 5px !important;
    }
    .ggf-footer__inner {
        width: 100% !important;
        margin: 0 auto !important;
    }
    #ggf-text {
        white-space: nowrap !important;
        /* 文字サイズを画面幅の2.2%に強制指定（見切れていた前回の2.6%からさらに縮小） */
        font-size: clamp(7px, 2.2vw, 11px) !important;
        line-height: 1 !important;
        padding: 0 !important;
    }
}

/* iPhone mini / SE 等 (幅400px以下) への追加最適化 */
@media (max-width: 400px) {
    .dr-name-jp { font-size: 30px; }
    .dr-header-en { font-size: 38px; }
    .dr-nav-btn { 
        width: 100%; 
        max-width: 100%; 
        padding: 12px 20px; 
    }
    .dr-history-row { flex-direction: column; gap: 4px; margin-bottom: 20px; }
    .dr-history-year { width: 100%; font-weight: 600; color: #8c7b64; }
    
    .dr-clinic-name { font-size: 12px; }
    .dr-role-name { font-size: 15px; }
}

/* 美容トップへ戻るボタン（シンプルテキスト＋左三角） */
.dr-back-btn-wrap {
    text-align: center;
    margin-top: 0;     /* マージンを0にして背景の隙間をなくす */
    margin-bottom: 0;  /* 下部の隙間もなくす */
	padding-top: 0px;
    padding: 40px 0px; /* 内側の余白で空間を作る（背景は白のまま） */
    background-color: #fff;
}

.dr-back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: transparent;
    color: #8c7b64;
    text-decoration: none;
    padding: 10px 15px;
    border: none;
    font-size: 16px;
    font-weight: 500;
    transition: all 0.3s ease;
    font-family: "Noto Sans JP", sans-serif;
    letter-spacing: 0.05em;
}

/* 左向きライン三角（<）の描画 */
.dr-back-btn::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-top: 1px solid currentColor;
    border-left: 1px solid currentColor;
    transform: rotate(-45deg);
    margin-right: 8px;
    margin-top: 1px;
}

.dr-back-btn:hover {
    background-color: transparent;
    color: #6b5d4b;
    opacity: 0.8;
}
/* スマホ時の戻るボタン調整 */
    .dr-back-btn-wrap {
        margin-top: 0;
        margin-bottom: 0;
        padding: 30px 0 40px; /* スマホ用もパディングで余白を確保 */
    }
    .dr-back-btn {
        width: auto;
        max-width: none;
        padding: 15px;
        font-size: 15px;
    }

/* =========================================================
   Small window: force 2 columns for dropdowns (working selectors)
========================================================= */
@media (max-width: 1200px) {
  /* 診療メニュー dropdown */
  .uklp-nav-dropdown ul{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px 18px !important;
  }
  .uklp-nav-dropdown a{
    white-space: nowrap !important;
  }

  /* PC LANGUAGE dropdown */
  #langMenuPc{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    min-width: 320px !important;
    max-width: 520px !important;
  }
  #langMenuPc button{
    width: 100% !important;
    white-space: nowrap !important;
  }
}

/* =========================================================
   Mobile LANGUAGE panel UI (force like screenshot)
========================================================= */
@media (max-width: 768px) {
  #langMenuSp{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
    padding: 18px !important;
  }

  #langMenuSp a,
  #langMenuSp button{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 56px !important;
    border-radius: 14px !important;
    border: 2px solid #d9e4ff !important;
    background: #fff !important;
    color: #1a73e8 !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    text-decoration: none !important;
    -webkit-tap-highlight-color: transparent !important;
  }
}

/* =======================================================
   PCヘッダー：診療メニュー ドロップダウン 2列時の崩れ防止
======================================================= */
@media (max-width: 1100px) {
  /* 2列グリッド + 余白確保 */
  .uklp-nav-dropdown ul {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 28px !important;
    row-gap: 10px !important;
  }

  /* 文字が重なる原因は「高さ不足 + 折返し制御不足」なので、
     折り返し許可 + 行間 + パディングを明示 */
  .uklp-nav-dropdown ul li a {
    white-space: normal !important;
    line-height: 1.45 !important;
    padding: 14px 16px !important;
    display: block !important;
    overflow-wrap: anywhere !important;
  }
}

/* さらに狭い時は少しだけ文字を詰める */
@media (max-width: 860px) {
  .uklp-nav-dropdown ul li a {
    font-size: 15px !important;
    padding: 12px 14px !important;
  }
}

/* PC: 診療メニュードロップダウンの2列化とテキスト折り返し */
@media screen and (min-width: 768px) {
    /* ▼ 診療メニューのドロップダウンの親要素のクラス名に合わせます */
    .treatment-menu-dropdown { 
        display: grid !important;
        grid-template-columns: repeat(2, 1fr); /* 均等に2列表示 */
        gap: 10px; /* メニュー間の隙間 */
        padding: 15px;
    }

    /* ▼ ドロップダウン内のリンクテキスト */
    .treatment-menu-dropdown a {
        white-space: normal !important; /* 一行に収めず改行を許可 */
        word-break: break-word; /* 単語の途中で折り返し */
        line-height: 1.5; /* 行間を広げて見やすく */
        display: block;
    }
}
/* スマホメニュー全体を覆う要素のクラス */
.mobile-menu-wrapper {
    /* transitionの時間を0.1秒（または0s）にして即座に消えるようにする */
    transition: all 0.1s ease-in-out !important; 
}

@media screen and (max-width: 767px) {
    /* スマホ版 LANGUAGEメニューの各言語ボタン */
    .lang-dropdown-menu a {
        display: block;
        padding: 16px 20px; /* タップ領域を広げる（上下16px、左右20px） */
        margin-bottom: 10px; /* ボタン同士の隙間 */
        background-color: #ffffff; /* 背景色 */
        border: 1px solid #e0e0e0; /* 薄い枠線 */
        border-radius: 8px; /* 角丸 */
        text-align: center;
        font-size: 16px;
        color: #333333;
        text-decoration: none;
        box-shadow: 0 2px 4px rgba(0,0,0,0.05); /* 軽い影でボタンっぽく */
    }

    /* タップした時のフィードバック */
    .lang-dropdown-menu a:active {
        background-color: #f5f5f5;
        transform: translateY(1px);
    }
}

/* PC: 診療メニュードロップダウンの2列化とテキスト折り返し */
@media screen and (min-width: 768px) {
    /* ▼ 診療メニューのドロップダウンの親要素のクラス名に合わせます */
    .treatment-menu-dropdown { 
        display: grid !important;
        grid-template-columns: repeat(2, 1fr); /* 均等に2列表示 */
        gap: 10px; /* メニュー間の隙間 */
        padding: 15px;
    }

    /* ▼ ドロップダウン内のリンクテキスト */
    .treatment-menu-dropdown a {
        white-space: normal !important; /* 一行に収めず改行を許可 */
        word-break: break-word; /* 単語の途中で折り返し */
        line-height: 1.5; /* 行間を広げて見やすく */
        display: block;
    }
}

/* ===================================================
   PC表示（981px以上）の強制統一スタイル
=================================================== */
@media screen and (min-width: 981px) {
    
    /* 【1】LANGUAGEドロップダウン：勝手に開くのを防ぎ、必ず2列にする */
    .lang-dropdown-menu {
        display: none !important; /* 初期状態は全PC解像度で強制非表示 */
    }
    .lang-dropdown-menu.is-open {
        display: grid !important; /* 開いた時だけ表示 */
        grid-template-columns: repeat(2, 1fr) !important; /* 4列になるのを防ぎ、強制的に2列 */
        gap: 10px !important;
    }

    /* 【2】診療メニュー：幅の統一 */
    .treatment-menu-dropdown {
        /* 例として幅を800pxに固定し、どの解像度でも同じ幅にします */
        width: 800px !important; 
        max-width: 90vw !important; /* 画面幅が狭い場合は画面の90%に収める */
        display: none !important; /* 初期非表示 */
    }
    .treatment-menu-dropdown.is-open {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* ===================================================
   トップ画像（白枠を完全に消滅させ、画像自体を角丸で綺麗に表示）
=================================================== */
.header-image-area {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important; /* PC特有の箱の固定高さを解除 */
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important; /* 余白に見えていた原因（親枠の影）を完全に削除 */
    border: none !important;
}

.header-image-area img {
    position: static !important; 
    width: 100% !important;
    height: auto !important; /* 勝手なトリミングを防ぎ、オリジナルの比率を維持 */
    object-fit: cover !important;
    max-height: none !important;
    border-radius: 12px !important; /* ★画像そのものを直接角丸にする★ */
    box-shadow: 0 4px 20px rgba(0,0,0,0.08) !important; /* 画像そのものに綺麗な影をつける */
    display: block !important;
}

/* ===================================================
   トップラベルと紹介文
=================================================== */
.header-en-labels {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
}
.header-en-labels .cat-label {
    background: #B59C74; 
    color: #fff;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 0.1em;
}
.header-en-labels .en-title {
    color: #B59C74; 
    font-size: 13px;
    font-weight: bold;
    letter-spacing: 0.1em;
}

.item-short-desc {
    font-size: 14px;
    line-height: 1.6;
    margin: 15px 0 20px;
    color: #444;
}

/* ===================================================
   ボタン設計（タブレットで見切れないフレキシブル設計）
=================================================== */
.umk-btn-container {
    display: grid !important; 
    grid-template-columns: repeat(2, minmax(0, 280px)) !important; 
    gap: 15px !important; 
    margin-top: 25px !important;
    width: 100% !important;
    justify-content: flex-start !important;
}

.umk-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 60px !important; 
    border-radius: 6px !important; 
    font-size: 16px !important; 
    font-weight: bold !important;
    text-decoration: none !important;
    letter-spacing: 0.05em !important;
    white-space: nowrap !important; 
    word-break: keep-all !important; 
    box-sizing: border-box !important;
    transition: all 0.3s ease !important;
    text-shadow: none !important;
    border: none !important;
    margin: 0 !important;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1), inset 0 1px 0 rgba(255,255,255,0.2) !important;
}

.umk-btn:hover {
    transform: translateY(-2px);
}

/* 詳細ページへ */
.umk-btn-detail {
    background: linear-gradient(180deg, #a07d58 0%, #916F4E 100%) !important;
    color: #fff !important;
}

/* 料金表はこちら */
.umk-btn-fee {
    background: linear-gradient(180deg, #4a4a4a 0%, #333333 100%) !important;
    color: #fff !important;
}

/* ===================================================
   スマホ表示（ボタンを画面いっぱいに広げ、ゆとりを持たせる）
=================================================== */
@media screen and (max-width: 768px) {
    .umk-btn-container {
        grid-template-columns: 1fr 1fr !important; 
        gap: 10px !important; 
        justify-content: stretch !important; 
        padding: 0 !important;
    }
    .umk-btn {
        height: 52px !important; 
        font-size: 13px !important; 
        padding: 0 10px !important; 
        letter-spacing: 0 !important; 
        white-space: nowrap !important; 
        width: 100% !important;
        max-width: none !important;
    }
}

/* 料金表：見出し（caption）とテーブル文字を少し大きく */
.blp-price-caption{
  font-size: 1.35rem;
  line-height: 1.4;
}

.blp-price-table th{
  font-size: 1.05rem;
}

.blp-price-table td{
  font-size: 1.05rem;
}

/* スマホは少し控えめに */
@media (max-width: 767px){
  .blp-price-caption{ font-size: 1.15rem; }
  .blp-price-table th,
  .blp-price-table td{ font-size: 1rem; }
}


/* =========================
   Hero CTA (Phase 1)
========================= */
.ritz-hero-kicker{
  font-size: 14px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.9;
  margin-bottom: 18px;
}

.ritz-hero-jp-main2{
  font-size: 44px;
  line-height: 1.25;
  font-weight: 600;
  margin: 0 0 18px;
}

.ritz-hero-jp-sub2{
  font-size: 16px;
  line-height: 1.9;
  opacity: 0.92;
  margin: 0 0 26px;
}

.ritz-hero-cta{
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  align-items: center;
}

.ritz-cta-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 18px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: transform .15s ease, opacity .15s ease;
}

.ritz-cta-btn:hover{
  transform: translateY(-1px);
  opacity: 0.95;
}

.ritz-cta-btn.is-primary{
  background: #ffffff;
  color: #111;
  border: 1px solid rgba(255,255,255,0.9);
}

.ritz-cta-btn.is-outline{
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.65);
}

.ritz-hero-note{
  margin-top: 16px;
  font-size: 12px;
  opacity: 0.75;
}

/* SP */
@media (max-width: 768px){
  .ritz-hero-jp-main2{ font-size: 30px; }
  .ritz-hero-jp-sub2{ font-size: 14px; }
  .ritz-hero-cta{ gap: 10px; }
  .ritz-cta-btn{
    width: 100%;
    max-width: 360px;
    justify-content: center;
  }
}


/* =========================
   Hero Typography (Phase 1 polish)
   明朝 × ゴシック / スマホ改行の違和感解消
========================= */

/* 明朝（見せたい箇所） */
.ritz-hero-jp-main2{
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho",
               "MS PMincho", "Times New Roman", serif;
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* サブは読みやすさ優先でゴシック寄せ */
.ritz-hero-jp-sub2,
.ritz-hero-kicker,
.ritz-cta-btn,
.ritz-hero-note{
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic",
               "Meiryo", sans-serif;
}

/* 見出しの各行（HTMLのspan） */
.ritz-hero-jp-main2 .rb-line{
  display: block;
  line-height: 1.18;
}

/* 最後の“上質に”だけ少し強く */
.ritz-hero-jp-main2 .rb-em{
  letter-spacing: 0.04em;
}

/* スマホ時：行間とサイズを最適化して「気持ち悪さ」を消す */
@media (max-width: 768px){
  .ritz-hero-jp-main2{
    font-size: 32px;     /* 30→32くらいが上品＆迫力出やすい */
    line-height: 1.14;
  }
  .ritz-hero-jp-sub2{
    font-size: 14px;
    line-height: 1.85;
  }
}

/* さらに小さい端末：3行目の“上質に”が潰れないように */
@media (max-width: 390px){
  .ritz-hero-jp-main2{
    font-size: 30px;
  }
}

/* =========================
   Beauty Top Hero (scoped)
   ※このヒーローだけに効かせる（PCデザインを壊さない）
========================= */

/* PC基準（元のritz-hero設計を尊重） */
.ritz-hero--beauty-top{
  position: relative;
}

/* 背景は既存のまま（object-fit/opacity/zoomは既存CSSが効く） */
.ritz-hero--beauty-top .ritz-hero-bg img{
  opacity: 0.6; /* 既存と同じ */
}

/* テキストブロック（PCは左寄せで“元の気持ち良い位置”） */
.ritz-hero--beauty-top .ritz-hero-content{
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: 1200px;
  padding: 0 40px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  padding-bottom: 50px;
  color: #fff;
  text-align: left;
}

/* 文字：明朝×ゴシック（上品＋視認性） */
.ritz-hero--beauty-top .ritz-hero-kicker{
  font-family: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
  font-size: 14px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.9;
  margin-bottom: 18px;
}

.ritz-hero--beauty-top .ritz-hero-jp-main2{
  font-family: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho","Times New Roman",serif;
  font-weight: 600;
  letter-spacing: 0.02em;
  font-size: 54px;
  line-height: 1.22; /* ←窮屈さ解消 */
  margin: 0 0 18px;
}

.ritz-hero--beauty-top .ritz-hero-jp-main2 .rb-line{
  display: block;
  line-height: 1.22;
}

.ritz-hero--beauty-top .ritz-hero-jp-sub2{
  font-family: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
  font-size: 16px;
  line-height: 1.9;
  opacity: 0.92;
  margin: 0 0 26px;
}

/* CTA */
.ritz-hero--beauty-top .ritz-hero-cta{
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  align-items: center;
}

.ritz-hero--beauty-top .ritz-cta-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 14px 22px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  transition: transform .15s ease, opacity .15s ease;
  font-family: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
}

.ritz-hero--beauty-top .ritz-cta-btn:hover{
  transform: translateY(-1px);
  opacity: 0.95;
}

.ritz-hero--beauty-top .ritz-cta-btn.is-primary{
  background: #ffffff;
  color: #111;
  border: 1px solid rgba(255,255,255,0.9);
}

.ritz-hero--beauty-top .ritz-cta-btn.is-outline{
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.65);
}

.ritz-hero--beauty-top .ritz-hero-note{
  margin-top: 16px;
  font-size: 12px;
  opacity: 0.75;
  font-family: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic","Meiryo",sans-serif;
}

@media (max-width: 768px){
  .ritz-hero--beauty-top{
    height: auto;
    min-height: auto;
    padding-top: calc(env(safe-area-inset-top) + 20px);
    padding-bottom: 20px;
  }

  .ritz-hero--beauty-top .ritz-hero-content{
    padding: 0 16px;
    text-align: center;
    display: block;
    height: auto;
    padding-bottom: 0;
  }

  .ritz-hero--beauty-top .ritz-hero-text-group{
    max-width: 100%;
    margin: 0 auto;
  }

  .ritz-hero--beauty-top .ritz-hero-kicker{
    margin: 0 0 10px;
    font-size: 12px;
    letter-spacing: 0.14em;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-main2{
    font-size: 32px;
    line-height: 1.24;
    margin-bottom: 12px;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-main2 .rb-line.rb-em{
    white-space: nowrap;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-sub2{
    font-size: 13px;
    line-height: 1.75;
    margin-bottom: 14px;
  }

  .ritz-hero--beauty-top .ritz-hero-opening{
    margin: 0 0 16px;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date{
    font-size: 20px;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date strong{
    font-size: 24px;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .place{
    font-size: 13px;
    line-height: 1.6;
  }

  .ritz-hero--beauty-top .ritz-hero-cta{
    flex-direction: column;
    gap: 10px;
  }

  .ritz-hero--beauty-top .ritz-cta-btn{
    width: 100%;
    max-width: 100%;
    min-height: 56px;
    font-size: 16px;
  }

  .ritz-hero--beauty-top .ritz-hero-note{
    margin-top: 12px;
    margin-bottom: 0;
    font-size: 11px;
  }
}

/* iPhone mini級：さらに少しだけ小さく */
@media (max-width: 390px){
  .ritz-hero--beauty-top .ritz-hero-jp-main2{
    font-size: 29px;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-sub2{
    font-size: 12.5px;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date{
    font-size: 18px;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date strong{
    font-size: 22px;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .place{
    font-size: 12px;
  }
}


/* =========================
   Hero: 文字の視認性向上のため背景を少し暗くする
========================= */
.ritz-hero {
  position: relative;
}

.ritz-hero-bg img {
  opacity: 0.48 !important;
  filter: brightness(0.78);
}

.ritz-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.24);
  z-index: 2;
  pointer-events: none;
}

.ritz-hero-content {
  position: relative;
  z-index: 10;
}

/* =========================
   Hero右下：症例モデルバナー
========================= */
.ritz-hero-monitor-badge {
  position: absolute;
  right: clamp(42px, 7vw, 120px);
  bottom: 18px;
  z-index: 12;
  width: 920px;
  transform: scale(0.36);
  transform-origin: right bottom;
}

.ritz-hero-monitor-badge .ritz-monitor-promo {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}

.ritz-hero-monitor-badge .ritz-container {
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

.ritz-hero-monitor-badge .rmb-link {
  margin: 0 !important;
  box-shadow: 0 10px 24px rgba(0,0,0,0.34);
}

/* PC少し小さめ */
@media (max-width: 1400px) {
  .ritz-hero-monitor-badge {
    right: 28px;
    bottom: 14px;
    width: 860px;
    transform: scale(0.34);
  }
}

/* タブレット */
@media (max-width: 980px) {
  .ritz-hero-monitor-badge {
    right: 18px;
    bottom: 12px;
    width: 720px;
    transform: scale(0.30);
  }
}

/* スマホ：重ならないように通常フローに戻す */
@media (max-width: 768px) {
  .ritz-hero-monitor-badge {
    position: static;
    right: auto;
    bottom: auto;
    width: 100%;
    max-width: 320px;
    transform: none;
    margin: 14px auto 0;
  }

  .ritz-hero-monitor-badge .rmb-link {
    box-shadow: 0 8px 18px rgba(0,0,0,0.28);
  }
}

/* iPhone mini級 */
@media (max-width: 390px) {
  .ritz-hero-monitor-badge {
    max-width: 280px;
    margin-top: 12px;
  }
}

/* =========================
   Hero 開院情報
========================= */
.ritz-hero--beauty-top .ritz-hero-opening{
  margin: 0 0 22px;
  color: #fff;
  font-family: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho","MS PMincho","Times New Roman",serif;
  line-height: 1.5;
  text-shadow: 0 2px 10px rgba(0,0,0,0.28);
}

.ritz-hero--beauty-top .ritz-hero-opening .date{
  display: block;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.ritz-hero--beauty-top .ritz-hero-opening .date strong{
  font-size: 34px;
  font-weight: 700;
  margin-left: 0.18em;
}

.ritz-hero--beauty-top .ritz-hero-opening .place{
  display: block;
  margin-top: 4px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.03em;
  opacity: 0.95;
}

/* =========================
   Top FV layout fixes (PC/Tablet/Mobile)
   ========================= */

/* FVの中身を「左：コピー」「右：OPEN情報」に分ける */
.front-view .fv-inner,
.front-view .front-view__inner,
.fv .fv-inner,
.fv .front-view__inner {
  position: relative;
}

/* 右側OPEN情報：PCでは右に独立配置 */
.fv-openbox {
  position: absolute;
  top: 50%;
  right: clamp(16px, 2vw, 40px);
  transform: translateY(-50%);
  z-index: 3;
  text-align: left;
  pointer-events: none;
}

.fv-openbox__inner {
  pointer-events: none;
  font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  color: #fff;
}

.fv-openbox__date {
  font-size: clamp(18px, 2.2vw, 30px);
  letter-spacing: 0.06em;
  line-height: 1.15;
  font-weight: 600;
  white-space: nowrap;
}

.fv-openbox__date span {
  font-weight: 800; /* OPEN強調 */
}

.fv-openbox__place {
  margin-top: 8px;
  font-size: clamp(12px, 1.2vw, 16px);
  letter-spacing: 0.04em;
  opacity: 0.95;
  white-space: nowrap;
}

/* 左側コピー塊：右OPENぶんの余白を確保（被らないように） */
.front-view .fv-copy,
.front-view .front-view__copy,
.fv .fv-copy,
.fv .front-view__copy {
  max-width: 720px;
  padding-right: clamp(220px, 22vw, 420px);
}

/* 説明文：読みやすい行間（窮屈さ解消） */
.front-view .fv-desc,
.front-view .front-view__desc,
.fv .fv-desc,
.fv .front-view__desc {
  line-height: 1.85;
}

/* =========================
   Case banner (症例モデルバナー) PC調整
   - 右端に寄せる
   - 幅を少し小さくしつつ、見栄えは大きめに（要求対応）
   ========================= */

/* 既存バナーのクラス名に合わせてどれかが効きます */
.fv-case-banner,
.fv-floating-banner,
.case-model-banner,
.fv-banner {
  position: absolute;
  right: clamp(16px, 2vw, 40px);
  bottom: clamp(16px, 2vw, 40px);
  z-index: 4;
  width: min(460px, 30vw);   /* ←「少し幅を小さく」しつつ見えるサイズ */
  max-width: 460px;
}

/* 1680x1050で右端に行かない問題：余白計算を固定 */
@media (max-width: 1700px) {
  .fv-case-banner,
  .fv-floating-banner,
  .case-model-banner,
  .fv-banner {
    right: 24px;
  }
}

/* =========================
   Tablet / Mobile responsive
   - ボタンはみ出し解消
   - OPEN情報は右固定を解除して自然に配置
   - バナーは「重ならない」位置に移動
   ========================= */

@media (max-width: 1024px) {
  /* OPEN情報は右のabsoluteを解除し、中央揃えで下へ */
  .fv-openbox {
    position: static;
    transform: none;
    margin-top: 14px;
    text-align: center;
  }
  .fv-openbox__date,
  .fv-openbox__place {
    white-space: normal;
  }

  /* 左コピーの右paddingを解除 */
  .front-view .fv-copy,
  .front-view .front-view__copy,
  .fv .fv-copy,
  .fv .front-view__copy {
    padding-right: 0;
    max-width: 92vw;
  }

  /* バナーはabsoluteを解除して、ボタンの下に出す（重なり防止） */
  .fv-case-banner,
  .fv-floating-banner,
  .case-model-banner,
  .fv-banner {
    position: static;
    width: min(520px, 92vw);
    max-width: 520px;
    margin: 14px auto 0;
  }
}

@media (max-width: 768px) {
  /* 「GRAND GREEN ...」上の余白を詰める */
  .front-view,
  .fv {
    padding-top: 10px;
  }

  /* コピー中央ズレ/行間/余白の最適化 */
  .front-view .fv-subtitle,
  .front-view .front-view__subtitle,
  .fv .fv-subtitle,
  .fv .front-view__subtitle {
    margin-top: 6px;
  }

  /* ボタン：はみ出し防止（幅100%＋余白） */
  .front-view .fv-buttons,
  .front-view .front-view__buttons,
  .fv .fv-buttons,
  .fv .front-view__buttons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    width: min(560px, 92vw);
    margin: 16px auto 0;
  }

  .front-view .fv-buttons a,
  .front-view .front-view__buttons a,
  .fv .fv-buttons a,
  .fv .front-view__buttons a {
    width: 100%;
    box-sizing: border-box;
    padding: 18px 18px;
    font-size: 16px;
  }
}

/* =========================================================
   Beauty Top Hero Final Override
   PC / iPad / iPhone を安定させる最終上書き
   ※このブロックはファイル最下部に置く
========================================================= */

/* 共通 */
.ritz-hero--beauty-top {
  position: relative;
  overflow: hidden;
}

.ritz-hero--beauty-top .pc-only {
  display: inline;
}

.ritz-hero--beauty-top .ritz-hero-content {
  max-width: 1360px;
  padding-left: 56px;
  padding-right: 56px;
  padding-bottom: 42px;
}

.ritz-hero--beauty-top .ritz-hero-text-group {
  width: 100%;
  max-width: 100%;
}

/* 背景を少し暗くして視認性アップ */
.ritz-hero--beauty-top .ritz-hero-bg img {
  opacity: 0.46 !important;
  filter: brightness(0.72);
}

.ritz-hero--beauty-top .ritz-hero-overlay {
  background: rgba(0, 0, 0, 0.30);
}

/* =========================
   PC
========================= */
@media (min-width: 1200px) {
  .ritz-hero--beauty-top {
    min-height: 760px;
  }

  .ritz-hero--beauty-top .ritz-hero-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .ritz-hero--beauty-top .ritz-hero-mainrow {
    display: grid;
    grid-template-columns: minmax(0, 620px) minmax(320px, 460px);
    column-gap: 90px;
    align-items: center;
    width: 100%;
    max-width: 1180px;
  }

  .ritz-hero--beauty-top .ritz-hero-copycol {
    max-width: 620px;
  }

  .ritz-hero--beauty-top .ritz-hero-sidecol {
    display: flex;
    align-items: center;
    justify-content: flex-start;
  }

  .ritz-hero--beauty-top .ritz-hero-kicker {
    margin: 0 0 18px;
    font-size: 15px;
    letter-spacing: 0.14em;
    line-height: 1.4;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-main2 {
    margin: 0 0 22px;
    font-size: 72px;
    line-height: 1.16;
    letter-spacing: 0.01em;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-main2 .rb-line {
    display: block;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-sub2 {
    max-width: 620px;
    margin: 0 0 30px;
    font-size: 17px;
    line-height: 1.9;
  }

  .ritz-hero--beauty-top .ritz-hero-opening {
    margin: 0;
    text-align: left;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date {
    display: block;
    margin: 0 0 12px;
    font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
    font-size: 34px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 0.03em;
    white-space: nowrap;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date strong {
    font-weight: 700;
    margin-left: 0.2em;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .place {
    display: block;
    font-family: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
    font-size: 16px;
    line-height: 1.8;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }

  .ritz-hero--beauty-top .ritz-hero-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 0;
  }

  .ritz-hero--beauty-top .ritz-cta-btn {
    min-width: 170px;
    min-height: 58px;
    padding: 15px 24px;
    font-size: 16px;
    box-sizing: border-box;
  }

  .ritz-hero--beauty-top .ritz-hero-note {
    margin-top: 14px;
    font-size: 12px;
    line-height: 1.6;
  }

  /* PC右下バナー：圧縮させず、横長のまま表示 */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge {
    position: absolute;
    right: 36px;
    bottom: 34px;
    z-index: 12;
    width: clamp(420px, 29vw, 560px);
    max-width: 560px;
    transform: none !important;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .ritz-monitor-promo {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .ritz-container {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-link {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 2.45 / 1;
    margin: 0 !important;
    border-radius: 14px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.34);
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-image {
    left: 12px;
    width: 39%;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-image img {
    height: 96%;
    max-width: 100%;
    object-fit: contain;
    object-position: bottom left;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-content {
    width: 58%;
    padding-right: 18px;
    align-items: center;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-sub {
    font-size: 13px;
    margin-bottom: 6px;
    line-height: 1.45;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-title {
    font-size: 34px;
    margin-bottom: 10px;
    line-height: 1.1;
    white-space: nowrap;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-band {
    width: 100%;
    margin-right: 0;
    padding: 8px 10px;
    margin-bottom: 10px;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-offer-text {
    font-size: 18px;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-offer-price {
    font-size: 48px;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-period {
    font-size: 11px;
    line-height: 1.45;
  }
}

/* =========================
   iPad / Tablet
========================= */
@media (min-width: 768px) and (max-width: 1199px) {
  .ritz-hero--beauty-top {
    height: auto;
    min-height: auto;
    padding-top: 42px;
    padding-bottom: 46px;
  }

  .ritz-hero--beauty-top .pc-only {
    display: none;
  }

  .ritz-hero--beauty-top .ritz-hero-content {
    height: auto;
    max-width: 860px;
    padding-left: 34px;
    padding-right: 34px;
    padding-bottom: 0;
  }

  .ritz-hero--beauty-top .ritz-hero-mainrow {
    display: block;
  }

  .ritz-hero--beauty-top .ritz-hero-copycol,
  .ritz-hero--beauty-top .ritz-hero-sidecol,
  .ritz-hero--beauty-top .ritz-hero-text-group {
    width: 100%;
    max-width: 100%;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-kicker {
    margin: 0 0 14px;
    font-size: 13px;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-main2 {
    margin: 0 0 18px;
    font-size: clamp(54px, 7vw, 72px);
    line-height: 1.2;
    letter-spacing: 0.01em;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-main2 .rb-line {
    display: block;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-sub2 {
    max-width: 34em;
    margin: 0 auto 20px;
    font-size: 16px;
    line-height: 1.8;
    text-align: center;
    text-wrap: balance;
  }

  .ritz-hero--beauty-top .ritz-hero-sidecol {
    margin-top: 0;
  }

  .ritz-hero--beauty-top .ritz-hero-opening {
    margin: 0 auto 22px;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date {
    display: block;
    margin: 0 0 8px;
    font-size: clamp(26px, 4.4vw, 38px);
    line-height: 1.2;
    white-space: nowrap;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .place {
    display: block;
    font-size: 15px;
    line-height: 1.7;
  }

  .ritz-hero--beauty-top .ritz-hero-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin-top: 0;
  }

  .ritz-hero--beauty-top .ritz-cta-btn {
    width: min(620px, 100%);
    max-width: 620px;
    min-height: 60px;
    font-size: 18px;
    box-sizing: border-box;
  }

  .ritz-hero--beauty-top .ritz-hero-note {
    margin-top: 14px;
    text-align: center;
    font-size: 13px;
  }

  /* タブレットは絶対配置をやめて、下に独立配置 */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge {
    position: static;
    width: min(560px, 100%);
    max-width: 560px;
    margin: 26px auto 0;
    transform: none !important;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .ritz-monitor-promo {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .ritz-container {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-link {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 2.2 / 1;
    margin: 0 !important;
    border-radius: 14px;
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.28);
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-image {
    left: 8px;
    width: 41%;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-image img {
    height: 95%;
    max-width: 100%;
    object-fit: contain;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-content {
    width: 57%;
    padding-right: 14px;
    align-items: center;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-sub {
    font-size: 14px;
    margin-bottom: 6px;
    line-height: 1.45;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-title {
    font-size: 30px;
    line-height: 1.1;
    margin-bottom: 10px;
    white-space: nowrap;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-band {
    width: 100%;
    margin-right: 0;
    padding: 8px 10px;
    margin-bottom: 10px;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-offer-text {
    font-size: 16px;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-offer-price {
    font-size: 42px;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-period {
    font-size: 11px;
    line-height: 1.45;
  }
}

/* =========================
   iPhone / Small devices
========================= */
@media (max-width: 767px) {
  .ritz-hero--beauty-top {
    height: auto;
    min-height: auto;
    padding-top: calc(env(safe-area-inset-top) + 22px);
    padding-bottom: 28px;
  }

  .ritz-hero--beauty-top .pc-only {
    display: none;
  }

  .ritz-hero--beauty-top .ritz-hero-content {
    display: block;
    height: auto;
    max-width: 100%;
    padding-left: 16px;
    padding-right: 16px;
    padding-bottom: 0;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-mainrow {
    display: block;
  }

  .ritz-hero--beauty-top .ritz-hero-copycol,
  .ritz-hero--beauty-top .ritz-hero-sidecol,
  .ritz-hero--beauty-top .ritz-hero-text-group {
    width: 100%;
    max-width: 100%;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-kicker {
    margin: 0 0 12px;
    font-size: 12px;
    letter-spacing: 0.12em;
    line-height: 1.45;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-main2 {
    margin: 0 0 14px;
    font-size: clamp(30px, 10.2vw, 48px);
    line-height: 1.22;
    letter-spacing: 0.01em;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-main2 .rb-line {
    display: block;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-sub2 {
    max-width: 28em;
    margin: 0 auto 16px;
    font-size: 13px;
    line-height: 1.85;
    text-align: center;
    text-wrap: balance;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .ritz-hero--beauty-top .ritz-hero-opening {
    margin: 0 auto 18px;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date {
    display: block;
    margin: 0 0 6px;
    font-size: clamp(24px, 7vw, 34px);
    line-height: 1.2;
    white-space: normal;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .place {
    display: block;
    font-size: 12px;
    line-height: 1.7;
  }

  .ritz-hero--beauty-top .ritz-hero-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .ritz-hero--beauty-top .ritz-cta-btn {
    width: 100%;
    max-width: 100%;
    min-height: 58px;
    padding: 14px 18px;
    font-size: 16px;
    box-sizing: border-box;
  }

  .ritz-hero--beauty-top .ritz-hero-note {
    margin-top: 12px;
    font-size: 12px;
    line-height: 1.6;
    text-align: center;
  }

  /* スマホバナー：下に独立配置、横長のまま */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge {
    position: static;
    width: 100%;
    max-width: 100%;
    margin: 18px auto 0;
    transform: none !important;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .ritz-monitor-promo {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .ritz-container {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-link {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 2.05 / 1;
    margin: 0 !important;
    border-radius: 12px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
    background: #f5f0e6;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-bg-image img {
    object-fit: cover;
    object-position: center;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-black-overlay {
    background: linear-gradient(
      90deg,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,0.08) 48%,
      rgba(0,0,0,0.56) 72%,
      rgba(0,0,0,0.88) 100%
    );
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-inner {
    padding: 0;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-image {
    left: 0;
    bottom: 0;
    width: 44%;
    height: 100%;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-image img {
    height: 94%;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: bottom left;
    filter: drop-shadow(2px 4px 8px rgba(0,0,0,0.22));
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-content {
    width: 56%;
    margin-left: auto;
    padding-right: 10px;
    padding-left: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-sub {
    width: 100%;
    font-size: 10px;
    line-height: 1.45;
    margin-bottom: 6px;
    text-align: center;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-title {
    font-size: 24px;
    line-height: 1.08;
    margin-bottom: 8px;
    white-space: normal;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-band {
    width: 100%;
    margin-right: 0;
    padding: 6px 8px;
    margin-bottom: 8px;
    background: linear-gradient(
      90deg,
      rgba(0,0,0,0.05) 0%,
      rgba(0,0,0,0.38) 45%,
      rgba(0,0,0,0.88) 100%
    );
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-band-content {
    gap: 4px;
    padding-right: 0;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-offer-text {
    font-size: 12px;
    line-height: 1.2;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-offer-price {
    font-size: 32px;
    line-height: 1;
    margin-left: 0;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-period {
    font-size: 9px;
    line-height: 1.35;
    text-align: center;
  }
}

/* iPhone SE級の微調整 */
@media (max-width: 390px) {
  .ritz-hero--beauty-top .ritz-hero-jp-main2 {
    font-size: 28px;
  }

  .ritz-hero--beauty-top .ritz-hero-jp-sub2 {
    font-size: 12px;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date {
    font-size: 22px;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .place {
    font-size: 11px;
  }

  .ritz-hero--beauty-top .ritz-cta-btn {
    min-height: 56px;
    font-size: 15px;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-link {
    aspect-ratio: 2.0 / 1;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-title {
    font-size: 21px;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge .rmb-offer-price {
    font-size: 28px;
  }
}

/* =========================
   微調整：PCのOPEN案内 / SP・Tabletの主コピー位置
========================= */

/* PC：OPEN案内を少し大きく + 症例募集バナーと右揃え */
@media (min-width: 1200px) {
  .ritz-hero--beauty-top .ritz-hero-sidecol {
    justify-content: flex-end;
    text-align: right;
    padding-right: 36px; /* バナーの右端感に合わせる */
  }

  .ritz-hero--beauty-top .ritz-hero-opening {
    text-align: right;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date {
    font-size: 40px;
    line-height: 1.18;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .place {
    font-size: 18px;
    line-height: 1.75;
  }
}

/* Tablet：主コピーを少し右へ */
@media (min-width: 768px) and (max-width: 1199px) {
  .ritz-hero--beauty-top .ritz-hero-copycol {
    transform: translateX(18px);
  }
}

/* iPhone：主コピーを少し右へ */
@media (max-width: 767px) {
  .ritz-hero--beauty-top .ritz-hero-copycol {
    transform: translateX(10px);
  }
}

/* =========================
   PC微調整：OPEN案内を少し大きく・左揃え
========================= */
@media (min-width: 1200px) {
  .ritz-hero--beauty-top .ritz-hero-sidecol {
    justify-content: flex-start;
    text-align: left;
    padding-left: 34px;   /* 少し左に寄せる */
    padding-right: 0;
  }

  .ritz-hero--beauty-top .ritz-hero-opening {
    text-align: left;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .date {
    font-size: 42px;
    line-height: 1.18;
  }

  .ritz-hero--beauty-top .ritz-hero-opening .place {
    font-size: 19px;
    line-height: 1.75;
  }

  /* 症例募集バナーの左端と、OPEN案内の左端を近づける */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge {
    right: 32px;
  }
}


/* ===============================
   PCのみ：OPEN情報を少し大きく + 左揃え + 症例募集バナーと左端揃え
   （iPhone/iPadは現状維持）
================================ */
@media (min-width: 1025px) {
  /* 念のため基準を作る */
  .ritz-hero {
    position: relative;
  }

  /* 右側のOPEN情報ブロックを「バナーと同じ右基準＆同じ最大幅」にする */
  .ritz-hero-subcopy {
    position: absolute;
    right: 40px;              /* バナー（monitor-badge）と同じ */
    top: 120px;               /* 位置は必要ならここだけ微調整 */
    max-width: 560px;         /* バナーのmax-widthと合わせる */
    width: min(560px, 40vw);  /* 画面が狭いPCでも破綻しにくい */
    text-align: left;         /* ←ご要望：左揃え */
    z-index: 3;
  }

  /* 「2026年6月1日 OPEN」を少し大きく */
  .ritz-hero-date {
    font-size: clamp(34px, 2.4vw, 44px);
    line-height: 1.15;
    letter-spacing: 0.04em;
    margin: 0 0 10px 0;
    text-align: left;
  }

  /* 2行目の住所も読みやすく */
  .ritz-hero-location {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.06em;
    margin: 0;
    text-align: left;
  }
}
/* =========================
   PC微調整：症例募集バナーをOPEN案内と左揃え
========================= */
@media (min-width: 1025px) {
  .ritz-hero-monitor-badge {
    right: auto !important;
	bottom: 80px !important;
    left: calc(100% - 0px - min(560px, 40vw)) !important;
  }
}

/* =========================================================
   UMEKITA Beauty Top HERO FIX (2026-03-07)
   目的:
   - 2カラム復活（.ritz-hero-mainrow直下に copycol / sidecol がある前提）
   - 4Kは余白広め / 1680でも崩れない
   - バナー幅の“間延び”を抑える
   - PCボタンを「テキスト幅ぴったり」から改善
   使い方: assets/beauty-lp/beauty-lp.css の一番下に丸ごと貼り付け
========================================================= */

/* サブコピー末尾「ご提案します。」だけ切れないようにする（HTML側に .hero-sub-tail がある前提） */
.ritz-hero--beauty-top .hero-sub-tail{ white-space: nowrap; }

/* pc-only改行はPCだけ有効 */
.ritz-hero--beauty-top br.pc-only{ display: none; }
@media (min-width: 1200px){
  .ritz-hero--beauty-top br.pc-only{ display: block; }
}

/* =========================
   PC（1200px〜）
========================= */
@media (min-width: 1200px){
  /* 1680は1200pxに寄せ、4Kは少し広げる */
  .ritz-hero--beauty-top .ritz-hero-content{
    max-width: clamp(1200px, 70vw, 1660px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: clamp(24px, 4vw, 72px) !important;
    padding-right: clamp(24px, 4vw, 72px) !important;
  }

  /* 2カラム（左：コピー / 右：OPEN+バナー） */
  .ritz-hero--beauty-top .ritz-hero-mainrow{
    display: grid !important;
    grid-template-columns: minmax(0, 720px) minmax(0, 620px) !important;
    column-gap: clamp(140px, 8vw, 340px) !important;
    align-items: center !important;
  }

  .ritz-hero--beauty-top .ritz-hero-copycol{ min-width: 0; }
  .ritz-hero--beauty-top .ritz-hero-sidecol{
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    min-width: 0;
  }

  /* SP用バナーはPCでは非表示 */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{ display: none !important; }

  /* OPEN → バナー間 */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{
    display: block !important;
    margin-top: 22px !important;
    width: clamp(460px, 24vw, 560px) !important;
    max-width: 560px !important;
  }

  /* バナー内部の余白/白背景を殺す（ショートコード側の余計な箱対策） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .ritz-monitor-promo,
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .ritz-container{
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    max-width: none !important;
  }

  /* バナーの“間延び”抑制（リンク要素の縦横比を固定） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-link{
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    aspect-ratio: 920 / 320;
    border-radius: 16px !important;
    overflow: hidden;
  }

  /* PCボタン：テキスト幅ぴったりを避ける */
  .ritz-hero--beauty-top .ritz-cta-btn{
    min-width: 180px !important;
    padding: 15px 30px !important;
    white-space: nowrap;
  }
}

/* =========================
   iPad（768px〜1199px）
   → 1200px以下は“iPadレイアウト”
========================= */
@media (min-width: 768px) and (max-width: 1199px){
  .ritz-hero--beauty-top .ritz-hero-mainrow{
    display: block !important;
  }
  .ritz-hero--beauty-top .ritz-hero-sidecol{
    margin-top: 18px !important;
  }

  /* PC用バナーは隠して、注意文の下のSP用バナーを使う */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{ display: none !important; }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{
    display: block !important;
    margin-top: 14px !important;
  }
}

/* =========================
   スマホ（〜767px）
   → バナーは「注意文の下」
========================= */
@media (max-width: 767px){
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{ display: none !important; }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{
    display: block !important;
    margin-top: 14px !important;
  }
}

/* =========================================================
   Beauty Top Hero - 最終整列パッチ（PCのみ）
   目的：
   - キャッチコピーの「も、」「て。」単独改行を防止
   - サブコピー3行でも「ご提案します。」の前で改行させる
   - 右カラム：OPENの下にバナー／右揃えで統一
   - 4Kは左右ギャップを広げて窮屈さ解消
========================================================= */

@media (min-width: 1200px){

  /* 4Kで間隔を作れるように、器を少し広げる */
  .ritz-hero--beauty-top .ritz-hero-content{
    max-width: 1600px !important;
  }

  /* 左右2カラム：ギャップを広げ、4Kでは自動的にさらに広がる */
  .ritz-hero--beauty-top .ritz-hero-mainrow{
    grid-template-columns: minmax(0, 680px) minmax(0, 520px) !important;
    column-gap: clamp(180px, 10vw, 360px) !important;
    max-width: 1600px !important;
  }

  /* キャッチコピーの変な折返し防止（行はspanで分かれてるのでnowrapで安全） */
  .ritz-hero--beauty-top .ritz-hero-jp-main2 .rb-line{
    white-space: nowrap !important;
  }

  /* サブコピー：末尾「ご提案します。」を1塊に → 3行になっても“その前で”改行される */
  .ritz-hero--beauty-top .hero-sub-tail{
    white-space: nowrap !important;
  }

  /* 右カラムを「右揃え」で統一（OPENとバナーの右端を揃える） */
  .ritz-hero--beauty-top .ritz-hero-sidecol{
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    justify-content: flex-start !important;
    text-align: right !important;
  }

  .ritz-hero--beauty-top .ritz-hero-opening{
    width: 100%;
    text-align: right !important;
  }

  /* PCバナー：絶対配置を殺して、OPENの“下”に置く + 右揃え */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{
    position: relative !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;

    align-self: flex-end !important;
    margin-top: 18px !important; /* OPENとの距離（ここで調整） */

    /* 幅を縮めて間延び解消（1680でも4Kでも破綻しない範囲） */
    width: clamp(360px, 22vw, 460px) !important;
    max-width: 460px !important;
  }

  /* PCではSPバナーは消す（重複防止） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{
    display: none !important;
  }
}

/* 1200未満：SP側のバナーを使う（スマホOKを維持） */
@media (max-width: 1199px){
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{ display:none !important; }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{ display:block !important; }
}

/* =========================================================
   Beauty Top Hero - FINAL (統一版)
   - PC：2カラム（右カラムは左揃え / バナー形崩れ防止）
   - 1200px以下：iPadレイアウト固定
   - SP：サブコピー非表示 + OPEN強調 / バナーはボタン下のまま
========================================================= */

/* 共通（壊れ防止） */
.ritz-hero--beauty-top { position: relative; overflow: hidden; }
.ritz-hero--beauty-top .hero-sub-tail { white-space: nowrap; }
.ritz-hero--beauty-top .pc-only { display: inline; } /* br.pc-only 用：下で上書き */
.ritz-hero--beauty-top br.pc-only { display: inline; } /* 念のため */

/* =========================
   PC（1200px〜）
========================= */
@media (min-width: 1200px) {

  /* 中央寄せ＆左右余白（1680で左端にくっつくの防止） */
  .ritz-hero--beauty-top .ritz-hero-content{
    max-width: 1440px;
    padding-left: 64px;
    padding-right: 64px;
    padding-bottom: 44px;
    margin: 0 auto;
  }

  /* 2カラム（間隔は画面に応じて広がる） */
  .ritz-hero--beauty-top .ritz-hero-mainrow{
    display: grid;
    grid-template-columns: minmax(0, 720px) minmax(0, 520px);
    column-gap: clamp(140px, 9vw, 320px);
    align-items: center;
    width: 100%;
    margin: 0 auto;
  }

  /* 左カラム：変な改行を防ぐ（も、 / て。単独を防止） */
  .ritz-hero--beauty-top .ritz-hero-jp-main2 .rb-line{
    display: block;
    white-space: nowrap;
  }

  /* 右カラム：左揃え（ご要望） */
  .ritz-hero--beauty-top .ritz-hero-sidecol{
    display: flex;
    flex-direction: column;
    align-items: flex-start;   /* ←右カラム左揃え */
    text-align: left;
    justify-content: flex-start;
    width: 100%;
  }
  .ritz-hero--beauty-top .ritz-hero-opening{
    text-align: left;
    width: 100%;
  }

  /* PCはPC用バナーだけ表示（SP用は消す） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{ display: block; }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{ display: none; }

  /* PCバナー：OPENの下に置く＋幅を適切に（間延び防止） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{
    width: clamp(360px, 22vw, 480px);
    margin-top: 18px;
  }

  /* --- ここから：バナー形崩れ防止（shortcodeの白背景/余白/固定サイズを無効化） --- */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .ritz-monitor-promo{
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .ritz-container{
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* 中身をヒーロー用に縮小して「切れ」を防ぐ */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-link{
    width: 100% !important;
    max-width: none !important;
    height: clamp(190px, 12vw, 230px) !important;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(0,0,0,0.34);
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-image{
    left: 12px;
    width: clamp(210px, 14vw, 250px);
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-content{
    width: 58%;
    padding-right: 16px;
    align-items: center;
    text-align: center;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-sub{
    font-size: 13px;
    margin-bottom: 6px;
    line-height: 1.45;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-title{
    font-size: clamp(28px, 2.2vw, 34px);
    margin-bottom: 10px;
    line-height: 1.1;
    white-space: nowrap;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-band{
    width: 100%;
    padding: 8px 10px;
    margin-bottom: 10px;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-offer-text{ font-size: 18px; }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-offer-price{ font-size: clamp(40px, 2.6vw, 48px); }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-period{ font-size: 11px; line-height: 1.45; }
}

/* =========================
   iPad / 1200px以下（768〜1199）
   → iPadレイアウトに固定（ご要望）
========================= */
@media (min-width: 768px) and (max-width: 1199px){

  .ritz-hero--beauty-top .pc-only,
  .ritz-hero--beauty-top br.pc-only{ display: none; }

  /* iPadはPC用バナーは消して、SP用（下配置）だけ使う */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{ display: none; }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{ display: block; }

  /* SP用バナー（下に独立配置） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{
    position: static;
    width: min(560px, 100%);
    margin: 24px auto 0;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp .ritz-monitor-promo{
    padding: 0 !important; margin: 0 !important; background: transparent !important;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp .ritz-container{
    width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important;
  }
}

/* =========================
   SP（〜767）
   - サブコピー削除
   - OPEN強調（明朝）
   - バナーは「ボタン下（注意文の下）」のまま
========================= */
@media (max-width: 767px){

  .ritz-hero--beauty-top .pc-only,
  .ritz-hero--beauty-top br.pc-only{ display: none; }

  /* サブコピーはスマホで削除 */
  .ritz-hero--beauty-top .ritz-hero-jp-sub2{ display: none !important; }

  /* OPEN強調（明朝） */
  .ritz-hero--beauty-top .ritz-hero-opening .date,
  .ritz-hero--beauty-top .ritz-hero-opening .place{
    font-family: "Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif !important;
  }
  .ritz-hero--beauty-top .ritz-hero-opening .date{
    font-size: clamp(30px, 8.8vw, 44px);
    line-height: 1.2;
  }
  .ritz-hero--beauty-top .ritz-hero-opening .place{
    font-size: 15px;
    line-height: 1.7;
  }

  /* SPはPC用バナーは消して、SP用（下配置）だけ使う */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{ display: none; }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{ display: block; }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{
    position: static;
    width: min(560px, 100%);
    margin: 18px auto 0;
  }

  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp .ritz-monitor-promo{
    padding: 0 !important; margin: 0 !important; background: transparent !important;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp .ritz-container{
    width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important;
  }
}


/* =========================================================
   Beauty Top Hero - FINAL OVERRIDES (2026-03-09)
   目的：
   - PC：右カラム（OPEN/住所/バナー）を「左揃え」
   - PC：症例バナーは “元デザイン(1100x380)” を縮小して形崩れ防止
   - 1200px以下：iPad(縦積み)レイアウトに統一
   - SP：住所の「ゲートタワー5F」を少し強調
========================================================= */

/* SP：住所の強調（ゲートタワー5F） */
@media (max-width: 767px){
  .ritz-hero--beauty-top .ritz-hero-opening .place-strong{
    font-weight: 800 !important;
  }
}

/* 1200px以下：iPadと同じ縦積みレイアウト（崩れ防止） */
@media (max-width: 1200px){
  .ritz-hero--beauty-top .ritz-hero-mainrow{
    display: block !important;
  }

  .ritz-hero--beauty-top .ritz-hero-sidecol{
    margin-top: 18px !important;
    align-items: flex-start !important;
    text-align: left !important;
  }

  /* 右カラム内のPCバナーは消して、注意文の下にあるSPバナーを使う */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{
    display: none !important;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{
    display: block !important;
    position: static !important;
    transform: none !important;
    width: 100% !important;
    max-width: 680px !important;
    margin: 16px auto 0 !important;
  }

  /* 旧「絶対配置+scale」の影響を無効化（このページだけ） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge{
    right: auto !important;
    bottom: auto !important;
  }
}

/* PC：2カラム + 右カラム左揃え + バナー縮小表示 */
@media (min-width: 1201px){

  /* 1680でも左端に張り付かないように余白を確保 */
  .ritz-hero--beauty-top .ritz-hero-content{
    max-width: min(1600px, calc(100vw - 80px)) !important;
    padding: 0 40px !important;
  }

  /* 2カラム（左：コピー / 右：OPEN+バナー） */
  .ritz-hero--beauty-top .ritz-hero-mainrow{
    display: grid !important;
    grid-template-columns: minmax(0, 720px) minmax(0, 560px) !important;
    column-gap: clamp(200px, 10vw, 420px) !important; /* 4Kで窮屈になりにくい */
    align-items: center !important;
  }

  /* キャッチコピーの “も、/て。” ぶら下がり防止 */
  .ritz-hero--beauty-top .ritz-hero-jp-main2 .rb-nowrap{
    white-space: nowrap !important;
  }

  /* 右カラム：左揃えに統一 */
  .ritz-hero--beauty-top .ritz-hero-sidecol{
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    text-align: left !important;
  }
  .ritz-hero--beauty-top .ritz-hero-opening{
    width: 100% !important;
    text-align: left !important;
  }

  /* 旧「絶対配置+scale」の影響を無効化（このページだけ） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge{
    position: relative !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
  }

  /* PCではSP用バナーを消す */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--sp{
    display: none !important;
  }

  /* PCバナー：元デザイン(1100x380)を縮小して形を保つ */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{
    --badge-w: clamp(360px, 22vw, 460px);
    --badge-scale: calc(var(--badge-w) / 1100);
    width: var(--badge-w) !important;
    height: calc(380px * var(--badge-scale)) !important;

    position: relative !important;
    margin-top: 18px !important; /* OPENとの距離 */
    align-self: flex-start !important;
    overflow: visible !important;
  }

  /* ショートコード側の余計な白背景/余白を殺す */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .ritz-monitor-promo,
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .ritz-container{
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    max-width: none !important;
  }

  /* バナー本体を縮小表示（内部レイアウトを崩さない） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-link{
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 1100px !important;
    height: 380px !important;
    max-width: none !important;
    margin: 0 !important;

    transform: scale(var(--badge-scale)) !important;
    transform-origin: left top !important;

    border-radius: 16px !important;
    overflow: hidden !important;
  }
}

/* =========================================================
   PC：症例モニターバナーが横長で見切れる問題の最終修正
   - 元デザイン(1100x380)を縮小して表示（形を崩さない）
========================================================= */
@media (min-width: 1201px){

  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{
    /* ここで “表示したい横幅” を決める（少し小さめが安全） */
    --pc-badge-w: clamp(320px, 18vw, 420px)
    --pc-badge-scale: calc(var(--pc-badge-w) / 1100);

    width: var(--pc-badge-w) !important;
    height: calc(380px * var(--pc-badge-scale)) !important;

    position: relative !important;
    overflow: visible !important;
  }

  /* ショートコード側の余計な白背景/余白を殺す */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .ritz-monitor-promo,
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .ritz-container{
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    max-width: none !important;
  }

  /* ★ここが本丸：中身（1100x380）を absolute + scale で縮小表示 */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-link{
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;

    width: 1100px !important;
    height: 380px !important;
    max-width: none !important;

    transform: scale(var(--pc-badge-scale)) !important;
    transform-origin: left top !important;

    border-radius: 16px !important;
    overflow: hidden !important;
  }
}

/* =========================================================
   PC：モニター募集バナー（.rmb-link）が横長で見切れる最終Fix
   - 1100x380 を「固定スケール」で縮小して表示（確実に効く）
========================================================= */
@media (min-width: 1201px){

  /* 表示したい横幅（ここを変えればサイズ調整できる） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc{
    width: 420px !important;      /* ←好みで 380〜460 くらい */
    height: 145px !important;     /* 420px に対して 380*(420/1100)=145 */
    position: relative !important;
    overflow: visible !important;
  }

  /* ショートコード側の白背景や余白を殺す */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .ritz-monitor-promo,
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .ritz-container{
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    max-width: none !important;
  }

  /* ★本体：実寸(1100x380)を scale(0.3818) で縮小 */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-link{
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;

    width: 1100px !important;
    height: 380px !important;
    max-width: none !important;

    transform: scale(0.381818) !important;  /* 420 / 1100 */
    transform-origin: left top !important;

    border-radius: 16px !important;
    overflow: hidden !important;
  }
}

/* =========================================================
   PC：モニターバナー内テキストの視認性UP（縮小表示のまま文字だけ大きく）
========================================================= */
@media (min-width: 1201px){
  /* バナー内：全体を少しだけ拡大（文字も一緒に上がる） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-link{
    transform: scale(0.381818) scale(1.16) !important; /* ← 1.10〜1.22で調整 */
  }

  /* 文字だけ個別で上げたい場合（保険：必要なら） */
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-sub{
    font-size: 20px !important;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-title{
    font-size: 54px !important;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-offer-text{
    font-size: 28px !important;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-offer-price{
    font-size: 74px !important;
  }
  .ritz-hero--beauty-top .ritz-hero-monitor-badge--pc .rmb-period{
    font-size: 18px !important;
  }
}

/* Shared reservation CTA for beauty pages. */
.bt-sidecta {
  position: fixed;
  right: 0;
  top: 50%;
  z-index: 90;
  display: flex;
  flex-direction: column;
  transform: translateY(-50%);
}
.bt-sidecta__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  width: 90px;
  height: 90px;
  padding: 18px 0 12px;
  color: #fff !important;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .08em;
  text-align: center;
  text-decoration: none;
}
.bt-sidecta__btn svg {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}
.bt-sidecta__btn--tel { background: #A87762; border-radius: 8px 0 0; }
.bt-sidecta__btn--line { background: #62A87C; }
.bt-sidecta__btn--web { background: #6276A8; }
.bt-sidecta__btn--fore { background: #A762A8; }
.bt-sidecta__btn--contact { background: #7F8F76; border-radius: 0 0 0 8px; }

#umekita-price-container,
#umekita-price-container .price-header h1,
#umekita-price-container .price-header h2,
#umekita-price-container .price-header span {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}
.bt-bottombar { display: none; }

@media (max-width: 768px) {
  .bt-sidecta { display: none; }
  .bt-bottombar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 90;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    padding-bottom: env(safe-area-inset-bottom);
    box-shadow: 0 -5px 16px -8px rgba(0, 0, 0, .35);
  }
  .bt-bottombar__btn {
    min-width: 0;
    min-height: clamp(58px, 15vw, 66px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(3px, .9vw, 5px);
    padding: 6px 2px;
    border-right: 1px solid rgba(255, 255, 255, .2);
    color: #fff !important;
    font-family: "Noto Sans JP", sans-serif;
    font-size: clamp(9px, 2.55vw, 11.5px);
    font-weight: 500;
    letter-spacing: .02em;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
  }
  .bt-bottombar__btn:last-child { border-right: 0; }
  .bt-bottombar__btn svg {
    width: clamp(18px, 4.8vw, 24px);
    height: clamp(18px, 4.8vw, 24px);
    flex-shrink: 0;
  }
  .bt-bottombar__btn--tel { background: #A87762; }
  .bt-bottombar__btn--line { background: #62A87C; }
  .bt-bottombar__btn--web { background: #6276A8; }
  .bt-bottombar__btn--fore { background: #A762A8; }
  .bt-bottombar__btn--contact { background: #7F8F76; }
  body.is-translated .bt-bottombar__btn,
  html.translated-ltr .bt-bottombar__btn,
  html.translated-rtl .bt-bottombar__btn {
    flex-direction: column;
    gap: clamp(2px, .7vw, 4px);
    font-size: clamp(7.2px, 1.95vw, 9.4px);
    line-height: 1.05;
    letter-spacing: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    overflow: hidden;
    text-align: center;
  }
  .bt-monitor-fab {
    bottom: calc(72px + env(safe-area-inset-bottom));
  }
}
