/* 参考(KOSAERU仮想ジム)の実測値: 赤 rgb(217,66,35) / 金 #b07c1f / クリーム #fff5e9 / 本文 #333
   Jost(英字)+Noto Serif JP(見出し) / 字間4px / 角丸5px / 影はほぼ使わない */
:root{--red:#d94223;--gold:#b07c1f;--cream:#fff5e9;--ink:#333;--dim:#6b6259;--line:#e4dcd2}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:#fff;line-height:1.9;font-size:16px}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.en{font-family:'Jost',sans-serif;letter-spacing:4px}
h1,h3,.lead,.q,.v-t,.tr-name,.ac-name,.reserve h2{font-family:'Noto Serif JP',serif}

/* header */
.hd{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:18px 40px;color:#fff;background:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,0))}
.logo .en{font-size:26px;font-weight:500;display:block;line-height:1}
.logo small{font-family:'Jost';font-size:9px;letter-spacing:2px}
.hd nav{display:flex;gap:26px;align-items:center;font-size:13px;font-weight:500}
.nav-cta{background:var(--red);padding:8px 18px;border-radius:5px}

/* first view: くすんだ全画面写真+大きな太字+赤帯+右下トレーナー */
.fv{position:relative;min-height:min(100vh,800px);display:flex;align-items:center;overflow:hidden;color:#fff}
.fv-bg{position:absolute;inset:0;background:url(img/hero.jpg) center/cover;filter:grayscale(.55) brightness(.62) sepia(.25)}
.fv-in{position:relative;z-index:2;padding:120px 6vw 80px;max-width:760px}
.fv-in::before{content:"";position:absolute;inset:80px -40px 40px 2vw;background:rgba(30,24,20,.42);z-index:-1}
.fv-pre{font-size:20px;font-weight:700;letter-spacing:4px}
.fv-pre .en{font-size:30px;margin-left:8px;color:#fff}
.fv h1{font-size:clamp(38px,5.4vw,68px);font-weight:900;line-height:1.35;margin:14px 0 24px;letter-spacing:2px}
.band{display:inline-block;background:var(--red);color:#fff;font-weight:700;padding:6px 16px;letter-spacing:2px;font-size:17px}
.fv-sub{margin:22px 0 32px;font-size:16px}
.btn-red{display:inline-flex;flex-direction:column;align-items:center;background:var(--red);color:#fff;font-weight:700;padding:16px 40px;border-radius:5px;font-size:18px;line-height:1.4}
.btn-red span,.btn-line span{font-size:12px;font-weight:400}
.fv-trainer{position:absolute;right:4vw;bottom:0;width:300px;z-index:2}
.fv-trainer img{height:400px;width:100%;object-fit:cover;object-position:30% 30%;border:6px solid #fff;border-bottom:0}
.fv-trainer figcaption{position:absolute;left:-46px;bottom:40px;background:var(--red);padding:10px 16px;font-size:12px;line-height:1.5;writing-mode:horizontal-tb}
.fv-trainer b{font-family:'Jost';font-size:20px;letter-spacing:3px}

/* sections */
section{padding:100px 8vw}
section h2.en{font-size:56px;font-weight:300;color:var(--gold);line-height:1}
.sec-ja{font-weight:700;margin:8px 0 48px;font-size:15px}
.news{display:grid;grid-template-columns:220px 1fr;gap:40px;background:var(--cream);padding:60px 8vw}
.news h2.en{font-size:40px}
.news li{list-style:none;border-bottom:1px solid var(--line);padding:12px 0;font-size:15px}
.news time{font-family:'Jost';color:var(--gold);margin-right:24px;letter-spacing:2px}

.about{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;background:url(img/group.jpg) right center/45% auto no-repeat}
.about-head .lead{font-size:34px;font-weight:700;line-height:1.6;margin-top:24px}
.about-body{background:rgba(255,255,255,.94);padding:30px 0}
.about-body p+p{margin-top:16px}

.solution{background:#2b2622;color:#fff}
.solution .sec-ja{color:#e9dccb}
.sol-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid #5a4f46}
.sol{padding:34px 28px;border-right:1px solid #5a4f46}
.sol:last-child{border-right:0}
.sol .q{font-size:22px;font-weight:700;line-height:1.6;padding-left:14px;border-left:4px solid var(--red);margin-bottom:18px}
.sol .a{font-size:15px;color:#e9e2d9}

.menu-row{display:grid;grid-template-columns:55% 1fr;gap:50px;align-items:center;margin-bottom:60px}
.menu-row.rev{grid-template-columns:1fr 55%}
.menu-row.rev img{order:2}
.menu-row img{width:100%;height:340px;object-fit:cover;filter:saturate(.8)}
.menu-row .no{font-size:44px;color:var(--red);font-weight:300;line-height:1}
.menu-row h3{font-size:26px;margin:8px 0 14px}

.price{background:var(--cream)}
.price table{width:100%;max-width:880px;border-collapse:collapse}
.price th,.price td{border-bottom:1px solid #d9cbb6;padding:22px 0;text-align:left}
.price th{font-size:18px}
.price th small{display:block;font-size:13px;font-weight:400;color:var(--dim)}
.price td{text-align:right;font-family:'Jost';font-size:34px;font-weight:500;color:var(--ink)}
.price td span{font-family:'Noto Sans JP';font-size:14px;margin-left:4px}
.note{font-size:13px;color:var(--dim);margin-top:20px}

.trainer{display:grid;grid-template-columns:42% 1fr;gap:60px;align-items:center}
.tr-photo img{width:100%;height:480px;object-fit:cover;object-position:30% 40%}
.tr-name{font-size:32px;font-weight:700;margin:20px 0 16px}
.tr-name span{font-family:'Noto Sans JP';font-size:14px;color:var(--red);margin-left:14px}
.trainer ul{margin-top:20px;padding-left:1.2em;font-size:14px}

.voice{background:#f4efe8}
.voice-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.v{background:#fff;padding:30px 26px;border-top:4px solid var(--red)}
.v-who{font-weight:700;font-size:14px}
.v-who span{color:var(--gold);margin-left:10px;font-weight:500}
.v-t{font-size:19px;font-weight:700;line-height:1.6;margin:12px 0}
.v p:last-child{font-size:14px;color:#555}

.faq dl{max-width:880px}
.faq dt{font-weight:700;font-size:17px;padding:20px 0 6px;border-top:1px solid var(--line)}
.faq dt::before{content:"Q.";font-family:'Jost';color:var(--red);margin-right:10px;font-size:20px}
.faq dd{padding-bottom:20px;color:#555}

.access{display:grid;grid-template-columns:1fr 1fr;gap:60px;background:var(--cream)}
.ac-name{font-size:24px;font-weight:700;margin:20px 0}
.access dl{display:grid;grid-template-columns:100px 1fr;row-gap:10px;font-size:15px}
.access dt{color:var(--gold);font-weight:700}
.ac-map{position:relative}
.ac-map img{width:100%;height:340px;object-fit:cover;filter:grayscale(.4)}
.ac-map p{position:absolute;right:0;bottom:0;background:var(--ink);color:#fff;padding:8px 18px;font-size:13px}

.reserve{position:relative;color:#fff;text-align:left;background:url(img/f1.jpg) center/cover}
.reserve::before{content:"";position:absolute;inset:0;background:rgba(36,28,24,.72)}
.reserve-in{position:relative;max-width:760px}
.reserve h2{font-size:40px;font-weight:900;margin:20px 0 14px}
.rs-btns{display:flex;gap:18px;margin-top:30px;flex-wrap:wrap}
.btn-line{display:inline-flex;flex-direction:column;align-items:center;background:#06c755;color:#fff;font-weight:700;padding:16px 40px;border-radius:5px;font-size:18px;line-height:1.4}

.ft{background:#1e1a17;color:#bbb;padding:40px 8vw 100px;font-size:12px}
.ft .en{font-size:24px;color:#fff;margin-bottom:6px}

.sp-fixed{display:none}

/* smartphone */
@media(max-width:768px){
  body{font-size:15px}
  .hd{padding:14px 16px}
  .hd nav a:not(.nav-cta){display:none}
  .fv{align-items:flex-start;min-height:auto;padding-bottom:300px}
  .fv-in{padding:100px 16px 30px}
  .fv-in::before{inset:80px -8px 10px 8px}
  .fv h1{font-size:34px}
  .band{font-size:14px}
  .btn-red{padding:14px 22px;font-size:16px;width:100%}
  .fv-trainer{width:200px;right:16px}
  .fv-trainer img{height:260px}
  .fv-trainer figcaption{left:-60px;bottom:20px}
  section{padding:64px 16px}
  section h2.en{font-size:40px}
  .news{grid-template-columns:1fr;gap:10px;padding:40px 16px}
  .news time{display:block}
  .about{grid-template-columns:1fr;gap:20px;background-size:0}
  .about-head .lead{font-size:26px}
  .sol-list{grid-template-columns:1fr}
  .sol{border-right:0;border-bottom:1px solid #5a4f46;padding:26px 4px}
  .menu-row,.menu-row.rev{grid-template-columns:1fr;gap:16px;margin-bottom:44px}
  .menu-row.rev img{order:0}
  .menu-row img{height:220px}
  .price th{font-size:15px}
  .price td{font-size:24px}
  .trainer{grid-template-columns:1fr;gap:20px}
  .tr-photo img{height:300px}
  .voice-list{grid-template-columns:1fr}
  .access{grid-template-columns:1fr;gap:24px}
  .access dl{grid-template-columns:80px 1fr}
  .ac-map img{height:220px}
  .reserve h2{font-size:28px}
  .btn-line{width:100%}
  .sp-fixed{display:block;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--red);color:#fff;text-align:center;font-weight:700;padding:16px;font-size:16px}
}
.band{max-width:100%}
