/* ============================================================
 * スマホの専門外来（v0.2.0〜）
 * 旧 style.css の後に読む。旧クラスの色も外来の色に寄せる。
 * ============================================================ */
:root{
  --g-bg:#f4faf8;--g-card:#fff;--g-ink:#16323a;--g-ink2:#4a6168;--g-mute:#7f969c;--g-line:#d9ebe6;
  --g-teal:#0f9d8a;--g-teal-dk:#0b7566;--g-teal-bg:#e3f5f1;--g-mint:#c9efe6;
  --g-coral:#ff6f61;--g-coral-dk:#e0503f;--g-coral-bg:#ffecea;--g-sun:#ffb938;--g-sun-bg:#fff5de;--g-sun-dk:#a16207;
  --g-line-app:#06c755;--g-gray-bg:#eef2f3;
  --g-font:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN","Hiragino Sans","Noto Sans JP",sans-serif;
  /* 旧 style.css の変数を上書き（固定ページ等の旧クラスも外来の色になる） */
  --c-accent:#0f9d8a;--c-accent-dk:#0b7566;--c-bg:#ffffff;--c-bg-2:#f4faf8;--c-line:#d9ebe6;--c-text:#16323a;--c-text-2:#4a6168;--c-mute:#7f969c;--c-yellow:#fff5de;
}
body{font-family:var(--g-font);color:var(--g-ink);background:var(--g-bg);line-height:1.85;-webkit-font-smoothing:antialiased}
.akt-main{background:var(--g-bg)}
a{color:var(--g-teal-dk)}
.g-wrap{max-width:1080px;margin:0 auto;padding:26px 18px 10px}
.g-narrow{max-width:820px}

/* ---------- ヘッダー ---------- */
.g-topbar{background:var(--g-teal-dk);color:#e6fffa;font-size:12px;font-weight:700;text-align:center;padding:6px 12px;letter-spacing:.02em}
.g-topbar a{color:#fff;text-decoration:none;margin:0 6px;opacity:.9}
.g-topbar a:hover{opacity:1;text-decoration:underline}
.g-hd{background:#fff;border-bottom:2px solid var(--g-mint);position:sticky;top:0;z-index:50}
.g-hd-in{max-width:1080px;margin:0 auto;padding:8px 18px;display:flex;align-items:center;gap:14px}
.g-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;min-width:0}
.g-logo-mk{width:42px;height:42px;border-radius:12px;background:var(--g-teal);display:flex;align-items:center;justify-content:center;flex:none}
.g-logo-tx b{display:block;font-size:17px;line-height:1.15;font-weight:900;color:var(--g-teal-dk)}
.g-logo-tx small{display:block;font-size:10.5px;line-height:1.35;color:var(--g-mute);font-weight:700}
.g-logo-img{height:26px;width:auto;display:block;margin-top:2px}
.g-nav{margin-left:auto;display:flex;gap:18px;font-size:13.5px;font-weight:800}
.g-nav a{text-decoration:none;color:var(--g-ink2);white-space:nowrap}
.g-nav a:hover{color:var(--g-teal)}
.g-hd-tel{background:var(--g-coral);color:#fff!important;text-decoration:none;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:900;white-space:nowrap;display:flex;flex-direction:column;align-items:center;line-height:1.2}
.g-hd-tel small{font-size:10px;font-weight:800;opacity:.92}
.g-menu-btn{display:none;border:2px solid var(--g-line);background:#fff;border-radius:12px;width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer;flex:none}
.g-menu-btn span{display:block;width:18px;height:2px;background:var(--g-ink);margin:3px auto;border-radius:2px}
.g-drawer{display:none;background:#fff;border-bottom:2px solid var(--g-mint)}
.g-drawer.is-open{display:block}
.g-drawer ul{list-style:none;margin:0;padding:8px 18px 16px;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.g-drawer a{display:block;padding:10px 12px;border:2px solid var(--g-line);border-radius:12px;text-decoration:none;font-weight:800;font-size:14px;color:var(--g-ink)}
@media (max-width:900px){.g-nav{display:none}.g-menu-btn{display:flex}.g-hd-tel{margin-left:auto}}
@media (max-width:420px){.g-logo-tx small{display:none}.g-hd-tel{padding:8px 12px}}

/* パンくず（旧部品） */
.akt-breadcrumb{background:transparent;font-size:12px;font-weight:700;color:var(--g-mute)}

/* ---------- 共通 ---------- */
.g-label{display:block;font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--g-teal);margin-bottom:2px}
.g-h1{font-size:28px;line-height:1.35;margin:0 0 8px;font-weight:900;letter-spacing:.01em}
.g-h2{font-size:22px;line-height:1.35;margin:40px 0 14px;font-weight:900}
.g-h3{font-size:17px;margin:22px 0 8px;font-weight:900}
.g-lead{color:var(--g-ink2);font-size:14.5px;margin:0}
.g-crumb{font-size:12px;color:var(--g-mute);font-weight:700;margin-bottom:6px}
.g-card{background:var(--g-card);border:2px solid var(--g-line);border-radius:18px;padding:18px}
.g-grid2,.g-grid3,.g-grid4{display:grid;gap:12px}
.g-grid2{grid-template-columns:repeat(2,1fr)}.g-grid3{grid-template-columns:repeat(3,1fr)}.g-grid4{grid-template-columns:repeat(4,1fr)}
@media (max-width:760px){.g-grid2,.g-grid3{grid-template-columns:1fr}.g-grid4{grid-template-columns:repeat(2,1fr)}.g-h1{font-size:23px}.g-h2{font-size:20px}}
.g-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:900;border-radius:999px;padding:3px 10px;line-height:1.5}
.g-pill--t{background:var(--g-teal-bg);color:var(--g-teal-dk)}.g-pill--c{background:var(--g-coral-bg);color:#c2410c}
.g-pill--s{background:var(--g-sun-bg);color:var(--g-sun-dk)}.g-pill--m{background:var(--g-gray-bg);color:#5f7378}
.g-text{font-size:15px;line-height:1.95}
.g-text p{margin:0 0 1em}
.g-note{font-size:12.5px;color:var(--g-ink2)}

/* 吹き出し */
.g-say{display:flex;gap:10px;align-items:flex-end;margin:14px 0}
.g-say .g-nurse{flex:none}
.g-bub{background:#fff;border:2px solid var(--g-line);border-radius:16px 16px 16px 4px;padding:10px 14px;font-size:13.5px;font-weight:700}
.g-who{display:block;font-size:10.5px;color:var(--g-teal);font-weight:900}

/* ボタン */
.g-cta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.g-cta a{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;border-radius:16px;padding:13px 8px;color:#fff;font-weight:900;font-size:16px;line-height:1.3;transition:transform .12s}
.g-cta a:hover{transform:translateY(-1px)}
.g-cta small{font-size:11px;font-weight:800;opacity:.92}
.g-cta-tel{background:var(--g-coral)}.g-cta-line{background:var(--g-line-app)}.g-cta-rsv{background:var(--g-teal-dk)}.g-cta-mail{background:#555}
@media (max-width:620px){.g-cta{grid-template-columns:1fr 1fr}}
.g-links{display:flex;gap:8px;flex-wrap:wrap}
.g-links a{background:#fff;border:2px solid var(--g-line);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:800;text-decoration:none;color:var(--g-teal-dk)}
.g-links a:hover{border-color:var(--g-teal)}

/* ---------- トップ ---------- */
.g-hero{background:radial-gradient(circle at 88% 18%,#dff7f1 0,transparent 42%),linear-gradient(180deg,#fff 0%,var(--g-bg) 100%);border-bottom:1px solid var(--g-line)}
.g-hero-in{max-width:1080px;margin:0 auto;padding:34px 18px 30px;display:grid;grid-template-columns:1.25fr .75fr;gap:22px;align-items:center}
@media (max-width:860px){.g-hero-in{grid-template-columns:1fr;padding-top:24px}}
.g-kicker{display:inline-flex;gap:6px;align-items:center;background:var(--g-teal);color:#fff;border-radius:999px;padding:5px 14px;font-size:12px;font-weight:900}
.g-hero h1{font-size:40px;line-height:1.28;margin:12px 0 10px;font-weight:900}
.g-hero h1 em{font-style:normal;color:var(--g-teal)}
@media (max-width:620px){.g-hero h1{font-size:29px}}
.g-facts{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px;padding:0;list-style:none}
.g-facts li{background:#fff;border:2px solid var(--g-line);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:800}
.g-hours{background:#fff;border:2px solid var(--g-line);border-radius:18px;padding:16px}
.g-hours-st{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:900;color:var(--g-teal-dk);font-size:15px}
.g-hours-st i{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px #dcfce7}
.g-hours-st.is-closed{color:var(--g-ink2)}.g-hours-st.is-closed i{background:#9ca3af;box-shadow:0 0 0 4px #eef0f2}
.g-hours dl{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;font-size:13px;margin:12px 0 0}
.g-hours dt{color:var(--g-mute);font-weight:800}.g-hours dd{margin:0;font-weight:800}

/* 問診票 */
.g-monshin{background:#fff;border:3px solid var(--g-teal);border-radius:22px;overflow:hidden}
.g-monshin-h{background:var(--g-teal);color:#fff;padding:11px 18px;font-weight:900;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.g-monshin-h small{font-size:12px;font-weight:800;opacity:.9}
.g-monshin-b{padding:18px}
.g-step{margin-bottom:16px}
.g-q{font-weight:900;font-size:14.5px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.g-q b{display:inline-flex;width:24px;height:24px;border-radius:50%;background:var(--g-teal);color:#fff;font-size:12px;align-items:center;justify-content:center}
.g-opts{display:flex;flex-wrap:wrap;gap:6px}
.g-opts button{border:2px solid var(--g-line);background:#fff;border-radius:12px;padding:9px 13px;font-family:inherit;font-weight:800;font-size:13.5px;cursor:pointer;color:var(--g-ink)}
.g-opts button[aria-pressed="true"]{border-color:var(--g-teal);background:var(--g-teal-bg);color:var(--g-teal-dk)}
.g-select{width:100%;padding:12px;border:2px solid var(--g-line);border-radius:12px;font-family:inherit;font-size:15px;font-weight:700;background:#fff;color:var(--g-ink)}
.g-result{background:var(--g-teal-bg);border-radius:16px;padding:16px;display:none}
.g-result.is-on{display:block}
.g-result-dept{font-weight:900;font-size:13px;color:var(--g-teal-dk)}
.g-result-fee{font-size:32px;font-weight:900;color:var(--g-teal-dk);line-height:1.2}
.g-result-fee small{font-size:13px;color:var(--g-ink2)}
.g-result a{font-weight:900}

/* 診療科 */
.g-dept{background:#fff;border:2px solid var(--g-line);border-radius:18px;padding:16px;text-decoration:none;color:var(--g-ink);display:block;transition:border-color .12s,transform .12s}
.g-dept:hover{border-color:var(--g-teal);transform:translateY(-1px)}
.g-dept-ic{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:8px;background:var(--g-teal-bg)}
.g-dept--sun .g-dept-ic{background:var(--g-sun-bg)}.g-dept--coral .g-dept-ic{background:var(--g-coral-bg)}.g-dept--ref .g-dept-ic{background:var(--g-gray-bg)}
.g-dept b{font-size:17px;font-weight:900;display:flex;align-items:center;gap:6px}
.g-dept-sym{display:block;font-size:12.5px;color:var(--g-ink2);font-weight:700}
.g-dept-fee{margin-top:8px;font-weight:900;color:var(--g-teal-dk)}
.g-dept--coral{border-color:#ffc9c3;background:linear-gradient(180deg,#fff 0,#fff6f5 100%)}
.g-dept--ref{border-style:dashed}

/* 診療記録カード */
.g-rec{background:#fff;border:2px solid var(--g-line);border-radius:18px;overflow:hidden;display:block;text-decoration:none;color:var(--g-ink);transition:border-color .12s}
.g-rec:hover{border-color:var(--g-teal)}
.g-rec-h{display:flex;justify-content:space-between;padding:8px 14px;background:var(--g-teal-bg);font-size:12px;font-weight:900;color:var(--g-teal-dk)}
.g-rec-b{display:block;padding:12px 14px}
.g-rec-dev{display:block;font-weight:900;font-size:17px}
.g-rec-job{display:block;font-size:13px;color:var(--g-ink2);font-weight:800}
.g-rec-ft{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}

/* 記録の表 */
.g-kv{display:grid;grid-template-columns:120px 1fr;margin:0;background:#fff}
.g-kv dt,.g-kv dd{margin:0;padding:11px 14px;border-bottom:1px solid var(--g-line);font-size:14px}
.g-kv dt{background:#f7fcfb;color:var(--g-teal-dk);font-weight:900;font-size:13px}
@media (max-width:520px){.g-kv{grid-template-columns:96px 1fr}}
.g-record{background:#fff;border:2px solid var(--g-line);border-radius:18px;overflow:hidden}
.g-record-h{display:flex;justify-content:space-between;padding:9px 14px;background:var(--g-teal-bg);font-size:12px;font-weight:900;color:var(--g-teal-dk)}
.g-record-f{padding:12px 14px}
.g-record-f a{font-weight:900}
.g-photo{border-radius:16px;overflow:hidden;background:repeating-linear-gradient(45deg,#eef7f5,#eef7f5 8px,#e2f0ed 8px,#e2f0ed 16px);min-height:180px;display:flex;align-items:center;justify-content:center;color:#7c9aa0;font-size:12px;font-weight:800;text-align:center}
.g-photo img{width:100%;height:100%;object-fit:cover;display:block}

/* 診療費 */
.g-fees{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media (max-width:760px){.g-fees{grid-template-columns:repeat(2,1fr)}}
.g-fee{background:#fff;border:2px solid var(--g-line);border-radius:14px;padding:12px;text-align:center}
.g-fee span{display:block;font-size:12px;color:var(--g-ink2);font-weight:800}
.g-fee b{display:block;font-size:21px;font-weight:900}
.g-fee--q b{font-size:15px;color:var(--g-sun-dk)}
.g-table-wrap{overflow:auto;border:2px solid var(--g-line);border-radius:16px;background:#fff;max-height:640px}
.g-table{border-collapse:collapse;width:100%;font-size:13.5px}
.g-table th{background:#f7fcfb;text-align:left;padding:10px;font-size:12px;color:var(--g-teal-dk);white-space:nowrap;font-weight:900;position:sticky;top:0;z-index:1}
.g-table td{padding:10px;border-top:1px solid var(--g-line);vertical-align:middle}
.g-table td.p{font-weight:900;white-space:nowrap;text-align:right}
.g-table td.q{color:var(--g-sun-dk);font-size:12px;font-weight:800;text-align:right;white-space:nowrap}
.g-table .nm{font-weight:900;text-decoration:none;color:var(--g-ink)}
.g-table .nm:hover{color:var(--g-teal)}
.g-table .yr{display:block;font-size:11px;color:var(--g-mute);font-weight:700}
.g-search{width:100%;padding:13px 14px;border:2px solid var(--g-line);border-radius:14px;font-size:15px;font-family:inherit;font-weight:700;margin:12px 0;background:#fff}
.g-search:focus{outline:none;border-color:var(--g-teal)}

/* 流れ */
.g-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;list-style:none;padding:0;margin:0}
@media (max-width:760px){.g-flow{grid-template-columns:1fr}}
.g-flow li{background:#fff;border:2px solid var(--g-line);border-radius:16px;padding:12px;text-align:center}
.g-flow b{display:block;font-size:15px;font-weight:900}
.g-flow small{display:block;font-size:12.5px;color:var(--g-ink2);font-weight:700;line-height:1.6}
.g-flow .n{display:inline-flex;width:26px;height:26px;border-radius:50%;background:var(--g-teal);color:#fff;font-weight:900;font-size:13px;align-items:center;justify-content:center;margin-bottom:4px}

/* 院長 */
.g-doctor{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center}
.g-doctor img{width:150px;height:150px;border-radius:18px;object-fit:cover;display:block}
@media (max-width:560px){.g-doctor{grid-template-columns:1fr}}

/* 用件はどれですか */
.g-sites{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
@media (max-width:900px){.g-sites{grid-template-columns:repeat(2,1fr)}}
.g-site{background:#fff;border:2px solid var(--g-line);border-radius:16px;padding:14px;text-decoration:none;color:var(--g-ink);display:block}
.g-site b{display:block;font-size:15px;font-weight:900}
.g-site span{display:block;font-size:12px;color:var(--g-ink2);font-weight:700;line-height:1.6}
.g-site em{display:block;font-style:normal;font-size:12px;font-weight:900;color:var(--g-teal-dk);margin-top:6px}
.g-site--cur{border-color:var(--g-teal);background:var(--g-teal-bg)}

/* 記事一覧 */
.g-posts{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.g-posts a{display:flex;gap:12px;align-items:baseline;background:#fff;border:2px solid var(--g-line);border-radius:14px;padding:12px 14px;text-decoration:none;color:var(--g-ink)}
.g-posts a:hover{border-color:var(--g-teal)}
.g-posts time{font-size:12px;color:var(--g-mute);font-weight:800;white-space:nowrap}
.g-posts b{font-weight:800;font-size:14.5px}
.g-entry{background:#fff;border:2px solid var(--g-line);border-radius:18px;padding:24px}
@media (max-width:560px){.g-entry{padding:16px}}
.g-entry h2{font-size:21px;font-weight:900;margin:32px 0 12px;padding-left:12px;border-left:6px solid var(--g-teal);line-height:1.4}
.g-entry h3{font-size:17px;font-weight:900;margin:24px 0 8px}
.g-entry p,.g-entry li{font-size:15px;line-height:1.95}
.g-entry img{max-width:100%;height:auto;border-radius:12px}
.g-entry table{border-collapse:collapse;width:100%;font-size:14px;margin:12px 0;display:block;overflow-x:auto}
.g-entry th,.g-entry td{border:1px solid var(--g-line);padding:8px 10px;text-align:left}
.g-entry th{background:#f7fcfb}
.g-entry details{border:2px solid var(--g-line);border-radius:12px;padding:10px 14px;margin:8px 0;background:#fff}
.g-entry summary{font-weight:900;cursor:pointer}

/* ---------- フッター ---------- */
.g-foot-cta{background:linear-gradient(180deg,var(--g-bg) 0,#e8f6f2 100%);padding:36px 18px 30px;border-top:1px solid var(--g-line)}
.g-foot-cta-in{max-width:900px;margin:0 auto;text-align:center}
.g-foot-cta h2{font-size:22px;font-weight:900;margin:0 0 6px}
.g-foot-cta .g-say{justify-content:center}
.g-foot{background:var(--g-ink);color:#b6c9cd;font-size:12.5px}
.g-foot-in{max-width:1080px;margin:0 auto;padding:28px 18px 18px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:20px}
@media (max-width:860px){.g-foot-in{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.g-foot-in{grid-template-columns:1fr}}
.g-foot h3{color:#fff;font-size:13px;font-weight:900;margin:0 0 8px}
.g-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.g-foot a{color:#d6e6e9;text-decoration:none}
.g-foot a:hover{text-decoration:underline;color:#fff}
.g-foot address{font-style:normal}
.g-foot-copy{text-align:center;padding:12px;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:#8aa3a8}

/* 旧テンプレの見出し・ボタンを外来の形に寄せる */
.akt-section h2,.akt-h1{font-family:var(--g-font);font-weight:900}
.akt-btn{border-radius:14px!important;font-family:var(--g-font);font-weight:900}
.akt-btn--primary{background:var(--g-coral)!important;border-color:var(--g-coral)!important}

/* 本文の枠：新テンプレは全幅（中身は .g-wrap で幅を決める）。旧テンプレの本文は従来どおり中央寄せ */
.akt-main{max-width:none!important;padding:0!important;margin:0!important}
.akt-main > .akt-section,.akt-main > article:not(.g-wrap),.akt-main > section:not(.g-wrap):not(.g-hero),.akt-main > .akt-page,.akt-main > div:not(.g-wrap){max-width:1100px;margin-left:auto;margin-right:auto;padding-left:18px;padding-right:18px;box-sizing:border-box}
@media (max-width:620px){.g-topbar .g-topbar-lead{display:none}}

/* 問診票の自由入力欄（常に表示） */
.g-free{display:block;width:100%;margin-top:8px;padding:11px 12px;border:2px dashed var(--g-line);border-radius:12px;font-family:inherit;font-size:14.5px;font-weight:700;background:#fbfefd;color:var(--g-ink);box-sizing:border-box;resize:vertical}
.g-free:focus{outline:none;border-style:solid;border-color:var(--g-teal);background:#fff}
.g-free::placeholder{color:#8aa0a6;font-weight:700}
.g-btn-ask{display:inline-block;background:var(--g-teal-dk);color:#fff!important;text-decoration:none;border-radius:12px;padding:10px 16px;font-weight:900}

/* 診療記録の登録画面 */
.g-rf{margin-top:16px;background:#fff;border:2px solid var(--g-line);border-radius:20px;padding:18px}
.g-chip{position:relative;display:inline-block}
.g-chip input{position:absolute;opacity:0;inset:0;cursor:pointer}
.g-chip span{display:inline-block;border:2px solid var(--g-line);background:#fff;border-radius:12px;padding:9px 13px;font-weight:800;font-size:14px}
.g-chip input:checked + span{border-color:var(--g-teal);background:var(--g-teal-bg);color:var(--g-teal-dk)}
.g-chip input:focus-visible + span{outline:2px solid var(--g-teal)}

/* 店舗写真・道順 */
.g-route{list-style:none;margin:16px 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media (max-width:760px){.g-route{grid-template-columns:1fr}}
.g-route-step{background:#fff;border:2px solid var(--g-line);border-radius:18px;overflow:hidden}
.g-route-step figure{margin:0;aspect-ratio:4/3;background:#eef7f5}
.g-route-step img{width:100%;height:100%;object-fit:cover;display:block}
.g-route-step div{display:flex;gap:10px;align-items:flex-start;padding:12px 14px}
.g-route-step p{margin:0;font-size:14px;font-weight:700;line-height:1.7}
.g-route-n{flex:none;display:inline-flex;width:28px;height:28px;border-radius:50%;background:var(--g-teal);color:#fff;font-weight:900;align-items:center;justify-content:center}
.g-route-goal{margin:6px 0 16px;border-radius:18px;overflow:hidden;border:2px solid var(--g-teal);background:#fff}
.g-route-goal img{width:100%;max-height:520px;object-fit:cover;display:block}
.g-route-goal figcaption{padding:10px 14px;font-weight:900;color:var(--g-teal-dk)}
.g-shot{margin:0;border-radius:18px;overflow:hidden;background:#eef7f5;position:relative}
.g-shot img{width:100%;height:100%;object-fit:cover;display:block}
.g-shot figcaption{position:absolute;left:10px;bottom:10px;background:rgba(15,58,52,.82);color:#fff;font-size:12px;font-weight:800;border-radius:999px;padding:4px 12px}
.g-hero-photo{aspect-ratio:4/3;margin-bottom:12px;box-shadow:0 8px 24px rgba(15,58,52,.12)}
.g-place{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:760px){.g-place{grid-template-columns:1fr}}
.g-place .g-shot{aspect-ratio:4/3}

/* ===== 処置の写真（v0.2.7） ===== */
/* 診療記録カード：上に写真。写真が無い記録は診療科アイコンのタイル（全カード同じ形） */
.g-rec{display:flex;flex-direction:column}
.g-rec-ph{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#eaf6f3}
.g-rec-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.g-rec:hover .g-rec-ph img{transform:scale(1.04)}
.g-rec-n{position:absolute;right:8px;bottom:8px;background:rgba(15,58,52,.78);color:#fff;font-size:11px;font-weight:800;border-radius:999px;padding:2px 9px}
.g-rec-ph--none{display:flex;align-items:center;justify-content:center;background:
  radial-gradient(circle at 20% 20%,rgba(255,255,255,.7) 0 2px,transparent 3px) 0 0/22px 22px,
  linear-gradient(135deg,#e7f6f2 0%,#d3efe8 100%)}
.g-rec-ph--battery{background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.7) 0 2px,transparent 3px) 0 0/22px 22px,linear-gradient(135deg,#fff7e3,#ffecc2)}
.g-rec-ph--water{background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.7) 0 2px,transparent 3px) 0 0/22px 22px,linear-gradient(135deg,#fff0ee,#ffdcd7)}
.g-rec-ph--ref{background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.7) 0 2px,transparent 3px) 0 0/22px 22px,linear-gradient(135deg,#f1f4f5,#e2e8ea)}
.g-rec-ic{width:64px;height:64px;border-radius:20px;background:rgba(255,255,255,.85);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(15,58,52,.10)}
.g-rec-ic svg{width:32px;height:32px}

/* トップ：処置室から */
.g-room{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:760px){.g-room{grid-template-columns:repeat(2,1fr)}}
.g-room-i{position:relative;display:block;aspect-ratio:1/1;border-radius:18px;overflow:hidden;background:#eaf6f3;box-shadow:0 6px 18px rgba(15,58,52,.08)}
.g-room-i img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.g-room-i:hover img{transform:scale(1.05)}
.g-room-c{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 10px;background:linear-gradient(180deg,rgba(15,58,52,0) 0%,rgba(15,58,52,.82) 100%);color:#fff;display:flex;flex-direction:column}
.g-room-c b{font-size:14px;font-weight:900;line-height:1.3}
.g-room-c small{font-size:11px;font-weight:800;opacity:.9}

/* 診療記録ページ：ギャラリー */
.g-gal{display:flex;flex-direction:column;gap:8px}
.g-gal-main{margin:0;position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/5;background:#eaf6f3;box-shadow:0 8px 24px rgba(15,58,52,.12)}
.g-gal-main img{width:100%;height:100%;object-fit:cover;display:block}
.g-gal-main figcaption{position:absolute;left:10px;right:10px;bottom:10px;display:flex;justify-content:space-between;align-items:center;color:#fff;font-size:12px;font-weight:800}
.g-gal-main figcaption span{background:rgba(15,58,52,.82);border-radius:999px;padding:4px 12px}
.g-gal-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.g-gal-t{padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;aspect-ratio:1/1;cursor:pointer;background:#eaf6f3}
.g-gal-t img{width:100%;height:100%;object-fit:cover;display:block;opacity:.75;transition:opacity .2s}
.g-gal-t.is-on{border-color:var(--g-teal)}
.g-gal-t.is-on img,.g-gal-t:hover img{opacity:1}
.g-gal-none{border-radius:18px;aspect-ratio:4/5;flex-direction:column;gap:10px}
.g-gal-none-t{font-size:13px;font-weight:900;color:var(--g-teal-dk)}

/* 機種ページ：記録に写真 */
.g-record--ph{display:grid;grid-template-columns:220px 1fr}
@media (max-width:620px){.g-record--ph{grid-template-columns:1fr}}
.g-record-img{position:relative;display:block;background:#eaf6f3;min-height:200px}
.g-record-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:620px){.g-record-img{aspect-ratio:4/3;min-height:0}}

/* ===== 画像を小さく（v0.2.8・看板の写真以外） ===== */
/* 処置室から：PCは6列の小さい正方形、スマホは3列 */
.g-room{grid-template-columns:repeat(6,1fr);gap:8px}
@media (max-width:900px){.g-room{grid-template-columns:repeat(3,1fr)}}
.g-room-i{border-radius:14px}
.g-room-c{padding:18px 8px 7px}
.g-room-c b{font-size:12px}
.g-room-c small{font-size:10px}
/* オリナス錦糸町の中にあります：横長で低く */
.g-place .g-shot{aspect-ratio:16/9}
.g-place{max-width:880px}
/* 診療記録カード：写真を横長で低く */
.g-rec-ph{aspect-ratio:16/9}
.g-rec-ic{width:48px;height:48px;border-radius:16px}
.g-rec-ic svg{width:24px;height:24px}
/* アクセスの道順：PC3列・スマホ2列、写真は低め */
.g-route{grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:900px){.g-route{grid-template-columns:repeat(2,1fr)}}
.g-route-step figure{aspect-ratio:16/10}
.g-route-step div{padding:9px 10px}
.g-route-step p{font-size:13px}
.g-route-goal{max-width:560px}
.g-route-goal img{max-height:300px}
/* 外来のご案内・地域ページの受付の写真：帯状に低く */
.g-shot--band{height:200px;max-width:880px}
@media (max-width:620px){.g-shot--band{height:150px}}
/* 診療記録ページのギャラリー：大きい写真を小さく */
.g-gal{max-width:380px}
.g-gal-main{aspect-ratio:4/3}
.g-gal-thumbs{grid-template-columns:repeat(5,1fr);gap:6px}
.g-gal-none{aspect-ratio:4/3;max-width:380px}
/* 機種ページの記録写真 */
.g-record--ph{grid-template-columns:160px 1fr}
.g-record-img{min-height:160px}
@media (max-width:620px){.g-record--ph{grid-template-columns:1fr}.g-record-img{aspect-ratio:16/9}}

/* ===== フォンちゃん（ポーズつき吹き出し・v0.2.9） ===== */
.g-say--pose{align-items:center;gap:6px;margin:18px 0}
.g-say--pose .g-fon{flex:none;filter:drop-shadow(0 6px 10px rgba(15,58,52,.12))}
.g-say--pose .g-bub{position:relative;border:2.5px solid var(--g-teal-dk);border-radius:18px;padding:11px 16px;font-size:14.5px;font-weight:800;line-height:1.6;box-shadow:0 4px 0 var(--g-teal-dk);max-width:520px}
.g-say--pose .g-bub::before{content:"";position:absolute;left:-11px;top:50%;margin-top:-8px;border:8px solid transparent;border-right:11px solid var(--g-teal-dk);border-left:0}
.g-say--pose .g-bub::after{content:"";position:absolute;left:-7px;top:50%;margin-top:-6px;border:6px solid transparent;border-right:8px solid #fff;border-left:0}
.g-say--r{flex-direction:row-reverse;justify-content:flex-end}
.g-say--r .g-bub::before{left:auto;right:-11px;border-right:0;border-left:11px solid var(--g-teal-dk)}
.g-say--r .g-bub::after{left:auto;right:-7px;border-right:0;border-left:8px solid #fff}
.g-fon--wave,.g-fon--ok{animation:g-bob 2.8s ease-in-out infinite}
@keyframes g-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.g-fon{animation:none!important}}
/* 見出しの横に立つフォンちゃん */
.g-h2-fon{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.g-h2-fon .g-fon{flex:none;margin-bottom:-6px}
@media (max-width:620px){.g-say--pose .g-bub{font-size:13.5px}}

/* ===== ロゴ（案A：フォンちゃんエンブレム・v0.3.1） ===== */
.g-logo{gap:10px}
.g-logo-sep{width:1px;height:34px;background:var(--g-line);flex:none}
.g-logo .g-fon--emblem{flex:none;filter:none}
.g-logo-tx b{font-size:18px}
.g-logo-tx .g-logo-top{font-size:9.5px;letter-spacing:.02em;color:var(--g-teal);margin-bottom:1px}
@media (max-width:420px){.g-logo-tx .g-logo-top{display:none}.g-logo .g-fon--emblem{width:32px;height:32px}.g-logo-tx b{font-size:15px}}

/* ===== 系列サイトのアイコン（v0.3.2） ===== */
.g-site{position:relative;transition:border-color .12s,transform .12s}
a.g-site:hover{border-color:var(--g-teal);transform:translateY(-1px)}
.g-site-ic{width:48px;height:48px;border-radius:14px;background:var(--g-teal-bg);display:flex;align-items:center;justify-content:center;margin-bottom:8px}
.g-site-ic svg{width:26px;height:26px}
.g-site-ic--cur{background:transparent}
.g-site-ic--cur svg{width:48px;height:48px}
.g-site--cur .g-pill{position:absolute;top:-11px;left:12px;background:var(--g-teal);color:#fff}
.g-topbar a{display:inline-flex;align-items:center;gap:4px;vertical-align:middle}
.g-topbar a svg{width:14px;height:14px;stroke:#fff}

/* ===== 系列サイトの本物のロゴ（v0.3.3） ===== */
.g-site .g-site-logo{display:flex;align-items:center;gap:8px;height:52px;margin-bottom:10px}
.g-site-logo img{max-height:48px;max-width:100%;width:auto;height:auto;object-fit:contain;display:block}
.g-site-logo img.is-round{width:48px;height:48px;border-radius:50%}
.g-site-logo svg{width:48px;height:48px;flex:none}
.g-site .g-site-logo-t{display:inline;font-size:13px;font-weight:900;color:var(--g-ink);line-height:1.25}
.g-site .g-site-logo + b{margin-top:0}

/* ヘッダー：スマホスピタル公式の新ロゴ（加工なし・v0.3.4） */
.g-logo .g-logo-fc{height:30px;width:auto;display:block;flex:none}
@media (max-width:900px){.g-logo .g-logo-fc{height:24px}}
@media (max-width:420px){.g-logo .g-logo-fc{height:18px}}
@media (max-width:520px){
  .g-logo{flex-wrap:wrap;row-gap:2px;column-gap:6px;align-content:center}
  .g-logo .g-logo-fc{height:15px;flex-basis:100%;object-fit:contain;object-position:left center}
  .g-logo-sep{display:none}
  .g-logo .g-fon--emblem{width:30px;height:30px}
  .g-logo-tx b{font-size:14.5px}
  .g-logo-tx small{font-size:9.5px}
  .g-hd-in{gap:8px;padding:6px 12px}
  .g-hd-tel{padding:7px 10px;font-size:12px}
}

/* ===== スマホの仕上げ（v0.3.5） ===== */
/* 旧テンプレのボタンが狭い画面ではみ出さないように */
.akt-btn{max-width:100%;box-sizing:border-box;white-space:normal;text-align:center}
/* 押しやすさ（小さすぎるリンク） */
.g-record-f a{display:inline-block;padding:8px 0}
.g-kv a{display:inline-block;padding:4px 0}
.page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 10px;margin:2px;border:2px solid var(--g-line);border-radius:12px;background:#fff;font-weight:800;text-decoration:none;color:var(--g-teal-dk)}
.page-numbers.current{background:var(--g-teal);border-color:var(--g-teal);color:#fff}
/* ページ内リンクで固定ヘッダーに隠れないように */
[id]{scroll-margin-top:84px}
/* 右下のLINEボタンにフッターの最後が隠れないように */
@media (max-width:760px){.g-foot-copy{padding-bottom:84px}}
