
:root{
  color-scheme:light;
  --paper:#F2F0EC; --ink:#14110E; --gray:#8C8782; --gray2:#C9C4BD; --line:#D6D1C9; --or:#F26B1D; --ordeep:#D9550A; --ort:#B04508; --white:#FBF9F6; --night2:#2A2622;
  --kami:var(--paper); --sumi:var(--ink); --hai:#5E5852; --kei:var(--line); --ai:var(--or);
  --f-big:"Archivo Black","Arial Black",sans-serif;
  --f-en:"Archivo","Arial",sans-serif;
  --f-head:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;
  --f-body:"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
  --e-f:cubic-bezier(.16,1,.3,1); --e-s:cubic-bezier(.4,0,.2,1); --t-press:160ms; --t-ui:240ms;
  --hd:72px; --g:max(48px,env(safe-area-inset-left,0px)); --gr:max(48px,env(safe-area-inset-right,0px));
}
@media (max-width:899px){:root{--hd:60px;--g:max(20px,env(safe-area-inset-left,0px));--gr:max(20px,env(safe-area-inset-right,0px))}}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
*{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-family:var(--f-body);font-size:16px;line-height:2;letter-spacing:.04em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
@media (max-width:899px){body{font-size:15px;padding-bottom:76px}}
h1,h2,h3{margin:0;font-family:var(--f-head);font-weight:600;letter-spacing:.06em;font-feature-settings:"palt";word-break:auto-phrase}
p{margin:0;text-wrap:pretty}
p,li,dd,dt,td,th,summary,.tl,.txt,.lead,.note,.d,b{word-break:auto-phrase;line-break:strict}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--or);outline-offset:3px}
.in{max-width:1400px;margin:0 auto;padding-left:var(--g);padding-right:var(--gr)}
.small{font-size:13.5px;line-height:1.9}
.muted{color:var(--hai)}
.num{font-variant-numeric:tabular-nums}
.nw{white-space:nowrap}
.pr{display:inline-block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.en{font-family:var(--f-en);font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:12px}
.big{font-family:var(--f-big);font-weight:400;line-height:.82;letter-spacing:-.01em;text-transform:uppercase;white-space:nowrap}
.vt{writing-mode:vertical-rl;font-family:var(--f-head);font-weight:500;letter-spacing:.32em;line-height:1.7}
.vc{display:inline-block}
.gl{display:inline-block}
.mask{overflow:hidden;display:block}
.lnm{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.lnm>.lt{display:block}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:0 32px;background:var(--ink);color:var(--white);text-decoration:none;font-weight:700;letter-spacing:.12em;font-size:15px;transition:background var(--t-ui),transform var(--t-press) var(--e-f)}
.btn:active{transform:scale(.97)}
.btn.or{background:var(--or);color:var(--ink)}
@media (hover:hover) and (pointer:fine){.btn:hover{background:var(--or);color:var(--ink)}.btn.or:hover{background:var(--ink);color:var(--white)}}
.tl{text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:2px;font-weight:500;letter-spacing:.08em;transition:color var(--t-ui)}
@media (hover:hover) and (pointer:fine){.tl:hover{color:var(--ort)}.dark .tl:hover,.calcwrap .tl:hover{color:var(--or)}}
.acts{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
@media (max-width:899px){.acts .btn{width:100%}}

/* header */
.hd{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:transform .3s var(--e-f),background var(--t-ui)}
.hd.hide{transform:translateY(-100%)}
.hd.solid{background:var(--paper);box-shadow:0 1px 0 var(--ink)}
.hd .row{display:flex;align-items:center;gap:28px;height:var(--hd);padding-left:var(--g);padding-right:var(--gr)}
.logo img{height:26px;width:auto}
@media (max-width:899px){.logo img{height:21px}}
/* 2026-11-02 士道館マークをヘッダーにワンポイントで（ユーザー）。EMBLEM = False で消える */
.hd .logo{display:inline-flex;align-items:center;gap:12px}
.logo img.mark{height:48px;width:48px;flex:none}
@media (max-width:899px){.hd .logo{gap:8px}.logo img.mark{height:40px;width:40px}}
.gnav{display:flex;gap:20px;margin-left:auto;white-space:nowrap;font-family:var(--f-en);font-weight:800;font-size:12px;letter-spacing:.16em}
.gnav a{text-decoration:none;position:relative;padding:6px 0}
.gnav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--or);transform:scaleX(0);transform-origin:right;transition:transform var(--t-ui) var(--e-f)}
@media (hover:hover) and (pointer:fine){.gnav a:hover::after{transform:scaleX(1);transform-origin:left}}
.hd .btn{min-height:44px;padding:0 20px;font-size:13px}
.menu{display:none;margin-left:auto;border:2px solid var(--ink);background:transparent;color:var(--ink);font-family:var(--f-en);font-weight:800;font-size:12px;letter-spacing:.16em;padding:7px 14px;cursor:pointer}
@media (max-width:1180px){.gnav{display:none}.menu{display:inline-block}.hd .btn{display:none}}
.prog{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--or);transform-origin:0 50%;transform:scaleX(0)}
.spnav{position:fixed;inset:calc(var(--hd) + env(safe-area-inset-top,0px)) 0 0;z-index:45;background:var(--ink);color:var(--white);overflow:auto;padding-block:24px 120px}
.spnav a{display:flex;justify-content:space-between;align-items:baseline;text-decoration:none;font-family:var(--f-head);font-size:19px;padding:14px 0;border-bottom:1px solid #3A342E}
.spnav a .en{color:var(--or)}
.spnav .small{margin-top:24px;color:var(--gray2)}

/* hero */
.hero{position:relative;height:100svh;min-height:680px;overflow:hidden;background:var(--paper)}
.hvis{position:absolute;inset:0;overflow:hidden}
.hero .giant{position:absolute;left:-1.5vw;bottom:7vh;font-size:31vw;color:var(--gray);z-index:2}
.hero .giant .mask{display:inline-block;vertical-align:bottom}
.hero .tops{position:absolute;right:var(--gr);top:calc(var(--hd) + 4vh);text-align:right;font-size:clamp(44px,6.4vw,104px);line-height:.9;color:var(--ink);z-index:4}
.hero .tops .mask{display:block}
.hero .fig{position:absolute;left:30vw;top:calc(var(--hd) + 2vh);bottom:0;width:36vw;z-index:3;overflow:hidden;clip-path:inset(0% 0% 0% 0%)}
.hero .fig img{width:100%;height:112%;margin-top:-6%;object-fit:cover;object-position:50% 40%;max-width:none}
.hero h1{position:absolute;left:var(--g);top:calc(var(--hd) + 5vh);z-index:4;font-size:clamp(30px,3.3vw,50px);font-weight:600;color:var(--ink)}
.hero .jpsub{position:absolute;left:calc(var(--g) + .3vw);bottom:3.2vh;z-index:3;font-family:var(--f-head);font-weight:600;font-size:clamp(13px,1.15vw,17px);letter-spacing:.42em}
.hero-cta{position:absolute;right:var(--gr);bottom:max(6vh,72px);z-index:4;width:min(400px,32vw);background:var(--paper);padding:24px 24px 20px;border-top:3px solid var(--or)}
.hero-cta p{font-size:14.5px;line-height:2}
.hero-cta .acts{margin-top:20px;flex-direction:column;align-items:stretch;gap:12px}
.hero-cta .tel{display:block;text-align:center;font-weight:700;letter-spacing:.1em;padding:10px 0;border:2px solid var(--ink);text-decoration:none}
.hero-cta .note{margin-top:12px;font-size:12.5px;color:var(--hai)}
.hero .stamp{position:absolute;right:var(--gr);top:calc(var(--hd) + 4vh + clamp(44px,6.4vw,104px)*1.9);z-index:3;color:var(--ort);margin-top:14px}
@media (max-width:899px){
  .hero{height:auto;min-height:0}
  .hvis{position:relative;height:86svh;min-height:600px}
  .hero .giant{font-size:40vw;bottom:5vh;left:-3vw}
  .hero .tops{font-size:10.5vw;top:calc(var(--hd) + 2vh)}
  .hero .stamp{display:none}
  .hero .fig{left:auto;right:0;width:62vw;top:calc(var(--hd) + 2vh + 23vw);bottom:15svh}
  .hero h1{font-size:24px;top:calc(var(--hd) + 2vh + 24vw)}
  .hero .jpsub{font-size:11.5px;letter-spacing:.3em;bottom:2vh}
  .hero-cta{position:static;width:auto;padding:28px var(--gr) 8px var(--g);background:var(--paper)}
}

/* info band */
.info{background:var(--ink);color:var(--white)}
.info .box{display:grid;grid-template-columns:repeat(4,1fr);margin:0}
.info .it{padding:26px 24px 26px 0;border-right:1px solid #3A342E;margin-right:24px}
.info .it:last-child{border-right:none;margin-right:0}
.info dt{color:var(--or)}
.info dd{margin:6px 0 0;font-family:var(--f-head);font-weight:600;font-size:clamp(16px,1.35vw,19px);line-height:1.6}
@media (max-width:899px){.info .box{grid-template-columns:1fr 1fr}.info .it{padding:18px 10px 18px 0;margin-right:10px}.info .it:nth-child(2n){border-right:none;margin-right:0}.info .it:nth-child(-n+2){border-bottom:1px solid #3A342E}}

/* chapter header */
.ch{position:relative;padding-top:160px;overflow:hidden}
.ch-head{position:relative;display:flex;align-items:flex-end;gap:32px;flex-wrap:wrap}
.ch-head .bg{font-size:clamp(84px,15vw,240px);color:var(--gray2);position:relative;z-index:0}
.ch-head .lab{position:relative;z-index:1;padding-bottom:1.2vw}
.ch-head h2{font-size:clamp(26px,3vw,42px);line-height:1.45;margin-top:10px}
.ch-head .en{color:var(--ort)}
@media (max-width:899px){.ch{padding-top:110px}.ch-head{gap:6px}.ch-head .bg{font-size:24vw}.ch-head .lab{padding-bottom:0}}

/* motto covers */
.motto-intro{padding-top:150px;padding-bottom:90px}
.motto-intro .stmt{font-family:var(--f-head);font-weight:600;font-size:clamp(30px,4vw,60px);line-height:1.6;letter-spacing:.08em;margin-top:22px}
.motto-intro .mbody{margin-top:32px;display:grid;gap:14px;max-width:42em;font-size:clamp(15px,1.15vw,17px);line-height:2.1}
.covers{position:relative}
.cv{position:relative;height:100svh;min-height:640px;overflow:hidden;isolation:isolate}
.cv1{z-index:1}.cv2{z-index:2}.cv3{z-index:3}
.cv .num{position:absolute;bottom:-4vh;font-size:44vw;z-index:1}
.cv .ttl{position:absolute;top:calc(var(--hd) + 3vh);font-size:clamp(56px,8vw,132px);z-index:3}
.cv .vt{position:absolute;top:calc(var(--hd) + 4vh);font-size:clamp(44px,6vw,96px);font-weight:600;letter-spacing:.24em;z-index:3}
.cv .txt{position:absolute;bottom:7vh;width:min(420px,34vw);z-index:3;font-size:15px;line-height:2.1}
.cv .fig{position:absolute;bottom:0;z-index:2}
.cv .fig img{height:100%;width:auto;max-width:none}
.cv .art{position:absolute;inset:0;z-index:0}
.cv .art img{width:100%;height:100%;object-fit:cover}
.cv2 .art::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,17,14,.84) 0%,rgba(20,17,14,.5) 19%,rgba(20,17,14,0) 36%)}
.cv1 .fig.ph1{left:14vw;top:calc(var(--hd) + 9vh);bottom:auto;width:55vw;height:64vh;clip-path:polygon(5% 0%,100% 0%,95% 100%,0% 100%)}
.cv1 .ph1 img{width:100%;height:100%;object-fit:cover}
.cv1 .txt{background:var(--paper);padding:18px 22px;bottom:5vh}
.cv3 .txt{background:var(--or);padding:18px 22px}
.cv1{background:var(--paper);color:var(--ink)}
.cv1 .num{left:auto;right:-1vw;color:var(--gray2)}
.cv1 .ttl{right:var(--gr)}
.cv1 .vt{right:calc(var(--gr) + 2vw);top:calc(var(--hd) + 16vh + 4vw)}

.cv1 .txt{left:var(--g)}
.cv2{background:var(--ink);color:var(--white)}

.cv2 .num{right:-2vw;bottom:-12vh;color:var(--white);opacity:.2}
.cv2 .ttl{left:var(--g);color:var(--or)}
.cv2 .vt{left:calc(var(--g) + 1vw);top:calc(var(--hd) + 16vh + 4vw)}
.cv2 .txt{right:var(--gr);background:var(--ink);padding:22px 26px;bottom:9vh}
.cv3{background:var(--or);color:var(--ink)}
.cv3 .num{right:-2vw;color:var(--ink);opacity:.92}
.cv3 .ttl{left:var(--g);color:var(--white);text-shadow:0 2px 24px rgba(20,17,14,.35)}
.cv3 .vt{right:calc(var(--gr) + 1vw);color:var(--white);text-shadow:0 0 18px rgba(20,17,14,.55),0 1px 2px rgba(20,17,14,.6)}

.cv3 .txt{left:var(--g)}
.covers.gs{height:100vh}
.covers.gs .cv{position:absolute;inset:0;height:auto;min-height:0}
/* 2026-11-02 写真そのまま（.cvp）：文字と数字を人の顔にかけない */
.cv2.cvp .art::after{background:radial-gradient(52% 46% at 0% 0%,rgba(20,17,14,.72) 0%,rgba(20,17,14,0) 100%)}
.cv2.cvp .ttl{color:var(--white)}
@media (min-width:900px){.cv2.cvp .vt{font-size:clamp(36px,4.2vw,68px)}}
.cv2.cvp .vt{left:auto;right:calc(var(--gr) + 1vw);top:calc(var(--hd) + 3vh);color:var(--ink)}
.cv2.cvp .txt{right:calc(var(--gr) + 11vw);top:calc(var(--hd) + 5vh);bottom:auto}
.cv2.cvp .num{font-size:15vw;right:-1vw;bottom:-4vh;color:var(--or);opacity:1}
.cv3.cvp .ttl,.cv3.cvp .vt{color:var(--ink);text-shadow:none}
.cv3.cvp .vt{right:calc(var(--gr) + .5vw)}
.cv2.cvp .vt .vc,.cv3.cvp .vt .vc{background:var(--paper);display:inline-block;padding:6px 10px}
.cv3.cvp .num{font-size:28vw;right:-1vw;bottom:-5vh;color:var(--or);opacity:1}
.cdots{display:none}
.covers.gs .cdots{display:flex;position:absolute;left:50%;bottom:22px;transform:translateX(-50%);gap:8px;z-index:6;list-style:none;margin:0;padding:0}
.cdots li{width:34px;height:3px;background:rgba(127,120,112,.45)}
.cdots li.on{background:var(--or)}
@media (max-width:899px){
  .cv{height:auto;min-height:100svh;padding:calc(var(--hd) + 20px) var(--gr) 32px var(--g);display:flex;flex-direction:column}
  .cv .ttl{position:relative;top:auto;left:auto;right:auto;font-size:17vw}
  .cv .vt{position:absolute;top:calc(var(--hd) + 26vw);font-size:13vw}
  .cv1 .vt,.cv3 .vt{right:var(--gr)}.cv2 .vt{left:auto;right:var(--gr)}
  .cv .fig{position:relative;left:auto;height:62svh;margin:8px auto 0;align-self:flex-start}
  .cv1 .fig.ph1{position:relative;left:auto;top:auto;width:100%;height:44svh;margin-top:16px}
  .cv1 .txt,.cv3 .txt{padding:16px}
  .cv1 .vt{background:var(--paper);padding:12px 8px;z-index:4}
  .cv .vt{z-index:4}
  .cv2 .num{opacity:.32}
  .cv2 .art::after{background:linear-gradient(180deg,rgba(20,17,14,.82) 0%,rgba(20,17,14,0) 30%,rgba(20,17,14,0) 62%,rgba(20,17,14,.55) 100%)}
  .cv .num{font-size:70vw;bottom:auto;top:30vh}
  .cv .txt{position:relative;bottom:auto;left:auto;right:auto;width:auto;margin-top:auto;padding:18px 0 0}
  .cv2 .txt{padding:16px 18px;margin-top:auto;background:rgba(20,17,14,.9)}
  .cv2 .art img{object-position:50% 40%}
  .cv2.cvp .art::after{background:linear-gradient(180deg,rgba(20,17,14,.62) 0%,rgba(20,17,14,0) 26%,rgba(20,17,14,0) 66%,rgba(20,17,14,.5) 100%)}
  .cv2.cvp .vt{right:var(--gr);top:calc(var(--hd) + 8px);font-size:10vw}
  .cv3.cvp .vt{font-size:11vw}
  .cv2.cvp .txt{right:auto;top:auto;bottom:auto}
  .cv2.cvp .art img{object-position:32% 50%}
  .cv3.cvp .art img{object-position:62% 50%}
  .cv2.cvp .num,.cv3.cvp .num{font-size:34vw;top:auto;bottom:-2vh;right:-1vw}
}

/* dojo gallery */
.dojo{background:var(--white);margin-top:0}
.hwrap{position:relative;display:grid;grid-template-columns:minmax(380px,36%) 1fr;align-items:center;min-height:100vh}
.dintro{position:relative;z-index:2;min-width:0;overflow:hidden;background:var(--white);align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--hd) + 40px) 56px 56px var(--g)}
.dintro .bgw{font-size:clamp(48px,5vw,92px);color:var(--gray2);margin-bottom:2px}
.dintro h2{font-size:clamp(26px,2.8vw,40px)}
.dintro .lead{margin-top:18px}
.dpts{list-style:none;margin:28px 0 0;padding:0;border-top:2px solid var(--ink)}
.dpts li{padding:12px 0;border-bottom:1px solid var(--line)}
.dpts b{font-family:var(--f-head);font-weight:600;font-size:17px;display:block}
.dpts .d{font-size:13.5px;color:var(--hai)}
.hview{min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--g);padding-block:calc(var(--hd) + 24px) 64px}
.htrack{display:flex;gap:48px;align-items:flex-end;padding-left:56px;padding-right:var(--gr);width:max-content}
.hfig{margin:0;scroll-snap-align:start;flex:none}
.hfig .im{overflow:hidden;height:min(64vh,600px)}
.hfig.t .im{aspect-ratio:3/4}.hfig.w .im{aspect-ratio:4/3}
.hfig img{height:100%;width:112%;max-width:none;margin-left:-6%;object-fit:cover}
.hfig.ext img{object-position:88% 50%}
.hfig figcaption{margin-top:14px;font-size:14px;font-weight:500}
.hend{flex:none;width:min(520px,70vw);align-self:center}
.hend .q{font-family:var(--f-head);font-weight:600;font-size:clamp(28px,3vw,46px);line-height:1.7}
.hwrap.gs .hview{overflow:visible;scroll-snap-type:none}
.hbar{display:none}
.hwrap.gs .hbar{display:block;position:absolute;right:var(--gr);bottom:30px;width:28%;height:3px;background:var(--line)}
.hbar span{display:block;height:100%;background:var(--or);transform-origin:0 50%;transform:scaleX(0)}
@media (max-width:899px){.dintro .bgw{font-size:17vw}.hwrap{grid-template-columns:1fr;min-height:0}.dintro{padding:110px var(--gr) 40px var(--g)}.hview{padding-block:0 64px}.htrack{padding-left:var(--g);gap:16px;align-items:flex-start}.hfig.t .im{width:62vw}.hfig .im{height:auto;width:78vw}.hfig.w .im{width:86vw}.hfig img{width:100%;margin-left:0}.hend{width:78vw}}

/* type wall */
.wall{position:relative;height:118vh;min-height:760px;overflow:hidden;background:var(--gray)}
.wall .rows{position:absolute;inset:-4vh 0 0;display:flex;flex-direction:column;justify-content:space-between}
.wall .rows{background-size:cover;background-position:center;-webkit-background-clip:text;background-clip:text;color:transparent}
.wall .row{font-size:13.2vh;color:transparent;white-space:nowrap;line-height:.86}
.wall .row span{padding-right:.3em}
.wall .cap{position:absolute;right:var(--gr);bottom:4vh;z-index:3;color:var(--white);text-align:right}
@media (max-width:899px){.wall{height:96svh;min-height:600px}.wall .row{font-size:10.2svh}}

/* classes */
.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:72px 56px;margin-top:64px}
.ccard{display:block;text-decoration:none;color:var(--ink);position:relative}
.ccard .pw{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--line)}
.ccard .pw img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08);transition:transform .9s var(--e-f),filter .6s var(--e-s)}
.ccard .pw .ph{height:100%}
.ccard .no{position:absolute;left:-8px;top:-56px;font-size:96px;color:var(--gray2);z-index:-1}
.ccard .tag{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--white);padding:10px 16px}
.ccard h3{font-size:clamp(22px,2.2vw,30px);margin-top:18px;transition:color var(--t-ui)}
.ccard p{margin-top:8px}
.ccard .meta{margin-top:10px;font-weight:700;font-size:14px}
.cgrid .c2{margin-top:120px}
.ccard .pw::after{content:"";position:absolute;inset:0;background:var(--or);mix-blend-mode:multiply;opacity:.0;transition:opacity .6s}
@media (hover:hover) and (pointer:fine){.ccard:hover .pw img{transform:scale(1.05);filter:none}.ccard:hover h3{color:var(--ort)}}
@media (max-width:899px){.cgrid{grid-template-columns:1fr;gap:72px}.cgrid .c2{margin-top:0}.ccard .no{font-size:72px;top:-42px}}

/* schedule / price */
.pt{display:grid;grid-template-columns:7fr 5fr;gap:64px;margin-top:56px;align-items:start}
.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tbl th,.tbl td{text-align:left;font-weight:400;padding:15px 0;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{width:44%;padding-right:16px}
.tbl td.r{text-align:right;white-space:nowrap}
.tbl.sched th{width:7em;font-family:var(--f-head);font-weight:600}
.tblwrap{overflow-x:auto}
.today{background:var(--ink);color:var(--white);padding:28px}
.today .en{color:var(--or)}
.week{display:grid;grid-template-columns:repeat(7,1fr);position:relative;border-bottom:1px solid #3A342E;margin-top:10px}
.week div{text-align:center;padding:10px 0 12px;font-size:15px}
.week div small{display:block;font-size:11px;color:var(--gray);line-height:1.4;min-height:1.4em}
.week .on{color:var(--or);font-weight:700}
.week .bar{position:absolute;bottom:-1px;left:0;height:3px;width:calc(100%/7);background:var(--or);transition:transform .6s var(--e-f)}
.status{margin-top:8px}
.cls{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:baseline;padding:13px 0;border-bottom:1px solid #3A342E;font-size:15px;font-variant-numeric:tabular-nums}
.chip{font-size:12.5px;padding:1px 10px;border:1px solid var(--gray);white-space:nowrap;display:inline-flex;align-items:center;gap:8px}
.chip.live{border-color:var(--or);color:var(--or)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--or)}
.chip.live .dot{animation:breath 2.4s ease-in-out infinite}
@keyframes breath{50%{opacity:.25}}
.calcwrap{margin-top:120px;background:var(--ink);color:var(--white);padding:56px}
.calcwrap h3{font-size:clamp(24px,2.6vw,36px);line-height:1.5}
.calcwrap .lead{margin-top:10px;color:var(--gray2)}
.calc{display:grid;grid-template-columns:5fr 7fr;gap:48px;margin-top:36px}
fieldset{border:none;margin:0;padding:0;display:grid;gap:8px}legend{padding:0;margin-bottom:8px;color:var(--gray2)}
.opt{display:flex;align-items:center;gap:12px;min-height:50px;padding:0 16px;border:1px solid #4A433C;cursor:pointer;transition:border-color var(--t-ui),background var(--t-ui),transform var(--t-press) var(--e-f)}
.opt:active{transform:scale(.98)}
.opt:has(input:checked){border-color:var(--or);background:#221D18}
.opt input{accent-color:var(--or);width:18px;height:18px;margin:0}
.calcwrap .tbl th,.calcwrap .tbl td{border-color:#3A342E}
.calcwrap .muted{color:var(--gray2)}
.total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-top:20px}
.total .v{font-family:var(--f-big);font-size:clamp(40px,5vw,72px);color:var(--or);letter-spacing:0}
.plist{display:grid;grid-template-columns:5fr 7fr;gap:48px;margin-top:72px}
@media (max-width:899px){.pt,.calc,.plist{grid-template-columns:1fr}.calcwrap{padding:28px 20px;margin-top:72px}.cls{grid-template-columns:1fr auto;gap:4px 12px}.cls>span:nth-child(2){grid-column:1/-1;grid-row:2}}

/* shihan + world (night) */
.dark{background:var(--ink);color:var(--white);margin-top:160px;overflow:hidden}
.dark .muted{color:var(--gray2)}
.sh-wrap{position:relative;min-height:100vh;display:grid;grid-template-columns:5fr 7fr;align-items:end;gap:48px;padding-top:120px}
.sh-name{position:absolute;left:var(--g);top:90px;font-size:clamp(80px,12.5vw,210px);color:#3B352F;z-index:0}
.sh-fig{position:relative;z-index:1;height:92vh;align-self:end;mix-blend-mode:lighten;-webkit-mask-image:radial-gradient(ellipse 62% 70% at 50% 48%,#000 55%,transparent 100%);mask-image:radial-gradient(ellipse 62% 70% at 50% 48%,#000 55%,transparent 100%)}
.sh-fig img{height:100%;width:auto;max-width:none}
.sh-body{position:relative;z-index:2;padding-bottom:12vh;display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:start}
.sh-body .vt{font-size:clamp(26px,2.6vw,40px);font-weight:600;color:var(--white);max-height:70vh}
.sh-body .name{font-family:var(--f-head);font-weight:600;font-size:clamp(24px,2.4vw,34px);letter-spacing:.16em}
.sh-body .name small{display:block;font-family:var(--f-body);font-weight:400;font-size:13px;letter-spacing:.08em;color:var(--gray2);margin-top:4px}
.sh-body .t p+p{margin-top:12px}
.sh-body .em2{font-family:var(--f-head);font-weight:600;font-size:clamp(18px,1.6vw,22px);line-height:1.8;color:var(--or)}
.world2{padding-block:140px}
.world2 .facts{display:grid;grid-template-columns:auto 1fr;gap:16px 36px;margin:0;font-variant-numeric:tabular-nums}
.world2 .facts dt{font-family:var(--f-big);color:var(--or);font-size:20px;letter-spacing:0}
.world2 .facts dd{margin:0}
.wgrid{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:end}
.wph{display:grid;grid-template-columns:7fr 5fr;gap:20px;margin-top:64px;align-items:end}
.wph .pw{overflow:hidden}
.wph img{width:100%;aspect-ratio:3/2;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:filter .6s}
.wph .pw:last-child img{aspect-ratio:4/3}
@media (hover:hover) and (pointer:fine){.wph .pw:hover img{filter:none}}
.mouko{margin-top:72px;border-top:2px solid var(--or);padding-top:28px;display:grid;grid-template-columns:5fr 7fr;gap:64px}
@media (max-width:899px){.world2 .facts{grid-template-columns:1fr;gap:4px 0}.world2 .facts dd{margin-bottom:16px}.sh-wrap{grid-template-columns:1fr;min-height:0;padding-top:96px}.sh-name{font-size:19vw;top:70px}.sh-fig{height:70svh;margin:0 auto}.sh-body{grid-template-columns:1fr;padding-bottom:40px}.sh-body .vt{writing-mode:horizontal-tb;max-height:none;letter-spacing:.1em}.wgrid,.wph,.mouko{grid-template-columns:1fr}.world2{padding-block:96px}}

/* bjj band */
.bjj{background:var(--or);color:var(--ink);padding-block:80px;overflow:hidden}
/* 2026-10-30 橙一色の面は最後の呼びかけだけに。BJJは黒地に橙の線（BJJ_DARK） */
.bjj.dk{background:var(--ink);color:var(--white);border-top:3px solid var(--or);border-bottom:3px solid var(--or)}
.bjj.dk .big{color:var(--or)}
.bjj.dk .en{color:var(--or)}
.bjj.dk .tl:hover{color:var(--or)}
.bjj .wrap{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:center}
.bjj .big{font-size:clamp(110px,16vw,260px)}
.bjj h2{font-size:clamp(24px,2.6vw,34px);margin-bottom:16px}
.bjj .dl{display:grid;grid-template-columns:5em 1fr;gap:8px 16px;margin:20px 0 0}
.bjj .dl dt{font-weight:700}
.bjj .dl dd{margin:0}
@media (max-width:899px){.bjj .wrap{grid-template-columns:1fr;gap:16px}.bjj{padding-block:56px}}

/* steps */
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:64px;position:relative;border-top:2px solid var(--line)}
.steps3 .sline{position:absolute;left:0;right:0;top:-2px;height:2px;background:var(--or);transform-origin:0 50%;transform:scaleX(0)}
.steps3>div{position:relative;padding:28px 32px 0 0}
.steps3 .no{font-size:88px;color:var(--gray2)}
.steps3 h3{font-size:24px;margin-top:-28px;position:relative}
.steps3 .p{font-weight:700;margin:6px 0 10px}
@media (max-width:899px){.steps3{grid-template-columns:1fr}.steps3>div{padding-right:0;padding-bottom:28px;border-bottom:1px solid var(--line)}}

/* faq / news */
.two{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:start}
.qa{border-top:2px solid var(--ink)}
.qa details{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:22px 0;font-family:var(--f-head);font-weight:600;font-size:17px}
.qa summary::-webkit-details-marker{display:none}
.pm{position:relative;width:16px;height:16px;flex:none;margin-top:8px}
.pm::before,.pm::after{content:"";position:absolute;left:0;top:7px;width:16px;height:2px;background:var(--or);transition:transform var(--t-ui) var(--e-s)}
.pm::after{transform:rotate(90deg)}
details[open] .pm::after{transform:rotate(0)}
.qa .a{overflow:hidden}
.qa .a p{padding-bottom:24px;color:var(--hai)}
.news{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.news li a{display:grid;grid-template-columns:7.5em 6em 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;align-items:baseline}
.news time{font-family:var(--f-big);font-size:15px;color:var(--ort);letter-spacing:0}
.news .cat{font-size:12px;color:var(--hai)}
.news .t{transition:transform var(--t-ui) var(--e-f),color var(--t-ui)}
@media (hover:hover) and (pointer:fine){.news li a:hover .t{transform:translateX(8px);color:var(--ort)}}
.igbox{margin-top:40px;border:2px dashed var(--gray);padding:24px;font-size:13.5px;color:var(--hai)}
@media (max-width:899px){.two{grid-template-columns:1fr;gap:28px}.news li a{grid-template-columns:auto 1fr;gap:4px 12px}.news .t{grid-column:1/-1}}

/* final */
.final{position:relative;background:var(--or);min-height:100vh;overflow:hidden;margin-top:160px}
.final .fsil{position:absolute;left:var(--g);top:14vh;width:min(46vw,760px);aspect-ratio:4/3;z-index:1;clip-path:polygon(4% 0%,100% 0%,96% 100%,0% 100%)}
.final .fsil img{width:100%;height:100%;object-fit:cover}
.final .vt{position:absolute;right:calc(var(--gr) + 2vw);top:11vh;font-size:clamp(30px,3.4vw,54px);font-weight:600;color:var(--ink);z-index:2}
/* 2026-11-02 画面が狭いと文章が写真に重なっていたので、写真の右を基準に置く */
.final .box{position:absolute;left:calc(var(--g) + min(46vw,760px) + 40px);bottom:9vh;width:min(440px,26vw);z-index:2}
.final .box p{font-weight:500}
.final .box .acts{margin-top:24px}
.final .box .tl{color:var(--ink)}
.final .note{margin-top:20px;font-size:13px}
@media (max-width:899px){.final{min-height:0;padding:96px var(--gr) 48px var(--g)}.final .fsil{position:relative;left:auto;top:auto;width:100%;margin:0 0 28px}.final .vt{position:relative;right:auto;top:auto;writing-mode:horizontal-tb;font-size:28px;letter-spacing:.1em;margin-bottom:20px}.final .box{position:relative;left:auto;right:auto;bottom:auto;width:auto;margin-top:24px}}

/* access / footer */
.acc{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:start;margin-top:56px}
.acc .addr{font-family:var(--f-head);font-weight:600;font-size:clamp(22px,2.2vw,30px);line-height:1.7}
.dl{display:grid;grid-template-columns:5em 1fr;gap:10px 16px;margin:0}
.dl dt{color:var(--hai);font-size:13.5px;padding-top:2px}
.dl dd{margin:0}
@media (max-width:899px){.acc{grid-template-columns:1fr;gap:20px}}
.map{margin-top:48px;aspect-ratio:21/9;max-width:100%;background:var(--ink);color:var(--white);position:relative;overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-ph{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:32px 40px;background:repeating-linear-gradient(0deg,transparent 0 47px,#2A2622 47px 48px),repeating-linear-gradient(90deg,transparent 0 47px,#2A2622 47px 48px),var(--ink)}
.map-ph .en{color:var(--or)}
.map-ph p{margin-top:8px;max-width:40em;color:var(--gray2);font-size:14px}
.map-ph .tl{color:var(--white)}
@media (max-width:899px){.map{aspect-ratio:4/5}.map-ph{padding:24px 20px}}
.ft{background:var(--ink);color:var(--white);padding-block:96px 48px;margin-top:160px;font-size:13.5px;overflow:hidden}
.ft .grid{display:grid;grid-template-columns:5fr 3fr 4fr;gap:48px}
.ft .logo img{height:28px;width:auto}
.ft a{text-decoration:none}
.ft a:hover{color:var(--or)}
.ft ul{list-style:none;margin:0;padding:0}
.ft h4{margin:0 0 8px;color:var(--or)}
.ft .muted{color:var(--gray2)}
.ft .giantf{font-size:10.6vw;color:#5A524A;margin-top:72px;line-height:.86;white-space:nowrap;text-align:center}
.ft .copy{color:var(--gray);font-size:12px;margin-top:16px}
@media (max-width:899px){.ft .grid{grid-template-columns:1fr;gap:28px}}

.ph{position:relative;background:var(--line);border:2px dashed var(--gray);display:flex;flex-direction:column;justify-content:flex-end;gap:4px;padding:20px;color:var(--hai);font-size:13px;line-height:1.6;max-width:100%}
.ph b{color:var(--ort);font-weight:700}
.ph strong{color:var(--ink);font-weight:500;font-size:15px}
.r43{aspect-ratio:4/3}
.demo-tag{position:fixed;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;background:var(--or);color:var(--ink);font-size:11.5px;font-weight:700;letter-spacing:.06em;padding:6px 12px}
@media (max-width:899px){.demo-tag{display:none}}
.fbar{display:none}
/* 酸素ルームの予約：パソコンは画面の右下、スマホは下のバーにいつも出す。色は COZY の紺（酸素ルームのページと同じ） */
.o2tab{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:max(14px,env(safe-area-inset-bottom,0px));z-index:40;display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:0 18px 0 14px;background:#1e3a5f;color:#fff;text-decoration:none;font-weight:700;font-size:13.5px;letter-spacing:.08em;box-shadow:0 6px 18px rgba(30,58,95,.28);transition:background var(--t-ui)}
.o2tab svg{flex:none}
@media (hover:hover) and (pointer:fine){.o2tab:hover{background:#17788f}}
.o2tab:focus-visible{outline:2px solid #fff;outline-offset:-5px}
@media (max-width:899px){.o2tab{display:none}}
@media (max-width:899px){
  .fbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--paper);border-top:2px solid var(--ink);gap:10px;align-items:center;padding:8px max(12px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));transform:translateY(110%);transition:transform .3s var(--e-s)}
  .fbar{transform:none}
  body{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
  .fbar .btn{flex:1 1 0;min-height:52px;padding:4px 8px;font-size:13px;line-height:1.35;letter-spacing:.04em;text-align:center}
  .fbar .btn.ghost{background:#1e3a5f;color:#fff}
  .fbar .tel{font-size:12.5px;line-height:1.4;text-align:center;user-select:all;font-variant-numeric:tabular-nums}
}
.toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom,0px));transform:translate(-50%,8px);background:var(--ink);color:var(--white);font-size:13.5px;padding:10px 18px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:95;max-width:calc(100% - 32px)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.rv{transition:opacity .9s var(--e-s),transform 1.1s var(--e-f)}
.js .rv:not(.shown){opacity:0;transform:translateY(24px)}
@media (prefers-reduced-motion:reduce){
  .js .rv:not(.shown){transform:none}.rv{transition:opacity .3s}
  .chip.live .dot{animation:none}
  .ccard .pw img,.news .t,.week .bar{transition:none}
  .btn:active,.opt:active{transform:none}
}
