/* 美容室 つむぎ（制作の見本）
   地 #F3EEE8 ／ 字 #2B2725 ／ 差し色 #9A6B5B
   字に使う差し色は、地との差を取るため濃い方（--aka-koi）を使う */

:root {
  --ji: #F3EEE8;
  --kami: #FBF8F4;
  --men: #EAE2D7;
  --kei: #D5C9BB;
  --sumi: #2B2725;
  --usu: #5F5650;
  --aka: #9A6B5B;
  --aka-koi: #7B4E40;
  --aka-usu: #E2C4B8;
  --gin: #B9AFA3;
  --mincho: "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;
  --gothic: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif;
  --haba: 1120px;
  --yoko: 20px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: 72px;
}

body {
  margin: 0;
  background-color: var(--ji);
  color: var(--sumi);
  font-family: var(--gothic);
  font-size: 17px;
  line-height: 1.95;
  letter-spacing: 0.03em;
  line-break: strict;
  overflow-wrap: anywhere;
  -webkit-font-smoothing: antialiased;
}

p {
  margin: 0 0 1.1em;
}

p,
li,
dd,
summary {
  text-wrap: pretty;
}

h1,
h2,
h3 {
  font-family: var(--mincho);
  font-weight: 600;
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

a {
  color: inherit;
}

svg {
  display: block;
}

:focus-visible {
  outline: 2px solid var(--aka-koi);
  outline-offset: 3px;
}

.ku {
  display: inline-block;
}

.suji {
  letter-spacing: 0.06em;
  overflow-wrap: anywhere;
}

.tobi {
  position: absolute;
  left: 12px;
  top: -80px;
  z-index: 30;
  padding: 10px 16px;
  background: var(--sumi);
  color: var(--kami);
  text-decoration: none;
}

.tobi:focus {
  top: 12px;
}

/* ---------- 上の帯 ---------- */

.atama {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 60px;
  padding: 6px max(var(--yoko), calc((100% - var(--haba)) / 2));
  background: var(--ji);
  border-bottom: 1px solid var(--kei);
}

.mise {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  min-height: 44px;
  padding: 6px 0;
  font-family: var(--mincho);
  text-decoration: none;
  line-height: 1.4;
}

.mise-shu {
  font-size: 12px;
  letter-spacing: 0.32em;
  color: var(--usu);
}

.mise-na {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.3em;
}

/* ---------- 押す所 ---------- */

.botan {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 10px 30px;
  background: var(--sumi);
  color: var(--kami);
  font-family: var(--gothic);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  border-radius: 2px;
  transition: background-color 0.2s ease;
}

/* 布の札のような、縫い目の線 */
.botan::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px dashed rgba(251, 248, 244, 0.42);
  border-radius: 1px;
  pointer-events: none;
}

.botan:hover {
  background: var(--aka-koi);
}

.botan-sho {
  min-height: 44px;
  padding: 6px 16px;
  font-size: 14px;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.botan-sho::before {
  inset: 4px;
}

.botan-akarui {
  background: var(--kami);
  color: var(--sumi);
}

.botan-akarui::before {
  border-color: rgba(43, 39, 37, 0.38);
}

.botan-akarui:hover {
  background: var(--aka-usu);
}

/* ---------- 最初の画面 ---------- */

.hajime {
  position: relative;
  overflow: hidden;
  padding: 26px var(--yoko) 8px;
}

.hajime-waku {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "basho basho"
    "e tate"
    "yoko yoko"
    "kazu kazu";
  row-gap: 26px;
  max-width: var(--haba);
  margin: 0 auto;
}

.hajime-basho {
  grid-area: basho;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 14px;
  margin: 0;
  font-family: var(--mincho);
  font-size: 14px;
  letter-spacing: 0.26em;
  color: var(--usu);
}

.hajime-basho-sen::before {
  content: "";
  display: inline-block;
  width: 30px;
  height: 1px;
  margin-right: 14px;
  background: var(--aka);
  vertical-align: middle;
}

.hajime-e {
  grid-area: e;
  position: relative;
  min-height: 300px;
  margin-left: calc(var(--yoko) * -1);
  margin-right: 8px;
  /* 糸の右の端を、まっすぐ切らずに薄く消す */
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 68%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 0, #000 68%, transparent 100%);
}

.ito {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 16%, #000 80%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 16%, #000 80%, transparent 100%);
}

.ito path {
  fill: none;
  stroke-linecap: round;
}

.ito-s {
  stroke: #3D332E;
  stroke-width: 1.1;
  opacity: 0.56;
}

.ito-s2 {
  stroke-width: 1.3;
  opacity: 0.32;
}

.ito-a {
  stroke: var(--aka);
  stroke-width: 1.2;
  opacity: 0.9;
}

.ito-g {
  stroke-width: 2;
}

.hajime-tate {
  grid-area: tate;
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  font-weight: 500;
  font-size: 30px;
  line-height: 1.78;
  letter-spacing: 0.14em;
}

.hajime-tate span {
  display: block;
}

.hajime-tate .t1 {
  color: var(--aka-koi);
}

.hajime-tate .t2,
.hajime-tate .t3 {
  padding-top: 1.5em;
}

.hajime-tate .t4 {
  padding-top: 4.4em;
}

.hajime-yoko {
  grid-area: yoko;
  max-width: 34em;
}

.hajime-lead {
  margin-bottom: 26px;
}

.hajime-yoko .botan {
  width: 100%;
  max-width: 360px;
}

.hajime-chu {
  margin: 16px 0 0;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--usu);
}

.kazu {
  grid-area: kazu;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 10px;
  border-top: 1px solid var(--sumi);
  border-bottom: 1px solid var(--kei);
}

.kazu li {
  display: grid;
  align-content: start;
  gap: 2px;
  padding: 13px 0 14px 12px;
  border-left: 1px solid var(--kei);
}

.kazu li:first-child {
  padding-left: 0;
  border-left: 0;
}

.kazu-na {
  font-size: 13px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: var(--usu);
}

.kazu-ne {
  font-family: var(--mincho);
  font-size: 18px;
  line-height: 1.45;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

/* ---------- 節の枠 ---------- */

.setsu {
  padding: 68px var(--yoko) 72px;
}

.setsu-kami {
  background: var(--kami);
  border-top: 1px solid var(--kei);
  border-bottom: 1px solid var(--kei);
}

.setsu-waku {
  max-width: var(--haba);
  margin: 0 auto;
}

.setsu-atama {
  margin-bottom: 34px;
}

.setsu-ban {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 12px;
  font-family: var(--mincho);
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: 0.2em;
  color: var(--aka-koi);
}

.setsu-ban::after {
  content: "";
  width: 44px;
  height: 1px;
  background: var(--aka);
}

.setsu h2 {
  font-size: 26px;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.setsu-lead {
  margin: 18px 0 0;
  max-width: 40em;
}

.setsu-naka > p {
  max-width: 38em;
}

.setsu-naka > :last-child {
  margin-bottom: 0;
}

.ko-midashi {
  margin: 40px 0 14px;
  font-size: 19px;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.chu {
  font-size: 14.5px;
  line-height: 1.85;
  color: var(--usu);
}

.sen-list li {
  position: relative;
  padding: 3px 0 3px 26px;
}

.sen-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.02em;
  width: 14px;
  height: 1px;
  background: var(--aka);
}

/* ---------- 一 こんなことが ---------- */

.bamen {
  border-top: 1px solid var(--kei);
}

.bamen li {
  display: grid;
  gap: 4px;
  padding: 20px 0 22px;
  border-bottom: 1px solid var(--kei);
}

.bamen p {
  margin: 0;
}

.bamen-doko {
  font-family: var(--mincho);
  font-size: 15px;
  letter-spacing: 0.14em;
  color: var(--aka-koi);
}

.bamen-nani {
  font-size: 17.5px;
  line-height: 1.85;
}

.hazama {
  display: grid;
  justify-items: center;
  gap: 30px;
  margin-top: 60px;
  text-align: center;
}

.hazama::before {
  content: "";
  width: 1px;
  height: 44px;
  background: var(--aka);
}

.hazama-tate {
  -webkit-writing-mode: vertical-rl;
  writing-mode: vertical-rl;
  margin: 0;
  font-family: var(--mincho);
  font-size: 25px;
  line-height: 2.1;
  letter-spacing: 0.18em;
  text-align: start;
}

.hazama-tate span {
  display: block;
}

.hazama-tate span + span {
  padding-top: 2.2em;
}

.hazama-yoko {
  margin: 0;
  font-family: var(--mincho);
  font-size: 17.5px;
  line-height: 2.1;
}

/* ---------- 二 決めていること ---------- */

.kimari {
  border-top: 1px solid var(--sumi);
}

.kimari li {
  padding: 26px 0 28px;
  border-bottom: 1px solid var(--kei);
}

.kimari-ban {
  display: block;
  margin-bottom: 6px;
  font-family: var(--mincho);
  font-size: 14.5px;
  line-height: 1.6;
  letter-spacing: 0.26em;
  color: var(--aka-koi);
}

.kimari h3 {
  margin-bottom: 8px;
  font-size: 22px;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.kimari p {
  margin: 0;
}

/* ---------- 三 髪の記録 ---------- */

.kiroku {
  margin: 34px 0 0;
  max-width: 620px;
}

.kiroku-kami {
  position: relative;
  padding: 26px 20px 8px;
  background: var(--kami);
  border: 1px solid var(--kei);
  border-top: 4px solid var(--aka);
  box-shadow: 0 22px 40px -30px rgba(43, 39, 37, 0.45);
}

.kiroku-atama {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--sumi);
}

.kiroku-atama p {
  margin: 0;
}

.kiroku-dai {
  font-family: var(--mincho);
  font-size: 21px;
  font-weight: 600;
  letter-spacing: 0.18em;
}

.kiroku-kai,
.kiroku-hi {
  font-size: 14px;
  color: var(--usu);
}

.kiroku-atama .kiroku-hi {
  margin-left: auto;
}

.kiroku-hyo {
  margin: 0;
}

.kiroku-hyo > div {
  display: grid;
  gap: 2px;
  padding: 13px 0 14px;
  border-bottom: 1px dashed var(--kei);
}

.kiroku-hyo > div:last-child {
  border-bottom: 0;
}

.kiroku-hyo dt {
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--aka-koi);
}

.kiroku-hyo dd {
  margin: 0;
  font-family: var(--mincho);
  font-size: 16.5px;
  line-height: 1.8;
}

.kiroku figcaption,
.line figcaption,
.chizu-waku figcaption {
  margin-top: 12px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--usu);
}

/* ---------- 四 3つの付き合い方 ---------- */

.michi {
  display: grid;
  gap: 22px;
}

.michi-hitotsu {
  display: flex;
  flex-direction: column;
  padding: 24px 20px 22px;
  background: var(--ji);
  border: 1px solid var(--kei);
}

/* 3つを先に並べた早見（幅が狭い時だけ。広い時は箱が横に並ぶので出さない） */
.narabe {
  margin-bottom: 30px;
}

.narabe-dai {
  margin: 0 0 8px;
  font-size: 13.5px;
  letter-spacing: 0.1em;
  color: var(--usu);
}

.narabe ul {
  border-top: 1px solid var(--sumi);
}

.narabe li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  column-gap: 12px;
  align-items: baseline;
  padding: 12px 0 13px;
  border-bottom: 1px solid var(--kei);
}

.narabe-na {
  font-family: var(--mincho);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.04em;
}

.narabe-kai {
  font-size: 13.5px;
  letter-spacing: 0.02em;
  color: var(--usu);
  white-space: nowrap;
}

.narabe-ne {
  min-width: 5.4em;
  font-family: var(--mincho);
  font-size: 17px;
  letter-spacing: 0.02em;
  text-align: right;
  white-space: nowrap;
}

.mihon-ito {
  width: 180px;
  max-width: 100%;
  height: auto;
  margin-bottom: 4px;
}

.michi-hitotsu .mihon-na {
  margin: 0 0 14px;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.06em;
  color: var(--usu);
}

.mihon-ito path {
  fill: none;
  stroke-width: 1.35;
}

.mi-obi {
  fill: var(--sumi);
}

.mi-k1 {
  stroke: #4B3A32;
}

.mi-k2 {
  stroke: #6F4A3D;
}

.mihon-ito .mi-hi {
  stroke: #DCC3AA;
  stroke-width: 1.5;
}

.mi-gr2 {
  opacity: 0.72;
}

.michi-hitotsu h3 {
  margin-bottom: 8px;
  font-size: 22px;
  line-height: 1.55;
  letter-spacing: 0.06em;
}

.michi-hitotsu p {
  margin: 0 0 12px;
  font-size: 16px;
  line-height: 1.85;
}

.michi-hitotsu .michi-dare {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--kei);
  font-family: var(--mincho);
  font-size: 16.5px;
  color: var(--aka-koi);
}

.michi-hitotsu .michi-rei {
  margin: 22px 0 0;
  font-size: 13px;
  letter-spacing: 0.14em;
  color: var(--usu);
}

/* 1年の通い方。織物の設計図のような升目 */
.masu {
  display: grid;
  grid-template-columns: 60px repeat(12, minmax(0, 1fr));
  gap: 3px;
  align-items: center;
  max-width: 400px;
  margin: 8px 0 12px;
}

.masu span {
  display: block;
}

/* 月の数字。升が狭い時も「10・11・12」が2行に折れないよう、折り返さず真ん中にそろえる */
.masu .tsuki {
  display: flex;
  justify-content: center;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0;
  white-space: nowrap;
  color: var(--usu);
}

.masu .na {
  font-size: 13.5px;
  line-height: 1.3;
  letter-spacing: 0;
  white-space: nowrap;
}

.masu .tsuki-na {
  font-size: 12px;
  color: var(--usu);
}

.masu .me {
  aspect-ratio: 1 / 1;
  border: 1px solid var(--kei);
}

.masu .me.on {
  border-color: transparent;
}

.masu .r1.on {
  background: var(--aka);
}

.masu .r2.on {
  background: #C39C8E;
}

.masu .r3.on {
  background: var(--sumi);
}

.masu .r4.on {
  background: var(--gin);
  background-image: repeating-linear-gradient(90deg, transparent 0 2px, rgba(251, 248, 244, 0.85) 2px 3px);
}

.michi-hitotsu .masu-yomi {
  margin-bottom: 18px;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--usu);
}

.michi-hitotsu .michi-ne {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 16px;
  margin: auto 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--sumi);
  font-family: var(--mincho);
}

.michi-ne-nen {
  font-size: 17px;
}

.michi-ne-nen b {
  font-size: 27px;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.michi-ne-tsuki {
  font-size: 15px;
  color: var(--usu);
}

.michi + .chu {
  margin-top: 22px;
  max-width: 40em;
}

/* ---------- 五 メニューと値段 ---------- */

.shina {
  margin-top: 26px;
  border-top: 1px solid var(--sumi);
}

.shina li {
  padding: 20px 0 22px;
  border-bottom: 1px solid var(--kei);
}

.shina-ue {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 14px;
}

.shina-ue p {
  margin: 0;
}

.shina-na {
  flex: 1 1 100%;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.shina-soe {
  font-size: 15px;
  font-weight: 400;
}

.shina-ji {
  font-size: 14px;
  letter-spacing: 0.06em;
  color: var(--usu);
}

.shina-ue .shina-ne {
  margin-left: auto;
  font-family: var(--mincho);
  font-size: 24px;
  line-height: 1.4;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.shina-ne small {
  font-size: 14px;
  letter-spacing: 0.06em;
}

.shina-setsu {
  margin: 8px 0 0;
  font-size: 15.5px;
  line-height: 1.85;
}

.nai {
  display: grid;
  gap: 16px;
  margin-top: 34px;
}

.nai-hako {
  padding: 20px 20px 22px;
  background: var(--kami);
  border: 1px solid var(--kei);
}

.nai-hako h3 {
  margin-bottom: 10px;
  font-size: 18px;
  letter-spacing: 0.08em;
}

.nai-hako p,
.nai-hako li {
  font-size: 15.5px;
  line-height: 1.85;
}

.nai-hako p {
  margin: 0;
}

.shojiki {
  margin: 34px 0 0;
  padding-left: 18px;
  border-left: 2px solid var(--aka);
  font-family: var(--mincho);
  font-size: 17px;
  line-height: 2.05;
}

/* ---------- 六 はじめての日 ---------- */

.nagare {
  counter-reset: n;
}

.nagare li {
  counter-increment: n;
  position: relative;
  padding: 0 0 34px 58px;
}

.nagare li::before {
  content: counter(n) ".";
  position: absolute;
  left: 0;
  top: -3px;
  width: 44px;
  font-family: var(--mincho);
  font-size: 30px;
  line-height: 1.3;
  color: var(--aka-koi);
}

.nagare li::after {
  content: "";
  position: absolute;
  left: 13px;
  top: 46px;
  bottom: 8px;
  width: 1px;
  background: var(--kei);
}

.nagare li:last-child {
  padding-bottom: 0;
}

.nagare li:last-child::after {
  display: none;
}

.nagare h3 {
  margin-bottom: 6px;
  font-size: 20px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.nagare p {
  margin: 0;
}

/* ---------- 七 店主から ---------- */

.tegami {
  max-width: 36em;
  font-family: var(--mincho);
  font-size: 17.5px;
  line-height: 2.2;
}

.tegami p {
  margin: 0 0 1.5em;
}

.tegami .tegami-hajime {
  font-size: 23px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.08em;
}

.tegami-na {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  margin-top: 36px;
}

.tegami-na p {
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
}

.tegami-na span {
  font-size: 14px;
  color: var(--usu);
}

.kushi {
  flex: none;
  width: 76px;
  height: auto;
}

.kushi-mune,
.kushi-ha {
  fill: var(--aka);
}

/* ---------- 八 よくあるご質問 ---------- */

.toi {
  border-top: 1px solid var(--kei);
}

.toi details {
  border-bottom: 1px solid var(--kei);
}

.toi summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20px;
  gap: 16px;
  align-items: center;
  min-height: 68px;
  padding: 14px 0;
  font-family: var(--mincho);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: 0.04em;
  cursor: pointer;
  list-style: none;
}

.toi summary::-webkit-details-marker {
  display: none;
}

.toi summary::after {
  content: "";
  width: 17px;
  height: 17px;
  background:
    linear-gradient(var(--aka-koi), var(--aka-koi)) center / 17px 1px no-repeat,
    linear-gradient(var(--aka-koi), var(--aka-koi)) center / 1px 17px no-repeat;
}

.toi details[open] summary::after {
  background: linear-gradient(var(--aka-koi), var(--aka-koi)) center / 17px 1px no-repeat;
}

.toi .kotae {
  margin: 0;
  padding: 0 0 24px;
  max-width: 38em;
}

/* ---------- 九 予約・相談 ---------- */

.yoyaku {
  background: var(--sumi);
  color: var(--kami);
}

.yoyaku .setsu-ban {
  color: var(--aka-usu);
}

.yoyaku :focus-visible {
  outline-color: var(--aka-usu);
}

.yoyaku-narabi {
  display: grid;
  gap: 36px;
  margin-top: 34px;
}

.line {
  margin: 0;
  max-width: 420px;
}

.line-gamen {
  display: grid;
  gap: 10px;
  padding: 20px 14px 22px;
  background: var(--men);
  color: var(--sumi);
  border-radius: 6px;
}

.line-gamen p {
  margin: 0;
}

.line-fuki {
  max-width: 88%;
  padding: 10px 15px;
  font-size: 15.5px;
  line-height: 1.75;
  border-radius: 16px;
}

.line-watashi {
  justify-self: end;
  background: var(--aka-koi);
  color: var(--kami);
  border-bottom-right-radius: 4px;
}

.line-mise {
  justify-self: start;
  background: var(--kami);
  border-bottom-left-radius: 4px;
}

.line-dare {
  margin-top: 6px;
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--usu);
}

.yoyaku .line figcaption {
  color: #CFC6BA;
}

.yoyaku .ko-midashi {
  margin-top: 0;
}

.kotoba {
  display: grid;
  gap: 10px;
  margin-bottom: 30px;
}

.kotoba li {
  position: relative;
  padding: 11px 16px 11px 18px;
  border: 1px solid rgba(226, 196, 184, 0.5);
  border-left: 3px solid var(--aka-usu);
  font-family: var(--mincho);
  font-size: 17px;
  line-height: 1.7;
}

.yoyaku .botan {
  width: 100%;
  max-width: 360px;
  scroll-margin-top: 120px;
}

.yoyaku-chu {
  margin: 12px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: #CFC6BA;
}

.yoyaku-denwa {
  margin: 28px 0 0;
  padding-top: 20px;
  border-top: 1px solid rgba(226, 196, 184, 0.35);
  font-size: 14.5px;
  line-height: 1.85;
  color: #E4DCD2;
}

.yoyaku-denwa .suji {
  font-family: var(--mincho);
  font-size: 19px;
  color: var(--kami);
}

/* ---------- 十 店の案内 ---------- */

.annai {
  margin: 0;
  border-top: 1px solid var(--sumi);
}

.annai > div {
  display: grid;
  grid-template-columns: 4.2em minmax(0, 1fr);
  gap: 14px;
  align-items: baseline;
  padding: 14px 0 15px;
  border-bottom: 1px solid var(--kei);
}

.annai dt {
  font-family: var(--mincho);
  font-size: 14.5px;
  letter-spacing: 0.12em;
  color: var(--aka-koi);
}

.annai dd {
  margin: 0;
  font-size: 16.5px;
  line-height: 1.85;
}

.michijun {
  display: grid;
  gap: 24px;
  margin-top: 36px;
}

.chizu-waku {
  margin: 0;
  max-width: 460px;
}

.chizu {
  width: 100%;
  height: auto;
  background: var(--kami);
  border: 1px solid var(--kei);
}

.chizu text {
  font-family: var(--gothic);
  font-size: 12px;
  letter-spacing: 0;
  fill: var(--sumi);
}

.chizu .c-sho {
  font-size: 11px;
  fill: var(--usu);
}

.chizu .c-na {
  font-family: var(--mincho);
  font-size: 14px;
  font-weight: 600;
  fill: var(--aka-koi);
}

.c-michi {
  fill: none;
  stroke: #DDD3C6;
  stroke-linecap: round;
}

.c-futoi {
  stroke-width: 14;
}

.c-naka {
  stroke-width: 11;
}

.c-hoso {
  stroke-width: 6;
}

.c-senro {
  fill: none;
  stroke: var(--sumi);
  stroke-width: 5;
}

.c-makura {
  fill: none;
  stroke: var(--kami);
  stroke-width: 3;
  stroke-dasharray: 8 8;
}

.c-eki {
  fill: var(--kami);
  stroke: var(--sumi);
  stroke-width: 1.2;
}

.c-tate {
  fill: var(--ji);
  stroke: var(--usu);
  stroke-width: 1;
}

.c-ie {
  fill: none;
  stroke: var(--kei);
  stroke-width: 1;
}

.c-mise {
  fill: var(--aka-koi);
}

.c-ayumi {
  fill: none;
  stroke: var(--aka-koi);
  stroke-width: 2.2;
  stroke-dasharray: 0.1 6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.c-hiki {
  fill: none;
  stroke: var(--aka-koi);
  stroke-width: 1;
}

.c-kita {
  fill: none;
  stroke: var(--usu);
  stroke-width: 1.2;
  stroke-linecap: round;
}

.michijun-bun {
  counter-reset: m;
}

.michijun-bun li {
  counter-increment: m;
  position: relative;
  padding: 8px 0 8px 36px;
  border-bottom: 1px dashed var(--kei);
}

.michijun-bun li::before {
  content: counter(m) ".";
  position: absolute;
  left: 0;
  top: 5px;
  font-family: var(--mincho);
  font-size: 20px;
  color: var(--aka-koi);
}

/* ---------- 下 ---------- */

.ashi {
  display: grid;
  justify-items: center;
  gap: 16px;
  padding: 60px var(--yoko) 68px;
  background: var(--kami);
  border-top: 1px solid var(--kei);
  text-align: center;
}

.musubi {
  width: 200px;
  height: auto;
}

.musubi path {
  fill: none;
  stroke: var(--aka);
  stroke-width: 1.2;
  stroke-linecap: round;
}

.ashi p {
  margin: 0;
}

.ashi-na {
  font-family: var(--mincho);
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.34em;
  line-height: 1.5;
}

.ashi-na span {
  display: block;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.4em;
  color: var(--usu);
}

.ashi-ate {
  font-size: 14px;
  line-height: 1.9;
  color: var(--usu);
}

.ashi .botan {
  margin-top: 10px;
  width: 100%;
  max-width: 360px;
}

.mihon {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 2px 24px;
  padding: 8px max(var(--yoko), calc((100% - var(--haba)) / 2));
  background: #1D1A18;
  color: #E9E2D9;
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 0.02em;
}

.mihon p {
  margin: 0;
  padding: 6px 0;
}

.mihon-link {
  display: flex;
  flex-wrap: wrap;
  gap: 0 22px;
}

.mihon-link a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  text-underline-offset: 4px;
}

.mihon :focus-visible {
  outline-color: var(--aka-usu);
}

/* ---------- 動き（最初の画面の糸だけ） ---------- */

@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }

  .ito path {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    animation: hiku 2.2s cubic-bezier(0.3, 0.1, 0.2, 1) 0.1s forwards;
  }

  .ito path:nth-child(4n) {
    animation-delay: 0.3s;
  }

  .ito path:nth-child(4n + 1) {
    animation-delay: 0.5s;
  }

  .ito path:nth-child(4n + 2) {
    animation-delay: 0.75s;
  }

  .ito .ito-g {
    animation-duration: 2.8s;
    animation-delay: 0.9s;
  }
}

@keyframes hiku {
  to {
    stroke-dashoffset: 0;
  }
}

/* ---------- 幅 600 から ---------- */

@media (min-width: 600px) {
  :root {
    --yoko: 36px;
  }

  .hajime {
    padding-top: 40px;
    padding-bottom: 16px;
  }

  .hajime-waku {
    row-gap: 36px;
  }

  .hajime-tate {
    font-size: 40px;
  }

  .kazu li {
    padding: 16px 0 18px 22px;
  }

  .kazu-na {
    font-size: 13.5px;
  }

  .kazu-ne {
    font-size: 23px;
    letter-spacing: 0.05em;
  }

  .hajime-e {
    min-height: 420px;
    margin-right: 28px;
    /* この幅では糸が枠に収まるので、横は消さない */
    -webkit-mask-image: none;
    mask-image: none;
  }

  .bamen li {
    grid-template-columns: 10.5em minmax(0, 1fr);
    gap: 24px;
    align-items: baseline;
  }

  .hazama-tate {
    font-size: 30px;
  }

  .kiroku-kami {
    padding: 30px 32px 10px;
  }

  .kiroku-hyo > div {
    grid-template-columns: 8.5em minmax(0, 1fr);
    gap: 18px;
    align-items: baseline;
  }

  .annai > div {
    grid-template-columns: 6em minmax(0, 1fr);
    gap: 18px;
  }

  .michi-hitotsu {
    padding: 30px 32px 28px;
  }

  .shina-na {
    flex: 1 1 auto;
  }

  .shina-ue .shina-ne {
    min-width: 6.2em;
    margin-left: 0;
    text-align: right;
  }

  .nai {
    grid-template-columns: 1fr 1fr;
  }

  .michijun {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: 32px;
    align-items: start;
  }
}

/* ---------- 幅 960 から ---------- */

@media (min-width: 960px) {
  :root {
    --yoko: 48px;
  }

  html {
    scroll-padding-top: 84px;
  }

  .atama {
    min-height: 68px;
  }

  .mise-na {
    font-size: 24px;
  }

  .setsu {
    padding: 116px var(--yoko);
  }

  .setsu-waku {
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    column-gap: 76px;
  }

  .setsu-atama {
    position: sticky;
    top: 108px;
    align-self: start;
    margin-bottom: 0;
  }

  .setsu h2 {
    font-size: 31px;
    line-height: 1.65;
  }

  .yoyaku-narabi {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 40px;
    align-items: start;
  }

  .kimari li {
    display: grid;
    grid-template-columns: 7.5em minmax(0, 1fr);
    column-gap: 20px;
    padding: 32px 0 34px;
  }

  .kimari-ban {
    grid-row: 1 / span 2;
    padding-top: 7px;
  }

  .kimari h3 {
    font-size: 24px;
  }

  .hazama {
    margin-top: 76px;
  }
}

/* ---------- 幅 374 まで（小さめのスマホ） ---------- */

@media (max-width: 374px) {
  /* 「30分・無料」が欄からはみ出さない大きさに */
  .kazu-ne {
    font-size: 4.7vw;
  }
}

@media (max-width: 359px) {
  .michi-hitotsu {
    padding-left: 14px;
    padding-right: 14px;
  }

  .masu .tsuki {
    font-size: 11px;
  }
}

/* ---------- 幅 960 から（最初の画面を3列に） ----------
   もとは 960 から「文 300〜380 ／ 糸 180〜 ／ 縦書き 約370 ／ 間 48×2」の3列で、
   合わせて約946 要るのに 960〜1040 では入りきらず、「一席だけ。」が右で切れていた。
   960〜1099 は縦書きを 44px・間を 32px に詰めて入るようにし、1100 からもとの大きさにする。 */

@media (min-width: 960px) {
  .hajime {
    padding-top: 64px;
    padding-bottom: 8px;
  }

  .hajime-waku {
    grid-template-columns: minmax(300px, 320px) minmax(120px, 1fr) auto;
    grid-template-areas:
      "basho basho basho"
      "yoko e tate"
      "kazu kazu kazu";
    column-gap: 32px;
    row-gap: 44px;
    align-items: end;
  }

  .hajime-tate {
    font-size: 44px;
    letter-spacing: 0.16em;
    align-self: start;
  }

  .hajime-e {
    align-self: stretch;
    min-height: 500px;
    margin: 0;
    /* 真ん中の列に置くので、糸の左右の端を薄く消す */
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20%, #000 80%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 20%, #000 80%, transparent 100%);
  }

  .hajime-yoko {
    padding-bottom: 8px;
  }
}

@media (min-width: 1100px) {
  .hajime-waku {
    grid-template-columns: minmax(300px, 380px) minmax(180px, 1fr) auto;
    column-gap: 48px;
  }

  .hajime-tate {
    font-size: 52px;
  }

  .hajime-e {
    min-height: 560px;
  }
}

/* ---------- 幅 1180 から（3つの付き合い方を横に並べる） ----------
   もとは 960 から横並びで、960〜1100 あたりでは箱が狭く、升目の月の数字「10・11・12」が2行に折れていた。
   数字が入る幅になる 1180 から横に並べる。それより狭い時は、ほかの節と同じ組み方で縦に並べ、早見を出す。 */

@media (min-width: 1180px) {
  .narabe {
    display: none;
  }

  .setsu-hiroi .setsu-waku {
    display: block;
  }

  .setsu-hiroi .setsu-atama {
    position: static;
    margin-bottom: 48px;
  }

  .michi {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
  }

  .michi-hitotsu {
    padding: 30px 24px 28px;
  }
}

/* ==========================================================
   設計メモ（memo/index.html）
   ========================================================== */

.memo-waku {
  max-width: 760px;
  margin: 0 auto;
}

.memo-waku > p {
  max-width: 38em;
}

.memo-hajime {
  padding: 46px var(--yoko) 60px;
}

.memo-fuda {
  display: inline-block;
  margin: 0 0 20px;
  padding: 2px 14px 2px 18px;
  border: 1px solid var(--aka-koi);
  font-family: var(--mincho);
  font-size: 14px;
  letter-spacing: 0.32em;
  color: var(--aka-koi);
}

.memo-hajime h1 {
  margin-bottom: 20px;
  font-size: 25px;
  line-height: 1.75;
  letter-spacing: 0.06em;
}

.memo-mokuji {
  counter-reset: k;
  margin-top: 30px;
  border-top: 1px solid var(--sumi);
}

.memo-mokuji li {
  counter-increment: k;
  border-bottom: 1px solid var(--kei);
}

.memo-mokuji a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 50px;
  padding: 6px 0;
  font-family: var(--mincho);
  font-size: 16.5px;
  line-height: 1.6;
  text-decoration: none;
}

.memo-mokuji a::before {
  content: counter(k) ".";
  flex: none;
  width: 1.5em;
  font-size: 19px;
  color: var(--aka-koi);
}

.memo-mokuji a:hover {
  color: var(--aka-koi);
}

.memo-setsu {
  padding: 68px var(--yoko);
}

.memo-kami {
  background: var(--kami);
  border-top: 1px solid var(--kei);
  border-bottom: 1px solid var(--kei);
}

.memo-setsu h2 {
  margin-bottom: 20px;
  font-size: 25px;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.memo-setsu h3 {
  margin: 36px 0 10px;
  font-size: 19px;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.memo-hito {
  margin: 28px 0 0;
  padding: 22px 20px 4px;
  background: var(--kami);
  border: 1px solid var(--kei);
  border-top: 4px solid var(--aka);
}

.memo-hito-na {
  margin: 0 0 12px;
  font-family: var(--mincho);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.memo-hyo {
  margin: 0;
}

.memo-hyo > div {
  display: grid;
  gap: 2px;
  padding: 13px 0 14px;
  border-top: 1px dashed var(--kei);
}

.memo-hyo dt {
  font-family: var(--mincho);
  font-size: 14.5px;
  letter-spacing: 0.12em;
  color: var(--aka-koi);
}

.memo-hyo dd {
  margin: 0;
  font-size: 16px;
  line-height: 1.85;
}

.memo-waku > .memo-kime {
  margin: 30px 0 16px;
  padding: 16px 18px 16px 20px;
  max-width: none;
  border-left: 2px solid var(--aka);
  background: rgba(154, 107, 91, 0.08);
  font-family: var(--mincho);
  font-size: 17.5px;
  line-height: 2;
}

.memo-kime b {
  font-weight: 600;
  color: var(--aka-koi);
}

.memo-dan {
  counter-reset: d;
  margin-top: 30px;
}

.memo-dan li {
  counter-increment: d;
  position: relative;
  padding: 0 0 32px 58px;
}

.memo-dan li::before {
  content: counter(d) ".";
  position: absolute;
  left: 0;
  top: -3px;
  width: 44px;
  font-family: var(--mincho);
  font-size: 30px;
  line-height: 1.3;
  color: var(--aka-koi);
}

.memo-dan li::after {
  content: "";
  position: absolute;
  left: 13px;
  top: 46px;
  bottom: 8px;
  width: 1px;
  background: var(--kei);
}

.memo-dan li:last-child {
  padding-bottom: 0;
}

.memo-dan li:last-child::after {
  display: none;
}

.memo-dan h3 {
  margin: 0 0 4px;
  font-size: 21px;
}

.memo-dan p {
  margin: 0;
  font-size: 16px;
  line-height: 1.85;
}

.memo-dan .memo-koe {
  margin-bottom: 8px;
  font-family: var(--mincho);
  font-size: 16.5px;
  color: var(--aka-koi);
}

.memo-doko {
  display: block;
  margin-top: 8px;
  font-size: 13.5px;
  letter-spacing: 0.04em;
  color: var(--usu);
}

.memo-doko::before {
  content: "答える場所";
  margin-right: 10px;
  padding: 1px 8px;
  border: 1px solid var(--kei);
  font-size: 12px;
}

.memo-waku > .memo-yakusoku {
  margin: 4px 0 26px;
  padding: 24px 0;
  max-width: none;
  border-top: 1px solid var(--sumi);
  border-bottom: 1px solid var(--sumi);
  font-family: var(--mincho);
  font-size: 25px;
  font-weight: 600;
  line-height: 1.75;
  letter-spacing: 0.08em;
}

.memo-uraduke {
  counter-reset: u;
  margin-top: 24px;
}

.memo-uraduke li {
  counter-increment: u;
  position: relative;
  padding: 14px 0 14px 44px;
  border-top: 1px solid var(--kei);
}

.memo-uraduke li:last-child {
  border-bottom: 1px solid var(--kei);
}

.memo-uraduke li::before {
  content: counter(u) ".";
  position: absolute;
  left: 0;
  top: 9px;
  font-family: var(--mincho);
  font-size: 24px;
  color: var(--aka-koi);
}

.memo-aite {
  display: grid;
  gap: 14px;
  margin: 26px 0 0;
}

.memo-aite li {
  padding: 18px 20px 20px;
  background: var(--ji);
  border: 1px solid var(--kei);
}

.memo-aite h3 {
  margin: 0 0 8px;
  font-size: 19px;
}

.memo-aite p {
  margin: 0 0 4px;
  font-size: 15.5px;
  line-height: 1.85;
}

.memo-aite b {
  display: block;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--aka-koi);
}

.memo-yottsu {
  margin: 26px 0 0;
  border-bottom: 1px solid var(--kei);
}

.memo-yottsu > div {
  padding: 20px 0 22px;
  border-top: 1px solid var(--kei);
}

.memo-yottsu dt {
  margin-bottom: 6px;
  font-family: var(--mincho);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.05em;
}

.memo-yottsu dd {
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
}

.memo-narabi {
  margin: 26px 0 26px;
  border-top: 1px solid var(--sumi);
}

.memo-narabi li {
  display: grid;
  grid-template-columns: 3.6em minmax(0, 1fr);
  column-gap: 12px;
  padding: 14px 0 15px;
  border-bottom: 1px solid var(--kei);
  font-size: 15.5px;
  line-height: 1.85;
}

.memo-ban {
  padding-top: 3px;
  font-family: var(--mincho);
  font-size: 14.5px;
  letter-spacing: 0.08em;
  color: var(--aka-koi);
}

.memo-narabi b,
.memo-shashin b {
  display: block;
  font-family: var(--mincho);
  font-size: 17.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.memo-iro {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 26px;
  margin: 4px 0 24px;
}

.memo-iro li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14.5px;
  line-height: 1.5;
}

.iro {
  flex: none;
  width: 40px;
  height: 40px;
  border: 1px solid var(--kei);
}

.iro-ji {
  background: var(--ji);
}

.iro-sumi {
  background: var(--sumi);
}

.iro-aka {
  background: var(--aka);
}

.memo-shashin {
  margin: 24px 0 26px;
  border-top: 1px solid var(--sumi);
}

.memo-shashin li {
  padding: 13px 0 14px;
  border-bottom: 1px solid var(--kei);
  font-size: 15.5px;
  line-height: 1.85;
}

.memo-owari {
  padding: 64px var(--yoko) 76px;
  text-align: center;
}

.memo-owari .memo-waku {
  display: grid;
  justify-items: center;
  gap: 24px;
}

.memo-owari p {
  margin: 0;
  font-family: var(--mincho);
  font-size: 17.5px;
  line-height: 2.1;
}

.memo-owari .botan {
  width: 100%;
  max-width: 360px;
}

@media (min-width: 600px) {
  .memo-hajime {
    padding-top: 64px;
  }

  .memo-hajime h1 {
    font-size: 30px;
  }

  .memo-hito {
    padding: 28px 32px 8px;
  }

  .memo-hyo > div {
    grid-template-columns: 7.5em minmax(0, 1fr);
    gap: 18px;
    align-items: baseline;
  }

  .memo-aite {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .memo-aite li {
    padding: 18px 16px 20px;
  }

  .memo-waku > .memo-yakusoku {
    font-size: 30px;
  }
}

@media (min-width: 960px) {
  .memo-setsu {
    padding: 92px var(--yoko);
  }

  .memo-setsu h2 {
    font-size: 29px;
  }
}


/* ---- 吉田のホームページから見に来た人のための、一番上の帯（src/build.py が写す時に足す。見本の元には無い） ---- */
.yk-obi { margin: 0; padding: 2px 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 14px;
  background: #1E1B18; color: #F4EDE3; border-bottom: 1px solid rgba(210, 167, 121, .5);
  font: 500 13px/1.6 "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif;
  letter-spacing: .02em; text-align: center; }
.yk-obi span { padding: 4px 0; }
.yk-obi a { display: inline-flex; align-items: center; min-height: 44px; color: #F4EDE3; font-weight: 700;
  text-decoration: underline; text-decoration-color: #D2A779; text-underline-offset: .3em; }
.yk-obi a:focus-visible { outline: 3px solid #D2A779; outline-offset: 2px; border-radius: 4px; }
