
/* =========================================================
   G-Flady lower page: lesson / facility / price
   固定ページ「レッスン・設備・料金案内」
   ========================================================= */

.gflady-subpage{
  --gsub-rose:#cf5f78;
  --gsub-rose-dark:#ad435b;
  --gsub-pink:#fff6f8;
  --gsub-pink-2:#fff0f4;
  --gsub-border:#f0cfd5;
  --gsub-text:#2f2929;
  --gsub-muted:#665a5d;
  background:#fff;
  color:var(--gsub-text);
  font-family:var(--sans-readable,"Noto Sans JP","Hiragino Sans","Yu Gothic","Meiryo",sans-serif);
  overflow:hidden;
}

.gsub-container{
  width:min(1120px, calc(100% - 56px));
  margin:0 auto;
}

.gsub-hero{
  padding:36px 0 54px;
  background:linear-gradient(90deg,#fff5f8 0%,#fff 50%,#fff7f9 100%);
}

.gsub-hero__inner{
  min-height:250px;
  display:grid;
  grid-template-columns:1fr 420px;
  gap:46px;
  align-items:center;
}

.gsub-kicker{
  display:inline-flex;
  margin:0 0 12px;
  color:var(--gsub-rose);
  font-size:13px;
  font-weight:900;
  letter-spacing:.14em;
}

.gsub-hero h1{
  margin:0 0 20px;
  color:var(--gsub-rose);
  font-family:var(--serif-readable,"Noto Serif JP","Yu Mincho","YuMincho",serif);
  font-size:40px;
  line-height:1.45;
  font-weight:700;
  letter-spacing:.08em;
}

.gsub-hero p{
  margin:0;
  max-width:620px;
  color:#3a3335;
  font-size:15px;
  line-height:2;
  font-weight:700;
}

.gsub-hero__image{
  margin:0;
  overflow:hidden;
  border-radius:0 0 0 80px;
  box-shadow:0 20px 45px rgba(121,67,78,.10);
}

.gsub-hero__image img{
  display:block;
  width:100%;
  height:250px;
  object-fit:cover;
}

.gsub-section{
  padding:70px 0;
}

.gsub-section:nth-of-type(even){
  background:#fff;
}

.gsub-section:nth-of-type(odd){
  background:linear-gradient(180deg,#fff 0%,#fff9fb 100%);
}

.gsub-heading{
  margin:0 0 34px;
  text-align:center;
}

.gsub-heading span{
  display:block;
  margin:0 0 5px;
  color:var(--gsub-rose);
  font-family:var(--serif-readable,"Noto Serif JP","Yu Mincho","YuMincho",serif);
  font-size:38px;
  line-height:1;
  font-weight:600;
  letter-spacing:.06em;
}

.gsub-heading h2{
  position:relative;
  display:inline-block;
  margin:0;
  padding:0 44px;
  color:var(--gsub-rose);
  font-size:17px;
  line-height:1.5;
  font-weight:900;
  letter-spacing:.14em;
}

.gsub-heading h2::before,
.gsub-heading h2::after{
  content:"";
  position:absolute;
  top:50%;
  width:28px;
  height:1px;
  background:var(--gsub-border);
}

.gsub-heading h2::before{ left:0; }
.gsub-heading h2::after{ right:0; }

/* PRICE */
.gsub-price{
  padding-top:58px;
}

.gsub-fees{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  max-width:760px;
  margin:0 auto 34px;
  overflow:hidden;
  border:1px solid var(--gsub-border);
  border-radius:18px;
  background:#fff;
  box-shadow:0 18px 40px rgba(121,67,78,.07);
}

.gsub-fee{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  align-items:center;
  text-align:center;
  padding:20px 28px;
}

.gsub-fee + .gsub-fee{
  border-left:1px solid var(--gsub-border);
}


.gsub-fee p{
  margin:0 0 3px;
  font-size:13px;
  font-weight:900;
}

.gsub-fee strong{
  display:inline-block;
  color:var(--gsub-text);
  font-size:26px;
  line-height:1.2;
  font-weight:800;
}

.gsub-fee small{
  margin-left:7px;
  color:#4c4446;
  font-size:12px;
  font-weight:700;
}

.gsub-plan-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:18px;
}

.gsub-plan-card{
  overflow:hidden;
  border-radius:16px;
  background:#fff;
  border:1px solid var(--gsub-border);
  box-shadow:0 16px 36px rgba(121,67,78,.07);
  text-align:center;
}

.gsub-plan-card h3{
  margin:0;
  padding:12px 10px;
  background:linear-gradient(135deg,var(--gsub-rose),#e58aa1);
  color:#fff;
  font-size:15px;
  line-height:1.35;
  font-weight:900;
  letter-spacing:.04em;
}

.gsub-plan-price{
  margin:20px 0 10px;
  color:var(--gsub-text);
  font-family:var(--serif-readable,"Noto Serif JP","Yu Mincho","YuMincho",serif);
  font-size:26px;
  line-height:1;
  font-weight:700;
}

.gsub-plan-price small{
  margin-left:4px;
  font-size:11px;
  font-family:var(--sans-readable,"Noto Sans JP","Meiryo",sans-serif);
}

.gsub-plan-card dl{
  margin:0 18px 12px;
  padding:12px 0;
  border-top:1px solid #f3dde2;
  border-bottom:1px solid #f3dde2;
}

.gsub-plan-card dt{
  margin:0 0 4px;
  font-size:12px;
  font-weight:900;
}

.gsub-plan-card dd{
  margin:0;
  font-size:15px;
  font-weight:800;
}

.gsub-plan-lead{
  min-height:48px;
  margin:0;
  padding:0 16px 20px;
  color:var(--gsub-muted);
  font-size:12px;
  line-height:1.65;
  font-weight:700;
}

.gsub-note{
  margin:18px 0 0;
  color:#6d6264;
  font-size:12px;
  line-height:1.8;
  font-weight:700;
  text-align:center;
}

/* STAFF */
.gsub-staff-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}

.gsub-staff-card{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:20px;
  align-items:center;
  min-height:210px;
  padding:26px;
  border-radius:20px;
  background:#fff;
  border:1px solid var(--gsub-border);
  box-shadow:0 16px 36px rgba(121,67,78,.07);
}

.gsub-staff-photo{
  width:110px;
  height:110px;
  border-radius:50%;
  overflow:hidden;
  background:#f7e6ea;
}

.gsub-staff-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.gsub-staff-photo.is-placeholder{
  display:grid;
  place-items:center;
  font-size:58px;
  color:#c8a7ad;
}

.gsub-staff-role{
  display:inline-flex;
  margin:0 0 8px;
  padding:4px 10px;
  border-radius:999px;
  background:#fff0f4;
  color:var(--gsub-rose);
  font-size:11px;
  line-height:1;
  font-weight:900;
}

.gsub-staff-card h3{
  margin:0 0 8px;
  color:var(--gsub-rose);
  font-size:18px;
  line-height:1.35;
  font-weight:900;
  letter-spacing:.06em;
}

.gsub-staff-license{
  margin:0 0 10px;
  color:#403638;
  font-size:11px;
  line-height:1.6;
  font-weight:800;
}

.gsub-staff-card p:last-child{
  margin:0;
  color:var(--gsub-muted);
  font-size:12px;
  line-height:1.75;
  font-weight:700;
}

/* SCHEDULE */
.gsub-schedule-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:18px;
}

.gsub-schedule-card{
  overflow:hidden;
  border-radius:14px;
  background:#fff;
  border:1px solid var(--gsub-border);
  box-shadow:0 12px 30px rgba(121,67,78,.06);
  text-align:center;
}

.gsub-schedule-card h3{
  margin:0;
  padding:11px 10px;
  background:#3e393a;
  color:#fff;
  font-size:13px;
  font-weight:900;
}

.gsub-schedule-card.is-pilates h3{
  background:linear-gradient(135deg,#cf5f78,#e58aa1);
}

.gsub-schedule-card.is-yoga h3{
  background:linear-gradient(135deg,#7bb9bd,#9fd4d0);
}

.gsub-schedule-card.is-stretch h3{
  background:linear-gradient(135deg,#d4a35f,#ebc384);
  font-size:12px;
}

.gsub-schedule-day{
  margin:0;
  padding:13px 10px 6px;
  color:var(--gsub-text);
  font-size:15px;
  font-weight:900;
}

.gsub-schedule-time{
  margin:0;
  padding:0 10px 5px;
  color:var(--gsub-text);
  font-size:14px;
  line-height:1.45;
  font-weight:800;
}

.gsub-schedule-time:last-child{
  padding-bottom:16px;
}

/* FACILITY */
.gsub-facility-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
}

.gsub-facility-card{
  overflow:hidden;
  border-radius:16px;
  background:#fff;
  border:1px solid var(--gsub-border);
  box-shadow:0 16px 36px rgba(121,67,78,.07);
  text-align:center;
}

.gsub-facility-card img{
  display:block;
  width:100%;
  height:150px;
  object-fit:cover;
}

.gsub-facility-card h3{
  margin:14px 12px 5px;
  color:var(--gsub-text);
  font-size:15px;
  font-weight:900;
}

.gsub-facility-card p{
  min-height:48px;
  margin:0;
  padding:0 12px 18px;
  color:var(--gsub-muted);
  font-size:12px;
  line-height:1.65;
  font-weight:700;
}


/* MACHINE */
.gsub-machine-category{
  margin:6px 0 20px;
  border-top:1px solid var(--gsub-border);
}

.gsub-machine-category p{
  display:inline-flex;
  margin:-1px 0 0;
  min-width:190px;
  padding:8px 18px;
  border:1px solid var(--gsub-border);
  border-top-color:var(--gsub-rose);
  background:#fff;
  color:var(--gsub-rose);
  font-size:12px;
  font-weight:900;
}

.gsub-machine-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:18px;
  margin:0 0 28px;
}

.gsub-machine-grid--small{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.gsub-machine-card{
  min-height:190px;
  padding:14px 12px 16px;
  border-radius:14px;
  background:#fff;
  border:1px solid var(--gsub-border);
  box-shadow:0 12px 28px rgba(121,67,78,.06);
  text-align:center;
}

.gsub-machine-card img{
  width:100%;
  height:115px;
  object-fit:contain;
  display:block;
  margin:0 auto 10px;
}

.gsub-machine-card h3{
  margin:0 0 4px;
  color:var(--gsub-text);
  font-size:12px;
  line-height:1.45;
  font-weight:900;
}

.gsub-machine-card p{
  margin:0;
  color:#4c4446;
  font-size:11px;
  font-weight:700;
}



/* MAP */
.gsub-map-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
}

.gsub-map-card{
  margin:0;
  padding:16px;
  border-radius:16px;
  background:#fff;
  border:1px solid var(--gsub-border);
  box-shadow:0 14px 34px rgba(121,67,78,.07);
}

.gsub-map-card figcaption{
  margin:0 0 12px;
  text-align:center;
  color:var(--gsub-text);
  font-family:var(--serif-readable,"Noto Serif JP","Yu Mincho",serif);
  font-size:16px;
  font-weight:700;
  letter-spacing:.08em;
}

.gsub-map-card figcaption small{
  margin-left:8px;
  color:#6d6264;
  font-size:12px;
  letter-spacing:.03em;
}

.gsub-map-card img{
  display:block;
  width:100%;
  height:300px;
  object-fit:contain;
  background:#fff;
  border-radius:10px;
}

/* FAQ */
.gsub-faq-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 24px;
}

.gsub-faq-item{
  border-radius:14px;
  background:#fff;
  border:1px solid var(--gsub-border);
  overflow:hidden;
}

.gsub-faq-item summary{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:58px;
  padding:16px 52px 16px 18px;
  color:var(--gsub-text);
  font-size:14px;
  line-height:1.55;
  font-weight:800;
  cursor:pointer;
  list-style:none;
}

.gsub-faq-item summary::-webkit-details-marker{
  display:none;
}

.gsub-faq-item summary::after{
  content:"+";
  position:absolute;
  right:18px;
  top:50%;
  width:22px;
  height:22px;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--gsub-rose);
  color:#fff;
  font-size:16px;
  line-height:1;
  font-weight:900;
}

.gsub-faq-item[open] summary::after{
  content:"−";
}

.gsub-faq-item summary span{
  color:var(--gsub-rose);
  font-weight:900;
}

.gsub-faq-item p{
  margin:0;
  padding:0 18px 18px 48px;
  color:var(--gsub-muted);
  font-size:13px;
  line-height:1.8;
  font-weight:700;
}

/* CTA */
.gsub-cta{
  padding:54px 0 70px;
  background:#fff;
}

.gsub-cta__inner{
  display:grid;
  grid-template-columns:260px 1fr;
  gap:36px;
  align-items:center;
  padding:28px 46px;
  border-radius:22px;
  background:
    radial-gradient(circle at 88% 50%,rgba(255,255,255,.55) 0 22%,rgba(255,255,255,0) 42%),
    linear-gradient(90deg,#fff2f6 0%,#fff 52%,#fff0f4 100%);
  border:1px solid var(--gsub-border);
  box-shadow:0 18px 45px rgba(121,67,78,.09);
}

.gsub-cta__image{
  margin:0;
  overflow:hidden;
  border-radius:20px;
}

.gsub-cta__image img{
  display:block;
  width:100%;
  height:180px;
  object-fit:cover;
  object-position:center;
}

.gsub-cta__copy{
  text-align:center;
}

.gsub-cta__copy h2{
  margin:0 0 14px;
  color:var(--gsub-text);
  font-family:var(--serif-readable,"Noto Serif JP","Yu Mincho",serif);
  font-size:26px;
  line-height:1.6;
  font-weight:700;
  letter-spacing:.05em;
}

.gsub-cta__copy h2::first-letter{
  color:var(--gsub-rose);
}

.gsub-cta__copy p{
  margin:0 0 24px;
  color:var(--gsub-muted);
  font-size:14px;
  font-weight:800;
}

.gsub-cta__buttons{
  display:flex;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
}

.gsub-cta__buttons .btn{
  min-width:220px;
}

/* Tablet / SP */
@media (max-width:1100px){
  .gsub-container{
    width:calc(100% - 40px);
  }

  .gsub-hero__inner{
    grid-template-columns:1fr;
  }

  .gsub-hero__image img{
    height:260px;
  }

  .gsub-plan-grid,
  .gsub-schedule-grid,
  .gsub-machine-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .gsub-staff-grid,
  .gsub-fees,
  .gsub-map-grid,
  .gsub-faq-grid{
    grid-template-columns:1fr;
  }

  .gsub-fee + .gsub-fee{
    border-left:0;
    border-top:1px solid var(--gsub-border);
  }

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

  .gsub-facility-card:nth-child(n+5){
    transform:none;
  }
}

@media (max-width:760px){
  .gsub-container{
    width:calc(100% - 28px);
  }

  .gsub-hero{
    padding:28px 0 42px;
  }

  .gsub-hero h1{
    font-size:30px;
  }

  .gsub-section{
    padding:54px 0;
  }

  .gsub-heading span{
    font-size:30px;
  }

  .gsub-heading h2{
    font-size:15px;
    padding:0 32px;
  }

  .gsub-plan-grid,
  .gsub-schedule-grid,
  .gsub-facility-grid,
  .gsub-machine-grid,
  .gsub-machine-grid--small{
    grid-template-columns:1fr;
  }

  .gsub-staff-card{
    grid-template-columns:1fr;
    text-align:center;
  }

  .gsub-staff-photo{
    margin:0 auto;
  }

  .gsub-map-card img{
    height:auto;
  }

  .gsub-cta__inner{
    grid-template-columns:1fr;
    padding:24px 18px 30px;
  }

  .gsub-cta__image{
    display:none;
  }

  .gsub-cta__copy h2{
    font-size:22px;
  }

  .gsub-cta__buttons .btn{
    width:100%;
    min-width:0;
  }
}


/* G-Flady facility 8 cards alignment */
.gsub-facility-card:nth-child(n+5){
  transform:none !important;
}


/* =========================================================
   G-Flady responsive final alignment 2026-06-29
   スマホ100%想定：メニュー開閉、下層アンカー、横揺れ防止を統一
   ========================================================= */
html{
  scroll-behavior:smooth;
  overflow-x:hidden;
}

body{
  overflow-x:hidden !important;
}

body.gflady-menu-open{
  overflow:hidden !important;
  touch-action:none;
}

#top,
#features,
#lessons,
#lesson,
#lesson-schedule,
#schedule,
#facilities,
#facility,
#machines,
#machine,
#price,
#staff,
#map,
#faq,
#access,
#trial,
#company,
#tokutei,
#privacy,
#terms{
  scroll-margin-top:88px;
}

.gflady-anchor-alias{
  display:block;
  width:1px;
  height:1px;
  margin-top:-1px;
  overflow:hidden;
  visibility:hidden;
  scroll-margin-top:88px;
}

.site-header{
  z-index:10000 !important;
}

.header-inner{
  max-width:1180px;
}

.global-nav{
  flex-wrap:nowrap;
}

.global-nav__link,
.global-nav > a,
.nav-cta{
  -webkit-tap-highlight-color:transparent;
}

@media (max-width:980px){
  body.admin-bar .site-header{
    top:0;
  }

  .site-header{
    position:sticky !important;
    top:0 !important;
  }

  .header-inner{
    width:calc(100% - 28px) !important;
    min-height:64px !important;
    gap:12px !important;
  }

  .brand{
    min-width:0 !important;
  }

  .brand-main{
    font-size:24px !important;
  }

  .brand-sub{
    font-size:9px !important;
    letter-spacing:.06em !important;
    white-space:nowrap !important;
  }

  .nav-toggle{
    position:relative !important;
    z-index:10002 !important;
    display:block !important;
    flex:0 0 44px !important;
    width:44px !important;
    height:44px !important;
    box-shadow:0 10px 24px rgba(121,67,78,.10) !important;
  }

  .global-nav{
    position:fixed !important;
    left:12px !important;
    right:12px !important;
    top:74px !important;
    z-index:10001 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
    width:auto !important;
    max-height:calc(100dvh - 96px) !important;
    padding:12px !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    border-radius:20px !important;
    background:rgba(255,255,255,.98) !important;
    border:1px solid rgba(238,184,193,.9) !important;
    box-shadow:0 24px 54px rgba(121,67,78,.18) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(-8px) !important;
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease !important;
  }

  .global-nav.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
  }

  .global-nav__item{
    display:block !important;
    width:100% !important;
  }

  .global-nav__link,
  .global-nav__parent,
  .global-nav > a:not(.nav-cta){
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    min-height:48px !important;
    padding:14px 14px !important;
    border-radius:14px !important;
    color:#2f2929 !important;
    font-size:15px !important;
    line-height:1.35 !important;
    font-weight:900 !important;
    background:#fff !important;
    border-bottom:1px solid rgba(238,184,193,.45) !important;
  }

  .global-nav__link::after,
  .global-nav > a:not(.nav-cta)::after{
    content:"›";
    color:#cf5f78;
    font-size:20px;
    line-height:1;
    font-weight:900;
  }

  .global-nav__parent::after{
    right:16px !important;
  }

  .global-nav__submenu{
    position:static !important;
    display:block !important;
    min-width:0 !important;
    margin:0 0 6px !important;
    padding:0 0 0 12px !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
  }

  .global-nav__submenu::before{
    display:none !important;
  }

  .global-nav__submenu a{
    display:block !important;
    min-height:42px !important;
    padding:12px 14px !important;
    border-radius:12px !important;
    background:#fff7fa !important;
    color:#2f2929 !important;
    font-size:14px !important;
    font-weight:900 !important;
  }

  .nav-cta{
    display:flex !important;
    width:100% !important;
    min-height:50px !important;
    margin:10px 0 0 !important;
    padding:14px 18px !important;
    border-radius:999px !important;
    font-size:15px !important;
  }
}

@media (max-width:768px){
  .container,
  .gsub-container,
  .glesson-container,
  .comparison-v2-inner,
  .price-v3-inner,
  .footer-inner{
    width:calc(100% - 28px) !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .lp-main,
  .gflady-subpage,
  .glesson,
  .default-page,
  .price-detail-page-safe,
  .gzlegal{
    overflow-x:hidden !important;
  }

  .lp-main img,
  .gflady-subpage img,
  .glesson img,
  .default-page img,
  .gzlegal img{
    max-width:100% !important;
    height:auto;
  }

  .gsub-hero__inner,
  .gsub-cta__inner,
  .gsub-map-grid,
  .glesson-hero__inner,
  .glesson-bottom-grid,
  .glesson-platinum-grid,
  .price-v3-layout,
  .comparison-v2-grid{
    grid-template-columns:1fr !important;
    gap:24px !important;
  }

  .gsub-plan-grid,
  .gsub-staff-grid,
  .gsub-facility-grid,
  .gsub-machine-grid,
  .gsub-faq-grid,
  .price-safe-grid{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }

  .gsub-fees,
  .price-safe-fees{
    grid-template-columns:1fr !important;
  }

  .gsub-fee + .gsub-fee,
  .price-safe-fees > div + div{
    border-left:0 !important;
    border-top:1px solid var(--gsub-border,#f0cfd5) !important;
  }

  .gsub-section,
  .glesson-section,
  .price-safe-section,
  .gzlegal-section{
    padding-top:54px !important;
    padding-bottom:54px !important;
  }

  .gsub-hero,
  .glesson-hero,
  .price-safe-hero,
  .gzlegal-hero{
    padding-top:34px !important;
    padding-bottom:42px !important;
  }

  .gsub-hero h1,
  .glesson-hero h1,
  .price-safe-hero h1,
  .gzlegal-hero h1{
    font-size:clamp(28px,8vw,38px) !important;
    line-height:1.45 !important;
  }

  .gsub-heading span,
  .glesson-heading .en{
    font-size:clamp(30px,8vw,38px) !important;
  }

  .gsub-heading h2,
  .glesson-heading h2{
    font-size:clamp(20px,6vw,28px) !important;
  }

  .gsub-hero__image,
  .glesson-hero__main,
  .comparison-v2-photo{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
  }

  .gsub-hero__image img,
  .glesson-hero__main img,
  .comparison-v2-photo img{
    width:100% !important;
    height:auto !important;
    aspect-ratio:4/3 !important;
    object-fit:cover !important;
  }

  .comparison-v2-table-wrap,
  .table-wrap,
  .gsub-table-wrap{
    width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }

  .comparison-v2-table,
  .compare-table,
  .gsub-table{
    min-width:640px !important;
  }

  .footer-inner{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:24px !important;
    text-align:center !important;
  }

  .footer-nav,
  .footer-links{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    width:100% !important;
  }

  .footer-nav a,
  .footer-links a{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:42px !important;
    padding:10px 8px !important;
    border-radius:12px !important;
    background:#fff7fa !important;
    font-size:12px !important;
    line-height:1.35 !important;
    white-space:normal !important;
  }

  .fixed-cta{
    position:fixed !important;
    left:14px !important;
    right:14px !important;
    bottom:calc(14px + env(safe-area-inset-bottom)) !important;
    z-index:9998 !important;
    width:auto !important;
    min-height:52px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:999px !important;
    box-shadow:0 16px 34px rgba(207,95,120,.30) !important;
  }

  .gflady-page-top{
    right:16px !important;
    bottom:calc(82px + env(safe-area-inset-bottom)) !important;
    z-index:9997 !important;
  }

  body{
    padding-bottom:calc(74px + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width:390px){
  .header-inner{
    width:calc(100% - 20px) !important;
  }

  .brand-main{
    font-size:22px !important;
  }

  .brand-sub{
    font-size:8px !important;
  }

  .global-nav{
    left:10px !important;
    right:10px !important;
  }

  .footer-nav,
  .footer-links{
    grid-template-columns:1fr !important;
  }
}


/* =========================================================
   G-Flady SP menu + WEB入会 CTA fix 2026-06-29
   1) SPハンバーガーメニューを大きく表示
   2) 無料体験 + WEB入会ボタンを共通化
   ========================================================= */
.gflady-menu-open,
body.gflady-menu-open{
  overflow:hidden !important;
}

.nav-cta-group,
.gflady-cta-pair,
.glesson-cta__buttons{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  flex-wrap:wrap !important;
}

.nav-cta-group{
  flex:0 0 auto !important;
}

.nav-cta,
.btn-join,
.glesson-btn--join,
.fixed-cta{
  text-decoration:none !important;
  -webkit-tap-highlight-color:transparent !important;
}

.nav-cta--trial,
.fixed-cta--trial{
  background:linear-gradient(135deg,#cf5f78,#e88ba2) !important;
  color:#fff !important;
}

.nav-cta--join,
.btn-join,
.glesson-btn--join,
.fixed-cta--join{
  background:#74c2bd !important;
  color:#fff !important;
  border-color:transparent !important;
  box-shadow:0 14px 30px rgba(116,194,189,.32) !important;
}

.btn-join,
.glesson-btn--join{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:52px !important;
  padding:14px 28px !important;
  border-radius:999px !important;
  font-weight:900 !important;
  letter-spacing:.04em !important;
}

.fixed-cta-wrap{
  position:fixed !important;
  left:50% !important;
  bottom:calc(18px + env(safe-area-inset-bottom)) !important;
  z-index:9998 !important;
  transform:translateX(-50%) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  width:min(560px,calc(100% - 28px)) !important;
  pointer-events:none !important;
}

.fixed-cta-wrap .fixed-cta{
  position:static !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:auto !important;
  min-width:0 !important;
  flex:1 1 0 !important;
  transform:none !important;
  pointer-events:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:52px !important;
  padding:14px 16px !important;
  border-radius:999px !important;
  font-size:15px !important;
  font-weight:900 !important;
  line-height:1.2 !important;
  box-shadow:0 16px 34px rgba(207,95,120,.28) !important;
}

@media (min-width:981px){
  .nav-cta-group{
    flex-wrap:nowrap !important;
  }

  .nav-cta-group .nav-cta{
    min-height:40px !important;
    padding:10px 16px !important;
    font-size:13px !important;
    line-height:1 !important;
  }

  .gflady-cta-pair{
    justify-content:flex-start !important;
    flex-wrap:nowrap !important;
  }

  .trial-card .gflady-cta-pair,
  .gsub-cta__buttons.gflady-cta-pair,
  .price-safe-cta.gflady-cta-pair{
    justify-content:center !important;
  }

  body{
    padding-bottom:0 !important;
  }
}

@media (max-width:980px){
  .nav-toggle{
    position:relative !important;
    z-index:10005 !important;
    display:grid !important;
    place-items:center !important;
    flex:0 0 48px !important;
    width:48px !important;
    height:48px !important;
    border-radius:50% !important;
    background:#fff !important;
    border:1px solid rgba(207,95,120,.35) !important;
    box-shadow:0 12px 28px rgba(121,67,78,.16) !important;
  }

  .nav-toggle span{
    width:22px !important;
    height:2px !important;
    margin:3px auto !important;
    background:#cf5f78 !important;
  }

  .nav-toggle.is-open{
    background:#cf5f78 !important;
    border-color:#cf5f78 !important;
  }

  .nav-toggle.is-open span{
    background:#fff !important;
  }

  .global-nav{
    position:fixed !important;
    inset:0 !important;
    z-index:10003 !important;
    width:100vw !important;
    height:100dvh !important;
    max-height:none !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:10px !important;
    padding:92px 18px 28px !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    border:0 !important;
    border-radius:0 !important;
    background:linear-gradient(180deg,rgba(255,246,248,.99) 0%,rgba(255,255,255,.99) 48%,rgba(255,240,244,.99) 100%) !important;
    box-shadow:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(-8px) !important;
    transition:opacity .2s ease, transform .2s ease, visibility .2s ease !important;
  }

  .global-nav.is-open,
  body.gflady-menu-open .global-nav,
  html.gflady-menu-open .global-nav{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
  }

  .global-nav::before{
    content:"MENU" !important;
    display:block !important;
    margin:0 0 8px !important;
    color:#cf5f78 !important;
    font-family:var(--serif-readable,"Noto Serif JP","Yu Mincho",serif) !important;
    font-size:28px !important;
    line-height:1 !important;
    font-weight:700 !important;
    letter-spacing:.12em !important;
    text-align:center !important;
  }

  .global-nav__link,
  .global-nav__parent,
  .global-nav > a:not(.nav-cta){
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
    min-height:54px !important;
    padding:15px 18px !important;
    border-radius:18px !important;
    background:#fff !important;
    border:1px solid rgba(238,184,193,.75) !important;
    color:#2f2929 !important;
    font-size:16px !important;
    line-height:1.35 !important;
    font-weight:900 !important;
    box-shadow:0 10px 24px rgba(121,67,78,.08) !important;
  }

  .global-nav__link::after,
  .global-nav > a:not(.nav-cta)::after{
    content:"›" !important;
    color:#cf5f78 !important;
    font-size:22px !important;
    line-height:1 !important;
    font-weight:900 !important;
  }

  .nav-cta-group{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    width:100% !important;
    margin-top:10px !important;
  }

  .nav-cta-group .nav-cta{
    width:100% !important;
    min-height:58px !important;
    padding:17px 18px !important;
    border-radius:999px !important;
    font-size:17px !important;
    font-weight:900 !important;
    box-shadow:0 16px 34px rgba(207,95,120,.25) !important;
  }

  .gflady-cta-pair,
  .glesson-cta__buttons{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    gap:12px !important;
  }

  .gflady-cta-pair .btn,
  .glesson-cta__buttons .glesson-btn{
    width:100% !important;
    min-width:0 !important;
  }
}

@media (max-width:768px){
  .fixed-cta-wrap{
    left:12px !important;
    right:12px !important;
    bottom:calc(12px + env(safe-area-inset-bottom)) !important;
    transform:none !important;
    width:auto !important;
    gap:8px !important;
  }

  .fixed-cta-wrap .fixed-cta{
    min-height:52px !important;
    padding:13px 10px !important;
    font-size:14px !important;
  }

  .gflady-page-top{
    bottom:calc(82px + env(safe-area-inset-bottom)) !important;
  }

  body{
    padding-bottom:calc(76px + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width:390px){
  .global-nav{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  .fixed-cta-wrap .fixed-cta{
    font-size:13px !important;
  }
}
