@charset "UTF-8";
/*
 * ======================================
 * うえはら小児科医院 サイト固有CSS（uehara- プレフィックス）
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .uh-topbar / .uh-nav        - 2段ヘッダー（上部バー＋sticky現在ページ下線ナビ）
 * .uh-siderail                - 右端固定の縦書きCTAレール（WEB予約／受診のおねがい）
 * .uh-footer                  - ベージュ地4カラムフッター
 * .uh-eyebrow / .uh-sec-*     - Montserrat英字ラベル＋中央見出しの定番セクションヘッド
 * .uh-dot-head / .uh-bar-ttl  - 左赤バー＋下点線の下層セクション見出し
 * .uh-hero                    - 角丸カード型ページヒーロー（kado.svg 角抜き）
 * .uh-mv                      - TOPメインビュー（ハイライトコピー）
 * .uh-feature                 - 番号バッジ＋丸アイコンの特徴カード
 * .uh-hours                   - 診療時間テーブル（○×色分け）
 * .uh-notice / .uh-visit      - 注意事項ボックス／受診お願い（番号付き）
 * .uh-menucard                - 写真＋斜め角プレートのメニューカード
 * .uh-flowstep                - 縦つなぎ番号フロー
 * .uh-resv-row / .uh-reason   - 予約方法行／求める人材カード
 * .uh-form                    - 応募フォーム
 * .uh-btn-*                   - サイト固有ボタン（丸pill／ピンク）
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・構造不足 : 2段sticky均等ナビ＋現在ページ下線、右端縦書きCTAレール、
 *              写真カードの斜め角抜き（kado.svg mask）プレート
 * ・装飾パターン不足 : 下層ヒーローの角丸カード＋内側角抜き、点線区切り見出し
 * ・値の粒度不足 : clamp()による可変フォント（デザイン準拠）
 */

:root{
  /* html は 62.5%(1rem=10px) のためフォントは px 基準で定義する */
  --fs-body:15.5px;
  --fs-lead:18px;
  --fs-h2:28px;
  --fs-h3:20px;
  --fs-note:14px;
  --lh-body:1.8;
  --lh-lead:2.2;
  --lh-h2:1.6;
  --lh-h3:1.7;
  --ls-body:.05em;
  --ls-lead:.1em;
  --ls-h:.05em;
  --ls-note:.05em;
  --uh-red:#E03916;
  --uh-red-dark:#c22f10;
  --uh-pink:#F776A3;
  --uh-pink-dark:#f65b93;
  --uh-txt:#3a2b2b;
  --uh-txt2:#5a4444;
  --uh-line:#f0e2dc;
}
@media (max-width:768px){ :root{ --fs-body:15px; } }
/* html 62.5% 環境で意図通りの見出しサイズにするため px の clamp に統一 */

body{
  color:var(--uh-txt);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  letter-spacing:var(--ls-body);
}

/* 余白ユーティリティ（デザイン準拠の実数値。共通utilityに無い刻みを補完） */
.uh-pt-52{ padding-top:52px; }
.uh-pt-60{ padding-top:60px; }
.uh-pt-64{ padding-top:64px; }
.uh-pt-76{ padding-top:76px; }
.uh-pt-84{ padding-top:84px; }
.uh-pb-0{ padding-bottom:0; }
.uh-pb-8{ padding-bottom:8px; }
.uh-pb-20{ padding-bottom:20px; }
.uh-pb-96{ padding-bottom:96px; }
.uh-mt-20{ margin-top:20px; }
.uh-mt-24{ margin-top:24px; }
.uh-mt-34{ margin-top:34px; }
.uh-mt-96{ margin-top:96px; }
.uh-mt-120{ margin-top:120px; }
.uh-mb-0{ margin-bottom:0; }
.uh-mb-8{ margin-bottom:8px; }
.uh-mb-16{ margin-bottom:16px; }
.uh-mb-22{ margin-bottom:22px; }
.uh-mb-24{ margin-bottom:24px; }
.uh-center{ text-align:center; }
.uh-fw-700{ font-weight:700; }
@media (max-width:768px){
  .uh-pt-84{ padding-top:56px; }
  .uh-pt-76{ padding-top:52px; }
  .uh-pt-64,.uh-pt-60{ padding-top:48px; }
  .uh-mt-96{ margin-top:64px; }
  .uh-mt-120{ margin-top:80px; }
}
main{ display:block; }
.uh-en{ font-family:"Montserrat",sans-serif; }
.uh-zen{ font-family:"Zen Kaku Gothic New",sans-serif; }

/* 汎用ラッパ */
.uh-wrap{ width:100%; margin-left:auto; margin-right:auto; padding-left:24px; padding-right:24px; }
.uh-wrap--1160{ max-width:1208px; }
.uh-wrap--1080{ max-width:1128px; }
.uh-wrap--1040{ max-width:1088px; }
.uh-wrap--1000{ max-width:1048px; }
.uh-wrap--960{ max-width:960px; }
.uh-wrap--920{ max-width:968px; }
.uh-wrap--900{ max-width:948px; }
.uh-wrap--760{ max-width:808px; }

/* =========================================================
 * ヘッダー（上部バー）
 * ========================================================= */
.uh-shell{ overflow-x:clip; }
.uh-topbar{ background:#fff; box-shadow:0 2px 16px rgba(224,57,22,.08); }
.uh-topbar__inner{
  max-width:1240px; margin:0 auto; padding:12px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
}
.uh-topbar__logo{ display:flex; align-items:center; flex:none; }
.uh-topbar__logo img{ height:55px; width:auto; display:block; }
.uh-topbar__right{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.uh-access{
  display:flex; align-items:center; gap:6px; background:none; border:0; cursor:pointer;
  font-family:"Zen Kaku Gothic New",sans-serif; font-size:14px; font-weight:700; color:#5a4444; padding:0;
  transition:color .25s ease;
}
.uh-access i{ color:var(--uh-red); font-size:15px; }
.uh-access:hover{ color:var(--uh-red); }
.uh-tel{
  font-family:"Montserrat",sans-serif; font-weight:800; font-size:22px; letter-spacing:.02em;
  color:var(--uh-red); white-space:nowrap; padding-left:16px; border-left:1px solid #eadfda;
}
.uh-tel i{ font-size:18px; margin-right:6px; }
.uh-webbtn{
  display:inline-block; background:var(--uh-red); color:#fff; border-radius:999px; padding:10px 26px;
  font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:14px;
  box-shadow:0 6px 16px rgba(224,57,22,.28); transition:background .25s ease;
}
.uh-webbtn:hover{ background:var(--uh-red-dark); color:#fff; }

/* ヘッダー（下部 sticky ナビ） */
.uh-nav{ position:sticky; top:0; z-index:50; background:#fff; margin-bottom:20px; }
.uh-nav__inner{
  max-width:1160px; margin:0 auto; padding:0 24px;
  display:flex; flex-wrap:wrap; justify-content:center; align-items:stretch;
  border-right:1px solid var(--uh-line);
}
.uh-nav__item{
  position:relative; flex:1; min-width:120px; background:none; border:0; border-left:1px solid var(--uh-line);
  cursor:pointer; padding:18px 10px 16px; display:flex; flex-direction:column; align-items:center; gap:3px;
  font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:15px; color:var(--uh-txt);
  transition:background .25s ease;
}
.uh-nav__item:hover{ background:#fff7f3; }
.uh-nav__en{ font-family:"Montserrat",sans-serif; font-weight:700; font-size:11px; letter-spacing:.08em; color:var(--uh-red); line-height:1; }
.uh-nav__ja{ font-size:15px; line-height:1.2; }
/* 現在ページ：文字色＋英語の上にピンクの丸 */
.uh-nav__item--current{ color:var(--uh-red); }

/* =========================================================
 * ハンバーガー＋ドロワー（タブレット以下）
 * ========================================================= */
.uh-hamburger{ display:none; }
.uh-drawer{ position:fixed; top:0; right:0; width:min(320px,82%); height:100dvh; background:#fff; box-shadow:-8px 0 30px rgba(127,35,37,.15); z-index:120; transform:translateX(100%); transition:transform .35s ease; overflow-y:auto; padding:88px 0 30px; display:none; flex-direction:column; }
.uh-drawer.is-open{ transform:translateX(0); }
.uh-drawer__nav{ display:flex; flex-direction:column; }
.uh-drawer__link{ display:flex; flex-direction:column; gap:2px; padding:15px 28px; border-bottom:1px dotted var(--uh-line); color:var(--uh-txt); }
.uh-drawer__en{ font-family:"Montserrat",sans-serif; font-weight:700; font-size:11px; letter-spacing:.08em; color:var(--uh-red); }
.uh-drawer__ja{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:16px; }
.uh-drawer__link.is-current{ background:#fff5f0; }
.uh-drawer__foot{ margin-top:auto; padding:24px 28px 0; display:flex; flex-direction:column; gap:14px; }
.uh-drawer__sub{ color:var(--uh-txt2); font-weight:700; font-size:14px; }
.uh-drawer__sub i{ color:var(--uh-red); margin-right:6px; }
.uh-drawer__tel{ font-family:"Montserrat",sans-serif; font-weight:800; font-size:22px; color:var(--uh-red); }
.uh-drawer__tel i{ font-size:18px; margin-right:6px; }
.uh-drawer__cta{ display:block; text-align:center; background:var(--uh-red); color:#fff; border-radius:999px; padding:13px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; }
.uh-drawer__cta:hover{ background:var(--uh-red-dark); color:#fff; }
.uh-drawer-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.4); z-index:110; opacity:0; visibility:hidden; transition:opacity .35s ease,visibility .35s ease; }
.uh-drawer-overlay.is-open{ opacity:1; visibility:visible; }

@media (max-width:1024px){
  .uh-topbar{ position:sticky; top:0; z-index:130; }
  .uh-topbar__inner{ justify-content:flex-start; gap:16px; }
  .uh-topbar__right{ display:none; }
  .uh-nav{ display:none; }
  .uh-hamburger{ display:flex; flex-direction:column; justify-content:center; gap:6px; width:46px; height:46px; background:none; border:0; cursor:pointer; padding:0; position:fixed; top:8px; right:12px; z-index:140; }
  .uh-hamburger span{ display:block; width:26px; height:2px; background:var(--uh-red); margin:0 auto; transition:transform .3s ease,opacity .3s ease; }
  .uh-hamburger.is-open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
  .uh-hamburger.is-open span:nth-child(2){ opacity:0; }
  .uh-hamburger.is-open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
  .uh-drawer{ display:flex; }
  /* ハンバーガー表示時：ページトップ・フッターメニュー列を非表示 */
  .uh-pagetop{ display:none; }
  .uh-footer__menucol{ display:none; }
}

/* =========================================================
 * 右端固定サイドレール
 * ========================================================= */
.uh-siderail{
  position:fixed; right:0; top:50%; z-index:60; display:flex; flex-direction:column; gap:2px;
  /* 初期は非表示。MV（下層はヒーロー）を過ぎたら .is-visible で表示 */
  transform:translateY(-50%) translateX(24px); opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .4s ease, transform .4s ease, visibility .4s ease;
}
.uh-siderail.is-visible{ transform:translateY(-50%) translateX(0); opacity:1; visibility:visible; pointer-events:auto; }
.uh-siderail__link{
  writing-mode:vertical-rl; color:#fff; border:0; cursor:pointer; padding:22px 15px; border-radius:14px 0 0 14px;
  font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; letter-spacing:.14em;
  box-shadow:-6px 6px 18px rgba(127,35,37,.22); display:flex; align-items:center; gap:10px;
  transition:background .25s ease;
}
.uh-siderail__link i, .uh-siderail__link .uh-siderail__ic{ writing-mode:horizontal-tb; font-size:17px; }
.uh-siderail__link--yoyaku{ background:var(--uh-pink); font-size:16px; }
.uh-siderail__link--yoyaku:hover{ background:var(--uh-pink-dark); color:#fff; }
.uh-siderail__link--onegai{ background:var(--uh-red); font-size:15px; }
.uh-siderail__link--onegai:hover{ background:var(--uh-red-dark); color:#fff; }
.uh-siderail__link--tel{ background:#2e9e5b; font-size:16px; }
.uh-siderail__link--tel:hover{ background:#268a4f; color:#fff; }
.uh-siderail__link--map{ background:var(--uh-red-dark); font-size:16px; }
.uh-siderail__link--map:hover{ background:#a82a0e; color:#fff; }
/* 電話・MAP はスマホ下部バーのみ表示、受診おねがいはPCレールのみ、予約ラベルは画面幅で出し分け */
.uh-siderail__sponly{ display:none; }
.uh-siderail__lbl-sp{ display:none; }

/* =========================================================
 * フッター
 * ========================================================= */
.uh-footer{ background:#fff; color:#6b5545; margin-top:80px; border-top:1px solid var(--uh-line); }
.uh-footer__inner{
  max-width:1200px; margin:0 auto; padding:52px 24px 40px;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:34px;
}
.uh-footer__logo{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.uh-footer__logo img{ height:45px; width:auto; display:block; }
.uh-footer p{ line-height:var(--lh-body); }
.uh-footer__addr{ margin:0; font-size:14px; opacity:.9; }
.uh-footer__title{
  font-family:"Zen Kaku Gothic New",sans-serif; font-size:14px; margin:0 0 14px; color:var(--uh-red);
  border-bottom:1px dotted rgba(0,0,0,.3); padding-bottom:8px;
}
.uh-footer__row{ margin:0 0 6px; font-size:14px; opacity:.9; }
.uh-footer__row--gap{ margin:0 0 12px; }
.uh-footer__row b, .uh-footer__num{ font-family:"Montserrat",sans-serif; font-weight:800; font-size:18px; }
.uh-footer__note{ margin:0; font-size:14px; opacity:.85; line-height:var(--lh-body); }
.uh-footer__menu{ display:flex; flex-direction:column; gap:9px; align-items:flex-start; }
.uh-footer__menu a{ background:none; border:0; color:#6b5545; opacity:.9; cursor:pointer; font-size:14px; padding:0; transition:opacity .2s,color .2s; }
.uh-footer__menu a:hover{ opacity:1; color:var(--uh-red); }
.uh-footer__btn{ display:inline-flex; align-items:center; gap:8px; margin-top:10px; background:#fff; color:var(--uh-red); border-radius:999px; padding:9px 22px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:13px; opacity:1; box-shadow:0 6px 16px rgba(0,0,0,.15); transition:background .25s ease,color .25s ease; }
.uh-footer__btn:hover{ background:#ffe8de; color:var(--uh-red); }
.uh-footer__map iframe{ width:100%; height:150px; border:0; border-radius:12px; }
.uh-footer__parking{ margin:10px 0 0; font-size:14px; opacity:.9; }
.uh-footer__copy{ background:var(--uh-red); color:#fff; text-align:center; padding:16px; font-size:14px; }

/* =========================================================
 * セクション見出し（英字ラベル＋日本語中央見出し）
 * ========================================================= */
.uh-sec{ padding-top:64px; padding-bottom:0; }
.uh-sec--band{ background:#FBF7EF; margin-top:84px; padding:60px 0; }
/* 最終セクションがバンドのとき、フッター上の白余白を詰める */
.uh-flush-footer{ margin-bottom:-80px; }
.uh-sec--stripe{ background:repeating-linear-gradient(45deg,#FFFDF8,#FFFDF8 5px,#FFFAEF 5px,#FFFAEF 10px); margin-top:84px; padding:64px 0; }
.uh-sechead{ text-align:center; margin-bottom:44px; }
.uh-sechead--sm{ margin-bottom:36px; }
.uh-eyebrow{ font-family:"Montserrat",sans-serif; font-weight:800; letter-spacing:.14em; color:var(--uh-red); font-size:17px; }
.uh-sec-ttl{
  font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt);
  font-size:clamp(23px,3vw,34px); line-height:1.2; margin:6px 0 0;
}
.uh-philosophy-deco{ display:flex; align-items:center; justify-content:center; gap:12px; margin-top:12px; }
.uh-philosophy-deco span.bar{ width:30px; height:2px; background:var(--uh-red); }
.uh-philosophy-deco span.txt{ font-family:"Montserrat",sans-serif; font-weight:800; letter-spacing:.16em; color:var(--uh-red); font-size:12px; }

/* 下層：左赤バー＋下点線 見出し */
.uh-dot-head{ margin-bottom:26px; border-bottom:2px dotted #eabfae; padding-bottom:14px; }
.uh-bar-ttl{
  font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt);
  font-size:clamp(22px,3.2vw,var(--fs-h2)); line-height:var(--lh-h2); letter-spacing:var(--ls-h);
  margin:6px 0 0; display:flex; align-items:center; gap:14px;
}
.uh-bar-ttl::before{ content:""; flex:none; width:6px; height:1.1em; background:var(--uh-red); border-radius:3px; }
.uh-center-ttl{
  font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt);
  font-size:clamp(22px,3.2vw,var(--fs-h2)); line-height:var(--lh-h2); letter-spacing:var(--ls-h);
  margin:0 0 24px; text-align:center;
}

/* 本文段落 */
.uh-p{ margin:0; font-size:var(--fs-body); color:var(--uh-txt2); line-height:var(--lh-body); }
.uh-p--sm{ font-size:14px; line-height:1.9; }
.uh-p + .uh-p{ margin-top:16px; }
.uh-red-b{ color:var(--uh-red); font-weight:700; }
.uh-txt-b{ color:var(--uh-txt); font-weight:700; }

/* =========================================================
 * ボタン（サイト固有）
 * ========================================================= */
.uh-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; border:0; cursor:pointer;
  border-radius:999px; transition:background .25s ease,opacity .25s ease;
}
.uh-btn--red{ background:var(--uh-red); color:#fff; }
.uh-btn--red:hover{ background:var(--uh-red-dark); color:#fff; }
.uh-btn--pink{ background:var(--uh-pink); color:#fff; }
.uh-btn--pink:hover{ background:var(--uh-pink-dark); color:#fff; }
.uh-btn--md{ padding:14px 34px; font-size:16px; box-shadow:0 10px 24px rgba(224,57,22,.28); }
.uh-btn--pink.uh-btn--md{ box-shadow:0 12px 28px rgba(247,118,163,.4); }
.uh-btn--lg{ padding:16px 40px; font-size:17px; box-shadow:0 10px 24px rgba(224,57,22,.28); }
.uh-btn--xl{ padding:18px 44px; font-size:18px; box-shadow:0 12px 28px rgba(247,118,163,.4); }
.uh-btn--sm{ padding:12px 26px; font-size:15px; }
.uh-btn-multiline{ text-align:center; line-height:1.6; }
.uh-btn-multiline br{ line-height:1; }
.uh-btn-caption{ margin:0 0 10px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-pink); font-size:15px; letter-spacing:.04em; }

/* =========================================================
 * TOP：メインビュー
 * ========================================================= */
.uh-mv{
  position:relative; overflow:hidden; width:99%; margin:0 auto;
  border-radius:24px; min-height:clamp(460px,56vw,680px);
  display:flex; align-items:flex-end; background:#dfeaf2 center/cover no-repeat;
}
.uh-mv__grad{ position:absolute; inset:0; background:linear-gradient(0deg,rgba(20,30,40,.28) 0%,rgba(20,30,40,0) 45%); }
.uh-mv__en{
  position:absolute; top:clamp(24px,5vw,56px); right:clamp(24px,4vw,64px); text-align:right;
  font-family:"Montserrat",sans-serif; font-weight:800; letter-spacing:.28em; color:#fff;
  font-size:clamp(14px,1.5vw,17px); line-height:2.1; text-shadow:0 2px 12px rgba(0,0,0,.35);
}
.uh-mv__inner{ position:relative; width:100%; margin:0 auto; padding:0 clamp(20px,4vw,56px) clamp(40px,6vw,72px) clamp(14px,2vw,30px); }
.uh-mv__box{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; line-height:1.9; }
.uh-mv__copy{ margin:0; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:900; font-size:clamp(22px,2.7vw,45px); line-height:1.85; letter-spacing:.05em; color:#fff; }
.uh-mv__copy span{ background:var(--uh-red); padding:.16em .5em; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.uh-mv__sub{ margin:0; font-size:clamp(12px,1.25vw,18px); line-height:2.8; letter-spacing:.05em; font-weight:700; color:var(--uh-red); }
.uh-mv__sub span{ background:#fff; padding:.55em .9em; -webkit-box-decoration-break:clone; box-decoration-break:clone; }

/* TOPICS（新着情報） */
.uh-topics{ display:grid; grid-template-columns:minmax(200px,280px) 1fr; gap:24px 56px; align-items:start; }
.uh-topics__head .uh-eyebrow{ font-size:17px; }
.uh-topics__head h2{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:clamp(25px,3vw,34px); line-height:1.2; margin:6px 0 0; }
.uh-newsrow{ display:grid; grid-template-columns:auto 1fr; gap:0 28px; align-items:start; padding:22px 0; border-top:1px solid #eee2db; border-bottom:1px solid #eee2db; }
.uh-newsdate{ justify-self:start; border:1px solid var(--uh-red); color:var(--uh-red); border-radius:999px; padding:5px 18px; font-family:"Montserrat",sans-serif; font-weight:700; font-size:14px; letter-spacing:.06em; }
.uh-newsttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:16px; margin-bottom:8px; }

/* 特徴カード */
.uh-features{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:26px; }
.uh-feature{
  text-align:center; cursor:pointer; position:relative; overflow:hidden; background:#fff; border-radius:22px;
  box-shadow:0 8px 26px rgba(224,57,22,.06); border:1px solid #f3e3dc; padding:30px 26px 26px;
  display:flex; flex-direction:column; align-items:center; transition:transform .3s ease,border-color .3s ease;
}
.uh-feature:hover{ transform:translateY(-4px); border-color:var(--uh-red); }
.uh-feature__no{
  position:absolute; top:0; left:0; font-family:"Montserrat",sans-serif; font-weight:900; font-size:22px; color:#fff;
  background:linear-gradient(135deg,#FBA5C4,#F776A3); width:56px; height:56px; display:flex; align-items:center; justify-content:center;
  border-radius:22px 0 18px 0; box-shadow:0 4px 10px rgba(247,118,163,.35);
}
.uh-feature__ic{ width:112px; height:112px; border-radius:50%; background:#FFF5F0; display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
.uh-feature__ic img{ height:74px; width:auto; display:block; }
.uh-feature__ttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:18px; letter-spacing:.02em; line-height:1.5; margin:0 0 10px; }
.uh-feature__sep{ width:100%; border-top:2px dotted #e0d3cc; margin-bottom:14px; }
.uh-feature__txt{ margin:0; font-size:14px; color:var(--uh-txt2); line-height:1.85; text-align:left; }

/* 診療時間カード＆テーブル */
.uh-hourscard{ background:#fff; border-radius:26px; box-shadow:0 10px 30px rgba(127,35,37,.07); border:1px solid #f3e3dc; overflow:hidden; }
.uh-hourscard__head{ background:var(--uh-red); color:#fff; padding:20px 30px; display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; }
.uh-hourscard__head h2{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:22px; margin:0; }
.uh-hourscard__body{ padding:26px 30px 32px; }
.uh-scroll{ overflow-x:auto; }
.uh-hours{ width:100%; border-collapse:collapse; min-width:520px; text-align:center; font-family:"Noto Sans JP",sans-serif; }
.uh-hours th, .uh-hours td{ padding:12px; border:1px solid #ece1d5; }
.uh-hours thead tr{ background:#F3EBDD; }
.uh-hours thead th{ font-weight:700; color:var(--uh-txt); }
.uh-hours thead th.is-time{ color:var(--uh-red); }
.uh-hours thead th.is-sun{ color:#b98a5a; }
.uh-hours tbody th{ background:#FBF6EE; font-weight:700; color:var(--uh-txt); white-space:nowrap; }
.uh-hours .ok{ color:#3E8C7E; font-weight:900; font-size:18px; }
.uh-hours .ng{ color:#a4938a; font-weight:900; font-size:18px; }
.uh-hours-note{ margin:18px 0 0; font-size:14px; color:#8a6b6b; }
.uh-hours-note--center{ text-align:left; }

/* 注意事項ボックス */
.uh-notice{ background:#fff6f2; border-radius:26px; padding:34px 34px 30px; position:relative; }
.uh-notice__head{ display:flex; align-items:center; gap:16px; margin:0 0 26px; }
.uh-notice__mark{ flex:none; width:52px; height:52px; border-radius:16px; background:var(--uh-red); color:#fff; display:flex; align-items:center; justify-content:center; font-family:"Montserrat",sans-serif; font-weight:900; font-size:30px; box-shadow:0 8px 18px rgba(224,57,22,.3); }
.uh-notice__ttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:clamp(20px,3.2vw,var(--fs-h2)); line-height:1.3; letter-spacing:var(--ls-h); margin:0; }
.uh-notice__list{ display:grid; gap:14px; }
.uh-notice__list p{ margin:0; font-size:var(--fs-body); color:var(--uh-txt2); }

/* メニューカード（写真＋斜め角プレート） */
.uh-menu{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:34px; }
.uh-menucard{ text-align:left; cursor:pointer; background:none; border:0; padding:0; display:flex; flex-direction:column; transition:opacity .25s ease; }
.uh-menucard:hover{ opacity:.92; }
.uh-menucard__ph{ position:relative; aspect-ratio:4/3; border-radius:22px; overflow:hidden; background:#FFF1F4; display:flex; align-items:center; justify-content:center; }
.uh-menucard__ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.uh-menucard:hover .uh-menucard__ph img{ transform:scale(1.07); }
.uh-menucard__plate{ position:relative; z-index:2; margin:-52px 40px 0 0; background:#fff; border-radius:0 26px 0 0; padding:18px 22px 4px 2px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.uh-kado{ position:absolute; background:#fff; -webkit-mask:url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28380/kado.svg') no-repeat center/contain; mask:url('https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28380/kado.svg') no-repeat center/contain; }
.uh-menucard__plate .uh-kado{ bottom:10px; right:-24px; width:25px; height:25px; }
.uh-menucard__ttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-red); font-size:24px; letter-spacing:.04em; margin:0; }
.uh-menucard__arrow{ flex:none; width:32px; height:32px; border-radius:50%; background:var(--uh-red); display:flex; align-items:center; justify-content:center; transition:transform .28s ease; }
.uh-menucard__arrow i{ color:#fff; font-size:12px; }
.uh-menucard:hover .uh-menucard__arrow{ transform:translateX(7px); }
.uh-menucard__desc{ margin:6px 0 16px; flex:1; font-size:14px; color:var(--uh-txt2); line-height:1.8; }

/* =========================================================
 * 下層：ページヒーロー（角丸カード）
 * ========================================================= */
.uh-hero{ position:relative; overflow:hidden; width:98%; max-width:1600px; margin:0 auto; border-radius:24px; min-height:clamp(260px,30vw,500px); background-position:center; background-size:cover; background-repeat:no-repeat; }
.uh-hero__plate{ position:absolute; left:0; bottom:0; background:#fff; border-radius:0 30px 0 0; padding:22px 48px 20px clamp(20px,4vw,56px); }
.uh-hero__plate .uh-kado{ bottom:-4px; right:-42px; width:44px; height:44px; }
.uh-hero__en{ font-family:"Montserrat",sans-serif; font-weight:800; letter-spacing:.2em; color:rgba(224,57,22,.55); font-size:14px; }
.uh-hero__ja{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:900; color:var(--uh-txt); font-size:clamp(24px,3vw,34px); letter-spacing:.08em; line-height:1.1; margin:6px 0 0; }

/* =========================================================
 * about：理念・安全・挨拶・アクセス
 * ========================================================= */
.uh-philosophy{ padding:8px 0; text-align:center; }
.uh-philosophy__lead{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-red); font-size:clamp(20px,2.6vw,26px); line-height:1.7; margin:0 0 20px; }
.uh-philosophy__txt{ margin:0; font-size:var(--fs-body); color:var(--uh-txt2); line-height:var(--lh-body); text-align:left; }

.uh-saferows{ display:flex; flex-direction:column; gap:56px; }
.uh-saferow{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:36px; align-items:center; }
.uh-badge{ display:inline-block; background:var(--uh-red); color:#fff; border-radius:999px; padding:5px 16px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:14px; }
.uh-badgewrap{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.uh-safe-ttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:22px; line-height:1.5; letter-spacing:var(--ls-h); margin:0 0 16px; padding-bottom:14px; border-bottom:2px dotted var(--uh-pink); }
.uh-br-sp{ display:none; }
@media (max-width:768px){ .uh-safe-ttl{ font-size:18px; } }
.uh-safe-txt{ margin:0; font-size:15px; color:var(--uh-txt2); line-height:1.95; }
.uh-imgpair{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.uh-imgpair > div{ aspect-ratio:3/4; border-radius:16px; overflow:hidden; background:#E8F4FB; }
.uh-imgpair img{ width:100%; height:100%; object-fit:cover; display:block; }
.uh-gallery3{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.uh-gallery3 > div{ aspect-ratio:1; border-radius:14px; overflow:hidden; background:#f3e3dc; }
.uh-gallery3 img{ width:100%; height:100%; object-fit:cover; display:block; }
.uh-photo43{ aspect-ratio:4/3; border-radius:18px; overflow:hidden; background:#FFF3DE; }
.uh-photo43 img{ width:100%; height:100%; object-fit:cover; display:block; }
.uh-order1{ order:1; } .uh-order2{ order:2; }

.uh-greeting{ display:grid; grid-template-columns:240px 1fr; gap:60px; align-items:start; }
.uh-greeting__aside{ position:sticky; top:80px; align-self:start; }
.uh-doctor-ph{ aspect-ratio:3/4; border-radius:16px; background:#f5f0ea; display:flex; align-items:center; justify-content:center; text-align:center; color:#a89a90; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; padding:18px; font-size:14px; overflow:hidden; }
.uh-doctor-ph img{ width:100%; height:100%; object-fit:cover; }
.uh-doctor-name{ margin:14px 0 0; text-align:center; font-family:"Zen Kaku Gothic New",sans-serif; color:var(--uh-txt); }
.uh-doctor-sign{ margin:18px 0 8px; text-align:right; font-family:"Zen Kaku Gothic New",sans-serif; color:var(--uh-txt); font-size:15px; }
.uh-doctor-sign b{ font-size:19px; font-weight:700; margin:0 2px; }
.uh-greeting-single .uh-sub-ttl:first-child{ margin-top:0; }
.uh-profile-card{ margin-top:16px; }
.uh-doctor-name .role{ font-size:14px; color:#a89a90; }
.uh-doctor-name b{ font-size:22px; }
.uh-doctor-name .kana{ font-size:14px; color:#a89a90; }
.uh-sub-ttl{ font-family:"Zen Kaku Gothic New",sans-serif; color:var(--uh-txt); font-size:clamp(18px,2.4vw,var(--fs-h3)); line-height:var(--lh-h3); letter-spacing:var(--ls-h); margin:32px 0 12px; border-left:4px solid var(--uh-red); padding-left:12px; }
.uh-sub-ttl--gap{ margin-top:56px; }
.uh-career{ display:grid; grid-template-columns:1fr 1fr; gap:2px 32px; list-style:none; margin:0 0 22px; padding:14px 24px; background:#FCFAF4; border-radius:16px; font-size:var(--fs-body); color:var(--uh-txt2); }
.uh-career li{ padding:8px 0; border-bottom:1px dashed #ece1d5; }
.uh-career li:last-child{ border-bottom:0; }
.uh-career b{ color:var(--uh-txt); font-family:"Montserrat",sans-serif; margin-right:10px; }
@media (max-width:600px){ .uh-career{ grid-template-columns:1fr; gap:0; } }
.uh-cert__block{ display:grid; grid-template-columns:104px 1fr; gap:16px; align-items:start; margin-top:16px; }
.uh-cert__block .uh-pill-label{ margin-bottom:0; }
.uh-cert__block .uh-p--sm{ margin:2px 0 0; }
@media (max-width:520px){
  .uh-cert__block{ grid-template-columns:1fr; gap:8px; }
}

.uh-cardgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; align-items:stretch; }
.uh-infobox{ background:#fff; border-radius:22px; padding:30px; box-shadow:0 8px 26px rgba(127,35,37,.06); border:1px solid #f3e3dc; }
.uh-info-table{ width:100%; border-collapse:collapse; font-size:14.5px; }
.uh-info-table th{ text-align:left; padding:12px 0; border-bottom:1px solid #f0dfe6; color:var(--uh-red); white-space:nowrap; vertical-align:top; width:96px; }
.uh-info-table td{ padding:12px 0; border-bottom:1px solid #f0dfe6; color:var(--uh-txt2); }
.uh-info-table tr:last-child th, .uh-info-table tr:last-child td{ border-bottom:0; }
.uh-info-table .num{ font-family:"Montserrat",sans-serif; font-weight:800; font-size:18px; }
.uh-facility-link{ margin:28px 0 0; text-align:center; }
.uh-map-lg{ width:100%; min-height:300px; border:0; border-radius:22px; box-shadow:0 8px 26px rgba(127,35,37,.06); }

/* =========================================================
 * service：症状タグ・カード
 * ========================================================= */
/* 診療案内：セクション交互背景（白／ベージュの全幅帯） */
.uh-serv-sec{ padding:64px 0; background:linear-gradient(to bottom, #ffffff 0%, #fffbf4 100%); }
.uh-serv-sec--tint{ background:linear-gradient(to bottom, #ffffff 0%, #fffbf4 100%); }
.uh-serv-sec--plain{ background:none; }
.uh-serv-sec--cta{ padding-bottom:90px; }
@media (max-width:768px){ .uh-serv-sec{ padding:48px 0; } }
.uh-serv-photo{ border-radius:18px; overflow:hidden; margin-bottom:26px; aspect-ratio:16/5; background:#FDE7EF; }
.uh-serv-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:640px){ .uh-serv-photo{ aspect-ratio:16/8; } }
.uh-symptom{ display:grid; grid-template-columns:auto 1fr; gap:16px 20px; align-items:start; margin-bottom:24px; }
.uh-tag{ background:#F8F2E7; color:var(--uh-txt); border-radius:8px; padding:6px 16px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:14px; white-space:nowrap; }
.uh-servbox{ background:#FCF8F1; border-radius:18px; padding:26px 28px; }
.uh-servbox__lead{ margin:0 0 18px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-red); font-size:16px; display:flex; align-items:center; gap:8px; }
.uh-servbox__lead::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--uh-red); }
.uh-minicards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.uh-minicard{ background:#fff; border-radius:14px; padding:20px 22px; }
.uh-minicard__ttl{ margin:0 0 8px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-red); font-size:15px; }
.uh-minicard__txt{ margin:0; font-size:14px; color:var(--uh-txt2); line-height:1.85; }

.uh-dotcards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.uh-dotcard{ background:#fff; border:1px solid var(--uh-line); border-radius:16px; padding:24px 26px; }
.uh-dotcard__ttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:17px; margin:0 0 8px; display:flex; align-items:center; gap:9px; }
.uh-dotcard__ttl::before{ content:""; flex:none; width:9px; height:9px; border-radius:50%; background:var(--uh-red); }
.uh-dotcard__txt{ margin:0; font-size:14px; color:var(--uh-txt2); line-height:1.9; letter-spacing:.02em; }

.uh-vaccine{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:24px; align-items:stretch; }
.uh-vaccard{ background:#fff; border:1px solid var(--uh-line); border-radius:16px; padding:28px; display:flex; flex-direction:column; }
.uh-vaccard__ttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:clamp(18px,2.4vw,var(--fs-h3)); line-height:var(--lh-h3); letter-spacing:var(--ls-h); margin:0 0 20px; display:flex; align-items:center; gap:9px; }
.uh-vaccard__ttl::before{ content:""; flex:none; width:9px; height:9px; border-radius:50%; background:var(--uh-red); }
.uh-pill-label{ display:inline-block; background:var(--uh-red); color:#fff; border-radius:6px; padding:3px 12px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:14px; margin-bottom:8px; }
.uh-pill-label--brown{ background:#b58a5e; }
.uh-vac-block{ margin-bottom:18px; }
.uh-vac-block:last-child{ margin-bottom:0; }
.uh-vac-block p{ margin:0; font-size:14px; color:var(--uh-txt2); line-height:1.7; }

.uh-circle-img{ width:200px; height:200px; border-radius:50%; object-fit:cover; border:6px solid #FDE7EF; box-shadow:0 8px 22px rgba(127,35,37,.1); display:inline-block; vertical-align:middle; }
.uh-boshimo{ display:grid; grid-template-columns:240px 1fr; gap:40px; align-items:stretch; }
.uh-boshimo__img{ text-align:center; }
.uh-boshimo__pic{ width:100%; max-width:240px; height:100%; object-fit:cover; border-radius:16px; box-shadow:0 8px 22px rgba(127,35,37,.1); display:block; margin:0 auto; }
.uh-boshimo__cards{ display:flex; flex-direction:column; gap:16px; }
@media (max-width:640px){
  .uh-boshimo{ grid-template-columns:1fr; gap:24px; justify-items:center; }
}
.uh-check-ttl{ margin:0 0 10px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:16px; display:flex; align-items:center; gap:9px; }
.uh-check-ttl i, .uh-check-ttl .ck{ color:var(--uh-red); flex:none; }

/* =========================================================
 * reservation：予約方法行・フロー・持ち物
 * ========================================================= */
.uh-resv-intro{ display:grid; grid-template-columns:220px 1fr; gap:48px; align-items:center; }
.uh-resv-intro__img{ width:100%; max-width:220px; margin:0 auto; order:-1; }
.uh-resv-intro__img img{ width:100%; height:auto; display:block; }
@media (max-width:640px){
  .uh-resv-intro{ grid-template-columns:1fr; gap:24px; text-align:center; }
  .uh-resv-intro__img{ order:-1; max-width:145px; }
}
.uh-inline-head{ display:inline-block; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:clamp(19px,2.4vw,24px); padding-bottom:12px; border-bottom:2px dotted #eabfae; }

.uh-visit{ background:#fff6f2; border-radius:24px; padding:36px 40px; }
.uh-visit__head{ display:flex; align-items:center; gap:14px; margin-bottom:8px; padding-bottom:20px; border-bottom:2px dotted #eabfae; }
.uh-visit__mark{ flex:none; width:44px; height:44px; border-radius:12px; background:var(--uh-red); color:#fff; display:flex; align-items:center; justify-content:center; font-family:"Montserrat",sans-serif; font-weight:900; font-size:24px; }
.uh-visit__ttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:clamp(18px,2.4vw,22px); margin:0; }
.uh-visit__row{ display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start; padding:22px 0; border-bottom:1px dotted #eabfae; }
.uh-visit__row:last-child{ border-bottom:0; }
.uh-num{ flex:none; width:28px; height:28px; border-radius:50%; background:var(--uh-red); color:#fff; display:flex; align-items:center; justify-content:center; font-family:"Montserrat",sans-serif; font-weight:800; font-size:14px; }
.uh-visit__row h3{ margin:0 0 4px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:15px; }
.uh-visit__row p{ margin:0; font-size:14px; color:var(--uh-txt2); line-height:1.9; }

.uh-resv-rows{ display:flex; flex-direction:column; gap:10px; }
.uh-resv-row{ display:grid; grid-template-columns:240px 1fr; gap:0; align-items:stretch; background:#fff; border:1px solid var(--uh-line); border-radius:16px; overflow:hidden; }
.uh-resv-row__label{ background:#FCF8F1; padding:24px 18px; display:flex; align-items:center; justify-content:center; text-align:center; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:16px; }
.uh-resv-row__body{ padding:22px 26px; }
.uh-resv-row__body p{ margin:0; font-size:14px; color:var(--uh-txt2); line-height:1.9; }
.uh-way-label{ display:inline-block; background:var(--uh-red); color:#fff; border-radius:8px; padding:5px 14px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:14px; margin-bottom:12px; }

.uh-flow{ max-width:640px; margin:0 auto; display:flex; flex-direction:column; gap:0; }
.uh-flow__row{ display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:start; }
.uh-flow__num{ display:flex; flex-direction:column; align-items:center; }
.uh-flow__num > span:first-child{ flex:none; width:46px; height:46px; border-radius:50%; background:var(--uh-red); color:#fff; display:flex; align-items:center; justify-content:center; font-family:"Montserrat",sans-serif; font-weight:900; font-size:20px; }
.uh-flow__line{ width:2px; flex:1; background:#f0d9cf; min-height:28px; }
.uh-flow__card{ background:#fff; border:1px solid var(--uh-line); border-radius:14px; padding:18px 22px; margin-bottom:16px; }
.uh-flow__card p{ margin:0; font-size:14px; color:var(--uh-txt2); line-height:1.9; }
.uh-flow-ttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:clamp(22px,3.2vw,var(--fs-h2)); line-height:1.3; letter-spacing:var(--ls-h); margin:0 0 26px; text-align:center; }
.uh-chip-red{ display:inline-block; background:var(--uh-red); color:#fff; border-radius:999px; padding:9px 16px; font-size:17px; font-weight:700; margin-bottom:12px; }
.uh-alert{ margin-top:32px; background:#fff; border:1px solid #F0D9A8; border-left:5px solid #E0A63C; border-radius:14px; padding:18px 22px; box-shadow:0 4px 14px rgba(127,35,37,.06); }
.uh-alert p{ margin:0; font-size:14px; color:#7a5c2a; line-height:1.9; }
.uh-alert i{ margin-right:6px; }

.uh-bring{ background:#FCF8F1; border-radius:16px; padding:24px 28px; margin-bottom:20px; }
.uh-bring__head{ display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.uh-bring__head i{ color:var(--uh-red); }
.uh-bring__head span{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:16px; }
.uh-chips{ display:flex; flex-wrap:wrap; gap:10px; }
.uh-chip{ background:#fff; border:1px solid var(--uh-line); border-radius:999px; padding:7px 16px; font-size:14px; color:var(--uh-txt2); }
.uh-checkrows{ display:grid; gap:14px; }
.uh-checkrow{ display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:start; background:#fff; border:1px solid var(--uh-line); border-radius:14px; padding:20px 22px; }
.uh-checkrow > i{ color:var(--uh-red); font-size:18px; margin-top:2px; }
.uh-checkrow p{ margin:0; font-size:15px; color:var(--uh-txt2); line-height:1.9; }

/* =========================================================
 * recruit：求める人材・選考・フォーム
 * ========================================================= */
.uh-recruit-intro{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:40px; align-items:stretch; }
.uh-recruit-intro__img{ position:relative; border-radius:20px; min-height:300px; }
.uh-recruit-intro__img img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:20px; position:relative; z-index:1; }
/* 画像まわりのあしらい（ピンクのフレーム＋丸ドット） */
.uh-recruit-intro__img::before{ content:""; position:absolute; left:-16px; bottom:-16px; width:90%; height:90%; border:3px solid var(--uh-pink); border-radius:20px; z-index:0; }
.uh-recruit-intro__img::after{ content:""; position:absolute; left:-18px; top:-18px; width:58px; height:58px; border-radius:50%; background:#FDE7EF; z-index:0; }
.uh-recruit-intro__lead{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-txt); font-size:clamp(20px,2.6vw,26px); margin:0 0 20px; line-height:1.5; }
.uh-recruit-intro .uh-p--sm{ font-size:15px; }

.uh-reasons{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:22px; }
.uh-reason{ background:#fff; border-radius:20px; padding:26px; box-shadow:0 6px 20px rgba(127,35,37,.05); border:1px solid #f3e3dc; }
.uh-reason__no{ width:48px; height:48px; border-radius:14px; background:#FDE7EF; color:var(--uh-pink); display:flex; align-items:center; justify-content:center; font-family:"Montserrat",sans-serif; font-weight:900; font-size:20px; margin-bottom:14px; }
.uh-reason__ttl{ font-family:"Zen Kaku Gothic New",sans-serif; color:var(--uh-red); font-size:clamp(18px,2.4vw,var(--fs-h3)); line-height:var(--lh-h3); letter-spacing:var(--ls-h); margin:0 0 8px; }
.uh-reason__txt{ margin:0; font-size:var(--fs-body); color:var(--uh-txt2); line-height:var(--lh-body); }

/* 求める人材像：横並びPOINTリスト（3カラムカードとは別レイアウト） */
.uh-persona{ display:flex; flex-direction:column; gap:18px; }
.uh-persona__item{ display:grid; grid-template-columns:auto 1fr; gap:30px; align-items:center; background:#fff; border:1px solid #f3e3dc; border-radius:20px; padding:26px 34px; box-shadow:0 6px 20px rgba(127,35,37,.05); transition:transform .3s ease,box-shadow .3s ease; }
.uh-persona__item:hover{ transform:translateY(-3px); box-shadow:0 10px 26px rgba(127,35,37,.1); }
.uh-persona__no{ flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; width:78px; height:78px; border-radius:50%; background:linear-gradient(135deg,#FBA5C4,#F776A3); color:#fff; box-shadow:0 6px 14px rgba(247,118,163,.35); }
.uh-persona__no small{ font-family:"Montserrat",sans-serif; font-weight:700; font-size:10px; letter-spacing:.14em; opacity:.95; }
.uh-persona__no b{ font-family:"Montserrat",sans-serif; font-weight:900; font-size:28px; line-height:1; }
.uh-persona__ttl{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-red); font-size:19px; margin:0 0 8px; letter-spacing:.02em; }
.uh-persona__txt{ margin:0; font-size:15px; color:var(--uh-txt2); line-height:1.9; }
@media (max-width:560px){
  .uh-persona__item{ grid-template-columns:1fr; gap:14px; padding:22px 20px; align-items:start; }
  .uh-persona__no{ justify-self:center; width:52px; height:52px; }
  .uh-persona__no small{ font-size:9px; }
  .uh-persona__no b{ font-size:20px; }
  .uh-persona__ttl{ font-size:16px; margin-bottom:6px; text-align:center; }
  .uh-persona__txt{ font-size:14px; line-height:1.85; }
}

.uh-req-table-wrap{ background:#fff; border-radius:22px; overflow:hidden; box-shadow:0 8px 24px rgba(127,35,37,.06); border:1px solid #f3e3dc; }
.uh-req-table{ width:100%; border-collapse:collapse; font-size:14px; }
.uh-req-table th{ text-align:left; background:var(--uh-red); color:#fff; padding:16px 20px; border-bottom:1px solid #fff; width:150px; vertical-align:top; font-family:"Zen Kaku Gothic New",sans-serif; }
.uh-req-table td{ padding:16px 20px; border-bottom:1px solid #f0dfe6; color:var(--uh-txt2); }
.uh-req-table tr:last-child th, .uh-req-table tr:last-child td{ border-bottom:0; }
.uh-req-table .tbd{ color:#a89a90; }

.uh-process{ display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:14px; align-items:stretch; }
.uh-process__card{ position:relative; background:#fff; border-radius:24px; padding:30px 24px 26px; text-align:center; border:2px solid #fde3ec; box-shadow:0 8px 22px rgba(247,118,163,.12); transition:transform .3s ease,box-shadow .3s ease; }
.uh-process__card:hover{ transform:translateY(-4px); box-shadow:0 14px 28px rgba(247,118,163,.2); }
.uh-process__step{ position:absolute; top:-15px; left:50%; transform:translateX(-50%); display:inline-flex; align-items:center; gap:6px; background:linear-gradient(135deg,#FBA5C4,#F776A3); color:#fff; border-radius:999px; padding:6px 18px; font-family:"Montserrat",sans-serif; font-weight:800; font-size:11px; letter-spacing:.12em; white-space:nowrap; box-shadow:0 6px 14px rgba(247,118,163,.4); }
.uh-process__step b{ font-size:15px; }
.uh-process__ico{ width:66px; height:66px; border-radius:50%; background:#FFF5F0; color:var(--uh-red); display:flex; align-items:center; justify-content:center; font-size:27px; margin:6px auto 14px; }
.uh-process__card h3{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-red); font-size:18px; letter-spacing:.02em; margin:0 0 10px; }
.uh-process__card p{ margin:0; font-size:14px; color:var(--uh-txt2); line-height:1.9; text-align:left; }
.uh-process__arrow{ display:flex; align-items:center; color:var(--uh-pink); font-size:26px; }

.uh-divider{ border:0; border-top:1px solid #e6e0d9; max-width:760px; margin:0 auto 44px; }
.uh-form{ background:#fff; border-radius:24px; padding:34px; box-shadow:0 8px 24px rgba(127,35,37,.06); border:1px solid #f3e3dc; display:grid; gap:18px; }
.uh-form label{ display:block; }
.uh-form__label{ font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; color:var(--uh-red); font-size:14px; display:block; margin-bottom:6px; }
.uh-form__req{ color:var(--uh-pink); }
.uh-form__opt{ color:#aaa; font-weight:500; }
.uh-form input[type=text], .uh-form input[type=tel], .uh-form input[type=email], .uh-form textarea{ width:100%; padding:12px 14px; border:1px solid #e7d5cd; border-radius:12px; font-family:inherit; font-size:15px; background:#fffdfb; }
.uh-form textarea{ resize:vertical; }
.uh-form__two{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:18px; }
.uh-form__radios{ display:flex; gap:20px; flex-wrap:wrap; }
.uh-form__radios label{ display:flex; align-items:center; gap:8px; font-size:var(--fs-body); color:var(--uh-txt2); cursor:pointer; }
.uh-form__radios input, .uh-form__agree input{ accent-color:var(--uh-pink); width:18px; height:18px; }
.uh-form__agree{ display:flex; align-items:center; gap:10px; justify-content:center; font-size:var(--fs-body); color:var(--uh-txt2); cursor:pointer; }
.uh-form__submit{ background:var(--uh-pink); color:#fff; border:0; border-radius:999px; padding:16px; font-family:"Zen Kaku Gothic New",sans-serif; font-weight:700; font-size:17px; cursor:pointer; box-shadow:0 10px 24px rgba(247,118,163,.4); transition:background .25s ease; }
.uh-form__submit:hover{ background:var(--uh-pink-dark); }
.uh-recruit-tel{ margin-top:22px; background:var(--uh-red); color:#fff; border-radius:18px; padding:22px 26px; text-align:center; }
.uh-recruit-tel p{ margin:0; font-size:14.5px; line-height:var(--lh-body); }
.uh-recruit-tel__lead{ font-weight:700; }
.uh-recruit-tel__lead i{ margin-right:8px; }
.uh-recruit-tel__tel{ margin-top:6px; }
.uh-recruit-tel .num{ font-family:"Montserrat",sans-serif; font-weight:800; font-size:24px; vertical-align:middle; }
.uh-recruit-tel__mng{ font-size:14px; margin-left:4px; }
.uh-recruit-tel .sm{ display:block; margin-top:8px; font-size:14px; opacity:.85; }

/* ページトップ */
.uh-pagetop{ position:fixed; right:20px; bottom:20px; z-index:55; opacity:0; visibility:hidden; transform:translateY(10px); transition:all .3s ease; }
.uh-pagetop.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.uh-pagetop a{ width:48px; height:48px; border-radius:50%; background:var(--uh-red); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(224,57,22,.3); }
.uh-pagetop a:hover{ background:var(--uh-red-dark); color:#fff; }

/* =========================================================
 * レスポンシブ
 * ========================================================= */
@media (max-width:900px){
  .uh-process{ grid-template-columns:1fr; }
  .uh-process__arrow{ justify-content:center; transform:rotate(90deg); }
  .uh-greeting{ grid-template-columns:1fr; gap:28px; }
  .uh-greeting__aside{ position:static; }
  .uh-doctor-ph{ max-width:240px; margin:0 auto; }
  .uh-topics{ grid-template-columns:1fr; gap:14px; }
  .uh-resv-row{ grid-template-columns:1fr; }
  .uh-resv-row__label{ justify-content:flex-start; }
}
@media (max-width:768px){
  .uh-topbar__inner{ padding:10px 16px; gap:12px; }
  .uh-topbar__logo img{ height:40px; }
  .uh-topbar__right{ gap:12px; width:100%; justify-content:space-between; }
  .uh-tel{ font-size:18px; padding-left:10px; }
  .uh-nav__item{ min-width:33.333%; flex:1 0 33.333%; font-size:13px; padding:12px 6px; }
  .uh-form{ padding:24px; }
  .uh-newsrow{ grid-template-columns:1fr; gap:8px 0; }
  .uh-newsdate{ font-size:12px; padding:4px 14px; }
  .uh-mv{ width:100%; border-radius:0; }
  .uh-sec-ttl{ text-align:center; text-wrap:balance; word-break:auto-phrase; }
  .uh-hourscard__head h2{ font-size:19px; }
  .uh-notice{ padding:24px 20px 22px; border-radius:20px; }
  .uh-notice__head{ flex-direction:column; align-items:center; text-align:center; gap:10px; margin-bottom:20px; }
  .uh-notice__mark{ width:34px; height:34px; border-radius:10px; font-size:20px; box-shadow:0 5px 12px rgba(224,57,22,.3); }
  .uh-info-table th{ width:80px; }
  .uh-info-table .num{ font-size:16px; }
  .uh-symptom{ grid-template-columns:1fr; gap:10px 0; }
  .uh-p{ text-align:left; }
  .uh-br-sp{ display:inline; }
  /* スマホ：14px の文字を一律 13px へ（.uh-newsdate は 12px 指定のため除外） */
  .uh-access, .uh-webbtn, .uh-drawer__sub,
  .uh-footer__addr, .uh-footer__title, .uh-footer__row, .uh-footer__note, .uh-footer__menu a, .uh-footer__parking, .uh-footer__copy,
  .uh-p--sm, .uh-feature__txt, .uh-hours-note, .uh-menucard__desc, .uh-hero__en, .uh-badge,
  .uh-doctor-ph, .uh-doctor-name .role, .uh-doctor-name .kana, .uh-tag, .uh-minicard__txt, .uh-dotcard__txt,
  .uh-pill-label, .uh-vac-block p, .uh-num, .uh-visit__row p, .uh-resv-row__body p, .uh-way-label,
  .uh-flow__card p, .uh-alert p, .uh-chip, .uh-req-table, .uh-process__card p, .uh-form__label, .uh-recruit-tel .sm{ font-size:13px; }
  /* .uh-visit：スマホ時の余白・要素を詰めてバランス調整 */
  .uh-visit{ padding:24px 20px; border-radius:18px; }
  .uh-visit__head{ gap:10px; padding-bottom:16px; }
  .uh-visit__mark{ width:36px; height:36px; border-radius:10px; font-size:20px; }
  .uh-visit__row{ gap:12px; padding:16px 0; }
  /* .uh-flow：番号列を行高に合わせて伸ばし、つなぎ線を途切れさせない＋番号を縮小 */
  .uh-flow__row{ align-items:stretch; gap:14px; }
  .uh-flow__num > span:first-child{ width:38px; height:38px; font-size:16px; }
  /* 募集要項テーブル：スマホは th／td を縦積みブロックに */
  .uh-req-table, .uh-req-table tbody, .uh-req-table tr, .uh-req-table th, .uh-req-table td{ display:block; width:auto; }
  .uh-req-table th{ border-bottom:0; padding:11px 18px; }
  .uh-req-table td{ padding:12px 18px 18px; }
  /* 安全・安心への取り組み：スマホは全行「テキスト→画像」の縦並びに統一 */
  .uh-saferow{ grid-template-columns:1fr; gap:24px; }
  .uh-order1, .uh-order2{ order:0; }
  .uh-dotcard{ padding:24px 23px; }
  .uh-doctor-sign{ font-size:13px; margin-bottom:30px; }
  .uh-doctor-sign b{ font-size:17px; }
  .uh-pill-label{ font-size:15px; }
  .uh-facility-link .uh-btn{ font-size:13px; padding:12px 18px; white-space:nowrap; }
  /* .uh-recruit-tel：スマホは番号を独立行・注記を下に小さく、余白を詰めてバランス調整 */
  .uh-recruit-tel{ padding:20px 18px; }
  .uh-recruit-tel__tel{ margin-top:4px; }
  .uh-recruit-tel .num{ display:block; font-size:23px; }
  .uh-recruit-tel__mng{ display:block; margin-left:0; font-size:12.5px; opacity:.85; }
}
@media (max-width:520px){
  .uh-menu{ gap:24px; }
  .uh-imgpair, .uh-gallery3{ gap:8px; }
  .uh-hero__plate{ padding:14px 26px 5px 18px; }
}

/* サイドレール → ハンバーガー表示（≤1024px）と同タイミングで画面下固定バーへ
   （--yoyaku/--onegai の font-size に勝つよう、修飾子より後方に配置） */
@media (max-width:1024px){
  .uh-siderail{ top:auto; bottom:0; left:0; right:0; width:100%; flex-direction:row; gap:0; transform:translateY(100%); border-top:1px solid #fff; }
  .uh-siderail.is-visible{ transform:translateY(0); }
  .uh-siderail__link{ writing-mode:horizontal-tb; flex:1; justify-content:center; align-items:center; gap:8px; padding:13px 6px; border-radius:0; font-size:13px; letter-spacing:.05em; box-shadow:none; }
  .uh-siderail__link i, .uh-siderail__link .uh-siderail__ic{ writing-mode:horizontal-tb; font-size:16px; }
  .uh-siderail__sponly{ display:flex; }
  .uh-siderail__pconly{ display:none; }
  .uh-siderail__lbl-pc{ display:none; }
  .uh-siderail__lbl-sp{ display:inline; }
  .uh-siderail__link--tel, .uh-siderail__link--map{ font-size:13px; }
  .uh-pagetop{ bottom:72px; }
  .uh-footer__copy{ padding-bottom:68px; }
}
/* スマホ：ヒーロー英語縮小 */
@media (max-width:639px){
  .uh-hero__en{ font-size:10px; }
}
