@charset "utf-8";

/* ==================================================
   responsive.css — 全ページ共通レスポンシブ

   読み込み順: reset → style → style.css(テーマ) → responsive
   デスクトップ基準: 1440px

   ブレイクポイント:
     1200px  大型タブレット / 小型ノートPC
     1024px  タブレット横
      768px  タブレット縦
      640px  大型スマートフォン
      480px  スマートフォン
================================================== */

@media screen and (max-width: 1300px) {
    .business-hero__image {
        width: 90%;
        height: auto;
    }
}

/* ============================================================
   ≤ 1200px — 大型タブレット / 小型ノートPC
============================================================ */
@media screen and (max-width: 1200px) {
  /* --- Layout --- */
  .l-container {
    padding: 0 24px;
  }

  /* --- KV --- */
  .top-kv {
    height: 700px;
  }

  .kv-copy {
    max-width: 540px;
    margin-right: 24px;
  }

  .kv-copy__title {
    font-size: 48px;
  }

  .kv-copy__eyecatch {
    font-size: 20px;
  }

  /* --- KV Catch 英字 --- */
  .kv-catch__text {
    font-size: 100px;
    line-height: 1.1;
    margin-left: 15%;
  }

  /* --- 大見出し英字（128px → 80px） --- */
  .top-news__en,
  .top-about__en,
  .top-business__en,
  .top-works__en,
  .top-recruit__en,
  .top-csr__en,
  .top-partner__en {
    font-size: 80px;
    line-height: 72px;
  }

  .section-title__en,
  .section-title__white__en {
    font-size: 80px;
    line-height: 72px;
  }

  /* --- About / Business / Recruit / CSR 高さ --- */
  .top-about,
  .top-business,
  .top-recruit,
  .top-csr {
    height: 480px;
  }

  .top-about__inner,
  .top-business__inner {
    padding: 80px 40px 50px;
  }

  .top-recruit__inner,
  .top-csr__inner {
    width: auto;
    max-width: 606px;
    padding: 80px 40px 50px;
  }

  /* --- Partner（横並びの余白調整） --- */
  .top-partner__inner {
    gap: 40px;
  }

  .top-partner__content {
    width: auto;
    flex: 1;
    padding: 80px 0 50px 40px;
  }

  .top-partner__image img {
    width: 100%;
    max-width: 600px;
    left: 0;
  }

  /* --- Business page カード --- */
  .business-hero__bg {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 8;
  }

  .business-hero__image {
    width: 90%;
    height: auto;
  }

  .business-card--text,
  .business-card--image {
    width: 50%;
  }

  .business-card__content {
    width: auto;
    padding: 0 24px;
  }

  .business-card__line {
    width: 100%;
  }

  /* --- CSR page カード --- */
  .csr-card--text,
  .csr-card--image {
    width: 50%;
  }

  .csr-card__content {
    width: auto;
    padding: 0 24px;
  }

  .csr-card__line {
    width: 100%;
  }

  /* --- Efforts / Partner download カード --- */
  .csr-efforts__grid {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 40px;
  }

  .effort-card {
    width: 100%;
  }

  .effort-card__line {
    width: 100%;
  }

  .partner-download__grid {
    grid-template-columns: repeat(2, 1fr);
    column-gap: 40px;
  }

  .partner-card {
    width: 100%;
  }

  .partner-card__line,
  .partner-card__desc {
    width: 100%;
    box-sizing: border-box;
    padding-left: 24px;
    padding-right: 24px;
  }

  /* --- Single / Works detail --- */
  .single-content {
    width: 100%;
    max-width: 1000px;
  }

  #works-page {
    width: 100%;
    max-width: 1000px;
    padding: 0 20px;
    box-sizing: border-box;
  }

  .works-footer-cat-inner {
    width: 100%;
    max-width: 1000px;
    padding: 0 20px;
    box-sizing: border-box;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
  }
	
  .works-archive-kv {
    margin-top: unset;
  }
}

/* ============================================================
   ≤ 1024px — タブレット横
============================================================ */
@media screen and (max-width: 1024px) {
  /* --- 大見出し余白 --- */
  .top-business__jp,
  .top-works__jp,
  .top-recruit__jp,
  .top-csr__jp,
  .top-partner__jp,
  .section-title__jp,
  .section-title__white__jp {
    margin-bottom: 16px;
  }

  /* --- header セクション --- */
  .site-header {
    padding: 0 16px;
  }
	
  /* --- News セクション --- */
  .top-news__main {
    flex-direction: column;
  }

  .top-news__heading {
    margin: 0 auto;
    width: auto;
    max-width: 468px;
    padding: 80px 40px 0;
    text-align: center;
  }

  .top-news__list {
    width: auto;
    padding-top: 24px;
  }

  .top-news__jp {
    margin: 0 auto 16px;
    text-align: center;
  }

  .news-item {
    grid-template-columns: 80px 30px 80px 1fr;
    column-gap: 12px;
  }

  /* --- About / Business / Recruit / CSR / Works（高さ自動） --- */
  .top-about,
  .top-business,
  .top-recruit,
  .top-csr {
    height: auto;
    min-height: 400px;
    margin-left: 20px;
    margin-right: 20px;
  }

  .top-about__inner,
  .top-business__inner {
    padding: 60px 32px 50px;
  }

  .top-recruit__inner,
  .top-csr__inner {
    padding: 60px 32px 50px;
  }

  /* --- Works背景 --- */
  .top-works::before {
    height: 1000px;
  }

  /* --- Partner（縦積み） --- */
  .top-partner__inner {
    flex-direction: column;
    gap: 0;
  }

  .top-partner__content {
    padding: 60px 20px 40px;
    width: 100%;
  }

  .top-partner__image {
    width: 100%;
  }

  .top-partner__image img {
    width: 100%;
    max-width: 100%;
    left: 0;
  }

  .top-partner__en {
    font-size: 64px;
    line-height: 60px;
  }

  /* --- Business page カード（縦積み） --- */
  .business-row,
  .business-row--reverse {
    flex-direction: column;
  }

  .business-card--text,
  .business-card--image {
    width: 100%;
  }

  .business-card {
    height: auto;
  }

  .business-card--text {
    border-radius: 6px 6px 0 0;
    padding: 40px 20px;
  }

  .business-row--reverse .business-card--text {
    border-radius: 6px 6px 0 0;
  }

  .business-card--image {
    border-radius: 0 0 6px 6px;
  }

  .business-card--image img {
    height: 300px;
  }

  /* --- CSR page カード（縦積み） --- */
  .csr-row,
  .csr-row--reverse {
    flex-direction: column;
  }

  .csr-card--text,
  .csr-card--image {
    width: 100%;
  }

  .csr-card {
    height: auto;
  }

  .csr-card--text {
    border-radius: 6px 6px 0 0;
    padding: 40px 20px;
  }

  .csr-row--reverse .csr-card--text {
    border-radius: 6px 6px 0 0;
  }

  .csr-card--image {
    border-radius: 0 0 6px 6px;
  }

  .csr-card--image img {
    height: 300px;
  }

  /* --- About page: 代表挨拶（縦積み） --- */
  .message-content {
    flex-direction: column;
    align-items: center;
  }

  .message-content__body {
    max-width: 100%;
  }

  .message-content__lead {
    font-size: 36px;
    line-height: 54px;
  }

  /* --- 会社概要テーブル（縦積み） --- */
  .company-profile__row {
    flex-direction: column;
  }

  .company-profile__th {
    width: 100%;
    padding: 16px 0 8px;
    border-bottom: none;
  }

  .company-profile__td {
    padding: 0 0 16px 0;
	word-break: keep-all;
  }

  .company-profile__row:first-child .company-profile__td {
    border-top: none;
  }

  /* --- 事業所（縦積み） --- */
  .office-item {
    flex-direction: column;
	background-color: rgba(255, 255, 255, 0.7);
  }

  .office-text {
    max-width: 100%;
  }

  .office-underline {
    width: 100%;
  }

  .office-map {
    max-width: 100%;
    border-radius: 0 0 6px 6px;
  }

  .office-map iframe {
    height: 300px;
  }

  /* --- 沿革 --- */
  .history__item {
    grid-template-columns: 160px 40px 1fr;
  }

  .history__ad {
    font-size: 36px;
    margin-right: 16px;
  }

  /* --- SDGs タイトル --- */
  .csr-sdgs__title {
    font-size: 36px;
    line-height: 52px;
  }

  /* --- Works archive KV --- */
  .works-archive-kv {
    margin-top: 0;
  }

  /* --- Works archive grid --- */
  .works-archive-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* --- Footer sitemap（縦積み） --- */
  .footer-sitemap__inner {
    flex-direction: column;
    gap: 40px;
  }

  .footer-sitemap__links {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px;
    flex: auto;
  }

  .footer-sitemap__col {
    min-width: 45%;
  }

  .footer-sitemap__logo {
    flex: auto;
  }
	
  .news-more {
    justify-content: center;
  }
}

@media screen and (max-width: 1000px) {
    .page-kv {
        height: 300px; /* ここで好きな高さに指定 */
        overflow: hidden;
    }

    .page-kv img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .page-kv__inner {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 100%;
        text-align: center;
    }
	body:not(.home) {
        padding-top: 22px;
    }
}

/* ============================================================
   ≤ 768px — タブレット縦
============================================================ */
@media screen and (max-width: 768px) {
  /* --- KV --- */
  .top-kv {
    height: 560px;
  }
	
	body:not(.home) {
        padding-top: 8px;
    }
	
  .kv-copy {
    max-width: none;
    margin: 0 20px;
    text-align: left;
    align-items: flex-start;
  }

  .kv-copy__title {
    font-size: 36px;
    line-height: 1.35;
  }

  .kv-copy__eyecatch {
    font-size: 16px;
    margin-bottom: 16px;
  }

  .kv-copy__company {
    font-size: 16px;
  }

  /* --- KV Catch --- */
  .kv-catch__text {
    font-size: 64px;
    line-height: 1.1;
    margin-left: 15%;
  }

  /* --- 大見出し英字 --- */
  .top-news__en,
  .top-about__en,
  .top-business__en,
  .top-works__en,
  .top-recruit__en,
  .top-csr__en,
  .top-partner__en {
    font-size: 64px;
    line-height: 54px;
  }

  .section-title__en,
  .section-title__white__en {
    font-size: 64px;
    line-height: 56px;
  }

  /* --- 大見出し日本語 --- */
  .top-news__jp,
  .top-about__jp,
  .top-business__jp,
  .top-works__jp,
  .top-recruit__jp,
  .top-csr__jp,
  .top-partner__jp {
    font-size: 20px;
    letter-spacing: 6px;
  }

  .section-title__jp {
    font-size: 20px;
    letter-spacing: 6px;
  }

  /* --- 説明文（少し小さく） --- */
  .top-about__text,
  .top-business__text,
  .top-recruit__text,
  .top-csr__text {
    font-size: 14px;
    line-height: 22px;
  }

  /* --- Works grid（1列） --- */
  .works-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .works-text {
    left: 20px;
    bottom: 20px;
  }

  .works-jp {
    font-size: 14px;
    letter-spacing: 4px;
    margin-bottom: 12px;
  }

  .works-en {
    font-size: 32px;
  }

  /* --- Works KV（下層ページ） --- */
  .works-kv {
    height: 280px;
  }

  .works-kv__copy {
    margin-right: 20px;
  }

  .works-kv__title {
    font-size: 28px;
  }

  /* --- Works archive KV --- */
  .works-archive-kv {
    height: 280px;
  }

  .works-archive-kv__title {
	  font-size: 40px;
  }

  /* --- Page KV（下層ページ共通） --- */
  .page-kv__jp {
  }

  .page-kv__en {
    margin: 0 auto;
  }

  .page-kv__inner {
    left: 50%;
    transform: translate(-50%, -50%);
  }

  /* --- Page heading --- */
  .page-heading {
    font-size: 32px;
    line-height: 48px;
  }

  /* --- Business hero --- */
  .business-hero__inner {
    padding: 0 20px;
  }

  .business-hero__bg {
    padding: 20px;
  }

  .business-hero__image {
    width: 100%;
    height: auto;
  }

  /* --- 沿革（タイムライン非表示） --- */
  .history__item {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .history__year {
    justify-content: flex-start;
  }

  .history__axis {
    display: none;
  }

  .history__ad {
    font-size: 32px;
    margin-right: 12px;
  }

  .history__era {
    font-size: 16px;
    top: 0;
  }

  .history__events {
    top: 0;
    padding-left: 16px;
    border-left: 4px solid #e6e6e6;
  }

  /* --- SDGs cards（1列） --- */
  .csr-sdgs__cards {
    grid-template-columns: 1fr;
  }

  .csr-sdgs__title {
    font-size: 28px;
    line-height: 42px;
  }

  .csr-sdgs__meta {
    font-size: 18px;
  }

  /* --- Effort / Partner download（1列） --- */
  .csr-efforts__grid {
    grid-template-columns: 1fr;
	margin-top: 16px;
  }

  .effort-card__media {
    width: 100%;
    max-width: 299px;
    height: auto;
    aspect-ratio: 299 / 414;
  }

  .partner-download__grid {
    grid-template-columns: 1fr;
  }

  /* --- 事業所背景 --- */
  .office-section {
    background-size: cover;
    padding: 60px 0px;
	background-position: 0;
  }

  /* --- Single post --- */
  .single-content {
    margin: 40px auto 80px;
  }

  .single-title {
    font-size: 24px !important;
    line-height: 40px !important;
  }

  /* --- Works detail ギャラリー --- */
  .works-gallery {
    flex-wrap: wrap;
  }

  .works-gallery-inner {
    width: 48%;
  }

  /* --- Footer sitemap --- */
  .footer-sitemap {
    padding: 60px 40px 0;
  }

  .footer-sitemap__links {
    flex-direction: column;
    gap: 56px;
  }

  .footer-sitemap__col {
    min-width: 100%;
  }

  /* --- Contact stepper --- */
  .stepper-wrap,
  .stepper-confirm {
    max-width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
  }

  /* --- 代表挨拶 --- */
  .message-content__lead {
    font-size: 28px;
    line-height: 44px;
  }

  .message-section {
    padding: 40px 0;
  }

  .section-title {
    margin-bottom: 0px;
  }
	
  .message-content {
    gap: 16px;
  }
	
  /* --- business --- */
  .business-card__content {
        padding: 0 0px;
  }

  .business-card--text {
        padding: 40px 0px;
  }

  .business-hero {
    padding-top: 56px;
  }
	
  .csr-card__content {
        padding: 0 0px;
  }

  .csr-card--text {
        padding: 40px 0px;
  }

  /* --- Sitemap page --- */
  .sitemap-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }
	
  .sitemap-wrap {
    width: 100%;
	max-width: none;
  }

  .sitemap-main {
    width: 100%;
    max-width: none;
	font-size: 18px;
  }

  /* --- Privacy --- */
  .privacy-section__inner {
    padding: 0 16px;
  }

  .partner-download {
    padding-top: 56px;
  }
	
  .csr-sdgs__inner {
    padding: 40px 20px;
  }
}

/* ============================================================
   ≤ 640px — 大型スマートフォン
============================================================ */
@media screen and (max-width: 640px) {
  /* --- Layout --- */
  .l-container {
    padding: 0 16px;
  }

  /* --- KV --- */
  .top-kv {
    height: 480px;
  }

  .kv-copy__title {
    font-size: 28px;
    margin-bottom: 24px;
  }

  .kv-copy__eyecatch {
    font-size: 14px;
  }

  /* --- KV Catch --- */
  .kv-catch__text {
    font-size: 54px;
    line-height: 1.1;
    margin-left: 15%;
  }

  .kv-catch {
    margin-top: 12px;
  }

  /* --- 大見出し英字 --- */
  .top-news__en,
  .top-about__en,
  .top-business__en,
  .top-works__en,
  .top-recruit__en,
  .top-csr__en,
  .top-partner__en {
    font-size: 64px;
    line-height: 56px;
  }

  .section-title__en,
  .section-title__white__en {
    font-size: 64px;
    line-height: 56px;
  }

  /* --- News --- */
  .top-news__heading {
    padding: 48px 16px 0;
  }

  .news-item {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    align-items: center;
  }

  .news-date {
    font-size: 14px;
  }

  .news-tag {
    font-size: 12px;
    padding: 6px 10px;
  }

  .news-title {
    flex-basis: 100%;
    padding-left: 0;
  }

  /* --- About / Business / Recruit / CSR --- */
  .top-about,
  .top-business,
  .top-recruit,
  .top-csr {
    margin-left: 0;
    margin-right: 0;
    border-radius: 0;
    min-height: 360px;
  }

  .top-about__inner,
  .top-business__inner {
    padding: 48px 20px 40px;
  }

  .top-recruit__inner,
  .top-csr__inner {
    padding: 48px 20px 40px;
    width: auto;
  }

  /* --- About / Business の margin --- */
  .top-about {
    margin-top: 80px;
  }

  /* --- Works inner --- */
  .top-works__inner {
    top: 48px;
    padding-bottom: 60px;
  }

  .top-works__en {
    margin-bottom: 24px;
  }

  /* --- Recruit margin --- */
  .top-recruit {
    margin-top: 80px;
  }

  /* --- Footer contact --- */
  .footer-contact__en {
    font-size: 36px;
  }

  .contact-btn {
    width: auto;
    padding: 0 24px;
    font-size: 14px;
  }

  /* --- Works archive --- */
  .works-archive-filter__list {
    flex-direction: column;
    align-items: center;
  }

  .works-archive__inner {
    padding: 0 20px;
  }

  .works-archive-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  /* --- Business card --- */
  .business-card--image img {
    height: 220px;
  }

  .business-card__content {
    gap: 20px;
  }

  .business-card__en {
    font-size: 36px;
	line-height: 1em;
  }

  .business-card__jp {
    letter-spacing: 4px;
  }

  /* --- CSR card --- */
  .csr-card--image img {
    height: 220px;
  }

  .csr-card__content {
    gap: 20px;
  }

  .csr-card__en {
    font-size: 36px;
  }

  .csr-card__jp {
    letter-spacing: 4px;
  }

  /* --- 会社概要 --- */
  .company-profile {
    padding: 60px 16px;
    margin-bottom: 60px;
  }

  /* --- Works detail --- */
  .works-gallery-inner {
    width: 100%;
  }

  .works-gallery {
    flex-wrap: wrap;
    gap: 16px;
  }

  #works-footer-cat {
    margin: 30px 0 60px;
    padding: 30px 16px;
  }

  /* --- Privacy --- */
  .privacy-heading {
    font-size: 20px !important;
    margin: 60px 0 32px !important;
  }

  /* --- SDGs --- */
  .sdgs-card__line {
    width: calc(100% - 40px);
  }

  .sdgs-card__bottom {
    width: calc(100% - 40px);
  }

  /* --- Efforts title --- */
  .csr-efforts__title {
    font-size: 32px;
    line-height: 48px;
  }

  /* --- Partner download title --- */
  .partner-download__title {
    font-size: 32px;
    line-height: 48px;
  }
	
  /* --- Page anchor --- */
  .page-anchor__item,
  .page-anchor__item.is-active {
    font-size: 8px;
  }
	
  .page-anchor__inner {
    padding: 0px;
  }



}

/* ============================================================
   ≤ 480px — スマートフォン
============================================================ */
@media screen and (max-width: 480px) {
  /* --- KV --- */
  .top-kv {
    height: 420px;
  }

  .kv-copy__title {
    font-size: 24px;
    margin-bottom: 20px;
  }

  .kv-copy__eyecatch {
    font-size: 12px;
    margin-bottom: 12px;
  }

  .kv-copy__company {
    font-size: 14px;
  }

  /* --- KV Catch --- */
  .kv-catch__text {
    font-size: 40px;
    line-height: 1.1;
    margin-left: 15%;
  }

  /* --- 大見出し英字（最終） --- */
  .top-news__en,
  .top-about__en,
  .top-business__en,
  .top-works__en,
  .top-recruit__en,
  .top-csr__en,
  .top-partner__en {
    font-size: 64px;
    line-height: 56px;
  }

  .section-title__en,
  .section-title__white__en {
    font-size: 64px;
    line-height: 56px;
  }

  /* --- 大見出し日本語 --- */
  .top-news__jp,
  .top-about__jp,
  .top-business__jp,
  .top-works__jp,
  .top-recruit__jp,
  .top-csr__jp,
  .top-partner__jp {
    font-size: 16px;
    letter-spacing: 4px;
  }

  .section-title__jp {
    font-size: 16px;
    letter-spacing: 4px;
  }

  /* --- ボタン --- */
  .about-btn {
    font-size: 14px;
    padding: 8px 32px;
    height: 40px;
  }

  /* --- News heading --- */
  .top-news__heading {
    padding: 40px 12px 0;
  }

  .top-news__en {
    line-height: 32px;
  }

  /* --- Footer sitemap --- */
  .footer-sitemap {
    padding: 48px 20px 0;
  }

  .footer-sitemap__logo img {
    width: 100%;
    height: auto;
  }

  .footer-company {
    white-space: normal;
    font-size: 13px;
  }

  .footer-copy {
    font-size: 11px;
  }

  /* --- Contact form --- */
  .contact-form-wrapper {
    padding: 0 16px;
  }

  .confirm-wrapper {
    padding: 20px 16px 1px;
  }

  /* --- Thanks --- */
  .thanks-title {
    font-size: 22px;
    line-height: 30px;
  }

  /* --- Page heading --- */
  .page-heading {
    font-size: 24px;
    line-height: 38px;
  }

  .page-lead {
    font-size: 14px;
    margin-bottom: 32px;
  }

  /* --- Business / CSR セクション --- */
  .business-section,
  .csr-section {
    padding-top: 60px;
  }

  .business-grid,
  .csr-grid {
    margin-top: 40px;
  }

  /* --- 代表挨拶テキスト --- */
  .message-content__lead {
    font-size: 24px;
    line-height: 38px;
  }

  .message-content__name span {
    font-size: 22px;
  }

  /* --- 事業所 --- */
  .office-name {
    font-size: 18px;
  }

  /* --- SDGs card --- */
  .sdgs-card {
    min-height: 320px;
  }

  .sdgs-card--tall {
    min-height: 360px;
  }

  .sdgs-card__title {
    font-size: 20px;
    line-height: 28px;
    min-height: 56px;
  }

  /* --- Works detail タイトル --- */
  .page-kv__jp.works_title {
    font-size: 22px;
  }

  /* --- Single post --- */
  .single-content {
    margin: 30px auto 60px;
  }

  .single-title {
    font-size: 20px !important;
    line-height: 32px !important;
    letter-spacing: 1px !important;
  }

  /* --- Works archive title --- */
  .works-archive-kv__title {
	  font-size: 28px;
  }

  /* --- Privacy KV --- */
  .page-kv--privacy {
    height: 280px;
  }

  .page-kv--privacy .page-kv__title {
    font-size: 36px;
  }

  /* --- News year filter --- */
  .news-year-filter__inner {
    gap: 8px;
    padding: 12px 16px;
  }

  .news-year-filter__item {
    padding: 6px 12px;
    font-size: 13px;
  }
}
