/* うぇぶ女将 公開サイトの共通スタイル。デモ HP(release/jisya-hp/public/demo/tosou/)と同じ墨と白・大きな英字見出しの体系 */
:root{
  --sumi:#1c1f22; --ink:#2b2f33; --muted:#5f666b; --line:#d9dcdf; --paper:#ffffff; --mist:#f3f4f2; --band:#24282b;
  --accent:#2f6f73; --accent-soft:#e6efef;
  --warn:#9a3b1f; --warn-soft:#fbefe9;
  /* LINE の緑(#06C755)は白文字だとコントラストが足りないので、ボタンは濃い緑にする */
  --line-green:#05783a;
  --en:"Jost","Helvetica Neue",Arial,sans-serif;
  --ja:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--ja);font-size:15px;line-height:1.9;letter-spacing:.06em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{text-wrap:balance;font-weight:500}
p{text-wrap:pretty}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.wrap{max-width:1160px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.narrow{max-width:820px}
.nw{display:inline-block}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--sumi);color:#fff;padding:8px 14px;border-radius:4px;text-decoration:none}
.skip:focus{top:12px}

/* ヘッダー */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.2) blur(6px);border-bottom:1px solid rgba(0,0,0,.04)}
.hd .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.logo{display:flex;align-items:baseline;gap:8px;text-decoration:none;color:var(--sumi);white-space:nowrap}
.logo .name{font-weight:700;font-size:20px;letter-spacing:.12em}
.logo .by{font-family:var(--en);font-size:12px;letter-spacing:.06em;color:var(--muted)}
.nav{display:flex;align-items:center;gap:26px;font-size:13px}
.nav a{text-decoration:none;letter-spacing:.12em}
.nav a:not(.btn):hover{text-decoration:underline;text-underline-offset:4px}
.nav .btn{padding:9px 18px;font-size:13px}
@media (max-width:860px){.nav a:not(.btn){display:none}}
@media (max-width:380px){.logo .by{display:none}}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--sumi);color:#fff;text-decoration:none;font-family:var(--ja);font-size:15px;font-weight:500;letter-spacing:.12em;padding:15px 34px;border-radius:4px;line-height:1.4;border:0;cursor:pointer;transition:background .15s}
.btn:hover{background:#000}
.btn .arr{font-family:var(--en);font-weight:400}
.btn-ghost{background:transparent;color:var(--sumi);border:1px solid var(--sumi)}
.btn-ghost:hover{background:var(--mist)}
.btn-line{background:var(--line-green)}
.btn-line:hover{background:#04612f}
.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.link{color:var(--accent);text-underline-offset:3px}

/* 見出し: 大きな英字+小さな日本語 */
.sec{padding:128px 0}
.sec-mist{background:var(--mist)}
.h-en{font-family:var(--en);font-weight:400;font-size:clamp(48px,8vw,96px);line-height:1;letter-spacing:-.01em;color:var(--sumi);margin:0}
.h-ja{display:block;font-size:13px;color:var(--muted);letter-spacing:.24em;margin-top:14px;font-weight:500}
.ruled{border-bottom:1px solid var(--sumi);padding-bottom:28px;margin-bottom:56px}
.lead{font-size:16px;line-height:2.1;letter-spacing:.08em;margin:0 0 1.2em}
.tag{display:inline-block;font-size:11px;letter-spacing:.14em;color:var(--accent);border:1px solid var(--accent);padding:1px 8px;border-radius:2px;line-height:1.7;font-weight:500;white-space:nowrap}
.tag-soon{color:var(--muted);border-color:var(--muted)}
@media (max-width:640px){.sec{padding:88px 0}.ruled{margin-bottom:40px}}

/* フッター */
.ft{background:var(--sumi);color:#c9cdcf;padding:56px 0 64px;font-size:13px;letter-spacing:.06em;line-height:1.9}
.ft .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end}
.ft .logo{color:#fff}
.ft .logo .by{color:#aeb3b6}
.ft ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 24px}
.ft a{color:#fff;text-underline-offset:3px}
.ft .small{font-size:11px;color:#aeb3b6;margin:18px 0 0}
@media (max-width:720px){.ft .wrap{grid-template-columns:1fr}}

/* 規約・ポリシー */
.doc-head{padding:72px 0 36px;border-bottom:1px solid var(--sumi);margin-bottom:40px}
.doc-head .h-en{font-size:clamp(40px,6vw,72px)}
.doc-head h1{font-size:clamp(22px,3vw,28px);margin:18px 0 10px;letter-spacing:.12em;line-height:1.6}
.doc-date{font-size:13px;color:var(--muted);margin:0}
.notice{background:var(--mist);border-left:3px solid var(--accent);padding:14px 18px;font-size:14px;line-height:1.9;margin:0 0 40px;border-radius:0 4px 4px 0}
.toc{background:var(--mist);border-radius:6px;padding:20px 24px;margin:0 0 48px;font-size:14px}
.toc b{display:block;font-weight:500;letter-spacing:.14em;margin-bottom:6px}
.toc ol{margin:0;padding-left:1.4em;columns:2 14em;column-gap:2em}
.toc a{text-decoration:none}
.toc a:hover{text-decoration:underline}
.doc{padding-bottom:110px;font-size:15px}
.doc h2{font-size:18px;letter-spacing:.1em;margin:56px 0 14px;padding-top:12px;line-height:1.6;scroll-margin-top:84px}
.doc h3{font-size:15px;letter-spacing:.1em;margin:28px 0 8px;font-weight:700}
.doc p{margin:0 0 1em}
.doc ol,.doc ul{margin:0 0 1em;padding-left:1.6em}
.doc li{margin:.25em 0}
.doc ol.paren{list-style:none;padding-left:2.2em}
.doc ol.paren>li{position:relative}
.doc ol.paren>li>.n{position:absolute;left:-2.2em}
.info{width:100%;border-collapse:collapse;margin:8px 0 18px;font-size:14px;line-height:1.8}
.info th,.info td{text-align:left;vertical-align:top;padding:12px 10px;border-bottom:1px solid var(--line);font-weight:400}
.info thead th{border-bottom:1px solid var(--sumi);font-weight:500;color:var(--sumi);letter-spacing:.1em}
.info tbody th{width:9.5em;color:var(--muted);letter-spacing:.08em}
.info-wide tbody th{width:auto}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-scroll .info{min-width:560px}
.doc .box{background:var(--mist);border-radius:6px;padding:16px 20px;margin:0 0 1em}
.doc .end{margin-top:56px;text-align:right;color:var(--muted);font-size:14px}
@media (max-width:640px){.doc-head{padding:48px 0 28px}.info tbody th{width:7em}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* 規約の号は (1)(2) と数える */
.doc ol ol{list-style:none;counter-reset:sub;padding-left:2.4em;margin:.4em 0 .6em}
.doc ol ol>li{counter-increment:sub;position:relative}
.doc ol ol>li::before{content:"(" counter(sub) ")";position:absolute;left:-2.4em}
