.swiper-wrapper {
  display: flex;
}

/* =========================
   FV（ファーストビュー）- PC寄せ（Swiper統一）
   方針
   - 高さ：PC基準（最大767px）に寄せつつ、端末では 100svh を上限にする
   - 画像比率：PC基準（16:9）で統一（SPでも同じトリミング挙動）
   - Swiper崩れ防止：overflow / flex-shrink を明示
   - 文字＆あしらい：absoluteで重ねる
========================= */
.p-fv {
  position: relative;
  width: 100%;
  height: 100svh;
  z-index: 1000;
  overflow: hidden;
}
.p-fv::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: -webkit-gradient(
    linear,
    left top,
    left bottom,
    from(rgba(255, 255, 255, 0)),
    to(rgba(255, 255, 255, 0.6))
  );
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.6) 100%
  );
}
.p-fv__overlay {
  position: absolute;
  top: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(
    linear,
    left top,
    left bottom,
    from(rgba(255, 255, 255, 0)),
    to(rgba(255, 255, 255, 0.6))
  );
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.6) 100%
  );
}

/* =========================
   Swiper（背景スライダー）
========================= */
.p-fv__slider {
  width: 100%;
  height: 100%;
}

.p-fv__swiper {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: row;
  overflow: hidden;
}
.swiper-wrapper {
  display: flex;
}
.p-fv__slide {
  //aspect-ratio: 1366/767;
  width: 30%;
  height: 30%;
  overflow: hidden;
}
.p-fv__slide.is-active-size {
  width: 100%;
  height: 100%;
}
.p-fv__swiper-img {
  width: 100%;
  height: 100%;
}

.p-fv__swiper-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 16/9;
}
/* 画面が広いときだけ、さらに上を見せる */
@media (min-width: 1600px){
  .p-fv__swiper-img img{
    //object-position: 50% 25%;
  }
}
.p-fv__img-sp {
  display: none;
}
@media screen and (max-width: 769px) {
  .p-fv__img-sp {
    display: block;
  }
}

.p-fv__img-pc {
  display: block;
}
@media screen and (max-width: 768px) {
  .p-fv__img-pc {
    display: none;
  }
}

/* ズーム（Swiperのactiveに合わせて） */
@-webkit-keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}
@keyframes zoomUp {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.15);
  }
}
.swiper-slide-active .p-fv__swiper-img,
.swiper-slide-duplicate-active .p-fv__swiper-img,
.swiper-slide-prev .p-fv__swiper-img {
  animation: zoomUp 12s linear 0s;
  animation-fill-mode: both;
}

/* =========================
   文字＆あしらい（画像の上に重ねる）
========================= */
.p-fv__inner {
  position: absolute;
  inset: 0;
  z-index: 3; /* 暗幕(2)より上 */
  pointer-events: none; /* 文字レイヤーがスワイプ等を邪魔しない */
}

/* Treat（あしらい） */
.p-fv__treat {
  position: absolute;
  left: -80px;
  top: 69%;
  transform: translateY(-50%);
  z-index: 1;
  pointer-events: none;
}
@media screen and (max-width: 500px) {
  .p-fv__treat {
    top: 75%;
  }
}
@media screen and (max-width: 400px) {
  .p-fv__treat {
    top: 80%;
  }
}

.p-fv__treat img {
  display: block;
  width: 100vw;
  max-width: 100%;
  height: auto;
  margin-left: auto;
  margin-right: 0;
}
/* Copy（文字） */
.p-fv__copy {
  position: absolute;
  left: 110px;
  bottom: 60px;
  z-index: 2;
  color: #333333;
  font-weight: 600;
  pointer-events: auto;
}
@media screen and (max-width: 768px) {
  .p-fv__copy {
    left: 4.2666666667vw;
    bottom: 6.4vw;
  }
}

/* リード */
.p-fv__lead p {
  font-size: min(1.8301610542vw, 35px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 1px;
}
@media screen and (max-width: 1366px) {
  .p-fv__lead p {
    font-size: 25px;
  }
}
@media screen and (max-width: 400px) {
  .p-fv__lead p {
    font-size: 5vw;
  }
}

/* タイトル行（横並び） */
.p-fv__title {
  margin-top: 10px;
  display: flex;
  flex-direction: row;
  align-items: end;
}
.p-fv__title p {
  font-size: min(calc(35 / 1366 * 100vw), 50px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 2px;
}
@media screen and (max-width: 1366px) {
  .p-fv__title p {
    font-size: 35px;
  }
}
@media screen and (max-width: 400px) {
  .p-fv__title p {
    font-size: 7.5vw;
  }
}

/* 色文字＋上に●を置く */
.p-fv__word {
  position: relative;
  display: inline-block;
  padding-top: 0.6em;
}
.p-fv__word.is-green {
  color: #5fb38d;
}
.p-fv__word.is-green + p {
  margin-inline: 2px;
}
.p-fv__word.is-orange {
  color: #f2a23a;
}
.p-fv__word {
  /* ●（2個） */
}
.p-fv__word::before,
.p-fv__word::after {
  content: "";
  position: absolute;
  top: 3px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  -webkit-transform: translateX(-11px);
  transform: translateX(-11px);

}
@media screen and (max-width: 400px) {
  .p-fv__word::before,
  .p-fv__word::after {
    width: 6px;
    height: 6px;
  }
}

.p-fv__word::before {
  left: 39%;
}
.p-fv__word::after {
  left: 87%;
}
.p-fv__word {
  /* ●の色 */
}
.p-fv__word.is-green::before,
.p-fv__word.is-green::after {
  background: #5fb38d;
}
.p-fv__word.is-orange::before,
.p-fv__word.is-orange::after {
  background: #f2a23a;
}


/* =========================
   ABOUT
========================= */
.p-about {
  padding-block: 207px 31px;
  color: #555;
  font-size: 14px;
  position: relative;
  background: url("https://zil-inc.co.jp/system_panel/uploads/images/img_top-about-bg.jpg")
    center top/cover no-repeat;

}
@media screen and (max-width: 1280px) {
  .p-about {
    padding-top: 80px;
  }
}

.p-about__inner {
  position: relative;
  display: grid;
  align-items: start;
  width: min(1366px, 100%);
  margin-inline: auto;
  grid-template-columns: 1fr 740px;
  gap: 56px;
  grid-template-areas: "title   img2" ".       content" ".       img3";
}
@media screen and (max-width: 1280px) {
  .p-about__inner {
    width: 89.3333333333vw;
    margin-inline: auto;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    grid-template-areas: "title   title" "content content" "img1    img2" "img1    img3";
  }
}

/* =========================
   タイトル
========================= */
.p-about__title {
  grid-area: title;
  grid-column: 1/-1;
  padding-top: 3px;
  padding-left: 365px;
  z-index: 10;
}
@media screen and (max-width: 1280px) {
  .p-about__title {
    padding-left: 50px;
  }
}

/* 親は表示状態に戻す */
.p-about__title.is-show {
  opacity: 1;
  transform: translateY(0);
}

/* 各行のスタイル */
.p-about__title--ja {
  margin-bottom: 10px;
}

.p-about__title--en {
  width: -moz-fit-content;
  width: fit-content;
}
@media screen and (max-width: 1280px) {
  .p-about__title--en {
    font-size: 50px;
  }
}

/* =========================
   コンテンツ
========================= */
.p-about__content {
  grid-area: content;
  z-index: 10;
  width: 499px;
}
@media screen and (max-width: 1280px) {
  .p-about__content {
    width: 100%;
    padding-inline: 20px;
  }
}
.about__head {
  margin-top: -61px;
}
@media screen and (max-width: 1280px) {
  .about__head {
    margin-top: 40px;
  }
}
.about__head h3 {
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 1.4px;
  line-height: 1.8;
}
.about__body {
  margin-top: 72px;
  display: flex;
  flex-direction: column;
  gap: 23px;
}
@media screen and (max-width: 1280px) {
  .about__body {
    margin-top: 30px;
  }
}
.about__body p {
  font-weight: 600;
  letter-spacing: 0.8px;
  line-height: 2.1;
}


/* =========================
   画像
========================= */
.p-about__media {
  display: contents;
}

/* 画像共通 */
.p-about__img1,
.p-about__img2,
.p-about__img3 {
  display: block;
  border-radius: 16px;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-about__img1 {
  position: absolute;
  top: 265px;
  left: 74px;
  width: 444px;
  height: 524px;
  z-index: 5;
}
@media screen and (max-width: 1280px) {
  .p-about__img1 {
    position: static;
    width: 490px;
    height: auto;
    aspect-ratio: 36/40;
    z-index: 1;
  }
}

.p-about__img2 {
  grid-area: img2;
  width: 227px;
  height: 255px;
  margin-top: -48px;
  margin-left: 0;
  margin-right: 86px;
  justify-self: end;
}
@media screen and (max-width: 1280px) {
  .p-about__img2 {
    margin-top: 3px;
    margin-right: auto;
    margin-left: 0;
    width: 490px;
    height: auto;
    aspect-ratio: 36/40;
  }
}
.p-about__img3 {
  grid-area: img3;
  width: 360px;
  height: 400px;
  margin-top: -14px;
  margin-left: 296px;
  justify-self: start;
}
@media screen and (max-width: 1280px) {
  .p-about__img3 {
    margin-top: 0px;
    margin-left: 0;
    width: 490px;
    height: auto;
    aspect-ratio: 36/40;
  }
}


/* =========================
   SERVICE
========================= */
.p-service {
  font-size: 14px;
  padding-top: 127px;
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.p-service::after {
  position: absolute;
  content: "";
  background: url("https://zil-inc.co.jp/system_panel/uploads/images/bg_service.jpg") center top/cover no-repeat;
  width: 595px;
  height: 405px;
  z-index: -1;
  bottom: 93px;
  left: -114px;
}
.p-service::before {
  position: absolute;
  content: "";
  background: url("https://zil-inc.co.jp/system_panel/uploads/images/bg_service.jpg") center top/cover no-repeat;
  width: 595px;
  height: 405px;
  z-index: -1;
  top: 90px;
  right: -140px;
  transform: scale(-1, -1);
}

.p-service__inner {
  max-width: 1247px;
  width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 1280px) {
  .p-service__inner {
    padding-inline: 40px;
  }
}
.p-service__title {
  padding-left: 17px;
  transform: translateY(24px);
  transition:
    opacity 0.6s ease,
    transform 0.6s ease;
}
.p-service__title.is-show {
  opacity: 1;
  transform: translateY(0);
}


.p-service__title--ja {
  padding-bottom: 7px;
}

.p-service__title--en {
  font-family: "Belleza", sans-serif;
}

.p-service__content {
  margin-top: 47px;
  display: grid;
  gap: 31px;
  /* PC */
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 1080px) {
  .p-service__content {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 800px) {
  .p-service__content {
    grid-template-columns: min(89.3333333333vw, 400px);
    justify-content: center;
  }
}
@media (max-width: 360px) {
  .p-service__content {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
}

.p-service__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding-block: 32px 15px;
  padding-inline: 15px;
  background-color: #f7f7f2;
  border-radius: 10px;
  border: 1px solid #e9e7e8;
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  transform-origin: center;
}
.p-service__card:hover {
  transform: scale(1.05);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
  opacity: 1;
}

.p-service__card-title {
  display: flex;
  flex-direction: row;
  justify-content: center;
  margin-left: 3px;
  gap: 36px;
}

.p-service__card-title {
  display: flex;
  flex-direction: row;
  justify-content: center;
  margin-left: 3px;
  gap: 15px;
}

.p-service__head {
  width: 173px;
  display: flex;
  flex-direction: column;
  gap: 5px;

}
@media screen and (max-width: 400px) {
  .p-service__head {
    width: 120px;
  }
}

.p-service__card-ja {
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 1.2px;
  line-height: 1.5;
}
@media screen and (max-width: 1280px) {
  .p-service__card-ja {
    font-size: 16px;
  }
}
@media screen and (max-width: 800px) and (max-width: 375px) {
  .p-service__card-ja {
    font-size: 4.2666666667vw;
  }
}

.p-service__card-en {
  color: #ffa31a;
  letter-spacing: -0.4px;
  line-height: 20px;
}

.p-service__img {
  width: 149px;
  height: 120px;
  border-radius: 10px;
  object-fit: cover;
}
@media screen and (max-width: 375px) {
  .p-service__img {
    width: 39.7333333333vw;
    height: 32vw;
  }
}

.p-service__card-text {
  margin-inline: auto;
  width: 100%;
  max-width: 335px;
  padding-block: 21px 13px;
  border-bottom: 1px dotted #d9d9d9;
  letter-spacing: 0.9px;
  line-height: 2;
}
@media screen and (max-width: 400px) {
  .p-service__card-text {
    max-width: 300px;
  }
}
.p-service__card-text p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 600;
  margin: 0;
}
.p-service__btn {
  margin-inline: auto;
  width: 100%;
  max-width: 335px;
  padding-block: 11px 27px;
  padding-left: 10px;
  display: -webkit-box;
  display: flex;
  flex-direction: row;
  gap: 20px;
}
@media screen and (max-width: 400px) {
  .p-service__btn {
    max-width: 300px;
  }
}

.p-service__btn-icon {
  position: relative;
  z-index: 1;
}
.p-service__btn-icon::before {
  content: "";
  position: absolute;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #fff;
  left: 50%;
  top: 54%;
  transform: translate(-50%, -50%);
  z-index: -1;
}

.p-service__btn-text {
  letter-spacing: 1px;
}

.p-service__cta {
  margin-top: 94px;
  padding-bottom: 120px;
}

.p-service__more-btn {
  margin-left: 10px;
  width: 220px;
  height: 51px;
  padding-block: 9px 12px;
  padding-inline: 7px 16px;
  margin-inline: auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  background-color: #5fb38d;
  border-radius: 5px;
  color: #fff;
  gap: 34px;
  letter-spacing: 0.8px;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
  transform-origin: center;
}
.p-service__more-btn:hover {
  color: #fff;
  transform: scale(1.05);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.15);
  text-decoration: none;
}

.p-service__more-btn a:hover {
  color: #fff;
  text-decoration: none;
}
.p-service__more-btn p:hover {
  color: #fff;
  text-decoration: none;
}
.p-service__more-right {
  position: relative;
  z-index: 1;
}
.p-service__more-right::before {
  content: "";
  position: absolute;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  background: #fff;
  left: 50%;
  top: 54%;
  transform: translate(-50%, -50%);
  z-index: -1;
}

/* =========================
   REASON
========================= */
.p-reason {
  font-size: 14px;
  color: #555555;
  padding-top: 128px;
  margin-left: -6px;
  background: url("https://zil-inc.co.jp/system_panel/uploads/images/img_top-about-bg.jpg") center top/cover no-repeat;
}

.p-reason__inner {
  max-width: 1247px;
  width: 100%;
  margin-inline: auto;

}
@media screen and (max-width: 1280px) {
  .p-reason__inner {
    padding-inline: 40px;
  }
}

.p-reason__title {
  padding-left: 17px;
}
.p-reason__title--en{
  margin-top: 7px;
}
/* =========================
   CONTENT
========================= */
.p-reason__content {
  margin-top: 84px;
  padding-bottom: 540px;
  display: grid;
  gap: 46px;
  /* PC */
  grid-template-columns: repeat(3, 1fr);
  /* PCのみ段差（装飾） */
}
.p-reason__content .p-reason__card:nth-of-type(2) {
  margin-top: 40px;
}
.p-reason__content .p-reason__card:nth-of-type(3) {
  margin-top: 80px;
}
@media (max-width: 1247px) {
  .p-reason__content {
    grid-template-columns: repeat(2, 1fr);
    gap: 31px;
  }
  .p-reason__content .p-reason__card {
    margin-top: 0;
  }
  .p-reason__content .p-reason__card:nth-of-type(2), .p-reason__content .p-reason__card:nth-of-type(3) {
    margin-top: 0;
  }
}
@media (max-width: 800px) {
  .p-reason__content {
    grid-template-columns: min(89.3333333333vw, 400px);
    justify-content: center;
    gap: 60px;
  }
}
@media (max-width: 360px) {
  .p-reason__content {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
}
/* =========================
   CARD
========================= */
.p-reason__card {
  display: block;
  width: 100%;
  color: inherit;
  text-decoration: none;
}
/* 表示状態 */
.p-reason__card.js-fadeIn {
  transition:
    opacity 0.6s ease,
    translate 0.6s ease;
}

.p-reason__card.js-fadeIn.is-start {
  translate: 0 40px;
  opacity: 0;
}

.p-reason__card.js-fadeIn.is-show {
  translate: 0 0;
  opacity: 1;
}
/* =========================
   IMAGE
========================= */
.p-reason__img {
  width: 100%;
  height: 360px;
  border-radius: 10px;
  overflow: hidden;
}
.p-reason__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

/* =========================
   TEXT
========================= */
.p-reason__text {
  margin-top: 40px;
  width: 100%;
  padding-left: 30px;
  display: flex;
  flex-direction: column;
  gap: 25px;
  position: relative;
  z-index: 1;
  letter-spacing: 1.3px;
  line-height: 1;
}
@media screen and (max-width: 1247px) {
  .p-reason__text {
    padding-left: 24px;
  }
}
@media screen and (max-width: 800px) {
  .p-reason__text {
    padding-left: 18px;
  }
}

.p-reason__text::before {
  position: absolute;
  content: "";
  width: 3px;
  height: 187px;
  background-color: #5fb38d;
  top: -10px;
  left: 0;
  z-index: -1;
}

.p-reason__title-en {
  margin-bottom: 41px;
}
.p-reason__title-en p {
  font-weight: 400;
  font-family: "Belleza", sans-serif;
  color: #5fb38d;
  font-size: 20px;
  letter-spacing: 1px;
  line-height: 1px;
}
.p-reason__title-jp {
  font-weight: 600;
  font-size: 18px;
}

.p-reason__body p {
  letter-spacing: 1px;
  line-height: 2.1;
  overflow-wrap: break-word;
  line-break: strict;
  font-size: 14px;
  font-weight: 600;
}


/* =========================================================
   POLICY（Swiper版・FV思想に完全統一）
   - 高さは .p-policy が責任を持つ
   - 背景：Swiper
   - overlay：白ベール
   - 文字：absolute で上に固定
   - 旧 top:136px / transform 計算式は完全撤去
========================================================= */
.p-policy {
  position: relative;
  margin-top: -476px;
  width: 1326px;
  height: 656px;
  border-radius: 10px;
  margin-inline: auto;
  overflow: hidden;
}
@media screen and (max-width: 1366px) {
  .p-policy {
    width: 97.0717423133vw;
    height: 48.0234260615vw;
  }
}
@media screen and (max-width: 850px) {
  .p-policy {
    height: 60svh;
    min-height: 280px;
  }
}
@media screen and (max-width: 650px) {
  .p-policy {
    min-height: 300px;
  }
}
@media screen and (max-width: 550px) {
  .p-policy {
    min-height: 400px;
  }
}
@media screen and (max-width: 450px) {
  .p-policy {
    min-height: 500px;
  }
}
@media screen and (max-width: 400px) {
  .p-policy {
    min-height: 600px;
  }
}

/* =========================
   背景：Swiper
========================= */
.p-policy__slider {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.p-policy__slide {
  aspect-ratio: 1326/656;
  width: 30%;
  height: 30%;
  overflow: hidden;
}

/* Swiper初期化後 */
.p-policy__slide.is-active-size {
  width: 100%;
  height: 100%;
}
.p-policy__swiper {
  width: 100%;
  height: 100%;
}
.p-policy__swiper .swiper-wrapper,
.p-policy__swiper .swiper-slide {
  height: 100%;
}

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

/* Ken Burns（FVと同じ） */
@-webkit-keyframes policyZoomUp {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.15);
  }
}
@keyframes policyZoomUp {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.15);
  }
}
.swiper-slide-active .p-policy__swiper-img img,
.swiper-slide-duplicate-active .p-policy__swiper-img img,
.swiper-slide-prev .p-policy__swiper-img img {
  animation: policyZoomUp 12s linear both;
}

/* =========================
   Overlay（白ベール）
========================= */
.p-policy__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: rgba(113, 144, 130, 0.6);
}

/* =========================
   前景：文字レイヤー
========================= */
.p-policy__inner {
  position: absolute;
  width: fit-content;
  height: auto;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  top: 85px;
  left: 60px;
}
@media screen and (max-width: 1366px) {
  .p-policy__inner {
    top: calc(85 / 1366 * 100vw);
    left: calc(60 / 1366 * 100vw);
  }
}
@media screen and (max-width: 1280px) {
  .p-policy__inner {
    top: 30px;
  }
}
@media screen and (max-width: 1080px) {
  .p-policy__inner {
    margin: auto;
  }
}

/* =========================
   タイトル＋本文ブロック
========================= */
.p-policy__title {
  color: #ffffff;
  pointer-events: auto;
}

/* 日本語タイトル */
.p-policy__title--ja {
  margin-bottom: -3px;
}

/* 英語タイトル */
.p-policy__title--en {
  margin-top: 10px;
  font-size: 79px;
  color: #ffffff;
}
@media screen and (max-width: 1366px) {
  .p-policy__title--en {
    font-size: max(5.7833089312vw, 50px);
  }
}

/* =========================
   本文
========================= */
.p-policy__text {
  margin-top: 50px;
  margin-left: 4px;
  width: 500px;
  display: flex;
  flex-direction: column;
  gap: 35px;
  line-height: 2;
  letter-spacing: 1px;
}
@media screen and (max-width: 1366px) {
  .p-policy__text {
    width: calc(500 / 1366 * 100vw);
    margin-top: calc(50 / 1366 * 100vw);
    gap: calc(35 / 1366 * 100vw);
  }
}
@media screen and (max-width: 1080px) {
  .p-policy__text {
    width: calc(300 / 375 * 100vw);
  }
}
.p-policy__text p {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.9px;
  word-break: normal;
}

/* =========================
   WORKS
========================= */

.p-works {
  font-size: 14px;
  padding-top: 122px;
  position: relative;
  overflow: hidden;
  z-index: 1;
}

.p-works__inner {
  max-width: 1247px;
  width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 1280px) {
  .p-works__inner {
    padding-inline: 40px;
  }
}

/* =========================
   title
========================= */
.p-works__title {
  padding-left: 17px;
}

.p-works__title--ja {
  padding-bottom: 7px;
}

.p-works__title--en {
  font-family: "Belleza", sans-serif;
}

/* =========================
   content grid
   ※ 列構造はそのまま
========================= */
.p-works__content .webgene-blog {
  margin-top: 46px;
  display: grid;
  gap: 46px;
  /* PC：3列（カード幅は可変・最小300） */
  grid-template-columns: repeat(3, clamp(300px, 28.1844802343vw, 385px));
  justify-content: center;
}
@media screen and (max-width: 1080px) {
  .p-works__content .webgene-blog {
      grid-template-columns: min(500px, 100%);
      justify-content: center;
  }
}
@media (max-width: 375px) {
  .p-works__content .webgene-blog {
	grid-template-columns: min(330px, 100%);
  }
}
/* =========================
   card
========================= */
.p-works__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
@media (any-hover: hover) {
  .p-works__card:hover .p-works__img img {
	transform: scale(1.03);
  }
}

.p-works__img {
  width: 100%;
  height: 240px;
  border-radius: 10px;
  overflow: hidden;
}
.p-works__img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.25s ease;
    transform-origin: center;
}

/* =========================
   tag
========================= */
.p-works__tag {
  margin-top: 20px;
  width: -moz-fit-content;
  width: fit-content;
  padding: 7px 22px 7px 11px;
  border-radius: 9999px;
  background-color: #dff0e7;
  color: #2f6b55;
  font-size: 12px;
  letter-spacing: -0.3px;
  line-height: 1;
}
.p-works__tag p {
  margin: 0;
}

/* =========================
   text
========================= */
.p-works__text {
  margin-top: 17px !important;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 1px;
  line-height: 1.7;
}
.p-works__text  {
      margin: 0;

    /* 3行でカット */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;

    text-overflow: ellipsis;
}

/* =========================
   〜1080px：1列・最大500px
========================= */
@media (max-width: 1080px) {

  .p-works__img {
    height: 240px;
  }
  .p-works__img img {
    height: 240px;
  }
}

/* =========================
   CTA
========================= */
.p-works__cta {
  margin-top: 67px;
  padding-bottom: 60px;
}

.p-works__more-btn {
  margin-left: 10px;
  width: 220px;
  height: 51px;
  padding-block: 9px 12px;
  padding-inline: 18px 16px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 48px;
  background-color: #5fb38d;
  border-radius: 5px;
  color: #fff;
  letter-spacing: 0.8px;
  text-decoration: none;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  transform-origin: center;
}
.p-works__more-btn:hover {
  color: #fff;
  transform: scale(1.05);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.15);
  text-decoration: none;
}

.p-works__more-right {
  position: relative;
  z-index: 1;
}
.p-works__more-right::before {
  content: "";
  position: absolute;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  background: #fff;
  left: 50%;
  top: 54%;
  transform: translate(-50%, -50%);
  z-index: -1;
}
.p-works__more-right img {
  display: block;
}


/* =========================
   COMPANY
========================= */
.p-company {
  font-size: 14px;
  position: relative;
  overflow: hidden;
  padding-top: 52px;
  color: #555555;
  z-index: 1;
}
.p-company::after {
  position: absolute;
  content: "";
  background: url("https://zil-inc.co.jp/system_panel/uploads/images/bg_service.jpg") center top/cover no-repeat;
  width: 595px;
  height: 405px;
  z-index: -1;
  /* 1366pxまでは縮小、以降は -744px で固定 */
  left: clamp(-80px, -5.8565153734vw, -80px);
  bottom: clamp(600px, 60.980966325vw, 833px);

}
@media screen and (max-width: 1366px) {
  .p-company::after {
    width: calc(595 / 1366 * 100vw);
    height: calc(405 / 1366 * 100vw);
  }
}
@media screen and (max-width: 1280px) {
  .p-company::after {
    opacity: 0.3;
  }
}

.p-company::before {
  position: absolute;
  content: "";
  background: url("https://zil-inc.co.jp/system_panel/uploads/images/bg_service.jpg") center top/cover no-repeat;
  width: 595px;
  height: 405px;
  z-index: -1;
  /* 1366pxまでは縮小、以降は固定 */
  right: clamp(-230px, -16.8374816984vw, -230px);
  top: clamp(800px, 75.6222547584vw, 1033px);
  transform: scale(-1, -1);
}
@media screen and (max-width: 1366px) {
  .p-company::before {
    width: calc(595 / 1366 * 100vw);
    height: calc(405 / 1366 * 100vw);
  }
}
@media screen and (max-width: 1280px) {
  .p-company::before {
    opacity: 0.3;
  }
}
.p-company__inner {
  max-width: 1247px;
  width: 100%;
  margin-inline: auto;
}
@media screen and (max-width: 1280px) {
  .p-company__inner {
    padding-inline: 40px;
  }
}
/* =========================
   title（セクションタイトル）
========================= */
.p-company__title {
  padding-left: 17px;
}

.p-company__title--ja {
  padding-bottom: 7px;
}

.p-company__title--en {
  font-family: "Belleza", sans-serif;
}

/* =========================
   TOP（写真＋会社概要）
   PC：2カラム（grid）
   768以下：1カラム（テキスト→画像）
========================= */
.p-company__top {
  margin-top: clamp(36px, 4.39238653vw, 60px);
  display: grid;
  grid-template-columns: 1fr clamp(300px, 45.2415812592vw, 618px);
  gap: clamp(20px, 4.39238653vw, 60px);
  align-items: start;
}

/* -------------------------
   photos（1366基準で可変）
------------------------- */
.p-company__photos {
  position: relative;
  height: clamp(440px, 54.1727672035vw, 740px);
}

.p-company__photo {
  border-radius: 10px;
  overflow: hidden;
}
.p-company__photo img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-company__photo--lg {
  position: absolute;
  width: clamp(240px, 27.1595900439vw, 371px);
  height: clamp(270px, 30.3074670571vw, 414px);
  top: clamp(10px, 1.8301610542vw, 25px);
  left: clamp(16px, 8.345534407vw, 114px);
}

.p-company__photo--sm {
  position: absolute;
  width: clamp(200px, 23.1332357247vw, 316px);
  height: clamp(140px, 16.3982430454vw, 224px);
  top: clamp(380px, 37.0424597365vw, 506px);
  left: clamp(60px, 19.7657393851vw, 270px);
}

/* =========================
   info（会社概要：タイトル＋情報）
   ※縦書きデザインは維持
========================= */
.p-company__info {
  display: flex;
  gap: clamp(16px, 2.196193265vw, 30px);
  align-items: flex-start;
}

/* 縦書きタイトル（共通で使う） */
.p-company__infoHead {
  flex-shrink: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  flex-direction: row;
  gap: 0px;
}

.p-company__infoEn {
  margin: 0;
  margin-top: 4px;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-family: "Belleza", sans-serif;
  font-size: 12px;
  letter-spacing: 0.6px;
  color: #5fb38d;
}

.p-company__infoJp {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 4.6px;
  margin: 0;
}

/* 右：情報 */
.p-company__dl {
  width: clamp(300px, 38.7994143485vw, 530px);
  margin: 0;
  margin-top: 4px;
}

.p-company__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
  padding-block: clamp(14px, 1.5373352855vw, 21px) clamp(10px, 1.0248901903vw, 14px);
  border-bottom: 1px solid #e9e7e8;
}
.p-company__row .p-company__dt {
  font-weight: 600;
  letter-spacing: 1px;
}

.p-company__row .p-company__dd p {
  margin: 0;
  letter-spacing: 0.2px;
  line-height: 2;
  font-size: 14px;
  font-weight: 700;
}

/* map */
.p-company__map {
  width: 100%;
  border-radius: 10px;
  overflow: hidden;
  margin-top: 8px;
  margin-bottom: -13px;
  position: relative;
}
.p-company__map iframe {
  display: block;
  width: 100% !important;
  height: clamp(180px, 16.1054172767vw, 220px) !important;
  border: 0;
}

/* link */
.p-company__dl a {
  color: inherit;
  font-size: 14px;
  font-weight: 400;
}

/* =========================
   BOTTOM（代表あいさつ＋画像）
   PC：2カラム（grid）
   768以下：1カラム（テキスト→画像）
========================= */
.p-company__bottom {
  margin-top: 173px;
  display: grid;
  grid-template-columns: 1fr 520px;
  gap: 60px;
  align-items: start;
  position: relative;
}
@media screen and (max-width: 1366px) {
  .p-company__bottom {
    margin-top: calc(173 / 1366 * 100vw);
    grid-template-columns: 1fr calc(520 / 1366 * 100vw);
    gap: calc(60 / 1366 * 100vw);
  }
}

/* 代表あいさつ（縦書きタイトル左＋本文右） */
.p-company__message {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .p-company__message {
    gap: calc(40 / 1366 * 100vw);
  }
}
/* 代表あいさつ側の本文 */
.p-company__messageBody {
  margin-top: 31px;
}

.p-company__messageTitle {
  margin: 0 0 16px;
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 1px;
  line-height: 2.2;
}
@media (max-width: 600px) {
  .p-company__messageTitle {
    font-size: 18px;
  }
}

.p-company__messageText {
  width: 500px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
@media screen and (max-width: 1366px) {
  .p-company__messageText {
    width: calc(500 / 1366 * 100vw);
    gap: calc(18 / 1366 * 100vw);
  }
}

.p-company__messageText p {
  margin: 0;
  letter-spacing: 0.8px;
  line-height: 2.2;
  font-weight: 600;
}


/* 右の大画像（PCのみ absolute） */
.p-company__bottomPhoto {
  position: absolute;
  width: 564px;
  height: 440px;
  border-radius: 10px;
  overflow: hidden;
  margin-top: -4px;
  right: calc(50% - 683.5px + 60px);
}
@media screen and (max-width: 1366px) {
  .p-company__bottomPhoto {
    right: calc(50% - 683.5px + 60px);
    width: calc(564 / 1366 * 100vw);
    height: calc(440 / 1366 * 100vw);
  }
}
@media screen and (max-width: 1247px) {
  .p-company__bottomPhoto {
    right: 0px;
  }
}
.p-company__bottomPhoto img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

/* =========================
   768以下：1カラム（テキスト→画像）
   上段：info→photos
   下段：message→bottomPhoto
   ※「縦書きタイトル」は維持（横書き化しない）
========================= */
@media (max-width: 768px) {
  /* TOP：テキスト→画像 */
  .p-company__top {
    display: flex;
    flex-direction: column;
    gap: 40px;
    align-items: center;
  }
  .p-company__info {
    order: 1;
    width: 100%;
    max-width: 530px;
  }
  .p-company__photos {
    order: 2;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 18px;
    align-items: center;
  }
  /* SPは2枚目を消すなら */
  .p-company__photo--sm {
    display: none;
  }
  /* ★ p-company__photo--lg と p-company__bottomPhoto を同じサイズにする */
  .p-company__photo--lg,
  .p-company__bottomPhoto {
    position: static;
    width: min(90%, 520px);
    height: auto;
    margin-inline: auto;
  }
  .p-company__photo--lg img,
  .p-company__bottomPhoto img {
    width: 100%;
    height: auto;
    -o-object-fit: cover;
       object-fit: cover;
  }
  /* BOTTOM：テキスト→画像 */
  .p-company__bottom {
    grid-template-columns: 1fr;
    gap: 40px;
    justify-items: center;
  }
  .p-company__message {
    width: 100%;
    max-width: 530px;
  }
  .p-company__messageText {
    width: 100%;
    max-width: 500px;
  }
}
/* =========================
   Instagram
========================= */

.p-insta {
  margin-block: 120px 144px;
}
@media screen and (max-width: 1366px) {
  .p-insta {
    margin-block: calc(120 / 1366 * 100vw) calc(144 / 1366 * 100vw);
  }
}

.p-insta__inner {
  max-width: 1217px;
  width: 100%;
  margin-inline: auto;
  padding-inline: 40px;
}
.p-insta__title {
  margin-bottom: 60px;
}

@media screen and (max-width: 768px) {
  .p-insta__title {
    margin-bottom: 30px;
  }
}

.p-insta__title--en {
  margin-top: 10px;
  letter-spacing: -0.6px;
}
.p-insta__content {
  width: 1074px;
  margin-inline: auto;
}
@media screen and (max-width: 1366px) {
  .p-insta__content {
    width: calc(1074 / 1366 * 100vw);
  }
}
  /* -----------------------
     Layout
  ----------------------- */
.instaCont section {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.instaCont article {
  width: 50%;
}
.instaCont section > article:nth-of-type(n + 3) {
  margin: 40px 0 0;
}
.instaCont .imgBx01 {
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-decoration: none;
}
.instaCont .imgBx01:hover {
  opacity: 0.7;
}
.instaCont .imgBx01 > span {
  display: block;
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 16px;
}
.instaCont .imgBx01 img,
.instaCont .imgBx01 video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.instaCont .imgBx01 p {
  margin: 8px 0 0;
  font-size: 0.85em;
  line-height: 1.4;
}
@media screen and (max-width: 767px) {
  .instaCont article {
    width: 46%;
  }
  .instaCont .imgBx01 > span {
    aspect-ratio: 4/3;
  }
  .instaCont .imgBx01 p {
    font-size: 12px;
    margin-top: 6px;
  }
}
@media screen and (max-width: 600px) {
  .instaCont article {
    width: 100%;
  }
  .instaCont section > article + article {
    margin-top: 40px;
  }
  .instaCont .imgBx01 > span {
    aspect-ratio: 4/3;
  }
  .instaCont .imgBx01 p {
    font-size: 12px;
    margin-top: 6px;
  }
}
@media screen and (min-width: 768px) {
  .instaCont article {
    width: 20%;
  }
  .instaCont section > article:nth-of-type(n + 2) {
    margin: 0;
  }
}
@media screen and (min-width: 1200px) {
  .instaCont article {
    width: 22.5%;
  }
  .instaCont section > article:nth-of-type(n + 3) {
    margin: 0;
  }
}
