@charset "utf-8";

/*
---------------------------------------------
    navigation01 ※TOP、下層共通（PC）
--------------------------------------------- */
.header-area-upper {
  padding: var(--s1);
  text-align: right;
}

.header-title {
  font-size: 1.2rem;
  display: inline-block;
  position: relative;
}

.header-title::before {
  content: "PR";
  padding: .2rem;
  color: #fff;
  background-color: #333;
  transform: translateY(-50%);
  position: absolute;
  top: 50%;
  left: -2.4rem;
}

.header-title a {
  text-decoration: none;
}

.header-title a:hover {
  text-decoration: underline;
}

.gnavi-ctrl {
  display: none;
}

.gnavi-btn {
  display: none;
}

.gnavi-btn-close {
  display: none;
}

.gnavi-area {
  display: none;
}

.toggle-content {
  display: none;
}

/* ---------------------------------------------
  スクロール表示アニメーション
--------------------------------------------- */
.is-fadeup-target.is-fadeup-ready {
  opacity: 0;
  transform: translateY(var(--s3));
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.is-fadeup-target.is-fadeup-visible {
  opacity: 1;
  transform: translateY(0);
}

/*------------------------------------------
 Global menu settings（PC）
-------------------------------------------*/
.navigation01-menu-area {
  background-color: var(--white);
  border-bottom: 0.1rem solid var(--ln);
  transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.contents-area--top .navigation01-menu-area,
.contents-area--lower .navigation01-menu-area {
  position: sticky;
  top: 0;
  z-index: 50;
  padding-bottom: 0;
}

.navigation01-menu-area.is-nav-scrolled {
  background-color: color-mix(in srgb, var(--white) 72%, transparent);
  border-bottom-color: color-mix(in srgb, var(--ln) 85%, transparent);
  box-shadow: var(--sd-1);
  backdrop-filter: blur(1.2rem);
  -webkit-backdrop-filter: blur(1.2rem);
  padding-bottom: 0;
}

.c-globalNav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s4);
  padding-top: var(--s2);
  padding-bottom: var(--s2);
  width: 100%;
  max-width: none;
  margin: 0;
  box-sizing: border-box;
  padding-left: var(--s2);
  padding-right: var(--s2);
}

.c-globalNav__logo {
  flex-shrink: 0;
  max-width: min(100%, 13rem);
}

.c-globalNav__logo img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.c-globalNav__right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: var(--s5);
  margin-left: auto;
  min-width: 0;
}

.c-globalNav__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--s2) var(--s4);
  margin: 0;
  padding: 0;
  color: var(--txt);
}

.c-globalNav__list li {
  list-style: none;
}

.c-globalNav__list li::before {
  display: none;
}

.c-globalNav__list a {
  color: var(--txt);
  font-weight: 700;
  text-decoration: none;
  display: block;
}

.c-globalNav__list a:hover {
  opacity: 0.8;
}

.c-globalNav__tel {
  display: flex;
  align-items: center;
  gap: var(--s2);
}

.c-globalNav__tel img {
  width: var(--s3);
  max-width: 100%;
  height: auto;
  display: block;
  flex-shrink: 0;
}

.c-globalNav__telTxt {
  display: grid;
  gap: var(--s-2);
  text-align: center;
}

.c-globalNav__telNum {
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--s-2);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.2;
  color: var(--pri-dark);
  font-family: Lato, sans-serif;
}

.c-globalNav__telNum a {
  color: var(--pri-dark);
  text-decoration: none;
}

.c-globalNav__telNum a:hover {
  opacity: 0.8;
}

.c-globalNav__telNote {
  margin: 0;
  font-size: var(--fs-s);
  color: var(--txt-sub);
  line-height: 1.3;
}

.c-globalNav__cta {
  /* c-globalNav__right の `gap` を半分だけ相殺して、電話番号とCTAの間隔を詰める */
  margin-left: calc(var(--s5) / -2);
}

.c-globalNav__cta a {
  display: inline-block;
  padding: var(--s2) var(--s5);
  border-radius: 50vh;
  background: var(--pri);
  color: var(--white);
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
}

.c-globalNav__cta a:hover {
  opacity: 1;
}

/* ---------------------------------------------
   目次01（アコーディオン型）PC
--------------------------------------------- */
.index01-frame {
  width: 90%;
  margin: 0 auto;
  background-color: var(--c1);
}

.index01-wrap {
  margin: 0 auto;
  padding: var(--s1) var(--s3);
  border: solid 0.1rem var(--ln-soft);
  background-color: var(--white);
  position: relative;
}

.index01-title {
  padding: var(--s2) var(--s2) var(--s2) var(--s4);
  color: #333;
  font-size: var(--fs-m);
  font-weight: bold;
  line-height: 1;
  background: url("./img/toc-icon.png") no-repeat left center;
  background-size: 1.8rem auto;
  position: relative;
  cursor: pointer;
}

.index01-title::before {
  content: "";
  width: 2rem;
  height: 0.3rem;
  background: #333;
  position: absolute;
  top: 50%;
  right: 2rem;
  transform: translate(0, -50%);
}

.index01-title::after {
  content: "";
  width: 0.3rem;
  height: 2rem;
  background: #333;
  position: absolute;
  top: 50%;
  right: 2.9rem;
  transform: translate(0, -50%);
  transition: transform 0.3s;
}

.index01-title.is-open::after {
  transform: translate(0, -50%) rotate(270deg);
}

.index01-chapter {
  padding: var(--s2) var(--s2) var(--s2) var(--s4);
  font-weight: 700;
}

.index01-chapter-h {
  margin: 0 0 0 var(--s2);
  font-size: 100%;
  line-height: 1.7;
  position: relative;
}

.index01-chapter-h a {
  display: block;
  text-decoration: none;
}

.index01-chapter-h a:hover {
  opacity: .6;
}

.index01-chapter-h-two {
  margin-left: var(--s2);
  position: relative;
}

.index01-chapter-h-three {
  margin-left: var(--s4);
  position: relative;
}

.index01-chapter-h-two::before,
.index01-chapter-h-three::before {
  position: absolute;
  top: 0;
  left: -1.5em;
}

.index01-chapter-h-two::before {
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 2rem;
  background-color: var(--pri);
  transform: translateY(-50%);
  top: .8em;
}

.index01-chapter-h-three::before {
  content: "└";
}

.index01-frame .more-content {
  display: block;
}

.index01-content {
  background: none;
}

/* ---------------------------------------------
   メインビジュアル（MV）PC
--------------------------------------------- */
.contents-area--top {
  position: relative;
}

.contents-area--top>* {
  position: relative;
  z-index: 1;
}

.contents-area--lower {
  position: relative;
  overflow: visible;
  isolation: isolate;
  background-color: var(--sec);
  background-image:
    url("img/wave_bg.svg"),
    linear-gradient(180deg,
      var(--white) 0% 14%,
      color-mix(in srgb, var(--sec) 65%, var(--white) 35%) 28%,
      var(--sec) 55%,
      var(--sec) 100%);
  background-repeat: no-repeat, no-repeat;
  background-position: center top -18rem, center top;
  background-size: 100% auto, 100% 100%;
  background-attachment: scroll, scroll;
}

.contents-area--lower>* {
  position: relative;
  z-index: 1;
}

/* MV：MV 中盤から白→--sec グラデ ＋ 下端に波。sec01 との境は --sec で一致 */
.mainvisual {
  position: relative;
  background: transparent;
  overflow: hidden;
  isolation: isolate;
}

.mainvisual::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background: linear-gradient(180deg,
      var(--white) 0% 45%,
      var(--sec) 100%);
}

.mainvisual::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  min-height: 93rem;
  pointer-events: none;
  z-index: 0;
  mix-blend-mode: multiply;
  background: url("img/wave_bg.svg") no-repeat center bottom / 100% auto;
}

.mainvisual__inner {
  position: relative;
  z-index: 1;
  padding: var(--s2) var(--s2) 0;
}

.mainvisual__inner.l-center {
  max-width: 154.8rem;
}

.mv-photoList {
  margin: 0;
  padding: 0;
}

.mv-photoList {
  display: none;
}

.mv-photo {
  width: 100%;
  max-width: 154.8rem;
  margin: 0 auto var(--s6);
  border-radius: var(--r-lg);
  overflow: hidden;
}

.mv-photo img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.mv-photo--1,
.mv-photo--2,
.mv-photo--3,
.mv-photo--4,
.mv-photo--5 {
  display: none;
}

.mv-copy {
  max-width: 90rem;
  margin: -20rem auto 12rem;
  text-align: center;
  position: relative;
  z-index: 1;
}

.js-enabled .mainvisual .mv-photo,
.js-enabled .mainvisual .mv-copy {
  opacity: 0;
  transform: translateY(var(--s3));
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.js-enabled .mainvisual .mv-photo.is-mv-visible,
.js-enabled .mainvisual .mv-copy.is-mv-visible {
  opacity: 1;
  transform: translateY(0);
}

.mv-pill {
  width: fit-content;
  margin: 0 auto var(--s4);
  padding: var(--s-2) var(--s2);
  border: 0.1rem solid var(--ln);
  background: var(--white);
  border-radius: 50vh;
  font-weight: 700;
  color: var(--pri-dark);
}

.mv-pill__img {
  height: 2.8rem;
  width: auto;
  display: block;
  max-width: 100%;
}

.mv-title {
  margin: 0 auto var(--s3);
  color: var(--pri-dark);
  font-weight: 700;
}

.mv-title__top {
  font-size: var(--fs-xl);
  line-height: 1.4;
}

.mv-title__bottom {
  margin-top: var(--s1);
  font-size: var(--fs-xxl);
  line-height: 1.3;
}

.mv-lead {
  margin: 0 auto var(--s6);
  max-width: 74rem;
  color: var(--txt);
  line-height: 2;
}

.mv-cta {
  width: 100%;
  max-width: 30rem;
  margin: 0 auto;
}

.mv-cta__link {
  width: 100%;
  padding: var(--s3) var(--s10) var(--s3) var(--s6);
  display: block;
  background: var(--pri);
  color: var(--white);
  font-weight: 700;
  text-decoration: none;
  border-radius: 50vh;
  position: relative;
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
}

.mv-cta__link::before {
  content: "";
  width: var(--s6);
  height: var(--s6);
  background: url("img/mail_icon.png") no-repeat center center / var(--s6) auto;
  display: block;
  position: absolute;
  top: 50%;
  right: var(--s2);
  transform: translateY(-50%);
}

.mv-cta__link:hover {
  opacity: 1;
}

/* c-globalNav__cta / mv-cta / btn-web 共通：中央から広がるホバー */
.c-globalNav__cta a,
.mv-cta__link,
.btn-web a {
  background-color: var(--pri);
  background-image: radial-gradient(circle, color-mix(in srgb, var(--pri) 82%, var(--pri-dark) 18%) 0%, color-mix(in srgb, var(--pri) 82%, var(--pri-dark) 18%) 70%, transparent 72%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0 0;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-size 0.5s ease;
}

.c-globalNav__cta a:hover,
.mv-cta__link:hover,
.btn-web a:hover,
.c-ctaCard--web:hover .btn-web a {
  background-size: 40rem 40rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-size 1s ease;
  transform: translateY(var(--s-2));
  box-shadow: none;
  opacity: 1;
}

.btn-web a:hover,
.c-ctaCard--web:hover .btn-web a {
  background-size: 70rem 70rem;
}

.c-globalNav__cta a:active,
.mv-cta__link:active,
.btn-web a:active {
  opacity: 1;
}

/* ---------------------------------------------
   セクション01：What is Pexip?（PC）
--------------------------------------------- */
/* sec01：MV 下端の --sec から --acc へ（--grad-main の下段に相当。sec02 以降は別背景） */
.c-pexipIntro {
  background: linear-gradient(180deg, var(--sec) 0%, var(--acc) 100%);
  padding: 0;
  position: relative;
  overflow: hidden;
}

.c-pexipIntro__inner {
  position: relative;
  padding: 0 var(--s2) var(--s10);
}

.c-pexipIntro__vertical {
  font-size: 7rem;
  letter-spacing: 0.06em;
  color: var(--white);
  opacity: 0.6;
  writing-mode: vertical-rl;
  position: absolute;
  top: var(--s9);
  left: calc(50% - 66rem - var(--s7));
  pointer-events: none;
  font-weight: bold !important;
}

.c-pexipIntro__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--s6);
  align-items: center;
}

.c-pexipIntro__copy {
  max-width: none;
  margin-left: 0;
}

.c-pexipIntro__vertical,
.c-pexipIntro__eyebrow,
.c-features__eyebrow,
.c-productList__eyebrow,
.c-issueSearch__eyebrow,
.c-issueCard__num,
.c-case__eyebrow,
.c-techReq__eyebrow,
.c-faqSec__eyebrow {
  font-family: "Lato", "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.c-pexipIntro__eyebrow {
  color: var(--pri);
  margin-bottom: var(--s2);
}

.c-pexipIntro__title {
  text-align: left;
}

#sec01 .c-h2,
#sec05 .c-h2,
#sec06 .c-h2 {
  text-align: left;
}

.c-pexipIntro__line,
.c-case__title::after,
.c-techReq__line {
  width: 100%;
  max-width: 100%;
  height: 0.1rem;
  display: block;
  background: linear-gradient(to right, var(--pri) 0, var(--pri) var(--s6), var(--ln-soft) var(--s6), var(--ln-soft) 100%);
}

.c-pexipIntro__line {
  margin: var(--s4) 0 var(--s4);
}

.c-pexipIntro__text {
  color: var(--txt);
  line-height: 2;
}

.c-pexipIntro__diagram img {
  width: 100%;
  max-width: 100%;
  height: auto;
}

.c-pexipDiagram {
  position: relative;
  min-height: 48rem;
}

.c-pexipDiagram__center {
  width: 18rem;
  height: 18rem;
  border-radius: 50%;
  background: var(--white);
  border: 0.1rem solid var(--ln);
  box-shadow: var(--sd-1);
  display: grid;
  place-items: center;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: var(--s3);
  z-index: 2;
}

.c-pexipDiagram__label {
  font-weight: 700;
  color: var(--pri-dark);
  font-size: var(--fs-l);
  margin-bottom: var(--s-2);
}

.c-pexipDiagram__subLabel {
  font-size: var(--fs-s);
  color: var(--txt);
  line-height: 1.6;
}

.c-pexipDiagram__items {
  margin: 0;
  padding: 0;
}

.c-pexipDiagram__item {
  position: absolute;
  width: 24rem;
}

.c-pexipDiagram__bubble {
  width: 100%;
  border-radius: 50%;
  background: var(--white);
  border: 0.1rem solid var(--ln);
  box-shadow: var(--sd-1);
  padding: var(--s4);
  text-align: center;
}

.c-pexipDiagram__title {
  font-weight: 700;
  color: var(--pri-dark);
  margin-bottom: var(--s1);
  line-height: 1.5;
}

.c-pexipDiagram__desc {
  color: var(--txt);
  font-size: var(--fs-s);
  line-height: 1.8;
}

.c-pexipDiagram__item--tl {
  top: 0;
  left: 2rem;
}

.c-pexipDiagram__item--tr {
  top: 0;
  right: 2rem;
}

.c-pexipDiagram__item--bl {
  bottom: 0;
  left: 2rem;
}

.c-pexipDiagram__item--br {
  bottom: 0;
  right: 2rem;
}

.c-pexipDiagram__item::before {
  content: "";
  width: 8rem;
  height: 0.2rem;
  background: var(--ln);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

.c-pexipDiagram__item--tl::before,
.c-pexipDiagram__item--tr::before {
  top: calc(100% + var(--s2));
}

.c-pexipDiagram__item--bl::before,
.c-pexipDiagram__item--br::before {
  top: calc(var(--s2) * -1);
}

/* ---------------------------------------------
   sec02-03 背景シームレス（PC）
--------------------------------------------- */
.c-seamlessWrap--sec02to03 {
  background-image: url(img/sec02_bg.png), url(img/sec03_bg.png);
  background-repeat: no-repeat, no-repeat;
  background-position: center top, center bottom;
  background-size: 100%, 100%;
}

.c-seamlessWrap--sec02to03 .l-sec {
  background: transparent;
}

/* ---------------------------------------------
   sec02 Features（PC）
--------------------------------------------- */
.c-features__inner {
  padding-top: var(--s5);
  padding-bottom: var(--s1);
}

.c-features__head {
  text-align: center;
}

.c-features__eyebrow {
  color: var(--pri);
  text-align: center;
}

.c-features__head .c-h2::after,
.c-faqSec__head .c-h2::after {
  content: "";
  width: var(--s8);
  height: 0.1rem;
  margin: var(--s2) auto 0;
  display: block;
  background: linear-gradient(to right, var(--pri) 0, var(--pri) 50%, var(--ln-soft) 50%, var(--ln-soft) 100%);
}

.c-features__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s6);
  align-items: start;
}

.c-featureItem {
  text-align: center;
}

.c-featureItem__title {
  font-size: var(--fs-l);
  font-weight: 700;
  color: var(--pri);
  line-height: 1.6;
}

.c-featureItem img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  border-radius: var(--r-md);
  border: 0.1rem solid #d8dee9;
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
}

.c-featureItem__text {
  color: var(--txt);
  line-height: 2;
  text-align: left;
}

/* ---------------------------------------------
   sec03 Product list（PC）
--------------------------------------------- */
.c-productList__inner {
  padding-top: 0;
  padding-bottom: var(--s5);
  display: grid;
  grid-template-columns: 0.3fr 1.1fr;
  grid-template-areas: "head items";
  gap: var(--s8);
  align-items: start;
}

.c-productList__head {
  display: grid;
  gap: var(--s1);
  grid-area: head;
  position: sticky;
  top: calc(var(--s10) + var(--s7));
  align-self: start;
}

.c-productList__eyebrow {
  color: var(--pri);
}

.c-productList__title {
  text-align: left;
}

.c-productList__items {
  grid-area: items;
}

.c-productRow {
  padding: var(--s6) 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s2);
  align-items: center;
}

.c-productRow__tag {
  width: fit-content;
  padding: var(--s-2) var(--s1);
  border: 0.1rem solid var(--pri);
  border-radius: 0.2rem;
  color: var(--pri);
  background: var(--white);
  font-weight: 700;
  font-size: 1.4rem;
  margin-bottom: 0;
}

.c-productRow__name {
  font-size: var(--fs-l);
  font-weight: 700;
  color: var(--pri-dark);
  padding-bottom: 0;
  border-bottom: none;
  margin-bottom: 0;
  position: static;
}

.c-productRow__nameGroup {
  border-bottom: 0.1rem solid var(--bor);
  margin-bottom: var(--s2);
}

.c-productRow__nameLink {
  width: 100%;
  padding: var(--s2) var(--s8) var(--s3) 0;
  display: flex;
  align-items: center;
  gap: var(--s2);
  text-decoration: none;
  color: inherit;
  position: relative;
}

.c-productRow__nameLink::after {
  content: "";
  width: var(--s3);
  height: var(--s3);
  background: url("img/arrow_right.png") no-repeat center / contain;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  pointer-events: none;
}

.c-productRow__nameLink:hover {
  opacity: 0.8;
}

.c-productRow__chip {
  padding: var(--s1) var(--s2);
  border-radius: 50vh;
  background: var(--bor);
  color: var(--pri-dark);
  font-size: var(--fs-s);
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.c-productRow__desc {
  color: var(--txt);
  line-height: 2;
}

.c-productRow__descGroup {
  display: flex;
  align-items: flex-start;
  gap: var(--s4);
}

.c-productRow__descMedia {
  flex: 0 0 34%;
}

.c-productRow__descMedia img {
  width: 100%;
  max-width: 100%;
  display: block;
}

.c-productRow__descBody {
  flex: 1;
  min-width: 0;
}

.c-productRow__spec {
  margin-top: var(--s2);
}

.c-productRow__specLabel {
  margin-right: var(--s1);
  padding: 1px 8px;
  border: 1px solid var(--bor);
  border-radius: 4rem;
  color: var(--pri-dark);
  font-size: 1.4rem;
  font-weight: 700;
}

@media screen and (max-width: 768px) {
  .c-productRow__specLabel {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin-right: 0;
    margin-bottom: var(--s1);
  }
}

.c-productList__cta {
  display: flex;
  justify-content: flex-end;
  margin-top: var(--s4);
}

.c-productList__ctaLink {
  width: fit-content;
  display: inline-block;
  padding: var(--s3) calc(var(--s7) + var(--s3)) var(--s3) var(--s5);
  border-radius: 50vh;
  background: var(--white);
  border: 0.1rem solid var(--ln);
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
  text-decoration: none;
  font-weight: 700;
  color: var(--pri-dark);
  position: relative;
  z-index: 1;
  text-align: center;
  box-sizing: border-box;
}

/* ---------------------------------------------
  sec04 Search by Issue（PC）
--------------------------------------------- */
.c-issueSearchWrap {
  background-color: color-mix(in srgb, var(--bor) 75%, var(--white) 25%);
  position: relative;
  overflow: hidden;
}

.c-issueSearchWrap::before {
  content: "";
  width: 100%;
  padding-bottom: 38%;
  position: absolute;
  left: 0;
  top: 0;
  background: url("img/sec04_bg.jpg") no-repeat center top / 100% auto;
  pointer-events: none;
  z-index: 0;
  box-sizing: border-box;
}

.c-issueSearchWrap__container {
  position: relative;
  z-index: 1;
  padding-top: var(--s5);
  padding-bottom: var(--s5);
}

.c-issueSearch {
  max-width: 120rem;
  margin: 0 auto;
  padding: var(--s10) var(--s9) var(--s6);
  background-color: var(--pri);
  background-image: url("img/sec04_bg_left.png"), url("img/sec04_bg_right.png");
  background-position: left top, right bottom;
  background-repeat: no-repeat, no-repeat;
  background-size: auto, auto;
  background-blend-mode: multiply, multiply;
  border-radius: var(--r-md);
  position: relative;
}

.c-issueSearch__head {
  margin: 0 auto var(--s7);
  max-width: 60rem;
  text-align: center;
}

.c-issueSearch__eyebrow {
  color: #6699F9;
}

.c-issueSearch__title {
  color: var(--white);
}

#sec04 .c-h2 {
  color: var(--white);
}

.c-issueSearch__title::after {
  content: "";
  width: var(--s5);
  height: 0.1rem;
  margin: var(--s2) auto 0;
  background: linear-gradient(to right, var(--white) 0, var(--white) 50%, #6699F9 50%, #6699F9 100%);
  display: block;
}

.c-issueSearch__lead {
  color: var(--white);
  line-height: 1.9;
  text-align: left;
}

.c-issueGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s5);
}

.c-issueCard {
  padding: var(--s3);
  background: var(--white);
  border-radius: var(--r-md);
  text-decoration: none;
  color: inherit;
  transition: background-color 0.3s ease;
}

.c-issueCard:hover,
.c-issueCard:active {
  opacity: 1;
  background-color: var(--c3);
}

.c-issueCard__head {
  display: grid;
  grid-template-columns: 1fr 14.8rem;
  gap: var(--s2);
  align-items: stretch;
}

.c-issueCard__headMain {
  min-width: 0;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.c-issueCard__numRow {
  display: flex;
  align-items: center;
  gap: var(--s2);
  flex-shrink: 0;
  min-width: 0;
}

.c-issueCard__numRow::after {
  content: "";
  flex: 1 1 auto;
  min-width: var(--s1);
  height: 0.1rem;
  background: var(--ln-soft);
}

.c-issueCard__num {
  flex-shrink: 0;
  margin: 0;
  color: var(--ln-soft);
  font-size: var(--fs-s);
}

.c-issueCard__head img {
  width: 14.8rem;
  max-width: 100%;
  height: auto;
  display: block;
}

.c-issueCard__title {
  flex-shrink: 0;
  margin: 0;
  margin-top: auto;
  margin-bottom: auto;
  color: var(--pri-dark);
  text-align: left;
  font-size: var(--fs-l);
  line-height: 1.5;
}

.c-issueCard__text {
  color: var(--txt);
  line-height: 1.9;
}

.c-issueCard__foot {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--s1);
  color: var(--pri-dark);
  font-weight: 700;
}

.c-issueCard__foot::after {
  content: "";
  width: var(--s3);
  height: var(--s3);
  display: block;
  flex-shrink: 0;
  background: url("img/arrow_right.png") no-repeat center center / contain;
}

.c-issueCard:hover .c-issueCard__foot {
  opacity: 0.8;
}

.c-issueSearch__cta {
  margin-top: var(--s5);
  display: flex;
  justify-content: center;
}

.c-issueSearch__cta a {
  min-width: 24rem;
  padding: var(--s3) calc(var(--s7) + var(--s3)) var(--s3) var(--s5);
  border-radius: 50vh;
  background: var(--white);
  color: var(--pri-dark);
  text-decoration: none;
  font-weight: 700;
  display: inline-block;
  position: relative;
  z-index: 1;
  text-align: center;
  box-sizing: border-box;
}

/* ---------------------------------------------
  sec05 Case（PC）
--------------------------------------------- */
.c-case {
  background: var(--white) url("img/wave_bg.svg") no-repeat center / 100% auto;
  position: relative;
  overflow: hidden;
}



.c-case__inner {
  position: relative;
  padding-top: var(--s5);
}

.c-case__head {
  text-align: left;
}

.c-case__eyebrow {
  color: var(--pri);
}

.c-case__title {
  text-align: left;
}

.c-case__title::after {
  content: "";
  display: block;
  margin-top: var(--s2);
}

.c-caseGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s6);
  align-items: start;
}

.c-caseCard {
  background: transparent;
  padding-bottom: 0;
  border-bottom: none;
  position: relative;
  text-decoration: none;
  color: inherit;
}

.c-caseCard:hover {
  opacity: 0.6;
}

.c-caseCard:not(:last-child)::after {
  content: "";
  width: 0.1rem;
  height: 100%;
  background: var(--ln);
  position: absolute;
  top: 0;
  right: calc(var(--s6) / -2);
}

.c-caseCard__thumb {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  background: var(--c2);
  border: 0.1rem solid var(--ln);
}

.c-h3.c-caseCard__title {
  text-align: left;
  color: var(--pri-dark);
  font-size: var(--fs-m);
  line-height: 1.7;
}

.c-caseCard__company {
  padding: var(--s-2) var(--s1);
  border: 0.1rem solid var(--pri);
  border-radius: var(--r-xs);
  color: var(--pri);
  font-weight: 700;
  display: inline-block;
  width: fit-content;
  align-self: flex-start;
}

.c-caseCard__meta {
  display: grid;
  gap: var(--s1);
  color: var(--txt);
  font-size: var(--fs-s);
}

.c-caseCard__metaRow {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--s2);
  align-items: start;
}

.c-caseCard__metaRow dt {
  color: var(--pri-dark);
  font-weight: 700;
}

.c-caseCard__metaRow dd {
  margin: 0;
  color: var(--txt);
}

.c-caseCard__foot {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: var(--s1);
  color: var(--pri-dark);
  font-weight: 700;
  position: relative;
  z-index: 1;
}

.c-caseCard__foot::after {
  content: "";
  width: var(--s3);
  height: var(--s3);
  display: block;
  flex-shrink: 0;
  background: url("img/arrow_right.png") no-repeat center center / contain;
}


.c-caseLogos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--s4);
  align-items: center;
  margin: 0;
  padding: 0;
}

.c-caseLogos__item {
  background: var(--c2);
  border: 0.1rem solid var(--ln);
  display: grid;
  place-items: center;
  padding: var(--s2);
}

.c-caseLogos__item img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.c-case__cta {
  display: flex;
  justify-content: center;
}

.c-case__cta a {
  min-width: 28rem;
  padding: var(--s3) calc(var(--s7) + var(--s3)) var(--s3) var(--s5);
  border-radius: 50vh;
  background: var(--white);
  border: 0.1rem solid var(--bor);
  color: var(--pri-dark);
  text-decoration: none;
  font-weight: 700;
  display: inline-block;
  position: relative;
  z-index: 1;
  text-align: center;
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
  box-sizing: border-box;
}

/* ---------------------------------------------
  sec06 Technical Requirements（PC）
--------------------------------------------- */
.c-techReq {
  background: var(--grad-main);
}

.c-techReq__inner {
  padding-top: var(--s5);
  padding-bottom: var(--s5);
}

.c-techReq__grid {
  display: grid;
  grid-template-columns: 0.5fr 1.1fr;
  gap: var(--s8);
  align-items: start;
}

.c-techReq__left {
  max-width: 44rem;
  position: sticky;
  top: calc(var(--s10) + var(--s7));
  align-self: start;
}

.c-techReq__eyebrow {
  color: var(--pri);
}

.c-techReq__title {
  text-align: left;
}

.c-techReq__lead {
  margin-top: 3rem;
  color: var(--txt);
  line-height: 2;
}

.c-techReq__cta a {
  width: fit-content;
  padding: var(--s3) calc(var(--s7) + var(--s3)) var(--s3) var(--s5);
  border-radius: 50vh;
  background: var(--white);
  border: 0.1rem solid var(--bor);
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
  text-decoration: none;
  font-weight: 700;
  color: var(--pri-dark);
  display: inline-block;
  position: relative;
  z-index: 1;
  text-align: center;
  box-sizing: border-box;
}

.c-techReqCard {
  padding: var(--s5) var(--s5);
  background: var(--white);
  border-radius: var(--r-md);
  box-shadow: var(--sd-1);
  position: relative;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: background-color 0.3s ease;
}

.c-techReqCard:hover,
.c-techReqCard:active {
  opacity: 0.8;
  background-color: var(--white);
}

.c-techReqCard::before {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  background: url("/wp/wp-content/uploads/sec06_dot_bg.png") no-repeat center bottom / cover;
  pointer-events: none;
}

.c-techReqCard__title {
  text-align: left;
  color: var(--pri-dark);
  font-size: var(--fs-m);
  position: relative;
}

.c-techReqCard__text {
  color: var(--txt);
  line-height: 2;
  position: relative;
}

.c-techReqCard__foot {
  width: var(--s5);
  height: var(--s5);
  margin-left: auto;
  display: block;
  position: relative;
  background: url("img/arrow_right.png") no-repeat center center / contain;
}

/* ---------------------------------------------
  sec07 FAQ（PC）
--------------------------------------------- */
.c-faqSec {
  background: var(--white);
}

.c-faqSec__inner {
  padding-top: var(--s5);
  padding-bottom: var(--s5);
  max-width: 88rem;
}

.c-faqSec__head {
  text-align: center;
}

.c-faqSec__eyebrow {
  color: var(--pri);
}

.acc-contentsbg-colored {
  width: 100%;
}

.acc-contentsbg-colored__inner {
  background: var(--white);
}

.acc-area {
  border-top: 0.1rem solid var(--ln);
}

.acc-area:last-child {
  border-bottom: 0.1rem solid var(--ln);
}

.acc-title {
  padding: var(--s3) var(--s6) var(--s3) var(--s9);
  font-size: var(--fs-m);
  font-weight: 700;
  color: var(--pri-dark);
  line-height: 1.6;
  cursor: pointer;
  position: relative;
  transition: opacity 0.5s ease;
}

.acc-title::before,
.acc-title::after {
  content: "";
  width: var(--s3);
  height: 0.2rem;
  background: var(--pri);
  position: absolute;
  top: 50%;
  right: var(--s2);
  transform-origin: center;
  transition: transform 0.3s ease;
}

.acc-title::before {
  transform: translateY(-50%) rotate(0deg);
}

.acc-title::after {
  transform: translateY(-50%) rotate(90deg);
}

.acc-title.close::before {
  transform: translateY(-50%) rotate(45deg);
}

.acc-title.close::after {
  transform: translateY(-50%) rotate(-45deg);
}

.faq-q {
  background: url("./img/Q.png") no-repeat left var(--s2) center / var(--s5) auto;
}

.acc-content {
  display: none;
  padding: var(--s3) var(--s6) var(--s3) var(--s9);
  background: var(--c0);
}

.acc-title.close+.acc-content {
  display: block;
}

.acc-content dt {
  margin-bottom: var(--s2);
  font-size: var(--fs-m);
  font-weight: 700;
  color: var(--pri-dark);
  line-height: 1.6;
}

.acc-content dd {
  margin: 0;
  color: var(--txt);
  line-height: 2;
}

.acc-content dd+dd {
  margin-top: var(--s2);
}

.faq-a {
  background-image: url("./img/A.png");
  background-repeat: no-repeat;
  background-position: left var(--s2) top var(--s2);
  background-size: var(--s5) auto;
}

.acc-content .btn-link {
  text-align: right;
}

.acc-content .btn-link a {
  padding: 0;
  background: none;
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  color: var(--pri-dark);
}

.acc-content .btn-link a:hover {
  opacity: 0.8;
}

.c-faqSec__cta {
  display: flex;
  justify-content: center;
}

.c-faqSec__cta a {
  min-width: 20rem;
  padding: var(--s3) calc(var(--s7) + var(--s3)) var(--s3) var(--s5);
  border-radius: 50vh;
  background: var(--white);
  border: 0.1rem solid var(--bor);
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
  color: var(--pri-dark);
  text-decoration: none;
  font-weight: 700;
  display: inline-block;
  position: relative;
  z-index: 1;
  text-align: center;
  box-sizing: border-box;
}

/* 製品一覧〜FAQ の CTA：btn-internal と同様、右端に円＋矢印（疑似要素） */
.c-productList__ctaLink::after,
.c-issueSearch__cta a::after,
.c-case__cta a::after,
.c-techReq__cta a::after,
.c-faqSec__cta a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: var(--s3);
  width: var(--s5);
  aspect-ratio: 1;
  border-radius: 50%;
  transform: translateY(-50%);
  background: url("img/arrow_right.png") no-repeat center / 100% auto;
  pointer-events: none;
  z-index: 2;
}

/* 下層：トップ（MV / 各所 CTA）と同様、::after は円形の背景色なし・アイコンを大きく */
.btn-internal a::after {
  background: url("img/arrow_right.png") no-repeat center / 100% auto;
}

.btn-web a::after {
  width: var(--s5);
  height: var(--s5);
  aspect-ratio: auto;
  border-radius: 0;
  background: url("img/mail_icon.png") no-repeat center / 100% auto;
}

/* 製品一覧〜FAQ の CTA：ホバー時に中央から薄い水色を広げる */
.c-productList__ctaLink,
.c-issueSearch__cta a,
.c-case__cta a,
.c-techReq__cta a,
.c-faqSec__cta a,
.btn-internal a {
  position: relative;
  overflow: hidden;
  z-index: 0;
  border: 0.1rem solid var(--bor);
  background-color: var(--white);
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.c-productList__ctaLink::before,
.c-issueSearch__cta a::before,
.c-case__cta a::before,
.c-techReq__cta a::before,
.c-faqSec__cta a::before,
.btn-internal a::before {
  content: "";
  width: 0;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--c3);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
  transition: width 0.5s ease;
}

.c-productList__ctaLink:hover,
.c-issueSearch__cta a:hover,
.c-case__cta a:hover,
.c-techReq__cta a:hover,
.c-faqSec__cta a:hover,
.btn-internal a:hover,
.c-productList__ctaLink:active,
.c-issueSearch__cta a:active,
.c-case__cta a:active,
.c-techReq__cta a:active,
.c-faqSec__cta a:active,
.btn-internal a:active {
  opacity: 1;
}

.c-productList__ctaLink:hover,
.c-issueSearch__cta a:hover,
.c-case__cta a:hover,
.c-techReq__cta a:hover,
.c-faqSec__cta a:hover,
.btn-internal a:hover {
  background-color: var(--white);
  transform: translateY(var(--s-2));
  box-shadow: none;
}

.c-productList__ctaLink:hover::before,
.c-issueSearch__cta a:hover::before,
.c-case__cta a:hover::before,
.c-techReq__cta a:hover::before,
.c-faqSec__cta a:hover::before,
.btn-internal a:hover::before {
  transition-duration: 1s;
  width: 240%;
}

/* ---------------------------------------------
  sec08 下部CTA（top）
--------------------------------------------- */
.c-secCta {
  position: relative;
  color: var(--white);
  overflow: hidden;
}

.c-secCta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("img/sec-cta_bg.jpg") no-repeat center / cover;
  z-index: 0;
}

.c-secCta .c-secCta__inner {
  position: relative;
  z-index: 2;
}

.c-secCta__head {
  text-align: center;
}

.c-secCta .c-secCta__title {
  color: var(--white);
}

.c-secCta__lead {
  margin: 0;
  line-height: 2;
}

.c-secCta__cards {
  margin-top: var(--s7);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s6);
  align-items: stretch;
}

.c-ctaCard {
  padding: var(--s6);
  border-radius: var(--r-md);
  background: var(--white);
  text-align: center;
  transition: background-color 0.3s ease;
}

.c-ctaCard--web {
  cursor: pointer;
}

.c-ctaCard--web:hover {
  background-color: var(--c3);
}

.c-ctaCard--tel {
  cursor: default;
}

.c-ctaCard__iconWrap {
  width: 18%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c-ctaCard__icon {
  width: 100%;
  max-width: 100%;
  display: block;
}

.c-ctaCard__title {
  margin: 0;
}

.c-ctaCard__rule {
  width: 0.1rem;
  height: var(--s3);
  margin: 0 auto;
  background: var(--pri);
}

.c-secCta .c-ctaCard .btn-web {
  margin: 0;
  width: 100%;
  max-width: none;
  align-self: stretch;
  box-sizing: border-box;
}

.c-secCta .c-ctaCard .btn-web a {
  width: 100%;
  box-sizing: border-box;
}

.c-ctaCard__telBlock {
  align-items: center;
}

.c-ctaCard__telRow {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--s2);
  font-family: "Lato", "Noto Sans JP", sans-serif;
}

.c-ctaCard__telLabel {
  margin: 0;
  color: var(--pri);
  font-weight: 700;
}

.c-ctaCard__tel {
  margin: 0;
  font-size: var(--fs-xl);
  font-weight: 700;
  line-height: 1.3;
}

.c-ctaCard__tel a {
  color: var(--pri-dark);
  text-decoration: none;
}

.c-ctaCard__telNote {
  margin: 0;
  color: var(--txt-sub);
  font-size: var(--fs-s);
  line-height: 1.6;
}

/* =====================================================================
  汎用プレースホルダー用スタイル
  ===================================================================== */
.c-sec--detail {
  background: var(--c1);
}

/* 見出しスタイル */
.c-h2 {
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--pri-dark);
}

.c-h3 {
  font-size: var(--fs-l);
  font-weight: bold;
  color: var(--pri-dark);
}

.c-h4 {
  font-size: var(--fs-m);
  font-weight: bold;
  padding: var(--s2) var(--s3);
  background: var(--sub);
  color: white;
}

/* 見出し内リンク */
.c-hlink {
  color: inherit;
  text-decoration: none;
  display: inline-block;
  padding: 0 var(--s5);
  background: url("./img/arrow-s.svg") no-repeat center right / auto 0.8em;
  transition: opacity 0.2s ease;
}

.c-hlink:hover {
  text-decoration: none;
  opacity: 0.6;
}

/* テキストユーティリティ */
.c-lead {
  margin-bottom: var(--s3);
  color: var(--txt);
  font-size: var(--fs-md);
  line-height: 1.6;
}

.c-desc {
  margin: auto;
  max-width: 90rem;
  color: var(--txt);
}

/* カードコンポーネント */
.c-card {
  background: var(--white);
  padding: var(--s3);
  box-shadow: var(--sd-1);
}

.c-card--large {
  padding: var(--s4);
}

.c-sec--detail .c-card--large {
  padding: var(--s4) calc((100% - 90rem) / 2) var(--s6);
  background: #fff;
}

.c-card--small {
  padding: var(--s2);
}

.c-cardTitle {
  font-size: var(--fs-lg);
  font-weight: 700;
  margin: 0 0 var(--s2);
  color: var(--txt);
}

/* バッジコンポーネント */
.c-badge {
  text-align: center;
  padding: var(--s1) var(--s2);
  background: var(--pri);
  color: white;
  font-size: var(--fs-xl);
  font-weight: bold;
  margin-bottom: 0;
  /* ギャップなしの縦積みのため */
}

/* テーブルコンポーネント */
.c-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
}

.c-table th,
.c-table td {
  padding: var(--s2);
  text-align: left;
  border-bottom: 1px solid var(--ln);
}

.c-table tr:last-child th,
.c-table tr:last-child td {
  border-bottom: none;
}

.c-table th {
  background: var(--c2);
  font-weight: bold;
  color: var(--txt);
  width: 20%;
}

/* =============================================================
  簡易訴求カード subgrid 対応
============================================================= */

/* カードラッパー（バッジ + カード）の縦積みレイアウト */
.c-card-wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
  gap: 0;
  /* バッジとカードの間のギャップを除去 */
}

/* カード自体を縦フレックスにして汎用化（可変要素対応） */
.c-card--grid {
  display: flex;
  flex-direction: column;
  gap: var(--s2);
  flex: 1;
  /* 残りの高さを全て使用 */
}

/* 下部ブロック（おすすめする理由） */
.c-cardReason {
  display: grid;
  gap: var(--s1);
  padding: var(--s2);

  background: var(--c3);
}

.c-cardReason__label {
  font-weight: 700;
  color: var(--pri-dark);
}

.c-cardReason__text {
  color: var(--txt);
  line-height: 1.8;
}

/* 下部ブロック（キャッチ + p）2種 */
.c-cardCatch {
  display: grid;
  grid-template-rows: auto 1fr;
  /* キャッチは自動、説明文は残りスペース */
  gap: var(--s-2);
  padding: var(--s2);
}

.c-cardCatch--a {
  background: var(--c0);
}

.c-cardCatch--b {
  background: var(--c1);
}

.c-cardCatch__lead {
  font-weight: 700;
  color: var(--txt);
  font-size: var(--fs-m);
}

.c-cardCatch__desc {
  margin: 0;
  color: var(--txt);
  align-self: start;
  /* 説明文を上端に配置 */
}

/* 下部領域（理由・キャッチ群）を一括ラップし、最下段へ押し下げ */
.c-cardFooter {
  display: grid;
  gap: var(--s2);
  margin-top: auto;
}

/* 理由ラベルを独立したブロックとして配置 */
.c-cardReason__label {
  display: block;
  padding: var(--s2);
  background: var(--c2);
  font-weight: 700;
  color: var(--pri-dark);
  font-size: var(--fs-m);
}

/* カード高さ統一のためのグリッド調整 */
/* （旧）おすすめカード（#recommended）用の調整は削除済み */

/* c-featureCard コンポーネント*/
.c-featureCard {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: var(--s-2);
  padding: var(--s2);
  background: var(--c1);
}

.c-featureCard__lead {
  font-weight: 700;
  color: var(--txt);
  font-size: var(--fs-m);
}

/* =============================================================
  会社一覧カード subgrid 対応
============================================================= */

/* 会社カードの基本レイアウト */
.c-company-card {
  display: flex;
  flex-direction: column;
  gap: var(--s2);
  padding: var(--s3);
  background: var(--white);
  box-shadow: var(--sd-1);
  height: 100%;
}

.c-company-card table {
  font-size: 1.4rem;
  margin: 0;
}

.c-company-card table th {
  width: 30%;
}

/* 会社一覧グリッドの高さ統一 */
.l-sec:has(.c-company-card) .l-grid-3 {
  align-items: stretch;
}

/* subgrid 対応: 会社カード要素の行整列 */
@supports (grid-template-rows: subgrid) {

  /* 6行のsubgrid設定（h3 + img + p + table(3行)） */
  .l-sec:has(.c-company-card) .l-grid-3 {
    grid-template-rows: repeat(6, auto);
  }

  /* 会社カードをsubgridに設定 */
  .c-company-card {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: 1 / span 6;
    gap: var(--s2);
  }

  /* 行マッピング */
  .c-company-card>.c-h3 {
    grid-row: 1;
  }

  .c-company-card>img {
    grid-row: 2;
  }

  .c-company-card>p {
    grid-row: 3;
  }

  .c-company-card>.c-table {
    grid-row: 4 / span 3;
  }
}

/* ---------------------------------------------
   フッター（pexip デザイン）
--------------------------------------------- */
.low-page,
#low-page {
  padding: var(--s8) var(--s8);
  background: var(--white);
  box-sizing: border-box;
  border-radius: 2rem;
  margin-bottom: 7rem;
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
}

.l-center>h1:not([class]) {
  margin-block: 10rem var(--s9);
  font-size: clamp(2.4rem, 2.6vw, 4rem);
  font-weight: 700;
  text-align: left;
  color: var(--pri-dark);
}

@media screen and (max-width: 768px) {

  .low-page,
  #low-page {
    padding: var(--s6) var(--s3);
  }

  .l-center>h1:not([class]) {
    margin-block: 4rem var(--s7);
  }
}

/* ---------------------------------------------
  cate 最外周ブロックの縦余白（PC: --s10 / SP: --s8）
--------------------------------------------- */
.c-lowCards,
.c-lowIssueSec,
.c-lowCardsAltSec,
.c-solutionListSec,
.c-stepFlowSec,
.c-commentCaseSec,
.c-issueCommentSec,
.c-companyIntroSec,
.c-caseLinksSec,
.c-lowFaq,
.c-faqSec.c-lowFaq,
.c-serviceLinkSec {
  padding-block: var(--s3);
}

/* ---------------------------------------------
  下層2カラムカード（cate）
--------------------------------------------- */
.c-lowCards__grid {
  display: flex;
  flex-direction: column;
  gap: var(--s6);
  margin-bottom: 4rem;
}

.c-lowCards__row.l-grid-2 {
  gap: var(--s8) var(--s7);
  align-items: stretch;
}

.c-lowCards__item {
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--s3);
  min-height: 0;
}

.c-lowCards__title {
  margin: 0;
  padding-top: var(--s4);
  border-top: 0.1rem solid var(--ln-soft);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--pri-dark);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.5;
  flex-shrink: 0;
}

.c-lowCards__title::after {
  content: "";
  width: var(--s5);
  height: 0.1rem;
  margin: var(--s2) auto 0;
  display: block;
  background: linear-gradient(to right, var(--pri) 0, var(--pri) 50%, var(--ln-soft) 50%, var(--ln-soft) 100%);
}

.c-lowCards__item>img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  flex-shrink: 0;
}

.c-lowCards__text {
  margin: 0;
  line-height: 2;
  min-height: 0;
  flex: 1 1 auto;
}

.c-lowCards__btn {
  margin-top: 0;
  flex-shrink: 0;
}

/* ---------------------------------------------
  下層課題リスト（cate）
--------------------------------------------- */
.c-lowIssue {
  padding: var(--s6);
  background: var(--sec) url("/wp/wp-content/uploads/c-lowIssue_circle.png") no-repeat left top;
  border-radius: var(--r-md);
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
  border: 0.1rem solid var(--bor);
}

.c-lowIssue__title {
  margin: 0 0 2rem;
  padding-bottom: 0;
  border-bottom: none;
  color: var(--pri-dark);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.5;
}

#low-page .c-lowIssue ul {
  margin-block: 0;
  padding-left: var(--s3);
  border-left: 0.1rem solid var(--ln-soft);
}

/* ---------------------------------------------
  下層2カラムカード（別デザイン / cate）
--------------------------------------------- */
.c-lowCardsAlt__grid {
  display: flex;
  flex-direction: column;
  gap: var(--s6);
  margin-bottom: 4rem;
}

.c-lowCardsAlt__row.l-grid-3 {
  gap: var(--s6) var(--s7);
  align-items: stretch;
}

.c-lowCardsAlt__item {
  height: 100%;
  padding-top: var(--s3);
  padding-bottom: var(--s3);
  border-top: 0.2rem solid var(--acc-dark);
  display: flex;
  flex-direction: column;
  gap: var(--s2);
  min-height: 0;
}

.c-lowCardsAlt__title {
  margin: 0;
  padding-bottom: var(--s2);
  border-bottom: 0.1rem solid var(--ln-soft);
  display: flex;
  align-items: center;
  color: var(--pri-dark);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.5;
  flex-shrink: 0;
}

.c-lowCardsAlt__item>img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  margin-top: var(--s2);
  flex-shrink: 0;
}

.c-lowCardsAlt__text {
  margin: 0;
  line-height: 2;
  min-height: 0;
  flex: 1 1 auto;
}

.c-lowCardsAlt__btn {
  margin-top: 0;
  padding: 0 var(--s2);
  display: flex;
  justify-content: center;
  flex-shrink: 0;
}

.c-lowCardsAlt__btn .btn-internal {
  width: 100%;
  max-width: 46rem;
  margin: 0 auto;
}

@media screen and (max-width: 768px) {
  .c-lowCardsAlt__btn .btn-internal {
    width: 85%;
  }
}

/* ---------------------------------------------
  ソリューションリスト（cate）
--------------------------------------------- */
.c-solutionList__item {
  padding: var(--s5) 0 var(--s2) var(--s4);
  border-top: 0.1rem solid var(--acc-dark);
  border-left: 0.1rem solid var(--acc-dark);
  background: url("/wp/wp-content/uploads/point_circle.png") no-repeat left top;
  display: grid;
  grid-template-columns: minmax(0, 0.46fr) minmax(0, 1fr);
  gap: var(--s6);
  align-items: start;
  margin-bottom: 3rem;
  border-radius: var(--r-md) 0 0 0;
}

.c-solutionList__left {
  display: grid;
  gap: var(--s4);
}

.c-solutionList__label {
  margin: 0;
  color: var(--acc-dark);
  font-family: "Lato", "Noto Sans JP", sans-serif;
  font-size: var(--fs-s);
  font-weight: 400;
  line-height: 1.4;
}

.c-solutionList__title {
  margin: 0;
  color: var(--pri-dark);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.5;
}

.c-solutionList__right {
  padding: var(--s5) var(--s4);
  background: color-mix(in srgb, var(--c2) 75%, var(--white) 25%);
  display: grid;
  gap: var(--s4);
}
.c-solutionList__right .btn-internal {
  margin-top: 0;
  margin-bottom: 0;
}
.c-solutionList__catch {
  margin: 0;
  color: var(--txt);
  font-size: var(--fs-m);
  font-weight: 700;
  line-height: 1.5;
}

.c-solutionList__text {
  margin: 0;
  line-height: 2;
}

/* ---------------------------------------------
  ステップフロー（cate）
--------------------------------------------- */
.c-stepFlow {
  border: 0.1rem solid var(--bor);
  border-radius: var(--r-md);
  background: var(--white);
  position: relative;
  overflow: hidden;
  box-shadow: 0 var(--s1) calc(var(--s1) * 2.5) calc(var(--s1) * 0.75) rgba(52, 96, 149, 0.1);
}

.c-stepFlow::before {
  content: "";
  width: var(--s10);
  height: 100%;
  background: color-mix(in srgb, var(--sec) 70%, var(--white) 30%);
  position: absolute;
  top: 0;
  left: 0;
}

.c-stepFlow__item {
  padding: var(--s5) var(--s5) 0;
  display: grid;
  grid-template-columns: var(--s10) 1fr;
  gap: var(--s3);
  position: relative;
}

.c-stepFlow__rail {
  width: 100%;
  display: grid;
  justify-items: center;
  align-content: start;
  row-gap: var(--s1);
  position: relative;
}

.c-stepFlow__dot {
  width: var(--s8);
  height: var(--s8);
  display: block;
  overflow: hidden;
}

.c-stepFlow__dot img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.c-stepFlow__arrow {
  width: var(--s3);
  height: var(--s3);
  margin-top: 0;
  border-right: 0.1rem solid var(--pri);
  border-bottom: 0.1rem solid var(--pri);
  display: block;
  transform: rotate(45deg);
}

.c-stepFlow__content {
  padding-bottom: var(--s5);
}

.c-stepFlow__label {
  margin: 0;
  color: var(--acc-dark);
  font-family: "Lato", "Noto Sans JP", sans-serif;
  font-size: var(--fs-s);
  font-weight: 400;
  line-height: 1.4;
}

.c-stepFlow__title {
  margin: var(--s1) 0 0;
  color: var(--pri-dark);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.5;
}

.c-stepFlow__text {
  margin: var(--s3) 0 0;
  line-height: 2;
}

/* ---------------------------------------------
  コメント事例カード（cate）
--------------------------------------------- */
.c-commentCase {
  padding: var(--s5);
  border: 0.1rem solid var(--acc-dark);
  border-radius: var(--r-md);
  background: color-mix(in srgb, var(--c2) 80%, var(--white) 20%);
}

.c-commentCase__meta {
  margin: 0 0 var(--s2);
  padding: 0 var(--s1);
  border-radius: 0.3rem;
  color: var(--white);
  font-size: 1.4rem;
  background: var(--pri-dark);
  display: inline-block;
}

.c-commentCase__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 38%;
  gap: var(--s5);
  align-items: start;
}

#low-page .c-commentCase .c-commentCase__head ul,
.low-page .c-commentCase .c-commentCase__head ul {
  margin-block: 3rem;
}

.c-commentCase__title {
  margin-bottom: 2rem;
  color: var(--pri-dark);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.5;
}

.c-commentCase__thumb {
  width: 100%;
  border-radius: var(--r-sm);
  overflow: hidden;
}

.c-commentCase__thumb img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.c-commentCase__text {
  margin: var(--s4) 0 0;
  line-height: 2;
}

.c-commentCase__cta {
  margin-top: var(--s5);
  padding: var(--s4);
  border-radius: var(--r-md);
  background: var(--acc-dark);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 40rem);
  gap: var(--s4);
  align-items: center;
}

.c-commentCase__ctaLead {
  margin: 0;
  color: var(--white);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.c-commentCase__ctaBtn .btn-web {
  max-width: none;
  margin: 0;
}

.c-commentCase__ctaBtn .btn-web a {
  padding: var(--s3) var(--s5);
  background: var(--white);
  color: var(--acc-dark);
}

.c-commentCase__ctaBtn .btn-web a::after {
  content: none;
  display: none;
}

.c-commentCase__ctaBtn .btn-tel {
  margin: var(--s2) 0 0;
}

/* ---------------------------------------------
  課題コメントカード（cate）
--------------------------------------------- */
.c-issueComment {
  padding: var(--s5);
  border-radius: var(--r-md);
  background: color-mix(in srgb, var(--c2) 80%, var(--white) 20%);
}

.c-issueComment__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 38%;
  gap: var(--s5);
  align-items: start;
}

.c-issueComment__main {
  min-width: 0;
}

.c-issueComment__label {
  margin: 0;
  padding-right: var(--s2);
  color: var(--ln-soft);
  font-family: "Lato", "Noto Sans JP", sans-serif;
  font-size: var(--fs-m);
  font-weight: 400;
  display: flex;
  align-items: center;
  gap: var(--s1);
}

.c-issueComment__label::after {
  content: "";
  flex: 1;
  min-width: var(--s6);
  height: 0.1rem;
  background: var(--ln-soft);
}

.c-issueComment__title {
  margin: var(--s2) 0 0;
  color: var(--pri-dark);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.5;
}

.c-issueComment__main ul {
  margin-top: var(--s3);
}

.c-issueComment__thumb {
  width: 100%;
  border-radius: var(--r-sm);
  overflow: hidden;
}

.c-issueComment__thumb img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.c-issueComment__body {
  margin-top: var(--s4);
  padding: var(--s4);
  border-radius: var(--r-sm);
  background: var(--white);
  line-height: 2;
}

/* ---------------------------------------------
  事例ページ用 会社紹介BOX（cate）
--------------------------------------------- */
.c-companyIntro {
  padding-top: var(--s4);
  border-top: 0.2rem solid var(--acc-dark);
  display: grid;
  grid-template-columns: minmax(0, 0.4fr) minmax(0, 1fr);
  gap: var(--s5);
  align-items: start;
}

.c-companyIntro__left {
  padding-right: var(--s2);
  border-right: 0.1rem solid var(--ln-soft);
}

.c-companyIntro__logo {
  width: 100%;
  max-width: 21rem;
  margin-left: auto;
  margin-right: auto;
}

.c-companyIntro__logo img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.c-companyIntro__name {
  margin: var(--s1) 0 0;
  color: var(--pri-dark);
  font-size: var(--fs-m);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.c-companyIntro__left ul {
  margin-top: var(--s2);
}

.c-companyIntro__right {
  padding-left: var(--s1);
}

.c-companyIntro__catch {
  margin: 0;
  color: var(--pri-dark);
  font-size: var(--fs-m);
  font-weight: 700;
  line-height: 1.5;
}

.c-companyIntro__text {
  margin: var(--s2) 0 0;
  line-height: 2;
}

/* ---------------------------------------------
  事例リンクBOX（cate）
--------------------------------------------- */
.c-caseLinks__grid {
  gap: var(--s6);
  align-items: stretch;
}

.c-caseLinks__item {
  padding: 0 var(--s2);
  position: relative;
}

.c-caseLinks__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(100% + var(--s6) / 2);
  width: 0.1rem;
  transform: translateX(-50%);
  background: var(--ln-soft);
}

.c-caseLinks__cardLink {
  height: 100%;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}

.c-caseLinks__thumb {
  width: 100%;
}

.c-caseLinks__thumb img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.c-caseLinks__title {
  margin: var(--s3) 0 0;
  color: var(--pri-dark);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.5;
}

.c-caseLinks__company {
  width: fit-content;
  margin: var(--s2) 0 0;
  padding: var(--s-2) var(--s1);
  border: 0.1rem solid var(--acc-dark);
  color: var(--acc-dark);
  font-weight: 700;
  border-radius: 0.2rem;
}

.c-caseLinks__cardLink ul {
  margin-top: var(--s2);
}

.c-caseLinks__item .btn-link {
  display: inline-flex;
  align-items: center;
  gap: var(--s1);
  justify-content: flex-end;
  font-weight: 700;
}

.c-caseLinks__item .btn-link::after {
  content: "";
  width: var(--s3);
  height: var(--s3);
  flex-shrink: 0;
  background: url("img/arrow_right.png") no-repeat center / 100% auto;
}

.c-caseLinks__cardLink:hover {
  opacity: 0.85;
}

/* ---------------------------------------------
  下層FAQ（TOPと分離）
--------------------------------------------- */
.c-lowFaq .c-faqSec__inner {
  max-width: none;
  padding: 0;
}

.c-lowFaq .acc-contentsbg-colored {
  margin-top: 0;
}

/* ---------------------------------------------
  サービスリンクカード（cate）
--------------------------------------------- */
.c-serviceLink {
  border-top: 0.2rem solid var(--acc-dark);
}

.c-serviceLink__card {
  padding: var(--s3) 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--s3);
  align-items: start;
  color: inherit;
  text-decoration: none;
}

.c-serviceLink__body {
  min-width: 0;
}

.c-serviceLink__title {
  margin: 0;
  padding-bottom: var(--s2);
  border-bottom: 0.1rem solid var(--ln-soft);
  color: var(--pri-dark);
  font-size: var(--fs-l);
  font-weight: 700;
  line-height: 1.5;
}

.c-serviceLink__text {
  margin: var(--s2) 0 0;
  line-height: 2;
}

.c-serviceLink__icon {
  width: var(--s5);
  height: var(--s5);
  margin-top: 0;
  background: url("img/arrow_right.png") no-repeat center / 100% auto;
  display: block;
}

.c-serviceLink__card:hover {
  opacity: 0.85;
}

.footer-area {
  padding: var(--s8) 0 0;
  background: var(--pri-dark);
  color: var(--white);
}

.footer-main {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--s3) var(--s14);
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: var(--s6) var(--s3) var(--s8);
  box-sizing: content-box;
}

.footer-area-logo img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
}

.footer-main__lead {
  flex: 0 1 auto;
  max-width: min(100%, 26rem);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--s3);
  min-width: 0;
}

.footer-main__nav {
  flex: 1 1 28rem;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s6) var(--s8);
  align-items: start;
}

.footer-main__nav .footer-box+.footer-box {
  margin-top: 0;
}

.footer-main__nav .footer-menu-title__link {
  padding: var(--s1) 0;
  color: var(--white);
}

.footer-main__nav .footer-menu__item {
  width: 100%;
}

.footer-main__lead .footer-disclaimer {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: transparent;
  font-size: var(--fs-s);
  box-sizing: border-box;
}

.footer-disclaimer__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: var(--s3);
  width: 100%;
}

.footer-disclaimer__sns {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--s3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-disclaimer__sns li::before {
  display: none;
}

.footer-disclaimer__sns a {
  display: flex;
  color: var(--white);
  text-decoration: none;
}

.footer-disclaimer__sns a:hover {
  opacity: 0.8;
}

.footer-disclaimer__sns img {
  width: var(--s3);
  max-width: 100%;
  height: auto;
  display: block;
}

.footer-disclaimer__privacyLink {
  color: var(--white);
  text-decoration: none;
}

.footer-disclaimer__privacyLink:hover {
  opacity: 0.8;
}

.footer-disclaimer__legal {
  font-size: 1.4rem;
}

.footer-bottom {
  padding: var(--s2) var(--s2);
  background: var(--pri-dark);
  color: var(--white);
  border-top: 0.1rem solid var(--sec-dark);
}

.footer-bottom__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--s2);
  flex-wrap: wrap;
}

.footer-copyright {
  font-size: 1.2rem;
  text-align: left;
  color: var(--white);
  flex: 1 1 auto;
  min-width: 0;
}

.footer-copyright__link {
  color: var(--white);
}

.footer-sitemap {
  flex-shrink: 0;
  font-size: 1.2rem;
}

/* SP用 */
@media screen and (max-width: 768px) {
  /* （旧）おすすめカード（#recommended）用の調整は削除済み */

  .c-sec--detail .c-card--large {
    padding: var(--s4) var(--s2);
  }

  /* 会社一覧のSP対応 */
  .l-sec:has(.c-company-card) .l-grid-3 {
    display: flex;
    flex-direction: column;
  }

  .c-company-card {
    display: flex !important;
    flex-direction: column;
    grid-row: none;
  }

  /* navigation01 ※TOP、下層共通（SP）：ロゴ＋ハンバーガー1行 */
  .navigation01-menu-area .gnavi-btn {
    width: var(--s7);
    height: var(--s6);
    background: transparent;
    display: block;
    position: relative;
    flex-shrink: 0;
    z-index: 1;
    margin: 0;
    padding: 0;
    border: none;
    cursor: pointer;
    box-sizing: border-box;
  }

  .navigation01-menu-area .gnavi-btn span {
    width: var(--s4);
    height: 0.2rem;
    display: inline-block;
    background: var(--pri-dark);
    position: absolute;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: transform 0.4s, opacity 0.4s;
  }

  .navigation01-menu-area .gnavi-btn span:nth-of-type(1) {
    top: calc(50% - var(--s1));
  }

  .navigation01-menu-area .gnavi-btn span:nth-of-type(2) {
    top: 50%;
  }

  .navigation01-menu-area .gnavi-btn span:nth-of-type(3) {
    top: calc(50% + var(--s1));
  }

  .navigation01-menu-area .gnavi-btn.is-active span:nth-of-type(1) {
    transform: translate(-50%, var(--s1)) rotate(-45deg);
  }

  .navigation01-menu-area .gnavi-btn.is-active span:nth-of-type(2) {
    opacity: 0;
  }

  .navigation01-menu-area .gnavi-btn.is-active span:nth-of-type(3) {
    transform: translate(-50%, calc(var(--s1) * -1)) rotate(45deg);
  }

  .gnavi-btn-close {
    width: 80%;
    margin: 2rem auto;
    padding: var(--s2);
    background: var(--pri-dark);
    font-family: "Lato", "Noto Sans JP", sans-serif;
    display: block;
    text-align: center;
    border-radius: 50vh;
  }

  .gnavi-btn-close__inner {
    padding: 0 0 0 var(--s3);
    display: inline-block;
    font-family: "Lato", "Noto Sans JP", sans-serif;
    color: #fff;
    font-weight: 700;
    position: relative;
  }

  .gnavi-btn-close__inner::before {
    content: "";
    width: 1em;
    height: 0.2rem;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0, -50%) rotate(45deg);
  }

  .gnavi-btn-close__inner::after {
    content: "";
    width: 1em;
    height: 0.2rem;
    background: #fff;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0, -50%) rotate(135deg);
  }

  .gnavi-area {
    width: 100%;
    height: 100vh;
    padding: var(--s3) var(--s1) var(--s10);
    display: block;
    background: var(--acc);
    overflow-x: hidden;
    overflow-y: auto;
    position: fixed;
    top: 0;
    right: 0;
    z-index: 100;
    transform: translateX(100%);
    transition: transform 0.8s ease, opacity 0.8s ease;
    opacity: 0;
  }

  .gnavi-pc {
    display: none;
  }

  .gnavi-list {
    border-bottom: 1px solid var(--bor);
    position: relative;
  }

  .gnavi-list li {
    padding-left: 0;
  }

  .gnavi-list__item::before {
    display: none;
  }

  .gnavi-list__link {
    width: 100%;
    margin: 0 auto;
    padding: var(--s2) var(--s6) var(--s2) var(--s2);
    border-top: 1px solid var(--bor);
    display: block;
    font-weight: 700;
    line-height: 2;
    text-decoration: none;
    position: relative;
  }

  .gnavi-list__link::after {
    content: "";
    width: 0.8rem;
    height: 3rem;
    background: url("img/arrow-s.svg") no-repeat center/100% auto;
    position: absolute;
    top: 50%;
    right: var(--s2);
    transform: translate(0, -50%) rotate(0);
    transition: transform 0.3s;
  }

  .gnavi-list__link--toggle::after {
    width: 1.4rem;
    height: 1.4rem;
    background-image: url("img/arrow-s-down.svg");
  }

  .gnavi-list__link--toggle.is-open::after {
    transform: translate(0, -50%) rotate(180deg);
  }

  .gnavi-list__sub {
    width: 100%;
    background: #fff;
  }

  .gnavi-list__low .gnavi-list__link {
    padding: var(--s2) var(--s4) var(--s2) var(--s4);
  }

  .gnavi-list__low .gnavi-list__link::after {
    content: "└";
    background: none;
    transform: translateY(-50%);
    position: absolute;
    top: 40%;
    left: 1rem;
  }

  .is-gnavi-open .gnavi-area {
    opacity: 1;
    transform: translateX(0);
  }

  /* メニュー展開時：ヘッダーをオーバーレイより手前に（ハンバーガー＝閉じるが同位置で操作可能） */
  .is-gnavi-open .navigation01-menu-area {
    z-index: 110;
  }

  .gnavi-area .l-stack-small {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  /*------------------------------------------
  Global menu settings（SP：グロナビ本文は非表示）
  -------------------------------------------*/
  .navigation01-menu-area {
    display: block;
  }

  .navigation01-menu-area .c-globalNav__right {
    display: none;
  }

  .navigation01-menu-area .c-globalNav__inner {
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--s2);
    padding-top: calc(var(--s2) * 0.8);
    padding-bottom: calc(var(--s2) * 0.8);
  }

  .navigation01-menu-area .c-globalNav__logo {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 30%;
  }

  /* メインビジュアル（MV）SP */
  .mainvisual::after {
    bottom: 44%;
    min-height: 36rem;
  }

  .mv-photo {
    width: 100%;
    max-width: 100%;
    top: var(--s1);
  }

  .mv-photo--1,
  .mv-photo--2,
  .mv-photo--3,
  .mv-photo--4,
  .mv-photo--5 {
    display: none;
  }

  .mv-copy {
    margin-top: -6rem;
    margin-bottom: 3rem;
    padding-top: 0;
  }

  .mv-title__top {
    font-size: var(--fs-l);
  }

  .mv-title__bottom {
    font-size: var(--fs-xl);
  }

  .mv-lead {
    margin-bottom: var(--s5);
  }

  .mv-cta__link {
    padding: var(--s2) var(--s9) var(--s2) var(--s5);
  }

  /* セクション01：What is Pexip?（SP） */
  .c-pexipIntro__inner {
    padding: 0 var(--s2);
  }

  .c-pexipIntro__vertical {
    display: none;
  }

  .c-pexipIntro__grid {
    grid-template-columns: 1fr;
    gap: var(--s6);
  }

  .c-pexipIntro__copy {
    margin-left: 0;
    max-width: none;
  }

  .c-pexipIntro__title {
    text-align: left;
    font-size: 2.3rem;
  }

  .c-pexipDiagram {
    min-height: auto;
  }

  .c-pexipDiagram__center {
    position: static;
    transform: none;
    margin: 0 auto var(--s4);
  }

  .c-pexipDiagram__item {
    position: static;
    width: 100%;
  }

  .c-pexipDiagram__item::before {
    display: none;
  }

  .c-pexipDiagram__items {
    display: grid;
    gap: var(--s3);
  }

  .c-pexipDiagram__bubble {
    border-radius: var(--r-lg);
    padding: var(--s3);
  }

  /* sec02-03 背景シームレス（SP） */
  .c-seamlessWrap--sec02to03 {
    background-image: url("img/sec02_bg.png"), url("img/sec03_bg.png");
    background-repeat: no-repeat, no-repeat;
    background-position: center top, center bottom;
    background-size: 140%, 390%;
  }

  /* sec02 Features（SP） */
  .c-features__inner {
    padding-top: var(--s5);
    padding-bottom: var(--s1);
  }

  .c-features__grid {
    grid-template-columns: 1fr;
    gap: var(--s7);
  }

  .c-featureItem img {
    width: 100%;
    max-width: 100%;
  }

  .c-featureItem__text {
    text-align: left;
  }

  /* sec03 Product list（SP） */
  .c-productList__inner {
    padding-top: 0;
    padding-bottom: var(--s5);
    display: block;
  }

  .c-productList__head {
    position: static;
    top: auto;
  }

  .c-productRow {
    gap: var(--s3);
    align-items: start;
  }

  .c-productRow__tag {
    font-size: 1.3rem;
  }

  .c-productRow__descGroup {
    display: block;
  }

  .c-productRow__descMedia {
    width: 100%;
    max-width: 100%;
  }

  .c-productRow__nameLink {
    padding: var(--s3) var(--s6) var(--s3) 0;
    flex-direction: column;
    align-items: flex-start;
  }

  .c-productRow__nameLink::after {
    width: var(--s3);
    height: var(--s3);
  }

  .c-productList__cta {
    justify-content: center;
  }

  .c-productList__ctaLink {
    width: 80%;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    display: block;
  }

  .c-issueSearch__cta,
  .c-case__cta,
  .c-techReq__cta,
  .c-faqSec__cta {
    width: 80%;
    margin-left: auto;
    margin-right: auto;
  }

  /* sec04 Search by Issue（SP） */
  .c-issueSearchWrap__container {
    padding-top: var(--s5);
    padding-bottom: var(--s5);
  }

  .c-issueSearch {
    padding: var(--s7) var(--s3) var(--s4);
    background-size: 65%, 65%;
  }

  .c-issueSearch__head {
    margin-bottom: var(--s5);
  }

  .c-issueSearch__lead {
    text-align: left;
  }

  .c-issueGrid {
    grid-template-columns: 1fr;
  }

  .c-issueCard__head {
    grid-template-columns: 1fr 11.8rem;
  }

  .c-issueCard__head img {
    width: 11.8rem;
    max-width: 100%;
  }

  .c-issueCard__title {
    font-size: var(--fs-m);
  }

  .c-issueSearch__cta a {
    width: 100%;
    min-width: 0;
  }

  /* sec05 Case（SP） */
  .c-case__inner {
    padding-top: var(--s5);
  }

  .c-caseGrid {
    grid-template-columns: 1fr;
    gap: var(--s7);
  }

  .c-caseCard::after {
    display: none;
  }

  .c-caseLogos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--s3);
  }

  .c-case__cta a {
    width: 100%;
    min-width: 0;
  }

  /* sec06 Technical Requirements（SP） */
  .c-techReq__inner {
    padding-top: var(--s5);
    padding-bottom: var(--s5);
  }

  .c-techReq__grid {
    grid-template-columns: 1fr;
    gap: var(--s7);
  }

  .c-techReq__left {
    max-width: none;
    position: static;
    top: auto;
  }

  .c-techReq__cta a {
    width: 100%;
  }

  .c-techReqCard {
    padding: var(--s4) var(--s3);
  }

  /* sec07 FAQ（SP） */
  .c-faqSec__inner {
    padding-top: var(--s5);
    padding-bottom: var(--s5);
  }

  .acc-title {
    padding: var(--s2) var(--s6) var(--s2) var(--s9);
    font-size: var(--fs-m);
  }

  .faq-q {
    background-position: left var(--s2) center;
    background-size: var(--s5) auto;
  }

  .acc-content {
    padding: var(--s2) var(--s6) var(--s2) var(--s9);
  }

  .faq-a {
    background-position: left var(--s2) top var(--s2);
    background-size: var(--s5) auto;
  }

  .acc-content dt {
    font-size: var(--fs-s);
  }

  .acc-content dd {
    font-size: var(--fs-s);
  }

  .c-faqSec__cta a {
    width: 100%;
    min-width: 0;
  }

  .c-lowCards__grid {
    gap: var(--s7);
  }

  .c-lowCards__row {
    grid-template-rows: none;
  }

  .c-lowCards__row .c-lowCards__item {
    display: flex;
    flex-direction: column;
    gap: var(--s2);
    height: auto;
    min-height: 0;
  }

  .c-lowCards__title {
    justify-content: flex-start;
    text-align: left;
    font-size: var(--fs-l);
    min-height: unset;
    align-items: flex-start;
  }

  .c-lowCards__title::after {
    margin: var(--s2) 0 0;
  }

  .c-lowIssue {
    padding: var(--s4) var(--s3);
    border-radius: var(--r-md);
  }

  .c-lowIssue__title {
    font-size: var(--fs-l);
  }

  .c-lowCardsAlt__grid {
    gap: var(--s7);
  }

  .c-lowCardsAlt__row {
    grid-template-rows: none;
  }

  .c-lowCardsAlt__row .c-lowCardsAlt__item {
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 0;
  }

  .c-lowCardsAlt__title {
    font-size: var(--fs-l);
    min-height: unset;
    align-items: flex-start;
  }

  .c-solutionList__item {
    grid-template-columns: 1fr;
    gap: var(--s3);
    padding: var(--s4) 0 var(--s4) var(--s2);
  }

  .c-solutionList__left {
    gap: var(--s2);
  }

  .c-solutionList__title {
    font-size: var(--fs-l);
  }

  .c-solutionList__catch {
    font-size: var(--fs-m);
  }

  .c-solutionList__right {
    padding: 0;
    background: none;
    gap: var(--s3);
  }

  .c-stepFlow {
    width: 100%;
    margin: 0 auto;
  }

  .c-stepFlow::before {
    width: 13%;
  }

  .c-stepFlow__item {
    padding: var(--s4) var(--s3) 0;
    grid-template-columns: var(--s7) 1fr;
    gap: var(--s2);
  }

  .c-stepFlow__dot {
    width: var(--s6);
    height: var(--s6);
  }

  .c-stepFlow__content {
    padding-bottom: var(--s4);
  }

  .c-stepFlow__title {
    font-size: var(--fs-l);
  }

  .c-commentCase {
    padding: var(--s4) var(--s3);
  }

  .c-commentCase__head {
    margin-top: var(--s2);
    grid-template-columns: 1fr;
    gap: var(--s3);
  }

  #low-page .c-commentCase .c-commentCase__head ul,
  .low-page .c-commentCase .c-commentCase__head ul {
    margin-block: 1rem;
  }

  .c-commentCase__thumb {
    width: 100%;
  }

  .c-commentCase__cta {
    grid-template-columns: 1fr;
    gap: var(--s3);
    padding: var(--s3);
  }

  .c-commentCase__ctaLead {
    font-size: var(--fs-l);
  }

  .c-commentCase__ctaBtn {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }

  .c-issueComment {
    padding: var(--s4) var(--s3);
  }

  .c-issueComment__head {
    grid-template-columns: 1fr;
    gap: var(--s3);
  }

  .c-issueComment__title {
    font-size: var(--fs-l);
  }

  .c-issueComment__thumb {
    width: 100%;
  }

  .c-issueComment__body {
    margin-top: var(--s3);
    padding: var(--s3);
  }

  .c-companyIntro {
    grid-template-columns: 1fr;
    gap: var(--s3);
  }

  .c-companyIntro__left {
    padding-right: 0;
    padding-bottom: var(--s3);
    border-right: none;
    border-bottom: 0.1rem solid var(--ln-soft);
  }

  .c-companyIntro__logo {
    max-width: 18rem;
  }

  .c-companyIntro__name {
    font-size: var(--fs-l);
  }

  .c-companyIntro__right {
    padding-left: 0;
  }

  .c-companyIntro__catch {
    font-size: var(--fs-m);
  }

  .c-caseLinks__grid {
    gap: var(--s5);
  }

  .c-caseLinks__item {
    padding: 0;
    border-bottom: 0.1rem solid var(--ln-soft);
  }

  .c-caseLinks__item:not(:last-child)::after {
    display: none;
  }

  .c-caseLinks__item:last-child {
    border-bottom: none;
  }

  .c-caseLinks__title {
    font-size: var(--fs-l);
  }

  .c-serviceLink__card {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--s2);
  }

  .c-serviceLink__title {
    font-size: var(--fs-l);
  }

  .c-serviceLink__icon {
    width: var(--s4);
    height: var(--s4);
  }

  /* フッター（pexip・SP） */
  .footer-main {
    flex-direction: column;
    align-items: stretch;
    gap: var(--s3) var(--s14);
    padding: 0 var(--s3) var(--s8);
  }

  .footer-main__lead {
    max-width: none;
    width: 100%;
    align-items: center;
  }

  .footer-menu {
    background: #1a3358;
  }

  .footer-main__nav {
    grid-template-columns: 1fr;
    flex: 1 1 auto;
    width: 100%;
    gap: var(--s1) var(--s6);
  }

  .footer-main__nav .footer-menu-title__link {
    padding: var(--s1) var(--s5) var(--s2) 0;
  }

  /* common.css の SP で非表示になるサイトマップを表示 */
  .footer-sitemap {
    display: block;
    text-align: center;
  }

  .footer-bottom__inner {
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: var(--s3);
    text-align: center;
  }

  .footer-copyright {
    width: 100%;
    text-align: center;
  }

  .footer-main__lead .footer-disclaimer {
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .footer-disclaimer__inner {
    flex-direction: column;
    align-items: center;
    gap: var(--s3);
  }

  .footer-disclaimer__sns {
    width: 100%;
    justify-content: center;
    flex-wrap: nowrap;
    gap: var(--s3);
  }

  .footer-disclaimer__legal {
    align-self: center;
    text-align: center;
  }

  .l-sec {
    padding: var(--s8) 0;
  }

  .c-lowCards,
  .c-lowIssueSec,
  .c-lowCardsAltSec,
  .c-solutionListSec,
  .c-stepFlowSec,
  .c-commentCaseSec,
  .c-issueCommentSec,
  .c-companyIntroSec,
  .c-caseLinksSec,
  .c-lowFaq,
  .c-faqSec.c-lowFaq,
  .c-serviceLinkSec {
    padding-block: var(--s3);
  }

  .c-secCta__cards {
    grid-template-columns: 1fr;
    margin-top: var(--s6);
  }

  .c-ctaCard {
    padding: var(--s5) var(--s4);
  }

  .c-ctaCard--tel {
    cursor: pointer;
  }

  .c-ctaCard__telBlock {
    width: 100%;
    max-width: 100%;
    padding: var(--s3) var(--s5);
    border: 0.1rem solid var(--bor);
    border-radius: 50vh;
    box-sizing: border-box;
    background: var(--white);
    box-shadow: var(--sd-1);
  }
}

.c-templateAnchorNav ul {
  margin: 0;
  padding: 1rem;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid var(--bor);
  border-bottom: 1px solid var(--bor);
}

.c-templateAnchorNav li {
  flex: 1 1 0;
  padding-left: 0;
  position: relative;
}

.c-templateAnchorNav ul:not([class]) li {
  padding-left: 0;
  margin-bottom: 0;
}

.c-templateAnchorNav li::before {
  display: none;
}

.c-templateAnchorNav li+li {
  border-left: none;
}

.c-templateAnchorNav li+li::after {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0.1rem;
  height: 40%;
  background: var(--bor);
  transform: translateY(-50%);
}

.c-templateAnchorNav a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: var(--s2);
  padding: var(--s2) var(--s3);
  color: var(--pri-dark);
  font-size: var(--fs-s);
  font-weight: 700;
  text-decoration: none;
  line-height: 1.4;
}

.c-templateAnchorNav a::after {
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  border-right: 0.1rem solid var(--pri);
  border-bottom: 0.1rem solid var(--pri);
  transform: translateY(-0.1rem) rotate(45deg);
}

@media screen and (max-width: 768px) {
  .c-templateAnchorNav ul {
    padding: 1rem 0;
  }

  .c-templateAnchorNav li {
    flex: 0 0 33.333%;
    max-width: 33.333%;
  }

  .c-templateAnchorNav li+li::after {
    display: none;
  }

  .c-templateAnchorNav li:nth-child(3n+2)::after,
  .c-templateAnchorNav li:nth-child(3n+3)::after {
    display: block;
  }

  .c-templateAnchorNav a {
    padding: var(--s2) var(--s1);
    font-size: 1.3rem;
  }
	  .contents-area--lower {
    background-position: center top 4rem, center top;
  }
	.c-secCta .c-secCta__title {
    font-size: var(--fs-l);
}
}