@charset "UTF-8";
/*
p-xxx  // Project（ページ固有）
c-xxx  // Component（再利用）
l-xxx  // Layout（構造）
u-xxx  // Utility（単機能）
*/
:root {
  /* フォントサイズ */
  --fz-xs: clamp(12px, 1.5vw, 14px);
  --fz-sm: clamp(14px, 2vw, 16px);
  --fz-md: clamp(16px, 2.5vw, 18px);
  --fz-lg: clamp(20px, 3vw, 24px);
  --fz-xl: clamp(24px, 4vw, 32px);
  --fz-xxl: clamp(28px, 5vw, 40px);

/* 基本カラー */
  --color-primary: #346599;
  --color-accent: #FFFF00;
  --color-b500: #447DB3;
  --color-b400: #689AC8;
  --color-b800: #264466;
  --color-b100: #E7EEF7;

  /* テキスト */
  --color-tx-main: #333;
  --color-tx-b700: #2A507A;
  --color-tx-b200: #CBDBEC;

  /* 背景 */
  --color-bg-main: #fff;
  --color-bg-gray: #f5f5f5;
  --color-bg-b50: #F4F7FB;

  /* ボーダー */
  --color-bdr-gray: #808080;
  --color-bdr-b300: #9DBDDC;
  /* マージン */
  --space-xs: clamp(10px, calc(0.94vw + 6.5px), 20px);
  --space-sm: clamp(15px, calc(1.41vw + 9.7px), 30px);
  --space-md: clamp(30px, calc(2.82vw + 19.4px), 60px);
  --space-lg: clamp(60px, calc(5.63vw + 38.9px), 120px);
}

body {
  font-size: var(--fz-md);
  position: relative;
  background-color: #fff;
}

.l-container {
  width: min(100% - 32px, 1080px);
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.l-container__l {
  width: min(100% - 32px, 1080px);
  margin-inline: auto;
}
.l-container__s {
  width: 895px;
  width: min( 100% - 32px, 895px );
  margin-inline: auto;
}
@media (max-width: 767px) {
  .l-container__s {
    width: 100%;
  }
}
.l-container__m {
  width: min(100% - 32px, 974px);
  margin-inline: auto;
}
.l-container__full {
  width: 100%;
}
.p-nav {
  height: 70px;
  width: 100%;
  background-color: #ffffffe6;
  position: fixed;
  z-index: 9999;
}
/* スクロールされるヘッダー */
.p-nav.static {
  position: static;
}
@media (max-width: 767px) {
.p-nav {
  height: 55px;
}
.p-nLogo {
  display: flex;
  align-items: center;
}
.p-nLogo__img {
  height: 40px;
  width: auto;
}
}
.l-container__nav {
  /* width: calc(100% - 32px); */
  width: min(100% - 16px, 1080px);
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media (max-width: 767px) {
  .l-container__nav {
    max-width: 1080px;
  width: calc( 100% - 16px );
margin-left: auto;
margin-right: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
} 
}
.p-nLogo__tx {font-size: 10px;}
@media (max-width: 900px) {
  .p-nLogo__tx {
    display: none;
  }
}
.p-utility {
  /* width: 380px; */
  width: auto;
  margin: 0;
  padding: 10px 0;
  display: grid;
  grid-template-columns: 1fr 187px 187px;
  gap: 12px;
  align-items: center;
}
@media (min-width: 768px) and (max-width: 900px) {
  .p-utility {
  grid-template-columns: 1fr 160px 160px;

  }
}
.p-u__phone {
  padding-left: 26px;
  background: url(../img/common/icon-freedial.svg) 0 5px no-repeat;
  display: inline-flex;
  flex-direction: column;
}
.p-u__tel {
  font-size: 20px;
  font-weight: 700;
  line-height: 100%;
  white-space: nowrap;
  letter-spacing: 0;
}
.p-u__time {
  margin-top: 0.5em;
  font-size: 10px;
  line-height: 100%;

}
.p-u__button a {
  position: relative;
  display: flex;
  /* display: inline-block; */
  align-items: center;
  justify-content: center;
  width: 187px;
  width: 100%;
  height: 50px;
  font-size: 14px;
  line-height: 1.3;
  color: var(--color-primary);
  border: 1px solid var(--color-primary);
  text-align: center;
  font-weight: 700;
  background: #fff;

}
.p-u__button.reverse a {
    color: #fff;
    background: var(--color-tx-b700);
}
  .p-u__button a span {
  display: inline-block;
  }

.p-u__button a::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 9px;
  width: 10px;
  height: 10px;
  border-top: 1px solid var(--color-tx-b700);   /* 上の線 */
  border-right: 1px solid var(--color-tx-b700); /* 右の線 */
  transform: translateY(-50%) rotate(45deg); /* 135度回して「下矢印」にする */
}
.p-u__button.reverse a::after {
  border-top: 1px solid #fff;   /* 上の線 */
  border-right: 1px solid #fff; /* 右の線 */
}
.p-utility__sp {
  display: none;
}
@media (max-width: 767px) {
  .p-utility__sp {
    width: 116px;
    width: auto;
    display: flex;
    align-items: center;
    padding-top: 5px;
    gap: 6px;
    justify-content: flex-end;
  }
  a.p-u__button_icon,
  a.p-u__tel_sp {
    display: inline-block;
    border: 1px solid var(--color-primary);
    width: 55px;
    height: 45px;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--color-primary);
  }
   a.p-u__button_icon.reverse {
    background: var(--color-tx-b700);
    color: #fff;
   }

.material-symbols-outlined {
  font-variation-settings:
  'FILL' 0,
  'wght' 400,
  'GRAD' 0,
  'opsz' 24
}

}
.p-hero {
  width: 100%;
  /* height: 900px; */
  background: url(../img/top/kv-bg-metal.webp)  center center no-repeat;
  background-size: cover;
}
.p-herobox {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.p-hero__headimg {display: none;}
@media (max-width: 767px) {
  .p-herobox {
    flex-direction: column;
  }
  .p-hero__headimg {
    display: block; 
    width: 100%;
    height: 145px;
    background: url(../img/top/hero-header-sp.webp) center center no-repeat;
    background-size: cover;
  }
}
.p-hero__copy h1 {
  font-size: 64px;
  white-space: nowrap;
  /* font-size: var(clamp(33px, 6vw, 64px)); */
  margin-top: 70px;
}
.p-hero__copy h1 .u-smaller {
  font-size: .9em;
}
.p-hero__copy > h1 > span > span.dot {
  display: inline-block;
  position: relative;
}
.p-hero__copy > h1 > span > span.dot::after {
  position: absolute;
  content: '';
  width: 10px;
  height: 10px;
  border-radius: 5px;
  background: #333;
  top: -15px;
  left: 50%;
  transform: translateX(-50%);
}

.p-hero__copy > h3 {
  font-size: 28px;
  color: var(--color-b800);
}
.p-hero__copy > h4 {
  font-size: 24px;
  color: #1F67B7;
  padding-bottom: 0.1em;
  & span {border-bottom: 1px solid #1F67B7;}
}

@media (min-width: 768px) {
.p-hero__img picture img{
  transform: translateX(60px);
  max-height: 900px;
}
}

@media (max-width: 1100px) {
.p-hero__copy h1 {
  font-size: 50px;

}
}
@media (max-width: 960px) {
.p-hero__copy h1 {
  font-size: 38px;
  white-space: normal;
}
.p-hero__copy > h3 {
  font-size: 24px;
}
.p-hero__copy > h4 {
  font-size: 20px;
}
}
@media (max-width: 767px) {
.p-hero__copy h1 {
  font-size: 33px;
  white-space: normal;
  margin-top: 30px;

}
.p-hero__copy > h3 {
  font-size: 20px;
}
.p-hero__copy > h4 {
  font-size: 16px;
}
.p-hero__copy > h1 > span > span.dot::after {
  width: 8px;
  height: 8px;
  border-radius: 4px;
  top: -10px;
}
.p-hero__img {
  width: calc( 100% + 32px );
  margin-right: -16px;
  margin-left: -16px;
}
.p-hero__img picture img {
  margin-top: 30px;
  width: 100%;
  height: auto;
}
.p-hero__award img {
  max-width: 300px;

}
}
.p-strength {
  width: 100%;
  /* height: 280px; */
  padding-top: 30px; /* 2026.05.25. 60pxから変更 */
}
.p-strength .l-container__s {
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (max-width: 767px) {
  .strength-img-sp {
    width: 100%;
    height: auto;
    max-width: none;
    max-width: 600px !important;
  }
}

.p-cases {
  width: 100%;
  position: relative;
  background: url(../img/top/cases-bg.webp) center bottom no-repeat;
  background-size: contain;
  padding-top:  120px;
}
@media (max-width: 767px) {
  .p-cases {
    padding-top: 97px;
  margin-top: 30px;

  }
}
.p-case_ttl {
  position: absolute;
  display: flex;
  flex-direction: column;
  top: -50px;
  left: 50%;
  transform: translateX(-50%);

}
.p-case_ttl_ja {
  white-space: nowrap;
}
.p-case_ttl_en {
  font-size: 64px;
  color: var(--color-tx-b700);
}
@media (max-width: 767px) {
.p-case_ttl_en {
  font-size: 61px;
}
}
.p-case_itembox {
  padding: 60px 94px 0;
  position: relative;
}
@media (max-width: 767px) {
  .p-case_itembox {
  padding: 30px 20px 0;
  }
}
@media (max-width: 767px) {
.p-case__itemcontainer {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

}

.p-case_item {
  display: grid;
  grid-template-columns: 134px auto 186px;
  gap: 20px;
  align-items: center;
  border-bottom: 1px solid var(--color-bdr-gray);
  padding-top: 20px;
  padding-bottom: 20px;
  text-align: left;
}
@media (max-width: 767px) {
  .p-case_item {
    grid-template-columns: 1fr; /* ← 縦積み */
    align-items: start;
    justify-content: center;
    gap: 10px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .p-case__addborder {
  border-top: 1px solid var(--color-bdr-gray);
}
}

.p-case_num {
  color: var(--300, #9DBDDC);
  text-align: center;
  font-family: "Lato", sans-serif;
  font-size: 94px;
  font-style: italic;
  font-weight: 700;
  line-height: 130%; /* 124.8px */
}
@media (max-width: 767px) {
  .p-case_num {
  font-size: 48px;
  }
}
.p-case_numttl {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  & > span {
    display: block;
  }
}
.p-case_numttl_l {
  font-size: 28px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0;
}
@media (max-width: 767px) {
  .p-case_numttl {
    justify-content: center;
    text-align: center;
  }
  .p-case_numttl_l {
  font-size: 18px;
  line-height: 1.5;
  text-align: center;
  }
  .p-case_numttl_s {
  line-height: 1.5;
  text-align: center;
  }
}
@media (min-width: 768px) {
  .p-issues__man img {
  max-width: 640px;
}
}
@media (max-width: 767px) {
  .p-issues__man img {
  max-width: 400px;
}
}

.p-issues__list {
  background: #fff;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--color-bdr-gray);

}
.p-issues__list li {
  padding: 1em 1em 1em 3em;
  border-bottom: 1px solid var(--color-bdr-gray);
  position: relative;
}
@media (max-width: 767px) {
  .p-issues__list li {
  padding: 1em 0.9em 1em 2.8em;
  }
}
.p-issues__list li::before {
  position: absolute;
  content: '';
  background: url(../img/top/issues-checkmark.svg) no-repeat;
  width: 25px;
  height: 21px;
  left: 1em;
  top: 1.2em;
}
@media (max-width: 767px) {
.p-issues__list li::before {
  left: 0.8em;
}
}
.p-issues__copy {
  font-size: var(--fz-lg);
  font-weight: 700;
  background: url(../img/top/issues-triangle.svg) center center no-repeat;
}
@media (max-width: 767px) {
  .p-features__left {
    position: relative;
  }
  .p-features__left::after {
    position: absolute;
    content: '';
    background: url(../img/top/features-x.svg) center center no-repeat;
    width: 46px;
    height: 47px;
    bottom: -60px;
    left: 50%;
    transform: translateX(-50%);
  }
}
.p-features__box {
  width: 100%;
  padding: 60px 0;
  background: rgba(170, 170, 170, 0.60) url(../img/top/features-bg.webp) center center no-repeat;
  background-size: cover;
}
.p-features__calculation {
  background: #fff;
  padding: 36px 45px;
}
@media (max-width: 767px) {
  .p-features__box {
  padding: 0 0 16px;
  }
.p-features__calculation {
  display: none;
}
}
.p-features__2col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
@media (max-width: 767px) {
  .p-features__2col {
    display: grid;
    grid-template-columns: 1fr;
    gap: 60px;
  }
  .p-features__brands img {
    width: 100%;
    max-width: 400px;
  }
}


.p-solutionbox:not(:last-child) {
  margin-bottom: var(--space-md);
}
@media (max-width: 767px) {
  .p-solutionbox:not(:last-child) {
  margin-bottom: 10px;
  }
}
.p-solutionbox__ttl {
  font-weight: 700;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.p-solutionbox__ttl span {
  display: block;
}
.p-solutionbox__ttl_no {
  color: var(--color-b500);
  font-family: "Lato", sans-serif;
  font-style: italic;
  font-size: var(--fz-md);
}
.p-solutionbox__ttl_sub {
  color: var(--color-b500);
  font-size: var(--fz-md);
}
.p-solutionbox__ttl_main {
  font-size: 28px;
  color: var(--color-tx-b700);
  padding-bottom: .4em;
}
@media (max-width: 767px) {
.p-solutionbox__ttl_main {
font-size: 22px;
}
}
@media (max-width: 767px) {
.p-solbox__wrapper {
  overflow-x: auto;
}
.p-solbox__wrapper::-webkit-scrollbar {
  height: 8px;
}
}
.p-solutionbox__content {
  width: 100%;
  border-top: 1px solid var(--color-tx-b700);
  border-bottom: 1px solid var(--color-tx-b700);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
}
@media (max-width: 767px) {
  .p-solutionbox__content {
    width: 600px;
  }
}
.p-solutionbox__before {
  background: var(--color-bg-gray);
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 15px;
  align-items: flex-start;
}
@media (max-width: 767px) {
  .p-solutionbox__before {
    padding: 20px;
    gap: 10px;
  }
}
.p-solutionbox__after {
  background: #fff;
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 15px;
  align-items: flex-start;
}
@media (max-width: 767px) {
  .p-solutionbox__after {
    padding: 20px;
    gap: 10px;
  }
}
.c-boxTitle__gray {
  display: inline-block;
  background: #fff;
  border: 1px solid var(--color-bdr-gray);
  padding: 0 .5em;
}
.c-boxTitle__blue {
  display: inline-block;
  background: #fff;
  border: 2px solid var(--color-primary);
  padding: 0 .5em;
}
.p-products {
  padding-bottom: 0;
}
.p-products.sample {
  padding-top: var(--space-sm);
  padding-bottom: var(--space-lg);
}

.p-products__item {
  font-size: var(--fz-xs);
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: var(--space-sm);
}
.p-products__item img {
  display: block;
  width: 100%;
  max-width: 700px;
  height: auto;
}

.c-label__products {
  display: inline-block;
  padding: 0 .5em;
  background-color: #346599;
  color: #fff;
  margin-bottom: .25em;
}
.c-label__products.gold {background-color: #C8AE58;}
.c-label__products.platinum {background-color: #ADAAA9;}

.p-products__image1 {
  width: 100%;
  height: 200px;
  background: url(../img/top/products-image1.webp) center center no-repeat;
  background-size: cover;
}

.p-voices__items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  align-items: start;
  gap: 40px;
}
@media (max-width: 767px) {
.p-voices__items {
  grid-template-columns: 1fr;
  gap: 20px;
}
}
.p-voices__item {
  padding: 50px;
  background: #fff;
  border: 1px solid #9DBDDC;
  box-shadow: 0 4px 16px 0 rgba(52, 101, 153, 0.10);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 15px;
  & h3 {
    font-size: var(--fz-lg);
    color: var(--color-tx-b700);
    text-wrap: initial;
  }
  & h5 {
    font-size: var(--fz-xs);
    color: var(--color-b500);
  }
  & p {
    font-size: var(--fz-sm);
  }
}
@media (max-width: 767px) {
  .p-voices__item {
    padding: 25px;
  }
  .p-voice__icon img {
    width: 80px;
  }
}
.js-card-swiper {
  width: 100%;
  padding-bottom: 0;
}

.js-card-swiper .swiper-slide {
  height: auto;
}
.js-card-swiper .swiper-button-prev,
.js-card-swiper .swiper-button-next {
  color: #666;
  background-color: #ffffff99;
  width: 40px;
  height: 40px;
  padding: 4px;
}
.js-card-swiper .swiper-pagination {
  position: static;
  margin-top: -10px;
}

.c-flowcard {
  display: flex;
  flex-direction: column;
  gap: 15px;
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
  background-color: #fff;
  /* border: 1px solid var(--color-bdr-b300, #ddd); */
  /* border-radius: 8px; */
}

.c-flowcard__img {
  display: block;
  width: 100%;
  max-width: 700px;
  height: auto;
}

.c-flowcard__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.c-flowcard__step {
  margin: 0;
  font-family: "Lato", sans-serif;
  font-style: italic;
  color: var(--color-tx-b700);
}

.c-flowcard__text {
  margin: 0;
  font-size: var(--fz-sm);
  line-height: 1.6;
}

/* 768px以上ではSwiperを止めて3カラム表示 */
@media (min-width: 768px) {
  .js-card-swiper {
    padding-bottom: 0;
  }

  .js-card-swiper .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    transform: none !important;
  }

  .js-card-swiper .swiper-slide {
    width: auto !important;
    margin-right: 0 !important;
  }

  .js-card-swiper .swiper-pagination,
  .js-card-swiper .swiper-button-prev,
  .js-card-swiper .swiper-button-next {
    display: none;
  }
}

.p-flow__people {
  max-width: 966px;
}





.p-company {
  padding-top: 0;
}
.p-company__logo {
  width: 700px;
  width: min(100% - 32px, 700px);
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-right: auto;
  margin-left: auto;
}
@media (max-width: 767px) {
  .p-company__copy {
    padding-right: 16px;
    padding-left: 16px;
  }
  .p-company__logo {
    padding-right: 16px;
    padding-left: 16px;
  }
}
.p-company__link a:link {
  text-decoration: underline;
  color: var(--color-primary);
}
@media (max-width: 767px) {
.p-company__link {
    padding-right: 16px;
    padding-left: 16px;
}
}
.footer {
  width: 100%;
  height: 60px;
  display: flex;
  justify-content: left;
  align-items: center;
  background: var(--color-primary);
  color: var(--color-tx-b200);
  font-size: var(--fz-xs);
}
.body__thanks {
  position: relative;
  height: 100%;
}
.d-footer__thanks {
  position: absolute;
  bottom: 0;

}

.c-cta {
  padding-top: 60px;
  padding-bottom: 0;
  position: relative;
  overflow: hidden;
  z-index: 0;
}
@media (max-width: 767px) {
  .c-cta {
  padding: 50px 16px 0;
  }
}
.c-cta::after {
  position: absolute;
  content: "CAMPAIGN";
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 260px;
  font-weight: 700;
  color: var(--color-b500);
  line-height: 1;
  pointer-events: none;
  z-index: -1;
}
@media (max-width: 767px) {
  .c-cta::after {
    font-size: 80px;
    bottom: -5px;
  }
}
.c-cta__nails {
  position: relative;
}
.c-cta__nails .screw {
  position: absolute;


}
.s1 { width: 102px; height: 102px; top: -10px; left: -40px; }
.s2 { 
  top: 100px; left: 0; ; 
  width: 100px;
height: 100px;
aspect-ratio: 1/1;
}
.s3 { top: -20px; right: -100px; 
  width: 122px;
height: 122px;
aspect-ratio: 1/1;

}
.s4 { top: 20px; right: 20px; 
width: 100px;
height: 100px;
aspect-ratio: 1/1;
}
.s5 { bottom: 0; right: -50px; 
width: 80.805px;
height: 80.805px;
transform: rotate(0deg);
aspect-ratio: 1/1;
}
@media (max-width: 767px) {
  .s1, .s3, .s5 {
    display: none;
  }
  .s2 {bottom: -30px; left: -70px; width: 80px; height: auto;}
  .s4 {top: -50px; right: -60px; width: 80px; height: auto; transform: rotate(0deg);}
}
/* @keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
} */

/* .screw {
  animation: spin 2s linear infinite;
}
.s1 { animation: spin 3s linear infinite; }
.s2 { animation: spin 5s linear infinite reverse; }
.s3 { animation: spin 4s linear infinite; }
.s4 { animation: spin 6s linear infinite reverse; }
.s5 { animation: spin 3.5s linear infinite; } */

.c-cta_ttl > span {
  display: inline-flex;
  font-size: var(--fz-xl);
  color: var(--color-accent);
  align-items: center;
  gap: clamp(8px, 2vw, 24px);
  font-size: clamp(24px, 4vw, 32px);
  font-weight: 700;
  line-height: 1.4;
}
.c-cta_ttl > span::before,
.c-cta_ttl > span::after {
  content: "";
  display: block;
  width: 1px;
  height: clamp(16px, 3vw, 32px);
  background-color: var(--color-accent);
}
@media (max-width: 767px) {
  .c-cta_ttl > span {
    gap: 20px;
  }
  .c-cta_ttl > span::before,
  .c-cta_ttl > span::after {
    height: 32px;
    bottom: 0;
  }
}
.c-cta_ttl > span::before {
  transform: rotate(-40deg);
}
.c-cta_ttl > span::after {
  transform: rotate(40deg);
}
.c-cta_limit {
  font-size: 20px;
  font-weight: 700;
}
@media (max-width: 767px) {
.c-cta_limit {
  font-size: 18px;
}
}

.c-cta_telbox {
  width: 630px;
  width: 700px;
  margin:10px auto 0;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 80px;
  align-self: self-end;
  align-items: center;
  z-index: 2;
}
.c-cta_telbox > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  line-height: 1.4;
  gap: 0;
}
@media (max-width: 767px) {
  .c-cta_telbox {
    width: 100%;
    max-width: 500px;
    margin: 10px auto 0;
    grid-template-columns: 110px 1fr;
    gap: 0;
  }
  .c-cta__woman {
    margin-left: -16px;
    min-width: 140px;
  }
}
.c-ctatel__tx {
  text-align: left;
  line-height: 1;
}
@media (max-width: 767px) {
  .c-ctatel__tx {
    font-size: 14px;
  }
}
.c-cta-phone {
  font-family: "Lato", sans-serif;
  font-size: 40px;
  font-weight: 700;
  letter-spacing: 0.2%;
  white-space: nowrap;
  line-height: 1.4;
  & > span {font-size: .6em;}
}
@media (max-width: 767px) {
.c-cta-phone {
  font-size: 28px;

}
}

.c-cta__labelbox span {
  display: inline-block;
  padding: 0 .5em;
  background-color: #fff;
  color: var(--color-tx-b700);
  font-size: 12px;
  border: 1px solid var(--color-tx-b700);
  margin-bottom: .1em;
  letter-spacing: 1%;
  font-weight: 700;
  margin-right: .5em;
}



.c-h2 {
  position: relative;
}
.c-h2__ja {
  display: block;
  font-size: var(--fz-xl);
  font-weight: bold;
  color: var(--color-tx-main);
  position: relative;
  z-index: 2;
  margin-bottom: 3em;

}
.c-h2__en {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -53%);

  font-size: clamp(85px, 11vw, 155px);
  color: var(--color-tx-b200);
  font-weight: 700;

  z-index: 1;
  white-space: nowrap;
}
.c-h3 {
  font-size: var(--fz-lg);
  color: var(--color-tx-b700);
  padding: 0.8em .5em;
  text-align: center;
  border-top: 1px solid var(--color-tx-b700);
  border-bottom: 1px solid var(--color-tx-b700);
}
.c-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.c-table th, .c-table td { /* 後で内容を確認 */
    padding: 12px;
    border: 1px solid #d9d9d9;
    vertical-align: middle;
    text-align: left;
    line-height: 1.4;
    word-break: break-word;
}
.c-table__company {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    text-align: left;
    border-bottom: 1px solid var(--color-bdr-b300);
}
.c-table__company th,
.c-table__company td {
    border-top: 1px solid var(--color-bdr-b300);
    padding: 1em 1.5em;
  }
.c-table__company th { 
    width: 37.4%;
    background-color: var(--color-bg-b50);
    color: var(--color-tx-b700);
}
@media (max-width: 767px) {
.c-table__company th,
.c-table__company td {
    padding: 1em;
  }
  .c-table__company th { 
    width: 30%;
  }
}

.c-table__differences {
  border-collapse: collapse;
  background: #fff;
  font-size: var(--fz-sm);
  font-weight: 700;
  border: 1px solid var(--color-bdr-gray);
}
.c-table__differences th,
.c-table__differences td {
  padding: .8em .5em;
  text-align: center;
  vertical-align: middle;
  border: 1px solid var(--color-bdr-gray);
}
.c-table__differences th {
  background-color: var(--color-bg-gray);
}
@media screen and (max-width: 767px) {
  .c-table__wrapper {
    overflow-x: auto;
    /* white-space: nowrap; */
    -webkit-overflow-scrolling: touch;
  }
  .c-table__differences {
    min-width: 600px;
    border-collapse: separate;
    border-spacing: 0;
  }
  table.c-table__differences th:first-child,
  table.c-table__differences td:first-child {
    position: sticky;
    left: 0;           /* 左端に固定 */
    z-index: 1;        /* 他のセルより上に表示 */
  }
    .c-table__wrapper::-webkit-scrollbar {
    height: 8px;
  }
}
.c-table__cell {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.25em;
}
.c-table__bgYellow {
  background: #FFFFCC !important;
}


.c-dl__item {
  padding: 25px;
  border: #CBDBEC 1px solid;
  background: #fff;
  & dt {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-tx-b700);
  }
  & dd {
    font-size: var(--fz-xs);
  }
  &.c-dl__item_2col {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
  }
}
.c-dl__item.c-dl__hdsp {display: none;}
@media screen and (max-width: 767px) {
  .c-dl__item {
    padding: 15px 20px;
  }
  .c-dl__item dt {
    font-size: 18px;
    line-height: 1.4;
    margin-bottom: 5px;
  }
  .c-dl__item.c-dl__hdsp {
    display: block;
    background: var(--color-tx-b700);
    color: #fff;
    text-align: center;
    font-size: 18px;
    & span {
      font-size: 1.11em;
    }
  }
}


/* 質問部分の基本設定 */
.c-faq-question {
  list-style: none; /* デフォルトの三角を消す */
  cursor: pointer;
  padding: 15px 40px 15px 40px; /* 右側に矢印用の余白を作る */
  position: relative;
  font-weight: 700;
  border-bottom: 1px solid var(--color-tx-b700);
  margin-top: 15px;
  color: var(--color-tx-b700);
}

.c-faq-question::before {
  content: 'Q';
  position: absolute;
  left: .75em;
  font-family: "Lato", sans-serif;
  font-weight: 700;
  color: var(--color-primary);
}

/* 矢印の土台（L字を作成） */
.c-faq-question::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 20px;
  width: 14px;
  height: 14px;
  border-top: 1px solid var(--color-tx-b700);   /* 上の線 */
  border-right: 1px solid var(--color-tx-b700); /* 右の線 */
  transform: translateY(-50%) rotate(135deg); /* 135度回して「下矢印」にする */
  transition: transform 0.3s;    /* 動きを滑らかにする */
}

/* 展開時（open属性がある時）の矢印の動き */
.c-faq-item[open] .c-faq-question::after {
  transform: translateY(-25%) rotate(-45deg); /* 逆回転させて「上矢印」にする */
}

/* ブラウザ固有のデフォルト矢印を非表示にする（Safari対策） */
.c-faq-question::-webkit-details-marker {
  display: none;
}
.c-faq-answer {
  background: var(--color-bg-main);
  padding: 30px 40px;
  font-size: var(--fz-sm);
  & p:not(:last-of-type) {padding-bottom: .8em;}
}
.c-ol {
  list-style: none;
  counter-reset: num;
  padding-left: 0;
}
.c-ol li {
  counter-increment: num;
  position: relative;
  padding-left: 1.5em;
}
.c-ol li::before {
  content: counter(num) ".";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-primary);
  font-weight: 700;
}
.c-ul {
  list-style: none;
  padding-left: 0;
}
.c-ul li {
  position: relative;
  padding-left: 1.1em;
}
.c-ul li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-primary);
  font-weight: 700;
}

.c-form__item + .c-form__item {
  margin-top: clamp(10px, calc(0.94vw + 6.5px), 20px);
}
.c-form__label {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  margin-bottom: 8px;
}
.c-form__labeltx {
  font-weight: 700;
}
.c-form__required {
  display: inline-block;
  padding: 0 1em;
  background: var(--color-b100);
  font-size: var(--fz-xs);
  color: var(--color-tx-b700);
}
.c-form__optional {
  display: inline-block;
  padding: 0 1em;
  background: #e4e4e4;
  font-size: var(--fz-xs);
}
.c-form__checkGroup {
  display: grid;
  grid-template-columns: repeat(3, 1fr) ;
  gap: 0 30px;
}
@media (max-width: 767px) {
  .c-form__checkGroup {
    grid-template-columns: 1fr;
  }
}
/* ラベル全体クリック可能にする */
.c-form__checklabel {
  display: flex;
  align-items: center;
  gap: .5em;
  cursor: pointer;
  transition: background 0.2s;
}
@media (max-width: 767px) {
.c-form__checklabel {
  align-items: start;
}
.c-form__checklabel input {
  margin-top: 5px;
}
}
.c-form__checkInput {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  width: 20px;
  height: 20px;
  border: 1px solid var(--color-bdr-gray);
  border-radius: 3px;
  background: #fff;
  cursor: pointer;
}
.c-form__checkInput:checked {
  background: var(--color-primary);
  border-color: var(--color-primary);
}
.c-form__checkInput:checked::before {
  content: "";
  display: block;
  width: 6px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  margin: 3px auto;
}
.c-form__input, .c-form__textarea {
  width: 100%;
  border: 1px solid var(--color-bdr-gray);
  padding: .5em 1em;
  border-radius: 3px;
}
.c-form__textarea {
  line-height: 1.4;
  white-space: pre-line;

}
@media (max-width: 767px) {
  .c-form__textarea {
  height: 200px;
  &.h100 {
    height: 100px;
  }
  
}
}
.c-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  
  width: 100%;
  height: 100px;
  border: 1px solid #999;

  font-size: clamp(18px, 2.7vw, 20px);
  line-height: 1.5;
  font-weight: 700;
  color: var(--color-tx-b700);
  text-align: center;
  cursor: pointer;

}


/* PC */
@media (min-width: 768px) {
  .c-button {
    width: 400px;
  }
}
.c-button::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 10px;
  width: 12px;
  height: 12px;
  border-top: 1px solid var(--color-tx-b700);   /* 上の線 */
  border-right: 1px solid var(--color-tx-b700); /* 右の線 */
  transform: translateY(-50%) rotate(45deg); /* 135度回して「下矢印」にする */
}
.c-button__form {
  background: linear-gradient(to bottom, #ffffff, #FFFFC1);
}
.c-button__form:hover {
  background: linear-gradient(to top, #ffffff, #FFFFC1);
  transition: all 0.2s ease;
}
.c-button:hover::after {
  right: 5px;
  transition: all 0.2s ease; 
}

.c-buttonbox__cta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 39px;
  align-items: center;
}
@media (max-width: 767px) {
  .c-buttonbox__cta {
    width: 100%;
    grid-template-columns: 1fr;
    gap: 10px;
  }
}
.c-button__cta {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  
  width: 100%;
  height: 156px;
  height: 120px;
  /* border: 1px solid #999; */

  font-size: clamp(18px, 2.7vw, 20px);
  line-height: 1.5;
  font-weight: 700;
  color: var(--color-tx-b700);
  text-align: center;
  cursor: pointer;
}


.c-button__cta > span > span {
  display: block;
}
.c-button__cta::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 19px;
  width: 30px;
  height: 30px;
  border-top: 1px solid var(--color-tx-b700);   /* 上の線 */
  border-right: 1px solid var(--color-tx-b700); /* 右の線 */
  transform: translateY(-50%) rotate(45deg); /* 135度回して「下矢印」にする */
}
.c-button__cta {
  background: linear-gradient(to bottom, #ffffff, #FFFFC1);
  &.btn-bg__green {
  background: linear-gradient(180deg, #FFF 3.21%, #C1FFCB 100%);
  }
}
.c-button__cta:hover {
  opacity: 1;
  background: linear-gradient(to top, #ffffff, #FFFFC1);
  transition: all 0.2s ease;
}
.c-button__cta.btn-bg__green:hover {
  opacity: 1;
  background: linear-gradient(to top, #ffffff, #FFFFC1);
  background: linear-gradient(0deg, #FFF 3.21%, #C1FFCB 100%);
  transition: all 0.2s ease;
}
.c-button__cta:hover::after {
  right: 5px;
  transition: all 0.2s ease; 
}
.c-button__thanks {
  height: 80px;
}
.c-button__goTop {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 60px;
  height: 60px;
  background: var(--color-b400);
  border: 1px solid #fff;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s, visibility 0.5s;
}
.c-button__goTop::after {
  position: absolute;
  content: "";
  width: 14px;
  height: 14px;
  border-top: 1px solid #fff;
  border-left: 1px solid #fff;
  top: 50%;
  left: 50%;
  transform:  translate(-50%, -50%) rotate(45deg);
}
@media (max-width: 767px) {
.c-button__goTop {
  display: none;
}
}
/* ダウンロードページ contact */
.p-contact__partsExImg {
  height: auto;
  box-shadow: 20px 24px var(--color-tx-b200);
  border: 1px solid var(--color-bdr-gray);
}
@media (min-width: 768px) {
.p-contact__partsExImg {
  max-width: 392px;

}
}
@media (max-width: 767px) {
  .p-contact__partsExImg {
    box-shadow: none;
  }
.d-contact__downloadImg {
  box-shadow: none;
  position: relative;
}
.d-contact__downloadImg::after {
  position: absolute;
  content: '';
  background: var(--color-tx-b200);
  width: 100vw;
  height: 30vw;
  top: -20px;
  left: 0;
  margin-right: -16px;
  margin-left: -16px;
  z-index: -1;
}
}
.d-contact__downloadList li {
  margin-top: .5em;
}
.d-contact__downloadImg img {
  margin-inline: auto;
}
@media (max-width: 767px) {
.p-contact__screwImg {
  width: 30vw;
}
}
.u-bg-gray {background-color: #f5f5f5;}
.u-bg-lightblue {background-color: #F4F7FB;}
.u-bg-white {background-color: #fff;}
.u-bg-blue {background-color: #346599;}
.u-tac {text-align: center;}
.u-tal {text-align: left;}
.u-tx-white {color: #fff;}
.u-flex-center {display: flex;  justify-content: center; align-items: center;}
.u-tx-left {text-align: left;}
.u-fz-xs {font-size: var(--fz-xs);}
.u-fz-sm {font-size: var(--fz-sm);}
.u-fz-md {font-size: var(--fz-md);}
.u-fz-lg {font-size: var(--fz-lg);}
.u-fz-xl {font-size: var(--fz-xl);}
.u-fz-xxl {font-size: var(--fz-xxl);}
.u-mt-5 {margin-top: 5px;}
.u-mt-10 {margin-top: 10px;}
.u-mt-xs { margin-top: var(--space-xs); }
.u-mt-sm { margin-top: var(--space-sm); }
.u-mt-md { margin-top: var(--space-md); }
.u-mt-lg { margin-top: var(--space-lg); }
.u-a-underline { text-decoration: underline;}
.u-fz-20 {font-size: 20px;}
.u-fz-10 {font-size: 10px;}
.u-marker {
  background: linear-gradient(transparent 80%, rgba(255, 255, 0, 0.7) 65%);
  padding: 0 0.1em;
}
.u-bdr-top { border-top: 1px solid var(--color-bdr-gray);}
.u-fwn {font-weight: normal;}
.u-gap-1em {
  display: flex;
  flex-direction: column;
  gap: 1em;
}
@media (max-width: 767px) {
  .u-br-sp {display: inline-block;}
  .u-br-pc {display: none;}

}
@media (min-width: 768px) {
.u-br-pc {display: inline-block;}
.u-br-sp {display: none;}
}

.u-pc-only {
  display: block;
}
.u-sp-only {
  display: none;
}

@media (max-width: 767px) {
  .u-pc-only {
    display: none;
  }
  .u-sp-only {
    display: block;
  }
}
.u-2col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
}
@media (max-width: 767px) {
  .u-2col {
  grid-template-columns: 1fr;
  gap: 0;
  }
}
.u-fw-700 {
  font-weight: 700;
}
.u-tx-smaller {
  font-size: .8em;
}