@charset "UTF-8";

:root {
  --lambda-blue: #0168b7;
  --recruit-red: #b03a2e;
  --recruit-text: #333333;
  --recruit-box-border: #e0e0e0;
  --privacy-red: #b03a2e;
  --privacy-text: #333333;
  --privacy-border: #cccccc;
  --mf-color-genjo: #f3b63a;
  --mf-color-kikan: #2e3192;
  --mf-color-jika: #6a9d3a;
  --mf-color-kakucho: #b21e35;
  --mf-color-sonota: #662d91;
  --mf-bg-overlay: rgba(0, 0, 0, 0.8);
  --mf-container-width: clamp(320px, 95%, 850px);
  --privacy-accent: #004bb1;
  --privacy-text-main: #333;
  --privacy-text-sub: #666;
  --privacy-bg-modal: #ffffff;
  --privacy-overlay: rgba(0, 0, 0, 0.7);
}

/* ▼ ベース ▼ */
main {
  margin-left: 0;
  width: 100%;
  transition: margin-left 0.9s ease, width 0.9s ease;
}

/* ▼ パンくず全体 ▼ */
.breadcrumb-Box {
  width: 90%;
  margin: 10px auto;
}
.breadcrumb {
  padding: clamp(10px, 1vw, 16px) 0;
  font-size: clamp(12px, 0.83vw, 16px);
}
.breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.breadcrumb__item {
  display: flex;
  align-items: center;
  color: #666;
}
.breadcrumb__item a {
  color: inherit;
  text-decoration: none;
  transition: 0.3s;
}
.breadcrumb__item a:hover {
  color: #8C1A25;
}
.breadcrumb__item:not(:last-child)::after {
  content: "/";
  margin: 0 8px;
  color: #999;
}
.breadcrumb__item--current {
  color: #333;
  font-weight: 600;
}

/* ▼ 下層ページ Mv ▼ */
.c-page-hero {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 /9;
  height: 100vh;
  width: 100%;
}

/* ▼ 会社案内 Mv ▼ */
.c-page-hero__bg--company {
  position: absolute;
  top: 0;
  left: 0;
  width: auto;
  height: 100%;
}
.c-page-hero__bg--company img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-company > .c-page-hero__titleBox {
  margin-left: auto;
  width: 100%;
  background: linear-gradient(90deg, #8C1A25, #b30000 );
  padding: 10px 20% 20px 0;;
  display: flex;
  justify-content: right;
  z-index: -1;
}

/* ▼ 製品紹介 Mv ▼ */
.page--products {
  background: url(/assets/img/hero-bg--products.jpg)  no-repeat border-box left center/cover fixed content-box;
}
/* ▼ 採用情報 Mv ▼ */
.page--recruit {
  background: url(/assets/img/hero-bg--recruit.webp)  no-repeat border-box left center/cover fixed content-box;
}
/* ▼ 個人情報保護方針 Mv ▼ */
.page--privacy {
  background: url(/assets/img/hero-bg--privacy.webp)  no-repeat border-box left center/cover fixed content-box;
}
/* ▼ お問い合わせ Mv ▼ */
.page--contact {
  background: url(/assets/img/hero-bg--contact.jpg)  no-repeat border-box left center/cover fixed content-box;
}
/* ▼ サポート Mv ▼ */
.page--support {
  background: url(/assets/img/hero-bg--support.webp)  no-repeat border-box left center/cover fixed content-box;
}
/* ▼ ALFAシリーズ Mv ▼ */
.page--alfa-series {
  background: url(/assets/img/hero-bg--alfa.jpg)  no-repeat border-box left center/cover fixed content-box;
}
/* ▼ Lambdaシリーズ Mv ▼ */
.page--lambda-series {
  background: url(/assets/img/hero-bg--lambda.jpg)  no-repeat border-box left center/cover fixed content-box;
}
/* ▼ Ladder Creator Mv ▼ */
.page--ladder-creator {
  background: url(/assets/img/hero-bg--ladder-creator.webp)  no-repeat border-box left center/cover fixed content-box;
}

/* ▼ コンテンツ全体 ▼ */
.c-page-hero__content {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}

/* ▼ タイトル ▼ */
.c-page-hero__title {
  color: #fff;
  text-align: center;
}

/* ▼ 赤帯 ▼ */
.c-page-hero__titleBox {
  margin-left: auto;
  width: 100%;
  background: linear-gradient(  90deg,  rgba(140, 26, 37, 0.9),  rgba(179, 0, 0, 0.8));
  padding: 10px 20% 10px 0;;
  display: flex;
  justify-content: right;
}

/* ▼ 赤帯 ▼ */
.c-page-hero__titleBox--ladder-creator {
  margin-left: auto;
  width: 100%;
  background: linear-gradient(90deg, #8C1A25, #b30000 );
  padding: 10px 20% 10px 0;;
  display: block;
  justify-content: right;
}

/* ▼ 見出し V3 ▼ */
.c-page-hero__titleBox--v3 {
  margin-left: auto;
  width: 100%;
  background: linear-gradient(
  90deg,
  rgba(140, 26, 37, 0.7),
  rgba(179, 0, 0, 0.7)
  );
  padding: 10px 18.8% 10px 0;;
  display: flex;
}

.c-page-hero__title--jp-v3 {
  font-size: clamp(36px, 4.4vw, 64px);
  letter-spacing: 0.4rem;
}

.c-page-hero__title--en-v3 {
  font-style: italic;
  font-weight: normal;
}

.title--right {
  width: 55%;
  justify-content: right;
}

/* ▼ 見出し V4 Lambda ▼ */
.c-page-hero__titleBox--v4 {
  margin-right: auto;
  width: 100%;
  padding: 10px 0;
  display: flex;
  background: url(/assets/img/title-lambda--bg.svg) repeat-x ;
}

.c-page-hero__title--jp-v4 {
  font-size: clamp(36px, 4.4vw, 64px);
  letter-spacing: 0.4rem;
}

.c-page-hero__title--en-v4 {
  font-style: italic;
  font-weight: normal;
}

.c-page-hero__title--jp-v4 img {
  max-width: 600px;
  width: 200%;
}

.title--left {
  width: 60%;
  justify-content: left;
}

.title--left-c {
  width: 60%;
  justify-content: center;
}

.c-page-hero__title > .titleBorder {
  border: 2px solid #fff;
  display: block;
  width: 60%;
  margin: -10px auto 0;
}

.page-company > .c-page-hero__titleBox {
  z-index: -1;
}

.c-page-hero__title--lv1--jp .shadow-none {
  display: block;
  font-size: clamp(36px, 3.75vw, 72px);
  letter-spacing: 0.2em;
  position: relative;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
}

.c-page-hero__title--lv1--jp::after {
  content: "";
  display: block;
  width: clamp(100px, 10.42vw, 200px);
  height: 4px;
  background: #fff;
  margin: -10px auto 0;
}

.shadow-none {
  text-shadow: none !important;
}

.c-page-hero__title--lv1--en {
  display: block;
  font-size: clamp(18px, 1.88vw, 36px);
  font-style: italic;
  letter-spacing: 0.1em;
  margin-top: 10px;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
}

/*COMPANY*/

.grid__2 {
  display: grid;
}

.block__lv1 {
  grid-template-columns: 10% 90%;
  align-items: center;
}

.block__lv2 {
  grid-template-columns: 20% 80%;
  align-items: center;
}

.block__lv3 {
  grid-template-columns: 30% 70%;
  align-items: center;
}

.block__rv3 {
  grid-template-columns: 70% 30%;
  align-items: center;
}

.block__lv4 {
  grid-template-columns: 40% 60%;
  align-items: center;
}

.block__lv5 {
  grid-template-columns: 50% 50%;
  align-items: center;
}
.block__lv6 {
  grid-template-columns: 60% 40%;
  align-items: center;
}

.block__lv6-5 {
  grid-template-columns: 65% 35%;
  align-items: center;
}
.block__lv7 {
  grid-template-columns: 70% 30%;
  align-items: center;
}


.img-Box { width: 100%;}
.img--lv60 img { width: 60%;}
.img--lv70 img { width: 70%;}
.img--lv80 img { width: 80%;}
.img--lv90 img { width: 90%;}
.img--lv100 img { width: 100%;}

.grid__2--right img {
  width:80%;
  max-width: 400px;
  position: relative;
  top: -16px;
}

.flex__2 {
  display: flex;
}

.flex-block__lv3 {
  justify-content: start;
  align-items: center;
}

.flex-block__rv3 {
  justify-content: start;
  align-items: center;
}

.flex-block__lv3 {
  grid-template-columns: 70% 30%;
  align-items: center;
}

.block__ {
  grid-template-columns: 40% 60%;
  align-items: center;
}

.block__--right img {
  width:80%;
  max-width: 400px;
  position: relative;
  top: -16px;
}


.about-block__header {
  display: flex;
  justify-content: center;
  align-items: center;
}

.about-block__title {
  font-size: 42px;
  font-weight: bold;
  margin-left: 10px;
}

.about-block__title--en {
  text-align: center;
  font-size: 28px;
  font-weight: bold;
  letter-spacing: 0.2rem;
}

.strength--bg-01 {
  background: url(/assets/img/il-company--01.svg) no-repeat right bottom / 40%;
  min-height: 600px;
}

.strength--bg-01 p {
  margin-left: 5em;
  max-width: 50%;
}
.strength--bg-02 {
  background: url(/assets/img/il-company--02.svg) no-repeat left bottom / 40%;
  min-height: 560px;
  position: relative;
}

.Box--right-inner {
  position: absolute;
  right: 0;
  width: 535px;
}

.strength--bg-02 > p {
  position: absolute;
  right: 0;
  margin-left: 5em;
  max-width: 50%;
}

.strength--bg-03 {
  background: url(/assets/img/il-company--03.webp) no-repeat right bottom / 40%;
  min-height: 400px;
}

.strength--bg-03 p {
  margin-left: 5em;
  max-width: 50%;
}

.greeting-bg-Box {
  background: url(/assets/img/img-greeting--bg-01.webp) no-repeat left center / cover; 
  padding: 7% 10% 7% 20%;
}

.greeting-bg-Box--GM {
  padding: 7% 10% 7% 20%;
}

p.author {
  font-size: 2rem;
  text-align: right;  
}

span.job-post {
  font-size: 18px;
  text-align: right;  
}

.greeting_Box--wh {
  background: rgba(255, 255, 255, 0.7);
  padding: 40px;
}

.philosophy-bg-Box {
  background: url(/assets/img/img-philosophy--bg-01.webp) no-repeat left center / cover; 
  padding: 10% 0;
}

.title__inner--blk {
  background: rgba(0, 0, 0, 0.06);
  width: 100%;
  padding: 8% 0;
  position: relative;
}

.title__inner--blk > div {
  position: absolute;
  right: 20%;
  top: 20%;
}

.title__inner--blk-02 {
  background: rgba(0, 0, 0, 0.06);
  width: 100%;
  padding: 4% 0;
  position: relative;
}

.title__inner--blk-02 > div {
  top: -10px;
  position: relative;
}

.works-bg-Box  {
  background: url(/assets/img/img-company-04--01.svg) no-repeat left center / cover; 
  padding: 10% 0;
}

.work-btn--box img {
  top: auto !important;
  position: relative;
}

.profile-bg-Box {
  background: url(/assets/img/img-profile--bg.webp) no-repeat left center / cover; 
  padding: 6% 0;
}

.card-access {
  border: 1px solid #777777;
  padding: 40px 40px 40px 0;
  position: relative;
  max-width: 800px;
  margin: auto;
}
.access-img-Box img {
  width: 100%;
  max-width: 420px;
  cursor: pointer;
  transition: transform .3s ease, box-shadow .3s ease;
}

.access-img img:hover {
  transform: scale(1.05);
}

.access-img-Box {
  position: relative;
  top: -180px;
  left: -40px;
}

.access-img {
  position: absolute;
}

.access-img-Box-google img {
  width: 100%;
  max-width: 420px;
  transition: transform .3s ease, box-shadow .3s ease;
}

.access-img-google img:hover {
  transform: scale(1.05);
}

.access-img-Box-google {
  position: relative;
  top: -180px;
  left: -40px;
}

.access-img-google {
  position: absolute;
}

.card-title {
  font-size: 28px;
  text-align: center;
}
.card-subtitle {
  font-size: 20px;
  color: #666;
  text-align: center;
  margin: 10px auto;
}

.card-banner {
  display: block;
  position: absolute;
  top: -40px;
  right: -10px;
  background: #b22222;
  color: #fff;
  padding: 10px 20px;
  font-size: 24px;
}

.svg-container {
  width: 100%;
  max-width: 600px;
  margin: 50px auto;
}

.company-cta-footer {
  text-align: center;
  margin-top: 80px;
}

.access-station img {
  max-width: 50px;
}

.max-img--122 img {
  max-width: 122px;
}

.animated-lines path {
  stroke-dasharray: 600;
  stroke-dashoffset: 600;
  transition: stroke-dashoffset .8s ease-out;
}

.dots, .text-main {
  opacity: 0;
  transition: opacity 0.4s ease-in;
}

.svg-container.play .animated-lines path {
  stroke-dashoffset: 0;
}

.svg-container.play .dots {
  opacity: 1;
  transition-delay: 0.6s;
}

.svg-container.play .text-main {
  opacity: 1;
  transition-delay: 1s; 
}

.text-main { fill: #b22222; text-anchor: middle; }
.val { font-size: 48px; font-weight: bold; }
.label { font-size: 24px; font-weight: bold; }
.svg-container svg { width: 100%; height: auto; display: block; }



/* ▼ PRODUCTS ▼ */
.content-bg-Box {
  width: 100%;
  margin: 0;
}
.products-bg-Box {
  background: url(/assets/img/img-products--bg-01.webp) no-repeat left center / cover; 
  padding: 7% 0 7% 20%;
}
.bg-Box-copy {
  color: #fff;
  font-size: clamp(28px, 1.667vw, 32px);
  font-weight: bold;
  line-height: 2;
}

.products-bg-Box--book {
  background: url(/assets/img/img-products--bg-02.webp) no-repeat left center / cover; 
  padding: 7% 0 7% 20%;
  position: relative;
}

.bg-Box-book {
  color: #fff;
  font-weight: bold;
  line-height: 2;
  background: rgba(255, 255, 255, 0.7);
  display: grid;
  grid-template-columns: 35% 65%;
  justify-content: flex-start;
  align-items: start; 
  padding: 5% 0 5% 7%;
  margin-right: 10%;
}

.bg-Box-book--left p {
  color: #333;
  font-weight: normal;
  line-height: 1.4;
  font-size: 14px;
  margin-top: 20px;
}

.bg-Box-book--right h3 {
  background: #c00000;
  padding-left: 1em;
  font-weight: normal;
}

.bg-Box-book--right h4 {
  color: #c00000;
  padding-left: 1em;
  margin-top: 30px;
  line-height: 1.6;
}

.bg-Box-book--right p {
  color: #333;
  padding-left: 1em;
  margin-top: 30px;
  line-height: 1.8;
  padding-right: 2em;
  font-weight: normal;
}

.bg-Box-book img {
  width: 100%;
  max-width: 280px;
}

ul.bg-Box-book--list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding-left: 0.7em;
  color: #333;
  font-weight: normal;
  margin-top: 30px;
}

ul.bg-Box-book--list li {
  list-style: none;
}

ul.bg-Box-book--list li:before {
  content: "";
  background: url(/assets/img/ico-arrow--r-02.svg) no-repeat center / contain;
  display: inline-block;
  width: 10px;
  height: 10px;
  padding-right: 1em;
}


.img-Box > .total-results img {
  width: 80%;
  max-width: 360px;
}

.img-Box--manda {
  display: block;
  width: 90%;
  position: relative;
  left: 0;
}

.td-ico {
  content: "";
  width: 40px;
  height: 40px;
  display: inline-block;
  position: relative;
  top: 14px;
  margin-left: -20px;
  margin: -20px 20px 0 -20px;
}

.ico-skil--01 {
  background: url(/assets/img/ico-archetect-01.svg) no-repeat center / contain;
}
.ico-skil--02 {
  background: url(/assets/img/ico-support--02.svg) no-repeat center / contain;
}
.ico-skil--03 {
  background: url(/assets/img/ico-knowleghe.svg) no-repeat center / contain;
}

/* ▼ RECRUIT ▼ */
.page-recruit-container {
  background-color: var(--recruit-bg);
  color: var(--recruit-text);
  padding: 80px 20px;
}

.page-recruit-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.page-recruit-step {
  display: flex;
  margin-bottom: 60px;
  position: relative;
  margin-left: 2em;
}

.page-recruit-step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 45px;
  top: 90px;
  bottom: -60px;
  width: 1px;
  background-color: #b30000;
}

.page-recruit-left {
  flex: 0 0 90px;
  margin-right: 40px;
  text-align: center;
  position: relative;
  z-index: 1;
}

.page-recruit-icon-wrap {
  width: 90px;
  height: 90px;
}

.page-recruit-number {
  font-size: 32px;
  font-weight: bold;
  color: #b30000;
  line-height: 1;
}

.page-recruit-icon {
  width: 90px;
  height: 90px;
  margin: 4px 0;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.page-recruit-icon.is-confirm {
  background-image: url(/assets/img/pic-recruit-01.svg);
}
.page-recruit-icon.is-request-mail {
  background-image: url(/assets/img/pic-recruit-02.svg);
}
.page-recruit-icon.is-request-doc {
  background-image: url(/assets/img/pic-recruit-03.svg);
}
.page-recruit-icon.is-apply {
  background-image: url(/assets/img/pic-recruit-04.svg);
}

.page-recruit-label {
  font-size: 14px;
  color: #b30000;
  letter-spacing: 0.1em;
  font-weight: bold;
}

.page-recruit-right {
  flex: 1;
  padding-top: 5px;
}

.page-recruit-step-num {
  font-size: 18px;
  color: #b30000;
  margin: 0 0 5px 0;
}

.page-recruit-title {
  font-size: 28px;
  color: #b30000;
  margin: 0 0 20px 0;
  letter-spacing: 0.05em;
  font-weight: bold;
}

.page-recruit-box {
  border: 1px solid #b30000;
  padding: 40px;
  border-radius: 16px;
  line-height: 1.8;
}

.page-recruit-text {
  font-size: 1.15rem;
  margin: 0;
}

.page-recruit-highlight {
  color: #b30000;
}

.page-recruit-plus::before {
  width: 10px;
  height: 2px;
}

.page-recruit-plus::after {
  width: 2px;
  height: 10px;
}

.page-recruit-contact-container {
  padding: 20px 20px;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  -webkit-font-smoothing: antialiased;
}

.page-recruit-contact-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.page-recruit-contact-row {
  display: flex;
  margin-bottom: 50px;
  margin-left: 2em;
  align-items: flex-start;
}

.page-recruit-contact-left {
  flex: 0 0 110px;
  margin-right: 40px;
}

.page-recruit-contact-icon-circle {
  width: 110px;
  height: 110px;
  border: 1px solid #b30000;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

.page-recruit-contact-only-text,
.page-recruit-contact-e-mail-text {
  font-size: 16px;
  color: #b30000;
  letter-spacing: 0.1em;
}

.page-recruit-contact-mail-icon {
  width: 30px;
  height: 30px;
  margin: 4px 0;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url(/assets/img/pic-recruit-05.svg);
}

.page-recruit-contact-right {
  flex: 1;
}

.page-recruit-contact-note-text,
.page-recruit-contact-instruction-text {
  font-size: 1.15rem;
  line-height: 1.8;
  margin: 0 0 20px 0;
}

.page-recruit-contact-instruction-text {
  margin-bottom: 0;
}

.page-recruit-contact-highlight {
  color: #b30000;
}

.page-recruit-contact-policy-link {
  color: #b30000;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.page-recruit-contact-policy-link:hover {
  opacity: 0.7;
}

.page-recruit-contact-button-row {
  text-align: center; /* 中央寄せ */
}


.page-recruit-contact-plus::before,
.page-recruit-contact-plus::after {
  content: "";
  position: absolute;
  background-color: #fff;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.page-recruit-contact-plus::before {
  width: 10px;
  height: 2px;
}

.page-recruit-contact-plus::after {
  width: 2px;
  height: 10px;
}

/* ▼ PRIVACY POLICY ▼ */

.page-privacy > .c-page-hero__titleBox {
  margin-left: auto;
  width: 100%;
  padding: 10px 20% 20px 0;;
  display: flex;
  justify-content: right;
  z-index: -1;
}

.page-c-v3__title {
  width: 55%;
  margin-left: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-position: bottom;
  background-repeat: no-repeat;
  font-style: normal !important;
  background: rgba(191, 39, 45, 0.8) ;
  padding: 30px 0 10px 0;
  justify-content: center;
}
.c-page-hero__title--lv2--jp--c-v3 {
  font-size: clamp(60px, 4vw, 120px);
  letter-spacing: 0.2em;
  position: relative;
  top: -10%;
  letter-spacing: 1.2rem;
}

span.c-page-hero__title--border {
  border: 2px solid #fff;
  display: block;
  width: 40%;
  margin: 0 auto;
}

.c-v3-border {
  position: relative;
  top: -20px;
}

.c-page-hero__title--lv2--en--c-v3 {
  font-size: clamp(20px, 2.08vw, 40px) !important;
  letter-spacing: 0.2em;
  font-style: italic;
  position: relative;
  top: -10px;
}

.page-privacy-container {
  color: var(--privacy-text);
  padding: 80px 20px;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  line-height: 1.8;
}

.page-privacy-inner {
  max-width: 1000px;
  margin: 0 auto;
}

.page-privacy-text {
  font-size: 1.15rem;
  margin-bottom: 30px;
}

.page-privacy-policy-list {
  list-style: none;
  padding: 0;
  margin-bottom: 60px;
}

.page-privacy-policy-item {
  display: flex;
  margin-bottom: 40px;
}

.page-privacy-item-num {
  height: 50px;
  width: 50px;
  background-color: #b03a2e;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  margin-right: 1em;
  margin-top: 2px;
}

.page-privacy-item-text {
  flex: 1;
  margin: 0;
  line-height: 2;
  padding-top: 10px;
}

.page-privacy-contact-info {
  margin-bottom: 80px;
}

.page-privacy-contact-header {
  border-left: 5px solid #b03a2e;
  padding-left: 15px;
  margin-bottom: 30px;
}

.page-privacy-contact-title {
  font-size: 18px;
  color: var(--privacy-text);
  font-weight: bold;
  margin: 0;
}

.page-privacy-contact-action {
  text-align: center;
  margin-bottom: 40px;
  margin-top: 60px;
}

.page-privacy-signature {
  text-align: right;
  font-size: 14px;
}

.page-privacy-company-name {
  margin-top: 20px;
  line-height: 1.5;
}

.page-privacy-separator {
  border: none;
  border-top: 1px solid #eee;
  margin: 80px 0;
}

.page-privacy-headline-wrap {
  text-align: center;
  margin-bottom: 60px;
}

.page-privacy-detail-content {
  margin-left: 5em;
}

.page-privacy-detail-item {
  margin-bottom: 50px;
}

.page-privacy-detail-header {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}

.page-privacy-detail-title {
  font-size: 20px;
  font-weight: normal;
  margin: 0;
}

.page-privacy-item-label {
  margin: 30px 0 10px;
}

.page-privacy-item-label a:link{
  color: #c40000;
}
.page-privacy-item-label a:hover{
  text-decoration: none;
}
.page-privacy-item-label a:visited{
  color: #c40000;
}

.page-privacy-dot-list {
  list-style: none;
  padding-left: 3em;
  margin-top: 15px;
}

.page-privacy-dot-list li {
  position: relative;
  font-size: 14px;
  margin-bottom: 15px;
}

.page-privacy-dot-list li::before {
  content: "●";
  position: absolute;
  left: -2em;
  color: var(--privacy-text);
  font-size: 8px;
  top: 5px;
}

.page-privacy-asterisk-list {
  list-style: none;
  padding-left: 3em;
  margin-top: 15px;
}

.page-privacy-asterisk-list li {
  position: relative;
  font-size: 14px;
  margin-bottom: 15px;
}

.page-privacy-asterisk-list li::before {
  content: "※";
  position: absolute;
  left: -2em;
  color: var(--privacy-text);
  font-size: 8px;
  top: 5px;
}

.page-privacy__img--Box {
  text-align: center;
  margin-top: 120px;
}

.page-privacy__img--Box img {
  width: 50%;
  max-width: 150px;
}

@media (max-width: 768px) {
  .page-privacy-inner {
    padding: 0 10px;
  }
  .page-privacy-policy-item {
    flex-direction: column;
  }
  .page-privacy-item-num {
    margin-bottom: 10px;
  }
}
/* ▼ SUPPORT ▼ */
.page-support > .c-page-hero__titleBox {
  margin-left: auto;
  width: 100%;
  padding: 10px 20% 20px 0;;
  display: flex;
  justify-content: right;
  z-index: -1;
}

.page-c-v2__title {
  width: 55%;
  margin-left: 0;
  position: absolute;
  right: 0;
  background-position: bottom;
  background-repeat: no-repeat;
  font-style: normal !important;
  background: rgba(191, 39, 45, 0.8) ;
  padding: 30px 0 10px 0;
  justify-content: center;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
}
.c-page-hero__title--lv2--jp--c-v2 {
  font-size: clamp(70px, 4.5vw, 120px);
  letter-spacing: 0.2em;
  position: relative;
  top: -10%;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
  letter-spacing: 1.2rem;
}

.c-page-hero__title--lv2--jp--c-v2 {
  font-size: clamp(70px, 4.5vw, 120px);
  letter-spacing: 0.2em;
  position: relative;
  top: -10%;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
  letter-spacing: 1.2rem;
}

span.c-page-hero__title--border {
  border: 2px solid #fff;
  display: block;
  width: 40%;
  margin: 0 auto;
}

.c-v2-border {
  position: relative;
  top: -20px;
}

.c-title__boder--v3 {
  position: relative;
  top: -20px;
  border: 3px solid #fff;
  display: block;
  width: 60%;
  margin: 10px auto 0;
}

.c-page-hero__title--lv2--en--c-v2 {
  font-size: clamp(20px, 2.08vw, 40px) !important;
  letter-spacing: 0.2em;
  font-style: italic;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
  position: relative;
  top: -10px;
}

/* ▼ お問い合わせ ▼ */

.privacy-box {
  margin: 0px auto;
}

.privacy-box__content {
  padding: 40px;
}

.privacy-box__footer {
  padding: 16px;
  display: block;
  margin: 0 auto;
  align-items: center;
  text-align: center;
  margin-top: 40px;
}

.privacy-box__check {
  font-size: 14px;
  display: block;
}

button {
  padding: 16px 50px;
  border: none;
  background: #ccc;
  color: #fff;
  cursor: not-allowed;
  margin-top: 40px;
}

button.active {
  background: #b30000;
  cursor: pointer;
}

/* ▼ SUPPORT ▼ */
.page-support > .c-page-hero__titleBox {
  margin-left: auto;
  width: 100%;
  padding: 10px 20% 20px 0;;
  display: flex;
  justify-content: right;
  z-index: -1;
}

.page-support__title {
  width: 55%;
  margin-left: 0;
  position: absolute;
  right: 0;
  background-position: bottom;
  background-repeat: no-repeat;
  font-style: normal !important;
  background: rgba(191, 39, 45, 0.8) ;
  padding: 30px 0 5px 0;
  justify-content: center;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
}
.c-page-hero__title--lv2--jp--support {
    font-size: clamp(80px, 5vw, 120px);
    letter-spacing: 0.2em;
    position: relative;
    top: -5%;
    text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
    letter-spacing: 1.2rem;
}

span.c-page-hero__title--border {
  display: block;
  width: 40%;
  border: 2px solid #fff;
  margin: 0 auto;
}

.support-border {
  position: relative;
  top: -30px;
}

.c-page-hero__title--lv2--en--support {
  font-size: clamp(20px, 2.08vw, 40px) !important;
  letter-spacing: 0.2em;
  font-style: italic;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
  position: relative;
  top: -20px;
}

.products-title--logo {
  max-width: 360px;
  margin: 0 auto;
}

.support-notice {
  padding: 60px 20px;
}

.support-notice__inner {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 40px;
}

.support-notice__icon {
  width: 120px;
  flex-shrink: 0;
}

.support-notice__icon svg {
  width: 100%;
  height: auto;
  fill: none;
  stroke: #9e1c1c;
  stroke-width: 4;
  stroke-linejoin: round;
  stroke-linecap: round;
}

.support-notice__icon line {
  stroke-width: 6;
  stroke-linecap: round;
}

.support-notice__icon circle {
  fill: #b30000;
  stroke: none;
}

.support-notice__title {
  color: #b30000;
  font-size: 34px;
  margin-bottom: 15px;
  font-style: normal;
}

.support-notice p {
  font-size: 1.2rem;
  line-height: 1.8;
}

.support-content {
  max-width: 960px;
}

.card--support {
  justify-content: space-between;
  align-items: center;
}

.card--support > div {
  border: 1px solid #e7e7e7;
  border-radius: 24px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.05);
  width: 45%;
  text-align: center;
  padding: 40px 50px;
}

.card--support__img img {
  height: 60px;
  width: 100%;
}

.alfa--sapport img {
  height: 80px;
}

.card--support a::before {
  content: "";
  background: url(/assets/img/ico-support--red.svg);
}

.lambda-caption {
  font-size: 12px;
  margin-top: 10px;
  color: var(--lambda-blue);
}

.card-blue__title {
  text-align: center;
  font-size: 28px;
  margin-bottom: 50px;
  position: relative;
}

.card-blue__highlight {
  padding: 5px 10px;
}

.card-blue__highlight {
  background: linear-gradient(transparent 70%, #2da7ee 70%);
}

.card-blue__container {
  display: flex;
  justify-content: center;
  gap: 40px;
}

.card-blue {
  background: #fff;
  border: 2px solid #1e6aa8;
  border-radius: 15px;
  width: 400px;
  padding: 40px 25px 25px;
  position: relative;
  
  box-sizing: border-box;
}

.card-blue__header {
  position: relative;
  padding: 0 1.5em;
  background: var(--lambda-blue);
  color: white;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  left: -47px;
}

.card-blue__header::before {
  position: absolute;
  content: '';
  top: 100%;
  left: 0;
  border: none;
  border-bottom: solid 15px transparent;
  border-right: solid 20px rgb(149, 158, 155);
}

.card-blue__number {
  font-size: 48px;
  font-weight: bold;
  margin-right: 20px;
}

.card-blue__header-title {
  font-size: 18px;
  line-height: 1.5;
}

.card-blue__image {
  width: 100%;
  max-width: 200px;
  display: block;
  margin: 20px auto;
}

.card-blue__text {
  font-size: 14px;
  line-height: 1.8;
  color: #333;
  text-align: left;
}

.card-blue__text ul {
  margin-left: 30px;
}
.feature__lv3--blue {
  padding: 60px 20px;
}

.feature__inner__lv3--blue {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  gap: 24px;
}

.feature__inner__lv3--blue img {
  width: 40%;
}

.strength__list--blue {
  width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: space-evenly;
  align-items: center;
}

.strength__list--blue li {
  border: 1px solid var(--lambda-blue);
  padding: 20px;
  font-size: 16px;
  list-style: none;
  border-radius: 16px;
  max-width: 200px;
  gap: 10px;
  width: 100%;
  text-align: center;
}

.strength__list--blue li:hover {
  background-color: var(--lambda-blue);
  color: #fff;
  transition: 0.3s;
}

.card__lv3--blue {
  flex: 1;
  background: #fff;
  padding: 24px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.card__title__lv3--blue {
  font-size: 20px;
  font-weight: bold;
  color: #fff;
  background: #0168b7;
  text-align: center;

  margin: -24px -24px 16px -24px;
  padding: 14px 16px;
}

.card__text__lv3--blue {
  font-size: 16px;
  line-height: 1.7;
  color: #555;
  margin-bottom: 12px;
}

.card__list__lv3--blue {
  margin-bottom: 12px;
  padding-left: 18px;
}

.card__item__lv3--blue {
  font-size: 14px;
  margin-bottom: 6px;
}

.card__item__lv3--blue::marker {
  color: #0168b7;
}

@media (max-width: 768px) {
  .feature__inner__lv3--blue {
    flex-direction: column;
  }
  .card-blue__container {
    flex-direction: column;
    align-items: center;
  }
}

/* ▼ Ladder Creator ▼ */

.page-ladder-creator__title {
  width: 55%;
  margin-left: 0;
  background-position: bottom;
  background-repeat: no-repeat;
  padding: 30px 0 30px 0;
  justify-content: center;
}
.page-ladder-creator__title img {
  width: 90%;
}

.c-page-hero__title--lv2--en--ladder-creator {
  font-size: clamp(20px, 2.08vw, 40px) !important;
  letter-spacing: 0.2em;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
  position: relative;
  top: 10px;
}

.products-title--logo {
  max-width: 360px;
  margin: 0 auto;
}

.img__list--ladder-creator {
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
}

.img__list--ladder-creator img {
  width: 80%;
}

/* ▼ ALFAシリーズ ▼ */

.page-alfa-series__title {
  width: 55%;
  margin-left: 0;
  background-position: bottom;
  background-repeat: no-repeat;
  background-size: 100% 45%;
  padding: 10px 0 20px 0;
  justify-content: center;
}
.c-page-hero__title--lv2--jp {
  font-size: clamp(80px, 7.29vw, 140px);
  letter-spacing: 0.2em;
  position: relative;
  top: 20%;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
  letter-spacing: 1.2rem;
}
.c-page-hero__title--lv2--en {
  font-size: clamp(24px, 3.125vw, 60px);
  letter-spacing: 0.2em;
  text-shadow: 0 0 2px #fff, 0 0 10px #fff, 0 0 10px #dc143c, 0 0 30px #bf272d;
}

.products-title--logo {
  max-width: 360px;
  margin: 0 auto;
}

.alfaTabs {
  position: relative;
  max-width: 1100px;
  margin: 100px auto;
}

.alfaTabs__nav {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 120px;
  margin-bottom: 50px;
  padding-bottom: 10px;
}

.tab {
  border: none;
  background: none;
  cursor: pointer;
  padding-bottom: 20px;
  transition: 0.3s;
  background-repeat: no-repeat;
  width:200px;
  height: 50px;
  background-position: center;
}
.tab:hover {
  color: #c40000;
}

.tab.is-active {
  color: #c40000;
}

.tab__line {
  position: absolute;
  bottom: 0;
  height: 4px;
  width: 80px;
  background: #c40000;
  transition: 0.3s ease;
}

.bg-color--lambda {
  background: var(--lambda-blue) !important;
}

.tabs--alfa--content {
  padding: 30px 15%;
}

.tabs--alfa--content h3 {
  font-size: clamp(48px, 4.17vw, 80px);
  font-style: italic;
  color: #c40000;

}

.tabs--alfa--content h3 > span {
  font-style: normal;
  color: #333;
}


.tabs--alfa--content span.a-fz-xs {
  font-size: clamp(32px, 1.875vw, 36px);
}


.tabs--alfa--content h3 > span {
  font-style: normal;
  color: #333;
}

.tabs--alfa--content h5 {
  color: #c40000;
font-size: clamp(20px, 1.4vw, 24px);
}


.tabs--alfa--content .tabs--img img {
  width: 100%;
}

img.tabs--img-lambda {
  width: 60%;
  margin: 20px 0;
}

.tab__connector {
  position: absolute;
  width: 2px;
  background: #c40000;
  transform-origin: top;
  transform: scaleY(0);
  margin-top: 10px;
}

.tab__connector.is-animate {
  animation: lineGrow 0.4s ease forwards;
}

@keyframes lineGrow {
  from {
    transform: scaleY(0);
  }
  to {
    transform: scaleY(1);
  }
}

.alfaTabs__content {
  background:#f5f5f7;
  padding: 80px 40px;
  border-top: 1px solid #c40000;
  position: relative;
  top: 10px;
}

.border-lambda {
  border: 1px solid var(--lambda-blue) !important;
}

.tabPanel {
  display: none;
  text-align: center;
}

.tabPanel.is-active {
  display: block;
}

h2 {
  font-size: 56px;
  font-style: italic;
  margin-bottom: 10px;
}

.red {
  color: #c40000;
}

.sub {
  color: #777;
  font-style: italic;
  margin-bottom: 40px;
}

.lead {
  color: #c40000;
  margin-bottom: 50px;
  font-size: 18px;
}

h2.heading-lv2--lambda {
  font-size: clamp(20px, 1.25vw, 24px) !important;
  font-family: "Yu Mincho", "游明朝", serif !important;
}

h2.heading-lv2__main--lambda {
  padding: 0.25em 0.8em !important;
  background: transparent !important;
  border-left: solid 12px var(--lambda-blue) !important;
}

.alfa-btn--tab {
  background-image: url(/assets/img/logo-alfa--full.svg);
  display: inline-block;
}

.alfa-price-btn--tab {
  background-image: url(/assets/img/logo-alfa-price.svg);
  display: inline-block;
}

.alfa-lcr-btn--tab {
  background-image: url(/assets/img/logo-alfa-lcr.svg);
  display: inline-block;
}

.lambda-loan-btn--tab {
  background-image: url(/assets/img/logo-lambda-loan.svg) !important;
}

.lambda-abc-btn--tab {
  background-image: url(/assets/img/logo-lambda-bis.svg) !important;
}

.lambda-core-btn--tab {
  background-image: url(/assets/img/logo-lambda-abc.svg) !important;
}

/* Lambda */
.page-img-list-lambda {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  list-style: none;
  margin-top: 60px;
  margin: 80px auto 0;
  max-width: 900px;
}

.page-img-list-lambda li {
  flex: 0 0 33.3333%;
  padding: 0 10px 10px;
  text-align: center;
  margin: 20px 0;
}

.page-img-list-lambda img {
  width: 70%;
}

.item-omega--img img {
  width: 50% !important;
}


.page-lambda-list {
  list-style: none;
  padding: 0;
  margin-bottom: 60px;
}
.page-lambda-item {
  display: flex;
  margin-bottom: 40px;
}

.page-lambda-item-num {
  height: 50px;
  width: 50px;
  background-color: var(--lambda-blue);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
  margin-right: 1em;
  margin-top: 2px;
}

.page-lambda-item-body {
  display: flex;
  flex-direction: column;
}
.page-lambda-item-title {
  margin: 0;
  line-height: 1.6;
  font-size: 24px;
  margin-top: 7px;
}
.page-lambda-item-text {
  margin: 0;
  font-size: 1.15rem;
  line-height: 1.6;
  margin-top: 30px;
}

.lambda__img-Box {
  width: 70%;
  max-width: 800px;
  margin: 80px auto;
  text-align: center;
}

.lambda__img-Box img {
  width: 100%;
}

.tabs-feature {
  display:flex;
  justify-content:center;
  gap:40px;
  padding:20px;
  border-bottom:1px solid #ccc;
  position:relative;
}

.tab-feature {
  cursor:pointer;
  color:#999;
  padding:10px 20px;
}

.tab-feature.active{
  color:#fff;
  background:#d40000;
  border-radius:10px;
}

.tab-line{
  position:absolute;
  bottom:0;
  height:2px;
  background:#d40000;
  left:0;
  width:0;
}

.wrapper-feature{
  overflow:hidden;
}

.contents-feature{
  display:flex;
}

.content-feature{
  flex:0 0 100%;
  height: auto;
  justify-content:center;
  align-items:center;
  padding: 80px 0 0;
}

.contents-feature > * {
  width: 100%;
  flex-shrink: 0;
}

.content-feature figure {
  text-align: center;
}

.content-feature img {
  width:70%;
  max-width: 800px;
}

.text-feature {
  display: block;
  max-width: 760px;
  margin: 30px auto;
  position: relative;
}

.text-feature h3::before {
  content: "";
  background: url(/assets/img/pic-note--01.svg);
  background-repeat: no-repeat;
  display: inline-block;
  width: 80px;
  height: 80px;
  position: absolute;
  top: -20px;
  left: -100px;  
}

.text-feature p {
  font-size: 1.15rewm;
}

.features-point {
  position: relative;
}

.features-point h3 {
  font-size: 28px;
  border-bottom: solid #c40000 6px;
}

.features-point h3::before {
  content: "";
  background: url(/assets/img/pic-hint--def.svg);
  background-repeat: no-repeat;
  display: inline-block;
  width: 80px;
  height: 80px;
  position: absolute;
  top: -20px;
  left: -80px;  
}

.features-point--note h3 {
  font-size: 20px;
}

.features-point--note {
  position: relative;
}

.features-point--note h3::before {
  content: "";
  background: url(/assets/img/pic-note--01.svg);
  background-repeat: no-repeat;
  display: inline-block;
  width: 80px;
  height: 80px;
  position: absolute;
  top: -6px;
  left: -100px;  
}

.nav-feature{
  display:flex;
  justify-content:space-between;
  padding:30px;
}

.btn-feature{
  padding:12px 24px;
  border:1px solid #999;
  background:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:10px;
  transition:.3s;
}

.btn-feature:hover{
  background:#333;
  color:#fff;
}

.btn-feature.disabled{
  opacity:.3;
  pointer-events:none;
}

.table--lv1 {
 width: 100%;
 border-collapse: collapse;
 border-spacing: 0;
 border-top: solid 1px #333;
}
.table--lv1 th,
.table--lv1 td {
 padding: 10px 0 10px 5em;
 border-bottom: solid 1px #333;
 height: 100px;
}

.table--lv2 {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}

.table--lv2 th {
  padding: 30px 10px;
  border-bottom: 1px solid #d9d9d9;
  text-align: center;
}

.table--lv2 td {
  padding: 30px 10px;
  line-height: 1.6;
}

.table--lv2 tr td:not(:last-child) {
  text-align: center;
}

.table--lv2 tbody tr {
  border-top: 1px solid #d9d9d9;
}

.table--lv3 {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
  line-height: 1.6;
}

.table--lv3 th,
.table--lv3 td {
  padding: 20px;
  vertical-align: top;
}

.table--lv3 thead th {
  border-bottom: 2px solid #ccc;
  text-align: center;
  font-weight: bold;
}

.table--lv3 tbody tr {
  border-bottom: 1px solid #ddd;
}

.table--lv3 td:first-child {
  width: 35% !important;
  text-align: center;
}

.table--lv3 td:last-child {
  width: 65%;
  color: #555;
}

.table--lv4 {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.table--lv4 td {
  border: 1px solid #ccc;
  text-align: center;
  vertical-align: middle;
  padding: 20px 10px;
  font-size: 14px;
}

.table--lv4 td.left-td {
  border-left: none;
}

.table--lv4 td.right-td {
  border-right: none;
}

.table--lv4 tr:first-child td {
  border-top: 2px solid #999;
}

.table--lv4 tr:last-child td {
  border-bottom: 2px solid #999;
  border-right: none;
}

.table__products--results {
  width: 100% !important;
  max-width: 900px !important;
  margin: 10px auto !important;
  border-collapse: separate !important; 
  border-spacing: 0 !important;
  background-color: #ffffff !important;
  border-radius: 16px 16px 0 0 !important;
  overflow: hidden !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06) !important;
  border: 1px solid rgba(217, 29, 29, 0.2) !important;
}

.table__products--results thead {
  background-color: #c00000 !important;
}

.table__products--results th {
  color: #ffffff !important;
  padding: 22px 10px !important;
  text-align: center !important;
  vertical-align: middle !important;
  border: 0.5px solid rgba(255, 255, 255, 0.2) !important;
  font-size: 15px !important;
}

.table__products--results .header-product-title {
  font-size: 17px !important;
  width: 24% !important;
}

.table__products--results .header-cases-main {
  border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important;
  font-size: 18px !important;
  letter-spacing: 0.05em !important;
}

.table__products--results td {
  padding: 24px 10px !important;
  text-align: center !important;
  vertical-align: middle !important;
  border: 0.5px solid rgba(0, 0, 0, 0.05) !important;
  background-color: #ffffff !important;
  color: #444 !important;
  font-size: 18px !important;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}

.table__products--results .col-product-name {
  background-color: #d72b2b !important;
  color: #ffffff !important;
  border-right: 1px solid rgba(255, 255, 255, 0.1) !important;
}

.table__products--results tbody td:not(.col-product-name):hover {
  background-color: #ffffff !important;
  color: #d91d1d !important;
  font-weight: 700 !important;
  transform: scale(1.1) translateY(-2px) !important;
  box-shadow: 0 15px 35px rgba(217, 29, 29, 0.12) !important;
  border-color: transparent !important; /* 境界線を消す */
  z-index: 20 !important;
  position: relative !important;
  cursor: default !important;
  border-radius: 8px !important;
}

.table__products--results .col-product-name:hover {
  filter: brightness(1.1) !important;
  cursor: default !important;
}

.table__date-info {
  text-align: right;
  font-size: 11px;
  color: #aaa;
  max-width: 900px;
  margin: 0 auto;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.list-icon--price--ico {
  position: relative;
  font-size: 20px;
  margin-left: 90px;
}

.list-icon--price--ico ul {
  list-style: none;
}

.list-icon--price--ico ul li {
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: left;
}

.list-icon--price--ico span {
  display: inline-block;
  width: 60px;
  height: 50px;
  margin-right: 20px;
}
span.icon--price--01 {
  background: url(/assets/img/pic-price-01.svg) no-repeat center / contain;
}
span.icon--price--02 {
  background: url(/assets/img/pic-price-02.svg) no-repeat center / contain;
}
span.icon--price--03 {
  background: url(/assets/img/pic-price-03.svg) no-repeat center / contain;
}
span.icon--price--04 {
  background: url(/assets/img/pic-price-04.svg) no-repeat center / contain;
}
span.icon--price--05 {
  background: url(/assets/img/pic-price-05.svg) no-repeat center / contain;
}

.list-icon--free--ico {
  position: relative;
  font-size: 20px;
  margin-left: 90px;
}

.list-icon--free--ico ul {
  list-style: none;
}

.list-icon--free--ico ul li {
  height: 90px;
  display: flex;
  align-items: center;
  justify-content: left;
  border-bottom: 1px solid #c40000;
}

.list-icon--free--ico span {
  display: inline-block;
  width: 60px;
  height: 50px; 
  margin-right: 20px;
}

span.icon--free--01 {
  background: url(/assets/img/pic-free-01.svg) no-repeat center / contain;
}
span.icon--free--02 {
  background: url(/assets/img/pic-free-02.svg) no-repeat center / contain;
}
span.icon--free--03 {
  background: url(/assets/img/pic-free-03.svg) no-repeat center / contain;
}
span.icon--free--04 {
  background: url(/assets/img/pic-free-04.svg) no-repeat center / contain;
}
span.icon--free--05 {
  background: url(/assets/img/pic-free-05.svg) no-repeat center / contain;
}
span.icon--free--06 {
  background: url(/assets/img/pic-free-06.svg) no-repeat center / contain;
}

.output-list {
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  text-align: center;
  gap: 20px;
}

.output-list li {
  width: 33%;
}

.text-num--xl {
  font-size: 72px;
  color:#c40000;
}

.output-txt {
  display: block;
  font-size: 18px;
  margin: 30px auto;
}

.output-txt::after {
  content: "";
  border-bottom: 6px solid #c40000;
  width: 80px;
  border-radius: 6px;
  display: block;
  margin: 40px auto 0;
}

.output-img {
  width:  33%;
  margin: 0 auto;
}

.bg-Box {
  position: relative;
}
.voice-Title-Box {
  background: url(/assets/img/img-voice--bg.jpg) no-repeat bottom right / 40% auto;
  display: block;
  width:100%;
  height: 500px;
  position: absolute;
  right: 0;
  top: 150px;
  z-index: -2;
}

.voice-Title img {
  width: 100%;
  max-width: 600px;
}

/* =====================
  モーダル
===================== */

.btn__modal {
  cursor: pointer;
}

.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.6);

  display: flex;
  justify-content: center;
  align-items: center;

  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;

  z-index: 1000;
}

.modal.is-active {
  opacity: 1;
  visibility: visible;
}

.modal__content {
  background: #fff;
  padding: 30px;
  max-width: 720px;
  width: 90%;
  position: relative;

  transform: translateY(30px);
  opacity: 0;

  transition: all 0.3s ease;
}

.modal.is-active .modal__content {
  transform: translateY(0);
  opacity: 1;
}

.modal__content--Box {
  display: grid;
  grid-template-columns: 40% 60%;
  justify-content: flex-start;
  align-items: center;
}

.modal__content--title {
  padding: 0.25em 0.8em;/*上下 左右の余白*/
  background: transparent;/*背景透明に*/
  font-size: 28px;
  border-left: solid 8px #b30000;/*左線*/
  font-style: normal;
}

.modal__container {
  max-width: 800px;
  margin: 40px auto;
  background: #fff;
  padding: 40px;
  border-radius: 16px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.modal__intro-text {
  margin: 30px 0;
  font-size: 16px;
}

.modal__contact-section {
  margin-bottom: 40px;
}

.modal__section-title {
  font-weight: bold;
  font-size: 1.1rem;
  margin-bottom: 15px;
  padding-bottom: 8px;
  border-bottom: 1px solid #b30000;
  display: block;
}

.modal__contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
}

.modal__contact-item {
  padding: 20px;
  border: 1px solid #e7e7e7;
  transition: transform 0.2s;
  box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.modal__contact-item:hover {
  border-color: #b30000;
  transition: 0.3s;
}

.modal__label {
  display: block;
  margin-bottom: 10px;
  font-size: 0.8rem;
}

.modal__cv img {
  max-height: 15px;
}


.modal__notes {
  background-color: #fff8f8;
  border: 1px dashed #b30000;
  padding: 20px;
  margin-top: 40px;
  font-size: 0.9rem;
  border-radius: 16px;
}

.modal__notes p {
  margin: 0 0 10px 0;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeOutDown {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(30px);
  }
}

.modal.is-open .modal__content {
  animation: fadeInUp 0.3s ease forwards;
}

.modal.is-close .modal__content {
  animation: fadeOutDown 0.3s ease forwards;
}

/* Responsive */
@media (max-width: 600px) {
  .modal__container {
      padding: 20px;
  }
  .modal__cv {
      font-size: 1.1rem;
  }
}

/* メインコンテナ */
.modal__recruit {
  color: #333333;
  line-height: 1.6;
  max-width: 800px;
  width: 100%;
  margin: 0 auto;
  padding: 40px;
  border-radius: 12px;
  box-sizing: border-box;
}

.modal__recruit .important-note {
  background-color: #fff;
  border: 1px solid #e7e7e7;
  padding: 20px;
  margin-bottom: 30px;
}

.modal__recruit .important-note p {
  margin: 0;
  color: #b30000;
  font-size: 0.95rem;
}

.modal__recruit .intro-text {
  margin-bottom: 25px;
  font-size: 1rem;
}

.modal__recruit .section-title {
  font-weight: bold;
  font-size: 0.9rem;
  color: #666;
  margin-bottom: 10px;
  display: block;
  border-bottom: 1px solid #eeeeee;
  padding-bottom: 5px;
}

/* 問い合わせカード部分 */
.modal__recruit .contact-card {
  padding: 25px;
  background-color: #ffffff;
  border: 2px solid #b30000;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background-color 0.3s ease;
}

.modal__recruit .contact-card:hover {
  background-color: #fafffb;
}

.modal__recruit .label-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.modal__recruit .label {
  font-weight: bold;
  font-size: 1rem;
  color: #333;
}

.modal__recruit .email-info {
  text-align: right;
}

.modal__recruit .email-header {
  font-size: 0.8rem;
  color: #888;
  font-weight: bold;
  display: block;
  margin-bottom: 2px;
}

.modal__recruit .link {
  font-size: 1.5rem;
  font-weight: bold;
  text-decoration: none;
  display: block;
}

.modal__recruit .link:hover {
  text-decoration: underline;
}

.modal__recruit .sub-text {
  font-size: 0.85rem;
  color: #666;
  margin-top: 5px;
}

/* レスポンシブ対応 */
@media (max-width: 640px) {
  .modal__recruit {
      padding: 25px 20px;
  }
  .modal__recruit .contact-card {
      flex-direction: column;
      text-align: center;
      gap: 20px;
  }
  .modal__recruit .email-info {
      text-align: center;
  }
  .modal__recruit .link {
      font-size: 1.3rem;
  }
}


/* =====================
  条件リンク
===================== */
.link {
  display: inline-block;
  margin-bottom: 20px;
  color: #007bff;
  cursor: pointer;
}

/* =====================
  チェックボックス（非活性）
===================== */
.checkbox {
  opacity: 0.5;
  pointer-events: none;
}

/* 有効化 */
.checkbox.is-active {
  opacity: 1;
  pointer-events: auto;
}

.terms-link {
  text-decoration: underline;
}
.terms-link:hover {
  text-decoration: none;
}

.modal__close {
  position: absolute;
  top: 10px;
  right: 15px;
  font-size: 20px;
  cursor: pointer;
}

.image-wrapper {
  perspective: 1000px; 
  overflow: visible; /* 飛び出すので隠さない */
  display: flex;
  justify-content: center;
}

.js-image-reveal {
  opacity: 0;
  will-change: transform, opacity;
  /* 影も一緒に動かすとさらに「浮いてる感」が出ます */
  filter: drop-shadow(0 20px 30px rgba(0,0,0,0.1));
}

/*サイトマップ*/

.sitemap__container {
  max-width: 1000px;
  margin: 60px auto;
  padding: 0 40px;
}

/* ヘッダータイトル */
.sitemap__header {
  text-align: center;
  margin-bottom: 80px;
}

.sitemap__header h1 {
  font-size: 42px;
  font-weight: 400;
  margin: 0;
  letter-spacing: 0.1em;
}

.sitemap__header h1 span {
  color: #b02318;
  font-size: 52px;
  font-style: italic;
}

.sitemap__header p {
  font-size: 14px;
  color: #888;
  margin: 5px 0 15px;
  letter-spacing: 0.3em;
}

.sitemap__title-underline {
  width: 60px;
  height: 4px;
  background-color: #333;
  margin: 0 auto;
}

/* メインレイアウト */
.sitemap__layout {
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
}

/* ロゴデザイン */
.sitemap__logo-placeholder {
  margin-top: 10px;
  text-align: center;
}
.sitemap__logo-box {
  width: 100%;
}
.sitemap__logo-box img {
  width: 100%;
}
.sitemap__logo-subtext {
  font-size: 20px;
  margin-top: 10px;
  display: block;
  letter-spacing: 0.2rem;
}

/* サイトマップツリー */
.sitemap__tree-nav {
  position: relative;
}

.sitemap__main-list {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}

/* 垂直のメイン赤い線 */
.sitemap__main-list::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 10px;
  bottom: 15px;
  width: 1px;
  background-color: #b02318;
  height: 0;
  animation: sitemap__extendVertical 1.2s ease-out forwards;
}

.sitemap__main-list > li {
  position: relative;
  padding-left: 45px;
  margin-bottom: 35px;
}

/* メインの赤い丸 */
.sitemap__main-list > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 11px;
  height: 11px;
  background-color: #b02318;
  border-radius: 50%;
  z-index: 1;
  transform: scale(0);
  animation: sitemap__popDot 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

.sitemap__main-list a {
  text-decoration: none;
  color: #555;
  font-size: 18px;
  transition: color 0.2s;
  opacity: 0;
  display: inline-block;
  transform: translateX(-10px);
  animation: sitemap__fadeInText 0.5s ease-out forwards;
}

.sitemap__main-list a:hover {
  color: #b02318;
}

/* 子階層のスタイル */
.sitemap__sub-list {
  list-style: none;
  padding: 20px 0 0 0;
  margin: 0;
  position: relative;
}

.sitemap__sub-list li {
  position: relative;
  padding-left: 60px;
  margin-bottom: 20px;
}

/* 子階層の横線（赤色に変更） */
.sitemap__sub-list li::before {
  content: "";
  position: absolute;
  left: -40px;
  top: 15px;
  width: 0;
  height: 1px;
  background-color: #b02318; /* 赤に変更 */
  animation: sitemap__extendHorizontal 0.5s ease-out forwards;
}

/* 子階層の小さな赤丸 */
.sitemap__sub-list li::after {
  content: "";
  position: absolute;
  left: 15px;
  top: 11px;
  width: 9px;
  height: 9px;
  background-color: #b02318;
  border-radius: 50%;
  transform: scale(0);
  animation: sitemap__popDot 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

/* 子階層用の垂直線（赤色に変更） */
.sitemap__has-children > .sitemap__sub-list::before {
  content: "";
  position: absolute;
  left: -40px;
  top: 0;
  bottom: 15px;
  width: 1px;
  background-color: #b02318; /* 赤に変更 */
  height: 0;
  animation: sitemap__extendVerticalSub 0.8s ease-out 0.8s forwards;
}

/* --- アニメーション遅延設定 --- */
.sitemap__main-list > li:nth-child(1)::before { animation-delay: 0.1s; }
.sitemap__main-list > li:nth-child(2)::before { animation-delay: 0.3s; }
.sitemap__main-list > li:nth-child(3)::before { animation-delay: 0.5s; }
.sitemap__main-list > li:nth-child(4)::before { animation-delay: 1.2s; }
.sitemap__main-list > li:nth-child(5)::before { animation-delay: 1.4s; }
.sitemap__main-list > li:nth-child(6)::before { animation-delay: 1.6s; }
.sitemap__main-list > li:nth-child(7)::before { animation-delay: 1.8s; }
.sitemap__main-list > li:nth-child(8)::before { animation-delay: 2.0s; }

/* 子階層の遅延（製品紹介の後に続くように設定） */
.sitemap__sub-list li:nth-child(1)::before, .sitemap__sub-list li:nth-child(1)::after { animation-delay: 0.9s; }
.sitemap__sub-list li:nth-child(2)::before, .sitemap__sub-list li:nth-child(2)::after { animation-delay: 1.0s; }
.sitemap__sub-list li:nth-child(3)::before, .sitemap__sub-list li:nth-child(3)::after { animation-delay: 1.1s; }

.sitemap__main-list > li:nth-child(1) > a { animation-delay: 0.2s; }
.sitemap__main-list > li:nth-child(2) > a { animation-delay: 0.4s; }
.sitemap__main-list > li:nth-child(3) > a { animation-delay: 0.6s; }
.sitemap__sub-list li:nth-child(1) > a { animation-delay: 1.0s; }
.sitemap__sub-list li:nth-child(2) > a { animation-delay: 1.1s; }
.sitemap__sub-list li:nth-child(3) > a { animation-delay: 1.2s; }
.sitemap__main-list > li:nth-child(4) > a { animation-delay: 1.3s; }
.sitemap__main-list > li:nth-child(5) > a { animation-delay: 1.5s; }
.sitemap__main-list > li:nth-child(6) > a { animation-delay: 1.7s; }
.sitemap__main-list > li:nth-child(7) > a { animation-delay: 1.9s; }
.sitemap__main-list > li:nth-child(8) > a { animation-delay: 2.1s; }

/* キーフレーム */
@keyframes sitemap__extendVertical {
  from { height: 0; }
  to { height: calc(100% - 25px); }
}
/* 子階層用（終了時の高さを微調整） */
@keyframes sitemap__extendVerticalSub {
  from { height: 0; }
  to { height: calc(100% - 20px); }
}
@keyframes sitemap__extendHorizontal {
  from { width: 0; }
  to { width: 60px; }
}
@keyframes sitemap__popDot {
  from { transform: scale(0); }
  to { transform: scale(1); }
}
@keyframes sitemap__fadeInText {
  from { opacity: 0; transform: translateX(-10px); }
  to { opacity: 1; transform: translateX(0); }
}

/* レスポンシブ */
@media (max-width: 768px) {
  .sitemap__layout {
      flex-direction: column;
      align-items: center;
      gap: 50px;
  }
  .sitemap__logo-placeholder {
      text-align: center;
  }
}

/* Trigger Buttons */
.modal__function-btn-list { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.modal__function-trigger:hover { opacity: 0.8; }

/* Modal Base */
.modal__function-overlay {
  position: fixed; inset: 0; background: var(--mf-bg-overlay);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden; z-index: 1000; padding: 20px;
}

.modal__function-content {
  width: var(--mf-container-width); max-height: 90vh; background: white;
  border-radius: 8px; overflow-y: auto; position: relative; box-shadow: 0 20px 40px rgba(0,0,0,0.5);
}

.modal__function-header {
  padding: 15px; text-align: center; color: white; position: sticky; top: 0; z-index: 2;
}
.modal__function-header h2 {
  font-style: normal;
  font-family: "Yu Mincho", "游明朝", serif;
  margin-bottom: 0;
}
.modal__function-close {
  position: absolute;
  right: -3%;
  top: 5px;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: white;
  font-size: 4rem;
  cursor: pointer;
}
.modal__function-body { padding: clamp(1.5rem, 5vw, 2.5rem); line-height: 1.7; }

/* Content Styling */
.modal__function-intro { margin-bottom: 2rem; border-bottom: 1px solid #eee; padding-bottom: 1.5rem; }
.modal__function-section { margin-bottom: 2.5rem; }
.modal__function-section h3 { 
  display: inline-block; background: #eee; padding: 4px 12px; margin-bottom: 10px; font-size: 1.1rem;
  border-left: 8px solid; font-weight: normal; font-family: "Yu Mincho", "游明朝", serif;
}
.modal__function-desc { font-size: 0.95rem; color: #444; margin-bottom: 12px; text-align: justify; }
.modal__function-features { font-size: 0.9rem; border-top: 1px solid #eee; padding-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.modal__function-features b { color: #000; }

/* Category Specific Border Colors */
.modal__function-content-genjo h3 { border-left-color: var(--mf-color-genjo); }
.modal__function-content-kikan h3 { border-left-color: var(--mf-color-kikan); }
.modal__function-content-jika h3 { border-left-color: var(--mf-color-jika); }
.modal__function-content-kakucho h3 { border-left-color: var(--mf-color-kakucho); }
.modal__function-content-sonota h3 { border-left-color: var(--mf-color-sonota); }

/* Grid for 'Other' */
.modal__function-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }

.address__copy-btn {
  cursor: pointer;
  border: 1px solid #c40000;
  color: #c40000;
  background: transparent;
}

.address__copy-btn:hover {
  cursor: pointer;
  background: #c40000;
  color: #fff;
  transition: 0.3s;
}
.img-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: .3s;
  z-index: 9999;
}

/* 開いた状態 */
.img-modal.is-open {
  opacity: 1;
  visibility: visible;
}

/* ▼ 背景（後ろ） */
.img-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.8);
  z-index: 0; /* ← 明示 */
}

/* ▼ 画像（前） */
.img-modal__content {
  position: relative;
  max-width: 90%;
  max-height: 90%;
  z-index: 1;
  transform: translateY(20px);
  transition: .3s;
}

.img-modal.is-open .img-modal__content {
  transform: translateY(0);
}

.img-modal__content img {
  width: 100%;
  height: auto;
  display: block;
}

/* 既存のスタイルと分離するため独自のクラス名を使用 */
.privacy__modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--privacy-overlay);
  backdrop-filter: blur(8px);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  padding: 20px;
  box-sizing: border-box;
}

.privacy__modal-window {
  background: var(--privacy-bg-modal);
  width: 100%;
  max-width: 640px;
  padding: 50px 40px;
  border-radius: 16px;
  position: relative;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3);
  font-family: 'Noto Sans JP', sans-serif;
}

.privacy__close-btn {
  position: absolute;
  padding: 0;
  top: -10px;
  right: 30px;
  font-size: 28px;
  background: #ccc;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
}

.privacy__close-btn:hover {
  background: #e0e0e0;
}

.privacy__modal-header {
  margin-bottom: 30px;
  border-left: 4px solid var(--privacy-red);
  padding-left: 15px;
}

.privacy__title {
  font-size: 1.2rem;
  font-weight: 700;
  margin: 0;
  color: var(--privacy-text-main);
  line-height: 1.4;
  font-style: normal;
}

.privacy__content {
  line-height: 1.8;
  color: var(--privacy-text-main);
}

.privacy__company {
  font-size: 1.15rem;
  margin-bottom: 15px;
  display: block;
}

.privacy__address {
  margin-bottom: 20px;
  display: block;
  font-size: 0.95rem;
}

.privacy__info-list {
  list-style: none;
  padding: 0;
  margin: 0 0 25px 0;
}

.privacy__info-item {
  display: flex;
  border-bottom: 1px solid #f0f0f0;
  padding: 8px 0;
}

.privacy__info-label {
  width: 160px;
  font-weight: 700;
  color: var(--privacy-text-sub);
  font-size: 0.9rem;
}

.privacy__info-value {
  flex: 1;
}

.privacy__info-value img {
  height: 15px;
}

.privacy__note-box {
  background: #f8f9fa;
  padding: 15px 20px;
  border-radius: 8px;
  font-size: 0.85rem;
  color: var(--privacy-text-sub);
  text-align: center;
}

.privacy__link {
  color: var(--privacy-accent);
  text-decoration: none;
  font-weight: 500;
}

.privacy__link:hover {
  text-decoration: underline;
}

@media (max-width: 599px) {
  .privacy__modal-window { padding: 40px 20px; }
  .privacy__info-item { flex-direction: column; }
  .privacy__info-label { width: 100%; margin-bottom: 2px; }
}