@charset "utf-8";

:root{
  --f-head :"Zen Old Mincho","Yu Mincho","游明朝","Hiragino Mincho ProN",serif;
  --f-body :"Zen Kaku Gothic New","Yu Gothic","游ゴシック","Hiragino Kaku Gothic ProN",sans-serif;

  --paper  :#F7F2E7;
  --panel  :#FFFDF7;
  --ink    :#2A211A;
  --ink-2  :rgba(42,33,26,.70);
  --rule   :rgba(42,33,26,.15);
  --rule-2 :rgba(42,33,26,.34);   
  --accent :#4A2E8C;              
  --warn   :#9A2F22;              

  --r-chip:4px; --r-field:4px;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:40px; --s7:80px;
  --col:760px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }   
html{ font-size:16px; }
body.bs{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--f-body);
  font-size:16px; line-height:1.9; letter-spacing:.05em;
  font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.bs a{ color:inherit; }
.bs p{ margin:0; }
.bs h1,.bs h2,.bs h3{ margin:0; font-weight:600; }

.bs-bar{
  position:sticky; top:0; z-index:20; height:60px;
  display:flex; align-items:center; justify-content:space-between; gap:var(--s4);
  padding:0 var(--s4);
  background:rgba(247,242,231,.94);
  border-bottom:1px solid var(--rule);
}
.bs-brand{ font-family:var(--f-head); font-weight:600; font-size:18px; letter-spacing:.1em; line-height:1; text-decoration:none; white-space:nowrap; }
.bs-back{ font-size:14px; letter-spacing:.08em; color:var(--ink-2); text-decoration:none; white-space:nowrap; }
.bs-back:hover,.bs-brand:hover{ color:var(--accent); }

.bs-main{ width:100%; max-width:calc(var(--col) + 2 * var(--s4)); margin-inline:auto; padding:var(--s6) var(--s4) var(--s7); }

.bs-h1{ font-family:var(--f-head); font-size:clamp(26px,6.4vw,34px); line-height:1.35; letter-spacing:.06em; }

.bs-list{ list-style:none; margin:var(--s5) 0 0; padding:0; border-top:1px solid var(--rule-2); }
.bs-item{ padding:var(--s5) 0; border-bottom:1px solid var(--rule); }

.bs-pic{ display:block; margin-bottom:var(--s4); border-radius:6px; overflow:hidden; background:#1E1517; }
.bs-pic img,.bs-hero img{ display:block; width:100%; height:auto; aspect-ratio:16 / 9; }
.bs-pic:hover img{ opacity:.92; }
.bs-hero{ margin:0 0 var(--s5); border-radius:6px; overflow:hidden; background:#1E1517; }
.bs-kind{ font-size:12.5px; letter-spacing:.16em; line-height:1.6; color:var(--ink-2); }
.bs-item-title{ margin-top:var(--s1); font-family:var(--f-head); font-size:19px; line-height:1.6; letter-spacing:.05em; }
.bs-item-title a{ text-decoration:none; }
.bs-item-title a:hover{ color:var(--accent); }
.bs-kai{ list-style:none; margin:var(--s3) 0 0; padding:0; font-size:14px; line-height:1.75; letter-spacing:.08em; }
.bs-kai li{ display:flex; flex-wrap:wrap; gap:0 var(--s3); }
.bs-soon{ color:var(--ink-2); letter-spacing:.12em; }
.bs-left{ color:var(--accent); }
.bs-full{ color:var(--ink-2); }
.bs-item-foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--s3); margin-top:var(--s4); }
.bs-state{ font-size:13px; letter-spacing:.1em; line-height:1.6; color:var(--ink-2); }
.bs-state.is-open{ color:var(--accent); }
.bs-none{ margin-top:var(--s5); font-size:15px; color:var(--ink-2); }

.bs-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:10px var(--s5);
  font:inherit; font-size:14px; letter-spacing:.12em; line-height:1.2;
  color:var(--accent); background:transparent;
  border:1px solid var(--accent); border-radius:var(--r-chip);
  text-decoration:none; cursor:pointer;
  transition:background .2s var(--ease), color .2s var(--ease);
}
.bs-btn:hover{ background:var(--accent); color:var(--panel); }
.bs-btn.fill{ background:var(--accent); color:var(--panel); }
.bs-btn.fill:hover{ background:var(--ink); border-color:var(--ink); }
.bs-btn:disabled{ opacity:.55; cursor:default; }

.bs-head{ padding-bottom:var(--s5); border-bottom:1px solid var(--rule); }
.bs-head .bs-h1{ margin-top:var(--s1); }
.bs-facts{ margin:var(--s4) 0 0; display:grid; gap:var(--s2); font-size:14px; line-height:1.75; letter-spacing:.08em; }
.bs-facts > div{ display:grid; grid-template-columns:5.5em minmax(0,1fr); gap:var(--s3); }
.bs-facts dt{ color:var(--ink-2); }
.bs-facts dd{ margin:0; }
.bs-facts .bs-kai{ margin:0; }
.bs-body{ margin-top:var(--s5); font-size:15px; line-height:2.0; }
.bs-body p + p{ margin-top:1em; }
.bs-lead{ font-family:var(--f-head); font-size:17px; line-height:2.0; letter-spacing:.06em; }
.bs-body h2{ margin:var(--s6) 0 0; font-family:var(--f-head); font-size:19px; line-height:1.6; letter-spacing:.06em; }
.bs-body ul{ margin:var(--s3) 0 0; padding-left:1.3em; }
.bs-body li + li{ margin-top:var(--s2); }
.bs-ph{ color:var(--ink-2); font-size:14px; letter-spacing:.06em; }   

.bs-apply{ margin-top:var(--s6); padding-top:var(--s5); border-top:1px solid var(--rule-2); }
.bs-h2{ font-family:var(--f-head); font-size:22px; line-height:1.45; letter-spacing:.06em; }
.bs-msg{ margin-top:var(--s4); font-size:15px; }
.bs-form{ margin-top:var(--s5); }
.bs-q{ margin:0 0 var(--s5); padding:0; border:0; min-width:0; }
.bs-fs{ margin:0; padding:0; border:0; min-width:0; }
.bs-q legend{ padding:0; }
.bs-label{ display:block; font-size:15px; font-weight:700; line-height:1.7; letter-spacing:.05em; }
.bs-req{ margin-left:var(--s2); font-size:12px; font-weight:400; letter-spacing:.1em; color:var(--warn); white-space:nowrap; }
.bs-note{ margin-bottom:var(--s3); font-size:14px; line-height:1.9; }
.bs-input,.bs-text{
  display:block; width:100%; margin-top:var(--s2);
  padding:10px var(--s3);
  font:inherit; font-size:16px; line-height:1.6; letter-spacing:.03em; color:var(--ink);
  background:var(--panel); border:1px solid var(--rule-2); border-radius:var(--r-field);
}
.bs-text{ min-height:7.5em; resize:vertical; }
.bs-input:focus,.bs-text:focus{ outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }
.bs-opts{ display:grid; gap:var(--s1); margin-top:var(--s2); }
.bs-opt{ display:flex; align-items:flex-start; gap:var(--s3); padding:var(--s2) 0; font-size:15px; line-height:1.6; cursor:pointer; }
.bs-opt input{ flex:none; width:20px; height:20px; margin:2px 0 0; accent-color:var(--accent); }
.bs-opt.is-off{ color:var(--ink-2); cursor:default; }
.bs-opt small{ font-size:13px; letter-spacing:.08em; }
.bs-err{ margin-top:var(--s2); font-size:14px; line-height:1.7; color:var(--warn); }
.bs-q.is-bad .bs-input,.bs-q.is-bad .bs-text{ border-color:var(--warn); }
.bs-hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.bs-send{ margin-top:var(--s3); display:flex; flex-direction:column; align-items:flex-start; gap:var(--s3); }
.bs-send .bs-btn{ min-width:12em; }

.bs-done{ margin-top:var(--s5); }
.bs-done .bs-msg{ margin-top:0; }
.bs-done .bs-msg + .bs-msg{ margin-top:var(--s3); }
.bs-num{ margin-top:var(--s4); font-size:15px; letter-spacing:.1em; }
.bs-done .bs-btn{ margin-top:var(--s5); }
.bs-mihon{ margin-top:var(--s3); font-size:13px; color:var(--ink-2); }

@media (min-width:820px){
  .bs-bar{ height:68px; padding:0 var(--s6); }
  .bs-brand{ font-size:20px; }
  .bs-main{ padding-top:var(--s7); }
  .bs-item-title{ font-size:21px; }
}
