/*=========================================================
   サイトヘッダー
   =========================================================*/
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; backdrop-filter: blur(10px); background: rgba(255, 255, 255, 0.64); border-bottom: 1px solid #ff6216; }
.site-header__inner { width: 100%; padding-left: min(166px, 8.64vw); margin: 0 auto; display: flex; align-items: center; justify-content: flex-end; position: relative; }
.site-header__logo { position: absolute; left: 0; top: 0; }
.site-header__logo > a { display: block; position: relative; color: inherit; text-decoration: none; }
.site-header__logo-vector { object-fit: contain; }
.site-header__logo-mark { position: absolute; left: 16px; top: 16px; width: 64px; height: 64px; object-fit: contain; transition: 0.15s ease; }
.site-header__nav { flex: 1 1 auto; font-weight: 500; }
.site-header__menu-btn { display: none; }
.site-header__nav ul { display: flex; align-items: stretch; justify-content: flex-end; gap: 0; margin: 0; padding: 0; }
.site-header__nav li { list-style: none; display: flex; align-items: stretch; }
.site-header__nav-beginner--pc, .site-header__nav-language__pc { border-left: 1px solid #ff6216; }
.site-header__nav a { display: flex; align-items: center; justify-content: center; padding: 30px min(20px, 1.04vw); color: inherit; font-size: clamp(14px, 16px, 0.83vw); line-height: 1.25; transition: color 0.15s ease, background-color 0.15s ease; }
.site-header__nav-beginner--pc > a { background: transparent; color: inherit; }
.site-header__nav a span { display: none; }
.site-header__nav-cta { display: none; }
.site-header__nav-footer { display: none; }
@media (max-width: 768px) {
  .site-header { backdrop-filter: none; background: transparent; border-bottom: 0; }
  .site-header__inner { justify-content: space-between; padding-left: 0; min-height: 74px; }
  .site-header__logo { position: relative; }
  .site-header__logo-vector { width: 74px; height: 74px; }
  .site-header__logo-mark { width: 33px; height: 33px; left: 6px; top: 6px; }
  .site-header__menu-btn { margin-right: 20px; height: 74px; padding: 0; border: 0; background: transparent; color: #ff6216; display: inline-flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 6px; cursor: pointer; z-index: 2; }
  .site-header__menu-btn-line { width: 30px; height: 5px; border: 1px solid #ff6216; background: #fff; transition: transform 0.22s ease, opacity 0.22s ease; }
  .site-header__menu-btn-text { font-family: "Jost", sans-serif; font-size: 12px; line-height: 1; }
  .site-header__nav { position: fixed; top: 0; right: 0; width: 80%; height: 100vh; height: 100dvh; background: #464646; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.25s ease, visibility 0.25s ease; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 100px 0 calc(24px + env(safe-area-inset-bottom, 0px)); }
  .site-header__nav-inner__sp { width: 100%; padding-bottom: 40px; }
  .site-header__nav ul { display: block; padding: 0 0 24px; width: 86%; margin: 0 auto; }
  .site-header__nav li { border-bottom: 1px solid rgba(255, 255, 255, 0.3); }
  .site-header__nav li:not(:last-child) { margin-bottom: 20px; }
  .site-header__nav-beginner--pc, .site-header__nav-language__pc { display: none !important; border-left: 0; }
  .site-header__nav a { width: 100%; justify-content: space-between; color: #fff; padding: 0 0 20px; line-height: 1.2; }
  .site-header__nav a span { display: block; font-family: "Jost", sans-serif; font-size: 10px; line-height: 1; color: #ff6216; padding-right: 18px; position: relative; letter-spacing: 0.1em; }
  .site-header__nav a span::after { content: ""; position: absolute; right: 4px; top: 50%; transform: translateY(-50%) rotate(45deg); width: 8px; height: 8px; border-top: 1px solid #ff6216; border-right: 1px solid #ff6216; display: block; }
  .site-header--menu-open .site-header__nav-cta { display: grid; grid-template-columns: 1fr 1fr; width: 86%; margin: 0 auto; }
  .site-header--menu-open .site-header__nav-cta a { height: 100px; border: 1px solid rgba(255, 255, 255, 0.3); line-height: 1.4; padding: 0; justify-content: center; }
  .site-header--menu-open .site-header__nav-cta a:nth-child(1) { background: #16b3ff; }
  .site-header--menu-open .site-header__nav-cta a:nth-child(2) { background: #00B900; }
  .site-header--menu-open .site-header__nav-footer { display: block; background: #fff; padding: 20px 7% 0; width: 100%; }
  .site-header--menu-open .site-header__nav-footer a { color: #464646; }
  .site-header--menu-open .site-header__nav { opacity: 1; visibility: visible; pointer-events: auto; }
  .site-header--menu-open .site-header__menu-btn-line:nth-child(1) { transform: translateY(9px) rotate(45deg); }
  .site-header--menu-open .site-header__menu-btn-line:nth-child(2) { opacity: 0; }
  .site-header--menu-open .site-header__menu-btn-line:nth-child(3) { transform: translateY(-13px) rotate(-45deg); }
}
.site-header__lang-btn { display: flex; align-items: center; justify-content: center; padding: 30px min(20px, 1.04vw); margin: 0; color: inherit; font-size: clamp(14px, 16px, 0.83vw); line-height: 1.25; font-weight: 500; background: none; border: 0; cursor: pointer; text-align: center; transition: color 0.15s ease; }
.site-header__lang-panel { position: fixed; top: 81px; right: min(24px, 4vw); z-index: 1002; padding: 14px 16px; background: #fff; border: 1px solid #ff6216; border-radius: 8px; box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12); min-width: min(280px, 100vw - 32px); }
.site-header__gtranslate-wrapper { min-width: 200px; }
@media (max-width: 768px) {
  .site-header__lang-panel { bottom: 108px; top: auto; right: 5%; left: auto; }
  .site-header--menu-open .site-header__lang-btn--cta { display: flex; width: 100%; height: 100px; border: 1px solid rgba(255, 255, 255, 0.3); padding: 0; color: #fff; line-height: 1.4; justify-content: center; align-items: center; }
}
/*=========================================================
   メインビジュアル
   =========================================================*/
.main-visual { width: 100%; }
.main-visual__hero { width: min(100%, 1920px); aspect-ratio: 1920/956; height: 100%; margin: 0 auto; position: relative; overflow: hidden; background: var(--mv-bg) url(../images/main_background.jpg) center no-repeat; background-size: cover; }
.main-visual__hero::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.8); z-index: 0; }
.main-visual__brand { position: absolute; left: -2.49%; top: 9.07%; pointer-events: none; font-family: "Jost", system-ui, sans-serif; color: #fff; letter-spacing: -2.65625vw; opacity: 0.5; }
.main-visual__brand-line { margin: 0; font-size: min(566.67px, 29.52vw); line-height: 0.85; }
.main-visual__main-text { position: absolute; left: 3.5%; top: 56%; transform: translate3d(0, -50%, 0); z-index: 1; }
.main-visual__main-text img { width: min(51.09vw, 981.11px); aspect-ratio: 981.11/262.9; height: auto; margin-bottom: 16px; }
.main-visual__main-text-since { font-family: "Jost", system-ui, sans-serif; text-align: right; padding-right: min(8px, 0.45vw); color: #ff6216; letter-spacing: 0.4em; font-weight: 700; font-size: clamp(16px, 1.04vw, 20px); line-height: 1em; margin-bottom: clamp(16px, 1.61vw, 31px); }
.main-visual__main-text-catch { background: #fff; text-align: center; padding: 10px; color: #ff6216; width: 100%; letter-spacing: min(15.6px, 2vw); font-family: "Jost", system-ui, sans-serif; font-weight: 700; font-size: clamp(16px, 1.25vw, 24px); line-height: 1em; transform: skewX(-5deg); }
.main-visual__points { position: absolute; right: 3.41%; bottom: 3.41%; display: flex; align-items: flex-start; gap: min(35.56px, 1.85vw); z-index: 1; }
.main-visual__point { width: 33.33%; }
.main-visual__point-head { display: flex; align-items: center; gap: min(11.11px, 0.58vw); margin-bottom: 4px; }
.main-visual__point-icon { width: min(50px, 2.6vw); height: min(50px, 2.6vw); opacity: 0.2; flex: 0 0 auto; }
.main-visual__point-icon img { width: 100%; height: 100%; object-fit: cover; }
.main-visual__point-number { display: flex; align-items: flex-end; gap: 0; }
.main-visual__point-value { margin: 0; font-family: "Jost", system-ui, sans-serif; font-weight: 700; font-size: min(53.33px, 2.78vw); line-height: min(35.56px, 1.85vw); letter-spacing: -0.111vw; color: var(--mv-orange); }
.main-visual__point-unit { margin: 0; font-weight: 900; font-size: min(16px, 2.5vw); line-height: normal; color: var(--mv-gray); }
.main-visual__point-caption { margin: 0; font-weight: 500; font-size: min(16px, 2.5vw); line-height: normal; color: var(--mv-gray); text-align: center; width: 100%; white-space: nowrap; }
@media (max-width: 768px) {
  .main-visual__hero { width: 100%; aspect-ratio: 402/640; background: url(../images/main_background_sp.jpg) center no-repeat; background-size: cover; }
  .main-visual__hero::after { background: rgba(255, 255, 255, 0.8); }
  .main-visual__brand { left: 0%; top: 55%; width: 100%; letter-spacing: 1; transform: translate3d(0, -50%, 0); }
  .main-visual__brand-line { font-size: 48vw; line-height: 1; }
  .main-visual__main-text img { width: min(80vw, 300px); }
  .main-visual__points { left: 2.5%; right: 2.5%; bottom: 2%; justify-content: center; gap: 5vw; }
  .main-visual__point { width: auto; }
  .main-visual__point-head { gap: 1.8vw; margin-bottom: 0.8vw; }
  .main-visual__point-icon { width: 8vw; height: 8vw; }
  .main-visual__point-value { font-size: 8.6vw; line-height: 5.68vw; letter-spacing: -0.34vw; }
  .main-visual__point-caption { text-align: center; }
}
/*=========================================================
   コンセプト、フィーチャー
   =========================================================*/
.section-concept-feature { position: relative; overflow: hidden; width: 100%; background: linear-gradient(90deg, #ff4d00 0%, #ffae2b 100%); }
.section-concept-feature::before { background: repeating-linear-gradient(-45deg, #fff, #fff 5px, transparent 0, transparent 10px); opacity: 0.09; content: ""; position: absolute; inset: 0; z-index: 0; }
.section-concept-feature__logo-white { position: absolute; left: calc(50% - 214.5px); top: 58px; width: 717px; height: 717px; opacity: 0.1; pointer-events: none; transform: translateX(-50%); }
.section-concept-feature__logo-white img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.section-concept-feature__concept { margin-bottom: 210px; }
.section-concept-feature__eyecatch-pill { padding-left: 14px; display: flex; align-items: center; justify-content: flex-start; margin-bottom: 16px; }
.section-concept-feature__eyecatch-text { margin: 0; font-family: "Jost", system-ui, sans-serif; font-size: 24px; letter-spacing: 2.88px; color: #ebebeb; }
.section-concept-feature__title { margin: 0; font-weight: 900; font-size: 60px; letter-spacing: 2.4px; color: #fff; line-height: normal; }
.section-concept-feature__message-row { padding-top: 30px; max-width: 1000px; margin-left: auto; }
.section-concept-feature__message { width: 100%; font-weight: 500; font-size: 20px; color: #fff; line-height: 2; margin-bottom: 30px; }
.section-concept-feature__message p { margin: 0; }
.section-concept-feature__link-button { width: 100%; background: rgba(255, 141, 52, 0.5); border: 1px solid #fff; padding: 26px 46px; display: flex; align-items: center; justify-content: space-between; transition: 0.15s ease; position: relative; }
.section-concept-feature__link-button-text { margin: 0; font-weight: 600; color: #fff; letter-spacing: 0.8px; }
.section-concept-feature__link-arrow { display: block; width: 12px; height: 12px; flex-shrink: 0; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-135deg); transition: border-width 0.28s ease; }
.section-concept-feature__feature { display: flex; align-items: center; gap: 34px; padding: 0 min(84px, 4.5vw); position: relative; margin-bottom: min(70px, 3.8vw); }
.section-concept-feature__feature:last-child { margin-bottom: 0; }
.section-concept-feature__feature-number { line-height: 1; position: absolute; top: -3.385vw; left: 0; font-family: "Jost", system-ui, sans-serif; font-weight: 600; font-size: min(177.432px, 9.57vw); letter-spacing: 10.6459px; color: #c0eaff; opacity: 0.24; text-transform: none; z-index: 0; }
.section-concept-feature__feature-number-kicker, .section-concept-feature__feature-number-index { margin: 0; }
.section-concept-feature__feature--02 .section-concept-feature__feature-number, .section-concept-feature__feature--04 .section-concept-feature__feature-number { left: auto; right: 0; top: mim(-3.385vw, -65px); }
.section-concept-feature__text-box { flex: 0 0 44%; width: 44%; overflow: clip; position: relative; z-index: 1; }
.section-concept-feature__heading-3 { margin: 0 0 24px; font-weight: 700; font-size: min(52px, 2.71vw); letter-spacing: 2.08px; color: #fff; line-height: 1.4; }
.section-concept-feature__heading-3 span { display: block; line-height: min(68px, 3.61vw); }
.section-concept-feature__description { font-weight: 500; font-size: 18px; color: #fff; }
.section-concept-feature__description p { margin: 0; line-height: 35px; }
.section-concept-feature__photo { flex: 0 0 56%; width: 56%; position: relative; z-index: 1; outline: 16px solid rgba(192, 234, 255, 0.24); outline-offset: -16px; }
.section-concept-feature__photo img { width: 100%; height: 100%; object-fit: cover; }
.section-concept-feature__feature--01 { justify-content: flex-start; }
.section-concept-feature__feature--02 { justify-content: flex-end; flex-direction: row-reverse; }
.section-concept-feature__feature--03 { justify-content: flex-start; }
.section-concept-feature__feature--04 { justify-content: flex-end; flex-direction: row-reverse; }
@media (max-width: 768px) {
  .section-concept-feature__concept { margin-bottom: 18vw; }
  .section-concept-feature__feature { display: block; padding: 0%; margin-bottom: 12vw; }
  .section-concept-feature__heading-3 { font-size: 6vw; line-height: 1.4; }
  .section-concept-feature__message { font-size: 18px; }
  .section-concept-feature__feature-number { font-size: 15vw; }
  .section-concept-feature__text-box, .section-concept-feature__photo { width: 100%; }
  .section-concept-feature__text-box { margin-bottom: 20px; }
  .section-concept-feature__feature--02 .section-concept-feature__text-box, .section-concept-feature__feature--04 .section-concept-feature__text-box { margin-bottom: 20px; }
  .section-concept-feature__eyecatch-text { font-size: 14px; }
  .section-concept-feature__title { font-size: 6vw; }
  .section-concept-feature__eyecatch-pill { padding-left: 4px; margin-bottom: 0; }
}
/*=========================================================
   セクション: 道場
   =========================================================*/
.section-dojo { width: 100%; margin: 0; position: relative; overflow: hidden; }
.section-dojo__slider-wrapper { width: 100%; }
.section-dojo__arrows { width: 100%; display: flex; align-items: center; justify-content: space-between; }
.section-dojo__arrow-btn { width: 18px; height: 33px; border: 0; background: transparent; cursor: pointer; padding: 17px 23.25px; box-sizing: content-box; }
.section-dojo__slider-wrapper .section-dojo__arrow-btn { transition: transform 0.15s ease, opacity 0.15s ease; transform-origin: center center; }
.section-dojo__arrow-img { width: 100%; height: 100%; object-fit: contain; }
.section-dojo__slider-container { width: 100vw; margin-left: calc(50% - 50vw); overflow: hidden; }
.section-dojo__arrows { margin-bottom: 32px; }
.section-dojo__slider { width: max-content; display: flex; gap: 20px; align-items: flex-start; justify-content: flex-start; margin-bottom: 24px; transition: transform 420ms ease; will-change: transform; }
.section-dojo__slide { flex: 0 0 min(39vw, 548px); border: 1px solid #464646; max-width: 100%; position: relative; overflow: visible; transition: border-color 0.15s ease; }
.section-dojo__slide::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; background: linear-gradient(#ff6216, #ff6216) left top/0 1px no-repeat, linear-gradient(#ff6216, #ff6216) right top/1px 0 no-repeat, linear-gradient(#ff6216, #ff6216) right bottom/0 1px no-repeat, linear-gradient(#ff6216, #ff6216) left bottom/1px 0 no-repeat; transition: inset 0.15s ease; }
.section-dojo__slide-link { display: block; color: inherit; text-decoration: none; }
.section-dojo__slide-link:focus-visible { outline: 2px solid #ff6216; outline-offset: 2px; }
@media (max-width: 1024px) {
  .section-dojo__slide { flex-basis: min(80vw, 548px); }
}
.section-dojo__slide-photo { width: 100%; aspect-ratio: 540/365; position: relative; overflow: hidden; border-bottom: 1px solid #464646; }
.section-dojo__slide-img { width: 100%; object-fit: cover; }
.section-dojo__slide-label { width: 100%; padding: 10px; letter-spacing: 0.8px; line-height: 1.4; }
.section-dojo__slide-label--tight { padding: 10px; }
/*=========================================================
   セクション: インストラクター
   =========================================================*/
.section-instructor { width: 100%; position: relative; overflow-x: hidden; }
.section-instructor__arrows { width: 100%; display: flex; align-items: center; justify-content: space-between; }
.section-instructor__arrow-btn { width: 18px; height: 33px; border: 0; background: transparent; cursor: pointer; padding: 17px 23.25px; box-sizing: content-box; }
.section-instructor__slider-wrapper .section-instructor__arrow-btn { transition: transform 0.15s ease, opacity 0.15s ease; transform-origin: center center; }
.section-instructor__arrow-img { width: 100%; height: 100%; object-fit: contain; }
.section-instructor__arrows { margin-bottom: 32px; }
.section-instructor__slider-container { width: calc(100% + 50vw - 50%); overflow: hidden; margin-bottom: 24px; }
.section-instructor__slider-track { width: max-content; display: flex; gap: min(36px, 1.875vw); align-items: flex-start; justify-content: flex-start; transition: transform 420ms ease; will-change: transform; }
.section-instructor__slide { flex: 0 0 min(18.6vw, 260px); border: 1px solid #464646; max-width: 100%; position: relative; overflow: visible; transition: border-color 0.15s ease; }
.section-instructor__slide::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; background: linear-gradient(#ff6216, #ff6216) left top/0 1px no-repeat, linear-gradient(#ff6216, #ff6216) right top/1px 0 no-repeat, linear-gradient(#ff6216, #ff6216) right bottom/0 1px no-repeat, linear-gradient(#ff6216, #ff6216) left bottom/1px 0 no-repeat; transition: inset 0.15s ease; }
.section-instructor__slide-link { display: block; color: inherit; text-decoration: none; }
.section-instructor__slide-link:focus-visible { outline: 2px solid #ff6216; outline-offset: 2px; }
.section-instructor__slide-photo { width: 100%; aspect-ratio: 332/420; overflow: hidden; position: relative; border-bottom: 1px solid #464646; }
.section-instructor__slide-photo img { width: 100%; object-fit: cover; }
.section-instructor__slide-label { padding: 10px; }
.section-instructor__slide-label-name { margin: 0; font-weight: 700; font-size: clamp(16px, 1.5625vw, 24px); letter-spacing: 0.8px; }
.section-instructor__slide-label-sub { margin: 6px 0 0; font-weight: 500; letter-spacing: 0.8px; }
@media (max-width: 1024px) {
  .section-instructor__slide { flex-basis: min(70vw, 260px); }
}
/*=========================================================
   セクション: プログラム
   =========================================================*/
.section-programs { width: 100%; position: relative; overflow: hidden; }
.section-programs__contents { width: min(100%, 1400px); margin: 0 auto; position: relative; }
.section-programs__frame-02 { width: 100%; margin-bottom: min(24px, 2vw); }
.section-programs__box-wrap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: min(10px, 1vw); overflow: hidden; width: 100%; margin-bottom: 24px; }
.section-programs__box { background: #000; position: relative; overflow: hidden; padding: min(33px, 3vw) min(42px, 3.2vw); height: min(320px, 35vw); min-height: 220px; }
@media (max-width: 768px) {
  .section-programs__box-wrap { display: block; }
  .section-programs__box-wrap .box { margin-bottom: 1vw; }
}
/*=========================================================
   セクション: 新着情報
   =========================================================*/
.section-news { width: 100%; position: relative; overflow: hidden; }
.section-news__contents { width: min(1400px, 100%); margin: 0 auto; }
.section-news__frame-02 { width: min(100%, 1200px); margin: 0 0 0 auto; }
.section-news__news-contents-wrap { margin-bottom: 24px; }
.section-news__news-item { width: 100%; position: relative; border-bottom: 1px solid #464646; padding-bottom: 20px; }
.section-news__news-item::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 100%; height: 1px; background: #ff6216; transform: scaleX(0); transform-origin: left center; transition: transform 0.15s ease; pointer-events: none; z-index: 1; }
.section-news__news-item:has(.section-news__news-link:focus-visible)::after { transform: scaleX(1); }
.section-news__news-item:not(:last-of-type) { margin-bottom: 20px; }
.section-news__news-link { display: block; text-decoration: none; color: inherit; outline-offset: 4px; }
.section-news__news-link:focus-visible { outline: 2px solid #ff6216; }
.section-news__meta-row { width: 100%; display: flex; align-items: center; gap: 24px; margin-bottom: 8px; }
.section-news__date { font-family: "Anton", system-ui, sans-serif; letter-spacing: 2.16px; color: rgba(255, 98, 22, 0.5); }
.section-news__tags { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.section-news__tag { border: 1px solid #ff6216; padding: 4px 12px; font-size: 14px; line-height: 1; color: #ff6216; }
.section-news__text { margin: 0; color: #464646; transition: color 0.15s ease; }
@media (max-width: 768px) {
  .section-news__tag { font-size: 12px; }
}
/*=========================================================
   セクション: 採用情報
   =========================================================*/
.section-recruit { width: 100%; background: url(../images/recruit_background.jpg) no-repeat center center; background-size: cover; position: relative; overflow: hidden; padding: min(80px, 4.375vw) 0; }
.section-recruit__heading-2 { text-align: center; margin-bottom: min(40px, 2.08vw); font-family: "Jost", system-ui, sans-serif; font-size: 24px; letter-spacing: 2.88px; color: #ff6216; font-weight: 400; }
.section-recruit__copy { text-align: center; color: #fff; margin-bottom: min(40px, 4vw); }
.section-recruit__headline { margin: 0 0 min(16px, 1.6vw); font-weight: 700; font-size: clamp(18px, 20px, 1.875vw); }
.section-recruit__link-button-more { width: min(460px, 100%); margin: 0 auto; }
.section-recruit__link { width: 100%; border: 1px solid #fff; padding: 24px 74px 24px 30px; display: flex; align-items: center; justify-content: flex-start; gap: 8px; position: relative; color: #fff; transition: 0.15s ease; }
.section-recruit__link-text { font-weight: 600; letter-spacing: 0.8px; color: #fff; }
.section-recruit__link-arrow { position: absolute; right: 19px; top: 50%; width: 12px; height: 12px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: translateY(-50%) rotate(-135deg); transition: border-width 0.28s ease; }
@media screen and (max-width: 768px) {
  .section-recruit { padding: 18vw 10%; }
}
/*=========================================================
   サイトフッター
   =========================================================*/
.site-footer { background: #fff; width: 100%; }
.site-footer__wrapper { width: min(80%, 1400px); margin: 0 auto; padding: min(90px, 6.25vw) 0; }
.site-footer__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid #464646; padding-bottom: 20px; }
.site-footer__top-inner { display: flex; align-items: center; justify-content: flex-start; gap: 16px; }
.site-footer__brand { width: 45px; height: 45px; flex: 0 0 auto; }
.site-footer__brand-img { width: 100%; height: 100%; object-fit: cover; }
.site-footer__brand-text { font-weight: 700; text-align: left; }
.site-footer__social { display: flex; gap: min(19.2px, 1vw); align-items: center; }
.site-footer__social-box { width: clamp(30px, 40px, 2.08vw); height: clamp(30px, 40px, 2.08vw); display: grid; align-items: center; transition: 0.15s ease; }
.site-footer__social-box img { transform: translateZ(0); -webkit-backface-visibility: hidden; will-change: transform; image-rendering: -webkit-optimize-contrast; shape-rendering: crispEdges; text-rendering: geometricPrecision; }
.site-footer__columns { padding: 30px 0 30px; border-bottom: 1px solid #000; }
.site-footer__col:not(:last-of-type) { margin-bottom: 30px; }
.site-footer__heading { font-family: "Jost", system-ui, sans-serif; color: #ff6216; letter-spacing: 1.92px; margin-bottom: 10px; }
.site-footer__list { display: flex; flex-wrap: wrap; gap: 16px; }
.site-footer__link { font-size: 14px; line-height: 1.4; transition: 0.15s ease; }
.site-footer__offers { width: 100%; display: flex; justify-content: flex-end; gap: min(16px, 2vw); padding-top: 30px; }
.site-footer__offer { width: min(200px, 48%); background: #464646; color: #fff; display: grid; place-items: center; font-weight: 500; transition: 0.15s ease; }
.site-footer__copyright { display: flex; justify-content: center; padding-top: 60px; }
.site-footer__copyright p { font-weight: 500; font-size: 12px; color: #ff6216; }
@media (max-width: 768px) {
  .site-footer__top { display: block; text-align: center; }
  .site-footer__top > *:not(:last-child) { margin-bottom: 20px; }
  .site-footer__brand-text { white-space: normal; font-size: 14px; }
  .site-footer__social { justify-content: flex-end; gap: 12px; }
  .site-footer__list { max-width: 100%; }
  .site-footer__offers { justify-content: center; flex-wrap: wrap; justify-content: flex-start; }
}
/*=========================================================
   固定ページ: トイカツ道場について
   =========================================================*/
.about-page { width: 100%; background: #e9e9e9; }
.about-page__follow-area { position: relative; z-index: 1; }
.about-page__hero { width: 100%; height: auto; aspect-ratio: 1920/715; position: relative; border-bottom: 1px solid #ff6216; background: url("../images/main_background.jpg") center center/cover no-repeat; overflow: hidden; }
.about-page__hero::after { position: absolute; inset: 0; top: 0; left: 0; content: ""; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.88); }
.side-object__about { left: -4px; top: 54px; z-index: 3; }
.side-object__about .side-object__sidebar-img { height: 533px; }
.side-object__beginner { left: -4px; top: 54px; z-index: 3; }
.side-object__beginner .side-object__sidebar-img { height: 533px; }
.about-page__hero-heading { position: absolute; top: 55%; left: 8%; transform: translate3d(0, -50%, 0); z-index: 3; }
.about-page__kicker { margin: 0 0 8px 6px; text-align: left; font-family: "Jost", system-ui, sans-serif; font-size: 18px; letter-spacing: 2.16px; color: #ff6216; line-height: 1; }
.about-page__title { margin: 0; text-align: left; font-weight: 900; font-size: min(60px, 3.2vw); letter-spacing: 2.4px; color: #ff6216; line-height: 1.2; }
.about-page__concept { position: relative; width: 100%; overflow: hidden; }
.about-page__concept-inner { padding: min(82px, 5.4vw) 0 min(96px, 6.25vw); }
.about-page__hero-points { display: flex; gap: min(34px, 1.8vw); position: absolute; bottom: 6%; right: 4%; z-index: 3; }
.about-page__hero-point-head { display: flex; align-items: center; justify-content: center; gap: 10px; }
.about-page__hero-point-head img { width: min(45px, 2.35vw); height: min(45px, 2.35vw); opacity: 0.2; }
.about-page__hero-point { text-align: center; }
.about-page__hero-point-value { margin: 0; color: #ff4d00; font-family: "Jost", system-ui, sans-serif; font-weight: 700; font-size: min(48px, 2.5vw); line-height: 1; }
.about-page__hero-point-value span { margin-left: 3px; font-size: min(14px, 0.75vw); }
.about-page__hero-point-text { margin: 4px 0 0; font-size: clamp(10px, 12px, 0.625vw); line-height: 1.2; white-space: nowrap; }
.about-page__message-block { position: relative; display: grid; grid-template-columns: 420px 1fr; gap: min(58px, 3.1vw); margin-bottom: min(48px, 3vw); }
.about-page__message-object--ceo { position: absolute; right: -36px; bottom: -36px; font-family: "Jost", system-ui, sans-serif; font-size: min(228px, 12.5vw); font-weight: 700; letter-spacing: -4px; line-height: 1; text-align: right; color: rgba(255, 255, 255, 0.6); pointer-events: none; z-index: 0; }
.about-page__message-object--ceo p { margin: 0; }
.about-page__message-object--logo { position: absolute; left: 50%; top: 50%; width: min(860px, 60vw); transform: translate(-48%, -50%); opacity: 0.08; pointer-events: none; z-index: 0; }
.about-page__message-object--logo img { width: 100%; display: block; }
.about-page__message-photo { position: relative; z-index: 1; align-self: start; background: #fff; overflow: hidden; }
.about-page__message-photo img { width: 100%; max-width: none; aspect-ratio: 420/565; object-fit: cover; }
.about-page__message-body { position: relative; z-index: 1; }
.about-page__message-head { margin: 0 0 26px; padding-bottom: 24px; color: #ff6216; font-family: "Jost", system-ui, sans-serif; letter-spacing: 8px; white-space: nowrap; border-bottom: 1px solid #ff6216; }
.about-page__message-body p { margin: 0 0 16px; font-weight: 500; letter-spacing: 0.5px; line-height: 2; }
.about-page__profile { display: flex; align-items: flex-end; justify-content: space-between; border-top: 1px solid #c7c7c7; padding: 30px 0; }
.about-page__profile-main { max-width: 560px; }
.about-page__profile-title { font-weight: 700; margin-bottom: 10px; }
.about-page__profile-social { display: flex; gap: clamp(12px, 19.2px, 1vw); }
.about-page__profile-social a { width: clamp(30px, 40px, 2.08vw); height: clamp(30px, 40px, 2.08vw); display: inline-flex; align-items: center; justify-content: center; transition: 0.15s ease; }
.about-page__related-links { border-top: 1px solid #c7c7c7; padding-top: 30px; }
.about-page__related-links li { margin: 0 0 10px; }
.about-page__related-links li a { text-decoration: underline; }
@media (max-width: 768px) {
  .about-page__hero { aspect-ratio: 400/415; background: url("../images/main_background_sp.jpg") center center/cover no-repeat; }
  .about-page__hero-heading { top: 50%; }
  .about-page__title { font-size: 7vw; }
  .about-page__kicker { font-size: 14px; letter-spacing: 1.4px; }
  .about-page__hero-points { width: 100%; justify-content: space-between; right: auto; bottom: 5%; padding: 0 3%; }
  .about-page__hero-point-head { gap: 6px; }
  .about-page__hero-point-head img { width: 24px; height: 24px; }
  .about-page__hero-point-value { font-size: 28px; }
  .about-page__hero-point-value span { font-size: 11px; }
  .about-page__message-object--ceo { bottom: 0; right: 0; font-size: 17vw; }
  .about-page__message-block { grid-template-columns: 1fr; }
  .about-page__profile { flex-direction: column; gap: 5vw; }
}
/*=========================================================
   アーカイブ: 道場
   =========================================================*/
.archive-dojo { width: 100%; background: #eee; }
.archive-dojo__section { position: relative; padding: 200px 0 120px; }
.side-object__archive-dojo { left: -4px; top: 139px; }
.side-object__archive-dojo .side-object__sidebar-img { height: 441px; }
.archive-dojo__heading { text-align: center; margin-bottom: min(130px, 6.77vw); }
.archive-dojo__kicker { margin: 0 0 16px; font-family: "Jost", system-ui, sans-serif; font-size: 24px; letter-spacing: 2.88px; line-height: 1; color: #ff6216; }
.archive-dojo__title { margin: 0; font-size: min(60px, 3.2vw); font-weight: 900; letter-spacing: 2.4px; color: #ff6216; }
.archive-dojo__section .section__wrapper_w_1400 { padding: 0; }
.archive-dojo__navigation { margin-bottom: 40px; }
.archive-dojo__pref-tabs { display: grid; grid-template-columns: repeat(9, 1fr); }
.archive-dojo__pref-tab { border: 0; border-right: 1px solid #fff; border-bottom: 1px solid #fff; padding: 10px 0; background: #686868; color: #fff; cursor: pointer; transition: 0.15s ease; }
.archive-dojo__pref-tab--active { background: #fff; color: #ff6216; font-weight: 700; }
.archive-dojo__city-tabs { background: #fff; padding: 24px 0; display: none; overflow: hidden; transform: translateY(-8px); transition: max-height 0.35s ease, opacity 0.25s ease, transform 0.25s ease, padding 0.25s ease; pointer-events: none; }
.archive-dojo__city-tabs.is-open { display: flex; justify-content: center; flex-wrap: wrap; transform: translateY(0); pointer-events: auto; }
.archive-dojo__city-tab { border: 0; background: transparent; padding: 10px 16px; color: #6d6d6d; letter-spacing: 0.8px; cursor: pointer; transition: 0.15s ease; }
.archive-dojo__city-tab--active { color: #ff6216; font-weight: 700; }
.archive-dojo__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.archive-dojo-card.is-archive-dojo-card-hidden { display: none !important; }
.archive-dojo-card { border: 1px solid #464646; overflow: visible; display: flex; flex-direction: column; justify-content: space-between; position: relative; transition: border-color 0.15s ease; }
.archive-dojo-card:not(.archive-dojo-card--no-link)::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; background: linear-gradient(#ff6216, #ff6216) left top/0 1px no-repeat, linear-gradient(#ff6216, #ff6216) right top/1px 0 no-repeat, linear-gradient(#ff6216, #ff6216) right bottom/0 1px no-repeat, linear-gradient(#ff6216, #ff6216) left bottom/1px 0 no-repeat; transition: inset 0.15s ease; }
.archive-dojo-card__link-main { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: space-between; min-height: 0; width: 100%; text-decoration: none; color: inherit; outline-offset: 2px; }
.archive-dojo-card__link-main:focus-visible { outline: 2px solid #ff6216; }
.archive-dojo-card__name,
.archive-dojo-card__tel,
.archive-dojo-card__address,
.archive-dojo-card__link { transition: color 0.15s ease; }
.archive-dojo-card__link span { transition: border-color 0.15s ease; }
.archive-dojo-card__photo.section-dojo__slide-photo { transition: border-bottom-color 0.15s ease; }
.archive-dojo-card__photo.section-dojo__slide-photo .section-dojo__slide-img { display: block; height: 100%; }
.archive-dojo-card__detail { padding: 16px 14px; }
.archive-dojo-card__name { margin: 0 0 16px; font-size: 20px; font-weight: 700; line-height: 1.2; color: #464646; }
.archive-dojo-card__tel { display: inline-block; margin-bottom: 8px; font-size: 14px; font-weight: 700; line-height: 1; text-decoration: underline; color: #464646; }
.archive-dojo-card__address { margin: 0; font-size: 14px; line-height: 1.5; color: #464646; }
.archive-dojo-card__link { border-top: 1px solid #464646; color: #464646; padding: 8px 16px; font-weight: 500; letter-spacing: 0.8px; display: flex; align-items: center; justify-content: space-between; }
.archive-dojo-card__link span { width: 10px; height: 10px; border-top: 1px solid #464646; border-right: 1px solid #464646; transform: rotate(45deg); }
@media (max-width: 768px) {
  .archive-dojo__section { padding: 30vw 0 18vw; }
  .archive-dojo__heading { margin-bottom: 18vw; }
  .archive-dojo__kicker { font-size: 14px; letter-spacing: 1.4px; }
  .archive-dojo__title { font-size: 7vw; }
  .archive-dojo__navigation { margin-bottom: 12vw; }
  .archive-dojo__pref-tabs { grid-template-columns: repeat(4, 1fr); }
  .archive-dojo__list { grid-template-columns: repeat(1, minmax(0, 1fr)); }
}
/*=========================================================
   アーカイブ: インストラクター
   =========================================================*/
.archive-instructor { width: 100%; background: #e9e9e9; }
.archive-instructor__section { position: relative; padding: 200px 0 120px; }
.archive-instructor-list { position: relative; width: 100%; padding-bottom: min(100px, 6.5vw); }
.archive-instructor-list__heading { text-align: center; margin-bottom: min(130px, 6.77vw); }
.archive-instructor-list__kicker { margin: 0 0 18px; font-family: "Jost", system-ui, sans-serif; font-size: 24px; letter-spacing: 2.88px; color: #ff6216; line-height: 1; }
.archive-instructor-list__title { margin: 0; font-weight: 900; font-size: min(60px, 4.7vw); letter-spacing: 2.4px; color: #ff6216; line-height: 1.2; }
.archive-instructor-list__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: min(12px, 0.78vw); row-gap: min(40px, 2.6vw); }
.archive-instructor-list__empty { grid-column: 1/-1; margin: 0; text-align: center; font-size: 15px; line-height: 1.6; }
.archive-instructor-list__card { background: transparent; }
.archive-instructor-list__link-main { display: block; color: inherit; text-decoration: none; outline-offset: 2px; }
.archive-instructor-list__link-main:focus-visible { outline: 2px solid #ff6216; }
.archive-instructor-list__photo { width: 100%; aspect-ratio: 151/182; overflow: visible; position: relative; border: 1px solid #9d9d9d; background: #e9e9e9; transition: border-color 0.15s ease, background-color 0.15s ease; }
.archive-instructor-list__photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; z-index: 1; background: linear-gradient(#ff6216, #ff6216) left top/0 1px no-repeat, linear-gradient(#ff6216, #ff6216) right top/1px 0 no-repeat, linear-gradient(#ff6216, #ff6216) right bottom/0 1px no-repeat, linear-gradient(#ff6216, #ff6216) left bottom/1px 0 no-repeat; transition: inset 0.15s ease; }
.archive-instructor-list__photo img { width: 100%; height: auto; display: block; position: relative; z-index: 0; }
.archive-instructor-list__body { padding-top: 6px; }
.archive-instructor-list__meta-label { margin: 0 0 2px; font-family: "Jost", system-ui, sans-serif; font-size: 12px; line-height: 1; letter-spacing: 0.56px; color: #ff6216; }
.archive-instructor-list__name { margin: 0; font-weight: 700; font-size: clamp(16px, 1.14vw, 22px); letter-spacing: 0.64px; line-height: 1.3; color: #464646; transition: color 0.15s ease; }
.archive-instructor-list__kana { margin: 0 0 6px; font-size: 14px; line-height: 1.4; color: #464646; transition: color 0.15s ease; }
.archive-instructor-list__specialty { margin: 0; font-size: 14px; line-height: 1.4; color: #464646; transition: color 0.15s ease; }
@media (max-width: 1200px) {
  .archive-instructor-list__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .archive-instructor-list__kicker { font-size: 18px; letter-spacing: 2.2px; }
  .archive-instructor-list__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7vw 3vw; }
}
@media (max-width: 768px) {
  .archive-instructor__section { padding: 30vw 0 18vw; }
  .archive-instructor-list__heading { margin-bottom: 12vw; }
  .archive-instructor-list__kicker { font-size: 14px; letter-spacing: 1.4px; }
  .archive-instructor-list__title { font-size: 7vw; }
}
/*=========================================================
   アーカイブ: プログラム
   =========================================================*/
.archive-program { width: 100%; background: #eee; }
.archive-program__section { position: relative; padding: 200px 0 120px; }
.side-object__archive-program { left: -4px; top: 139px; }
.side-object__archive-program .side-object__sidebar-img { height: 666px; }
.archive-program__heading { text-align: center; margin-bottom: min(130px, 6.77vw); }
.archive-program__kicker { margin: 0 0 16px; font-family: "Jost", system-ui, sans-serif; font-size: 24px; line-height: 1; letter-spacing: 2.88px; color: #ff6216; }
.archive-program__title { margin: 0; font-size: min(60px, 3.2vw); font-weight: 900; letter-spacing: 2.4px; color: #ff6216; }
.archive-program__section .section__wrapper_w_1400 { padding: 0; }
.archive-program__nav { width: 100%; margin-bottom: 72px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); background: #fff; }
.archive-program__tab { border: 0; background: transparent; min-height: 48px; padding: 16px 8px; font-weight: 500; letter-spacing: 0.8px; transition: 0.15s ease; cursor: pointer; }
.archive-program__tab--active { background: #ff6216; color: #fff; }
.program-category { margin-bottom: 56px; }
.program-category:last-child { margin-bottom: 0; }
.program-category__heading { border-left: 8px solid #ff6216; padding-left: 24px; margin-bottom: 56px; }
.program-category__heading h2 { margin: 0; font-size: 32px; font-weight: 700; letter-spacing: 1.6px; }
.program-category__heading p { margin: 8px 0 0; font-weight: 500; letter-spacing: 0.8px; }
.program-category__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 48px; }
.program-card__title { margin: 0 0 16px; color: #ff6216; font-weight: 700; line-height: 1.4; }
.program-card__image { margin-bottom: 16px; aspect-ratio: 160/90; overflow: hidden; }
.program-card__image img { width: 100%; height: 100%; object-fit: cover; }
.program-card__movie { border: 1px solid #ff0000; color: #ff0000; padding: 10px 18px; margin-bottom: 16px; text-align: left; font-size: 12px; line-height: 1; transition: 0.15s ease; cursor: pointer; display: inline-block; }
.program-card__movie::before { content: ""; display: inline-block; width: 0; height: 0; border-top: 4px solid transparent; border-bottom: 4px solid transparent; border-left: 8px solid #ff0000; margin-right: 6px; }
.program-card__text { margin: 0; font-size: 14px; line-height: 1.5; }
@media (max-width: 1200px) {
  .archive-program__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .program-category__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; }
}
@media (max-width: 768px) {
  .archive-program__section { padding: 30vw 0 18vw; }
  .archive-program__heading { margin-bottom: 12vw; }
  .archive-program__kicker { font-size: 14px; letter-spacing: 1.4px; }
  .archive-program__title { font-size: 7vw; }
  .archive-program__nav { margin-bottom: 12vw; grid-template-columns: 1fr; }
  .program-category { margin-bottom: 48px; }
  .program-category__heading { margin-bottom: 32px; padding-left: 16px; border-left-width: 6px; }
  .program-category__heading h2 { font-size: 24px; letter-spacing: 0.8px; }
  .program-category__heading p { font-size: 14px; letter-spacing: 0.4px; }
  .program-category__grid { grid-template-columns: 1fr; gap: 36px; }
}
/*=========================================================
   固定ページ: 料金システム
   =========================================================*/
.price-page { width: 100%; background: #eee; }
.price-page__section { position: relative; padding: 200px 0 120px; }
.side-object__price { left: -4px; top: 139px; }
.side-object__price .side-object__sidebar-img { height: 377px; }
.price-page__heading { text-align: center; margin-bottom: min(130px, 6.77vw); }
.price-page__kicker { margin: 0 0 16px; color: #ff6216; font: 24px/0.93 "Jost", sans-serif; letter-spacing: 2.88px; }
.price-page__title { margin: 0 0 24px; color: #ff6216; font-size: min(60px, 3.2vw); font-weight: 900; letter-spacing: 2.4px; }
.price-page__lead { margin: 0 0 12px; font-size: 20px; font-weight: 700; }
.price-page__lead span { display: inline-block; margin-left: 8px; padding: 2px 10px; background: #ff6216; color: #fff; }
.price-page__sublead { margin: 0; font-weight: 700; line-height: 2; }
.plan-list-section, .button__price-page, .price-table, .price-campaign { margin-bottom: min(80px, 12vw); }
.plan-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 0; }
.plan-list__notes-wrap { grid-column: 1/-1; }
.plan-card { background: #fff; border: 1px solid; text-align: center; overflow: hidden; }
.plan-card__heading { position: relative; border-bottom: 1px solid currentColor; padding: min(40px, 2vw) min(24px, 1.25vw); }
.plan-card__heading::after { content: ""; border: 16px solid; position: absolute; top: -16px; left: -16px; width: 32px; height: 32px; transform: rotate(45deg); }
.plan-card__en { margin: 0 0 8px; font-size: 12px; line-height: 1.2; letter-spacing: 3.84px; font-family: "Jost", sans-serif; }
.plan-card__tagline { margin: 0; font-size: 24px; font-weight: 900; line-height: 1.2; }
.plan-card__content { padding: min(52px, 2.7vw) min(24px, 1.25vw); }
.plan-card__for { color: #464646; margin: 0 0 min(32px, 1.66vw); font-weight: 700; }
.plan-card__price { margin: 0 0 8px; font-weight: 700; }
.plan-card__price span { font: 700 52px/1 "Barlow Semi Condensed", "Noto Sans JP", sans-serif; letter-spacing: 2.6px; }
.plan-card__meta { color: #464646; margin: 0 0 24px; font-weight: 700; line-height: 1.5; }
.plan-card__name-row { display: flex; align-items: center; justify-content: center; gap: 6px; margin-bottom: 16px; }
.plan-card__name { margin: 0; font-size: 42px; font-weight: 900; line-height: 1; }
.plan-card__kaiin { margin: 0; width: 20px; }
.plan-card__kaiin span { color: #464646; display: block; font-weight: 700; line-height: 1; }
.plan-card__recommend { color: #464646; margin: 0; font-weight: 700; }
.plan-card--premium { border-color: #c0974a; color: #c0974a; }
.plan-card--wear { border-color: #fd3561; color: #fd3561; }
.plan-card--locker { border-color: #5a75fa; color: #5a75fa; }
.plan-card--regular { border-color: #10b284; color: #10b284; }
.price-page__notes { margin: 0 0 42px; padding: 0; list-style: none; font-size: 14px; line-height: 1.5; }
.price-page__notes li { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.price-page__notes li:last-child { margin-bottom: 0; }
.price-page__notes li p { margin: 0; }
.price-page__student-link { color: #ff6216; text-decoration: underline; text-underline-offset: 2px; transition: opacity 0.15s ease; }
.price-page__student-link:focus-visible { outline: 2px solid #ff6216; outline-offset: 2px; border-radius: 2px; }
@media (hover: hover) {
  .price-page__student-link:hover { opacity: 0.7; }
}
.price-modal { position: fixed; inset: 0; z-index: 1100; display: flex; align-items: center; justify-content: center; padding: 24px; }
.price-modal[hidden] { display: none !important; }
.price-modal { opacity: 0; transition: opacity 0.22s ease; pointer-events: none; }
.price-modal.is-open { opacity: 1; pointer-events: auto; }
.price-modal__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.55); }
.price-modal__dialog { position: relative; width: min(900px, 100%); max-height: calc(100vh - 48px); overflow: auto; background: #fff; border: 1px solid #ff6216; border-radius: 8px; padding: 40px 28px 28px; box-sizing: border-box; outline: 0; transform: translateY(12px); opacity: 0; transition: transform 0.22s ease, opacity 0.22s ease; }
.price-modal.is-open .price-modal__dialog { transform: translateY(0); opacity: 1; }
.price-modal__close { position: absolute; right: 16px; top: 16px; width: 32px; height: 32px; border: 0; background: transparent; cursor: pointer; }
.price-modal__close::before, .price-modal__close::after { content: ""; position: absolute; left: 15px; top: 6px; width: 2px; height: 20px; background: #464646; }
.price-modal__close::before { transform: rotate(45deg); }
.price-modal__close::after { transform: rotate(-45deg); }
.price-modal__title { margin: 0 0 20px; text-align: center; color: #ff6216; font-size: 28px; font-weight: 900; letter-spacing: 1.2px; }
.price-modal__table-wrap { overflow-x: auto; }
.price-modal__table { width: 100%; min-width: 620px; border-collapse: collapse; }
.price-modal__table th, .price-modal__table td { border: 1px solid #c0c0c0; padding: 12px 10px; text-align: center; white-space: nowrap; }
.price-modal__table thead th { background: #7e7e7e; color: #fff; font-weight: 700; }
.price-modal__table tbody th { background: #f7f7f7; font-weight: 700; }
.price-modal__note { margin: 14px 0 0; font-size: 13px; color: #464646; }
body.is-price-modal-open { overflow: hidden; }
.price-table { width: min(1000px, 100%); margin: 0 auto min(80px, 12vw); }
.price-table__title { margin: 0 0 12px; text-align: center; color: #ff6216; font-size: 24px; font-weight: 700; }
.price-table__grid { display: grid; }
.price-table__grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #464646; border-bottom: 1px solid #464646; }
.price-table__cell { border-right: 1px solid #464646; padding: 0; text-align: center; }
.price-table__cell:last-child { border-right: 0; }
.price-table__cell p { margin: 0; font-weight: 700; line-height: 1.5; }
.price-table__label { min-height: 85px; padding: 10px 20px 8px; display: flex; align-items: center; justify-content: center; }
.price-table__price { min-height: 56px; border-top: 1px solid #464646; display: flex; align-items: flex-end; justify-content: center; gap: 4px; padding: 8px 10px; margin-top: 0 !important; }
.price-table__price span { font: 700 40px/1 "Barlow Semi Condensed", sans-serif; letter-spacing: 2px; margin: 0; }
.price-table__notes { margin: 12px 0 0; padding: 0; list-style: none; font-size: 14px; }
.price-table__notes li { display: flex; justify-content: center; gap: 8px; margin-bottom: 4px; }
.price-table__notes li:last-child { margin-bottom: 0; }
.price-table__notes p { margin: 0; }
.price-table--rental .price-table__title { margin-bottom: 24px; }
.price-table--rental .price-table__grid--three { border-top: 0; border-bottom: 0; }
.price-table--rental .price-table__cell { border-right: 1px solid #464646; }
.price-table--rental .price-table__cell:last-child { border-right: 0; }
.price-table--rental .price-table__label { min-height: 85px; padding: 0 64px 8px; line-height: normal; }
.price-table--rental .price-table__price { min-height: 56px; border-top: 0; padding: 8px 0 0; line-height: 1.5; }
.price-table--rental .price-table__notes { margin-top: 40px; }
.price-table--rental .price-table__notes li { justify-content: flex-start; }
.price-table--join .price-table__title { margin-bottom: 24px; }
.price-table--join .price-table__grid--three { border-top: 0; border-bottom: 0; }
.price-table--join .price-table__cell { border-right: 1px solid #464646; }
.price-table--join .price-table__cell:last-child { border-right: 0; }
.price-table--join .price-table__label--join { min-height: 35px; padding: 8px 64px; line-height: normal; letter-spacing: 0.8px; }
.price-table--join .price-table__price { min-height: 56px; border-top: 0; padding: 8px 64px; line-height: 1.5; }
.price-campaign__amount del, .price-campaign__amount strong, .personal-price__table tbody td { font-family: "Barlow Semi Condensed", "Noto Sans JP", sans-serif; }
.price-campaign { width: min(1000px, 100%); margin: 0 auto min(80px, 12vw); border: 4px solid #d80000; padding: 72px 20px; background: #fff; text-align: center; position: relative; overflow: hidden; }
.price-campaign h3 { margin: 0 0 16px; color: #d80000; font-size: min(40px, 6vw); font-weight: 900; }
.price-campaign__desc { margin: 0 0 16px; color: #d80000; font-weight: 500; letter-spacing: 0.8px; }
.price-campaign__amount { margin: 0; display: flex; align-items: flex-end; justify-content: center; gap: 4px; color: #d80000; line-height: 1; }
.price-campaign__amount span { font-weight: 700; letter-spacing: 0.8px; margin-bottom: 10px; }
.price-campaign__amount del { font-size: 56px; text-decoration-thickness: 2px; letter-spacing: 2px; }
.price-campaign__amount img { width: 39px; height: 13px; margin: 0 4px 18px; object-fit: contain; }
.price-campaign__amount strong { font-size: 80px; line-height: 1; letter-spacing: 4px; }
.price-campaign__ribbon { position: absolute; margin: 0; padding: 6px 0; color: #d80000; font: 14px/1 "Jost", sans-serif; letter-spacing: 4.2px; white-space: nowrap; }
.price-campaign__ribbon--top { top: -4px; left: -16px; }
.price-campaign__ribbon--bottom { bottom: -4px; left: -8px; }
.price-campaign__ribbon--left { top: 140px; left: -211px; transform: rotate(90deg); }
.price-campaign__ribbon--right { right: -211px; top: 140px; transform: rotate(-90deg); }
.price-campaign__corner { content: ""; border: 16px solid #d80000; position: absolute; width: 32px; height: 32px; }
.price-campaign__corner--lt { top: -16px; left: -16px; transform: rotate(45deg); }
.price-campaign__corner--lb { left: -16px; bottom: -16px; transform: rotate(-45deg); }
.price-campaign__corner--rt { right: -16px; top: -16px; transform: rotate(45deg); }
.price-campaign__corner--rb { right: -16px; bottom: -16px; transform: rotate(-45deg); }
.price-discount { background: #ffc892; padding: 120px 0; }
.price-discount__inner { width: min(1000px, 80%); margin: 0 auto; }
.discount-box { margin-bottom: 80px; }
.discount-box:last-child { margin-bottom: 0; }
.discount-box__title { margin: 0 0 16px; background: linear-gradient(90deg, #ff4d00, #ffae2b); border: 1px solid #fff; color: #fff; font-size: 24px; font-weight: 700; text-align: center; padding: 24px 10px; }
.discount-box__content { background: #fff; padding: 40px 54px; text-align: center; }
.discount-box--campaign .discount-box__content { padding: 48px 54px; }
.discount-box__content h3 { margin: 0 0 12px; color: #d80000; font-size: 32px; font-weight: 700; }
.discount-box__content p { margin: 0 0 20px; }
.discount-box__content strong { color: #d80000; }
.discount-campaign__item { margin-bottom: 60px; }
.discount-campaign__item:last-of-type { margin-bottom: 48px; }
.discount-campaign__item h3 { display: inline-block; border-bottom: 2px dotted #d80000; padding: 0 42px 16px; margin-bottom: 32px; letter-spacing: 1.6px; }
.discount-campaign__line { margin: 0 0 8px; color: #000; font-weight: 700; letter-spacing: 0.8px; line-height: 1.5; }
.discount-campaign__line--main { font-size: 24px; font-weight: 700; letter-spacing: 1.2px; line-height: 1.43; }
.discount-campaign__item--join-free .discount-campaign__line--main small { font-weight: 700; letter-spacing: 0.8px; }
.discount-campaign__line--amount { color: #d80000; }
.discount-campaign__line--amount strong { font-family: "Barlow Semi Condensed", "Noto Sans JP", sans-serif; font-size: 56px; line-height: 1; letter-spacing: 2px; }
.discount-campaign__item--join-free .discount-campaign__line--amount strong { font-size: 40px; }
.discount-campaign__notes { background: #f1f1f1; padding: 20px; }
.discount-campaign__notes-title { margin: 0 0 16px; text-align: center; font-weight: 700; letter-spacing: 0.8px; }
.discount-campaign__notes-list li { text-align: left; position: relative; padding-left: 16px; font-size: 14px; }
.discount-campaign__notes-list li:not(:last-child) { margin-bottom: 8px; }
.discount-campaign__notes-list li::before { content: "・"; position: absolute; left: 0; top: 0; }
.discount-list { background: #fff; }
.discount-item { position: relative; border-bottom: 8px solid #ffc892; display: grid; grid-template-columns: 180px 1fr; }
.discount-item:last-child { border-bottom: 0; }
.discount-item__label { margin: 0; padding: 48px 20px; border-right: 1px solid #ff6216; color: #ff6216; font-size: 24px; font-weight: 900; text-align: left; }
.discount-item__body { overflow: hidden; padding: 48px 40px; position: relative; }
.discount-item__body::after { content: ""; border: 16px solid #ff6216; position: absolute; right: -16px; bottom: -16px; width: 32px; height: 32px; transform: rotate(-45deg); }
.discount-item__headline { margin: 0 0 13px; color: #ff6216 !important; font-size: 22px; font-weight: 700; line-height: 1.34; letter-spacing: 0.8px; white-space: nowrap; }
.discount-item__headline-main { margin-left: 10px; line-height: 1.2; }
.discount-item__headline strong { color: #ff6216 !important; font-size: 56px; font-family: "Barlow Semi Condensed", "Noto Sans JP", sans-serif; letter-spacing: 2px; }
.discount-item__body p { margin: 0 0 8px; line-height: 1.72; }
.discount-item__note { margin-top: 12px !important; font-size: 14px !important; font-weight: 400 !important; line-height: normal !important; }
.discount-item__body p { line-height: 1.72; }
.discount-item__headline strong { font-size: 40px; }
.personal-price { padding: 100px 0 120px; text-align: center; }
.personal-price__wrapper-heading { margin-bottom: 80px; }
.personal-price__title { margin: 0 0 24px; color: #ff6216; font-size: 32px; font-weight: 700; }
.personal-price__lead { margin: 0 0 48px; }
.personal-price h3 { margin: 0 0 32px; font-size: 24px; font-weight: 700; letter-spacing: 1.2px; }
.personal-price__table { margin-bottom: 80px; }
.personal-price__table h3 span { letter-spacing: 0.8px; }
.personal-price__table table { width: 100%; border-collapse: collapse; }
.personal-price__table th, .personal-price__table td { border: 1px solid #c0c0c0; padding: 0; }
.personal-price__table th { background: #7e7e7e; color: #fff; height: 60px; font-weight: 500; letter-spacing: 1.2px; }
.personal-price__table td { background: #fff; height: 64px; text-align: center; }
.personal-price__table td strong { font-family: "Barlow Semi Condensed", "Noto Sans JP", sans-serif; font-size: 32px; font-weight: 700; line-height: 1; letter-spacing: 1.6px; }
.personal-price__table td span { margin-left: 4px; font-weight: 700; letter-spacing: 0.8px; }
.personal-price__slots { margin-bottom: 80px; }
.personal-price__slots-row { display: grid; grid-template-columns: 180px 1fr; border: 1px solid #7e7e7e; margin-bottom: 8px; }
.personal-price__slots-row:last-child { margin-bottom: 0; }
.personal-price__slots-head { border-right: 1px solid #7e7e7e; padding: 24px; font-size: 24px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.personal-price__slots-body { padding: 24px 32px; text-align: left; font-size: 24px; letter-spacing: 1.2px; display: flex; align-items: center; gap: 24px; }
.personal-price__app-badges { margin: 0; display: inline-flex; align-items: center; gap: 24px; }
.personal-price__app-badge { display: block; width: auto; height: 66px; }
.personal-price__order { margin-bottom: 80px; }
.personal-price__order h3 { margin-bottom: 32px; }
.personal-price__order-lead, .personal-price__order-note { margin: 0; }
.personal-price__order-lead { margin-bottom: 8px; }
.personal-price__order-note { margin-top: 32px; }
.personal-price__notes-wrap { width: 100%; }
.personal-price__notes-wrap h3 { margin: 0 0 32px; font-size: 24px; font-weight: 700; letter-spacing: 1.2px; text-align: center; }
.personal-price__notes { margin: 0; padding: 0; list-style: none; font-size: 14px; letter-spacing: 0.7px; }
.personal-price__notes li { display: flex; gap: 8px; margin-bottom: 13px; }
.personal-price__notes li:last-child { margin-bottom: 0; }
.personal-price__notes li p { margin: 0; text-align: left; }
@media (max-width: 1200px) {
  .plan-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .discount-item { grid-template-columns: 140px 1fr; }
  .discount-item__headline { white-space: normal; }
  .price-campaign__ribbon--left, .price-campaign__ribbon--right { display: none; }
  .price-campaign__amount del { font-size: 9.5vw; }
}
@media (max-width: 768px) {
  .price-page__section { padding: 30vw 0 18vw; }
  .price-page__heading { width: 80%; margin: 0 auto 12vw; }
  .price-page__kicker { font-size: 14px; letter-spacing: 1.4px; }
  .price-page__title { font-size: 7vw; }
  .price-page__lead span { margin-top: 8px; }
  .plan-list { grid-template-columns: 1fr; }
  .plan-card__heading { padding: 20px 10px; }
  .plan-list-section, .button__price-page, .price-table, .price-campaign { margin-bottom: 12vw; }
  .price-modal { padding: 12px; }
  .price-modal__dialog { max-height: calc(100vh - 24px); padding: 36px 16px 16px; }
  .price-modal__title { font-size: 20px; margin-bottom: 14px; }
  .price-modal__table { min-width: 560px; }
  .price-modal__table th, .price-modal__table td { padding: 10px 8px; font-size: 14px; }
  .price-table__grid--three { grid-template-columns: 1fr; }
  .price-table__cell { border-right: 0; border-bottom: 1px solid #464646; display: flex; align-items: center; justify-content: space-between; }
  .price-table__cell:last-child { border-bottom: 0; }
  .price-table--rental .price-table__title { margin-bottom: calc(6vw - 10px); }
  .price-table--rental .price-table__label { min-height: auto; padding: 20px 10px 20px 0; text-align: left; width: 50%; justify-content: flex-start; }
  .price-table--rental .price-table__price { min-height: auto; padding: 0; }
  .price-table__price span { font-size: 32px; }
  .price-table--rental .price-table__cell { border-right: 0; }
  .price-table--join .price-table__cell { border-right: 0; }
  .price-table--join .price-table__title { margin-bottom: calc(6vw - 10px); }
  .price-table--join .price-table__label--join { min-height: auto; padding: 20px 10px 20px 0; text-align: left; width: 50%; justify-content: flex-start; }
  .price-table--join .price-table__price { min-height: auto; padding: 0; }
  .price-campaign { padding: 56px 25px; }
  .price-campaign__amount { flex-wrap: wrap; row-gap: 6px; }
  .price-campaign__amount strong { font-size: 15vw; }
  .discount-box__title { font-size: 6vw; }
  .discount-box--campaign .discount-box__content { padding: 4vw; }
  .discount-campaign__item h3 { font-size: 5vw; }
  .discount-item { grid-template-columns: 1fr; }
  .discount-item__label { border-right: 0; border-bottom: 1px solid #ff6216; padding: 16px; font-size: 18px; text-align: center; }
  .discount-item__headline strong { font-size: 7vw; }
  .discount-item__body { padding: 16px; }
  .discount-item__body p span { display: block; text-align: center; margin-left: 0; }
  .personal-price__title { font-size: 7vw; }
  .personal-price h3 { font-size: 6vw; }
  .personal-price__table td strong { font-size: 16px; }
  .personal-price__table td span { margin-left: 0; }
  .personal-price__slots-row { grid-template-columns: 1fr; }
  .personal-price__slots-head { border-right: 0; border-bottom: 1px solid #7e7e7e; justify-content: flex-start; font-size: 18px; }
  .personal-price__slots-body { flex-direction: column; align-items: flex-start; gap: 12px; font-size: 16px; }
  .personal-price__app-badges { display: flex; justify-content: center; gap: 12px; }
  .personal-price__app-badge { height: 50px; }
}
/*=========================================================
   アーカイブ: 新着情報
   =========================================================*/
.archive-news { width: 100%; background: #eee; overflow-x: hidden; }
.archive-news__heading { position: relative; padding: 200px 0 130px; }
.side-object__archive-news { left: -4px; top: 139px; }
.side-object__archive-news .side-object__sidebar-img { height: 333px; }
.archive-news__heading-inner { text-align: center; }
.archive-news__kicker { margin: 0 0 16px; font-family: "Jost", system-ui, sans-serif; font-size: 24px; letter-spacing: 2.88px; line-height: 1; color: #ff6216; }
.archive-news__title { margin: 0; font-size: min(60px, 3.2vw); font-weight: 900; letter-spacing: 2.4px; color: #ff6216; }
.archive-news #campaign-banner { margin-bottom: 26px; }
.archive-news__list-section { padding-bottom: 120px; }
.archive-news__container { width: min(80%, 1200px); margin: 0 auto; }
.archive-news__list { margin: 0 0 16px; padding: 0; list-style: none; }
.archive-news__item { width: 100%; position: relative; border-bottom: 1px solid #464646; padding: 32px 0; }
.archive-news__item:not(.archive-news__item--empty)::after { content: ""; position: absolute; left: 0; bottom: -1px; width: 100%; height: 1px; background: #ff6216; transform: scaleX(0); transform-origin: left center; transition: transform 0.15s ease; pointer-events: none; z-index: 1; }
.archive-news__item:has(.archive-news__item-link:focus-visible)::after { transform: scaleX(1); }
.archive-news__item-link { display: block; color: inherit; text-decoration: none; outline-offset: 4px; }
.archive-news__item-link:focus-visible { outline: 2px solid #ff6216; }
.archive-news__meta { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.archive-news__tags { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.archive-news__date { margin: 0 16px 0 0; font-family: "Anton", system-ui, sans-serif; font-size: 18px; letter-spacing: 2.16px; color: rgba(255, 98, 22, 0.5); }
.archive-news__tag { border: 1px solid #ff6216; padding: 4px 12px; font-size: 14px; color: #ff6216; line-height: 1; }
.archive-news__text { margin: 0; font-weight: 500; line-height: 1.5; letter-spacing: 0.2px; color: #464646; transition: color 0.15s ease; }
.archive-news__pagination { width: 100%; margin-top: 16px; display: flex; justify-content: center; align-items: center; gap: 0; }
.archive-news__page { border: 1px solid #464646; margin-left: -1px; display: flex; align-items: center; justify-content: center; font-family: "Jost", system-ui, sans-serif; text-decoration: none; background: #eee; padding: 16px 32px; transition: 0.15s ease; }
.archive-news__page--prev, .archive-news__page--next { gap: 14px; padding: 16px; }
.archive-news__page-arrow { display: block; width: 6px; height: 6px; flex-shrink: 0; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; }
.archive-news__page-arrow--prev { transform: rotate(45deg); }
.archive-news__page-arrow--next { transform: rotate(-135deg); }
.archive-news__page--active { color: #ff6216; border-color: #ff6216; position: relative; z-index: 1; }
.archive-news__page--dots { pointer-events: none; cursor: default; color: #464646; }
@media (max-width: 768px) {
  .archive-news__heading { padding: 18vw 0; }
  .archive-news__kicker { font-size: 14px; letter-spacing: 1.4px; }
  .archive-news__title { font-size: 7vw; }
  .archive-news__date { width: 100%; display: block; }
  .archive-news__item { padding: 20px 0; }
  .archive-news__meta { margin-bottom: 12px; }
  .archive-news__page { padding: 10px 20px; }
  .archive-news__page--prev, .archive-news__page--next { padding: 10px; }
}
/*=========================================================
   詳細ページ: 新着情報
   =========================================================*/
.news-single { width: 100%; background: #eee; overflow-x: hidden; }
.news-single__article-section { position: relative; padding: 180px 0 120px; }
.side-object__news-single { left: -8px; top: 141px; }
.side-object__news-single .side-object__sidebar-img { height: 333px; }
.news-single__article { width: min(80%, 1200px); margin: 0 auto; }
.news-single__heading { margin-bottom: 64px; }
.news-single__meta { display: flex; align-items: center; gap: 24px; margin-bottom: 16px; }
.news-single__date { margin: 0; font-family: "Anton", system-ui, sans-serif; font-size: 18px; letter-spacing: 2.16px; color: rgba(255, 98, 22, 0.5); }
.news-single__tags { display: flex; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.news-single__tag { border: 1px solid #ff6216; padding: 4px 12px; font-size: 14px; color: #ff6216; line-height: 1; }
.news-single__title { margin: 0; font-size: 24px; font-weight: 700; line-height: 1.7; }
.news-single__thumb { margin: 24px 0 64px; }
.news-single__thumb-img { display: block; width: 100%; height: auto; }
.news-single__body { margin-bottom: 64px; }
.news-single__body p { margin: 0 0 32px; line-height: 1.8; }
.news-single__body p:last-child { margin-bottom: 0; }
.news-single__body a { color: #ff6216; text-decoration: underline; transition: 0.15s ease; }
.news-single__link-wrap { width: 100%; }
@media (max-width: 768px) {
  .news-single__article-section { padding: 18vw 0; }
  .news-single__meta { margin-bottom: 12px; display: block; }
  .news-single__date { width: 100%; display: block; margin-bottom: 10px; }
  .news-single__title { font-size: 18px; }
  .news-single__thumb { margin: 16px 0 40px; }
  .news-single__body { margin-bottom: 40px; }
  .news-single__body p { margin-bottom: 24px; }
  .news-single__body img { height: auto; }
}
/*=========================================================
   詳細ページ: インストラクター
   =========================================================*/
.instructor-single { width: 100%; background: #eee; overflow-x: hidden; }
.instructor-single__profile-section { position: relative; padding: 180px 0 120px; }
.side-object__instructor-single { left: -4px; top: 139px; }
.side-object__instructor-single .side-object__sidebar-img { height: 614px; }
.instructor-single__container { width: min(80%, 1200px); margin: 0 auto; }
.instructor-single__profile-layout { display: grid; grid-template-columns: 520px 1fr; column-gap: min(62px, 3.23vw); margin-bottom: 76px; }
.instructor-single__photo { border: 1px solid #464646; aspect-ratio: 250/320; overflow: hidden; }
.instructor-single__photo img { width: 100%; height: 100%; object-fit: cover; }
.instructor-single__profile-body { padding-top: 10px; }
.instructor-single__name-block { margin-bottom: 56px; }
.instructor-single__name-label { margin: 0 0 8px; font-family: "Jost", system-ui, sans-serif; font-size: 12px; font-weight: 500; line-height: 1.5; color: #ff4d00; }
.instructor-single__name { margin: 0 0 8px; font-size: min(40px, 2.08vw); font-weight: 700; letter-spacing: 0.8px; line-height: 1.5; }
.instructor-single__name-kana { margin: 0; font-size: 12px; line-height: 1.4; }
.instructor-single__profile-table { margin: 0; }
.instructor-single__profile-row { display: grid; grid-template-columns: 180px 1fr; column-gap: 10px; padding-bottom: 40px; border-bottom: 1px solid #464646; }
.instructor-single__profile-row:not(:last-of-type) { margin-bottom: 40px; }
.instructor-single__movies { margin-bottom: 24px; }
.instructor-single__movies-title { margin: 0 0 24px; text-align: center; font-size: 24px; font-weight: 700; letter-spacing: 1.2px; line-height: 1.5; }
.instructor-single__movies-grid { display: flex; align-items: center; gap: 16px; }
.instructor-single__movie { flex: 1 1 0; position: relative; overflow: visible; border: 1px solid #464646; background: #fff; aspect-ratio: 1920/1080; display: flex; align-items: center; justify-content: center; margin: 0 auto; max-width: 460px; text-decoration: none; color: inherit; transition: border-color 0.15s ease, background-color 0.15s ease; outline-offset: 4px; }
.instructor-single__movie::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; z-index: 1; background: linear-gradient(#ff6216, #ff6216) left top/0 1px no-repeat, linear-gradient(#ff6216, #ff6216) right top/1px 0 no-repeat, linear-gradient(#ff6216, #ff6216) right bottom/0 1px no-repeat, linear-gradient(#ff6216, #ff6216) left bottom/1px 0 no-repeat; transition: inset 0.15s ease; }
.instructor-single__movie:focus-visible { outline: 2px solid #ff6216; }
.instructor-single__movie img { width: 100%; display: block; position: relative; z-index: 0; transition: 0.15s ease; }
.instructor-single__back-link-wrap { width: 100%; }
@media (max-width: 768px) {
  .instructor-single__profile-section { padding: 30vw 0 18vw; }
  .instructor-single__profile-layout { grid-template-columns: 1fr; }
  .instructor-single__name-block { margin-bottom: 24px; }
  .instructor-single__name { font-size: 24px; }
  .instructor-single__profile-row { grid-template-columns: 1fr; row-gap: 8px; }
  .instructor-single__profile-row:not(:last-of-type) { margin-bottom: 16px; padding-bottom: 16px; }
  .instructor-single__profile-row dt, .instructor-single__profile-row dd { font-size: 14px; margin-left: 0; }
  .instructor-single__movies-grid { display: block; }
  .instructor-single__movie:not(:last-of-type) { margin-bottom: 12px; }
}
/*=========================================================
   アーカイブ: FAQ
   =========================================================*/
.faq-page { width: 100%; background: #eee; }
.faq-page__section { position: relative; padding: 200px 0 120px; }
.side-object__faq { left: -4px; top: 118px; }
.side-object__faq .side-object__sidebar-img { height: 373px; }
.faq-page__heading { text-align: center; margin-bottom: 130px; }
.faq-page__kicker { margin: 0 0 16px; font-family: "Jost", system-ui, sans-serif; font-size: 24px; letter-spacing: 2.88px; color: #ff6216; line-height: 1; }
.faq-page__title { margin: 0; font-size: min(60px, 3.2vw); font-weight: 900; letter-spacing: 2.4px; color: #ff6216; }
.faq-item { border: 1px solid #b1b1b1; border-radius: 10px; overflow: hidden; margin-bottom: 8px; }
.faq-item:last-child { margin-bottom: 0; }
.faq-item__question { width: 100%; background: transparent; border: 0; padding: 24px 20px; display: flex; align-items: center; text-align: left; cursor: pointer; }
.faq-item__label { font-family: "Jost", system-ui, sans-serif; font-size: 24px; font-weight: 500; line-height: 1; letter-spacing: 0.72px; margin-right: 16px; }
.faq-item__label--q { color: #528dcf; }
.faq-item__label--a { color: #e92510; }
.faq-item__question-text { flex: 1 1 auto; line-height: 1.6em; }
.faq-item__icon { position: relative; width: 10px; height: 10px; margin-left: 16px; }
.faq-item__icon::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 100%; border-top: 2px solid #000; border-right: 2px solid #000; box-sizing: border-box; transform-origin: center; transform: rotate(135deg); transition: transform 220ms ease; }
.faq-item--open .faq-item__icon::before { transform: rotate(-45deg); }
.faq-item__answer { padding: 0 20px 16px; }
.faq-item__answer p { margin: 0; border-top: 1px solid #b1b1b1; padding-top: 16px; display: flex; align-items: center; }
.faq-item__answer p a { color: #ff6216; text-decoration: underline; transition: 0.15s ease; }
.faq-item__answer-text { line-height: 1.6em; color: #000; }
.faq-item:not(.faq-item--open) .faq-item__answer { display: none; }
@media (max-width: 768px) {
  .faq-page__section { padding: 18vw 0; }
  .faq-page__kicker { font-size: 14px; letter-spacing: 1.4px; }
  .faq-page__title { font-size: 7vw; }
}
/*=========================================================
   固定ページ: プライバシーポリシー
   =========================================================*/
.policy-page { width: 100%; background: #eee; }
.policy-page__section { position: relative; padding: 200px 0 120px; }
.policy-page__section .section__wrapper_w_1200 { padding-bottom: 0; }
.side-object__policy { left: -4px; top: 139px; }
.side-object__policy .side-object__sidebar-img { height: 627px; }
.policy-page__heading { text-align: center; margin-bottom: 92px; }
.policy-page__kicker { margin: 0 0 16px; font-family: "Jost", system-ui, sans-serif; font-size: 24px; letter-spacing: 2.88px; line-height: 1; color: #ff6216; }
.policy-page__title { margin: 0; font-size: min(60px, 3.2vw); font-weight: 900; letter-spacing: 2.4px; color: #ff6216; }
.policy-page__content h2, .policy-page__content h3 { margin: 0 0 14px; font-weight: 700; line-height: 1.8; }
.policy-page__content p { margin: 0 0 24px; font-size: 14px; line-height: 2; letter-spacing: 0.2px; }
.policy-page__content ul { margin: 0 0 24px 0; padding: 0; list-style: none; }
.policy-page__content li { margin: 0 0 4px; font-size: 14px; line-height: 2; letter-spacing: 0.2px; padding-left: 1.1em; position: relative; }
.policy-page__content li::before { content: "・"; position: absolute; left: 0; top: 0; }
@media (max-width: 768px) {
  .policy-page__section { padding: 18vw 0; }
  .policy-page__heading { margin-bottom: 12vw; }
  .policy-page__kicker { font-size: 14px; letter-spacing: 1.4px; }
  .policy-page__title { font-size: 7vw; }
}
/*=========================================================
   固定ページ: 利用規約・注意事項
   =========================================================*/
.terms-page { width: 100%; background: #eee; }
.terms-page__section { position: relative; padding: 200px 0 120px; }
.terms-page__section .section__wrapper_w_1200 { padding-bottom: 0; }
.side-object__terms { left: -4px; top: 139px; }
.side-object__terms .side-object__sidebar-img { height: 456px; }
.terms-page__heading { text-align: center; margin-bottom: 130px; }
.terms-page__kicker { margin: 0 0 16px; font-family: "Jost", system-ui, sans-serif; font-size: 24px; letter-spacing: 2.88px; line-height: 1; color: #ff6216; }
.terms-page__title { margin: 0; font-size: min(60px, 3.2vw); font-weight: 900; letter-spacing: 2.4px; color: #ff6216; }
.terms-page__section-title h2 { margin: 0; font-size: 20px; font-weight: 700; line-height: 1.8; }
.terms-card { border: 1px solid #464646; padding: 24px 30px; margin-bottom: 24px; }
.terms-card:last-child { margin-bottom: 0; }
.terms-card__title { margin: 0 0 24px; padding-bottom: 24px; border-bottom: 1px solid #464646; line-height: 1; }
.terms-card__block { margin-bottom: 8px; }
.terms-card__block:last-child { margin-bottom: 0; }
.terms-card__block h4 { margin: 0 0 8px; font-weight: 700; line-height: 1.8; }
.terms-card__block p, .terms-card__block li { line-height: 1.8; }
.terms-card__block p { margin: 0 0 8px; }
.terms-card__block ul, .terms-card__block ol { margin: 0; padding-left: 1.35em; }
.terms-card__block li { margin: 0 0 2px; }
@media (max-width: 768px) {
  .terms-page__section { padding: 18vw 0; }
  .terms-page__heading { margin-bottom: 12vw; }
  .terms-page__kicker { font-size: 14px; letter-spacing: 1.4px; }
  .terms-page__title { font-size: 7vw; }
  .terms-card { border: none; padding: 24px 0; }
  .terms-card__block ul, .terms-card__block ol { padding-left: 0; }
}
/*=========================================================
   コンポーネント: キャンペーンバナー
   =========================================================*/
.campaign-banner-slide_wrapper { width: 100%; background: #fff; padding: 5px 0 45px; position: relative; }
.campaign-banner-slide_wrapper--single .campaign-banner-slide__viewport { display: flex; justify-content: center; overflow: visible; }
.campaign-banner-slide_wrapper--single .campaign-banner-slide__list { width: 100%; max-width: 100%; justify-content: center; transform: none !important; transition: none; will-change: auto; }
.campaign-banner-slide__viewport { width: min(86%, 1778px); margin: 0 auto; overflow: hidden; }
.campaign-banner-slide__list { width: max-content; display: flex; align-items: center; overflow: visible; transform-origin: top center; transition: transform 420ms ease; will-change: transform; }
.campaign-banner-slide__list > div { flex: 0 0 auto; width: fit-content; max-width: 100%; }
.campaign-banner-slide__list > div > a { display: block; width: 100%; transition: 0.15s ease; }
.campaign-banner-slide__list > div > a > img { width: auto; max-width: 100%; height: auto; object-fit: cover; }
.campaign-banner-slide__dots { position: absolute; left: 50%; bottom: 15px; transform: translate3d(-50%, 0, 0); }
.campaign-banner-slide__dots-list { display: flex; align-items: center; justify-content: center; gap: 10px; }
.campaign-banner-slide__dot { width: 10px; height: 10px; background: #464646; border-radius: 50%; cursor: pointer; }
.campaign-banner-slide__dot--active { background: #ff6216; }
.campaign-banner-slide__arrow { position: absolute; padding: 0; border: 0; background: transparent; cursor: pointer; top: 45%; transform: translate3d(0, -50%, 0); width: 19px; height: 48px; transition: transform 0.15s ease, opacity 0.15s ease; transform-origin: center center; }
.campaign-banner-slide__arrow--prev { left: 1.3vw; }
.campaign-banner-slide__arrow--prev .campaign-banner-slide__arrow-img { width: 100%; height: 100%; object-fit: contain; }
.campaign-banner-slide__arrow--next { right: 1.3vw; }
.campaign-banner-slide__arrow--next .campaign-banner-slide__arrow-img { width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 1024px) {
  .campaign-banner-slide_wrapper { padding: 5px 0 40px; }
  .campaign-banner-slide__list > div { max-width: min(80vw, 100%); }
}
@media (max-width: 768px) {
  .campaign-banner-slide__arrow { width: 10px; height: 24px; }
}
@media (max-width: 768px) {
  .side-object { top: 56px; }
  .main-visual .side-object { top: 10px; }
  .side-object__about .side-object__sidebar-img { height: 266.5px; }
  .side-object__beginner .side-object__sidebar-img { height: 266.5px; }
  .side-object__archive-dojo .side-object__sidebar-img { height: 220.5px; }
  .side-object__archive-program .side-object__sidebar-img { height: 333px; }
  .side-object__price .side-object__sidebar-img { height: 188.5px; }
  .side-object__archive-news .side-object__sidebar-img { height: 166.5px; }
  .side-object__news-single .side-object__sidebar-img { height: 166.5px; }
  .side-object__instructor-single .side-object__sidebar-img { height: 307px; }
  .side-object__faq .side-object__sidebar-img { height: 186.5px; }
  .side-object__policy .side-object__sidebar-img { height: 313.5px; }
  .side-object__terms .side-object__sidebar-img { height: 228px; }
}
/*=========================================================
   固定ページ: 初めての方へ
   =========================================================*/
.beginner-page { width: 100%; background: #e9e9e9; }
.beginner-page__follow-area { position: relative; }
.beginner-page__content { position: relative; background: #f1f1f1; }
.beginner-section { position: relative; padding: min(120px, 6.25vw) 0; }
.beginner-section__watermark { position: absolute; top: -17px; right: 0; margin: 0; display: block; width: auto; max-width: 100%; height: auto; pointer-events: none; z-index: 0; }
.beginner-section__inner { position: relative; z-index: 1; width: min(80%, 1400px); margin: 0 auto; }
.beginner-section__head { margin-bottom: min(64px, 4vw); }
.beginner-section__kicker { margin: 0 0 10px 4px; font-family: "Jost", system-ui, sans-serif; font-size: 24px; letter-spacing: 2.88px; color: #ff6216; line-height: 1; }
.beginner-section__title { margin: 0; font-weight: 900; font-size: min(60px, 4.7vw); letter-spacing: 2.4px; color: #ff6216; line-height: 1.4; }
.beginner-programs__cards { width: min(100%, 1000px); margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
.beginner-program-card { display: flex; align-items: stretch; border: 1px solid #464646; overflow: hidden; background: #fff; }
.beginner-program-card__label { flex: 0 0 min(300px, 32%); border-right: 1px solid #464646; color: #ff6216; padding: min(48px, 3vw) min(32px, 2vw); display: flex; flex-direction: column; gap: 8px; justify-content: center; text-align: left; }
.beginner-program-card__label-sub { margin: 0; font-weight: 500; font-size: 16px; line-height: 1.4; }
.beginner-program-card__label-main { margin: 0; font-weight: 700; font-size: clamp(18px, 1.5vw, 24px); line-height: 1.3; }
.beginner-program-card__body { padding: min(32px, 2vw) min(32px, 2vw); line-height: 1.8; }
.beginner-program-card__body p { margin: 0 0 0.5em; }
.beginner-program-card__body p:last-child { margin-bottom: 0; }
.beginner-trial__wrap { width: min(100%, 1200px); margin: 0 auto min(80px, 12vw); position: relative; }
.beginner-trial__line { position: absolute; left: 50%; top: 0; bottom: 48px; width: 0; transform: translateX(-50%); border-left: 2px dashed #ff6216; opacity: 0.6; pointer-events: none; }
.beginner-trial__steps { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 64px; }
.beginner-trial-step { display: flex; align-items: center; gap: min(56px, 4vw); padding: min(48px, 3vw) min(96px, 5vw); background: #fff; border: 1px solid #464646; border-radius: 310px; }
.beginner-trial-step__icon { flex-shrink: 0; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; }
.beginner-trial-step__icon img { width: 48px; height: 48px; object-fit: contain; display: block; }
.beginner-trial-step__body { flex: 1 1 auto; min-width: 0; }
.beginner-trial-step__title { margin: 0; font-weight: 700; font-size: clamp(18px, 1.4vw, 24px); letter-spacing: 1.2px; line-height: 2; color: #ff6216; }
.beginner-trial-step__note { margin: 4px 0 0; font-weight: 500; font-size: 16px; letter-spacing: 0.8px; line-height: 2; color: #464646; }
.beginner-subsection { padding-top: min(80px, 12vw); }
.beginner-subsection__heading { display: flex; align-items: center; justify-content: center; gap: min(58px, 4vw); margin-bottom: min(80px, 5vw); }
.beginner-subsection__heading-arc { flex-shrink: 0; height: 128px; width: auto; display: block; }
.beginner-subsection__heading-arc--flip { transform: scaleX(-1); }
.beginner-subsection__heading-text { text-align: center; color: #ff6216; }
.beginner-subsection__heading-en { margin: 0 0 4px; font-family: "Jost", system-ui, sans-serif; font-size: 16px; letter-spacing: 3.2px; line-height: 1.5; }
.beginner-subsection__heading-ja { margin: 0; font-weight: 700; font-size: 24px; letter-spacing: 1.2px; line-height: 1.5; }
.beginner-flow__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 auto min(48px, 3vw); }
.beginner-flow-card { display: flex; align-items: stretch; background: #fff; min-height: 0; }
.beginner-flow-card__visual { position: relative; flex: 0 0 min(264px, 13.75vw); min-height: min(264px, 13.75vw); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.beginner-flow-card__visual::before { content: ""; position: absolute; inset: 0; z-index: 0; }
.beginner-flow-card__visual--01::before { background: #8fffc7; }
.beginner-flow-card__visual--02::before { background: #ff8282; }
.beginner-flow-card__visual--03::before { background: #5275ff; }
.beginner-flow-card__visual--04::before { background: #ffda62; }
.beginner-flow-card__visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.33; z-index: 1; }
.beginner-flow-card__num { position: relative; z-index: 2; margin: 0; font-family: "Jost", system-ui, sans-serif; font-weight: 700; font-size: clamp(64px, 8vw, 130px); line-height: 1; color: rgba(255, 255, 255, 0.87); }
.beginner-flow-card__body { flex: 1 1 auto; padding: min(40px, 2.5vw) min(32px, 2vw); min-width: 0; }
.beginner-flow-card__title { margin: 0 0 8px; font-weight: 700; font-size: clamp(18px, 1.4vw, 24px); letter-spacing: 1.2px; line-height: 2; color: #ff6216; }
.beginner-flow-card__text { margin: 0; font-weight: 500; font-size: 16px; line-height: 2; color: #464646; }
.beginner-flow-card__text p { margin: 0 0 0.5em; }
.beginner-flow-card__text p:last-child { margin-bottom: 0; }
.beginner-flow__video { width: min(80%, 1000px); margin: 0 auto; aspect-ratio: 1000/464; background: #6b6b6b; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 24px; text-align: center; }
.beginner-flow__video-embed { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.beginner-flow__video--has-embed { position: relative; padding: 0; overflow: hidden; background: #464646; }
.beginner-flow__video--has-embed .beginner-flow__video-title, .beginner-flow__video--has-embed .beginner-flow__video-link { display: none; }
.beginner-items__icons { display: grid; grid-template-columns: repeat(3, 1fr); gap: min(64px, 5vw); width: min(80%, 1000px); margin: 0 auto min(48px, 3vw); align-items: start; }
.beginner-items__icon-block { display: flex; flex-direction: column; align-items: center; gap: 24px; text-align: center; min-width: 0; }
.beginner-items__icon-block img { max-width: 100%; height: auto; display: block; }
.beginner-items__icons > .beginner-items__icon-block:nth-child(3) img { max-width: 25%; margin-inline: auto; }
.beginner-items__icon-caption { margin: 0; font-weight: 700; font-size: 16px; letter-spacing: 0.8px; line-height: 1.5; color: #464646; }
.beginner-items__point { width: min(100%, 1000px); margin: 0 auto; background: #fff; border: 1px solid #464646; border-radius: 8px; padding: min(48px, 3vw) min(56px, 3vw); }
.beginner-items__point-label { margin: 0 0 16px; font-family: "Jost", system-ui, sans-serif; font-weight: 500; font-size: 16px; letter-spacing: 3.2px; text-align: left; color: #ff6216; line-height: 2; }
.beginner-items__point-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 16px; }
.beginner-items__point-item { display: flex; align-items: center; gap: 24px; padding: 0 10px; }
.beginner-items__point-item::before { content: ""; flex-shrink: 0; width: 8px; height: 8px; border-radius: 50%; background: #ff6216; }
.beginner-items__point-text { margin: 0; font-weight: 700; font-size: clamp(16px, 1.1vw, 20px); letter-spacing: 1px; line-height: 2; color: #464646; }
.beginner-join__steps { display: flex; align-items: center; justify-content: center; width: min(100%, 1000px); margin: 0 auto; flex-wrap: nowrap; }
.beginner-join__step { flex: 1 1 0; min-width: 0; border: 1px solid #464646; padding: 24px 16px; display: flex; flex-direction: column; gap: 24px; background: #fff; min-height: 300px; }
.beginner-join__step-kicker { margin: 0; font-family: "Jost", system-ui, sans-serif; font-size: 16px; letter-spacing: 3.2px; color: #ff6216; }
.beginner-join__step-title { margin: 0; font-weight: 700; font-size: clamp(18px, 1.3vw, 24px); letter-spacing: 1.2px; line-height: 2; color: #464646; }
.beginner-join__step-text { margin: 0; line-height: 1.8; }
.beginner-join__step-text p { margin: 0 0 0.5em; }
.beginner-join__arrow.section-dojo__arrow-btn { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; cursor: default; pointer-events: none; }
.beginner-join__required { display: flex; flex-direction: column; align-items: center; gap: 60px; padding: min(80px, 12vw) 0 0; text-align: center; }
.beginner-join__required-title { margin: 0; font-weight: 700; font-size: 24px; letter-spacing: 1.2px; line-height: 2; color: #ff6216; }
.beginner-join__required-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: min(92px, 6vw); width: min(100%, 1000px); margin: 0 auto; }
.beginner-join__required-item { flex: 0 0 auto; width: 230px; max-width: 100%; display: flex; flex-direction: column; align-items: center; gap: 32px; }
.beginner-join__required-item:first-child { align-items: flex-start; }
.beginner-join__required-fig { width: 100%; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.beginner-join__required-fig img { max-width: 100%; max-height: 216px; width: auto; height: auto; object-fit: contain; }
.beginner-join__required-fig--card img { width: 154px; }
.beginner-join__required-fig--id img { width: 154px; }
.beginner-join__required-fig--consent img { width: 130px; }
.beginner-join__required-caption { margin: 0; font-weight: 700; font-size: 16px; letter-spacing: 1px; line-height: 1.4; color: #464646; text-align: center; }
.beginner-join__required-caption small { display: block; margin-top: 4px; font-size: 16px; font-weight: 700; }
.beginner-faq__inner { width: min(100%, 1000px); margin: 0 auto; padding-bottom: min(120px, 8vw); }
.beginner-faq__inner .link-button-more__wrapper { margin-top: min(72px, 4vw); }
@media (max-width: 1024px) {
  .beginner-flow__grid { grid-template-columns: 1fr; }
  .beginner-flow-card { flex-direction: column; }
  .beginner-flow-card__visual { flex: 0 0 auto; width: 100%; min-height: 200px; }
  .beginner-join__steps { flex-direction: column; }
  .beginner-join__arrow.section-dojo__arrow-btn { transform: rotate(90deg); }
  .beginner-program-card { flex-direction: column; }
  .beginner-program-card__label { flex: 0 0 auto; }
  .beginner-trial-step { flex-direction: column; align-items: flex-start; border-radius: 24px; padding: 32px 24px; }
}
@media (max-width: 768px) {
  .beginner-section__watermark { top: 0; max-height: 13vw; }
  .beginner-section__title { font-size: 7vw; white-space: normal; }
  .beginner-section__kicker { font-size: 14px; letter-spacing: 1.4px; }
  .beginner-subsection__heading-arc { height: 64px; }
  .beginner-trial-step__icon { margin: 0 auto; }
  .beginner-items__icons { grid-template-columns: 1fr; }
}
@media (hover: hover) {
  .site-header__logo-link:hover .site-header__logo-mark { opacity: 0.7; }
  .site-header__nav a:hover { color: #ff6216; }
  .site-header__nav-beginner--pc > a:hover { background: #ff6216; color: #fff; }
  .site-header__lang-btn:hover { color: #ff6216; }
  .section-concept-feature__link-button:hover { background: rgb(255, 141, 52); }
  .section-concept-feature__link-button:hover::after { content: ""; border: 1.5px solid #fff; position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
  .section-dojo__slider-wrapper .section-dojo__arrow-btn:hover { transform: scale(1.2); opacity: 0.8; }
  .section-dojo__slide:hover { border-color: transparent; background: #fff; }
  .section-dojo__slide:hover::after { inset: -1px; opacity: 1; animation: link-button-more-border-trace 0.3s linear forwards; }
  .section-dojo__slide:hover .section-dojo__slide-photo { border-color: #ff6216; }
  .section-dojo__slide:hover .section-dojo__slide-label { color: #ff6216; }
  .section-dojo__slide-link:hover { opacity: 0.92; }
  .section-instructor__slider-wrapper .section-instructor__arrow-btn:hover { transform: scale(1.2); opacity: 0.8; }
  .section-instructor__slide:hover { border-color: transparent; background: #fff; }
  .section-instructor__slide:hover::after { inset: -1px; opacity: 1; animation: link-button-more-border-trace 0.3s linear forwards; }
  .section-instructor__slide-link:hover { opacity: 0.92; }
  .section-instructor__slide:hover .section-instructor__slide-photo { border-color: #ff6216; }
  .section-instructor__slide:hover .section-instructor__slide-label { color: #ff6216; }
  .section-news__news-item:has(.section-news__news-link:hover)::after { transform: scaleX(1); }
  .section-news__news-link:hover .section-news__text { color: #ff6216; }
  .section-recruit__link:hover { background: rgba(0, 0, 0, 0.5); }
  .section-recruit__link:hover::after { content: ""; border: 1.5px solid #fff; position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
  .site-footer__social-box:hover { opacity: 0.7; }
  .site-footer__link:hover { color: #ff6216; }
  .site-footer__offer:hover { opacity: 0.7; }
  .about-page__profile-social a:hover { opacity: 0.7; }
  .archive-dojo__pref-tab:hover { opacity: 0.7; }
  .archive-dojo__city-tab:hover { opacity: 0.7; }
  .archive-dojo-card:not(.archive-dojo-card--no-link):hover { border-color: transparent; background: #fff; }
  .archive-dojo-card:not(.archive-dojo-card--no-link):hover::after { inset: -1px; opacity: 1; animation: link-button-more-border-trace 0.3s linear forwards; }
  .archive-dojo-card:not(.archive-dojo-card--no-link):hover .archive-dojo-card__photo.section-dojo__slide-photo { border-bottom-color: #ff6216; }
  .archive-dojo-card:not(.archive-dojo-card--no-link):hover .archive-dojo-card__name, .archive-dojo-card:not(.archive-dojo-card--no-link):hover .archive-dojo-card__tel, .archive-dojo-card:not(.archive-dojo-card--no-link):hover .archive-dojo-card__address, .archive-dojo-card:not(.archive-dojo-card--no-link):hover .archive-dojo-card__link { color: #ff6216; }
  .archive-dojo-card:not(.archive-dojo-card--no-link):hover .archive-dojo-card__link { background: #ff6216; color: #fff; border-top-color: #ff6216; }
  .archive-dojo-card:not(.archive-dojo-card--no-link):hover .archive-dojo-card__link span { border-top-color: #fff; border-right-color: #fff; }
  .archive-instructor-list__link-main:hover .archive-instructor-list__photo { border-color: transparent; background: #fff; }
  .archive-instructor-list__link-main:hover .archive-instructor-list__photo::after { inset: -1px; opacity: 1; animation: link-button-more-border-trace 0.3s linear forwards; }
  .archive-instructor-list__link-main:hover .archive-instructor-list__name, .archive-instructor-list__link-main:hover .archive-instructor-list__kana, .archive-instructor-list__link-main:hover .archive-instructor-list__specialty { color: #ff6216; }
  .archive-program__tab:hover { opacity: 0.7; }
  .program-card__movie:hover { background: #fff; }
  .archive-news__item:has(.archive-news__item-link:hover)::after { transform: scaleX(1); }
  .archive-news__item-link:hover .archive-news__text { color: #ff6216; }
  .archive-news__page:hover { color: #ff6216; }
  .archive-news__page--active:hover { color: #464646; }
  .news-single__body a:hover { opacity: 0.7; }
  .instructor-single__movie:hover { border-color: transparent; background: #fff; }
  .instructor-single__movie:hover::after { inset: -1px; opacity: 1; animation: link-button-more-border-trace 0.3s linear forwards; }
  .instructor-single__movie:hover img { opacity: 0.7; }
  .campaign-banner-slide__list > div > a:hover { opacity: 0.7; }
  .campaign-banner-slide__dot:hover { background: #ff6216; }
  .campaign-banner-slide__arrow:hover { transform: translate3d(0, -50%, 0) scale(1.2); opacity: 0.8; }
  .faq-item__answer p a { opacity: 0.7; }
}