@charset "UTF-8";

/*
css
　 ├ style.css--------：WEB 1,400px以上
　 ├ pc.css-----------：WEB 1,399px以下、1,025px以上
　 ├ tablet.css-------：WEB 1,024px以下、769px以上
　 └ smart.css--------：WEB 768px以下
*/

/* css記載順序
01. 固定ページのh1,h2見出し
02. toppage
03. form
04. 下層ページ
end css記載順序*/

/*************************** 01. 固定ページのh1,h2見出し *******************/
h1 {
  font-size: 3.2rem;
  line-height: 1.6;
  letter-spacing: 2px;
  color: #000;
  font-weight: bold;
}

.page-head h1 {
  color: #fff;
}

#top h1 {
  line-height: 1.08;
  margin-bottom: 4rem;
  font-size: 5rem;
  text-align: center;
}

h1 span.birdy {
  font-size: 87px;
  color: var(--white);
  font-weight: var(--fw-bold);
  line-height: 0.6;
}

h1 span.gra {
  background-image: linear-gradient(90deg, #00885a, #0c4ba2);
  color: #fff;
  padding: 6px 16px;
  margin-right: 10px;
  display: inline-block;
  transform: translateY(-14px);
  font-size: 30px;
}

h1 span.gra:first-of-type {
  display: block;
}

h2 {
  color: var(--black);
  letter-spacing: 3px;
  margin: 0 auto;
  /* padding-bottom: 4rem;  h2単体ではなくてh2のブロックにpadding-bottom: 4rem;を適用*/
  font-size: 3rem;
  line-height: 1;
  position: relative;
}

h2.ttl01 {
  background: linear-gradient(90deg, #0c4ba2, #00885a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-align: center;
  font-size: 32px;
  line-height: 1.4;
}

.top h2.ttl01 {
  font-size: 38px;
  margin-bottom: 2rem;
}

h2.ttl01 span {
  display: block;
  background: linear-gradient(90deg, #0c4ba2, #00885a);
  color: #fff;
  -webkit-text-fill-color: initial;
  width: max-content;
  text-align: center;
  padding: 8px 20px;
  margin: 0 auto;
}

h2.ttl01.mt-0 {
  margin-top: 0;
}

.top h2 {
  text-align: center;
}

.top h2.ttl01 span {
  font-size: 6.6rem;
  font-style: italic;
  font-weight: bold;
  margin: 10px auto;
}

h2.ttl02 {
  text-align: center;
  font-size: 60px;
}

h2.ttl02 .gra {
  display: block;
  background: linear-gradient(90deg, #0c4ba2, #00885a);
  color: #fff;
  -webkit-text-fill-color: initial;
  width: max-content;
  text-align: center;
  padding: 5px 20px;
  margin: 0 auto;
  font-size: 28px;
  margin-bottom: -50px;
}

h2.ttl02 .ttl02-01 {
  font-size: 30px;
  padding-left: 100px;
  display: block;
  transform: translateY(75px);
}

h2.ttl02 .number {
  font-size: 155px;
  line-height: 1;
  color: #108974;
}

h2.ttl03 span {
  display: block;
  margin-bottom: 1rem;
  font-size: 3.8rem;
}

h2.ttl03 {
  font-size: 1.4rem;
}

h2.ttl03.gra {
  background: linear-gradient(90deg, #0c4ba2, #00885a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  padding-bottom: 2rem;
}

h3 {
  font-size: 2.2rem;
  font-weight: bold;
}
/*************************** 02. toppage ***********************/
.home #content,
.top #content {
  padding-top: 160px;
  /* 160px固定ヘッダー分オフセット */
}

.top .menu-item-home {
  display: none;
}

/*メインビジュアル*/
.mv {
  background: linear-gradient(#fff 40%, #81c5ae);
  padding-top: 0px;
  padding-bottom: 60px;
}

.top-09 h3 {
  margin-bottom: 0;
  position: relative;
  padding-left: 36px;
}

.top-09 h3:before {
  content: "";
  width: 28px;
  height: 28px;
  position: absolute;
  top: 50%;
  left: 0%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  border-radius: 50%;
  background: url(https://birdy-official.co.jp/wp-content/themes/swell_child/assets/images/img/top-09-arrow.png)
    no-repeat center;
  background-size: contain;
}

/*************************** 03. form  ***********************/
input[type="submit"]:hover {
  opacity: var(--opacity-hover);
  transition: all 0.3s ease 0.2s;
  color: #fff;
  border: none;
}

.wpcf7-spinner {
  display: none;
  position: absolute;
  width: 0;
  margin: 0;
}

/*************************** 04. 下層ページ  ***********************/
.area-page .l-content {
  padding-top: 2em;
}

.l-mainContent__inner > .post_content {
  margin-top: 2em;
}

.l-topTitleArea__body .c-pageTitle {
  color: #fff;
}

/*エリア*/
/*FV*/

.area-page .l-topTitleArea {
  display: none;
}

.industry-page .l-topTitleArea {
  display: none;
}

.area-container section {
  margin-top: 50px;
}

.area-fv {
  background: linear-gradient(#fff 40%, #81c5ae);
  padding-bottom: 30px;
  padding-top: 30px;
}

.area-fv-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 1400px;
  width: 98%;
  margin: 0 auto;
}

.area-fv-left {
  width: 39.5%;
}

.area-fv-right {
  width: 58%;
}

.area-fv-left .text01 {
  font-size: 28px;
  font-weight: bold;
  line-height: 1.4;
  background: linear-gradient(90deg, #0c4ba2, #00885a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-top: 0;
  transform: translateY(-10px);
}

.area-fv-left .text01 span {
  font-size: 38px;
}

.area-fv-left .text02 {
  font-size: 35px;
  font-weight: bold;
  color: #333;
  margin-top: 28px;
}

.area-fv-left .text02 strong {
  display: block;
  line-height: 1;
  color: #fff;
  display: inline-block;
  width: 100%;
  letter-spacing: 1px;
  font-size: 58px;
  background: #00885a;
  padding: 10px 10px;
  text-align: center;
  margin-top: 10px;
  background-image: linear-gradient(90deg, #0c4ba2, #00885a);
}

.area-fv-left .text02 span.white {
  display: inline-block;
  width: 96%;
  font-size: 35px;
  margin-top: 10px;
}

.area-fv-left .text03 {
  font-weight: bold;
  font-size: 18px;
  color: #333;
  margin-top: 34px;
  margin-bottom: 48px;
}

.area-fv-right-point {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

.area-fv-right-point li {
  background: url(https://birdy-official.co.jp/wp-content/themes/swell_child/assets/images/img/area/area-fv-bg01.png)
    no-repeat center;
  background-size: contain;
  height: 93px;
  width: 23%;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #707070;
  font-weight: bold;
  font-size: 15px;
}

.area-fv-right-point li span.green {
  display: inline;
  color: #00885a;
  font-size: 20px;
}

.area-fv-right-img {
  margin-top: 48px;
}

.area-fv-btns {
  width: 100%;
  margin-top: 0px;
}

.flex-container-two.area-fv-btns {
  justify-content: space-between;
}

.flex-container-two > .area-fv-btn {
  margin-left: 0;
  margin-right: 0;
  width: 49%;
}

.area-fv-btn {
  background: #0c4ba2;
  border-radius: 8px;
}

.area-fv-btn.download {
  text-align: left;
  position: relative;
}

.area-fv-btn.download:before {
  content: "";
  background: url(https://birdy-official.co.jp/wp-content/themes/swell_child/assets/images/img/area/area-fv-download.png)
    no-repeat center;
  width: 197px;
  height: 107px;
  background-size: contain;
  position: absolute;
  top: 43%;
  left: 9%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.area-fv .area-fv-btn.download:before {
  left: 12%;
}

.area-fv-btn.download a {
  text-align: left;
  padding-left: 42%;
}

.area-fv-btn.green {
  background: #00885a;
}

.area-fv-btn a {
  display: block;
  width: 100%;
  padding: 20px 30px;
  color: #fff;
  text-align: center;
  font-weight: bold;
  font-size: 25px;
  letter-spacing: 1px;
}

.area-fv-btn a span.sub {
  display: block;
  font-size: 16px;
}

/*支援ロゴ*/
.area-logo-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 50px;
}

.area-logo-list li {
  width: 19%;
  margin-bottom: 1%;
}

.city h1 {
  margin-top: 0;
}

.area-01 {
  padding-bottom: 80px;
}

.city .area-01 {
  padding-bottom: 40px;
}

.area-01 p {
  font-size: 16px;
  line-height: 2.4;
}

/*一気通貫でサポート*/
.area-support {
  background: #00885a14;
  padding-top: 50px;
  padding-bottom: 80px;
}

.city .area-support {
  margin-top: 60px;
}

.area-support-box li {
  text-align: center;
  font-weight: bold;
}

.area-support-box li img {
  margin-bottom: 10px;
}

/*ローカルエリア*/
.area-local-container {
  position: relative;
  margin-top: 120px;
  margin-bottom: 80px;
}

.area-local-container-inner {
  position: relative;
  color: #fff;
  padding: 70px;
  z-index: 2;
}

.area-local-container-inner p {
  font-size: 20px;
  margin-bottom: 40px;
  line-height: 1.6;
}

.area-local-container-inner p strong {
  font-size: 32px;
}

.area-local-container-inner:before {
  content: "";
  width: 100vw;
  height: 100%;
  border-radius: 10px;
  position: absolute;
  top: 50%;
  left: 0%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  background: linear-gradient(90deg, #00885a, #0c4ba2);
  z-index: -2;
}

.area-local-container-inner:after {
  content: "";
  width: 400px;
  height: 490px;
  background: url(https://birdy-official.co.jp/wp-content/themes/swell_child/assets/images/img/area/area-toriya.png)
    center no-repeat;
  background-size: contain;
  position: absolute;
  right: 0;
  bottom: 0;
}

.area-local-container-inner .text02 {
  max-width: 500px;
}

.area-local-container .name {
  position: absolute;
  color: #fff;
  font-size: 16px;
  bottom: 30px;
  left: 50%;
}

.area-local h3 {
  text-align: center;
  position: relative;
  margin-bottom: 60px;
}

.area-local h3:after {
  content: "";
  width: 120px;
  height: 5px;
  background: linear-gradient(90deg, #00885a, #0c4ba2);
  position: absolute;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}

.city-list {
  background: #fff;
  padding: 30px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.city-list.center {
  justify-content: center;
}

.city-list li {
  width: max-content;
  border-radius: 2px;
  overflow: hidden;
}

.city-list li a {
  display: block;
  width: 100%;
  background: #f7f7f7;
  text-align: center;
  color: var(--black);
  padding: 5px 20px;
  transition: 0.5s;
}

.city-list li:hover a {
  background: #999;
  color: #fff;
}

.d_flex {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

.d_flex.two > .iframe-content {
  width: 49%;
  padding: 28% 0 0 0;
}

.area-failure {
  background: #108974;
  border-radius: 100px 100px 0 0;
  padding-bottom: 0;
  padding-top: 50px;
  position: relative;
}

.area-failure:after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 132px solid transparent;
  border-left: 132px solid transparent;
  border-top: 86px solid #108974;
  border-bottom: 0;
  position: absolute;
  bottom: -50px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}

.area-failure h2 {
  text-align: center;
  color: #fff;
  position: relative;
  letter-spacing: 1px;
}

.area-failure h2 span {
  position: absolute;
  background: #000;
  left: -10%;
  top: -85px;
  transform: rotate(-5deg);
  padding: 8px 30px;
}

.area-failure-box {
  max-width: 800px;
  margin: 0 auto;
  padding-bottom: 40px;
}

.area-failure-box p {
  width: 66%;
  color: #fff;
  font-weight: bold;
  line-height: 2.4;
  margin-top: 0;
  font-size: 18px;
}

.area-failure-pattern {
  padding-top: 60px;
  background: #d9d9d9;
  border-radius: 100px 100px 0 0;
  padding-bottom: 60px;
}

.area-failure-pattern h3 {
  text-align: center;
  margin-bottom: 50px;
  font-size: 24px;
  position: relative;
  width: max-content;
  margin: 0 auto;
  margin-bottom: 50px;
}

.area-failure-pattern h3:before {
  content: "";
  background: url(https://birdy-official.co.jp/wp-content/themes/swell_child/assets/images/img/area/area-failure-04.png)
    no-repeat center;
  width: 41px;
  height: 34px;
  background-size: contain;
  position: absolute;
  left: -40px;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.area-failure-pattern-list {
  width: 620px;
  margin: 0 auto;
  position: relative;
}

.area-failure-pattern-list:before {
  content: "";
  background: url(https://birdy-official.co.jp/wp-content/themes/swell_child/assets/images/img/area/area-failure-03.png)
    no-repeat center;
  width: 76px;
  height: 75px;
  background-size: contain;
  position: absolute;
  left: -160px;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.area-failure-pattern-list:after {
  content: "";
  background: url(https://birdy-official.co.jp/wp-content/themes/swell_child/assets/images/img/area/area-failure-02.png)
    no-repeat center;
  width: 76px;
  height: 75px;
  background-size: contain;
  position: absolute;
  right: -120px;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.area-failure-pattern-list li {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 30px;
  position: relative;
  margin-left: 50px;
}

.area-failure-pattern-list li:before {
  content: "";
  background: url(https://birdy-official.co.jp/wp-content/themes/swell_child/assets/images/img/area/area-check.png)
    center no-repeat;
  background-size: contain;
  width: 34px;
  height: 34px;
  position: absolute;
  left: -45px;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}

.area-cause {
  position: relative;
  padding-top: 80px;
}

.area-cause:after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 132px solid transparent;
  border-left: 132px solid transparent;
  border-top: 86px solid #108974;
  border-bottom: 0;
  position: absolute;
  bottom: -50px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}

.area-cause h2 {
  margin-bottom: 60px;
}

.area-cause-card {
  border-radius: 8px;
  box-shadow: 0 1px 12px 1px #ddd;
  padding: 40px 80px;
  font-size: 18px;
  margin-bottom: 50px;
}

.area-cause-card ul.listing {
  margin-bottom: 0;
}

.area-cause-card ul.listing li {
  margin-bottom: 12px;
  font-size: 18px;
  list-style: disc;
}

.area-cause-card h3 {
  font-size: 24px;
  margin-top: 0;
}

.area-cause-card h3 span {
  color: #fff;
  background: linear-gradient(90deg, #00885a, #0c4ba2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  width: 65px;
  height: 65px;
  font-size: 24px;
  margin-right: 14px;
}

.area-point {
  background: #ebf6f2;
  padding-top: 80px;
}

.area-point.bg-white {
  background: #fff;
  padding-top: 0;
}

.area-point-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 30px 0;
  margin-top: 0;
}

.area-point-box h3 {
  margin-top: 0;
  padding-top: 0;
  font-size: 24px;
  padding-left: 0;
}

.area-point-box h3 span {
  background: linear-gradient(90deg, #00885a, #0c4ba2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: block;
  line-height: 1;
  margin-bottom: 10px;
}

.area-point-box h3 span.number {
  display: inline;
  font-size: 44px;
  margin-left: 3px;
}

.area-point-box .text {
  width: 59%;
  font-size: 16px;
}

.area-point-box ul.listing {
  margin-top: 16px;
}

.area-point-box .img {
  width: 39%;
  padding: 10px;
  background: #fff;
  text-align: center;
  display: flex;
  align-items: center;
}

.area-point-box .casting-table {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  font-size: 14px;
  margin-top: 8px;
}

.area-point-box .casting-table dt {
  background: #108974;
  width: 38%;
  padding: 10px;
  color: #fff;
  margin-bottom: 6px;
}

.area-point-box .casting-table dd {
  width: 62%;
  padding: 10px;
  background: #fff;
  margin-bottom: 6px;
}

.area-industry .list-flex {
  display: flex;
  flex-wrap: wrap;
}

.area-industry .list-flex li {
  font-size: 18px;
  margin-bottom: 10px;
}

.area-industry .list-flex li:after {
  content: " / ";
  margin-right: 5px;
}

.area-industry .list-flex li:last-of-type:after {
  display: none;
}

.area-customer {
  padding-bottom: 0;
}

.area-customer .heading-box {
  background: url(https://birdy-official.co.jp/wp-content/themes/swell_child/assets/images/img/area/area-customer-bg.png)
    no-repeat center;
  padding: 40px 0;
}

.area-customer .heading-box p {
  color: #fff;
}

.area-customer .heading-box h2 {
  color: #fff;
  text-align: center;
  margin-top: 0;
}

.area-customer .iframe-content {
  width: 90%;
  max-width: 648px;
  margin: 0 auto;
  padding: 400px 0 0 0;
}

.area-customer-box {
  padding-top: 10px;
}

.area-customer-box-top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 800px;
  align-items: center;
}

.area-customer-box-top figure {
  width: 38%;
}

.area-customer-box-top figure img {
  border-radius: var(--radius-m);
}

.area-customer-box-top .right {
  width: 60%;
}

.area-customer-box h3 {
  font-size: 18px;
  font-weight: bold;
  padding-left: 0;
  margin-top: 0;
}

.area-customer-box dl {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}

.area-customer-box dl dt {
  width: 20%;
  padding-bottom: 10px;
}

.area-customer-box dl dd {
  width: 79%;
  padding-bottom: 10px;
}

.area-customer-box .text-box {
  border: 2px solid #999;
  padding: 30px;
  padding-top: 10px;
  margin-top: 16px;
}

.area-customer-box .text-box p strong {
  font-size: 20px;
  color: #108974;
  display: block;
  width: 100%;
  padding-bottom: 30px;
  border-bottom: 1px solid #333;
}

.area-customer-box.flex-right {
  padding-top: 0;
}

.area-customer-box.flex-right .area-customer-box-top {
  margin-left: auto;
  margin-right: 0;
}

.area-faq {
  padding-top: 0;
  padding-bottom: 0;
}

.area-faq-box dt {
  font-size: 22px;
  font-weight: bold;
  margin-bottom: 10px;
  margin-top: 20px;
}

.area-faq-box dt span {
  background: linear-gradient(90deg, #0c4ba2, #00885a);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  font-size: 22px;
  color: #fff;
  border-radius: 50%;
  margin-right: 10px;
}

.area-faq-box dd span {
  font-size: 22px;
  margin-right: 10px;
}

.area-faq-box dd {
  font-size: 18px;
  border-bottom: 1px solid #ddd;
  padding-bottom: 20px;
}

p.gra {
  background: linear-gradient(90deg, #0c4ba2, #00885a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-align: center;
  font-size: 32px;
  font-weight: bold;
  margin-bottom: 30px;
  margin-top: 6rem;
}

.area-fv-btns.center {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 60px;
}

p.center {
  text-align: center;
}

p.txt {
  font-size: 16px;
  margin-bottom: 20px;
}

/* ダウンロードページ */
.download-page {
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
  padding-bottom: 60px;
  align-items: stretch;
}

.download-left {
  flex: 1 1 50%;
  max-width: 50%;
  background: #fff;
  padding: 30px 50px 40px;
  border-radius: var(--radius-m);
  box-shadow: 0 0.1875rem 0.375rem rgba(0, 0, 0, 0.16);
}

.download-page h1 {
  font-size: 24px;
}

.download-page h2 {
  padding: 14px 20px;
  background: #eee;
  border-left: 0.3125rem solid #ccc;
  font-size: 20px;
  margin-bottom: 10px;
}

.download-cat {
  color: #999;
  font-size: 12px;
  font-weight: bold;
}

.download-image {
  margin-top: 10px;
  margin-bottom: 20px;
}

.download-right {
  flex: 1 1 45%;
  max-width: 45%;
  background: #fff;
  box-shadow: 0 0.1875rem 0.375rem rgba(0, 0, 0, 0.16);
  padding: 34px 30px;
  border-radius: 8px;
}

/* フォーム全体 */
/* 各項目のラップ */
/* 見出し部分（ラベル） */
/* 必須・任意ラベル */
._required {
  color: #e63c02;
  font-size: 12px;
  margin-left: 6px;
}

._optional {
  color: #999;
  font-size: 12px;
  margin-left: 6px;
}

/* 入力欄全体 */
/* 共通の input, select, textarea スタイル */
/* Submitボタン */

.post_content h2.contact-ttl {
  margin-top: 30px !important;
  margin-bottom: 10px;
}

.three-col .download-grid {
  grid-template-columns: repeat(3, 1fr);
}

.download-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 30px;
}

.download-card {
  background: #fff;
  border-radius: var(--radius-m);
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s ease;
  display: flex;
  flex-direction: column;
}

.download-card:hover {
  transform: translateY(-4px);
}

.download-thumb img {
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}

.download-meta {
  padding: 16px;
}

.download-meta h3 {
  font-size: 18px;
  margin: 0 0 10px;
  padding-left: 0;
  padding-bottom: 0;
}

.download-meta h3:before {
  display: none;
}

/* お問合せフォーム */
.wpcf7-list-item {
  margin: 0 10px 0 0;
}

/* 「送信する」ボタン（旧テンプレート用：p-contact-form__submitを使う場合は上書きしない） */
.wpcf7 input.wpcf7-submit:not(.p-contact-form__submit) {
  background-color: #f79034;
  border: 0;
  color: #fff;
  font-size: 1.2em;
  font-weight: bold;
  margin: 0 auto;
  width: 100%;
}

/* ============================================================
   トップページ（フロントページ）スタイル
   ============================================================ */

/* ---------- 共通：セクションヘッダー ---------- */
.section-header {
  display: flex;
  align-items: center;
  gap: 40px;
}

.section-header + * {
  margin-top: 60px;
}

.section-header__ja {
  font-size: 4.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 0;
  padding: 0;
  line-height: 1;
  background: linear-gradient(135deg, #4f6ffe 0%, #5ab1ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.section-header__sub {
  display: flex;
  align-items: center;
  gap: 40px;
}

.section-header__line {
  display: block;
  width: 90px;
  height: 1px;
  background: linear-gradient(135deg, #4f6ffe 0%, #5ab1ff 100%);
  flex-shrink: 0;
}

.section-header__en {
  font-family: "Jost", "Lato", sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  background: linear-gradient(135deg, #4f6ffe 0%, #5ab1ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.section-header--light .section-header__ja {
  background: linear-gradient(135deg, #8aa4ff 0%, #a8d4ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.section-header--light .section-header__line {
  background: #8aa4ff;
}

.section-header--light .section-header__en {
  background: linear-gradient(135deg, #8aa4ff 0%, #a8d4ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* gapで間隔管理するセクションではsection-header後の余白をリセット */
.top-reason .section-header + *,
.top-column__header .section-header + * {
  margin-top: 0;
}

/* ---------- MV（メインビジュアル）---------- */
.top-mv {
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding-top: 13.2rem;
  padding-bottom: 14rem;
}

.top-mv__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.top-mv__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top-mv__inner {
  position: relative;
  z-index: 1;
  max-width: 1370px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 4rem;

  padding-inline: 4rem;
}

.top-mv__text {
  flex: 1;
  min-width: 0;
}

.top-mv__catch {
  font-size: 6rem;
  font-weight: 800;
  color: var(--white);
  line-height: 1.63;
  overflow-wrap: break-word;
  word-break: auto-phrase;
  margin-bottom: 0;
}

.top-mv__catch-emphasis {
  color: var(--white);
  font-size: 7.4rem;
  font-weight: 800;
  line-height: 1.3;
  overflow-wrap: break-word;
}

.top-mv__sub {
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--white);
  line-height: 1.58;
  margin-top: 5.6rem;
  overflow-wrap: break-word;
  margin-bottom: 0;
}

.top-mv__btns-area {
  display: flex;
  margin-top: 10.8rem;
  align-items: center;
  justify-content: center;
  gap: 4rem;
  flex-wrap: wrap;
}

.top-mv__btns {
  display: flex;
  gap: 20px;
  flex-wrap: nowrap;
}

.top-mv__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 260px;
  padding: 16px 24px;
  border-radius: var(--radius-s);
  text-decoration: none;
  transition:
    opacity 0.3s,
    transform 0.3s;
}

.top-mv__btn:hover {
  opacity: 0.85;
  transform: translateY(-2px);
}

.top-mv__btn--phone {
  background: var(--white);
}

.top-mv__btn--contact {
  background: linear-gradient(93deg, #4f6ffe 0%, #5ab1ff 100%);
  box-shadow: 0 4px 16px rgba(79, 111, 254, 0.4);
}

.top-mv__btn-label {
  font-size: 1.2rem;
  font-weight: 700;
  display: block;
  text-align: center;
  margin-bottom: 4px;
}

.top-mv__btn--phone .top-mv__btn-label {
  color: var(--main);
}

.top-mv__btn--contact .top-mv__btn-label {
  color: rgba(255, 255, 255, 0.9);
}

.top-mv__btn-number {
  font-size: 2.4rem;
  font-weight: 800;
  color: #1a1a2e;
  letter-spacing: 0.03em;
  line-height: 1.2;
}

.top-mv__btn-hours {
  font-size: 1.1rem;
  font-weight: 500;
  color: #555;
  margin-top: 4px;
}

.top-mv__btn-text {
  font-size: 2rem;
  font-weight: 700;
  color: var(--white);
}

/* ---------- 課題提起 ---------- */
.top-problem {
  background: var(--white);
  padding-top: 10rem;
  padding-bottom: 10rem;
}

.top-problem__inner {
  display: flex;
  flex-direction: column;
  gap: 7.7rem;
  max-width: 1400px;
  padding-inline: var(--space-xl);
  margin: 0 auto;
}

.top-problem__body {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4.2rem;
}

.top-problem__img {
  flex-shrink: 0;
  width: 224px;
  margin: 0;
}

.top-problem__img img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius-m);
  object-fit: cover;
}

.top-problem__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  column-gap: 24px;
  row-gap: 56px;
  flex: 1;
  list-style: none;
  padding: 0;
  margin: 0;
}

.top-problem__item {
  padding: 3rem 0.5rem;
  border-radius: var(--radius-m);
  font-size: var(--fz-m);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  display: flex;
  align-items: center;
  min-height: 100px;
  position: relative;
  justify-content: center;
  text-align: center;
  word-break: auto-phrase;
  line-break: strict;
}

.top-problem__item p {
  font-size: 1.6rem;
  line-height: 1.7;
  margin: 0;
}

.top-problem__item:nth-child(odd) {
  background: var(--bg);
}

.top-problem__item:nth-child(even) {
  background: var(--gray);
}

/* 吹き出し装飾（1番目・6番目のみ） */
.top-problem__item:nth-child(1)::after,
.top-problem__item:nth-child(6)::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  width: 22px;
  height: 18px;
  bottom: -10px;
  pointer-events: none;
  z-index: 1;
  right: 14px;
  background: var(--gray);
  box-shadow:
    -5px 22px 0 -4px var(--gray),
    -9px 40px 0 -5.5px var(--gray);
}

.top-problem__item:nth-child(1)::after {
  left: 14px;
  background: var(--bg);
  box-shadow:
    13px 22px 0 -4px var(--bg),
    20px 40px 0 -5.5px var(--bg);
}

/* ---------- 事務所について（About）---------- */
.top-about {
  background: var(--bg-grad);
  position: relative;
  overflow: hidden;
}

.top-about__deco {
  position: absolute;
  width: 609px;
  height: auto;
  pointer-events: none;
  opacity: 1;
}

.top-about__deco--left {
  top: -70px;
  left: -10px;
}

.top-about__deco--right {
  top: 224px;
  right: -180px;
}

.top-about__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  font-weight: var(--fw-bold);
  margin: 0;
  padding: 0;
  letter-spacing: normal;
}

.top-about__title-sub {
  display: block;
  font-size: var(--fz-h2);
  line-height: 1.625;
}

.top-about__title-main {
  display: block;
  font-size: 4rem;
  line-height: 1.3;
}

.top-about__text {
  font-size: var(--fz-l);
  font-weight: var(--fw-medium);
  line-height: 1.75;
  margin: 0;
  text-align: left;
}

.top-about__text-em {
  font-size: 1.18em;
  font-weight: var(--fw-bold);
  background: linear-gradient(135deg, var(--main) 0%, #5ab1ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.top-reason__inner .c-service-btn-wrap {
  align-self: center;
  width: 100%;
}

/* ---------- アンサー（キャッチコピー：お悩みへの答え）---------- */
.top-answer {
  position: relative;
  background: var(
    --main2,
    linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%)
  );
  padding-top: 17rem;
  padding-bottom: 17rem;
  text-align: center;
  margin-top: 0;
  overflow: hidden;
}

.top-answer::before {
  content: "";
  position: absolute;
  top: -2rem;
  left: 50%;
  transform: translateX(-50%) rotate(180deg);
  width: 0;
  height: 0;
  border-left: clamp(40px, 7.8125vw, 150px) solid transparent;
  border-right: clamp(40px, 7.8125vw, 150px) solid transparent;
  border-bottom: clamp(22px, 4.167vw, 80px) solid #fff;
  z-index: 1;
}

.top-answer__deco {
  position: absolute;
  width: 609px;
  height: auto;
  pointer-events: none;
  opacity: 1;
}

.top-answer__deco--left {
  top: -160px;
  left: -40px;
}

.top-answer__deco--right {
  bottom: -60px;
  right: -140px;
}

.top-answer__inner {
  max-width: 860px;
  margin: 0 auto;
  padding-left: var(--space-xl);
  padding-right: var(--space-xl);
  position: relative;
  z-index: 1;
}

.top-answer__text {
  font-size: clamp(18px, 4.28px + 1.786vw, 30px);
  /* 18px(SP)〜30px(PC) — Figma: 30px */
  font-weight: var(--fw-bold);
  color: var(--white);
  line-height: 1.7;
  margin: 0;
  word-break: auto-phrase;
  line-break: strict;
}

.top-answer__em {
  font-size: clamp(24px, 5.71px + 2.381vw, 40px);
  /* 24px(SP)〜40px(PC) — Figma: 40px / ジャンプ率1.33x維持 */
  color: var(--accent);
  line-height: 1.3;
}

.top-answer__suffix {
  font-size: clamp(18px, 6.28px + 1.786vw, 32px);
  /* 18px(SP)〜32px(PC) — Figma: 32px */
  color: var(--white);
}

/* ---------- 選ばれる理由 5つの強み ---------- */
.top-reason {
  padding-top: 10rem;
  padding-bottom: 11rem;
  background: var(--white);
}

/* カードリスト（6列グリッドで3+2中央寄せ） */
.top-reason__list {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: 1fr;
  gap: 32px;
  list-style: none;
  margin-top: 8.3rem;
  padding: 0 0 120px;
  width: 100%;
}

.top-reason__item:nth-child(1),
.top-reason__item:nth-child(2),
.top-reason__item:nth-child(3) {
  grid-column: span 2;
  transform: translateY(60px);
}

.top-reason__item:nth-child(1) {
  transform: translateY(0);
}

.top-reason__item:nth-child(2) {
  transform: translateY(30px);
}

.top-reason__item:nth-child(4) {
  grid-column: 2 / span 2;
  transform: translateY(90px);
}

.top-reason__item:nth-child(5) {
  grid-column: 4 / span 2;
  transform: translateY(120px);
}

/* カード */
.top-reason__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 10px 10px 0 10px;
  background: var(--gray);
  overflow: hidden;
}

.top-reason__card-img {
  width: 100%;
  aspect-ratio: 380 / 253;
  overflow: hidden;
  border-radius: 10px 10px 0 0;
}

.top-reason__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.top-reason__card-body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
  padding: 24px 20px 20px;
  gap: 20px;
}

.top-reason__card-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.top-reason__card-title {
  font-family: var(--ff-ja);
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  line-height: 1.5;
  margin: 0;
}

.top-reason__card-desc {
  font-family: var(--ff-ja);
  font-size: var(--fz-base);
  font-weight: var(--fw-medium);
  line-height: 1.875;
  margin: 0;
}

/* カードフッター（グラデーションライン＋番号） */
.top-reason__card-footer {
  display: flex;
  align-items: center;
  gap: 16px;
}

.top-reason__card-line {
  display: block;
  flex: 1;
  height: 1px;
  background: linear-gradient(93deg, var(--main) 1.69%, #5ab1ff 98.1%);
}

.top-reason__card-num {
  font-family: var(--ff-en);
  font-size: 3.6rem;
  font-weight: var(--fw-regular);
  letter-spacing: 0.04em;
  line-height: 1;
  background: linear-gradient(93deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  flex-shrink: 0;
}

/* CTAボタン */
.top-reason__cta {
  text-align: center;
  width: 100%;
}

.top-reason__btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 300px;
  padding: 10px 20px;
  background: var(--white);
  border: 1px solid var(--main);
  border-radius: var(--radius-s);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  text-decoration: none;
  transition: var(--transition);
}

.top-reason__btn:hover {
  opacity: var(--opacity-hover);
}

.top-reason__btn-sub {
  font-family: var(--ff-ja);
  font-size: var(--fz-xs);
  font-weight: var(--fw-bold);
  color: var(--main);
  letter-spacing: 0.04em;
  line-height: 1.2;
}

.top-reason__btn-main {
  font-family: var(--ff-ja);
  font-size: var(--fz-m);
  font-weight: var(--fw-bold);
  color: var(--main);
  line-height: 1.2;
}

/* ---------- お知らせ ---------- */
.top-news {
  padding-top: 11rem;
  padding-bottom: 11rem;
  background: var(--white);
  margin-top: 0;
}

.top-news__list {
  max-width: 980px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: var(--space-ml);
}

.top-news__row {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: subgrid;
  position: relative;
  border-bottom: 1px solid #f0f2f7;
}

.top-news__row:has(a:hover) .top-news__date,
.top-news__row:has(a:hover) .top-news__title a {
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.top-news__meta {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 18px 0;
}

.top-news__date {
  font-size: 1.8rem;
  color: var(--black);
  font-weight: 500;
}

.top-news__cat {
  font-size: 1.6rem;
  font-weight: var(--fw-medium);
  padding: 4px 24px;
  border-radius: 4px;
  white-space: nowrap;
  border: 1px solid transparent;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%) border-box;
  color: #4f6ffe;
}

.top-news__cat-text {
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.top-news__title {
  font-size: 1.6rem;
  line-height: 1.5;
  display: flex;
  align-items: center;
  padding: 18px 0;
}

.top-news__title a {
  color: var(--black);
  text-decoration: none;
  font-size: 18px;
  font-weight: var(--fw-bold);
}

.top-news__title a::after {
  content: "";
  position: absolute;
  inset: 0;
}

.top-news__empty {
  font-size: 1.6rem;
  color: #888;
  text-align: center;
  padding: 40px 0;
}

.top-news__more {
  text-align: center;
}

.top-news__more-btn {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  width: 300px;
  height: 68px;
  padding: 10px 20px;
  border-radius: 6px;
  border: 1px solid #4f6ffe;
  background: #fff;
  box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.25);
  text-decoration: none;
  color: var(--main);
  font-size: var(--fz-m);
  font-weight: var(--fw-bold);
  transition: var(--transition);
}

.top-news__more-btn:hover {
  background: var(--main);
  color: var(--white);
  opacity: 1;
}

/* ---------- 支援事例 ---------- */
.top-case {
  padding-top: 11rem;
  padding-bottom: 11rem;
  background: var(--bg);
  margin-top: 0;
}

.top-case__desc {
  font-size: var(--fz-l);
  font-weight: var(--fw-medium);
  line-height: 1.6;
  margin-bottom: 0;
}

/* ロゴグリッド */
.top-case__logos {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 5.5rem;
}

.top-case__logos-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
}

.top-case__logo {
  width: 150px;
  height: 56px;
  flex-shrink: 0;
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
}

.top-case__logo span {
  font-size: var(--fz-base);
  font-weight: var(--fw-bold);
  color: var(--border);
}

/* 事例カードリスト */
.top-case__list {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  list-style: none;
  padding: 0;
  margin-top: 5.5rem;
}

.top-case__item {
  flex: 0 0 calc((100% - 60px) / 3);
}

/* 支援事例一覧ボタン */
.top-case__btn-wrap {
  text-align: center;
}

.top-case__btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 300px;
  padding: 10px 20px;
  background: var(--white);
  border: 1px solid var(--main);
  border-radius: var(--radius-s);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  text-decoration: none;
  transition: var(--transition);
}

.top-case__btn:hover {
  background: var(--main);
}

.top-case__btn:hover .top-case__btn-copy,
.top-case__btn:hover .top-case__btn-label {
  -webkit-text-fill-color: var(--white);
  color: var(--white);
}

.top-case__btn-copy {
  font-size: var(--fz-xs);
  font-weight: var(--fw-bold);
  color: var(--main);
}

.top-case__btn-label {
  font-size: var(--fz-m);
  font-weight: var(--fw-bold);
  color: var(--main);
}

/* ========================================
   資料ダウンロード
======================================== */

/* セクション */
.top-dl-cta {
  background-image: url(../../images/top/cta-bg.webp);
  background-size: cover;
  background-position: center;
  padding: 96px 0;
  overflow: hidden;
}

/* 内側コンテナ（2カラムレイアウト） */
.top-dl-cta__wrap {
  display: flex;
  align-items: center;
  gap: 30px;
  border-radius: 10px;
  padding: 20px 30px;
}

/* 左カラム：見出し＋ボタン */
.top-dl-cta__content {
  flex: 0 0 609px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 44px;
}

/* 見出し */
.top-dl-cta__title {
  margin: 0;
  font-size: var(--fz-h2);
  font-weight: var(--fw-bold);
  color: var(--white);
  text-align: center;
  letter-spacing: 0.06em;
  line-height: 1.25;
}

/* ダウンロードボタン */
.top-dl-cta__btn {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 20px;
  background: var(--white);
  border: 1px solid var(--main);
  border-radius: var(--radius-s);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  text-decoration: none;
  transition: var(--transition);
  height: 128px;
}

.top-dl-cta__btn:hover {
  opacity: var(--opacity-hover);
}

/* ボタン内テキスト：小見出し */
.top-dl-cta__btn-sub {
  font-size: var(--fz-xs);
  font-weight: var(--fw-bold);
  color: var(--main);
  transition: var(--transition);
}

/* ボタン内テキスト：メイン */
.top-dl-cta__btn-main {
  font-size: var(--fz-l);
  font-weight: var(--fw-bold);
  color: var(--main);
  transition: var(--transition);
}

/* 右カラム：資料画像 */
.top-dl-cta__image {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.top-dl-cta__image img {
  width: 100%;
  max-width: 542px;
  height: auto;
  display: block;
}

/* ========== コラム ========== */
.top-column {
  background: var(--bg);
}

/* --- ヘッダー行（見出し + ボタン） --- */
.top-column__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* --- 見出し（左） --- */
.top-column__heading {
  display: flex;
  align-items: center;
  gap: 40px;
}

.top-column__ja {
  font-size: var(--fz-h1);
  font-weight: var(--fw-bold);
  letter-spacing: 0.05em;
  margin: 0;
  padding: 0;
  line-height: 1;
  background: linear-gradient(135deg, var(--main) 0%, #5ab1ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.top-column__sub {
  display: flex;
  align-items: center;
  gap: 40px;
}

.top-column__line {
  display: block;
  width: 90px;
  height: 1px;
  background: linear-gradient(135deg, var(--main) 0%, #5ab1ff 100%);
  flex-shrink: 0;
}

.top-column__en {
  font-family: var(--ff-en);
  font-size: var(--fz-m);
  font-weight: var(--fw-regular);
  letter-spacing: 0.04em;
  background: linear-gradient(135deg, var(--main) 0%, #5ab1ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* --- 一覧ボタン（右） --- */
.top-column__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 300px;
  padding: 10px 20px;
  background: var(--white);
  border-radius: var(--radius-s);
  box-shadow: var(--shadow);
  text-decoration: none;
  transition: var(--transition);
}

.top-column__btn:hover {
  opacity: var(--opacity-hover);
}

.top-column__btn-sub {
  font-size: var(--fz-xs);
  font-weight: var(--fw-bold);
  color: var(--main);
}

.top-column__btn-text {
  font-size: var(--fz-m);
  font-weight: var(--fw-bold);
  color: var(--main);
}

/* --- カードリスト --- */
.top-column__list {
  display: flex;
  flex-wrap: nowrap;
  gap: 0;
  transition: transform 0.35s ease;
}

.top-column__card {
  flex-shrink: 0;
  min-width: 0;
  /* 幅はcommon.jsのスライダーJSで動的に設定 */
}

/* --- カード --- */
.top-column__card-link {
  display: block;
  text-decoration: none;
  transition: var(--transition);
}

.top-column__card-link:hover {
  opacity: var(--opacity-hover);
}

/* --- サムネイル --- */
.top-column__thumbnail {
  width: 100%;
  aspect-ratio: 340 / 219;
  overflow: hidden;
  border-radius: var(--radius-m);
  background: var(--border);
  margin-bottom: 16px;
}

.top-column__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.top-column__img-placeholder {
  width: 100%;
  height: 100%;
  background: var(--border);
}

/* --- カード本文 --- */
.top-column__card-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.top-column__card-title {
  font-size: var(--fz-m);
  font-weight: var(--fw-bold);
  margin: 0;
  line-height: 1.8;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* --- 日付行 --- */
.top-column__meta {
  display: flex;
  align-items: center;
  gap: 7px;
}

.top-column__meta-icon {
  flex-shrink: 0;
}

.top-column__date {
  font-size: var(--fz-xs);
  font-weight: var(--fw-medium);
  color: var(--border);
}

/* --- スライダーラッパー --- */
.top-column__slider-wrapper {
  position: relative;
  overflow: visible;
}

/* --- スライダートラック（overflow:hidden 担当） --- */
.top-column__slider-track {
  overflow: hidden;
}

/* --- 一覧ボタンラッパー（スライダー下・中央） --- */
.top-column__btn-wrap {
  display: flex;
  justify-content: center;
}

/* --- ナビゲーション矢印 --- */
.top-column__nav {
  position: absolute;
  top: 50%;
  /* JS でサムネイル中央に上書き */
  left: -20.5px;
  /* ボタン幅41pxの50%をはみ出す */
  right: -20.5px;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  pointer-events: none;
}

.top-column__nav-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 41px;
  height: 41px;
  border-radius: var(--radius-f);
  background: var(--white);
  border: none;
  cursor: pointer;
  box-shadow: var(--shadow);
  transition: background 0.3s ease;
  pointer-events: auto;
}

.top-column__nav-btn:hover {
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.13%);
}

.top-column__nav-btn svg path {
  transition: stroke 0.3s ease;
}

.top-column__nav-btn:hover svg path {
  stroke: var(--white);
}

/* --- 記事なし --- */
.top-column__empty {
  grid-column: 1 / -1;
  text-align: center;
  font-size: var(--fz-base);
}

/* ---------- ユーティリティ ---------- */
.sp-only {
  display: none;
}

.pc-only {
  display: inline;
}

/* ============================================================
   top-news テーブルスタイル
   ============================================================ */
.top-news dl.table {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 1.5rem;
}

.top-news dl.table dt {
  width: 26rem;
  padding: 1.4rem;
  background-color: var(--white);
  line-height: 1.6;
  border-bottom: 1px solid #ddd;
}

.top-news dl.table dt span.cat {
  border: #00885a 1px solid;
  text-align: center;
  font-size: 14px;
  color: #00885a;
  padding: 4px 8px;
  margin-left: 20px;
}

.top-news dl.table dd {
  width: calc(100% - 26rem);
  padding: 1.4rem;
  line-height: 1.6;
  border-bottom: 1px solid #ddd;
}

/* ============================================================
   c-cta-section セクション（Figma: CTA node 6156:3440）
   ============================================================ */
/* ---------- c-cta-section ---------- */
.c-cta-section {
  width: 100%;
  padding-top: 10rem;
  padding-bottom: 11rem;
  background: url(../../images/top/cta-bg.webp) no-repeat center center;
  background-size: cover;
}

.c-cta-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4rem;
}

.c-cta-section__heading {
  color: var(--white);
  text-align: center;
  font-family: var(--ff-ja);
  font-size: var(--fz-h2);
  /* clamp(22px〜32px) */
  font-weight: var(--fw-bold);
  line-height: 1.2;
  letter-spacing: 0.06em;
  word-break: auto-phrase;
  line-break: strict;
}

/* 上段：左右2カラム（コピー ＋ バッジ） */
.c-cta-section__content {
  display: flex;
  align-items: center;
  gap: 6rem;
  margin-top: 5rem;
}

/* 左：コピーエリア */
.c-cta-section__copy {
  flex: 1 1 0;
  min-width: 0;
}

.c-cta-section__subheading {
  font-size: 1.8rem;
  font-weight: 500;
  color: var(--white);
  line-height: 1.8;
  letter-spacing: 0.03em;
  margin-bottom: 0;
  margin-top: 1.6rem;
}

/* 右：実績バッジ（縦並び） */
.top-mv__badges {
  display: flex;
  flex-direction: row;
  /* 縦並び */
  align-items: center;
  gap: 2rem;
  flex-shrink: 1;
}

.top-mv__badge {
  display: flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  flex-shrink: 1;
}

.top-mv__badge-deco {
  display: block;
  width: 43px;
  height: 100px;
  flex-shrink: 0;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.top-mv__badge .top-mv__badge-deco:first-child {
  background-image: url("../../images/common/cta-deco-left.webp");
}

.top-mv__badge .top-mv__badge-deco:last-child {
  background-image: url("../../images/common/cta-deco-right.webp");
}

.top-mv__badge-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 2.6rem;
  font-weight: var(--fw-bold);
  color: var(--white);
  line-height: 1.8;
  text-align: center;
  white-space: normal;
  margin: 0;
}

.top-mv__badge-text-emphasis {
  color: var(--white);
  font-size: 3.6rem;
  font-weight: var(--fw-bold);
  line-height: 1.3;
}

.top-mv__badge-text-emphasis-num {
  font-family: var(--ff-en);
  font-weight: var(--fw-bold);
}

.top-mv__badge-num {
  font-family: var(--ff-en);
}

/* ========== top-cta ========== */
.top-cta {
  background-image: url("../../images/top/cta-bg.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.top-cta__heading {
  color: var(--white);
  text-align: center;
  font-size: var(--fz-h2);
  font-weight: var(--fw-bold);
  line-height: 1.25;
  letter-spacing: 0.06em;
  margin: 0;
}
.top-cta .cta-buttons {
  margin-top: 6rem;
}

/* ==========================================================================
   選ばれる理由ページ（page-feature.php）
   ========================================================================== */

/* ---------- FV ---------- */
.p-reason-fv {
  background: linear-gradient(108deg, var(--main) 1.69%, #5ab1ff 98.1%);
  height: 30rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-reason-fv__title {
  font-size: var(--fz-h1);
  font-weight: var(--fw-bold);
  color: var(--white);
  text-align: center;
  line-height: 1;
  margin: 0;
  letter-spacing: 0.05em;
}

/* ---------- パンくず ---------- */
.p-reason-breadcrumb {
  background-color: var(--bg);
  height: 4.2rem;
  overflow: hidden;
}

.p-reason-breadcrumb__inner {
  height: 100%;
  display: flex;
  align-items: center;
}

.p-reason-breadcrumb__list {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  list-style: none;
  font-size: var(--fz-s);
  margin: 0;
  padding: 0;
}

.p-reason-breadcrumb__link {
  color: #9b9b9b;
  text-decoration: none;
  transition: opacity var(--transition);
}

.p-reason-breadcrumb__link:hover {
  opacity: var(--opacity-hover);
}

.p-reason-breadcrumb__sep {
  display: flex;
  align-items: center;
  color: #9b9b9b;
}

.p-reason-breadcrumb__item--current span {
  background: linear-gradient(107deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ---------- セクション見出し ---------- */
.p-reason-main {
  background-color: var(--white);
}

.p-reason-heading {
  display: flex;
  align-items: flex-end;
  gap: 4rem;
}

.p-reason-heading + .p-reason-list {
  margin-top: 8rem;
}

.p-reason-heading__title-group {
  line-height: 1.2;
}

.p-reason-heading__pre,
.p-reason-heading__main {
  background: linear-gradient(101.81deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  margin: 0;
  line-height: 1.17;
}

.p-reason-heading__pre {
  font-size: 2.4rem;
  font-weight: var(--fw-medium);
  margin: 0 0 0.2em;
}

/* ---------- 理由リスト ---------- */
.p-reason-list {
  display: flex;
  flex-direction: column;
  gap: 8rem;
}

/* ---------- 理由アイテム ---------- */
.p-reason-item__heading {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0;
  font-size: 0;
  /* 子要素で個別指定 */
}

.p-reason-item__number {
  font-family: var(--ff-en);
  font-size: 6rem;
  font-weight: var(--fw-regular);
  background: linear-gradient(125.73deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  flex-shrink: 0;
  margin-right: 0.5em;
}

.p-reason-item__title {
  font-size: 2.8rem;
  font-weight: var(--fw-bold);
  color: var(--black);
  line-height: 1.3;
  -webkit-text-fill-color: var(--black);
  word-break: auto-phrase;
  line-break: strict;
}

.p-reason-item__body {
  display: flex;
  align-items: center;
  gap: 5.7rem;
  margin-top: 1rem;
}

.p-reason-item__text {
  flex: 0 0 67.3rem;
  width: 67.3rem;
}

.p-reason-item__text p {
  font-size: var(--fz-m);
  font-weight: var(--fw-medium);
  line-height: 2;
  color: var(--black);
  margin: 0;
}

.p-reason-item__text p + p {
  margin-top: 0;
}

.p-reason-item__image {
  flex: 1;
  min-width: 0;
  border-radius: var(--radius-m);
  overflow: hidden;
  aspect-ratio: 470 / 313;
}

.p-reason-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-m);
}

/* ---------- 情報ボックス（コンプライアンス / 初回相談） ---------- */
.p-reason-info-box {
  margin-top: 2.6rem;
}

.p-reason-info-box__header {
  padding: 1rem 2rem;
  /* c-grad-panel__header に共通スタイル定義済み */
}

.p-reason-info-box__body {
  display: flex;
  justify-content: center;
  gap: 3.4rem;
  padding: 2.4rem 2rem;
  align-items: center;
  margin-top: -1px; /* Safari の -webkit-mask sub-pixel ずれによるヘッダー間の隙間対策 */
  /* c-grad-panel__body に背景・border-radius・position・::before 定義済み */
}

.p-reason-info-box__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.p-reason-info-box__list li {
  font-size: var(--fz-m);
  font-weight: var(--fw-medium);
  color: var(--black);
  line-height: 2;
}

.p-reason-info-box__bullet {
  background: linear-gradient(123.07deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ---------- サポートカード（理由05） ---------- */
.p-reason-cards {
  display: flex;
  gap: 4rem; /* design 1920px: 6rem → PC(1280px): 4rem */
  margin-top: 2.6rem;
}

.p-reason-card {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.p-reason-card__header {
  padding: 1rem;
  /* c-grad-panel__header に共通スタイル定義済み */
}

.p-reason-card__body {
  padding: 2rem 2.4rem;
  flex: 1;
  display: flex;
  align-items: center;
  /* c-grad-panel__body に背景・border-radius・position・::before 定義済み */
}

.p-reason-card__body p {
  font-size: var(--fz-m);
  font-weight: var(--fw-medium);
  line-height: 1.67;
  color: var(--black);
  margin: 0;
}

/* ---------- 支援事例セクション ---------- */
.p-case-section .c-section-header + * {
  margin-top: 4rem;
}

.p-case-section__desc {
  text-align: left;
}

.p-case-section__desc + .p-case-cards {
  margin-top: 4rem;
}

.p-case-logos {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.p-case-logos + .p-case-cards {
  margin-top: 6rem;
}

.p-case-logos__row {
  display: flex;
  gap: 1.6rem;
  justify-content: center;
}

.p-case-logo {
  width: 15rem;
  height: 5.6rem;
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fz-s);
  font-weight: var(--fw-bold);
  color: var(--border);
}

.p-case-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
}

.p-case-card__img-placeholder {
  aspect-ratio: 340 / 227;
  background: #c4c4c4;
  border-radius: var(--radius-m);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fz-s);
  font-weight: var(--fw-bold);
  color: var(--black);
  text-align: center;
  padding: 1rem;
}

/* ---------- FAQセクション（page-feature.php） ---------- */
.p-faq-section {
  background-color: var(--white);
}

.p-faq-section .p-faq-list {
  margin-top: 4rem;
}

/* ---------- FAQセクション（front-page.phpと共通の .p-faq__* を使用） ---------- */

/* ========================================
   コラム一覧ページ（category-column.php）
   ======================================== */

/* ---------- FV ---------- */
.p-column-fv {
  background: linear-gradient(108deg, var(--main) 1.69%, #5ab1ff 98.1%);
  height: 30rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-column-fv__title {
  font-size: var(--fz-h1);
  font-weight: var(--fw-bold);
  color: var(--white);
  text-align: center;
  line-height: 1;
  margin: 0;
  letter-spacing: 0.05em;
}

/* ---------- パンくず ---------- */
.p-column-breadcrumb {
  background-color: var(--bg);
  height: 4.2rem;
  overflow: hidden;
}

.p-column-breadcrumb__inner {
  height: 100%;
  display: flex;
  align-items: center;
}

.p-column-breadcrumb__list {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  list-style: none;
  font-size: var(--fz-s);
  margin: 0;
  padding: 0;
}

.p-column-breadcrumb__link {
  color: #9b9b9b;
  text-decoration: none;
  transition: opacity var(--transition);
}

.p-column-breadcrumb__link:hover {
  opacity: var(--opacity-hover);
}

.p-column-breadcrumb__sep {
  display: flex;
  align-items: center;
  color: #9b9b9b;
}

.p-column-breadcrumb__item--current span {
  background: linear-gradient(107deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ---------- 記事一覧セクション ---------- */
.p-column-section .c-section-header + * {
  margin-top: 6rem;
}

/* ========================================
   取扱業務一覧（page-service）
======================================== */

/* ---------- パンくず ---------- */
.p-service-breadcrumb {
  background-color: var(--bg);
  height: 4.2rem;
  overflow: hidden;
}

.p-service-breadcrumb__inner {
  height: 100%;
  display: flex;
  align-items: center;
}

.p-service-breadcrumb__list {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  list-style: none;
  font-size: var(--fz-s);
  margin: 0;
  padding: 0;
}

.p-service-breadcrumb__link {
  color: #9b9b9b;
  text-decoration: none;
  transition: opacity var(--transition);
}

.p-service-breadcrumb__link:hover {
  opacity: var(--opacity-hover);
}

.p-service-breadcrumb__sep {
  display: flex;
  align-items: center;
  color: #9b9b9b;
}

.p-service-breadcrumb__item--current span {
  background: linear-gradient(107deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ---------- メインセクション ---------- */
.p-service-main {
  background-color: var(--white);
}

/* ---------- イントロテキスト ---------- */
.p-service-intro {
  font-size: 2.2rem;
  line-height: 1.8;
  text-align: center;
  color: var(--black);
  margin: 0;
}

/* ========== 404ページ ========== */

/* ---------- パンくず ---------- */
.p-404-breadcrumb {
  width: 100%;
  background-color: var(--bg);
  height: 4.2rem;
  overflow: hidden;
}

.p-404-breadcrumb__inner {
  height: 100%;
  display: flex;
  align-items: center;
}

.p-404-breadcrumb__list {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-404-breadcrumb__link {
  color: #9b9b9b;
  font-size: 1.4rem;
  text-decoration: none;
  transition: opacity var(--transition);
}

.p-404-breadcrumb__link:hover {
  opacity: var(--opacity-hover);
}

.p-404-breadcrumb__sep {
  display: flex;
  align-items: center;
  color: #9b9b9b;
}

.p-404-breadcrumb__item--current span {
  font-size: 1.4rem;
  background: linear-gradient(107deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ---------- メインセクション ---------- */
.p-404-main {
  width: 100%;
  padding-block: 10rem 14rem;
  text-align: center;
}

.p-404-main__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4rem;
}

.p-404-main__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.p-404-main__title {
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  color: var(--black);
  line-height: 1.2;
  margin: 0;
}

.p-404-main__sub {
  font-size: 2.2rem;
  font-weight: 500;
  line-height: 1;
  background: linear-gradient(136deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0;
}

.p-404-main__desc {
  font-size: 2.2rem;
  line-height: 1.8;
  color: var(--black);
  margin: 0;
}

/* ========== 料金一覧ページ ========== */

/* ---------- パンくず ---------- */
.p-price-breadcrumb {
  background-color: var(--bg);
  height: 4.2rem;
  overflow: hidden;
}

.p-price-breadcrumb__inner {
  height: 100%;
  display: flex;
  align-items: center;
}

.p-price-breadcrumb__list {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: var(--fz-s);
}

.p-price-breadcrumb__link {
  color: #9b9b9b;
  text-decoration: none;
  transition: opacity var(--transition);
}

.p-price-breadcrumb__link:hover {
  opacity: var(--opacity-hover);
}

.p-price-breadcrumb__sep {
  display: flex;
  align-items: center;
  color: #9b9b9b;
}

.p-price-breadcrumb__item--current {
  color: var(--black);
}

/* ---------- ページヒーロー ---------- */
.p-price-hero {
  background: linear-gradient(107deg, var(--main) 1.69%, #5ab1ff 98.1%);
  padding-block: 4rem 4.8rem;
}

.p-price-hero__inner {
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-price-hero__title {
  font-size: clamp(3.2rem, 2rem + 1.5vw, 4.8rem);
  font-weight: var(--fw-bold);
  color: var(--white);
  letter-spacing: 0.12em;
  margin: 0;
  line-height: 1.2;
}

/* ---------- アンカーナビ ---------- */
.p-price-anchor-nav {
  background-color: var(--bg);
  padding-top: 11.2rem;
  padding-bottom: 8.3rem;
}

.p-price-anchor-nav__inner {
  display: flex;
  align-items: center;
}

.p-price-anchor-nav__list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 3.4rem 6rem;
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  justify-content: center;
}

.p-price-anchor-nav__link {
  position: relative;
  display: flex;
  width: 360px;
  padding: 10px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  border-radius: 10px;
  background-color: var(--bg);
}

.p-price-anchor-nav__link span {
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.p-price-anchor-nav__icon {
  flex-shrink: 0;
}

.p-price-anchor-nav__link::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 10px;
  border: 2px solid transparent;
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%) border-box;
  -webkit-mask-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  -webkit-mask-clip: padding-box, border-box;
  -webkit-mask-composite: destination-out;
  mask-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  mask-clip: padding-box, border-box;
  mask-composite: exclude;
}
.p-price-anchor-nav__link:hover {
  opacity: var(--opacity-hover);
}

/* ---------- 注意書きボックス ---------- */
.p-price-notice {
  background-color: var(--bg);
}

.p-price-notice__box {
  background: var(--white);
  border-radius: 10px;
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2rem;
}

.p-price-notice__text {
  font-size: 2.6rem;
  font-weight: var(--fw-bold);
  line-height: 1.5;
  color: var(--black);
  text-align: center;
  margin: 0;
}

.p-price-notice__btn-wrap {
  display: flex;
  align-items: center;
  gap: 3.75rem;
}

.p-price-notice__btn {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 36rem;
  height: 12.8rem;
  padding: 0.625rem 1.25rem;
  border-radius: 6px;
  box-shadow: 0px 3px 8px 0px rgba(0, 0, 0, 0.25);
  text-decoration: none;
  gap: 0.25rem;
  transition: opacity var(--transition);
}

.p-price-notice__btn:hover {
  opacity: var(--opacity-hover);
}

.p-price-notice__btn--tel {
  flex-direction: column;
  gap: 0.25rem;
  background: var(--white);
  border: 1px solid var(--main);
  color: var(--main);
}

.p-price-notice__tel-main {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.p-price-notice__tel-number {
  font-size: 2.4rem;
  font-weight: var(--fw-bold);
}

.p-price-notice__tel-hours {
  font-size: 1.2rem;
  letter-spacing: 0.06em;
}

.p-price-notice__btn--estimate {
  flex-direction: row;
  background: linear-gradient(98.34deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  color: var(--white);
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  white-space: nowrap;
}

.p-price-notice__btn--estimate::after {
  content: "";
  position: absolute;
  right: 0.7rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2.8rem;
  height: 2.8rem;
  background-image: url("../../images/common/contact-arrow.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.p-price-notice__estimate-arrow {
  position: absolute;
  right: 2.1875rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border: 1.5px solid rgba(255, 255, 255, 0.8);
  border-radius: 50%;
}

/* ---------- カテゴリセクション ---------- */
.p-price-cat {
  padding-block: 8.3rem;
  background: var(--bg);
  scroll-margin-top: 220px;
}

.p-price-cat--alt {
  background-color: var(--bg);
}

.p-price-cat__inner {
  display: flex;
  flex-direction: column;
  gap: 6rem;
}

.p-price-cat__intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}

.p-price-cat__heading {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  text-align: center;
  margin-top: 4rem;
}

.p-price-cat__title {
  font-size: clamp(2.4rem, 1.5rem + 1vw, 3.6rem);
  font-weight: var(--fw-bold);
  color: var(--black);
  margin: 0;
  line-height: 1.2;
}

.p-price-cat__desc {
  font-size: 2.2rem;
  line-height: 1.9;
  color: var(--black);
  text-align: center;
  margin: 0;
  word-break: auto-phrase;
  line-break: strict;
  text-wrap: balance;
}

.p-price-cat__note {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  color: var(--main);
  font-size: var(--fz-base);
  font-weight: var(--fw-medium);
  text-decoration: none;
  transition: opacity var(--transition);
  justify-content: flex-start;
  width: fit-content;
}

.p-price-cat__note:hover {
  opacity: var(--opacity-hover);
}

.p-price-cat__inner > .p-price-cat__note {
  display: flex;
  margin-inline: auto;
}

.p-price-subsection > .p-price-cat__note {
  display: inline-flex;
  margin-inline: 0;
}

/* ---------- ページ内リンク ---------- */
.p-price-page-link {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1.2rem 2.4rem;
  background: linear-gradient(107deg, var(--main) 1.69%, #5ab1ff 98.1%);
  color: var(--white);
  font-size: var(--fz-base);
  font-weight: var(--fw-medium);
  border-radius: var(--radius-s);
  text-decoration: none;
  transition: opacity var(--transition);
  align-self: flex-start;
}

.p-price-page-link:hover {
  opacity: var(--opacity-hover);
}

/* ---------- サブセクションリスト ---------- */
.p-price-cat__subsection-list {
  display: flex;
  flex-direction: column;
  gap: 8.3rem;
}

/* ---------- サブセクション ---------- */
.p-price-subsection {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.p-price-subsection__title {
  position: relative;
  font-size: var(--fz-l);
  font-weight: var(--fw-bold);
  color: var(--black);
  padding: 0.2rem 0 0.2rem 1.6rem;
  margin: 0;
  line-height: 1.5;
}

.p-price-subsection__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 1.8rem;
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
}

.p-price-subsection__num {
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: var(--fw-bold);
  margin-right: 0.8rem;
}

.p-price-subsection__links {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  flex-wrap: wrap;
}

.p-price-subsection__note {
  font-size: var(--fz-base);
  color: var(--black);
  text-align: right;
  margin-bottom: 0;
  margin-top: 0;
  line-height: normal;
}

/* ---------- 料金テーブル ---------- */
.p-price-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%; /* flex item を親幅に制限 */
}

.p-price-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: var(--fz-base);
  background-color: var(--white);
  box-shadow: var(--shadow);
}

.p-price-table thead tr {
  background: var(--main);
}

.p-price-table thead th {
  color: var(--white);
  font-size: var(--fz-base);
  font-weight: var(--fw-bold);
  line-height: 3rem;
  padding: 1rem 1.6rem;
  text-align: center;
  vertical-align: middle;
  border: 1px solid var(--bg);
  border-top: 1px solid #4f6ffe;
  border-bottom: 1px solid var(--bg);
  letter-spacing: 0.03em;
}

.p-price-table thead th:first-child {
  border-left: 1px solid #4f6ffe;
}

.p-price-table thead th:last-child {
  border-right: 1px solid #4f6ffe;
}

.p-price-table thead th:nth-child(1) {
  width: 21.71%;
}

.p-price-table thead th:nth-child(2) {
  width: 21.71%;
}

.p-price-table thead th:nth-child(3) {
  width: 56.57%;
}

/* 5列テーブル（その他の就労ビザ）種類 | 認定 | 変更 | 更新 | 備考 */
.p-price-table--five-col thead th:nth-child(1) {
  width: 15%;
}

.p-price-table--five-col thead th:nth-child(2) {
  width: 30%;
}

.p-price-table--five-col thead th:nth-child(3) {
  width: 55%;
}

/* 2列テーブル（出張封印・自動車登録・定住者・就労ビザ申請オプションなど）433:768 */
.p-price-table--two-col thead th:nth-child(1) {
  width: 36.05%;
}

.p-price-table--two-col thead th:nth-child(2) {
  width: 63.95%;
}

.p-price-unit {
  font-size: var(--fz-base);
  line-height: 1.6;
  font-weight: var(--fw-medium);
}
.p-price-note {
  display: block;
  font-size: var(--fz-base);
  line-height: 1.6;
  font-weight: var(--fw-medium);
  text-align: left;
}
.p-price-table tbody :is(td, th) {
  padding: 1.4rem 1.6rem;
  border: 1px solid var(--border);
  color: var(--black);
  line-height: 1.7;
  vertical-align: middle;
  text-align: center;
  font-size: var(--fz-base);
  font-weight: var(--fw-medium);
  height: 10rem;
}

.p-price-table tbody :is(td, th):first-child {
  text-align: center;
  font-size: var(--fz-base);
}

.p-price-table tbody :is(td, th):last-child {
  text-align: center;
  font-size: var(--fz-h3);
  padding-inline: 3rem;
  text-align: left;
  line-height: 1.5;
}

.p-price-table--center-last tbody td:last-child {
  font-size: var(--fz-h3);
  font-family: var(--ff-en);
  text-align: center;
  padding-inline: 1.6rem;
}

.p-price-table--two-col tbody td:last-child {
  font-size: var(--fz-h3);
  font-family: var(--ff-en);
  text-align: center;
  padding-inline: 1.6rem;
}

/* 金額セル：var(--fz-h3) */
.p-price-table .p-price-td--amount {
  font-size: var(--fz-h3);
  font-family: var(--ff-en);
  font-weight: 500;
  line-height: 1.083;
  padding-inline: 0.8rem;
  white-space: nowrap;
}

/* ========== お問合せ完了ページ ========== */

/* コンテンツセクション */
.p-thanks {
  background-color: var(--white);
  padding-bottom: 12rem;
}

.p-thanks__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8.3rem;
}

.p-thanks__title {
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  color: #333;
  line-height: 1;
}

.p-thanks__desc {
  font-size: 2.2rem;
  color: #333;
  line-height: 1.8;
  margin: 0;
}

.p-contact-thanks__phone img {
  width: auto;
  max-width: 57.6rem;
}

/* 電話CTA */
.p-thanks__phone-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 8rem;
}

.p-thanks__phone-icon {
  margin-bottom: 1.2rem;
}

.p-thanks__phone-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  background: var(--white);
  border: 1px solid var(--main);
  border-radius: 6px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  padding: 3.2rem 4.8rem;
  width: 57.6rem;
}

.p-thanks__phone-catch,
.p-thanks__phone-num,
.p-thanks__phone-time {
  background: linear-gradient(107deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: var(--fw-bold);
  font-size: 1.8rem;
  letter-spacing: 0.04em;
}

.p-thanks__phone-catch {
  font-size: 2.4rem;
  letter-spacing: 0.06em;
}

.p-thanks__phone-num {
  font-size: 4.8rem;
  text-decoration: none;
  line-height: 1.2;
}

/* ホームへ戻るボタン */
.p-btn-back {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30rem;
  min-height: 6.8rem;
  padding: 1rem 2rem;
  background: var(--white);
  border: 1px solid var(--main);
  border-radius: 6px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  color: var(--main);
  font-size: 1.8rem;
  font-weight: var(--fw-bold);
  text-decoration: none;
  transition: opacity var(--transition);
}

.p-btn-back:hover {
  opacity: var(--opacity-hover);
}

/* ========== お問合せページ ========== */

.p-contact {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

/* リード文 */
.p-contact__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.8rem;
}

.p-contact__lead-title {
  font-size: 3.2rem;
  font-weight: var(--fw-bold);
  color: #333;
  line-height: 1.625;
  margin: 0;
}

.p-contact__lead-em {
  font-size: 4rem;
  font-weight: var(--fw-bold);
  background-image: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  background-repeat: no-repeat;
  background-size: 100% 10px;
  background-position: 0 100%;
}

.p-contact__lead-sub {
  font-size: 3.2rem;
  font-weight: var(--fw-bold);
  color: #333;
  line-height: 1.625;
  word-break: auto-phrase;
  line-break: strict;
}

/* お問合せページの電話CTAカード（cta-btn--phone を幅100%で使用） */
.p-contact__phone-cta.cta-btn--phone {
  width: 100%;
  height: auto;
  padding: clamp(2rem, 3.5vw, 5rem) clamp(1rem, 2vw, 2rem);
  padding-top: clamp(4rem, 6vw, 8rem);
  background-size: contain;
  margin: 0 auto;
}

.p-contact__phone-cta .cta-btn-label {
  font-size: clamp(1.4rem, 2vw, 2.8rem);
  letter-spacing: clamp(0.05em, 0.1vw, 0.06em);
  white-space: normal;
}

.p-contact__phone-cta .cta-btn-number {
  font-size: clamp(2.8rem, 4vw, 4.8rem);
  white-space: nowrap;
}

.p-contact__phone-cta .cta-btn-hours {
  font-size: clamp(1.2rem, 1.5vw, 2rem);
  letter-spacing: clamp(0.04em, 0.07vw, 0.06em);
  white-space: normal;
  text-align: center;
}

/* 2カラムレイアウト（左カラム＋フォーム） */
.p-contact__body {
  display: flex;
  gap: 5rem;
  align-items: flex-start;
  margin-top: 6rem;
}

/* 左カラム（電話CTA + テキスト + 支援事例） */
.p-contact__left {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

/* 電話CTA */

.p-contact__phone-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 3.6rem;
}

.p-contact__phone-icon {
  margin-bottom: 1.2rem;
}

.p-contact__phone-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  background: var(--white);
  border: 1px solid var(--main);
  border-radius: 6px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  padding: 3.2rem 4.8rem;
  width: 100%;
}

.p-contact__phone-catch,
.p-contact__phone-num,
.p-contact__phone-time {
  background: linear-gradient(107deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: var(--fw-bold);
  font-size: 1.8rem;
  letter-spacing: 0.04em;
}

.p-contact__phone-catch {
  font-size: 2.4rem;
  letter-spacing: 0.06em;
}

.p-contact__phone-num {
  font-size: 4.8rem;
  text-decoration: none;
  line-height: 1.2;
}

/* 説明テキスト */
.p-contact__desc {
  color: var(--black);
  font-size: var(--fz-l);
  font-weight: var(--fw-medium);
  line-height: 1.625;
  margin-bottom: 0;
}

.p-contact__logos {
  display: flex;
  flex-direction: column;
  gap: 6rem;
}

/* 過去の支援事例 */
h2.p-contact__logos-title {
  font-size: var(--fz-h2);
  font-weight: var(--fw-bold);
  color: var(--black);
  line-height: 1.2;
  gap: 6rem;
  display: flex;
  align-items: center;
  margin: 0;
}

.p-contact__logos-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.2rem;
}

.p-contact__logo-item {
  height: 10.4rem;
  background: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-contact__logo-item span {
  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  color: #d8d8d8;
}

/* フォームカード */
.p-contact__form-card {
  flex: 0 0 57.4rem;
  min-width: 0;
  background: var(--white);
  border: 1px solid #c2c2c2;
  border-radius: 20px;
  padding: 4rem 3rem;
}

/* フォーム */
.p-contact-form {
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

.p-contact-form__fields {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin: 0 auto;
  margin-top: 2rem;
}

.p-contact-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.p-contact-form__label-row {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.p-contact-form__label {
  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  color: #333;
}

.p-contact-form__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  background: linear-gradient(94.32deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  border-radius: 2px;
  color: var(--white);
  font-size: 1.2rem;
  font-weight: var(--fw-medium);
  line-height: 1;
  white-space: nowrap;
}

/* CF7のspan折り返しをブロック化してinputが100%幅になるようにする */
.p-contact-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.p-contact-form__input {
  background: #f8f8f8;
  border-radius: 6px;
  padding: 1rem 2rem;
  width: 100%;
  font-size: 1.6rem;
  color: #333;
  font-family: inherit;
  transition: border-color var(--transition);
}

.p-contact-form__input:focus {
  outline: none;
  border-color: var(--main);
}

.p-contact-form__input::placeholder {
  color: #b3b3b3;
  font-size: 1.6rem;
}

.p-contact-form__textarea {
  background: #f8f8f8;
  border-radius: 6px;
  padding: 1.6rem 2rem;
  height: 18rem;
  width: 100%;
  line-height: 1.2;
  font-size: 1.6rem;
  color: var(--black);
  font-family: inherit;
  resize: vertical;
  transition: border-color var(--transition);
}

.p-contact-form__textarea:focus {
  outline: none;
  border-color: var(--main);
}

.p-contact-form__textarea::placeholder {
  color: #b3b3b3;
}

p.p-contact-form__privacy {
  font-size: 1.4rem;
  color: #333;
  text-align: left;
  line-height: 1.5;
  margin: 0;
  text-align: center;
  word-break: auto-phrase;
  line-break: strict;
}

.p-contact-form__privacy-link {
  color: #5ab1ff;
  text-decoration: underline;
}

.p-contact-form__submit-wrap {
  display: flex;
  justify-content: center;
}

/* input[type="submit"] との詳細度競合を避けるため、セレクタを強化しました */
input[type="submit"].p-contact-form__submit,
button.p-contact-form__submit,
.p-contact-form__submit {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30rem;
  padding: 1rem 3.6rem 1rem 2rem;
  margin: 0;
  /* 背景を複数指定（アイコン + グラデーション）することで <input> 要素でもアイコンを表示可能にします */
  background:
    url("../../images/common/contact-arrow.svg") no-repeat right 0.7rem center /
      2.8rem 2.8rem,
    linear-gradient(103deg, var(--main) 1.69%, #5ab1ff 98.1%);
  border: none;
  border-radius: 6px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  color: var(--white);
  font-size: 1.8rem;
  font-weight: var(--fw-bold);
  cursor: pointer;
  font-family: inherit;
  transition: opacity var(--transition);
}

.p-contact-form__submit-arrow {
  display: none;
}

.p-contact-form__submit:hover {
  opacity: var(--opacity-hover);
}

/* ========== 資料ダウンロードページ ========== */

.p-download {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

/* パンくずリスト */
.p-download-breadcrumb {
  background-color: var(--bg);
  height: 4.2rem;
  overflow: hidden;
}

.p-download-breadcrumb__inner {
  height: 100%;
  display: flex;
  align-items: center;
}

.p-download-breadcrumb__list {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  list-style: none;
  font-size: var(--fz-s);
  margin: 0;
  padding: 0;
}

.p-download-breadcrumb__link {
  color: #9b9b9b;
  text-decoration: none;
  transition: opacity var(--transition);
}

.p-download-breadcrumb__link:hover {
  opacity: var(--opacity-hover);
}

.p-download-breadcrumb__sep {
  display: flex;
  align-items: center;
}

.p-download-breadcrumb__item--current span {
  background: linear-gradient(113deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* 2カラムレイアウト */
.p-download__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 5.9rem;
  align-items: start;
}

/* 左カラム */
.p-download__left {
  display: flex;
  flex-direction: column;
}

.p-download__title {
  font-size: 4rem;
  font-weight: var(--fw-bold);
  color: #333;
  line-height: 1.2;
  margin-bottom: 3.2rem;
}

/* 資料イメージ */
.p-download__img-area {
  aspect-ratio: 567 / 322;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 3.6rem;
}

/* 資料説明 */
.p-download__desc {
  font-size: 2.2rem;
  color: #333;
  line-height: 1.8;
  margin-bottom: 4rem;
}

/* 資料内容 */
.p-download__contents-title {
  font-size: 2.4rem;
  font-weight: var(--fw-bold);
  color: #333;
  padding-left: 1.6rem;
  margin-bottom: 2.4rem;
  position: relative;
}

.p-download__contents-title:before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 100%;
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-text-fill-color: transparent;
}

.p-download__contents-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.p-download__contents-item {
  font-size: 1.6rem;
  color: #333;
  line-height: 2.25;
  display: flex;
  align-items: baseline;
  gap: 0.2rem;
}

.p-download__bullet {
  background: linear-gradient(129deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  flex-shrink: 0;
}

/* ========== 支援事例 個別ページ ========== */

/* SWELL親テンプレートのタイトル・パンくず・サイドバー無効化、本文を全幅に */
.single-case .l-topTitleArea,
.single-case .p-breadcrumb,
.single-case .c-breadcrumb,
.single-case #breadcrumb,
.single-case .l-content > .p-breadcrumb,
.single-case #sidebar,
.single-case .l-sidebar {
  display: none;
}
.single-case .l-content,
.single-case .l-content__inner,
.single-case .l-mainContent,
.single-case .l-mainContent__inner,
.single-case .l-mainContent__main {
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin: 0;
  float: none;
}

/* ヒーローセクション */
.p-case-hero {
  background-color: #f8f8f8;
  padding-block: 11.2rem 0;
}

.p-case-hero__inner {
  display: flex;
  flex-direction: column;
}

.p-case-hero__title {
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  line-height: 1.3;
  background: linear-gradient(128deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.p-case-hero__body {
  display: grid;
  grid-template-columns: 55rem 1fr;
  gap: 5rem;
  align-items: start;
  margin-top: 8.3rem;
}

.p-case-hero__right {
  display: flex;
  align-items: flex-start;
}

.p-case-hero__img {
  width: 100%;
  border-radius: 10px;
  display: block;
}

.p-case-hero__img-placeholder {
  width: 100%;
  aspect-ratio: 600 / 400;
  background: #c4c4c4;
  border-radius: 10px;
}

/* Before/Afterサマリー */
.p-case-summary {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.p-case-summary__before {
  background: #f8f8f8;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.p-case-summary__label {
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  color: #333;
  line-height: 2;
  margin: 0;
}

.p-case-summary__text {
  font-size: 1.6rem;
  color: #333;
  line-height: inherit;
  font-weight: var(--fw-medium);
  margin: 0;
}

.p-case-summary__arrow {
  display: flex;
  justify-content: center;
  padding-block: 0;
}

.p-case-summary__after {
  background: linear-gradient(102deg, var(--main) 1.69%, #5ab1ff 98.1%);
  border-radius: 10px;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.p-case-summary__after .p-case-summary__label {
  color: var(--white);
}

.p-case-summary__after .p-case-summary__text {
  color: var(--white);
  font-weight: var(--fw-bold);
}

/* 詳細テーブル */
.p-case-meta {
  margin-top: 6.4rem;
  width: 100%;
}

.p-case-meta__row {
  display: flex;
  align-items: center;
  gap: 8rem;
  padding: 0 4rem;
  height: 10rem;
  border-top: 1px solid #d8d8d8;
  font-size: 2.2rem;
  line-height: 1.6;
}

.p-case-meta__label {
  font-weight: var(--fw-medium);
  color: #333;
  min-width: 9rem;
  flex-shrink: 0;
}

.p-case-meta__value {
  font-weight: var(--fw-medium);
  color: #333;
}

/* 詳細コンテンツ */
.p-case-content {
  padding-top: 8.3rem;
  padding-bottom: 11.2rem;
  background-color: var(--gray);
}

.p-case-articles {
  display: flex;
  flex-direction: column;
  gap: 5rem;
  padding: 6.4rem 7rem;
  background: var(--white);
}

.p-case-section {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  background: #fff;
}

.p-case-section__heading {
  display: flex;
  align-items: stretch;
  gap: 1rem;
  font-size: 2.4rem;
  font-weight: var(--fw-bold);
  color: #333;
  line-height: 1.33;
  text-align: left;
  margin: 0;
}

.p-case-section__heading::before {
  content: "";
  display: block;
  width: 6px;
  flex-shrink: 0;
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
}

.p-case-section__text {
  font-size: 1.8rem;
  color: #333;
  line-height: 2;
  font-weight: var(--fw-medium);
  text-align: left;
}

.p-case-content__btn-wrap {
  display: flex;
  justify-content: center;
  margin-top: 8.3rem;
}

/* 関連記事 */
.p-case-related {
  padding-bottom: 11.2rem;
  background-color: var(--gray);
}
.p-case-related__title {
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  color: #333;
}

.p-case-related__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
  margin-top: 8.3rem;
}

.c-case-card__img--placeholder {
  width: 100%;
  aspect-ratio: 340 / 227;
  background: #c4c4c4;
}

/* ========== 支援事例一覧ページ (archive-case.php) ========== */

/* SWELL標準パンくず・サイドバーを非表示（archive-caseのみ） */
.post-type-archive-case .p-breadcrumb,
.post-type-archive-case .c-breadcrumb,
.post-type-archive-case #breadcrumb,
.post-type-archive-case .l-content > .p-breadcrumb,
.post-type-archive-case #sidebar,
.post-type-archive-case .l-sidebar,
.post-type-archive-case .sidebar-case {
  display: none;
}

/* メインカラム全幅化 */
.post-type-archive-case .l-content,
.post-type-archive-case .l-content__inner,
.post-type-archive-case .l-mainContent,
.post-type-archive-case .l-mainContent__inner,
.post-type-archive-case .l-mainContent__main {
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin: 0;
  float: none;
}

.post-type-archive-case .l-content,
.post-type-archive-case .l-content__inner,
.post-type-archive-case .l-mainContent,
.post-type-archive-case .l-mainContent__inner {
  display: block;
}

/* ── FV ── */
.p-case-archive-fv {
  background: url(../../images/top/cta-bg.webp) no-repeat center center;
  background-size: cover;
  height: 30rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-case-archive-fv__title {
  font-size: var(--fz-h1);
  font-weight: var(--fw-bold);
  color: var(--white);
  text-align: center;
  line-height: 1;
  margin: 0;
  letter-spacing: 0.05em;
}

/* ── セクション ── */
.p-case-archive-section {
  background-color: var(--white);
  padding-top: 11.2rem;
  padding-bottom: 12rem;
}

/* ── フィルター ── */
.p-case-archive-filter__row {
  display: flex;
  align-items: center;
  gap: 5rem;
  min-height: 14rem;
  border-top: 1px solid var(--border);
  padding-block: 2rem;
}

.p-case-archive-filter__label {
  font-size: 2.2rem;
  font-weight: var(--fw-medium);
  color: var(--black);
  line-height: 1;
  width: 10rem;
  flex-shrink: 0;
  margin: 0;
}

.p-case-archive-filter__checkbox-group {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 5rem;
}

.p-case-archive-filter__checkbox-group--wrap {
  flex-wrap: wrap;
  row-gap: 1.6rem;
}

.p-case-archive-filter__checkbox-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
  user-select: none;
}

.p-case-archive-filter__checkbox-item input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.p-case-archive-filter__checkbox-custom {
  width: 20px;
  height: 20px;
  border: 2px solid transparent;
  border-radius: 2.5px;
  flex-shrink: 0;
  position: relative;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%) border-box;
  transition:
    background 0.15s,
    border-color 0.15s;
}

.p-case-archive-filter__checkbox-item
  input:checked
  + .p-case-archive-filter__checkbox-custom {
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%) border-box;
  background-origin: border-box;
  border-color: transparent;
}

.p-case-archive-filter__checkbox-item
  input:checked
  + .p-case-archive-filter__checkbox-custom::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7.9043 13.0147L16.2131 4.70587L17.3161 5.80881L7.9043 15.2206L3.5293 10.8456L4.63224 9.74264L7.9043 13.0147Z' fill='white'/%3E%3C/svg%3E");
  background-size: 20px 20px;
  background-position: center;
  background-repeat: no-repeat;
}

.p-case-archive-filter__checkbox-text {
  font-size: 2.2rem;
  font-weight: var(--fw-medium);
  color: var(--black);
  line-height: 1;
  white-space: nowrap;
}

.p-case-archive-filter__btn-wrap {
  display: flex;
  justify-content: center;
  margin-top: 4rem;
}

.p-case-archive-filter__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30rem;
  height: 6.8rem;
  border: 1px solid var(--main);
  border-radius: 6px;
  background: var(--white);
  color: var(--main);
  font-size: 1.8rem;
  font-weight: var(--fw-bold);
  font-family: var(--ff-ja);
  cursor: pointer;
  transition: opacity 0.2s;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
}

.p-case-archive-filter__btn:hover {
  opacity: var(--opacity-hover);
}

/* ── カードグリッド ── */
.p-case-archive__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8.3rem 3rem;
  /* margin-top: 8.3rem; */
}

.p-case-archive__grid .c-case-card {
  border-radius: 10px 10px 0 10px;
}

.p-case-archive__empty {
  grid-column: 1 / -1;
  text-align: center;
  font-size: var(--fz-base);
  color: var(--black);
  padding: 4rem 0;
}

/* ── ページネーション ── */
.p-case-archive-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3.6rem;
  margin-top: 6rem;
}

.p-case-archive-pagination__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: opacity 0.2s;
}

.p-case-archive-pagination__arrow:hover {
  opacity: 0.7;
}

.p-case-archive-pagination__numbers {
  display: flex;
  align-items: center;
  gap: 3.6rem;
}

.p-case-archive-pagination__number {
  font-family: var(--ff-en);
  font-size: 2.8rem;
  font-weight: var(--fw-medium);
  line-height: 1.75;
  background: var(
    --main2,
    linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%)
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-decoration: none;
  display: inline-block;
  transition: opacity 0.2s;
}

.p-case-archive-pagination__number--current {
  position: relative;
}

.p-case-archive-pagination__number--current::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
}

.p-case-archive-pagination__number:not(
    .p-case-archive-pagination__number--current
  ):hover {
  opacity: 0.7;
}

.p-case-archive-pagination__ellipsis {
  font-family: var(--ff-en);
  font-size: 2.8rem;
  font-weight: var(--fw-medium);
  background: linear-gradient(91deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* ========== 当事務所について ========== */

/* FV */
.p-about-fv {
  background: linear-gradient(108deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10rem 0;
}

.p-about-fv__title {
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  color: #fff;
  text-align: center;
  line-height: 1;
  letter-spacing: 0.02em;
}

/* 代表挨拶 */
.p-about-greeting__body {
  display: flex;
  flex-direction: row;
  gap: 4rem;
  align-items: start;
  margin-top: 8.3rem;
}

.p-about-greeting__img-wrap {
  flex: 0 0 46.8%;
}

.p-about-greeting__img {
  width: 100%;
  height: auto;
  border-radius: 1rem;
  object-fit: cover;
}

.p-about-greeting__text-area {
  display: flex;
  flex-direction: column;
}

.p-about-greeting__heading {
  font-size: 3.2rem;
  font-weight: var(--fw-bold);
  color: #333;
  line-height: 1.625;
  word-break: auto-phrase;
  line-break: strict;
  text-wrap: balance;
}

.p-about-greeting__desc {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-top: 6rem;
}

.p-about-greeting__desc p {
  font-size: 2.2rem;
  font-weight: var(--fw-medium);
  color: #333;
  line-height: 1.9;
  margin: 0;
}

.p-about-greeting__sig {
  font-size: 1.6rem;
  font-weight: var(--fw-medium);
  color: #333;
  text-align: right;
  line-height: 2;
  margin-top: 2rem;
  margin-bottom: 0;
}

.p-about-greeting__sig-name {
  font-size: 2.2rem;
}

/* プロフィールボックス */
.p-about-profile-box {
  position: relative;
  border-radius: 10px;
  background: var(--white);
  overflow: hidden;
  padding: 4rem 11rem;
  margin-top: 4rem;
  display: flex;
  align-items: center;
  min-height: 22rem;
}

.p-about-profile-box::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 10px;
  padding: 2px;
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-mask-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  -webkit-mask-clip: content-box, border-box;
  -webkit-mask-composite: xor;
  mask-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff);
  mask-clip: content-box, border-box;
  mask-composite: exclude;
  pointer-events: none;
}

.p-about-profile-box::before {
  content: "Profile";
  position: absolute;
  left: 18px;
  top: -10px;
  font-family: var(--ff-en);
  font-size: 8rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1;
  background: linear-gradient(
    107deg,
    rgba(79, 111, 254, 0.2) 1.69%,
    rgba(90, 177, 255, 0.2) 98.1%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  pointer-events: none;
  user-select: none;
}

.p-about-profile-box__text {
  font-size: var(--fz-l);
  font-weight: var(--fw-medium);
  color: var(--black);
  line-height: 1.9;
  margin: 0;
}

/* 事務所概要 */
.p-about-overview__table {
  width: 100%;
  margin-top: 8.3rem;
}

.p-about-overview__row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 11rem;
  padding: 4.6rem 4rem;
  min-height: unset;
  border-top: 1px solid #d8d8d8;
  font-size: 2.2rem;
  font-weight: var(--fw-medium);
  color: #333;
  line-height: 1.9;
}

.p-about-overview__dt {
  width: 26rem;
  flex-shrink: 0;
  font-weight: var(--fw-medium);
  font-size: 2rem;
}

.p-about-overview__dd {
  margin: 0;
  font-size: 2rem;
}

.p-about-overview__map {
  border-radius: 0;
  overflow: hidden;
  height: 444px;
}

.p-about-overview__map iframe {
  display: block;
  width: 100%;
  height: 100%;
}

.p-about-overview__map-placeholder {
  width: 100%;
  height: 44.4rem;
  background: #d9d9d9;
  border-radius: 0.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  color: #999;
}

/* 資格・登録情報 */
.p-about-certs__grid {
  margin-top: 5.3rem;
  max-width: 88rem;
  aspect-ratio: 207/149;
  margin-inline: auto;
}

.p-about-certs__img-placeholder {
  width: 100%;
}

/* ========== お客様の声ページ ========== */

.p-voice-cards-section {
  background: #fff;
}

/* カードグリッド */
.p-voice-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8.3rem 7rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-voice-cards__item {
  display: flex;
}

.p-voice-card {
  background: var(--gray);
  border-radius: var(--radius-m) var(--radius-m) 0 var(--radius-m);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  width: 100%;
}

.p-voice-card__img-wrap {
  width: 100%;
  aspect-ratio: 565 / 377;
  overflow: hidden;
  border-radius: var(--radius-m);
}

.p-voice-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.p-voice-card__body {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  padding: 5rem 5.3rem;
  flex: 1;
}

.p-voice-card__title {
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  color: var(--black);
  line-height: 1.45;
  margin: 0;
}

.p-voice-card__text {
  font-size: 1.6rem;
  font-weight: var(--fw-medium);
  color: var(--black);
  line-height: 1.875;
  margin: 0;
}

.p-voice-card__author {
  display: flex;
  flex-direction: column;
  margin-top: auto;
}

.p-voice-card__company {
  font-size: 1.4rem;
  font-weight: var(--fw-medium);
  color: var(--black);
  line-height: 1.875;
  margin: 0;
}

.p-voice-card__name {
  font-size: 2.2rem;
  font-weight: var(--fw-medium);
  color: var(--black);
  line-height: 1.875;
  margin: 0;
}

/* ========== よくある質問 ========== */

/* FV */
.p-faq-fv {
  background: linear-gradient(108deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10rem 0;
}

.p-faq-fv__title {
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  color: #fff;
  text-align: center;
  line-height: 1;
  letter-spacing: 0.02em;
}

/* カテゴリタブ */
.p-faq-tabs {
  display: flex;
  gap: 2rem;
}

.p-faq-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  border: 2px solid transparent;
  border-radius: 10px;
  background:
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%) border-box;
  padding: 1rem 2rem;
  text-decoration: none;
  flex: 1;
  transition: var(--transition);
}

.p-faq-tab:hover {
  opacity: var(--opacity-hover);
}

.p-faq-tab__label {
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  background: linear-gradient(113deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  white-space: nowrap;
}

.p-faq-tab__arrow {
  flex-shrink: 0;
}

/* カテゴリセクション */
.p-faq-category {
  margin-top: 8rem;
}

.p-faq-category:first-child {
  margin-top: 6rem;
}

.p-faq-category__header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
}

.p-faq-category .p-faq-list {
  margin-top: 4rem;
}

.p-faq-category__title {
  font-size: 4rem;
  font-weight: var(--fw-bold);
  color: #333;
  text-align: center;
  margin: 0;
  line-height: 1.5;
}

/* ブラケット（括弧デコレーター） */
.p-faq-category__bracket {
  display: block;
  width: 1.2rem;
  height: 8.4rem;
  flex-shrink: 0;
}

.p-faq-category__bracket--left {
  border-top: 2px solid #4f6ffe;
  border-bottom: 2px solid #4f6ffe;
  border-left: 2px solid #4f6ffe;
  border-radius: 4px 0 0 4px;
}

.p-faq-category__bracket--right {
  border-top: 2px solid #4f6ffe;
  border-bottom: 2px solid #4f6ffe;
  border-right: 2px solid #4f6ffe;
  border-radius: 0 4px 4px 0;
}

/* Q&Aリスト */
.p-faq-list {
  width: 100%;
}

/* Q&Aペア */
.p-faq-qa__q-row {
  display: flex;
  align-items: center;
  gap: 2rem;
  padding: 0 2rem;
  min-height: 12rem;
  border-top: 1px solid #d8d8d8;
  cursor: pointer;
}

.p-faq-qa--last .p-faq-qa__q-row {
  border-bottom: 1px solid #d8d8d8;
}

.p-faq-qa--last.is-open .p-faq-qa__q-row {
  border-bottom: 0;
}

.p-faq-qa--last .p-faq-qa__a-row {
  border-bottom: 1px solid #d8d8d8;
}

/* FAQページ・就労ビザページでは最終行のborder-bottomなし */
.p-faq-content .p-faq-qa--last .p-faq-qa__q-row,
.p-faq-content .p-faq-qa--last .p-faq-qa__a-row,
.p-wv-faq .p-faq-qa--last .p-faq-qa__q-row,
.p-wv-faq .p-faq-qa--last .p-faq-qa__a-row {
  border-bottom: none;
}

.p-faq-qa__a-row {
  display: none;
  align-items: center;
  gap: 4rem;
  padding: 0 2rem 4rem;
}

.p-faq-qa__icon--a {
  margin-top: 0.4rem;
}

.p-faq-qa.is-open .p-faq-qa__a-row {
  display: flex;
}

.p-faq-qa__toggle {
  flex-shrink: 0;
  font-size: 2.6rem;
  font-weight: 300;
  margin-left: auto;
  background: linear-gradient(91deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.p-faq-qa.is-open .p-faq-qa__toggle {
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
  color: #666;
}

/* Q/Aアイコン */
.p-faq-qa__icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 4.6rem;
  height: 4.6rem;
}

.p-faq-qa__icon svg {
  display: block;
}

.p-faq-qa__icon-letter {
  position: absolute;
  font-family: "Jost", sans-serif;
  font-size: 2.6rem;
  font-weight: 400;
  line-height: 1;
}

.p-faq-qa__icon-letter--q {
  color: #fff;
}

.p-faq-qa__icon-letter--a {
  background: linear-gradient(91deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* 質問テキスト */
.p-faq-qa__question {
  font-size: 2.6rem;
  font-weight: var(--fw-bold);
  color: #333;
  margin: 0;
  line-height: 1.5;
  overflow-wrap: break-word;
  word-break: auto-phrase;
  line-break: strict;
}

/* 回答テキスト */
.p-faq-qa__answer {
  font-size: 2rem;
  font-weight: var(--fw-medium);
  color: #333;
  margin: 0;
  line-height: 1.6;
  overflow-wrap: break-word;
}

.p-faq-qa__answer-lead {
  color: #333;
  font-weight: var(--fw-bold);
}

/* ========== 就労ビザ申請ページ ========== */

/* FV */
.p-wv-fv {
  background: linear-gradient(108deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  padding: 6rem 0 8rem;
}

.p-wv-fv__content {
  max-width: 80rem;
}

.p-wv-fv__breadcrumb-list {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
}

.p-wv-fv__breadcrumb-link,
.p-wv-fv__breadcrumb-current {
  font-size: 1.4rem;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
}

.p-wv-fv__breadcrumb-link:hover {
  color: #fff;
  text-decoration: underline;
}

.p-wv-fv__breadcrumb-sep {
  display: flex;
  align-items: center;
}

.p-wv-fv__title {
  font-size: 5.2rem;
  font-weight: var(--fw-bold);
  color: #fff;
  line-height: 1.3;
  margin-top: 3.2rem;
}

.p-wv-fv__desc {
  font-size: 1.7rem;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.9;
  margin-top: 2.4rem;
  max-width: 72rem;
}

.p-wv-fv__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 3.2rem;
}

.p-wv-fv__tag {
  display: inline-block;
  padding: 0.6rem 1.6rem;
  border: 1.5px solid rgba(255, 255, 255, 0.7);
  border-radius: 10rem;
  font-size: 1.4rem;
  color: #fff;
  letter-spacing: 0.03em;
}

.p-wv-fv__cta {
  display: flex;
  gap: 1.6rem;
  flex-wrap: wrap;
  margin-top: 4rem;
}

.p-wv-fv__cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1.6rem 3.2rem;
  border-radius: 0.8rem;
  text-decoration: none;
  transition: var(--transition);
}

.p-wv-fv__cta-btn--tel {
  background: #fff;
  color: #1a1a2e;
}

.p-wv-fv__cta-btn--tel:hover {
  opacity: var(--opacity-hover);
}

.p-wv-fv__cta-btn--contact {
  background: transparent;
  border: 2px solid rgba(255, 255, 255, 0.8);
  color: #fff;
}

.p-wv-fv__cta-btn--contact:hover {
  background: rgba(255, 255, 255, 0.12);
}

.p-wv-fv__cta-label {
  font-size: 1.5rem;
  line-height: 1.5;
}

.p-wv-fv__cta-label strong {
  display: block;
  font-size: 2rem;
  font-weight: var(--fw-bold);
}

/* お悩みセクション */
.p-wv-problems {
  background: var(--white);
  padding-bottom: 0 !important;
}

.p-wv-problems__inner {
  display: flex;
  flex-direction: column;
  gap: 7.7rem;
}

.p-wv-problems__body {
  display: flex;
  align-items: flex-start;
  gap: 4.2rem;
}

.p-wv-problems__img {
  flex-shrink: 0;
  width: 224px;
  margin: 0;
}

.p-wv-problems__img img {
  width: 100%;
  height: auto;
  display: block;
}

.p-wv-problems__list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  column-gap: 24px;
  row-gap: 56px;
  flex: 1;
  list-style: none;
  padding: 0;
  margin: 0;
}

.p-wv-problems__item {
  padding-top: 3rem;
  padding-bottom: 3rem;
  border-radius: var(--radius-m);
  font-size: var(--fz-m);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  display: flex;
  align-items: center;
  min-height: 100px;
  position: relative;
  justify-content: center;
  text-align: center;
}

.p-wv-problems__item p {
  font-size: 1.6rem;
  line-height: 1.7;
  margin: 0;
}

.p-wv-problems__item:nth-child(odd) {
  background: var(--bg);
}

.p-wv-problems__item:nth-child(even) {
  background: var(--gray);
}

/* 吹き出し装飾（1番目・6番目のみ） */
.p-wv-problems__item:nth-child(1)::after,
.p-wv-problems__item:nth-child(6)::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  width: 22px;
  height: 18px;
  bottom: -10px;
  pointer-events: none;
  z-index: 1;
  right: 14px;
  background: var(--gray);
  box-shadow:
    -5px 22px 0 -4px var(--gray),
    -9px 40px 0 -5.5px var(--gray);
}

.p-wv-problems__item:nth-child(1)::after {
  left: 14px;
  background: var(--bg);
  box-shadow:
    13px 22px 0 -4px var(--bg),
    20px 40px 0 -5.5px var(--bg);
}

.p-wv-problems__strip {
  background: linear-gradient(108deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  padding: 2.4rem 0;
  text-align: center;
}

.p-wv-problems__strip-text {
  font-size: 2.4rem;
  font-weight: var(--fw-bold);
  color: #fff;
  letter-spacing: 0.04em;
  margin: 0;
}

/* ========== サービス詳細（p-wv-detail） ========== */

/* セクション見出し（Strengths グラデーション型） */
.p-wv-detail {
  background: var(--white);
}

.p-wv-detail__strengths-header {
  display: flex;
  align-items: flex-end;
  gap: 4rem;
}

.p-wv-detail__strengths-header-text {
  background: linear-gradient(110deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.p-wv-detail__strengths-sub {
  font-size: 2.4rem;
  font-weight: var(--fw-medium);
  line-height: 1.17;
  margin: 0;
  word-break: auto-phrase;
  line-break: strict;
}

.p-wv-detail__strengths-title {
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  line-height: 1.17;
  margin: 0;
}

.p-wv-detail__strengths-en {
  display: flex;
  align-items: center;
  gap: 4rem;
  flex-shrink: 0;
  padding-bottom: 0.6rem;
}

.p-wv-detail__strengths-line {
  display: block;
  width: 9rem;
  height: 1px;
  background: linear-gradient(90deg, #4f6ffe, #5ab1ff);
}

.p-wv-detail__strengths-en-text {
  font-family: "Jost", sans-serif;
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  background: linear-gradient(95deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  white-space: nowrap;
}

/* 導入テキスト + サービス画像 */
.p-wv-detail__body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5.6rem;
  align-items: center;
}

.p-wv-detail__lead {
  font-size: 2rem;
  font-weight: var(--fw-bold);
  color: var(--text, #333);
  line-height: 1.7;
}

.p-wv-detail__desc {
  font-size: 1.7rem;
  color: #444;
  line-height: 1.9;
  margin-top: 2rem;
}

.p-wv-detail__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 1rem;
  display: block;
}

/* POINTリスト */
.p-wv-detail__points {
  display: flex;
  flex-direction: column;
  gap: 6rem;
  margin-top: 6.4rem;
}

/* POINTアイテム — 画像がカード左端に重なる絶対配置レイアウト（PC専用） */
.p-wv-detail__point {
  position: relative;
  padding-top: 50px; /* 画像がカード上端より50px飛び出す */
}

/* 画像：min()でコンテナ幅に追従しつつ最大436pxに制限 */
.p-wv-detail__point-img-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: min(436px, 40%);
  height: 290px;
  z-index: 2;
  border-radius: 1rem;
  overflow: hidden;
}

.p-wv-detail__point-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* テキストカード（グレー背景）：画像幅から36px手前でカード開始 */
.p-wv-detail__point-body {
  margin-left: calc(min(436px, 40%) - 36px);
  min-height: 290px;
  background: #f8f8f8;
  padding: 5.8rem 1.9rem 2.5rem 4.1rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  z-index: 10;
  position: relative;
}

/* テキストブロック */
.p-wv-detail__point-content {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.p-wv-detail__point-title {
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  color: var(--text, #333);
  line-height: 1.45;
  margin: 0;
  word-break: auto-phrase;
  line-break: strict;
}

.p-wv-detail__point-text {
  font-size: 1.6rem;
  font-weight: var(--fw-medium);
  color: var(--text, #333);
  line-height: 1.875;
  margin: 0;
}

/* 番号フッター（ライン + 連番） */
.p-wv-detail__point-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4rem;
  flex-shrink: 0;
}

.p-wv-detail__point-line {
  display: block;
  width: min(290px, 40%);
  height: 1px;
  background: linear-gradient(90deg, #4f6ffe, #5ab1ff);
  transform: rotate(-0.001deg);
  flex-shrink: 0;
}

.p-wv-detail__point-num {
  font-family: "Jost", sans-serif;
  font-size: 3.6rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.33;
  flex-shrink: 0;
  width: 5rem;
  text-align: center;
}

/* リバース（画像右） */
.p-wv-detail__point--reverse .p-wv-detail__point-img-wrap {
  left: auto;
  right: 0;
}

.p-wv-detail__point--reverse .p-wv-detail__point-body {
  margin-left: 0;
  margin-right: calc(min(436px, 40%) - 36px);
  padding: 2.6rem 3.2rem 2.6rem 4rem;
  justify-content: flex-end;
}

/* TB（1024px以下）— 縦積みに切り替え */
@media screen and (max-width: 1023px) {
  .p-wv-detail__strengths-title {
    font-size: 3.6rem;
  }

  .p-wv-detail__points {
    gap: 4.8rem;
  }

  .p-wv-detail__point {
    position: static;
    padding-top: 0;
    display: flex;
    flex-direction: column;
  }

  .p-wv-detail__point-img-wrap {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    width: 100%;
    height: 28rem;
    border-radius: 1rem 1rem 0 0;
  }

  .p-wv-detail__point-body {
    margin-left: 0;
    margin-right: 0;
    min-height: auto;
    padding: 2.4rem 2.4rem;
    flex-direction: column-reverse;
  }

  .p-wv-detail__point--reverse .p-wv-detail__point-img-wrap {
    right: auto;
    border-radius: 1rem 1rem 0 0;
  }

  .p-wv-detail__point--reverse .p-wv-detail__point-body {
    margin-right: 0;
    padding: 2.4rem 2.4rem;
    flex-direction: column-reverse;
  }
}

/* SP（768px以下） */
@media screen and (max-width: 768px) {
  .p-wv-detail__strengths-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 1.2rem;
  }

  .p-wv-detail__strengths-sub {
    font-size: 1.6rem;
  }

  .p-wv-detail__strengths-title {
    font-size: 2.8rem;
  }

  .p-wv-detail__body {
    grid-template-columns: 1fr;
    gap: 3.2rem;
  }

  .p-wv-detail__points {
    gap: 4rem;
    margin-top: 4rem;
  }

  .p-wv-detail__point-img-wrap {
    height: 22rem;
  }

  .p-wv-detail__point-body {
    padding: 2.4rem 2rem;
  }

  .p-wv-detail__point--reverse .p-wv-detail__point-body {
    padding: 2.4rem 2rem;
  }

  .p-wv-detail__point-num {
    font-size: 2.8rem;
  }
}

/* ========== 解決 キャッチコピー（p-wv-catch） ========== */
.p-wv-catch {
  background: linear-gradient(109.94deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  position: relative;
  z-index: 1;
  padding-top: 11.2rem;
  padding-bottom: 11.2rem;
  text-align: center;
  overflow: visible;
}

.p-wv-catch::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 15rem solid transparent;
  border-right: 15rem solid transparent;
  border-top: 6rem solid #fff;
}

.p-wv-catch::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 46rem;
  height: 35rem;
  background-image: url(../../images/common/catch-deco.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 2;
}

.p-wv-catch__text {
  font-size: 4rem;
  font-weight: 700;
  color: #ffc83d;
  line-height: 1.3;
  letter-spacing: 0.04em;
  margin: 0;
  padding-inline: 8rem;
  text-wrap: balance;
  word-break: auto-phrase;
  line-break: strict;
}

/* 支援事例 — .p-case-cards に統一済み */
.p-wv-cases {
  background: var(--bg);
}
.p-wv-cases__btn-wrap {
  text-align: center;
}

/* 3つのメリット */
.p-wv-merits {
  background: var(--white);
  padding-top: 9.5rem;
  padding-bottom: 11.2rem;
}

.p-wv-merits__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto 1fr;
  column-gap: 6rem;
  row-gap: 1.6rem;
}

.p-wv-merits__item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  row-gap: 1.6rem;
  border-radius: 10px;
  padding: 4rem 2.2rem 4.4rem;
  border: 3px solid transparent;
  background:
    linear-gradient(#f6f9ff, #f6f9ff) padding-box,
    var(--main2) border-box;
}

.p-wv-merits__num {
  font-family: "Jost", sans-serif;
  font-size: 6.4rem;
  font-weight: 700;
  line-height: 1;
  background: linear-gradient(108deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 2rem;
}

.p-wv-merits__title {
  background: var(--main2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  line-height: 1.636;
  text-align: center;
  letter-spacing: normal;
  word-break: auto-phrase;
  line-break: strict;
}

.p-wv-merits__text {
  color: var(--color-base, #333);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.8rem;
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: 1.667;
  margin: 0;
}

.p-wv-merits .c-section-header-ja {
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 5.6rem;
}

.p-wv-merits__num-large {
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-size: 6rem;
  font-weight: 700;
  line-height: 5.6rem;
}

/* 料金 */
.p-wv-price {
  padding-top: 11rem;
  padding-bottom: 11.2rem;
  background: #f0f2f7;
}
.p-wv-price__notice {
  background: #f0f2f7;
  border-left: 4px solid #4f6ffe;
  padding: 1.6rem 2.4rem;
  border-radius: 0.4rem;
  font-size: 1.6rem;
  color: #444;
  line-height: 1.7;
  margin-bottom: 4rem;
}

.p-wv-price__block + .p-wv-price__block {
  margin-top: 4.8rem;
}

.p-wv-price__block-title {
  position: relative;
  padding-left: 1.6rem;
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  color: #1a1a2e;
  margin-bottom: 1.6rem;
}

.p-wv-price__block-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 18px;
  background: linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
}

.p-wv-price__block-links {
  display: flex;
  flex-wrap: wrap;
  gap: 4.4rem;
}

.p-wv-price__table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: 2.6rem;
}

.p-wv-price__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.6rem;
}

.p-wv-price__table th {
  background: linear-gradient(108deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  color: #fff;
  font-weight: var(--fw-bold);
  padding: 1.2rem 1.6rem;
  text-align: left;
  white-space: nowrap;
}

.p-wv-price__table td {
  padding: 1.2rem 1.6rem;
  border-bottom: 1px solid #e6ebff;
  color: #333;
  line-height: 1.6;
}

.p-wv-price__table tr:last-child td {
  border-bottom: none;
}

.p-wv-price__table tr:nth-child(even) td {
  background: #f8f9fc;
}

.p-wv-price__link-wrap {
  text-align: center;
  margin-top: 1.6rem;
}

/* ご利用の流れ */
.p-wv-flow {
  background: #f0f2f7;
}

.p-wv-flow__steps {
  display: flex;
  flex-direction: column;
  max-width: 98.5rem;
  margin-inline: auto;
}

.p-wv-flow__step {
  display: flex;
  align-items: stretch;
  margin: 0;
  padding: 0;
}

.p-wv-flow__step-num {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 15rem;
  flex-shrink: 0;
  padding-bottom: 1.4rem;
  font-family: "Jost", sans-serif;
  color: #fff;
  text-align: center;
}

.p-wv-flow__step-num--01 {
  background: #b8c6ff;
}
.p-wv-flow__step-num--02 {
  background: #8fa6ff;
}
.p-wv-flow__step-num--03 {
  background: #4f6ffe;
}
.p-wv-flow__step-num--04 {
  background: #3e5de6;
}
.p-wv-flow__step-num--05 {
  background: #2f4fcc;
}

.p-wv-flow__step-num-label {
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 4.8rem;
}

.p-wv-flow__step-num-val {
  font-size: 5rem;
  font-weight: 400;
  line-height: 4.8rem;
}

.p-wv-flow__step-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1rem;
  padding: 2rem 5rem;
  min-height: 22rem;
}

.p-wv-flow__step-body--odd {
  background: #fff;
}
.p-wv-flow__step-body--even {
  background: #f8f8f8;
}

.p-wv-flow__step-title {
  font-size: 2.2rem;
  font-weight: var(--fw-bold);
  color: #333;
  line-height: 3rem;
  margin: 0;
  word-break: auto-phrase;
  line-break: strict;
}

.p-wv-flow__step-text {
  font-size: 1.6rem;
  font-weight: 500;
  color: #333;
  line-height: 3rem;
  margin: 0;
}

.p-wv-flow__arrow-row {
  position: relative;
  z-index: 1;
  height: 0;
  margin: 0;
  line-height: 0;
  font-size: 0;
}

.p-wv-flow__step-arrow {
  position: absolute;
  top: 0;
  left: 0;
  width: 15rem;
  height: 2rem;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.p-wv-flow__step-arrow--01 {
  background: #b8c6ff;
}
.p-wv-flow__step-arrow--02 {
  background: #8fa6ff;
}
.p-wv-flow__step-arrow--03 {
  background: #4f6ffe;
}
.p-wv-flow__step-arrow--04 {
  background: #3e5de6;
}

/* FAQセクション — 常時オープン（トグルなし） */
.p-faq-content .p-faq-qa__a-row,
.p-wv-faq .p-faq-qa__a-row {
  display: flex;
}

.p-faq-content .p-faq-qa__toggle,
.p-wv-faq .p-faq-qa__toggle {
  display: none;
}

.p-faq-content .p-faq-qa__q-row,
.p-wv-faq .p-faq-qa__q-row {
  cursor: default;
}

.p-wv-faq {
  background: #fff;
}

.p-wv-faq__link-wrap {
  text-align: center;
  margin-top: 4rem;
}

/* 対応業種 */
.p-wv-coverage {
  background: #fff;
}

.p-wv-coverage__inner {
  display: flex;
  flex-direction: column;
  gap: 8.3rem;
}

.p-wv-coverage__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.p-wv-coverage__item {
  background: #fff;
  border-radius: 1.2rem;
  padding: 2.4rem;
  box-shadow: 0 2px 10px rgba(79, 111, 254, 0.07);
}

.p-wv-coverage__item-title {
  font-size: 1.8rem;
  font-weight: var(--fw-bold);
  color: #1a1a2e;
  padding-bottom: 1rem;
  border-bottom: 2px solid #e6ebff;
  line-height: 1.4;
}

.p-wv-coverage__item-tags {
  font-size: 1.4rem;
  color: #666;
  line-height: 1.7;
  margin-top: 1.2rem;
}

/* ========== 業種テーブルレイアウト（p-wv-coverage 更新） ========== */
.p-wv-coverage__lead {
  margin-top: 0;
  margin-bottom: 0;
  text-align: start;
  font-size: 2.2rem;
  font-weight: var(--fw-medium);
  line-height: 3.6rem;
}

.p-wv-coverage__table {
  margin-top: 0;
  display: grid;
  grid-auto-rows: 1fr;
  gap: 1.4rem;
}

.p-wv-coverage__row {
  display: flex;
  align-items: center;
  gap: 6rem;
  background: #f0f2f7;
}

.p-wv-coverage__label {
  display: flex;
  width: 18rem;
  min-height: 6rem;
  padding: 1rem;
  justify-content: center;
  align-items: center;
  align-self: stretch;
  flex-shrink: 0;
  border-radius: 0.6rem;
  border: 2px solid transparent;
  background:
    linear-gradient(#fff, #fff) padding-box,
    var(--main2) border-box;
  color: #4f6ffe;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.p-wv-coverage__jobs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem 2.4rem;
  margin: 0;
  font-size: 2.2rem;
  font-weight: var(--fw-medium);
  line-height: 1.8;
}

/* ========== 対応エリア（p-wv-area） ========== */
.p-wv-area {
  background: #fff;
}

.p-wv-area__lead-wrap {
  margin-top: 3.2rem;
}

.p-wv-area__lead {
  font-size: 1.7rem;
  color: #444;
  line-height: 1.8;
  margin: 0 0 0.8rem;
}

.p-wv-area__note {
  font-size: 1.4rem;
  color: #888;
  margin: 0;
}

.p-wv-area__table-wrap {
  margin-top: 4rem;
  background: #f8f9fc;
  border-radius: 1.6rem;
  padding: 3.2rem;
}

.p-wv-area__row {
  display: grid;
  grid-template-columns: 13rem 1fr;
  align-items: center;
  gap: 2rem;
  padding: 1.4rem 0;
  border-bottom: 1px solid #e6ebff;
}

.p-wv-area__row:last-child {
  border-bottom: none;
}

.p-wv-area__region {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(108deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  color: #fff;
  font-size: 1.5rem;
  font-weight: var(--fw-bold);
  padding: 0.8rem 1.2rem;
  border-radius: 0.8rem;
  text-align: center;
  width: 100%;
}

.p-wv-area__prefectures {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-wv-area__pref {
  font-size: 1.5rem;
  color: #333;
  background: #fff;
  border: 1px solid #d8e0f7;
  border-radius: 0.6rem;
  padding: 0.4rem 1.2rem;
  white-space: nowrap;
}

/* サービスナビゲーション */
.p-wv-nav {
  padding-top: 5.6rem;
  padding-bottom: 5.6rem;
  background: #f7f8fc;
}

.p-wv-nav__lead {
  font-size: 1.6rem;
  color: #555;
  line-height: 1.8;
  margin-top: 0;
  text-align: center;
}

.p-wv-nav__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.6rem;
  list-style: none;
  margin-top: 4rem;
  padding: 0;
}

.p-wv-nav__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.2rem;
  padding: 2.8rem 1.6rem 2.4rem;
  background: #fff;
  border: 1.5px solid #e8ecf7;
  border-radius: 1.2rem;
  text-decoration: none;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.p-wv-nav__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(79, 111, 254, 0.12);
  border-color: #4f6ffe;
}

.p-wv-nav__card--consult {
  border-style: dashed;
  border-color: #b0beff;
  background: #f4f6ff;
}

.p-wv-nav__card--consult:hover {
  background: #fff;
  border-style: solid;
}

.p-wv-nav__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.8rem;
  height: 4.8rem;
  flex-shrink: 0;
}

.p-wv-nav__card-title {
  font-size: 1.5rem;
  font-weight: var(--fw-bold);
  color: var(--black);
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.p-wv-nav__card-sub {
  font-size: 1.2rem;
  color: #888;
  line-height: 1.5;
}

/* ========== 対応ビザ種別（p-wv-visa-types） ========== */

.p-wv-visa-types {
  padding-top: 8rem;
  padding-bottom: 8rem;
  background: #fff;
}

.p-wv-visa-types__lead {
  font-size: 2.2rem;
  font-weight: var(--fw-medium);
  line-height: 1.8;
  color: var(--black);
  text-align: center;
  margin: 0;
}

.p-wv-visa-types__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  column-gap: 6rem;
  row-gap: 2rem;
  margin-top: 8rem;
}

/* 上段3カード：各2列分 */
.p-wv-visa-types__card {
  grid-column: span 2;
  display: flex;
  flex-direction: column;
  border-radius: 1rem;
  overflow: hidden;
}

/* 下段2カード：各3列分 */
.p-wv-visa-types__card--wide {
  grid-column: span 3;
}

.p-wv-visa-types__card-head {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.6rem;
  background: linear-gradient(108.5deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  transition: opacity 0.3s ease;
}

.p-wv-visa-types__card-head:hover {
  opacity: 0.7;
}

.p-wv-visa-types__card-title:hover {
  opacity: 1;
}

.p-wv-visa-types__card-title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 1.8rem;
  font-weight: var(--fw-bold);
  color: #fff;
  line-height: 1.6;
  text-align: center;
  margin: 0;
  white-space: nowrap;
}

.p-wv-visa-types__card-body {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3.2rem 1.6rem;
  background:
    linear-gradient(#f6f9ff, #f6f9ff) padding-box,
    linear-gradient(93deg, #4f6ffe 1.69%, #5ab1ff 98.1%) border-box;
  border-top: none;
  border-right: 3px solid transparent;
  border-bottom: 3px solid transparent;
  border-left: 3px solid transparent;
  border-radius: 0 0 1rem 1rem;
}

.p-wv-visa-types__card-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  width: 100%;
  justify-content: center;
}

.p-wv-visa-types__card-list--row {
  flex-direction: row;
  gap: 2rem;
  flex-wrap: wrap;
}

.p-wv-visa-types__card-row {
  display: flex;
  gap: 2rem;
  align-items: center;
}

.p-wv-visa-types__card-item,
.p-wv-visa-types__card-item--block {
  font-size: 1.5rem;
  letter-spacing: normal;
  font-weight: var(--fw-medium);
  line-height: 1.7;
  background: linear-gradient(108.5deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.p-wv-visa-types__cta-wrap {
  display: flex;
  justify-content: center;
  margin-top: 6.4rem;
}

.p-wv-visa-types__cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  padding: 1rem 2rem;
  min-width: 33.6rem;
  min-height: 6.8rem;
  background: linear-gradient(104.5deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  border-radius: var(--radius-s);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25);
  text-decoration: none;
  transition: opacity 0.2s;
}

.p-wv-visa-types__cta-btn:hover {
  opacity: var(--opacity-hover);
}

.p-wv-visa-types__cta-text {
  font-size: 1.8rem;
  font-weight: var(--fw-bold);
  color: #fff;
  white-space: nowrap;
}

.p-wv-visa-types__cta-icon {
  flex-shrink: 0;
}

/*************************** 取扱業務一覧 (service.php) *******************/

/* ========== p-service-lead ========== */
.p-service-lead {
  padding-top: 8rem;
}

.p-service-lead__text {
  font-size: 2.2rem;
  line-height: 1.9;
  color: #333;
  text-align: center;
}

/* ---------- サービスリスト ---------- */
.p-service-list {
  margin-top: 8.3rem;
  display: flex;
  flex-direction: column;
  gap: 9rem;
}

/* ---------- サービスアイテム ---------- */
.p-service-item {
  display: flex;
  align-items: center;
  gap: 5.7rem;
}
.p-service-item__img-wrap {
  flex-shrink: 0;
  width: 52rem;
  overflow: hidden;
}
.p-service-item__img {
  width: 100%;
  aspect-ratio: 520 / 347;
  object-fit: cover;
  display: block;
}
.p-service-item__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  align-items: flex-start;
}
.p-service-item__heading {
  display: flex;
  align-items: center;
  gap: 2rem;
  margin: 0;
}
.p-service-item__num {
  font-family: "Jost", sans-serif;
  font-size: 6rem;
  font-weight: 400;
  line-height: 1;
  background: linear-gradient(110deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.p-service-item__title {
  font-size: 2.8rem;
  font-weight: var(--fw-bold);
  color: var(--black);
  line-height: 1.4;
  letter-spacing: normal;
}
.p-service-item__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1rem;
}
.p-service-item__tag {
  display: inline-flex;
  align-items: center;
  height: 2.4rem;
  padding: 0 0.8rem;
  background: var(--main);
  color: var(--white);
  font-size: 1.4rem;
  border-radius: 4px;
  line-height: 1;
}
.p-service-item__desc {
  font-size: 1.8rem;
  line-height: 2;
  color: var(--black);
  margin: 0;
}
.p-service-item__link {
  display: flex;
  align-items: center;
  gap: 2rem;
  text-decoration: none;
  align-self: flex-end;
}
.p-service-item__link-line {
  display: block;
  flex-shrink: 0;
  width: 9rem;
  height: 1px;
  background: linear-gradient(104deg, var(--main) 1.69%, #5ab1ff 98.1%);
}
.p-service-item__link-text {
  font-size: 1.8rem;
  background: linear-gradient(104deg, var(--main) 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  transition: opacity var(--transition);
}
.p-service-item__link:hover .p-service-item__link-text {
  opacity: var(--opacity-hover);
}

/*************************** 取扱業務詳細テンプレ (page-work-template.php) *******************/

/* ========== p-wt-fv ========== */
.p-wt-fv {
  background: linear-gradient(108deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  padding-top: 6rem;
  padding-bottom: 8rem;
}

.p-wt-fv__breadcrumb-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.3rem 0.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 1.8;
}

.p-wt-fv__breadcrumb-link {
  font-size: 1.4rem;
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  white-space: nowrap;
}

.p-wt-fv__breadcrumb-current {
  font-size: 1.4rem;
  color: rgba(255, 255, 255, 0.85);
  white-space: nowrap;
}

.p-wt-fv__title {
  font-size: 4.8rem;
  font-weight: var(--fw-bold);
  color: #fff;
  line-height: 1.3;
  margin-top: 2.4rem;
}

/* ========== p-wt-lead ========== */
.p-wt-lead {
  padding-top: 8rem;
  padding-bottom: 4rem;
}

.p-wt-lead__text {
  font-size: 1.8rem;
  line-height: 2;
  color: #333;
}

/* ========== p-wt-features ========== */
.p-wt-features {
  padding-top: 4rem;
  padding-bottom: 10rem;
}

.p-wt-features__inner {
  display: flex;
  flex-direction: column;
  gap: 5.6rem;
}

.p-wt-features__item {
  border-left: 4px solid #4f6ffe;
  padding-left: 3.2rem;
}

.p-wt-features__header {
  display: flex;
  align-items: baseline;
  gap: 1.6rem;
  margin-bottom: 1.6rem;
}

.p-wt-features__number {
  font-family: "Jost", sans-serif;
  font-size: 4.8rem;
  font-weight: 400;
  background: linear-gradient(110deg, #4f6ffe 1.69%, #5ab1ff 98.1%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}

.p-wt-features__title {
  font-size: 2.4rem;
  font-weight: var(--fw-bold);
  color: #333;
}

.p-wt-features__text {
  font-size: 1.8rem;
  font-weight: var(--fw-medium);
  line-height: 2;
  color: #333;
}

.p-wt-content {
  padding-top: 6rem;
  padding-bottom: 10rem;
}

/* /privacy/ 固定ページ: コンテンツエリア上下余白 */
#body_wrap.privacy-policy #content.l-content {
  padding-top: 83px !important;
  padding-bottom: 83px !important;
}

/* /privacy/ 固定ページ: SWELL標準テンプレ＋ブロックエディタ本文用の見出し装飾
   body_classは #body_wrap に付与されるため、コンテナ基点で対象化 */
.p-page__content h2.wp-block-heading {
  position: relative;
  font-size: 2.4rem;
  font-weight: var(--fw-bold);
  color: #1a1a2e;
  letter-spacing: normal;
  line-height: 1.5;
  padding: 0.4rem 0 1rem 1.8rem;
  margin: 4rem 0 1.4rem;
  border-bottom: 1px solid #e0e4ed;
}

.p-page__content h2.wp-block-heading::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 4px;
  height: 2.4rem;
  background: linear-gradient(180deg, #4f6ffe 0%, #5ab1ff 100%);
  border-radius: 2px;
  transform: translateY(-50%);
}

#body_wrap.privacy-policy #content ul,
#body_wrap.privacy-policy #content ol {
  font-size: 1.8rem;
}
