@media (max-width:1120px){
  .inner{width:calc(100% - 28px)}
  .menu{gap:16px}
  .menu > li > a{font-size:13px}
  .slider{inset:86px 0 0 52%}
  .reason-grid{grid-template-columns:repeat(2,1fr)}
  .case-cards{grid-template-columns:repeat(2,1fr)}
  .flow-list{grid-template-columns:repeat(3,1fr)}
  .price-list{grid-template-columns:1fr}
  .footer-nav{grid-template-columns:repeat(2,1fr)}

  /* 料金表ページ */
  .page-hero-inner{grid-template-columns:1fr;gap:28px}
  .price-summary-grid{grid-template-columns:1fr}
}

@media (max-width:820px){
  .container,.inner,.mv-copy{width:min(100% - 28px,1160px)}
  .header{height:74px;background:#fff}
  .header-inner{height:74px}
  .logo img{height:40px}
  .hamburger{display:block;position:relative;z-index:1100}

  .menu{
    position:fixed;
    top:74px;
    left:0;
    right:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:12px 20px 20px;
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:0 16px 32px rgba(11,31,58,.12);
  }

  .menu.is-open{display:flex}
  .menu > li > a{min-height:48px;justify-content:space-between;border-bottom:1px solid #edf2f7}
  .menu > li > a::after{display:none}
  .dropdown-toggle::before{order:0;margin-left:8px}

  .submenu{
    position:static;
    min-width:auto;
    padding:0 0 8px 12px;
    border:0;
    border-radius:0;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
    display:none;
    background:#fff;
  }

  .dropdown:hover .submenu,
  .dropdown:focus-within .submenu{transform:none}
  .dropdown.is-open .submenu{display:block}
  .submenu a{padding:10px 12px;font-size:13px;background:#f8fbff;border-radius:10px;margin-top:6px}

  .mv{min-height:auto;padding-top:74px;padding-bottom:230px}
  .mv::before{top:110px;font-size:22vw}
  .slider{inset:auto 0 0 0;height:260px;clip-path:none}
  .mv-copy{padding:64px 0 34px}
  .mv h1{font-size:44px}
  .mv-copy > p:not(.label){font-size:16px}
  .slider-btn{top:auto;bottom:96px;width:42px;height:42px}
  .prev{right:76px}
  .next{right:24px}

  .top-links{grid-template-columns:1fr;margin-top:-80px}
  .section{padding:66px 0}
  .section-heading.row{display:block}
  .section-heading.row .text-link{margin-top:16px}
  .reason-grid,.plan-cards,.cards,.case-cards,.flow-list,.price-box,.faq-wrap{grid-template-columns:1fr}
  .plan-card.recommend{transform:none}
  .price-box{padding:26px}

  .footer-inner{display:block;text-align:center}
  .footer-brand img{margin-inline:auto}
  .footer-nav{grid-template-columns:1fr;gap:10px;margin-top:24px}

  /* 料金表ページ */
  .page-hero{padding:118px 0 56px}
  .page-hero::before{top:108px;font-size:23vw}
  .page-hero h1{font-size:46px}
  .page-hero-copy{font-size:16px}
  .hero-note{padding:22px}
  .summary-card{padding:26px}
  .price-chips{grid-template-columns:1fr}
  .notice-box{grid-template-columns:1fr;padding:26px}
  .price-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

  /* FAQページ */
  .faq-main{padding-top:74px}
  .faq-main .page-hero{padding:56px 0 48px}
  .faq-main .page-hero::before{
    top:20px;
    right:12px;
    font-size:96px;
  }
  .faq-main .page-hero h1{
    font-size:42px;
    line-height:1.15;
  }
  .faq-main .page-hero .hero-copy{
    font-size:15px;
    line-height:1.8;
  }

  .hero-buttons,
  .cta-buttons{flex-direction:column}

  .button{
    width:100%;
    min-height:50px;
    padding:12px 18px;
    font-size:14px;
  }

  .faq-page-layout{
    grid-template-columns:1fr;
    gap:24px;
  }

  .faq-side{
    position:static;
    padding:22px;
    border-radius:22px;
  }

  .faq-side h2{font-size:23px}
  .faq-side .hero-copy{
    font-size:14px;
    line-height:1.85;
  }

  .faq-page-list{gap:12px}
  .faq-item{border-radius:18px}

  .faq-item summary{
    align-items:flex-start;
    gap:10px;
    padding:18px 50px 18px 16px;
  }

  .faq-item summary::after{
    right:18px;
    top:24px;
    transform:none;
  }

  .faq-no{
    min-width:42px;
    height:30px;
    font-size:12px;
    margin-top:2px;
  }

  .faq-question{
    font-size:15px;
    line-height:1.65;
  }

  .faq-answer{
    padding:0 16px 20px 16px;
    font-size:14px;
    line-height:1.85;
  }

  .cta{padding:64px 0}
  .cta h2{font-size:28px}
  .site-footer{padding:34px 0 18px}

  .footer-inner nav,
  .footer-nav{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
}

@media (max-width:520px){
  .footer-nav{grid-template-columns:1fr}
  .legend-list{justify-content:flex-start}
  .price-table{min-width:760px}
}

@media (max-width:480px){
  .container,
  .inner{width:calc(100% - 24px)}

  .logo img{height:34px}

  .faq-main .page-hero{padding:46px 0 42px}
  .faq-main .page-hero h1{font-size:34px}

  .label,
  .section-en{font-size:11px}

  .faq-side{padding:18px}
  .faq-side h2{font-size:20px}

  .faq-item summary{padding:16px 44px 16px 14px}

  .faq-no{
    min-width:38px;
    height:28px;
  }

  .faq-question{font-size:14px}
}

/* =========================
   会社概要ページ用レスポンシブCSS
========================= */
@media (max-width:900px){
  .company-intro-grid,
  .company-message-card{
    grid-template-columns:1fr;
    gap:36px;
  }

  .company-heading{
    display:block;
  }

  .company-heading p:last-child{
    margin-top:24px;
  }

  .company-link-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .company-hero{
    min-height:430px;
  }

  .company-hero-inner{
    width:min(100% - 32px,1180px);
    padding:110px 0 54px;
  }

  .company-intro,
  .company-outline{
    padding:75px 0;
  }

  .company-message{
    padding:70px 0;
  }

  .company-message-card{
    padding:38px 24px;
  }

  .message-number{
    font-size:58px;
  }

  .outline-row{
    grid-template-columns:1fr;
  }

  .outline-row dt{
    padding-bottom:10px;
  }

  .outline-row dd{
    padding-top:10px;
  }

  .company-links{
    padding-bottom:75px;
  }
}

@media (max-width:820px){
  .history-hero{min-height:500px}
  .history-hero-inner{width:min(100% - 28px,1180px);padding:130px 0 62px}
  .history-hero h1{font-size:64px}
  .history-section-heading{grid-template-columns:1fr;gap:18px}
  .history-section-heading .company-section-label{grid-column:auto;margin-bottom:0}
  .philosophy-grid{grid-template-columns:1fr}
  .timeline-era{grid-template-columns:1fr}
  .timeline-era-title{position:static;padding:34px 0 20px}
  .timeline-events{margin-left:6px}
  .history-next-inner{display:block}
  .history-next a{margin-top:30px;justify-content:flex-end}
}
@media (max-width:520px){
  .history-hero{min-height:440px}
  .history-hero h1{font-size:48px}
  .history-hero h1 span{font-size:15px}
  .philosophy-section,.timeline-section{padding:75px 0}
  .philosophy-card{min-height:auto;padding:30px 24px}
  .philosophy-card>span{margin-bottom:25px}
  .timeline-event{grid-template-columns:1fr;gap:6px;padding:20px 0 20px 28px}
  .timeline-event::before{top:29px}
  .timeline-era-title span{font-size:26px}
  .history-next{padding:65px 0}
}


/* 理念・沿革ページ 表示調整 完成版 */
@media (max-width:820px){
  .history-body .history-page-fixed{padding-top:74px}
  .history-body .history-page-fixed .history-hero{min-height:460px}
  .history-body .history-page-fixed .history-hero-inner{width:min(100% - 28px,1160px);padding:68px 0 58px}
  .history-body .history-page-fixed .history-hero h1{font-size:58px}
  .history-body .history-page-fixed .history-hero h1 span{font-size:16px}
  .history-body .history-page-fixed .philosophy-section{padding:72px 0 78px}
  .history-body .history-page-fixed .philosophy-grid{grid-template-columns:1fr}
  .history-body .history-page-fixed .philosophy-card{min-height:auto}
  .history-body .history-page-fixed .timeline-section{padding:78px 0 84px}
  .history-body .history-page-fixed .timeline-era{grid-template-columns:1fr}
  .history-body .history-page-fixed .timeline-era-title{padding:32px 0 18px}
  .history-body .history-page-fixed .timeline-events{margin-left:6px}
}

@media (max-width:520px){
  .history-body .history-page-fixed .history-hero{min-height:410px}
  .history-body .history-page-fixed .history-hero-inner{padding:56px 0 48px}
  .history-body .history-page-fixed .history-hero h1{font-size:46px}
  .history-body .history-page-fixed .history-hero h1 span{margin-top:18px;font-size:14px}
  .history-body .history-page-fixed .history-hero-inner>p:last-child{font-size:14px;line-height:1.9}
  .history-body .history-page-fixed .philosophy-card{padding:28px 22px}
  .history-body .history-page-fixed .timeline-event{grid-template-columns:1fr;gap:4px;padding:18px 12px 18px 28px}
  .history-body .history-page-fixed .timeline-event::before{top:26px}
  .history-body .history-page-fixed .timeline-era-title span{font-size:25px}
}


@media (max-width:820px){
  .company-anchor-nav{
    top:74px;
  }

  .company-anchor-list{
    width:100%;
  }

  .company-anchor-list a{
    padding:15px 6px;
    font-size:13px;
  }

  .company-anchor-list a::after{
    display:block;
    margin:2px 0 0;
    font-size:11px;
  }

  #philosophy,
  #profile,
  #history{
    scroll-margin-top:140px;
  }
}


/* =========================
   フルオーダープラン用 レスポンシブ追加CSS
   plan/full-order.html
========================= */
@media (max-width:820px){
  .process-item:not(:last-child){
    margin-bottom:42px;
  }

  .process-arrow{
    bottom:-38px;
  }

  .process-arrow::before{
    height:22px;
  }
}


/* =========================
   ブランドコラボ（MJWW）ページ用 レスポンシブ追加CSS
   plan/mjww.html
========================= */
@media (max-width:820px){
  .mjww-page .mjww-hero-image img{
    object-position:center center;
    transform:scale(1.03);
    transform-origin:center center;
  }
}

/* =========================================================
   トップページ専用レスポンシブCSS
   index.html
   ========================================================= */

@media(max-width:900px){
  .home-quick-grid,
  .home-plan-grid,
  .home-strength-grid,
  .home-case-grid,
  .home-intro-grid,
  .home-company-grid,
  .home-faq-grid{
    grid-template-columns:1fr;
  }

  .home-section-head{
    display:block;
  }

  .home-section-head > p{
    margin-top:20px;
  }

  .home-flow-list{
    grid-template-columns:repeat(2,1fr);
  }

  .home-flow-list li:not(:last-child)::after{
    display:none;
  }
}

@media(max-width:620px){
  .home-hero{
    min-height:660px;
    padding:125px 0 72px;
  }

  .home-hero h1{
    font-size:46px;
  }

  .home-hero h1 span{
    font-size:20px;
  }

  .home-hero-copy{
    font-size:15px;
  }

  .home-hero-buttons{
    flex-direction:column;
  }

  .home-hero-buttons .btn{
    width:100%;
  }

  .home-quick{
    margin-top:-35px;
  }

  .home-intro,
  .home-plan,
  .home-strength,
  .home-company,
  .home-flow,
  .home-faq{
    padding:76px 0;
  }

  .home-company-stats,
  .home-flow-list{
    grid-template-columns:1fr;
  }

  .home-case-card--image,
  .home-case-card__link{
    min-height:360px;
  }

  .home-case-card__content{
    padding:24px;
  }

}

/* =========================
   無料相談予約ページ用 レスポンシブ追加CSS
   reserve/index.html
========================= */
@media(max-width:900px){
  .reserve-intro-grid{
    grid-template-columns:1fr;
    gap:30px;
  }

  .reserve-intro-copy{
    padding-top:0;
  }

  .reserve-summary-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:820px){
  .reserve-page{
    padding-top:74px;
  }

  .reserve-container{
    width:min(100% - 28px,1160px);
  }

  .reserve-hero{
    min-height:570px;
  }

  .reserve-hero-inner{
    padding:76px 0 68px;
  }

  .reserve-hero h1{
    font-size:54px;
  }

  .reserve-hero-copy{
    font-size:15px;
  }

  .reserve-intro,
  .reserve-section{
    padding:74px 0;
  }
}

@media(max-width:560px){
  .reserve-container{
    width:calc(100% - 24px);
  }

  .reserve-hero{
    min-height:600px;
  }

  .reserve-hero::before{
    top:42px;
    font-size:20vw;
  }

  .reserve-hero h1{
    font-size:40px;
    line-height:1.28;
  }

  .reserve-hero-copy br{
    display:none;
  }

  .reserve-eyebrow,
  .reserve-section-en{
    font-size:11px;
  }

  .reserve-hero .reserve-main-button,
  .reserve-cta .reserve-main-button{
    width:100%;
    min-width:0;
  }

  .reserve-intro-heading h2,
  .reserve-section h2,
  .reserve-cta h2{
    font-size:30px;
  }

  .reserve-intro-copy p,
  .reserve-copy{
    font-size:15px;
  }

  .reserve-note-box{
    padding:28px 24px;
  }
}
