/* あおば野皮膚科・美容皮膚科（制作サンプル）
 *
 * 美容医療は医療広告ガイドラインの規制が最も厳しい領域。
 * 「盛って見せる」デザインにするほど規制に触れやすくなるため、
 * 落ち着いたトーンで、情報を正確に置くことを優先している。
 *
 * 他のサンプルとの差別化: 歯科=青緑 / 内科=青 / 整形外科=茶 / ここ=モノトーン+くすみピンク
 */

:root {
  --bg: #ffffff;
  --bg-soft: #f7f5f4;
  --ink: #2a2624;
  --ink-soft: #6b625d;
  --line: #e4dedb;
  --accent: #a9707a;      /* くすみピンク。彩度を抑えて medical に寄せる */
  --accent-dark: #85535c;
  --accent-soft: #f6eeef;
  --caution: #8a6d3b;
  --caution-soft: #fbf6ea;
  --radius: 4px;          /* 角丸を小さくして落ち着いた印象に */
  --wrap: 940px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: #1a1717;
    --bg-soft: #221e1e;
    --ink: #efeae8;
    --ink-soft: #b8aca7;
    --line: #362f2f;
    --accent: #c98f99;
    --accent-dark: #dda8b1;
    --accent-soft: #2b2222;
    --caution: #c9a86a;
    --caution-soft: #2a2418;
  }
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;
  color: var(--ink);
  background: var(--bg);
  line-height: 1.95;
  font-size: 16px;
}
/* 見出しや操作系はゴシックにして可読性を保つ */
h1, h2, h3, .btn, .nav, table, .badge { font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", system-ui, sans-serif; }

img, svg { max-width: 100%; height: auto; }
a { color: var(--accent-dark); }

.demo-banner {
  background: #f0a04b; color: #3a2408; text-align: center;
  padding: 8px 16px; font-size: 13px; font-weight: 700; line-height: 1.5;
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", system-ui, sans-serif;
}
.demo-banner span { font-weight: 400; }

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 22px; }

.site-header { border-bottom: 1px solid var(--line); background: var(--bg); }
.header-inner {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 18px 22px; max-width: var(--wrap); margin: 0 auto;
}
.logo { text-decoration: none; color: inherit; }
.logo-name { font-size: 19px; letter-spacing: .06em; }
.logo-sub { font-size: 10px; color: var(--ink-soft); display: block; letter-spacing: .18em;
            font-family: "Hiragino Kaku Gothic ProN", system-ui, sans-serif; }
.nav { display: flex; gap: 22px; }
.nav a { color: var(--ink); text-decoration: none; font-size: 14px; letter-spacing: .04em; }

.hero { padding: 52px 0 32px; text-align: center; border-bottom: 1px solid var(--line); }
.hero h1 { font-size: 27px; line-height: 1.75; margin: 0 0 18px; letter-spacing: .04em; font-weight: 500; }
.hero p { color: var(--ink-soft); margin: 0 auto; max-width: 640px; }

section { padding: 42px 0; }
h2 { font-size: 21px; margin: 0 0 10px; letter-spacing: .04em; font-weight: 600; }
h3 { font-size: 16px; margin: 26px 0 6px; }
.section-lead { color: var(--ink-soft); margin: 0 0 22px; }

.btn {
  display: inline-block; padding: 13px 30px; border-radius: var(--radius);
  text-decoration: none; font-weight: 700; font-size: 15px;
  background: var(--accent); color: #fff; border: 1px solid var(--accent);
}
.btn-ghost { background: transparent; color: var(--accent-dark); }

.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1px;
         background: var(--line); border: 1px solid var(--line); }
.card { background: var(--bg); padding: 24px; }
.card h3 { margin: 0 0 8px; }
.card p { margin: 0; color: var(--ink-soft); font-size: 15px; }

.table-scroll { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: 15px; }
th, td { border-bottom: 1px solid var(--line); padding: 14px 10px; text-align: left; vertical-align: top; }
th { background: var(--bg-soft); font-weight: 600; white-space: nowrap; }
table.hours { min-width: 500px; }
table.hours th, table.hours td { border: 1px solid var(--line); text-align: center; padding: 10px 8px; }
table.hours td.time { text-align: left; white-space: nowrap; background: var(--bg-soft); font-weight: 600; }

/* 自由診療・未承認機器などの注意書き。目立たせすぎず、しかし読み飛ばされない程度に */
.caution {
  background: var(--caution-soft); border-left: 3px solid var(--caution);
  padding: 16px 20px; margin: 20px 0; font-size: 14.5px; color: var(--ink);
}
.caution strong { color: var(--caution); }

.note {
  background: var(--bg-soft); border-left: 3px solid var(--accent);
  padding: 13px 18px; margin: 18px 0; font-size: 14.5px; color: var(--ink-soft);
}

.badge {
  display: inline-block; font-size: 12px; padding: 3px 10px; border-radius: 999px;
  background: var(--accent-soft); color: var(--accent-dark); margin-left: 8px; font-weight: 700;
}

.site-footer { border-top: 1px solid var(--line); background: var(--bg-soft); margin-top: 46px; padding: 32px 0 26px; font-size: 15px; }
.footer-cols { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 26px; }
.footer-cols h3 { font-size: 14px; margin: 0 0 10px; }
.footer-cols a { display: block; color: var(--ink); text-decoration: none; margin-bottom: 6px; font-size: 14px; }
.footer-note { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 16px; color: var(--ink-soft); font-size: 13px; line-height: 1.8; }

@media (max-width: 800px) {
  .nav { display: none; }
  .hero { padding: 34px 0 24px; }
  .hero h1 { font-size: 22px; }
  .footer-cols { grid-template-columns: 1fr; }
}
