@charset "utf-8";
/*--------------------

	ＴＯＰページ
	
--------------------*/
  @media (max-width: 900px) {
    .price-table { font-size: 11px; width: 800px;
    }
    .price-table th, .price-table td { padding: 10px 10px; }
    .pt-val { font-size: 15px; }
    .compare-table-wrap {
      margin-top: 40px;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .compare-table {
      margin-top: 0;
      min-width: 720px;
    }
    .pricing-compare-scroll {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .pricing-compare-grid {
      min-width: 800px;
    }
    .pricing-compare-card-title{letter-spacing: 0.03em;}
    .pricing-compare-card{padding: 28px 16px;}
    .pricing-compare-card-feature .pricing-compare-meta{letter-spacing: 0.03em;}
    .pricing-quote.fade-up{grid-template-columns: 1fr; padding: 30px 30px;}
    .pricing-quote p{font-size: 14px;}
  }
  
  .step-num{
    width: 70px;
    height: 70px;
  }
  .step-num strong{
    font-size: 28px;
  }
  .step-num span{
    font-size: 11px;
  }
  .flow-step{
    grid-template-columns: 60px 1fr;
  }
  .fade-up {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.7s ease, transform 0.7s ease;
  }
  .fade-up.visible {
    opacity: 1;
    transform: none;
    align-items: start;
  }
  .fade-up:nth-child(2) { transition-delay: 0.1s; }
  .fade-up:nth-child(3) { transition-delay: 0.2s; }
  .fade-up:nth-child(4) { transition-delay: 0.3s; }
  .flow-steps::before{height: calc(100% - 360px); left: 35px;}
  .trainer{width: 100%;}
  .faq-item{width: 100%;}
  .map-pin-foreground,.map-pin-foreground iframe{width: 100%; height: 100%;}
  
  
  /* ============ RESPONSIVE ============ */
  @media (max-width: 900px) {
    .hero { grid-template-columns: 1fr; min-height: auto; }
    .hero-left { padding: 100px 32px 40px; }
    .hero-right { min-height: 400px; }
    .hero-stat-grid { grid-template-columns: 1fr 1fr 1fr 1fr; padding: 270px 24px 90px; top: 50px; }
    .hero-sub{max-width: 100%;}
    .hero-visual{top:41%;}
    .hero-brand-mark{top:40px; font-size: 53px; letter-spacing: 0.03em;}
    .stat-num{font-size: 26px;}
    .stat-label{font-size: 13px;}
    .intro { margin-right: 24px; }
    .intro-inner, .trainer-inner, .access-inner { grid-template-columns: 1fr; gap: 40px; }
    .services-grid { grid-template-columns: 1fr; }
    .reason-item{grid-template-columns: 90px 1fr;}
    .reason-num{padding: 15px 10px;}
    .reason-num span{font-size: 40px;}
    .reason-num strong{font-size: 12px;}
    .testimonials::before,.testimonials::after{width: 60px; height: 60px;}
    .trainer{border-radius: 60px;}
    .pricing-summary-grid{grid-template-columns: 1fr 1fr;}
    .fee-amount{font-size: 26px;}
    .fee-box{padding: 28px 10px;}
    .fee-unit-small { font-size: 12px; letter-spacing: -0.1px;}
    .pricing-compare-title{font-size: 18px;}
    .faq{border-radius: 60px 0 0 60px;}
    .faq .container{padding: 0 14px;}
    .faq-icon{padding-left: 2px;}
    .faq-q{padding: 14px 18px;}
    .faq-a{padding: 0 21px 0 50px;}
    .faq-item.open .faq-a{max-height: 100%;}
    .concern-item:first-of-type{border-top-right-radius: 16px;}
    .concern-item:nth-of-type(2){border-top-right-radius: 0px;}
    .concern-item:nth-of-type(9){border-bottom-left-radius: 0px;}
    .concern-item:nth-of-type(10){border-bottom-left-radius: 16px;}
    .concerns-grid { grid-template-columns: 1fr; }
    .testimonials-grid { grid-template-columns: 1fr; }
    .final-cta{border-radius: 60px 60px 0 0; padding: 80px 0;}
    .concern-bubble{padding: 5px 16px;}
    .concern-bubble img{width: 13px;}
    .btn-gold,.btn-outline-light{width: 310px;}
    .footer-top { grid-template-columns: 1fr; gap: 32px; }
    .footer-inner{padding: 0 24px;}
    body.has-sp-floating-cta {
      padding-bottom: calc(96px + env(safe-area-inset-bottom));
    }
    body.menu-open {
      overflow: hidden;
    }
    .nav {
      padding: 16px 24px;
      align-items: center;
      flex-wrap: wrap;
    }
    .nav-logo-img {
      width: 180px;
      height: auto;
    }
    .nav-toggle {
      display: block;
      position: relative;
      z-index: 2;
    }
    .nav-menu {
      position: absolute;
      top: calc(100% + 10px);
      left: 24px;
      right: 24px;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 20px;
      padding: 24px;
      background: rgba(255, 255, 255, 0.98);
      border-radius: 20px;
      box-shadow: 0 20px 40px rgba(38, 40, 40, 0.14);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transform: translateY(-8px);
      transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
    }
    .nav.is-open .nav-menu {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateY(0);
    }
    .nav.is-open .nav-toggle span:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
    }
    .nav.is-open .nav-toggle span:nth-child(2) {
      opacity: 0;
    }
    .nav.is-open .nav-toggle span:nth-child(3) {
      transform: translateY(-7px) rotate(-45deg);
    }
    .nav-links {
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      gap: 16px;
    }
    .nav-links li {
      width: 100%;
    }
    .nav-links-sns {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .nav-links-sp-only {
      display: list-item;
      width: 100%;
    }
    .nav-links a {
      display: block;
      font-size: 14px;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--border);
    }
    .nav-links-sns .nav-social-link {
      padding: 6px 18px;
      border-bottom: 0;
      border-radius: 8px;
      text-align: center;
      font-weight: 500;
      display: block;
      width: 100%;
    }
    .nav-links-sns .nav-social-link-instagram {
      background: var(--sand);
      color: var(--text-main);
    }
    .nav-links-sns .nav-social-link-youtube {
      background: #f5d6d6;
      color: #8f3e3e;
    }
    .nav-cta {
      width: 100%;
      text-align: center;
      padding: 14px 20px;
    }
    .sp-floating-cta {
      position: fixed;
      left: 16px;
      right: 16px;
      bottom: calc(16px + env(safe-area-inset-bottom));
      z-index: 110;
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 56px;
      padding: 0 20px;
      background: var(--gold);
      color: #fff;
      text-decoration: none;
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.12em;
      border-radius: 999px;
      box-shadow: 0 12px 28px rgba(184, 92, 92, 0.3);
    }
    .container { padding: 0 24px; }
    section { padding: 64px 0; }
    section.hero { padding-top: 0; }
  }

  @media (min-width: 601px) and (max-width: 900px) {
    .nav-links-sp-only {
      width: calc((100% - 16px) / 2);
    }
    .nav-links-sns {
      flex-direction: row;
      flex-wrap: wrap;
    }
  }
  @media (max-width: 543px){
    .hero-stat-grid { grid-template-columns: 1fr 1fr;}
  }

/* ============ 共通 ============ */
@media (max-width: 768px) {
  .pc_br {
    display: none;
  }
  .sp_br {
    display: block;
  }
}

/*--------------------

	BLOG ARCHIVE
	
--------------------*/
@media (max-width: 1000px){
  .blog-archive-content{
    padding-top: 0;
  }
  .blog-archive-content .sub-container,
  .blog-single-content .sub-container,
  .\34 04-error-content .sub-container{
    flex-direction: column;
    gap: 40px;
  }
  .blog-archive-list-wrapper,
  .blog-single-content-wrapper,
  .\34 04-error-content-wrapper,
  .blog-sidebar-wrapper{
    width: 100%;
  }
  .blog-sidebar-wrapper{
    position: static;
    top: auto;
  }
  .blog-sidebar-list {
    margin-bottom: 40px;
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
  }
  .blog-sidebar-sns-list{
    flex-direction: row;
    justify-content: space-between;
  }
  .blog-sidebar-sns-list li{
    width: calc((100% - 48px) / 3);
  }
}
@media (max-width: 543px){
  section.page-title{
    padding-top: 140px;
  }
  section.page-title .section-label{
    margin-bottom: 8px;
  }
  section.page-title .section-title{
    margin-bottom: 30px;
  }
  .blog-archive-item a{
    flex-direction: column;
    gap: 18px;
  }
  .blog-archive-item-head{
    width: 100%;
    height: 200px;
  }
  .blog-archive-item-body{
    width: 100%;
  }
  .blog-sidebar-sns-list{
    flex-direction: column;
  }
  .blog-sidebar-sns-list li{
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
  }
}

/*--------------------

	BLOG SINGLE
	
--------------------*/
@media (max-width: 600px){
  .blog-single-content-main-visual{
    height: 300px;
  }
  .blog-single-content-main-body{
    padding-top: 30px;
  }
  .blog-single-content-main-body .wp-block-table{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .blog-single-content-main-body .wp-block-table table{
    min-width: 600px;
    width: max-content;
  }
  .blog-single-content-main-body h2{
    font-size: 21px;
    margin-bottom: 30px;
    margin-top: 40px;
  }
  .blog-single-content-main-body h3{
    font-size: 18px;
    margin-bottom: 30px;
  }
  .blog-single-content-main-body p{
    margin-bottom: 20px;
  }
  .blog-single-content-main-body ul li,
  .blog-single-content-main-body ol li{
    margin-bottom: 6px;
  }
  .blog-single-content-main-body blockquote{
    padding: 16px 16px 16px 40px;
  }
  .blog-single-content-main-body blockquote::before{
    left: 16px;
    top:42px;
  }
  .post_prevnext{
    margin-bottom: 30px;
  }
  a.post_prevnext_item{
    background: var(--text-sub);
    color: #fff;
    padding: 4px 14px;
    border-radius: 999px;
  }
  .post_prevnext_item .post_prevnext_item_title{
    color: #fff;
  }
  .post_prevnext_item a .post_prevnext_label{
    display: none;
  }
  .post_prevnext_item a{
    display: inline-block;
    min-width: 30px;
    min-height: 30px;
    padding-left: 30px;
  }
  .post_prevnext_item a::after{
    width: 23px;
    height: 23px;
    top: 1px;
  }
  .post_prevnext_item.post_prevnext_item_icon_right a::before{
    right: 6px;
    top: calc(50% + 2px);
  }
  .post_prevnext_item.post_prevnext_item_icon_left a::before{
    left: 6px;
    top: calc(50% + 2px);
  }
  .post_prevnext_item.post_prevnext_item_icon_right a{
    padding-left: 0;
    padding-right: 30px;
  }
}