/* のきあかり：料金表と同じ配色（藍・山吹）。余白は8pxの倍数 */
:root {
  --paper: #f7f6f2; --sheet: #ffffff; --ink: #1f2a31; --sub: #5c676e; --line: #e2e0d9;
  --ai: #24557f; --ai-tint: #e8eff5; --kin: #c8901a; --kin-deep: #9a6c0f; --kin-tint: #fbf3e0;
  --night: #1b2429; --night-ink: #e9ecee; --night-sub: #a9b3b8;
  --display: "Zen Old Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --body: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root { --paper: #12181c; --sheet: #192126; --ink: #e6eaec; --sub: #9aa5ab; --line: #2a343a;
    --ai: #8db9e2; --ai-tint: #1e2d39; --kin: #e5b450; --kin-deep: #e5b450; --kin-tint: #2e2617;
    --night: #0d1215; color-scheme: dark; }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 72px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.9; letter-spacing: .02em; -webkit-text-size-adjust: 100%; line-break: strict; }
a { color: var(--ai); }
h1, h2, h3 { font-family: var(--display); line-height: 1.5; margin: 0; font-feature-settings: "palt"; letter-spacing: .04em; }
p { margin: 0; }
.wrap { max-width: 1080px; margin: 0 auto; padding: 0 20px; }
@media (min-width: 768px) { .wrap { padding: 0 40px; } }
.sp { display: inline; } .pc { display: none; }
@media (min-width: 768px) { .sp { display: none; } .pc { display: inline; } }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 16px; top: 16px; z-index: 20; background: var(--sheet); padding: 8px 16px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ヘッダー */
.top { position: sticky; top: 0; z-index: 10; background: color-mix(in srgb, var(--paper) 90%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.top__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 64px; }
.logo { display: flex; align-items: center; gap: 10px; font-family: var(--display); font-size: 20px; color: var(--ink); text-decoration: none; letter-spacing: .12em; white-space: nowrap; }
.mark { width: 30px; height: 30px; flex: none; color: currentColor; }

/* 改行：見出しは意味のまとまり（.nw）ごとに折り返す。本文は文節で折り返す（対応ブラウザのみ） */
.nw { display: inline-block; }
h1, h2, h3, summary, dt, .label, .plan__for { word-break: auto-phrase; text-wrap: balance; }
p, dd, li { text-wrap: pretty; }
.nav { display: flex; align-items: center; gap: 20px; font-size: 14px; }
.nav a { color: var(--ink); text-decoration: none; white-space: nowrap; }
.nav a:not(.nav__cta) { display: none; }
@media (min-width: 640px) { .nav a:not(.nav__cta) { display: inline; } }
.nav__cta { padding: 6px 16px; border-radius: 999px; background: var(--ink); color: var(--paper) !important; font-weight: 500; }

/* ボタン */
.cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 28px; border-radius: 999px; font-weight: 700; text-decoration: none; transition: transform .15s, box-shadow .15s; }
.btn:hover { transform: translateY(-1px); }
.btn--main { background: var(--ai); color: var(--sheet); box-shadow: 0 8px 20px color-mix(in srgb, var(--ai) 28%, transparent); }
.btn--ghost { border: 1px solid var(--line); background: var(--sheet); color: var(--ink); }
.btn--kin { background: var(--kin); color: #1f1a10; }
.btn--line { border: 1px solid rgba(255,255,255,.35); color: #fff; }
@media (max-width: 479px) { .cta .btn { width: 100%; } }

/* メインビジュアル */
.hero { position: relative; padding: 56px 0 72px; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: -20% -30% auto auto; width: 720px; height: 720px; background: radial-gradient(circle, var(--kin-tint), transparent 62%); pointer-events: none; }
@media (min-width: 900px) { .hero { padding: 96px 0 112px; } }
.hero__in { position: relative; display: grid; gap: 56px; align-items: center; }
@media (min-width: 900px) { .hero__in { grid-template-columns: 1fr 300px; gap: 64px; } }
.eyebrow { font-size: 13px; letter-spacing: .18em; color: var(--sub); }
.hero h1 { text-wrap: wrap; letter-spacing: 0; font-size: clamp(23px, 6.6vw, 46px); margin: 20px 0 28px; }
.lead { color: var(--sub); max-width: 34em; font-size: 16px; }
@media (min-width: 768px) { .lead { font-size: 17px; } }
.hero__note { margin-top: 16px; font-size: 13px; color: var(--sub); }

/* 架空のお店の画面イメージ */
.phone { justify-self: center; margin: 0; width: 272px; }
.phone__screen { border-radius: 40px; border: 12px solid #1f2a31; background: #fbfaf6; color: #1f2a31; padding: 28px 16px 22px; font-size: 12px; line-height: 1.6; box-shadow: 0 32px 64px rgba(31,42,49,.22); transform: rotate(2deg); }
.phone__screen p { margin: 0; }
.phone figcaption { margin-top: 20px; text-align: center; font-size: 11px; color: var(--sub); }
.phone__shop { font-family: var(--display); font-size: 18px; text-align: center; }
.phone__open { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 8px auto 16px !important; width: fit-content; padding: 4px 16px; border-radius: 999px; background: #e7f3ea; color: #23633a; font-weight: 700; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: #2f9a55; box-shadow: 0 0 0 4px rgba(47,154,85,.2); }
.phone__img { height: 120px; border-radius: 16px; margin-bottom: 12px; background: linear-gradient(135deg, #ecdcbf, #c8901a 58%, #6f4813); }
.phone__row { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #e3e1da; }
.phone__row b { color: #5c676e; font-weight: 500; }
.phone__btn { margin-top: 14px !important; padding: 8px; border-radius: 999px; background: #24557f; color: #fff; text-align: center; font-weight: 700; }
.phone__btn--sub { margin-top: 8px !important; background: #fff; color: #24557f; border: 1px solid #24557f; }

/* セクション共通 */
.sec { padding: 80px 0; }
@media (min-width: 900px) { .sec { padding: 120px 0; } }
.sec--band { background: var(--sheet); border-block: 1px solid var(--line); }
.label { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 700; letter-spacing: .14em; color: var(--kin-deep); margin-bottom: 16px; }
.label::before { content: ""; width: 24px; height: 1px; background: currentColor; }
.sec h2 { font-size: clamp(24px, 5.6vw, 36px); margin-bottom: 40px; }
.sec__lead { color: var(--sub); margin: -16px 0 40px; }

/* 悩み */
.scenes { display: grid; gap: 16px; }
@media (min-width: 900px) { .scenes { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.scene { padding: 32px 28px; background: var(--sheet); border: 1px solid var(--line); border-radius: 20px; }
.scene h3 { font-size: 19px; margin-bottom: 16px; color: var(--ink); }
.scene p { color: var(--sub); font-size: 15px; }
.bridge { margin-top: 48px; max-width: 40em; font-size: 17px; line-height: 2; padding-left: 24px; border-left: 3px solid var(--kin); }

/* やり方 */
.ways { display: grid; gap: 40px; counter-reset: w; }
@media (min-width: 900px) { .ways { grid-template-columns: repeat(3, 1fr); gap: 48px; } }
.way__num { font-family: var(--display); font-size: 44px; line-height: 1; color: var(--kin); margin-bottom: 20px; }
.way h3 { font-size: 21px; margin-bottom: 16px; }
.way p:last-child { color: var(--sub); font-size: 15px; }

/* できること */
.feature { display: grid; gap: 48px; }
@media (min-width: 900px) { .feature { grid-template-columns: 1fr 1.2fr; gap: 80px; align-items: start; } }
.feature h2 { margin-bottom: 24px; font-size: clamp(24px, 5.6vw, 32px); }
.feature__lead { color: var(--sub); }
.facts { margin: 0; display: grid; }
.facts div { padding: 24px 0; border-top: 1px solid var(--line); }
.facts div:last-child { border-bottom: 1px solid var(--line); }
.facts dt { font-weight: 700; font-size: 17px; margin-bottom: 6px; display: flex; align-items: center; gap: 10px; }
.facts dt::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--kin); }
.facts dd { margin: 0; color: var(--sub); font-size: 15px; }

/* 料金 */
.plans { display: grid; gap: 20px; align-items: start; }
@media (min-width: 900px) { .plans { grid-template-columns: repeat(3, 1fr); } }
.plan { position: relative; padding: 32px 28px; background: var(--paper); border: 1px solid var(--line); border-radius: 20px; }
.plan--pick { background: var(--sheet); border: 2px solid var(--ai); box-shadow: 0 20px 40px color-mix(in srgb, var(--ai) 12%, transparent); }
@media (min-width: 900px) { .plan--pick { transform: translateY(-12px); } }
.plan__tag { position: absolute; top: -14px; left: 28px; padding: 2px 14px; border-radius: 999px; background: var(--kin); color: #1f1a10; font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.plan h3 { font-size: 22px; }
.plan__for { margin: 8px 0 24px; font-size: 13px; color: var(--sub); line-height: 1.7; min-height: 3.4em; }
.plan__price, .plan__mo { display: flex; align-items: baseline; gap: 6px; font-size: 14px; }
.plan__price span, .plan__mo span { width: 4.5em; color: var(--sub); font-size: 13px; }
.plan__price b { font-family: var(--display); font-size: 34px; letter-spacing: .02em; }
.plan__mo { margin-top: 4px; padding-bottom: 24px; border-bottom: 1px solid var(--line); color: var(--ai); }
.plan__mo b { font-size: 22px; }
.plan ul { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 10px; font-size: 14px; line-height: 1.6; }
.plan li { position: relative; padding-left: 22px; }
.plan li::before { content: ""; position: absolute; left: 2px; top: .45em; width: 9px; height: 5px; border-left: 2px solid var(--ai); border-bottom: 2px solid var(--ai); transform: rotate(-45deg); }
.price-notes { margin-top: 40px; display: grid; gap: 12px; font-size: 14px; color: var(--sub); }
.price-notes b { color: var(--ink); }
.price-notes__link { font-size: 13px; }

/* 流れ */
.flow { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: f; }
@media (min-width: 900px) { .flow { grid-template-columns: repeat(4, 1fr); gap: 24px; } }
.flow li { counter-increment: f; position: relative; padding: 0 0 32px 56px; }
.flow li::before { content: counter(f); position: absolute; left: 0; top: 0; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--paper); font-family: var(--display); font-size: 16px; }
.flow li::after { content: ""; position: absolute; left: 17px; top: 44px; bottom: 8px; width: 2px; background: var(--line); }
.flow li:last-child::after { display: none; }
@media (min-width: 900px) {
  .flow li { padding: 56px 0 0; }
  .flow li::after { left: 48px; right: -16px; top: 17px; bottom: auto; width: auto; height: 2px; }
}
.flow b { display: block; font-size: 17px; margin-bottom: 6px; }
.flow span { display: block; color: var(--sub); font-size: 14px; line-height: 1.8; }

/* よくある質問 */
.faq { display: grid; gap: 32px; }
@media (min-width: 900px) { .faq { grid-template-columns: 1fr 2fr; gap: 80px; } }
.qa details { border-top: 1px solid var(--line); }
.qa details:last-child { border-bottom: 1px solid var(--line); }
.qa summary { list-style: none; cursor: pointer; padding: 22px 40px 22px 0; position: relative; font-weight: 700; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary::after { content: "+"; position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-size: 22px; font-weight: 400; color: var(--kin); }
.qa details[open] summary::after { content: "−"; }
.qa details p { padding: 0 0 24px; color: var(--sub); font-size: 15px; }

/* 屋号について */
.about__in { display: grid; gap: 32px; align-items: start; max-width: 860px; }
@media (min-width: 768px) { .about__in { grid-template-columns: 96px 1fr; gap: 48px; } }
.about__mark { width: 88px; height: 88px; color: var(--ink); filter: drop-shadow(0 0 24px color-mix(in srgb, var(--kin) 45%, transparent)); }
.about__text { font-family: var(--display); font-size: clamp(17px, 4.2vw, 21px); line-height: 2.1; }
.about__sign { margin-top: 24px; color: var(--sub); font-size: 14px; letter-spacing: .1em; }

/* 行動喚起 */
.cta-band { background: var(--night); color: var(--night-ink); position: relative; overflow: hidden; }
.cta-band::before { content: ""; position: absolute; right: -200px; top: -200px; width: 600px; height: 600px; background: radial-gradient(circle, rgba(200,144,26,.28), transparent 62%); pointer-events: none; }
.cta-band .wrap { position: relative; }
.cta-band .label { color: #e5b450; }
.cta-band h2 { color: #fff; }
.cta-band__lead { max-width: 36em; color: var(--night-sub); }
.cta-band a { color: #e5b450; }
.cta-band .btn--kin { color: #1f1a10; }
.cta-band .btn--line { color: #fff; }
.contact { display: grid; grid-template-columns: auto 1fr; gap: 10px 24px; margin: 48px 0 0; padding-top: 32px; border-top: 1px solid rgba(255,255,255,.14); font-size: 14px; }
.contact dt { color: var(--night-sub); }
.contact dd { margin: 0; }

/* フッター */
.foot { background: var(--night); color: var(--night-sub); border-top: 1px solid rgba(255,255,255,.08); font-size: 13px; }
.foot__in { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 32px; padding-block: 32px; }
.foot a { color: var(--night-sub); }
.logo--foot { color: var(--night-ink); font-size: 17px; }
.foot__copy { margin-left: auto; }
