/* ===== RESPONSIVE: 下層ページ共通 ===== */

@media (max-width: 1024px) {
  .container, .header__inner, .utility__inner, .footer__inner, .cta-block__inner, .breadcrumb__inner { padding-left: 40px; padding-right: 40px; }
  .v-b { padding: 112px 0 96px; }
  .v-b h1 { font-size: clamp(60px, 10vw, 120px); }
  .v-b h1 .sub { font-size: clamp(18px, 2.4vw, 26px); margin-top: 20px; }
  .v-b .lead { margin-top: 32px; }
  .vision__grid { grid-template-columns: 1fr; border-left: none; }
  .vision__item { border-right: none; }
  .message__grid { grid-template-columns: 1fr; gap: 40px; }
  .message__visual { aspect-ratio: 16 / 10; max-width: 400px; }
  .history__line { left: 96px; }
  .history__item { grid-template-columns: 100px 20px 1fr; gap: 24px; }
  .access__grid { grid-template-columns: 1fr; gap: 32px; }
  .company-table th { width: 160px; padding: 18px 18px; }
  .company-table td { padding: 18px 20px; }
  .cta-block__inner { grid-template-columns: 1fr; gap: 32px; }
}

@media (max-width: 767px) {
  .container, .header__inner, .utility__inner, .footer__inner, .cta-block__inner, .breadcrumb__inner { padding-left: 20px; padding-right: 20px; }
  .v-b { padding: 80px 0 64px; }
  .v-b h1 { font-size: clamp(48px, 14vw, 80px); line-height: .95; }
  .v-b h1 .sub {
    font-size: 18px;
    margin-top: 16px;
    line-height: 1.5;
  }
  .v-b .lead {
    font-size: 13px;
    margin-top: 24px;
    line-height: 1.9;
  }
  .v-b .label { font-size: 10px; margin-bottom: 20px; }
  .vision__item { padding: 32px 24px; }
  .vision__title { font-size: 19px; }
  .message__body h3 { font-size: 22px; }
  .message__visual { max-width: 100%; aspect-ratio: 4 / 5; }
  .message__sign strong { font-size: 16px; }
  .history__line { left: 74px; }
  .history__item {
    grid-template-columns: 80px 18px 1fr;
    gap: 16px;
    padding: 16px 0;
  }
  .history__year { font-size: 18px; }
  .history__title { font-size: 15px; }
  .history__desc { font-size: 13px; }
  .company-table { display: block; }
  .company-table tbody, .company-table tr { display: block; }
  .company-table tr {
    border: 1px solid var(--line);
    margin-bottom: 12px;
    background: #fff;
  }
  .company-table tr:last-child { border-bottom: 1px solid var(--line); }
  .company-table th, .company-table td {
    display: block;
    width: auto;
    border: none;
    padding: 12px 16px;
  }
  .company-table th { background: var(--bg-alt); font-size: 11px; }
  .company-table td { border-top: 1px solid var(--line); }
  .access__map { aspect-ratio: 4 / 3; }
  .access__info dl { grid-template-columns: 80px 1fr; }
  .cta-block { padding: 56px 0; }
  .cta-block__title { font-size: 22px; }
}

/* ----- Business レスポンシブ ----- */
@media (max-width: 1024px) {
  .v-a { padding: 96px 0 80px; }
  .v-a h1 { font-size: clamp(34px, 4.8vw, 48px); }
  .biz-index { grid-template-columns: 1fr; border: 1px solid var(--line); }
  .biz-index__item { border-right: none; border-bottom: 1px solid var(--line); }
  .biz-index__item:last-child { border-bottom: none; }
  .biz-detail__head { grid-template-columns: 1fr; gap: 20px; }
  .biz-detail__head .btn { justify-self: flex-start; }
  .biz-detail__body { grid-template-columns: 1fr; gap: 40px; }
  .biz-detail__visual { max-width: 520px; aspect-ratio: 16 / 10; }
  .biz-detail--reverse .biz-detail__visual { order: -1; }
  .biz-detail__title { font-size: 28px; }
  .flow__steps { grid-template-columns: repeat(3, 1fr); }
  .flow__step { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .flow__step:nth-child(3n)::after { display: none; }
  .flow__step:nth-last-child(-n+2):nth-child(3n+1)::after { display: none; }
}
@media (max-width: 767px) {
  .v-a { padding: 72px 0 56px; }
  .v-a h1 { font-size: clamp(26px, 7.2vw, 36px); line-height: 1.3; }
  .v-a .en { font-size: 12px; margin-top: 10px; }
  .v-a .lead {
    font-size: 13px;
    margin-top: 20px;
    line-height: 1.9;
  }
  .v-a .label { font-size: 10px; margin-bottom: 18px; }
  .biz-index__item { padding: 28px 22px; }
  .biz-index__num { font-size: 34px; }
  .biz-index__title { font-size: 17px; }
  .biz-detail__num strong { font-size: 40px; }
  .biz-detail__title { font-size: 22px; }
  .biz-detail__lead {
    font-size: 14px;
    line-height: 1.9;
    margin-bottom: 24px;
  }
  .biz-detail__body { gap: 28px; }
  .biz-detail__visual { aspect-ratio: 4 / 3; }
  .biz-feature__body h4 { font-size: 14px; }
  .biz-feature__body p { font-size: 12px; }
  .flow__steps { grid-template-columns: 1fr; }
  .flow__step {
    border-right: none;
    border-bottom: 1px solid var(--line);
    padding: 24px 20px;
  }
  .flow__step:last-child { border-bottom: none; }
  .flow__step::after {
    top: auto;
    bottom: -9px;
    right: 50%;
    transform: translateX(50%) rotate(135deg);
  }
}

/* ----- License レスポンシブ ----- */
@media (max-width: 1024px) {
  .v-f { padding: 56px 0 88px; }
  .v-f .top-label { margin-bottom: 24px; padding-left: 40px; }
  .v-f .marquee span { font-size: clamp(60px, 12vw, 112px); gap: 48px; }
  .v-f .marquee span::after { margin-left: 48px; }
  .v-f .copy { padding: 56px 40px 0; }
  .v-f .copy h1 { font-size: clamp(26px, 4.2vw, 40px); }
  /* サインは絶対配置をやめて本文下に右寄せ */
  .v-f .copy .copy-sign { position: static; display: block; margin: 28px 0 0 auto; width: 180px; transform: rotate(-3deg); }
  .why__grid { grid-template-columns: repeat(2, 1fr); }
  .pdetail {
    grid-template-columns: 1fr;
    padding: 40px 32px;
    gap: 32px;
  }
  .pdetail__visual { margin: -40px -32px 0; aspect-ratio: 21 / 8; }
  .pdetail__left {
    border-right: none;
    border-bottom: 1px solid var(--line);
    padding-right: 0;
    padding-bottom: 32px;
  }
  .cases__grid { grid-template-columns: repeat(2, 1fr); }
  .flow__list { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .v-f { padding: 40px 0 64px; }
  .v-f .top-label {
    margin: 0 20px 20px;
    padding-left: 20px;
    font-size: 10px;
  }
  .v-f .marquee { gap: 36px; }
  .v-f .marquee span { font-size: clamp(44px, 16vw, 80px); gap: 36px; }
  .v-f .marquee span::after { margin-left: 36px; }
  .v-f .copy { padding: 40px 20px 0; }
  .v-f .copy h1 { font-size: clamp(22px, 6vw, 30px); line-height: 1.35; }
  .v-f .copy h1 .en { font-size: 11px; margin-top: 10px; }
  .v-f .copy .lead { font-size: 13px; line-height: 1.9; }
  .v-f .copy .sub { font-size: 10px; margin-bottom: 16px; }
  .why__grid { grid-template-columns: 1fr; border-left: none; }
  .why__item { padding: 24px 20px 28px; border-right: none; }
  .why__item + .why__item { border-top: none; }
  .pdetail { padding: 32px 20px; gap: 24px; }
  .pdetail__visual { margin: -32px -20px 0; aspect-ratio: 16 / 9; }
  .pdetail__title { font-size: 20px; }
  .pdetail__right { grid-template-columns: 1fr; gap: 24px; }
  .pdetail__meta {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 16px 20px;
  }
  .rate__table { display: block; border: none; }
  .rate__table thead { display: none; }
  .rate__table tbody, .rate__table tr { display: block; }
  .rate__table tr {
    border: 1px solid var(--line);
    margin-bottom: 12px;
    background: #fff;
  }
  .rate__table tbody th, .rate__table tbody td {
    display: block;
    width: auto;
    border: none;
    padding: 12px 16px;
  }
  .rate__table tbody th { background: var(--bg-alt); font-size: 13px; }
  .rate__table tbody td { border-top: 1px solid var(--line); }
  .rate__table tbody td::before {
    content: attr(data-label) "：";
    display: block;
    font-size: 10px;
    font-family: var(--font-en);
    letter-spacing: .15em;
    color: var(--red);
    font-weight: 600;
    margin-bottom: 4px;
  }
  .flow__list { grid-template-columns: 1fr; }
  .flow__num strong { font-size: 24px; }
  .cases__grid { grid-template-columns: 1fr; }
  .scope__table-wrap { overflow-x: auto; }
  .scope__table { min-width: 520px; font-size: 12px; }
  .scope__table th, .scope__table td { padding: 12px 10px; }
  .faq__item summary { font-size: 14px; padding: 20px 48px 20px 18px; }
  .faq__body { padding: 0 18px 22px 36px; font-size: 12px; }
  .bleed-band__overlay { background: linear-gradient(180deg, rgba(0,0,0,.24) 0%, rgba(0,0,0,.44) 50%, rgba(0,0,0,.62) 100%); }
}

/* ----- Recruit レスポンシブ ----- */
@media (max-width: 1280px) {
  .container, .header__inner, .utility__inner, .footer__inner, .breadcrumb__inner, .entry-cta__inner { padding-left: 40px; padding-right: 40px; }
  .v-d { padding: 112px 0 96px; }
  .v-d .container { grid-template-columns: 1fr; gap: 40px; }
  .v-d .badge { font-size: clamp(88px, 14vw, 140px); }
  .v-d .copy h1 { font-size: clamp(26px, 4vw, 36px); }
  .message__inner, .message__quote { padding-left: 40px; padding-right: 40px; }
  .message__quote {
    padding-top: 40px;
    padding-bottom: 40px;
    padding-left: 80px;
  }
  .values__grid { grid-template-columns: repeat(2, 1fr); }
  .working__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .container, .header__inner, .utility__inner, .footer__inner, .breadcrumb__inner, .entry-cta__inner, .message__inner { padding-left: 20px; padding-right: 20px; }
  .v-d { padding: 72px 0 56px; }
  .v-d .container { grid-template-columns: 1fr; gap: 28px; }
  .v-d .badge { font-size: clamp(68px, 22vw, 110px); }
  .v-d .copy h1 { font-size: clamp(22px, 5.6vw, 30px); line-height: 1.35; }
  .v-d .copy h1 .en { font-size: 11px; margin-top: 10px; }
  .v-d .copy .lead { font-size: 13px; line-height: 1.9; }
  .v-d .copy .sub { font-size: 10px; margin-bottom: 16px; }
  .message { padding: 56px 0; }
  .message__quote { padding: 32px 24px 32px 24px; border-left-width: 3px; }
  .message__quote::before {
    font-size: 64px;
    left: 16px;
    top: 12px;
  }
  .message__text { font-size: 14px; line-height: 2; }
  .phase { padding: 64px 0; }
  .phase__timeline { grid-template-columns: 1fr; gap: 20px; }
  .phase__timeline::before { display: none; }
  .phase__head .sec-title { font-size: 22px; }
  .values { padding: 64px 0; }
  .values__grid { grid-template-columns: 1fr; gap: 16px; }
  .positions { padding: 64px 0; }
  .positions__grid { grid-template-columns: 1fr; gap: 16px; }
  .position-card { padding: 28px 22px; }
  .flow { padding: 64px 0; }
  .flow__steps { grid-template-columns: 1fr; gap: 16px; }
  .flow-step:not(:last-child)::after { display: none; }
  .working { padding: 64px 0; }
  .working__grid { grid-template-columns: 1fr; gap: 16px; }
  .entry-cta { padding: 64px 0; }
  .entry-cta__title { font-size: 22px; }
  .entry-cta__text { font-size: 13px; }
  .entry-cta__buttons { flex-direction: column; }
  .entry-cta__buttons .btn { width: 100%; }
  .entry-cta::after { font-size: 96px; opacity: .6; }
}

/* ----- Contact Forms レスポンシブ ----- */
@media (max-width: 1280px) {
  .phero { padding: 72px 0 56px; }
  .phero__title { font-size: 30px; }
  .phero::after { font-size: 140px; right: -8px; }
  .contact-grid { gap: 40px; }
  .form { padding: 40px; }
}
@media (max-width: 768px) {
  .phero { padding: 48px 0 40px; }
  .phero__title { font-size: 22px; line-height: 1.5; }
  .phero__title .en { font-size: 11px; margin-top: 10px; }
  .phero__lead {
    font-size: 13px;
    margin-top: 18px;
    line-height: 1.9;
  }
  .phero__label { font-size: 10px; margin-bottom: 14px; }
  .phero::after {
    font-size: 90px;
    right: 12px;
    opacity: .8;
  }
  .phero::before { width: 3px; }
  .contact-body { padding: 40px 0 64px; }
  .contact-grid { grid-template-columns: 1fr; gap: 32px; }
  .contact-summary { position: static; }
  .form { padding: 24px 20px; }
  .form__row--2col { grid-template-columns: 1fr; gap: 16px; }
  .cta-block::after { font-size: 90px; }
}

/* ----- Thanks レスポンシブ ----- */
@media (max-width: 1280px) {
  .container, .header__inner, .utility__inner, .footer__inner, .breadcrumb__inner { padding-left: 40px; padding-right: 40px; }
  .thanks-hero { padding: 72px 0 56px; }
  .thanks-title { font-size: 28px; }
  .thanks-hero::after { font-size: 140px; right: -8px; }
}
@media (max-width: 768px) {
  .container, .header__inner, .utility__inner, .footer__inner, .breadcrumb__inner { padding-left: 20px; padding-right: 20px; }
  .thanks-hero { padding: 48px 0 40px; }
  .thanks-icon {
    width: 72px;
    height: 72px;
    margin-bottom: 20px;
  }
  .thanks-icon i { width: 36px; height: 36px; }
  .thanks-title { font-size: 22px; line-height: 1.6; }
  .thanks-title .en { font-size: 11px; margin-top: 10px; }
  .thanks-lead {
    font-size: 13px;
    margin-top: 18px;
    line-height: 1.9;
  }
  .thanks-label { font-size: 10px; margin-bottom: 14px; }
  .thanks-hero::after {
    font-size: 90px;
    right: 12px;
    opacity: .8;
  }
  .thanks-hero::before { width: 3px; }
  .thanks-body { padding: 40px 0 64px; }
  .thanks-steps {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-bottom: 40px;
  }
  .thanks-note { padding: 20px 22px; margin-bottom: 40px; }
  .thanks-next { grid-template-columns: 1fr; gap: 12px; }
  .thanks-actions { margin-top: 40px; }
  .thanks-actions .btn { width: 100%; }
}

/* ----- Privacy レスポンシブ ----- */
@media (max-width: 1280px) {
  .container, .header__inner, .utility__inner, .footer__inner, .breadcrumb__inner { padding-left: 40px; padding-right: 40px; }
  .phero { padding: 64px 0 48px; }
  .phero__title { font-size: 28px; }
  .phero::after { font-size: 140px; right: -8px; }
  .policy-grid { gap: 48px; }
}
@media (max-width: 768px) {
  .container, .header__inner, .utility__inner, .footer__inner, .breadcrumb__inner { padding-left: 20px; padding-right: 20px; }
  .phero { padding: 40px 0 32px; }
  .phero__title { font-size: 20px; line-height: 1.5; }
  .phero__title .en { font-size: 11px; margin-top: 8px; }
  .phero__lead {
    font-size: 13px;
    margin-top: 16px;
    line-height: 1.9;
  }
  .phero__meta { font-size: 11px; gap: 14px; }
  .phero::after {
    font-size: 80px;
    right: 12px;
    opacity: .6;
  }
  .policy-body { padding: 40px 0 64px; }
  .policy-grid { grid-template-columns: 1fr; gap: 32px; }
  .policy-toc { position: static; }
  .policy-toc__list { padding-left: 12px; }
  .policy-toc__list a {
    font-size: 12px;
    padding: 6px 0;
    padding-left: 12px;
    margin-left: -14px;
  }
  .policy-lead { padding: 18px 20px; margin-bottom: 32px; }
  .policy-section { padding: 24px 0; }
  .policy-section__title { font-size: 17px; }
  .policy-section p, .policy-section ul li { font-size: 13px; line-height: 1.9; }
  .policy-contact { padding: 20px 22px; }
  .policy-history { padding: 18px 22px; }
}

/* ----- News レスポンシブ ----- */
@media (max-width: 1024px) {
  .news-layout { grid-template-columns: 1fr; gap: 56px; }
  .news-side { position: static; }
  .news-article__pager { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .news-item {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 24px 0;
  }
  .news-item__thumb { aspect-ratio: 16 / 10; }
  .news-item__title { font-size: 16px; }
  .pagination .page-numbers { min-width: 36px; height: 36px; font-size: 12px; padding: 0 10px; }
  .phero--compact { padding: 40px 0 28px; }
  .news-article__title { font-size: 20px; line-height: 1.55; }
  .news-article__meta { gap: 10px; margin-bottom: 18px; }
  .news-article__body.prose { font-size: 15px; line-height: 2; }
  .news-article__body.prose h2 { font-size: 19px; margin: 36px 0 16px; }
  .news-article__body.prose h3 { font-size: 16px; margin: 28px 0 12px; }
  .news-article__body.prose blockquote { padding: 22px 22px 22px 42px; font-size: 14px; }
  .news-article__body.prose blockquote::before { font-size: 40px; left: 12px; top: 6px; }
  .news-article__pager { grid-template-columns: 1fr; }
  .pager__item { padding: 18px 20px; }
  .cat-filter { gap: 6px; padding-bottom: 20px; margin-bottom: 28px; }
  .cat-filter__item { padding: 8px 14px; font-size: 12px; }
}


/* ===== REVEAL ANIMATION: 下層ヒーロー ===== */
@media (prefers-reduced-motion: reduce) {
  .v-a .line > span,
  .v-a .en,
  .v-a .lead {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .v-b .mask { transform: scaleY(0) !important; transition: none !important; }
  .v-b .lead {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .v-c .label,
  .v-c h1,
  .v-c .meta > div,
  .v-c .lead {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .v-d .badge .ch,
  .v-d .badge .dot,
  .v-d .copy {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .v-e .kv,
  .v-e .copy {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .v-f .copy h1,
  .v-f .copy .lead {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
.js .v-a[data-reveal] { opacity: 1; transform: none; transition: none; }
.js .v-b[data-reveal] { opacity: 1; transform: none; transition: none; }
.js .v-c[data-reveal] { opacity: 1; transform: none; transition: none; }
.js .v-d[data-reveal] { opacity: 1; transform: none; transition: none; }
.js .v-e[data-reveal] { opacity: 1; transform: none; transition: none; }

/* === クライアント要望(2026-06-02): 黒背景(#1a1a1a)を避けブランド赤へ === */
/* 背景用途のみ赤化。文字色--inkは温存。調整は--client-bgを1行変更 */
:root{ --client-bg:#C30D23; }
.message__visual,.v-f,.bleed-band,.cta-block,.entry-cta,.company__visual,.cat-filter__item.is-current,.news-cat,.pagination .page-numbers.current,.pdetail__badge,.rate__table thead th,.scope__table thead th,.plan__badge{ background: var(--client-bg) !important; }
/* 赤背景の.news-catは白文字（リンク化でcolor:inheritになり黒文字化→可読性崩れを修正 2026-06-03） */
a.news-cat{ text-decoration:none; color:#fff !important; }
a.topics__tag,a.news__cat{ text-decoration:none; color:inherit; }
/* footer-pale-gray: 淡いグレー系（クライアント要望 2026-06-02） */
.footer{ background:#F2F2F2 !important; border-top:1px solid var(--line) !important; color:var(--ink-2) !important; }
.footer a, .footer .logo, .footer h2, .footer h3, .footer strong, .footer .footer__col-title{ color:var(--ink) !important; }
.footer a:hover{ color:var(--red) !important; }
.footer small, .footer .footer__copyright, .footer time{ color:var(--ink-3) !important; }
/* cta-btn-on-red: 赤帯上のprimaryボタンを白地×赤文字へ */
.cta-block .btn--primary, .bleed-band .btn--primary, .entry-cta .btn--primary, .message__visual .btn--primary, .company__visual .btn--primary, .v-f .btn--primary{ background:#fff !important; border-color:#fff !important; color:var(--red) !important; }
.cta-block .btn--primary:hover, .bleed-band .btn--primary:hover, .entry-cta .btn--primary:hover, .message__visual .btn--primary:hover, .company__visual .btn--primary:hover, .v-f .btn--primary:hover{ background:var(--red-tint) !important; border-color:var(--red-tint) !important; color:var(--red-dark) !important; }


/* ===== 事業内容フロー（5ステップ）専用：共有.flow__steps（recruit=repeat4・幅960中央寄せ）との衝突回避 ===== */
.flow__steps--biz { grid-template-columns: repeat(5, 1fr); gap: 0; max-width: none; margin: 0; }
@media (max-width: 1024px) { .flow__steps--biz { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px) { .flow__steps--biz { grid-template-columns: 1fr; } }


/* SNSアイコンは塗(fill:currentColor)。.footer a:hover の赤!importantを打ち消して白に（赤丸に赤字対策） */
.footer .footer__social-icons a:hover { color:#fff !important; }
