/* responsive.css — レスポンシブ */
/* ═══════════════════════════════════════════════════
   RESPONSIVE 1200px
   ═══════════════════════════════════════════════════ */
@media (max-width: 1200px) {
  .ly_header_inner { padding: 0 24px; gap: 16px; }
  .bl_navItem_trigger { font-size: 0.75rem; padding: 8px 10px; }
  .ly_hero { min-height: 78vh; }
  .ly_hero_left { padding: 60px 40px 60px 32px; }
}

/* ═══════════════════════════════════════════════════
   RESPONSIVE 1024px
   ═══════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .ly_header_inner { gap: 12px; }
  .bl_navItem_trigger { font-size: 0.6875rem; padding: 7px 8px; }
  .header-btn { display: none; }
  .ly_hero { min-height: 68vh; }
  .ly_hero_left { padding: 48px 32px 48px 24px; }
  .bl_hero_catch { font-size: clamp(28px, 3.5vw, 44px); }
  .bl_hero_sub { font-size: 0.8125rem; margin-bottom: 28px; }
}

/* ═══════════════════════════════════════════════════
   RESPONSIVE 900px
   ═══════════════════════════════════════════════════ */
@media (max-width: 900px) {
  body { padding-right: 0; padding-left: 0; }
  .ly_sideLeft, .ly_sideRail { display: none; }
  .ly_header_inner { padding: 0 20px; gap: 16px; height: 60px; }
  .header-sep { display: none; }
  .ly_header_inner nav { display: none; }
  .bl_logo img { height: 38px; }
  .header-btn { display: none; }
  .ly_header_x { display: none; }
  .bl_navToggle { display: flex; }
  .ly_mobileNav { top: 60px; }
  .ticker__label { padding: 0 12px; font-size: 0.6875rem; }

  /* hero */
  .ly_hero { display: flex; flex-direction: column; min-height: auto; }
  .ly_hero_left { display: contents; }
  .ly_hero_textTop { order: 1; padding: 48px 24px 24px; background: linear-gradient(135deg, var(--ivory) 0%, var(--cream) 100%); }
  .ly_hero_visual { order: 2; min-height: 50vw; position: relative; clip-path: none !important; animation: none !important; }
  .ly_hero_visual.is-revealed { clip-path: none; animation: none; }
  .bl_hero_slide--active .bl_hero_photo { animation: kenBurns 18s ease-in-out infinite !important; }
  .ly_hero_visual::before { display: none; }
  .ly_hero_geo { display: none; }
  .bl_hero_catchLine { animation-delay: calc(.1s + var(--line-i) * .15s); }
  .ly_hero_textBottom { order: 3; padding: 24px 24px 48px; background: var(--ivory); }
  .bl_hero_catch { font-size: clamp(28px, 7vw, 40px); }
  .bl_hero_sub { font-size: 0.8125rem; }
  .ly_hero_actions { flex-direction: column; gap: 10px; }
  .el_btnHeroPrimary, .el_btnHeroGhost { width: 100%; justify-content: center; }
  .bl_hero_trust { display: none; }

  /* steps */
  .ly_stepsBridge { padding: 0 20px; }
  .ly_stepsBridge_inner { grid-template-columns: 1fr; gap: 24px; padding: 32px 0 36px; }
  .ly_stepsBridge_list { grid-template-columns: 1fr; gap: 16px; }
  .bl_stepBridgeItem { border-left: none; padding: 0; }


  .ly_about { padding: 64px 0; }
  .ly_about_grid { grid-template-columns: 1fr; gap: 36px; padding: 0 20px; }
  .bl_about_stat { top: -10px; right: -8px; }

  .ly_service { padding: 64px 0; }
  .ly_service_inner { padding: 0 20px; }
  .ly_service_grid { grid-template-columns: 1fr 1fr; gap: 16px; max-width: 100%; }
  .bl_serviceCard { padding: 32px 24px; }
  .ly_service_header { flex-direction: column; align-items: flex-start; }

  .ly_attendSec { padding: 64px 0; }
  .ly_attendSec_inner { padding: 0 20px; }
  .ly_attendCards { grid-template-columns: 1fr; gap: 16px; }
  .bl_attendCard { padding: 28px 24px; }

  .ly_ctaSec { padding: 64px 0; }
  .ly_ctaSec_inner { grid-template-columns: 1fr; gap: 32px; padding: 0 20px; }
  .bl_ctaSec_catch { font-size: 1.375rem; }
  .ly_ctaSec_actions { width: 100%; }
  .el_btnCta { width: 100%; }

  .ly_newsSec { padding: 64px 0; }
  .ly_newsSec_inner { padding: 0 20px; }
  .bl_newsItem a { grid-template-columns: 90px 80px 1fr 20px; gap: 12px; }
  .ly_newsSec_header { flex-direction: column; align-items: flex-start; }

  .ly_voiceSec { padding: 64px 0; }
  .ly_voiceSec_inner { padding: 0 20px; }
  .ly_voiceGrid { grid-template-columns: 1fr; gap: 16px; }

  .ly_footer_top { grid-template-columns: 1fr; padding: 48px 20px 36px; gap: 28px; }
  .ly_footer_bottom { padding: 16px 20px; flex-direction: column; gap: 10px; text-align: center; }
  .footer-bottom-links { justify-content: center; }

  /* sub pages */
  .ly_pageHero { padding: 32px 0 0; }
  .ly_pageHero_inner { padding: 0 20px; }
  .ly_pageHero_img { height: 220px; }
  .ly_pageCatch { padding: 40px 0 48px; }
  .ly_pageCatch_inner { padding: 0 20px; }
  .ly_qSection { padding: 56px 0; }
  .ly_qSection_inner { padding: 0 20px; }
  .ly_featureBoxes { grid-template-columns: 1fr; }
  .ly_photoGrid { grid-template-columns: repeat(2, 1fr); }
  .ly_photoGrid--2 { grid-template-columns: 1fr; }
  .bl_voiceHCard { flex-direction: column; }
  .bl_voiceHCard_img { width: 100%; aspect-ratio: 1 / 1; }
  .bl_voiceHCard_img .el_imgPh { min-height: unset; }
  .bl_voiceHCard_body { padding: 24px 20px; }
  .bl_voiceArticle { padding: 0 20px; }
  .bl_voiceArticle_profile { grid-template-columns: 1fr; }
  .bl_voiceArticle_profileBody { padding: 20px; }
  .bl_voiceArticle_qa { padding: 20px; }

  /* work.html */
  .ly_workSection { padding: 56px 0; }
  .ly_workSection_inner { padding: 0 20px; }
  .ly_pcGrid { grid-template-columns: 1fr; }
  .bl_pcRow { grid-template-columns: 1fr; gap: 24px; margin-bottom: 40px; }
  .bl_pcRow--reverse { direction: ltr; }
  .bl_pcRow_img img { height: 220px; }
  .ly_pcSubGrid { grid-template-columns: 1fr; }
  .ly_workGrid { grid-template-columns: 1fr; }

  /* houjin.html */
  .ly_houjinSec { padding: 56px 0; }
  .ly_houjinSec_inner { padding: 0 20px; }
  .bl_houjinAbout { grid-template-columns: 1fr; gap: 32px; }

  .ly_accessGrid { grid-template-columns: 1fr; gap: 28px; }
  .bl_accessMap .el_imgPh { height: 260px; }

  /* news pages */
  .ly_newsListSec_inner { padding: 0 20px; }
  .bl_newsFilter { flex-direction: column; align-items: flex-start; gap: 12px; }
  .ly_newsGrid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .bl_newsArticle { padding: 0 20px; }
  .bl_newsPager { padding: 28px 20px 0; margin-top: 48px; }

  /* voice/staff/portfolio/contact/schedule/privacy */
  .ly_voiceListSec_inner { padding: 0 20px; }
  .staff-sec__inner { padding: 0 20px; }
  .staff-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .ly_portfolioSec_inner { padding: 0 20px; }
  .bl_portfolioFilter { flex-direction: column; }
  .bl_portfolioFilter_tab { border-right: none; border-bottom: 1px solid var(--border); }
  .bl_portfolioFilter_tab:last-child { border-bottom: none; }
  .ly_portfolioGrid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .ly_contactSec_inner { padding: 0 20px; }
  .bl_contactTelBlock { padding: 36px 24px; }
  .bl_contactTelBlock_num { font-size: 2.25rem; }
  .bl_contactMap .el_imgPh { height: 300px; }
  .bl_contactInfo { padding: 20px; }
  .ly_scheduleSec_inner { padding: 0 20px; }
  .schedule-timeline { padding-left: 72px; }
  .schedule-item__time { left: -72px; }
  .schedule-item::before { left: -52px; }
  .bl_schTab { padding: 14px 10px; }
  .bl_schTab_name { font-size: 0.8125rem; }
  .bl_schItem_time { font-size: 1.125rem; width: 76px; }
  .bl_schTimeline::before { left: 94px; }
  .ly_policySec_inner { padding: 0 20px; }

  /* ekoukai add */
  .home .bl_about_stat {
    width: fit-content;
  }
}

/* ═══════════════════════════════════════════════════
   RESPONSIVE 767px
   ═══════════════════════════════════════════════════ */
@media (max-width: 767px) {
  .ly_service_grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════
   RESPONSIVE 520px
   ═══════════════════════════════════════════════════ */
@media (max-width: 520px) {
  .ly_hero_textTop { padding: 36px 16px 20px; }
  .ly_hero_textBottom { padding: 20px 16px 40px; }
  .ly_hero_visual { min-height: 220px; }
  .bl_hero_catch { font-size: clamp(26px, 8vw, 34px); line-height: 1.45; }
  .ly_stepsBridge { padding: 0 16px; }
  .ly_stepsBridge_inner { padding: 24px 0 28px; }
  .ly_about_grid { padding: 0 16px; }
  .bl_about_copy { font-size: 1.25rem; }
  .ly_service_inner { padding: 0 16px; }
  .bl_serviceCard { padding: 24px 18px; }
  .ly_ctaSec_inner { padding: 0 16px; }
  .bl_ctaSec_catch { font-size: 1.188rem; }
  .ly_newsSec_inner { padding: 0 16px; }
  .bl_newsItem a { grid-template-columns: 1fr auto; grid-template-rows: auto auto; }
  .bl_newsItem_date { grid-row: 1; grid-column: 1; font-size: 0.6875rem; }
  .el_newsTagPill { grid-row: 1; grid-column: 2; }
  .bl_newsItem_titleText { grid-row: 2; grid-column: 1 / 3; }
  .bl_newsItem_arrow { display: none; }
  .ly_voiceSec_inner { padding: 0 16px; }
  .ly_footer_top { padding: 32px 16px 24px; }
  .ly_footer_bottom { padding: 12px 16px; }
  .bl_pageHero_title { font-size: clamp(22px, 7vw, 32px); }
  .ly_pageHero_img { height: 180px; }
  .ly_photoGrid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .ly_photoGrid_item .el_imgPh { height: 140px; }
  .ly_qSection_inner { padding: 0 16px; }
  .ly_houjinSec_inner { padding: 0 16px; }
  .ly_footer_top { padding: 32px 16px 24px; }
  .ly_footer_bottom { padding: 12px 16px; }

  /* news pages */
  .ly_newsListSec_inner { padding: 0 16px; }
  .ly_newsGrid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .bl_newsCard_img { height: 130px; }
  .bl_newsArticle { padding: 0 16px; }
  .bl_newsPager { padding: 24px 16px 0; flex-wrap: wrap; }
  .bl_newsPager_link { font-size: 0.75rem; padding: 10px 16px; }

  /* voice/staff/portfolio/contact/schedule/privacy */
  .ly_voiceListSec_inner { padding: 0 16px; }
  .staff-sec__inner { padding: 0 16px; }
  .staff-grid { grid-template-columns: 1fr; }
  .ly_portfolioSec_inner { padding: 0 16px; }
  .ly_portfolioGrid { grid-template-columns: 1fr; }
  .ly_contactSec_inner { padding: 0 16px; }
  .bl_contactTelBlock { padding: 28px 16px; }
  .bl_contactTelBlock_num { font-size: 1.75rem; }
  .bl_contactInfo { padding: 16px; }
  .ly_scheduleSec_inner { padding: 0 16px; }
  .schedule-timeline { padding-left: 64px; }
  .schedule-item__time { left: -64px; font-size: 0.6875rem; width: 42px; }
  .schedule-item::before { left: -46px; }
  .schedule-timeline::before { left: 28px; }
  .schedule-block__detail { margin-left: 0; width: 100%; }
  .bl_schTabs { flex-direction: column; border-radius: var(--radius-sm); }
  .bl_schTab { border-right: none; border-bottom: 1.5px solid var(--orange); padding: 14px 16px; }
  .bl_schTab:last-child { border-bottom: none; }
  .bl_schProfile_detail { margin-left: 0; width: 100%; }
  .bl_schItem_time { font-size: 1rem; width: 64px; }
  .bl_schItem_conn { width: 28px; }
  .bl_schTimeline::before { left: 78px; }
  .bl_schItem_icon { width: 32px; height: 32px; }
  .bl_schItem_icon svg { width: 15px; height: 15px; }
  .ly_policySec_inner { padding: 0 16px; }

  /* ekoukai add */
  .el_imgPh_inner img {
    height: 180px;
    object-fit: cover;
  }
  .el_imgPh_inner_zitaku {
    object-position: left center;
  }
  .bl_schPanel .el_imgPh {
    height: auto;
  }
  .bl_schPanel .el_imgPh .el_imgPh_inner img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
    object-position: center;
  }
}
