/*
 * UFC Gym YOGA — Premium concept v2
 * Targeted visual refinement of Premium concept v1. Existing copy, links,
 * IDs, GTM attributes and Hacomono integration remain preserved.
 */

:root{
  --red:#084976;
  --fitness:#084976;
  --ink:#080808;
  --ink-2:#111214;
  --paper:#f4f4f2;
  --line:rgba(0,0,0,.12);
  --header-h:78px;
  --belt-h:64px;
  --font-jp:"Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-en:Inter,"Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

html{ scroll-padding-top:calc(var(--header-h) + 18px); }
body.premium-concept{
  font-family:var(--font-jp);
  background:#fff;
  color:var(--ink);
  overflow-x:hidden;
}
body.premium-concept::before{
  content:"";
  position:fixed;
  inset:0 0 auto;
  height:4px;
  z-index:200;
  background:var(--red);
  pointer-events:none;
}

.container{ width:min(1240px,calc(100% - 64px)); }
.section{ padding:112px 0; }
.section-title,
.y-section-title{
  font-size:clamp(42px,5.2vw,76px);
  line-height:.92;
  letter-spacing:-.055em;
  font-weight:900;
  text-transform:uppercase;
}
.section-text{ font-size:15px; line-height:1.9; }

/* Language typography — aligned with the validated Kids premium base. */
html[lang="en"] body.premium-concept{ font-family:var(--font-en); }
.mv-title,
.promo-title,
.y-services-title,
.section-title,
.y-section-title,
.y-class-title,
.membership-hero__title,
.plan-name,
.y-facility-title,
.hours-title{ font-family:var(--font-en); }
html[lang="en"] .mv-title,
html[lang="en"] .promo-title,
html[lang="en"] .y-services-title,
html[lang="en"] .section-title,
html[lang="en"] .y-section-title,
html[lang="en"] .y-class-title,
html[lang="en"] .membership-hero__title,
html[lang="en"] .plan-name,
html[lang="en"] .y-facility-title,
html[lang="en"] .hours-title{ text-transform:uppercase; }

.section-hr{
  width:72px;
  height:5px;
  margin:24px 0;
  background:var(--red);
}
.section-hr--short{ width:48px; }

/* Header */
.site-header{ top:4px; }
.header-bar{
  border-bottom:1px solid rgba(255,255,255,.18);
  background:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,.08));
  backdrop-filter:blur(3px);
}
.site-header.is-scrolled .header-bar{
  background:rgba(5,5,5,.96);
  border-bottom-color:rgba(255,255,255,.12);
  backdrop-filter:blur(12px);
}
.header-inner--wide{ width:calc(100% - 48px); max-width:1540px; }
.brand-logo{ height:58px; }
.header-center{ justify-content:flex-end; gap:10px; margin-right:18px; }
.header-link{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border:1px solid rgba(255,255,255,.32);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.header-link:last-child{
  background:var(--red);
  border-color:var(--red);
}
.header-link:hover{ background:#fff; border-color:#fff; color:#000; }
.lang-pill{
  border-radius:0;
  background:rgba(0,0,0,.32);
  padding:12px 14px;
  border-color:rgba(255,255,255,.28);
}
.lang-pill:focus-visible{ outline-color:rgba(8,73,118,.55); }

/* Hero */
.mv{ margin-top:calc(-1 * var(--header-h) - 4px); }
.mv-hero{
  min-height:760px;
  height:clamp(760px,92svh,1040px);
  background:#111 url("assets/img/mv-poster.jpg") center/cover no-repeat;
  isolation:isolate;
}
.mv-hero::before{
  content:"";
  position:absolute;
  inset:auto -5vw -12vw auto;
  width:min(62vw,900px);
  aspect-ratio:1;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  z-index:2;
  pointer-events:none;
}
.mv-hero::after{
  content:"KANI";
  position:absolute;
  right:-.04em;
  bottom:-.16em;
  z-index:2;
  color:rgba(255,255,255,.075);
  font-size:clamp(150px,26vw,430px);
  line-height:.8;
  font-weight:900;
  letter-spacing:-.09em;
  pointer-events:none;
}
.mv-video{ z-index:0; filter:saturate(.92) contrast(1.03) brightness(1.06); }
.mv-overlay{
  z-index:1;
  background:
    linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.46) 36%,rgba(0,0,0,.10) 72%,rgba(0,0,0,.24) 100%),
    linear-gradient(180deg,rgba(0,0,0,.18),transparent 44%,rgba(0,0,0,.58));
}
.mv-copy{
  z-index:4;
  left:max(40px,calc((100vw - 1240px)/2));
  right:auto;
  bottom:clamp(96px,12vh,150px);
  width:min(980px,calc(100% - 80px));
}
.mv-title{
  margin:0;
  color:#fff;
  font-size:clamp(54px,6.4vw,102px);
  line-height:.92;
  letter-spacing:-.065em;
  font-weight:900;
  text-shadow:0 8px 44px rgba(0,0,0,.26);
}
.mv-title-line:first-child{
  position:relative;
  width:max-content;
  margin-bottom:24px;
  padding:0 0 0 42px;
  background:transparent;
  color:rgba(255,255,255,.86);
  font-size:clamp(15px,1.3vw,20px);
  line-height:1.1;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.mv-title-line:first-child::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:28px;
  height:3px;
  background:var(--red);
  transform:translateY(-50%);
}
.mv-title-line:not(:first-child){ display:block; width:max-content; max-width:100%; }
html[lang="en"] .mv-title{
  max-width:980px;
  font-size:clamp(48px,4vw,64px);
  line-height:.96;
  letter-spacing:-.052em;
}
html[lang="en"] .mv-title-line:not(:first-child){ white-space:nowrap; }
.mv-actions{ margin-top:36px; }
.mv-btn{
  min-width:230px;
  min-height:58px;
  padding:0 18px 0 24px;
  background:var(--red);
  border:1px solid var(--red);
  box-shadow:0 20px 50px rgba(0,0,0,.3);
  font-size:14px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.mv-btn:hover{ background:#fff; border-color:#fff; color:#000; filter:none; }
.mv-btn__arrow{ background:#000; width:38px; height:38px; }
.mv-btn:hover .mv-btn__arrow{ color:#fff; }

/* Campaign: editorial two-column layout */
.promo-section{
  position:relative;
  overflow:hidden;
  padding:110px 0 120px;
  background:#0a0a0a;
  color:#fff;
  border:0;
}
.promo-section::before{
  content:"OFFER";
  position:absolute;
  left:-.04em;
  top:-.12em;
  color:rgba(255,255,255,.035);
  font-size:clamp(180px,28vw,440px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.09em;
}
.promo-section::after{
  content:"";
  position:absolute;
  right:-180px;
  top:-180px;
  width:480px;
  height:480px;
  border:1px solid rgba(8,73,118,.5);
  border-radius:50%;
}
.promo-container{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(390px,.92fr) minmax(0,1.48fr);
  grid-template-areas:"title carousel" "copy carousel";
  column-gap:52px;
  align-items:start;
}
.promo-title{
  grid-area:title;
  display:block;
  align-self:end;
  margin:0 0 28px;
  font-size:clamp(46px,4.35vw,68px);
  line-height:.92;
  letter-spacing:-.06em;
  text-align:left;
  font-weight:900;
}
.promo-title-black,.promo-title-red{ display:block; white-space:nowrap; }
.promo-title-black{ color:#fff; }
.promo-title-red{ color:var(--red); }
.promo-carousel{ grid-area:carousel; width:100%; min-width:0; padding:0 56px 54px; }
.promo-carousel__viewport{ overflow:hidden; mask-image:none; }
.promo-carousel__track{ gap:18px; }
.promo-carousel__slide{
  flex-basis:100%;
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 32px 90px rgba(0,0,0,.38);
  background:#161616;
}
.promo-carousel__slide:hover{ transform:none; }
.promo-carousel__arrow{
  width:46px;
  height:70px;
  border:1px solid rgba(255,255,255,.25);
  background:rgba(0,0,0,.5);
  color:#fff;
  box-shadow:none;
}
.promo-carousel__arrow:hover{ background:var(--red); border-color:var(--red); }
.promo-carousel__arrow--prev{ left:0; }
.promo-carousel__arrow--next{ right:0; }
.promo-carousel__nav{ color:#fff; }
.promo-carousel__hint{ color:rgba(255,255,255,.58); }
.promo-carousel__dot{ background:rgba(255,255,255,.25); }
.promo-carousel__dot.is-active{
  width:12px;
  height:12px;
  background:var(--red);
  transform:none;
}
.promo-copy{ grid-area:copy; max-width:520px; }
.promo-date{ color:#fff; font-size:clamp(24px,2.8vw,38px); line-height:1.1; }
.promo-lead{ color:#fff; font-size:18px; }
.promo-note{ color:rgba(255,255,255,.62); font-size:11px; line-height:1.8; }
.promo-cta-wrap{ justify-content:flex-start; }
.btn-solid{
  min-height:52px;
  border:1px solid var(--red);
  background:var(--red);
  color:#fff;
  border-radius:0;
  box-shadow:none;
  padding:14px 22px;
  font-weight:900;
  letter-spacing:.04em;
}
.btn-solid:hover{ background:#000; border-color:#000; color:#fff; }
.promo-section .btn-solid:hover{ background:#fff; border-color:#fff; color:#000; }

/* Brand-positioning / service section */
.y-services{
  min-height:740px;
  padding:0;
  background:var(--paper);
}
.y-services-bg{ width:61%; right:auto; }
.y-services-bg__veil{
  background:linear-gradient(90deg,rgba(0,0,0,.05),rgba(0,0,0,.18)),linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.35));
}
.y-services-inner{
  min-height:740px;
  justify-content:flex-end;
  align-items:center;
}
.y-services-card{
  position:relative;
  width:51%;
  min-height:490px;
  margin-right:-2px;
  padding:64px 62px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:-22px 30px 80px rgba(0,0,0,.14);
  backdrop-filter:none;
}
.y-services-card::before{
  content:"01";
  position:absolute;
  right:24px;
  top:4px;
  color:rgba(0,0,0,.045);
  font-size:150px;
  font-weight:900;
  line-height:1;
  letter-spacing:-.08em;
}
.y-kicker{ color:var(--red); font-size:11px; }
.y-services-title{
  max-width:530px;
  margin:18px 0 18px;
  font-size:clamp(34px,4vw,58px);
  line-height:1.02;
  letter-spacing:-.045em;
}
.y-hr{ width:84px; height:5px; margin:12px 0 24px; }
.y-services-body{ font-size:14px; line-height:2; color:rgba(0,0,0,.72); }
.y-tags{ margin-top:26px; gap:7px; }
.y-tag{
  padding:8px 10px;
  background:var(--red);
  box-shadow:none;
  font-size:10px;
  letter-spacing:.04em;
}

/* Classes: black editorial panels */
.y-classes-v2{
  position:relative;
  overflow:hidden;
  padding:120px 0 130px;
  background:#090909;
  color:#fff;
}
.y-classes-v2::before{
  content:"CLASSES";
  position:absolute;
  top:-.12em;
  right:-.02em;
  color:rgba(255,255,255,.035);
  font-size:clamp(160px,24vw,380px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.08em;
}
.y-classes-inner{ position:relative; z-index:2; }
.y-classes-head{ max-width:720px; margin-bottom:64px; }
.y-classes-head .section-title{ color:#fff; }
.y-classes-head .section-text{ color:rgba(255,255,255,.62); }
.y-class-list{ gap:90px; }
.y-class-row{
  display:grid;
  grid-template-columns:7fr 4fr;
  gap:64px;
  align-items:center;
  padding:0;
}
.y-class-row--reverse{ grid-template-columns:4fr 7fr; }
.y-class-row--reverse .y-class-media{ order:2; }
.y-class-row--reverse .y-class-text{ order:1; }
.y-class-media{
  width:100%;
  max-width:none;
  height:520px;
  flex:auto;
}
.y-class-octo{
  clip-path:none;
  border:0;
  box-shadow:none;
  border-radius:0;
}
.y-class-octo--1{
  width:84%;
  height:88%;
  left:0;
  top:0;
  transform:none;
}
.y-class-octo--2{
  width:48%;
  height:53%;
  left:auto;
  right:0;
  top:auto;
  bottom:0;
  border:8px solid #090909;
  box-shadow:0 22px 60px rgba(0,0,0,.42);
}
.y-class-text{ position:relative; min-width:0; color:#fff; }
.y-class-text::before{
  position:absolute;
  right:0;
  top:-.65em;
  color:rgba(255,255,255,.055);
  font-size:150px;
  font-weight:900;
  line-height:1;
  letter-spacing:-.08em;
}
.y-class-row:nth-child(1) .y-class-text::before{ content:"01"; }
.y-class-row:nth-child(2) .y-class-text::before{ content:"02"; }
.y-class-row:nth-child(3) .y-class-text::before{ content:"03"; }
.y-class-label{
  position:relative;
  z-index:1;
  padding-left:38px;
  color:var(--red);
  font-size:11px;
}
.y-class-label::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:26px;
  height:3px;
  background:var(--red);
}
.y-class-title{
  position:relative;
  z-index:1;
  margin:20px 0 20px;
  color:#fff;
  font-size:clamp(38px,4.3vw,66px);
  line-height:1;
  letter-spacing:-.05em;
}
.y-class-title-line{ display:block; width:max-content; max-width:100%; white-space:nowrap; }
html[lang="en"] .y-class-title{ font-size:clamp(36px,3.55vw,56px); line-height:1.02; }
.y-class-body{
  position:relative;
  z-index:1;
  max-width:540px;
  color:rgba(255,255,255,.67);
  font-size:14px;
  line-height:2;
}

/* Schedule */
#schedule{
  position:relative;
  padding:118px 0 126px;
  background:var(--paper);
  overflow:hidden;
}
.schedule-period{
  margin:10px 0 0;
  text-align:center;
  color:#111;
  font-family:Inter,"Noto Sans JP",sans-serif;
  font-size:15px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.schedule-obon-note{
  max-width:760px;
  margin:12px auto 24px;
  padding:10px 14px;
  border-left:3px solid var(--red);
  background:rgba(0,0,0,.035);
  color:rgba(0,0,0,.65);
  font-size:12px;
  line-height:1.75;
  text-align:left;
}
@media(max-width:640px){
  .schedule-period{font-size:13px; letter-spacing:.1em;}
  .schedule-obon-note{margin:10px auto 20px; font-size:11px;}
}

#schedule::before{
  content:"WEEK";
  position:absolute;
  left:-.05em;
  bottom:-.15em;
  color:rgba(0,0,0,.035);
  font-size:clamp(180px,27vw,430px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.09em;
}
#schedule .container{ position:relative; z-index:1; }
#schedule .center-title{ text-align:left; }
.legend{
  margin:26px 0 38px;
  justify-content:flex-start;
  gap:22px;
  color:rgba(0,0,0,.65);
  font-size:12px;
  font-weight:700;
}
.dot{ width:11px; height:11px; border-radius:0; }
.schedule-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:start; }
.day{
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  box-shadow:none;
}
.day summary{
  min-height:62px;
  padding:0 18px;
  display:flex;
  align-items:center;
  background:#111;
  color:#fff;
  font-size:13px;
  letter-spacing:.09em;
  font-weight:900;
}
.day summary::before{ color:var(--red); margin-right:10px; }
.day[open] summary{ background:var(--red); }
.day[open] summary::before{ color:#fff; }
.day-body{ padding:10px 16px 17px; background:#fff; }
.row{
  min-height:42px;
  padding:11px 0;
  border-bottom:1px solid rgba(0,0,0,.08);
  color:rgba(0,0,0,.78);
  font-size:13px;
  line-height:1.45;
}
.row strong{ width:60px; color:#111; font-size:12px; }
.pill{ width:4px; height:16px; margin:0 8px 0 0; vertical-align:middle; }

/* Coaches */
.y-coaches{
  position:relative;
  overflow:hidden;
  padding:120px 0 128px;
  background:#fff;
  border:0;
}
.y-coaches::before{
  content:"TEAM";
  position:absolute;
  left:-.03em;
  top:clamp(24px,3vw,52px);
  color:rgba(0,0,0,.035);
  font-size:clamp(180px,30vw,470px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.09em;
}
.y-coaches-inner{ position:relative; z-index:1; }
.y-section-head{ margin-bottom:50px; }
.y-section-sub{
  margin-top:18px;
  color:rgba(0,0,0,.54);
  font-size:13px;
  letter-spacing:.04em;
  text-transform:none;
}
.y-coach-carousel{ margin-top:0; }
.y-coach-track{ gap:14px; }
.y-coach-card{
  flex:0 0 calc((100% - 42px)/4);
  position:relative;
  border:0;
  background:#ededeb;
  box-shadow:none;
  overflow:hidden;
}
.y-coach-photo{
  aspect-ratio:3/4;
  background-size:cover;
  background-position:center top;
  filter:saturate(.82);
  transition:filter .25s ease,transform .35s ease;
}
.y-coach-card:hover .y-coach-photo{ filter:saturate(1); transform:scale(1.025); }
.y-coach-info{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  min-height:98px;
  justify-content:flex-end;
  padding:32px 18px 17px;
  color:#fff;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.9));
}
.y-coach-name{ font-size:18px; font-weight:900; }
.y-coach-role{ color:rgba(255,255,255,.7); font-size:9px; line-height:1.5; }
.y-coach-arrow{
  width:50px;
  height:50px;
  background:#111;
  color:#fff;
  border:0;
  box-shadow:none;
}
.y-coach-arrow:hover{ background:var(--red); }
.y-coach-arrow.left{ left:-25px; }
.y-coach-arrow.right{ right:-25px; }
.y-coach-cta{ justify-content:flex-start; margin-top:34px; }

/* Membership */
.membership{ background:#0a0a0a; }
.membership-hero{
  height:430px;
  background-position:center 42%;
}
.membership-hero__overlay{
  background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.25)),linear-gradient(180deg,transparent,rgba(0,0,0,.58));
}
.membership-hero__title{
  place-items:center start;
  width:min(1240px,calc(100% - 64px));
  margin:0 auto;
  padding:0;
  font-size:clamp(52px,7vw,100px);
  line-height:.9;
  letter-spacing:-.055em;
  text-align:left;
}
.membership-body{ padding:0 0 124px; background:#0a0a0a; }
.plan-grid{
  position:relative;
  z-index:2;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  margin-top:-72px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.18);
}
.plan{
  border:0;
  background:#fff;
  box-shadow:none;
}
.plan-top{
  min-height:178px;
  background:#151515;
}
.plan-name{
  top:20px;
  width:auto;
  max-width:calc(100% - 32px);
  background:transparent;
  color:rgba(255,255,255,.94);
  padding:0;
  font-size:13px;
  line-height:1.25;
  letter-spacing:.075em;
}
.plan-badge{
  position:absolute;
  top:68px;
  left:50%;
  z-index:2;
  transform:translateX(-50%);
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1;
  letter-spacing:.08em;
  white-space:nowrap;
}
.plan-price{ top:70%; }
.plan-price .num{ font-size:clamp(35px,3.1vw,49px); }
.plan-price .yen{ color:inherit; }
.plan:nth-child(4) .plan-top{ background:var(--red); }
.plan-bottom{ min-height:190px; padding:18px 20px 22px; }
.plan-block{ padding:14px 0; }
.plan-k{ color:var(--red); font-size:10px; }
.plan-big{ font-size:22px; }
.membership-campaign-cta{ margin-top:58px; }
.membership-campaign-btn{ min-width:410px; }
.membership-campaign-note{ color:rgba(255,255,255,.62); }
.membership-campaign-mini{ gap:12px; }
.membership-campaign-card{ border:1px solid rgba(255,255,255,.15); box-shadow:none; background:#151515; }

/* Facilities: asymmetrical gallery */
.y-facilities{
  position:relative;
  padding:120px 0 130px;
  background:var(--paper);
  border:0;
  overflow:hidden;
}
.y-facilities::before{
  content:"SPACE";
  position:absolute;
  right:-.02em;
  top:-.14em;
  color:rgba(0,0,0,.035);
  font-size:clamp(170px,27vw,430px);
  line-height:1;
  font-weight:900;
  letter-spacing:-.09em;
}
.y-facilities-inner{ position:relative; z-index:1; }
.y-facilities-head{ max-width:780px; margin-bottom:52px; }
.y-area-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-template-rows:310px 235px;
  gap:10px;
  margin:0 0 44px;
}
.y-area-card:nth-child(1){ grid-column:span 2; grid-row:span 2; }
.y-area-card:nth-child(2){ grid-column:span 2; }
.y-area-media{ width:100%; height:100%; border:0; background:#111; }
.y-area-media img{ width:100%; height:100%; aspect-ratio:auto; filter:saturate(.8); transition:transform .45s ease,filter .3s ease; }
.y-area-card:hover img{ transform:scale(1.035); filter:saturate(1); }
.y-area-label{
  left:0;
  bottom:0;
  padding:12px 14px;
  background:#111;
  font-size:10px;
}
.y-area-card:nth-child(1) .y-area-label,
.y-area-card:nth-child(2) .y-area-label{ background:var(--red); }
.y-facilities-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:rgba(0,0,0,.12);
  border:1px solid rgba(0,0,0,.12);
}
.y-facility-item{
  min-height:210px;
  padding:28px 18px 22px;
  justify-content:center;
  background:#fff;
  gap:14px;
}
.y-facility-patch img{ width:min(116px,64%); filter:none; }
.y-facility-title{ font-size:12px; }

/* Instagram moved lower in the page */
.insta-section{
  padding:104px 0 118px;
  background:#0a0a0a;
  color:#fff;
  border:0;
}
.insta-inner{ display:grid; grid-template-columns:minmax(330px,.72fr) minmax(0,1.48fr); gap:48px; align-items:start; }
.insta-head{ position:sticky; top:110px; }
.insta-head .section-title{ color:#fff; font-size:clamp(44px,3.9vw,60px); line-height:.92; letter-spacing:-.05em; white-space:nowrap; }
.insta-head .section-text{ color:rgba(255,255,255,.58); }
.insta-embed{ margin:0; }
.insta-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.insta-tile{ border:0; background:#171717; }
.insta-tile img{ aspect-ratio:4/5; filter:saturate(.76); transition:transform .35s ease,filter .25s ease; }
.insta-tile:hover img{ transform:scale(1.035); filter:saturate(1); }
.insta-cta{ justify-content:flex-start; margin-top:24px; }
.btn-ig{
  min-height:50px;
  border-radius:0;
  border:1px solid rgba(255,255,255,.26);
  background:transparent;
  color:#fff;
}
.btn-ig:hover{ border-color:var(--red); background:var(--red); }

/* Booking */
.booking-section{
  position:relative;
  padding:118px 0 128px;
  background:#fff;
  overflow:hidden;
}
.booking-section::before{
  content:"BOOK";
  position:absolute;
  left:-.04em;
  top:-.2em;
  color:rgba(0,0,0,.035);
  font-size:clamp(190px,31vw,480px);
  line-height:1;
  font-weight:900;
  letter-spacing:-.09em;
}
.booking-inner{ position:relative; z-index:1; max-width:1100px; }
.booking-section .section-title{ text-align:left; }
.booking-note{ text-align:left; margin:18px 0 0; }
.steps{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin:46px 0 0;
  border:1px solid rgba(0,0,0,.13);
  background:rgba(0,0,0,.13);
}
.step{ min-height:150px; padding:24px 22px; border:0; }
.step-badge{ height:24px; background:#111; }
.step-num{ color:var(--red); }
.step-text{ margin-top:22px; font-size:13px; line-height:1.75; }
.booking-widget{
  margin-top:28px;
  padding:18px;
  border:1px solid rgba(0,0,0,.14);
  box-shadow:0 34px 100px rgba(0,0,0,.08);
}

/* FAQ */
#faq{ padding:118px 0; background:var(--paper); }
#faq .section-title,#faq .section-text{ text-align:left; }
#faq .section-text{ margin-top:18px !important; }
#faq .info-card{ margin-top:48px; border:0; box-shadow:none; background:transparent; }
.faq-item{ border-top:1px solid rgba(0,0,0,.18); }
.faq-item:last-child{ border-bottom:1px solid rgba(0,0,0,.18); }
.faq-q{ min-height:68px; padding:18px 8px; font-size:14px; font-weight:700; }
.faq-q::after{ border-color:var(--red); }
.faq-item[open] .faq-q{ background:transparent; color:var(--red); }
.faq-a{ padding-left:8px; max-width:900px; }
.faq-item[open] .faq-a{ padding-bottom:24px; }

/* Access and company */
#access{
  position:relative;
  padding:118px 0;
  background:#111;
  color:#fff;
  overflow:hidden;
}
#access::before{
  content:"KANI";
  position:absolute;
  right:-.03em;
  bottom:-.17em;
  color:rgba(255,255,255,.035);
  font-size:clamp(190px,31vw,490px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.09em;
}
#access .container{ position:relative; z-index:1; }
#access .section-title,#access .section-text{ text-align:left; color:#fff; }
#access .section-text{ margin-top:18px !important; color:rgba(255,255,255,.58); }
.access-block{
  margin-top:48px;
  grid-template-columns:.85fr 1.4fr;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:none;
}
.access-left{ padding:42px 36px; background:#0a0a0a; border-right:1px solid rgba(255,255,255,.14); }
.info-row .k{ color:rgba(255,255,255,.48); }
.info-row .v,#access a{ color:#fff; }
.hours{ border-top-color:rgba(255,255,255,.15); }
.hours-row{ color:rgba(255,255,255,.8); }
.access-right iframe{ min-height:520px; filter:grayscale(1) contrast(1.05); }
#company{ padding:94px 0 110px; background:var(--paper); color:var(--ink); }
#company .section-title{ font-size:clamp(38px,4.4vw,64px); text-align:left; color:var(--ink); }
#company .section-text{ text-align:left; color:rgba(0,0,0,.5); margin-top:16px !important; }
#company .info-card{ margin-top:42px; border:1px solid rgba(0,0,0,.12); box-shadow:none; background:#fff; }
.company-table .tr{ border-top-color:rgba(0,0,0,.1); }
.company-table .th{ color:rgba(0,0,0,.58); background:rgba(0,0,0,.035); }
.company-table .td{ color:rgba(0,0,0,.82); }

/* Footer and persistent CTA */
.site-footer{ padding:38px 0 42px; background:#000; border-top:1px solid rgba(255,255,255,.12); }
.footer-inner{ width:min(1240px,calc(100% - 64px)); }
.footer-inner p{ color:rgba(255,255,255,.55); font-size:11px; }
.footer-links a{ font-size:12px; font-weight:800; }
.belt-red{ background:var(--red); height:var(--belt-h); }
.belt-red-inner{ height:var(--belt-h); max-width:1600px; margin:0 auto; }
.belt-marquee-row{ font-size:16px; letter-spacing:.08em; }
.belt-divider{ height:36px; }
.belt-cta-rect{ height:44px; background:#000; padding:0 24px; box-shadow:none; }
.belt-cta-text{ font-size:13px; letter-spacing:.06em; }

/* Motion */
.y-bg-layer{ transition:opacity 1.15s cubic-bezier(.2,.7,.2,1); }
.y-reveal .y-services-card,
.y-reveal .y-class-row,
.y-reveal .y-facility-item{ transform:translateY(28px); transition-duration:.75s; }

/* Tablet */
@media (max-width:1100px){
  .container{ width:min(100% - 44px,1000px); }
  .promo-container{ grid-template-columns:minmax(330px,.9fr) minmax(0,1.3fr); gap:36px; }
  .schedule-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .y-coach-card{ flex-basis:calc((100% - 28px)/3); }
  .membership-hero__title{ width:min(100% - 44px,1000px); }
  .y-class-row{ gap:38px; }
  .y-class-media{ height:430px; }
}

/* Mobile / narrow tablet */
@media (max-width:820px){
  :root{ --header-h:68px; --belt-h:62px; }
  body{ padding-top:var(--header-h); }
  .container{ width:calc(100% - 36px); }
  .section{ padding:84px 0; }
  .site-header{ top:4px; }
  .header-inner--wide{ width:calc(100% - 24px); }
  .brand-logo{ height:50px; }
  .mv{ margin-top:calc(-1 * var(--header-h) - 4px); }
  .mv-hero{ min-height:680px; height:88svh; }
  .mv-copy{ left:20px; width:calc(100% - 40px); bottom:90px; }
  .mv-title{ font-size:clamp(43px,13vw,68px); }
  .mv-title-line:first-child{ margin-bottom:18px; padding-left:36px; font-size:14px; }
  .mv-title-line:first-child::before{ width:24px; }
  html[lang="en"] .mv-title{ font-size:clamp(42px,7.5vw,58px); }
  html[lang="en"] .mv-title-line:not(:first-child){ white-space:normal; width:auto; }
  .mv-actions{ margin-top:26px; }
  .mv-btn{ min-width:210px; min-height:54px; }
  .mv-hero::after{ font-size:48vw; bottom:-.1em; }

  .promo-section{ padding:84px 0 92px; }
  .promo-container{ display:block; }
  .promo-title{ margin-bottom:38px; font-size:clamp(42px,10vw,62px); }
  .promo-carousel{ padding:0 0 48px; }
  .promo-carousel__slide{ flex-basis:94%; }
  .promo-copy{ margin-top:34px; }
  .promo-date{ font-size:26px; }

  .y-services{ min-height:0; padding:0; }
  .y-services-bg{ position:relative; width:100%; height:420px; }
  .y-services-inner{ min-height:0; width:100%; }
  .y-services-card{ width:calc(100% - 36px); min-height:0; margin:-82px auto 0; padding:42px 30px; box-shadow:0 24px 60px rgba(0,0,0,.14); }
  .y-services-title{ font-size:clamp(34px,9.4vw,50px); }

  .y-classes-v2{ padding:94px 0 104px; }
  .y-classes-head{ margin-bottom:52px; }
  .y-class-list{ gap:72px; }
  .y-class-row,.y-class-row--reverse{ display:flex; flex-direction:column; gap:30px; }
  .y-class-row--reverse .y-class-media,.y-class-row--reverse .y-class-text{ order:initial; }
  .y-class-media{ max-width:none; height:390px; }
  .y-class-octo--1{ width:89%; height:84%; }
  .y-class-octo--2{ width:52%; height:50%; }
  .y-class-title{ font-size:clamp(36px,10vw,56px); }
  .y-class-text::before{ font-size:112px; }

  #schedule{ padding:92px 0 100px; }
  .schedule-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .legend{ flex-wrap:wrap; }

  .y-coaches{ padding:92px 0 104px; }
  .y-coach-card{ flex-basis:calc((100% - 14px)/2); }
  .y-coach-arrow.left{ left:-8px; }
  .y-coach-arrow.right{ right:-8px; }

  .membership-hero{ height:340px; }
  .membership-hero__title{ width:calc(100% - 36px); }
  .membership-body{ padding-bottom:96px; }
  .plan-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:-48px; }

  .y-facilities{ padding:92px 0 104px; }
  .y-area-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:260px 190px 190px; }
  .y-area-card:nth-child(1){ grid-column:span 2; grid-row:auto; }
  .y-area-card:nth-child(2){ grid-column:span 1; }
  .y-facilities-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }

  .insta-section{ padding:90px 0 100px; }
  .insta-inner{ display:block; }
  .insta-head{ position:static; margin-bottom:38px; }
  .insta-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .insta-tile:nth-child(n+5){ display:block; }

  .booking-section{ padding:94px 0 104px; }
  .steps{ grid-template-columns:1fr; }
  .step{ min-height:0; }

  #faq,#access{ padding:92px 0 100px; }
  .access-block{ grid-template-columns:1fr; }
  .access-left{ border-right:0; border-bottom:1px solid rgba(255,255,255,.14); }
  .access-right iframe{ min-height:420px; }
}

@media (max-width:560px){
  .container{ width:calc(100% - 28px); }
  .section-title,.y-section-title{ font-size:clamp(38px,13vw,55px); }
  .mv-hero{ min-height:630px; }
  .mv-copy{ left:16px; width:calc(100% - 32px); bottom:82px; }
  .mv-title{ font-size:clamp(38px,12.7vw,56px); }
  .mv-overlay{ background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.16)),linear-gradient(180deg,rgba(0,0,0,.14),transparent 40%,rgba(0,0,0,.66)); }

  .promo-carousel__slide{ flex-basis:100%; }
  .promo-cta-wrap .btn-solid{ width:100%; }

  .y-services-bg{ height:330px; }
  .y-services-card{ width:calc(100% - 28px); margin-top:-58px; padding:36px 22px; }
  .y-services-card::before{ font-size:100px; }
  .y-services-body br{ display:none; }

  .y-class-media{ height:310px; }
  .y-class-octo--1{ width:90%; height:82%; }
  .y-class-octo--2{ width:55%; height:52%; border-width:5px; }
  .y-class-title{ font-size:clamp(34px,11vw,48px); }

  .schedule-grid{ grid-template-columns:1fr; }
  .day summary{ min-height:58px; }

  .y-coach-card{ flex-basis:78%; }
  .y-coach-arrow{ width:44px; height:44px; }

  .membership-hero{ height:280px; }
  .membership-hero__title{ width:calc(100% - 28px); font-size:clamp(43px,14vw,62px); }
  .plan-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:-30px; }
  .plan-top{ min-height:142px; }
  .plan-name{ top:16px; max-width:calc(100% - 20px); font-size:10px; line-height:1.2; letter-spacing:.045em; }
  .plan-badge{ top:48px; font-size:10px; }
  .plan-price{ top:72%; }
  .plan-price .num{ font-size:clamp(29px,9vw,38px); }
  .plan-bottom{ min-height:0; padding:14px 10px 17px; }
  .plan-block{ padding:11px 0; }
  .plan-k{ font-size:9px; }
  .plan-big{ font-size:18px; }
  .membership-campaign-btn{ min-width:0; width:100%; }
  .membership-campaign-mini{ grid-template-columns:1fr; }

  .y-area-grid{ display:grid; grid-template-columns:1fr; grid-template-rows:repeat(6,220px); }
  .y-area-card:nth-child(1),.y-area-card:nth-child(2){ grid-column:auto; grid-row:auto; }
  .y-facilities-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .y-facility-item{ min-height:165px; padding:20px 10px; }

  .insta-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }

  .booking-widget{ padding:6px; }
  .booking-widget iframe{ min-height:980px; }

  .access-left{ padding:30px 20px; }
  .info-row{ grid-template-columns:58px 1fr; gap:8px; }
  .company-table .tr{ grid-template-columns:1fr; }
  .company-table .th{ padding-bottom:5px; }
  .company-table .td{ padding-top:5px; }

  .footer-inner{ width:calc(100% - 28px); }

  /* Keep both the moving information and the CTA visible on phones. */
  .belt-red-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) clamp(126px,39vw,150px);
    gap:0;
    padding:0;
  }
  .belt-marquee{
    display:flex;
    min-width:0;
    width:100%;
    mask-image:none;
    -webkit-mask-image:none;
  }
  .belt-marquee-row{
    width:max-content;
    min-width:max-content;
    gap:12px;
    font-size:12px;
    animation-duration:28s;
  }
  .belt-divider{ display:none; }
  .belt-cta-rect{
    width:100%;
    height:100%;
    min-width:0;
    padding:0 10px;
    text-align:center;
  }
  .belt-cta-text{
    font-size:12px;
    line-height:1.25;
  }
}

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