/* www.uchi3.jp 共通の見た目（UCHI3 デザイン・2026/11/01） */
:root {
  color-scheme: light;
  --deep-navy:#0D2240; --navy:#1A3F6F; --royal:#1E6BB8; --steel:#6AAED6;
  --pale:#C6DCEE; --ice:#E8F3FA; --emerald:#1A7A4A; --mint:#6DBF8A;
  --vermilion:#C0392B; --cinnabar:#E8531A; --amber:#F5A623;
  --ink:#1C1C1E; --slate:#6E7079; --silver:#D0D4DB; --paper:#F5F7FA; --white:#fff;
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font-family:-apple-system,"Hiragino Sans","Yu Gothic",sans-serif; background:var(--paper); color:var(--ink); line-height:1.8; font-size:16px; }
a { color:var(--royal); }
a:hover { color:var(--navy); }
.num, .en { font-family:Arial,"Hiragino Sans",sans-serif; }

/* 頭 */
.top { background:var(--deep-navy); color:#fff; }
.top .in { max-width:860px; margin:0 auto; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.brand { color:#fff; text-decoration:none; font-family:Arial,sans-serif; font-weight:700; letter-spacing:.18em; font-size:18px; }
.brand small { font-family:"Hiragino Sans","Yu Gothic",sans-serif; font-weight:500; letter-spacing:.08em; font-size:12px; color:#B9C2CB; margin-left:10px; }
.top nav a { color:#D6E3F0; text-decoration:none; font-size:13px; margin-left:16px; letter-spacing:.06em; }
.top nav a:hover { color:#fff; text-decoration:underline; }

/* 胴 */
main { max-width:860px; margin:0 auto; padding:24px 16px 48px; }
h1 { color:var(--deep-navy); font-size:26px; line-height:1.4; letter-spacing:.04em; margin:8px 0 12px; }
h2 { color:var(--navy); font-size:19px; line-height:1.5; letter-spacing:.04em; margin:36px 0 12px; padding-left:12px; border-left:4px solid var(--royal); }
h3 { color:var(--navy); font-size:16px; margin:22px 0 8px; }
p { margin:0 0 14px; }
.lead { font-size:17px; color:var(--ink); }
.cap { font-size:13px; color:var(--slate); line-height:1.7; }
.card { background:var(--white); border:1px solid var(--silver); border-radius:10px; padding:18px 20px; margin:0 0 14px; }
.card h3 { margin-top:0; }
.box { border:1.5px solid var(--royal); background:var(--ice); border-radius:8px; padding:14px 18px; margin:14px 0; }
.box.warn { border-color:var(--vermilion); background:#FDECEA; }
ul, ol { padding-left:1.4em; margin:0 0 14px; }
li { margin:4px 0; }
table { border-collapse:collapse; width:100%; margin:12px 0 18px; font-size:14px; background:#fff; }
th, td { border:1px solid var(--silver); padding:8px 10px; vertical-align:top; text-align:left; }
th { background:var(--navy); color:#fff; font-weight:600; }
tbody tr:nth-child(even) td { background:var(--ice); }
hr { border:none; border-top:1px solid var(--silver); margin:28px 0; }

/* ボタン */
.btn { display:inline-block; background:var(--royal); color:#fff; text-decoration:none; font-weight:700; padding:12px 22px; border-radius:8px; letter-spacing:.04em; }
.btn:hover { background:var(--navy); color:#fff; }
.btn.ghost { background:#fff; color:var(--navy); border:1.5px solid var(--navy); }
.btn.ghost:hover { background:var(--ice); }

/* 扉（二つの部屋） */
.doors { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:16px 0 8px; }
.door { display:block; background:#fff; border:1px solid var(--silver); border-top:5px solid var(--royal); border-radius:10px; padding:18px 20px 20px; text-decoration:none; color:var(--ink); }
.door:hover { border-color:var(--navy); box-shadow:0 2px 8px rgba(13,34,64,.08); color:var(--ink); }
.door.green { border-top-color:var(--emerald); }
.door .t { display:block; color:var(--deep-navy); font-size:19px; font-weight:700; margin-bottom:6px; }
.door .d { display:block; font-size:14px; color:var(--ink); }
.door .go { display:block; margin-top:10px; color:var(--royal); font-size:13px; font-weight:600; }

/* プロフィール */
.hero { display:flex; gap:24px; align-items:flex-start; margin:8px 0 20px; }
.photo { width:200px; height:200px; flex:0 0 200px; border-radius:10px; object-fit:cover; background:var(--pale); border:1px solid var(--silver); }
.photo.ph { display:flex; align-items:center; justify-content:center; color:var(--navy); font-size:13px; text-align:center; line-height:1.6; }
.hero h1 { margin-top:0; }
.hero .en { color:var(--slate); font-size:14px; letter-spacing:.08em; }
.timeline { list-style:none; padding:0; margin:0 0 14px; }
.timeline li { display:grid; grid-template-columns:7.5em 1fr; gap:10px; padding:7px 0; border-bottom:1px solid var(--silver); }
.timeline li b { font-family:Arial,"Hiragino Sans",sans-serif; color:var(--navy); font-weight:700; }
.books li { margin:6px 0; }

/* 料金 */
.price { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.price .big { font-family:Arial,sans-serif; font-size:34px; font-weight:700; color:var(--navy); line-height:1.2; }
.price .unit { color:var(--slate); font-size:14px; }

/* 手順 */
.steps { counter-reset:s; list-style:none; padding:0; }
.steps li { counter-increment:s; display:grid; grid-template-columns:2.2em 1fr; gap:10px; padding:8px 0; }
.steps li::before { content:counter(s); font-family:Arial,sans-serif; font-weight:700; color:#fff; background:var(--royal); border-radius:50%; width:1.8em; height:1.8em; display:flex; align-items:center; justify-content:center; font-size:14px; margin-top:4px; }

/* 足 */
footer { border-top:1px solid var(--silver); background:#fff; }
footer .in { max-width:860px; margin:0 auto; padding:22px 16px 30px; font-size:13px; color:var(--slate); line-height:1.8; }
footer .links a { margin-right:14px; }
footer .op b { color:var(--ink); font-weight:600; }

/* 規約・ポリシーの本文 */
.legal h1 { font-size:24px; }
.legal h2 { font-size:17px; margin-top:30px; }
.legal p, .legal li, .legal td { font-size:15px; }
.legal .meta { font-size:13px; color:var(--slate); }

@media (max-width:640px) {
  body { font-size:15px; }
  h1 { font-size:22px; }
  .doors { grid-template-columns:1fr; }
  .hero { flex-direction:column; gap:14px; }
  .photo { width:160px; height:160px; flex-basis:160px; }
  .timeline li { grid-template-columns:5.5em 1fr; }
  .top nav a { margin-left:0; margin-right:14px; }
}
