/* ============================================================
   ハンバーガーメニュー（rn-）
   すべて .rn- で始めています。既存サイトのCSSには影響しません。
   ============================================================ */

/* ---------- ヘッダー ---------- */
.rn-sitebar{height:76px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1160px)/2));border-bottom:1px solid #ece8e5;gap:15px;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:#18263c}
.rn-brand{display:flex;align-items:center;gap:12px;min-width:0}
.rn-brand-mark{width:44px;height:44px;flex-shrink:0;object-fit:contain;display:block}
.rn-brand-copy strong{display:block;font-family:Georgia,"Yu Mincho",serif;letter-spacing:.17em;font-size:15px;font-weight:700;color:#243c56}
.rn-brand-copy small{display:block;font-size:9px;letter-spacing:.08em;color:#7b8390;margin-top:4px}
.rn-menu-open{border:1px solid #d8d1cc;border-radius:40px;background:#fff;padding:12px 20px;display:flex;align-items:center;gap:12px;font-family:inherit;font-size:14px;font-weight:800;color:#24374d;cursor:pointer}
.rn-hamb{width:20px;height:14px;display:grid;align-content:space-between}
.rn-hamb i{height:2px;background:#24374d;display:block}

/* ---------- ヘッダー右側：今いる院の名前だけ表示（ボタンではない） ---------- */
.rn-head-right{display:flex;align-items:center;gap:14px}
.rn-current-name{display:inline-block;color:var(--rn-clinic);font-size:12px;font-weight:800;letter-spacing:.04em;white-space:nowrap}

/* ---------- 背景・ドロワー ---------- */
.rn-backdrop{position:fixed;inset:0;background:#15253a70;z-index:9998;display:none}
.rn-backdrop.is-open{display:block}
.rn-drawer{--rn-accent:#b18b54;--rn-tint:#f7f0e8;--rn-soft:#fffcf8;position:fixed;z-index:9999;top:0;right:0;height:100dvh;width:min(420px,100vw);background:#fff;box-shadow:-8px 0 38px rgba(33,43,55,.14);border-left:1px solid #f1eeee;transform:translateX(105%);transition:transform .32s ease;display:flex;flex-direction:column;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:#18334e}
.rn-drawer.is-open{transform:translateX(0)}
.rn-drawer-head{min-height:82px;padding:18px 23px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0ece9}
.rn-drawer-head .rn-brand-copy strong{font-size:16px;letter-spacing:.19em;color:#243c56;font-weight:500}
.rn-drawer-head .rn-brand-copy span{display:block;font-family:Georgia,serif;letter-spacing:.16em;color:#8794a2;font-size:9px;margin-top:6px}
.rn-drawer-head .rn-brand-copy span.is-clinic{display:inline-block;background:var(--rn-accent);color:#fff;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:12px;font-weight:800;letter-spacing:.06em;line-height:1;padding:6px 10px;border-radius:4px;margin-top:7px}
.rn-close{border:0;background:none;font-family:Arial,sans-serif;font-size:28px;font-weight:200;line-height:1;width:38px;height:38px;color:#18334e;cursor:pointer;transition:transform .2s}
.rn-scroll{overflow-y:auto;flex:1;padding:17px 20px 120px;scrollbar-width:thin;scrollbar-color:#e9e1db transparent}

/* 余計な見出し・リストの余白を、テーマ側のCSSから守る（詳細度ゼロ＝rn-の指定が優先） */
:where(.rn-drawer,.rn-fixbar) :where(h2,h3,p,ul){margin:0;padding:0}
:where(.rn-drawer,.rn-fixbar) li{list-style:none}
.rn-sitebar *,.rn-drawer *,.rn-fixbar *{box-sizing:border-box}

/* ---------- 各ページ共通の部品 ---------- */
.rn-panel{display:block}
.rn-branch-heading{font-size:11px;font-weight:800;letter-spacing:.055em;margin:0 0 12px;color:#263b55}
.rn-hero{display:grid;grid-template-columns:105px minmax(0,1fr);gap:13px;margin:0 0 8px;align-items:center}
.rn-photo{height:124px;border-radius:9px;overflow:hidden;background:#f0ecea;box-shadow:0 1px 5px #28334b0a;position:relative}
.rn-photo img{width:100%;height:100%;object-fit:cover;display:block}
.rn-photo.is-coming{display:grid;place-items:center;background:linear-gradient(140deg,#cfdbe4,#f4f7fa)}
.rn-coming-label{font-size:11px;line-height:1.45;color:#254a6d;letter-spacing:.09em;font-weight:800;text-align:center}
.rn-pill{display:inline-block;background:var(--rn-tint);color:var(--rn-accent);padding:7px 9px;border-radius:6px;font-size:10px;font-weight:800;margin-bottom:9px}
.rn-hero-title{font-size:15px;font-weight:800;line-height:1.65;margin:0 0 9px;color:#173653}
.rn-muted{font-size:12px;line-height:1.7;color:#566579;margin:0;font-weight:600}
.rn-detail{display:block;text-align:center;background:var(--rn-tint);color:#5a4b4b;border-radius:10px;padding:11px;font-weight:800;font-size:12px;margin:10px 0;text-decoration:none}
.rn-booking{display:flex;align-items:center;justify-content:center;gap:6px;background:var(--rn-accent);color:#fff;padding:15px;border-radius:28px;font-family:inherit;font-weight:800;font-size:14px;margin:13px 0 11px;border:0;width:100%;text-decoration:none;cursor:pointer}
.rn-booking[disabled]{background:#c6cbd1;cursor:not-allowed}
.rn-booking svg{width:16px;height:16px;display:block;flex-shrink:0}
.rn-toplink{background:var(--rn-tint);color:var(--rn-accent);display:flex;align-items:center;gap:13px;border-radius:20px;padding:12px 14px;font-weight:800;margin-bottom:9px;text-decoration:none}
.rn-toplink span:last-child{margin-left:auto}
.rn-toplink span:first-child svg{width:20px;height:20px;display:block}

/* ---------- メニュー行 ---------- */
.rn-item{border-bottom:1px solid #eeeae7}
.rn-item>a,.rn-group-btn{display:flex;width:100%;align-items:center;gap:14px;padding:15px 8px;border:0;background:#fff;text-align:left;font-family:inherit;font-size:14px;font-weight:600;color:#18334e;text-decoration:none;cursor:pointer}
.rn-ico{color:var(--rn-accent);width:20px;text-align:center;font-size:18px;flex-shrink:0}
.rn-ico svg{width:20px;height:20px;display:block;margin:0 auto;flex-shrink:0}
.rn-arrow{margin-left:auto;color:#7a8492;font-size:20px;font-weight:300}
.rn-arrow svg{width:16px;height:16px;display:block}
.rn-group-btn .rn-arrow{color:var(--rn-accent)}
.rn-sub{display:none;background:var(--rn-soft);padding:5px 8px 12px 45px}
.rn-sub.is-open{display:block}
.rn-sub a{display:block;padding:10px 5px;border-bottom:1px solid #eae4e2;font-size:13px;font-weight:500;color:#18334e;text-decoration:none}
.rn-sub a:last-child{border-bottom:0}

/* 人気の施術 */
.rn-treatment-heading{display:flex;align-items:center;gap:14px;padding:15px 8px 9px;font-weight:800;font-size:14px;color:#24364d}
.rn-treatment-heading .rn-ico svg{width:20px;height:20px}
.rn-treatment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:8px 8px 16px}
.rn-treatment-grid a{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0;padding:13px 10px;border:1px solid #eedfdf;border-radius:8px;background:#fff;color:#5e4650;font-weight:700;font-size:12px;line-height:1.4;text-decoration:none}
.rn-treatment-grid a span{color:var(--rn-accent);font-size:17px}

.rn-section-title{font-size:12px;font-weight:800;color:#8e7447;letter-spacing:.08em;padding:16px 8px 8px;border-bottom:1px solid #eee9e6;margin-top:6px}

/* ---------- 院の選択カード（総合TOP／他院のご案内） ---------- */
.rn-choice{display:grid;grid-template-columns:80px minmax(0,1fr) 34px;align-items:center;gap:10px;padding:10px;margin:0 0 9px;border:1.5px solid var(--rn-choice-color);border-radius:14px;background:#fff;cursor:pointer;text-align:left;width:100%;color:#24364d;font-family:inherit}
.rn-choice img,.rn-choice-soon{width:80px;height:72px;object-fit:cover;border-radius:7px;display:block}
.rn-choice-soon{display:grid;place-items:center;background:linear-gradient(135deg,#cdd8e1,#edf2f6);color:#486079;font-weight:800;font-size:11px;text-align:center;line-height:1.3}
.rn-choice-name{display:block;color:var(--rn-choice-name);font-weight:800;font-size:13px;line-height:1.55;letter-spacing:-.01em}
.rn-choice-note{display:block;font-size:11px;line-height:1.6;margin-top:4px;font-weight:600}
.rn-choice-arrow{width:34px;height:34px;border-radius:50%;background:var(--rn-choice-color);color:#fff;display:flex;align-items:center;justify-content:center}
.rn-choice-arrow svg{width:16px;height:16px;display:block}

.rn-other{margin-top:23px;padding-top:17px;border-top:1px solid #eae5e1}
.rn-other h3{font-size:14px;color:#24354c;margin:0 0 12px}
.rn-other .rn-choice{grid-template-columns:68px minmax(0,1fr) 28px;gap:10px;padding:8px}
.rn-other .rn-choice img,.rn-other .rn-choice-soon{width:68px;height:62px}
.rn-other .rn-choice-name{font-size:12px}
.rn-other .rn-choice-note{font-size:10px}
.rn-other .rn-choice-arrow{width:28px;height:28px}
.rn-other .rn-choice-arrow svg{width:13px;height:13px}

/* ---------- 固定バー（ドロワー下部・常時表示） ---------- */
.rn-fixbar{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;background:#fff;border-top:1px solid #eee9e6;padding:10px 16px 14px;box-shadow:0 -6px 18px rgba(20,36,58,.07);font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
.rn-fixbar-general,.rn-fixbar-clinic{display:flex;gap:8px;align-items:stretch;width:100%}
.rn-fixbar-tel{position:relative;flex:1;margin:0}
.rn-fixbar-tel>summary{list-style:none;display:flex;align-items:center;justify-content:center;min-height:46px;height:100%;border:1px solid #c9d2dc;border-radius:26px;background:#f6f8fa;color:#24364d;font-weight:800;font-size:13px;cursor:pointer}
.rn-fixbar-tel>summary::-webkit-details-marker{display:none}
.rn-fixbar-tel[open]>summary{background:#eaf0f6}
.rn-fixbar-list{position:absolute;left:0;right:0;bottom:calc(100% + 8px);background:#fff;border:1px solid #e3e8ee;border-radius:14px;box-shadow:0 -6px 20px rgba(20,36,58,.14);padding:4px 0}
.rn-fixbar-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid #f0f3f6;font-size:12px;font-weight:600;color:#24364d}
.rn-fixbar-list li:last-child{border-bottom:0}
.rn-fixbar-list a{color:#24364d;font-weight:800;text-decoration:none}
.rn-fixbar-soon{display:inline-block;padding:3px 9px;border-radius:999px;background:#e6edf6;color:#1f4e8c;font-size:10px;font-weight:800;white-space:nowrap}
.rn-fixbar-web,.rn-fixbar-call,.rn-fixbar-book{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border-radius:26px;font-weight:800;font-size:13px;text-decoration:none}
.rn-fixbar-web{flex:1.25;background:#b18b54;color:#fff}
.rn-fixbar-call{border:1px solid #c9d2dc;background:#f6f8fa;color:#24364d}
.rn-fixbar-book{background:var(--rn-accent);color:#fff}
.rn-fixbar-call.is-disabled,.rn-fixbar-book.is-disabled{background:#c6cbd1;border-color:#c6cbd1;color:#fff;cursor:not-allowed}
.rn-fixbar-call svg,.rn-fixbar-book svg{width:16px;height:16px;display:block;flex-shrink:0}

/* ---------- ホバー（マウス操作の端末だけ） ---------- */
@media (hover:hover){
  .rn-close:hover{transform:rotate(90deg)}
  .rn-detail:hover{filter:brightness(.985)}
  .rn-booking:hover{filter:brightness(1.04);transform:translateY(-1px)}
  .rn-booking[disabled]:hover{filter:none;transform:none}
  .rn-item>a:hover,.rn-group-btn:hover{background:#fbfaf9}
  .rn-treatment-grid a:hover{border-color:var(--rn-accent);background:var(--rn-tint)}
  .rn-choice:hover{transform:translateY(-1px);box-shadow:0 3px 12px #1c355014;border-color:var(--rn-choice-color)}
  .rn-other .rn-choice:hover{background:var(--rn-soft)}
}

/* ---------- タップ時：押している間だけ少し浮く（スマホ向け） ---------- */
.rn-choice,.rn-booking,.rn-fixbar-web,.rn-fixbar-call,.rn-fixbar-book,.rn-treatment-grid a{transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.rn-choice:active{transform:translateY(-2px);box-shadow:0 6px 16px #1c355020}
.rn-booking:active,.rn-fixbar-web:active,.rn-fixbar-book:active,.rn-fixbar-call:not(.is-disabled):active{transform:translateY(-2px);box-shadow:0 6px 14px rgba(20,36,58,.18)}
.rn-treatment-grid a:active{transform:translateY(-1px);box-shadow:0 3px 8px #1c355016}
.rn-item>a:active,.rn-group-btn:active{background:#fbfaf9}
.rn-booking[disabled]:active,.is-disabled:active{transform:none;box-shadow:none}

/* ---------- スマホ ---------- */
@media (max-width:720px){
  .rn-sitebar{height:65px;padding:0 16px}
  .rn-brand-mark{width:40px;height:40px}
  .rn-brand-copy strong{font-size:13px}
  .rn-scroll{padding:16px 16px 120px}
  .rn-hero{grid-template-columns:98px minmax(0,1fr)}
  .rn-photo{height:116px}
  .rn-hero-title{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
  .rn-drawer{transition:none}
}
