/* 제자리 수선실 — N23 문서형 평문 페이지: 장치 없이 웹 문서의 기본 흐름 그대로, 메뉴·주소만 구석에 고정 */
:root {
  --paper: #f6f4ee;
  --ink: #22201c;
  --mute: #6b665c;
  --line: #d9d4c7;
  --link: #8a3324;
  --mono: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 17px/1.8 'Gowun Batang', 'Noto Serif KR', serif;
  word-break: keep-all;
  overflow-wrap: break-word;
  -webkit-text-size-adjust: 100%;
}
a { color: var(--link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }

/* 구석 고정 — 오른쪽 위 메뉴, 오른쪽 아래 주소 */
.corner { position: fixed; right: 28px; z-index: 20; font: 400 13px/1.7 var(--mono); }
.corner--menu { top: 56px; display: flex; flex-direction: column; align-items: flex-end; }
.corner--menu a { color: var(--ink); text-decoration: none; }
.corner--menu a:hover { text-decoration: underline; }
.corner--addr { bottom: 24px; text-align: right; color: var(--mute); }
.corner--addr p { margin: 0; }
.corner--addr a { color: var(--ink); }

/* 본문 — 한 단, 38em */
.doc { max-width: 38em; margin: 0 0 0 max(24px, 14vw); padding: 64px 0 96px; }
h1 { margin: 0 0 18px; font-size: 1.6em; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
h2 { margin: 2.6em 0 .6em; font-size: 1.12em; font-weight: 700; }
h3 { margin: 1.4em 0 .3em; font-size: 1em; font-weight: 700; color: var(--mute); }
p { margin: 0 0 1em; }
.lede { font-size: 1.06em; }
.note { font-size: .92em; color: var(--mute); }
time { font-family: var(--mono); font-size: .82em; color: var(--mute); margin-right: .5em; }

/* 대시 목록 */
.dash { list-style: none; margin: 0 0 1em; padding: 0; }
.dash li { position: relative; padding-left: 1.4em; margin-bottom: .45em; }
.dash li::before { content: '—'; position: absolute; left: 0; color: var(--mute); }

/* 요일별 시간 */
.hours { list-style: none; margin: 0 0 .8em; padding: 0; font-family: var(--mono); font-size: .9em; }
.hours li { display: flex; gap: 1.4em; padding: 1px 0; }
.hours li span { width: 4.5em; font-family: 'Gowun Batang', serif; font-size: 1.08em; }
.hours li.off { color: var(--mute); }
.hours li.today { font-weight: 500; }
.hours li.today::after { content: '← 오늘'; color: var(--link); }

/* 값 목록 */
.price { list-style: none; margin: 0 0 1em; padding: 0; }
.price li { display: flex; align-items: baseline; gap: 10px; padding: 2px 0; }
.price li span { flex: 0 1 auto; }
.price li::after { content: ''; order: 1; flex: 1 1 24px; border-bottom: 1px dotted var(--line); transform: translateY(-5px); }
.price li b { order: 2; flex: none; font: 400 .88em var(--mono); white-space: nowrap; }

/* 사진 — 본문 폭 안에서만 */
.photo { margin: 1.8em 0; }
.photo img { display: block; width: 100%; height: auto; }
.photo figcaption { margin-top: 6px; font-size: .86em; color: var(--mute); }
.pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 1.8em 0; }
.pair .photo { margin: 0; }

.steps { margin: 0 0 1em; padding-left: 1.4em; }
.steps li { margin-bottom: .35em; padding-left: .2em; }

.contact { margin: 0; display: grid; grid-template-columns: 5.5em 1fr; gap: 4px 12px; }
.contact dt { color: var(--mute); }
.contact dd { margin: 0; }

.letter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.letter label { width: 100%; font-size: .9em; color: var(--mute); }
.letter input { flex: 1 1 220px; min-width: 0; padding: 8px 10px; border: 1px solid var(--ink); background: #fff; font: 400 15px var(--mono); color: var(--ink); border-radius: 0; }
.letter button { padding: 9px 18px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font: inherit; font-size: 15px; cursor: pointer; border-radius: 0; }
.letter button:hover { background: var(--link); border-color: var(--link); }

.foot { margin-top: 4em; padding-top: 1.2em; border-top: 1px solid var(--line); font-size: .84em; color: var(--mute); }
.foot a { color: inherit; }
.foot time { font: inherit; color: inherit; margin: 0; }

.quickbar { display: none; }

/* 좁은 화면 — 구석 고정을 풀고 상단 한 줄로, 연락은 하단 바 */
@media (max-width: 1180px) {
  .corner { position: static; max-width: 686px; margin: 0 auto; }
  .corner--menu { flex-direction: row; flex-wrap: wrap; gap: 4px 16px; padding: 14px 20px 0; }
  .corner--addr { text-align: left; padding: 4px 20px 0; font-size: 12.5px; }
  .corner--addr .br1 { display: none; }
  .corner--addr a { margin-left: .4em; }
  .doc { margin: 0 auto; padding: 36px 20px 120px; }
  .quickbar {
    display: grid; grid-template-columns: repeat(3, 1fr);
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
    background: var(--paper); border-top: 1px solid var(--ink);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .quickbar a {
    display: flex; align-items: center; justify-content: center; min-height: 52px;
    color: var(--ink); text-decoration: none; font-size: 15px;
  }
  .quickbar a + a { border-left: 1px solid var(--line); }
  .quickbar a:first-child { background: var(--ink); color: var(--paper); }
}
@media (max-width: 480px) {
  body { font-size: 16px; }
  .corner--menu { justify-content: flex-start; }
  .pair { grid-template-columns: 1fr; }
  .price li::after { display: none; }
  .price li { justify-content: space-between; }
  .price li span { flex: 1 1 auto; }
}
