@charset "utf-8";
.u-pb10 {
  padding-bottom: 10px;
}
.u-pb15 {
  padding-bottom: 15px;
}
.u-pb20 {
  padding-bottom: clamp(10px, var(--px-20), 20px);
}
.u-pb30 {
  padding-bottom: clamp(15px, var(--px-30), 30px);
}
.u-pb40 {
  padding-bottom: clamp(20px, var(--px-40), 40px);
}
.u-pb50 {
  padding-bottom: clamp(25px, var(--px-50), 50px);
}
.u-pb60 {
  padding-bottom: clamp(30px, var(--px-60), 60px);
}
.u-pb70 {
  padding-bottom: clamp(30px, var(--px-70), 70px);
}
.u-pb80 {
  padding-bottom: clamp(40px, var(--px-80), 80px);
}
.u-pb90 {
  padding-bottom: clamp(40px, var(--px-90), 90px);
}
.u-pb100 {
  padding-bottom: clamp(50px, var(--px-100), 100px);
}
.u-pb120 {
  padding-bottom: clamp(50px, var(--px-120), 120px);
}
.u-mb10 {
  margin-bottom: 10px;
}
.u-mb15 {
  margin-bottom: 15px;
}
.u-mb20 {
  margin-bottom: clamp(10px, var(--px-20), 20px);
}
.u-mb30 {
  margin-bottom: clamp(15px, var(--px-30), 30px);
}
.u-mb40 {
  margin-bottom: clamp(20px, var(--px-40), 40px);
}
.u-mb50 {
  margin-bottom: clamp(25px, var(--px-50), 50px);
}
.u-mb60 {
  margin-bottom: clamp(30px, var(--px-60), 60px);
}
.u-mb70 {
  margin-bottom: clamp(30px, var(--px-70), 70px);
}
.u-mb80 {
  margin-bottom: clamp(40px, var(--px-80), 80px);
}
.u-mb90 {
  margin-bottom: clamp(40px, var(--px-90), 90px);
}
.u-mb100 {
  margin-bottom: clamp(50px, var(--px-100), 100px);
}
.u-mb120 {
  margin-bottom: clamp(50px, var(--px-120), 120px);
}

/* =====================================================
  共通コンポーネント（全ページで使い回す）
===================================================== */

/* -----------------------------------------------------
  セクションタイトル（英字 大 ＋ 日本語 重ね）
----------------------------------------------------- */
.c-sec-title {
  text-align: center;
}
.c-sec-title__en {
  display: block;
  font-family: var(--f-en);
  font-weight: 400;
  font-size: clamp(48px, var(--px-128), 128px);
  line-height: 1.2;
  letter-spacing: 0.21em;
  /* letter-spacing は最後の字の右にも入るので、その分だけ左に寄せて中央を取る */
  text-indent: 0.21em;
  color: rgba(255, 255, 255, 0.3);
}
.c-sec-title__ja {
  font-family: var(--f-serif);
  font-weight: 600;
  font-size: clamp(24px, var(--px-40), 40px);
  line-height: 1.4;
  letter-spacing: 0.06em;
  color: var(--c-red);
  /* 英字に重ねる。ビューポートが狭いほど重なりも浅くなる */
  margin-top: max(-70px, -4.861vw);
}

/* -----------------------------------------------------
  ボタン「詳しくはこちら」
----------------------------------------------------- */
.c-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1em;
  width: clamp(170px, var(--px-208), 208px);
  min-height: clamp(40px, var(--px-47), 47px);
  padding-inline: clamp(14px, var(--px-22), 22px);
  border: 2px solid var(--c-red);
  border-radius: 999px;
  background: var(--c-red);
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.4;
  color: var(--c-white);
  white-space: nowrap;
}
.c-btn__arrow {
  flex-shrink: 0;
  width: clamp(24px, var(--px-32), 32px);
  aspect-ratio: 32.5 / 10.5;
  background: url("../img/common/arrow-white.svg") center / contain no-repeat;
}
.c-btn:hover {
  opacity: 1;
  background: var(--c-white);
  color: var(--c-red);
}
.c-btn:hover .c-btn__arrow {
  background-image: url("../img/common/arrow-red.svg");
}
/* 小サイズ（お知らせ一覧など） */
.c-btn--sm {
  width: clamp(130px, var(--px-150), 150px);
  min-height: clamp(30px, var(--px-34), 34px);
  padding-inline: clamp(10px, var(--px-16), 16px);
  gap: 0.5em;
  font-size: clamp(11px, var(--px-12), 12px);
}
.c-btn--sm .c-btn__arrow {
  width: clamp(16px, var(--px-23), 23px);
}

/* -----------------------------------------------------
  ボタン（丸型・TEL／メール）
----------------------------------------------------- */
.c-btn-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, var(--px-14), 14px);
  width: clamp(200px, 16.806vw, 242px);
  min-height: clamp(44px, var(--px-50), 50px);
  padding-inline: 1em;
  border-radius: 999px;
  background: var(--c-red);
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(15px, var(--px-18), 18px);
  line-height: 1.4;
  white-space: nowrap;
}
.c-btn-pill img {
  width: clamp(18px, var(--px-24), 24px);
  height: auto;
}
.c-btn-pill__tel {
  font-size: clamp(19px, var(--px-24), 24px);
  letter-spacing: 0.06em;
}

/* -----------------------------------------------------
  CONTACT（全ページ共通・フッター直上）
----------------------------------------------------- */
.p-contact {
  position: relative;
  overflow: hidden;
  padding-block: clamp(56px, var(--px-110), 110px);
  background: url("../img/common/contact-bg.jpg") center / cover no-repeat;
}
/* 写真を暗く落とす */
.p-contact::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
}
/* 左手の金の飾り */
.p-contact::after {
  content: "";
  position: absolute;
  /* Figma：回転後の中心が セクション左から31.1%／上から19.5% に来る */
  top: 19.5%;
  left: 31.1%;
  width: clamp(180px, 16.94vw, 244px);
  aspect-ratio: 243.9 / 531;
  background: url("../img/common/deco-line.png") center / contain no-repeat;
  opacity: 0.89;
  transform: translate(-50%, -50%) rotate(-86.37deg);
  pointer-events: none;
}
.p-contact .c-sec-title__en {
  color: rgba(255, 255, 255, 0.4);
}
.p-contact__inner {
  position: relative;
  z-index: 1;
  padding-inline: 5.55%;
}
.p-contact__lead {
  text-align: center;
  line-height: 35px;
  letter-spacing: 0.21em;
  margin-top: clamp(24px, var(--px-55), 55px);
}
.p-contact__lead p {
  margin-right: -0.21em;
}
.p-contact__btns {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(16px, var(--px-115), 115px);
  flex-wrap: wrap;
}

@media screen and (max-width: 680px) {
  .p-contact__lead {
    line-height: 2;
    letter-spacing: 0.08em;
    text-align: left;
  }
  .p-contact__btns {
    flex-direction: column;
  }
  .p-contact::after {
    display: none;
  }
}

/* -----------------------------------------------------
  リード文（中央寄せ・行間35px）
----------------------------------------------------- */
.c-lead {
  text-align: center;
  line-height: 35px;
}
@media screen and (max-width: 680px) {
  .c-lead {
    text-align: left;
    line-height: 2;
  }
}

/* -----------------------------------------------------
  活用シーンのカード（写真＋白ラベル）
----------------------------------------------------- */
.c-usecase__img {
  width: 100%;
  aspect-ratio: 306 / 261;
  object-fit: cover;
}
.c-usecase__label {
  /* Figma：写真幅306に対し白ベース258・26px food重ね */
  width: 84.31%;
  margin-inline: auto;
  margin-top: -8.5%;
  position: relative;
  background: var(--c-white);
  text-align: center;
  padding-block: clamp(6px, var(--px-10), 10px) clamp(8px, var(--px-14), 14px);
}
.c-usecase__title {
  font-size: clamp(11px, var(--px-20), 20px);
  line-height: 35px;
  letter-spacing: 0.06em;
  color: var(--c-red);
}
.c-usecase__desc {
  font-size: clamp(12px, var(--px-16), 16px);
  line-height: 35px;
  letter-spacing: 0.06em;
  color: #333;
}

/* -----------------------------------------------------
  マーカー線（文字の下半分にピンクの蛍光ペン）
----------------------------------------------------- */
.c-marker {
  background: linear-gradient(
    transparent 51%,
    #ffa7ae 51%,
    #ffa7ae 98%,
    transparent 98%
  );
}

/* =====================================================
  下層ページ共通パーツ
===================================================== */

/* -----------------------------------------------------
  ページヘッダー（写真＋黒50%＋金の帯＋ページ名）
----------------------------------------------------- */
.c-page-mv__visual {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1440 / 450;
  overflow: hidden;
}
.c-page-mv__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-page-mv__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}
.c-page-mv__title {
  position: relative;
  z-index: 1;
  font-weight: 700;
  font-size: clamp(22px, var(--px-40), 40px);
  line-height: 1;
  letter-spacing: 0.06em;
  text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  /* Figma：中央よりわずかに下 */
  transform: translateY(clamp(18px, var(--px-37), 37px));
}
.c-page-mv__line {
  height: clamp(10px, var(--px-20), 20px);
  background: var(--c-gold-grad-bar);
}

/* -----------------------------------------------------
  白い半透明パネル（下層の本文はこの上に乗る）
----------------------------------------------------- */
.c-panel {
  width: 88.89%;
  margin-inline: auto;
  padding: clamp(24px, var(--px-44), 44px) clamp(20px, 3.75vw, 54px);
  background: rgba(255, 255, 255, 0.8);
  color: #333;
}

/* -----------------------------------------------------
  下層の見出し（金のバー＋赤文字＋金の罫）
----------------------------------------------------- */
.c-sub-title {
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(34px, var(--px-52), 52px);
  padding-left: clamp(20px, var(--px-37), 37px);
  border-bottom: 2px solid #dc9731;
  font-family: var(--f-serif);
  font-weight: 600;
  font-size: clamp(18px, var(--px-30), 30px);
  line-height: 1.3;
  letter-spacing: 0.06em;
  color: var(--c-red);
  /* Figma同様、見出しはカラム幅を超えても1行で置く */
  white-space: nowrap;
}
.c-sub-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 2px;
  width: clamp(10px, var(--px-18), 18px);
  background: var(--c-gold-grad);
}

/* -----------------------------------------------------
  画像＋テキストの2カラム（--reverse で左右入れ替え）
----------------------------------------------------- */
.c-media {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 5%;
}
.c-media--reverse {
  flex-direction: row-reverse;
}
.c-media__body {
  width: 52.3%;
}
.c-media__fig {
  width: 41.8%;
  flex-shrink: 0;
}
.c-media__fig img {
  width: 100%;
  aspect-ratio: 490 / 387;
  object-fit: cover;
}
.c-media__text {
  line-height: 35px;
  font-size: clamp(13px, var(--px-16), 16px);
}
.c-media__lead {
  font-weight: 700;
  font-size: clamp(15px, var(--px-20), 20px);
  line-height: 35px;
}

/* -----------------------------------------------------
  クリーム色のカード（丸ポチ見出し＋影）
----------------------------------------------------- */
.c-note {
  display: flex;
  align-items: flex-start;
  gap: 6.63%;
  padding: 3.14% 4.5%;
  background: #ffffef;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}
.c-note--reverse {
  flex-direction: row-reverse;
}
.c-note__img {
  width: 36.6%;
  flex-shrink: 0;
  aspect-ratio: 390 / 307;
  object-fit: cover;
}
.c-note__body {
  flex: 1;
}
.c-note__title {
  display: flex;
  align-items: center;
  gap: clamp(10px, var(--px-20), 20px);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(17px, var(--px-26), 26px);
  line-height: 35px;
  letter-spacing: 0.06em;
  color: var(--c-red-deep);
  margin-bottom: clamp(10px, var(--px-24), 24px);
}
.c-note__title::before {
  content: "";
  flex-shrink: 0;
  width: clamp(14px, var(--px-25), 25px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--c-gold);
}
.c-note__text {
  line-height: 35px;
  font-size: clamp(13px, var(--px-16), 16px);
  color: #000;
}

/* -----------------------------------------------------
  赤帯の見出し
----------------------------------------------------- */
.c-band-title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 88.89%;
  margin-inline: auto;
  min-height: clamp(56px, var(--px-89), 89px);
  background: var(--c-red);
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(18px, var(--px-30), 30px);
  line-height: 1.3;
  letter-spacing: 0.06em;
  color: var(--c-white);
}

/* -----------------------------------------------------
  クリーム色のカード（左右に罫のある中央見出し）
----------------------------------------------------- */
.c-cream {
  background: #ffffef;
  padding: clamp(24px, var(--px-50), 50px) clamp(18px, var(--px-38), 38px);
  color: #333;
}
.c-cream__title {
  display: flex;
  align-items: center;
  gap: clamp(10px, var(--px-20), 20px);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(16px, var(--px-24), 24px);
  line-height: 35px;
  letter-spacing: 0.06em;
  color: var(--c-red-deep);
  white-space: nowrap;
  margin-bottom: clamp(12px, var(--px-27), 27px);
}
.c-cream__title::before,
.c-cream__title::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--c-red-deep);
}
.c-cream__text {
  line-height: 35px;
  font-size: clamp(13px, var(--px-16), 16px);
}

@media screen and (max-width: 820px) {
  .c-media,
  .c-media--reverse,
  .c-note,
  .c-note--reverse {
    flex-direction: column;
    gap: clamp(16px, 3vw, 30px);
  }
  .c-media__body,
  .c-media__fig,
  .c-note__img {
    width: 100%;
  }
}
@media screen and (max-width: 680px) {
  .c-panel {
    width: 92%;
    padding-inline: 5%;
  }
  .c-band-title {
    width: 92%;
  }
  .c-media__text,
  .c-media__lead,
  .c-note__text,
  .c-cream__text {
    line-height: 2;
  }
  .c-note__title,
  .c-cream__title {
    line-height: 1.5;
  }
  .c-cream__title,
  .c-sub-title {
    white-space: normal;
  }
}

/* =====================================================
  昇華プリントとは
===================================================== */
.p-print .c-page-mv__img {
  /* Figma と同じトリミング位置 */
  object-position: center 75%;
}
.p-print__sec {
  position: relative;
  margin-top: clamp(50px, 9.1vw, 131px);
}
.p-print__sec--scene {
  margin-top: clamp(60px, 10.83vw, 156px);
}
.p-print__sec--scene .c-panel:first-of-type {
  margin-bottom: clamp(50px, 8.06vw, 116px);
}
/* 金の飾り（パネルの上に薄く重なる） */
.p-print__deco {
  position: absolute;
  z-index: 1;
  width: clamp(180px, 16.94vw, 244px);
  aspect-ratio: 243.9 / 531;
  background: url("../img/common/deco-line.png") center / contain no-repeat;
  opacity: 0.89;
  transform: translate(-50%, -50%) rotate(-116.2deg) scaleY(-1);
  pointer-events: none;
}
.p-print__deco--1 {
  left: 45.4%;
  top: 13.6%;
}
.p-print__deco--2 {
  left: 78.7%;
  top: 37.2%;
}
.p-print__deco--3 {
  left: 35.8%;
  top: 14.4%;
}
.p-print__deco--4 {
  left: 35.8%;
  top: 51.05%;
}
.p-print__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(16px, 8.4vw, 121px);
}
@media screen and (max-width: 820px) {
  .p-print__cards {
    grid-template-columns: 1fr;
    gap: clamp(16px, 3vw, 30px);
  }
}
@media screen and (max-width: 680px) {
  .p-print__deco {
    display: none;
  }
}

/* セクション1の見出しのみ Figma は 32px */
.p-print__sec:first-of-type .c-sub-title {
  font-size: clamp(19px, var(--px-32), 32px);
}

/* -----------------------------------------------------
  ご依頼の流れ：STEPブロック
----------------------------------------------------- */
.c-flowstep {
  position: relative;
  display: flex;
  align-items: stretch;
}
.c-flowstep:not(:last-child) {
  margin-bottom: clamp(56px, 8.06vw, 116px);
}
/* ステップ間の金の三角 */
.c-flowstep:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  width: clamp(48px, 6.01vw, 86.6px);
  aspect-ratio: 86.6 / 33;
  background: url("../img/sub/flow/arrow-down.svg") center / contain no-repeat;
  /* 元SVGは上向きなので反転 */
  transform: translate(-50%, 60%) rotate(180deg);
}
.c-flowstep__panel {
  position: relative;
  width: 50%;
  padding: clamp(28px, var(--px-51), 51px) clamp(10px, 1.18vw, 17px)
    clamp(28px, var(--px-50), 50px) clamp(20px, 3.125vw, 45px);
  background: var(--c-gold-grad-panel);
  color: #333;
}
.c-flowstep__badge {
  position: absolute;
  left: 3.59%;
  top: max(-41px, -2.85vw);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 20.47%;
  aspect-ratio: 131 / 157;
  background: var(--c-red-deep);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
  font-family: var(--f-serif);
  font-weight: 700;
  color: var(--c-white);
  letter-spacing: 0.06em;
  line-height: 1.2;
}
.c-flowstep__badge em {
  font-size: clamp(15px, var(--px-30), 30px);
}
.c-flowstep__badge strong {
  font-weight: 700;
  font-size: clamp(24px, var(--px-48), 48px);
  line-height: 1.1;
}
.c-flowstep__title {
  /* バッジの右隣から始める */
  margin-left: clamp(70px, 10.35vw, 149px);
  white-space: nowrap;
  margin-bottom: clamp(24px, var(--px-63), 63px);
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(18px, var(--px-32), 32px);
  line-height: 1.3;
  letter-spacing: 0.06em;
  color: var(--c-white);
}
.c-flowstep__text {
  line-height: 35px;
  font-size: clamp(13px, var(--px-16), 16px);
}
.c-flowstep__fig {
  width: 50%;
}
.c-flowstep__fig img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* -----------------------------------------------------
  よくある質問（アコーディオン）
----------------------------------------------------- */
.c-faq + .c-faq {
  margin-top: clamp(16px, var(--px-40), 40px);
}
.c-faq__q {
  display: flex;
  align-items: center;
  gap: clamp(10px, var(--px-20), 20px);
  min-height: clamp(48px, var(--px-65), 65px);
  padding: 0.5em clamp(8px, 0.9vw, 13px) 0.5em 3.52%;
  background: var(--c-white);
  cursor: pointer;
}
.c-faq__qmark {
  flex-shrink: 0;
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(17px, var(--px-24), 24px);
  line-height: 1;
  color: var(--c-red);
}
.c-faq__text {
  flex: 1;
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(14px, var(--px-20), 20px);
  line-height: 1.4;
  letter-spacing: 0.06em;
  color: var(--c-red);
}
/* ＋／− アイコン */
.c-faq__icon {
  position: relative;
  flex-shrink: 0;
  width: clamp(20px, var(--px-30), 30px);
  height: clamp(20px, var(--px-30), 30px);
}
.c-faq__icon::before,
.c-faq__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 4px;
  margin-top: -2px;
  background: #333;
  transition: transform 0.3s ease;
}
.c-faq__icon::after {
  transform: rotate(90deg);
}
.c-faq__q.active .c-faq__icon::after {
  transform: rotate(0deg);
}
.c-faq__body {
  height: 0;
  overflow: hidden;
  transition: height 0.3s ease;
}
.c-faq__body .body-content {
  display: flex;
  gap: clamp(12px, var(--px-24), 24px);
  padding: clamp(16px, var(--px-43), 43px) 3.98% 0 3.98%;
}
.c-faq__amark {
  flex-shrink: 0;
  font-size: clamp(15px, var(--px-20), 20px);
  line-height: 35px;
}
.c-faq__answer {
  flex: 1;
  line-height: 35px;
  font-size: clamp(13px, var(--px-16), 16px);
}

@media screen and (max-width: 820px) {
  .c-flowstep {
    flex-direction: column-reverse;
  }
  .c-flowstep__panel,
  .c-flowstep__fig {
    width: 100%;
  }
  .c-flowstep__fig img {
    aspect-ratio: 640 / 379;
  }
  .c-flowstep__badge {
    width: 84px;
    left: 5%;
  }
  .c-flowstep__title {
    margin-left: 96px;
    white-space: normal;
  }
}
@media screen and (max-width: 680px) {
  .c-flowstep__text,
  .c-faq__answer {
    line-height: 2;
  }
  .c-faq__amark {
    line-height: 2;
  }
}

/* =====================================================
  ご依頼の流れ
===================================================== */
.p-flow .c-page-mv__img {
  object-position: center 75%;
}
.p-flow__band {
  margin-top: clamp(50px, 8.89vw, 128px);
  padding-block: clamp(12px, var(--px-16), 16px);
  min-height: clamp(64px, var(--px-101), 101px);
  line-height: 1.5;
  text-align: center;
}
.p-flow__band--faq {
  margin-top: clamp(80px, 15.56vw, 224px);
}
.p-flow__steps {
  width: 88.89%;
  margin-inline: auto;
  margin-top: clamp(60px, 10.07vw, 145px);
}
.p-flow__faq {
  width: 88.89%;
  margin-inline: auto;
  margin-top: clamp(36px, 5.97vw, 86px);
}

/* =====================================================
  実績紹介（works）
===================================================== */
.p-works .c-page-mv__img {
  object-position: center 75%;
}
.p-works__band {
  margin-top: clamp(50px, 8.89vw, 128px);
}
.p-works__list {
  width: 85.2%;
  margin-inline: auto;
  margin-top: clamp(36px, 6.11vw, 88px);
}
.p-works__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: clamp(12px, 1.46vw, 21px);
  row-gap: clamp(30px, 6.39vw, 92px);
}
.c-work__thumb {
  background: var(--c-white);
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.c-work__thumb img {
  width: 100%;
  height: 100%;
  /* 実績写真は形がまちまちなので、切らずに収める */
  object-fit: contain;
}
.c-work__title {
  margin-top: clamp(6px, var(--px-10), 10px);
  line-height: 27px;
  font-size: clamp(13px, var(--px-16), 16px);
}
.c-work__link:hover {
  opacity: 0.75;
}
.p-works__empty {
  text-align: center;
}
/* 詳細ページ */
.p-works__detail {
  margin-top: clamp(30px, var(--px-60), 60px);
}
.p-single__date {
  display: block;
  margin-bottom: clamp(12px, var(--px-24), 24px);
  font-size: clamp(13px, var(--px-16), 16px);
  color: #666;
}
.p-single__thumb img {
  width: 100%;
  height: auto;
}
.p-single__content {
  line-height: 35px;
  font-size: clamp(13px, var(--px-16), 16px);
}
.p-single__content p {
  margin-bottom: 1.5em;
}
.p-single__content img {
  height: auto;
}
.p-single__back {
  margin-top: clamp(30px, var(--px-60), 60px);
}
@media screen and (max-width: 820px) {
  .p-works__grid {
    grid-template-columns: repeat(2, 1fr);
    row-gap: clamp(24px, 4vw, 40px);
  }
}
@media screen and (max-width: 680px) {
  .p-single__content {
    line-height: 2;
  }
}

/* =====================================================
  会社概要
===================================================== */
.p-company .c-page-mv__img {
  object-position: center 75%;
}
.p-company__outline {
  margin-top: clamp(50px, 8.54vw, 123px);
}
.c-company {
  width: min(851px, 89%);
  margin-inline: auto;
}
.c-company__row {
  display: flex;
  align-items: stretch;
}
.c-company__label,
.c-company__value {
  display: flex;
  align-items: center;
  min-height: clamp(48px, var(--px-68), 68px);
  padding-block: 0.4em;
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.6;
}
.c-company__label {
  width: 21.74%;
  flex-shrink: 0;
  padding-left: clamp(16px, 4.03vw, 58px);
  border-bottom: 5px solid var(--c-red);
}
.c-company__value {
  flex: 1;
  padding-left: clamp(12px, 1.67vw, 24px);
  border-bottom: 5px solid #585858;
}
/* -----------------------------------------------------
  商品紹介サイトのバナー
----------------------------------------------------- */
.p-company__banner {
  margin-top: clamp(60px, 13.9vw, 200px);
}
.c-banner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, var(--px-14), 14px);
  width: min(700px, 89%);
  margin-inline: auto;
  min-height: clamp(120px, var(--px-170), 170px);
  padding: clamp(14px, var(--px-21), 21px) 4%;
  border: 1px solid var(--c-white);
  background: var(--c-black);
}
.c-banner__logo {
  /* Figma：ロゴは中央ではなく左寄せ（右のキャラと重ねない） */
  align-self: flex-start;
  margin-left: 3.86%;
  width: 73%;
  height: auto;
}
.c-banner__label {
  font-weight: 700;
  font-size: clamp(18px, var(--px-32), 32px);
  line-height: 1.2;
  letter-spacing: 0.21em;
  /* 字間ぶんを相殺して中央に */
  text-indent: 0.21em;
}
/* 枠からはみ出すキャラクター */
.c-banner__char {
  position: absolute;
  left: 79.6%;
  top: -15.9%;
  width: 22%;
  height: auto;
  pointer-events: none;
}
.c-banner:hover {
  opacity: 1;
  border-color: var(--c-gold-light);
}
/* -----------------------------------------------------
  GoogleMap
----------------------------------------------------- */
.p-company__map {
  width: 88.89%;
  margin-inline: auto;
  margin-top: clamp(50px, 8.33vw, 120px);
}
.p-company__map iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 6;
  border: 0;
}
@media screen and (max-width: 680px) {
  .c-company__row {
    flex-direction: column;
  }
  .c-company__label {
    width: 100%;
    min-height: 0;
    padding-left: 0.5em;
  }
  .c-company__value {
    padding-left: 0.5em;
  }
  .c-banner__char {
    left: auto;
    right: -6%;
    width: 26%;
  }
  .p-company__map iframe {
    aspect-ratio: 4 / 3;
  }
}

/* =====================================================
  お問い合わせ
===================================================== */
.p-contact-page .c-page-mv__img {
  object-position: center 75%;
}
.p-contact-page__band {
  margin-top: clamp(50px, 8.54vw, 123px);
}
.p-contact-page__tel {
  margin-top: clamp(30px, var(--px-62), 62px);
  text-align: center;
}
/* 白地・赤枠の電話ボタン */
.c-tel-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, var(--px-14), 14px);
  width: clamp(240px, 21.74vw, 313px);
  min-height: clamp(48px, var(--px-60), 60px);
  border: 3px solid var(--c-red);
  border-radius: 999px;
  background: var(--c-white);
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(20px, var(--px-30), 30px);
  line-height: 1;
  letter-spacing: 0.06em;
  color: var(--c-red);
}
.c-tel-btn img {
  width: clamp(20px, var(--px-27), 27px);
  height: auto;
}
.c-tel-btn:hover {
  opacity: 1;
  background: var(--c-red);
  color: var(--c-white);
}
.p-contact-page__form {
  margin-top: clamp(50px, 8.68vw, 125px);
}
.p-contact-page__privacy {
  margin-top: clamp(50px, 9.79vw, 141px);
}

/* -----------------------------------------------------
  フォーム（Contact Form 7）
----------------------------------------------------- */
.c-form {
  width: min(720px, 89%);
  margin-inline: auto;
}
.c-form__row {
  display: flex;
  align-items: flex-start;
  gap: 3.5%;
  margin-bottom: clamp(16px, var(--px-31), 31px);
}
.c-form__label {
  display: flex;
  align-items: center;
  gap: 0.6em;
  width: 30.4%;
  flex-shrink: 0;
  min-height: clamp(32px, var(--px-37), 37px);
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.5;
}
.c-form__req {
  flex-shrink: 0;
  font-size: clamp(11px, var(--px-14), 14px);
  color: var(--c-red);
}
.c-form__field {
  flex: 1;
  margin: 0;
}
.c-form input[type="text"],
.c-form input[type="tel"],
.c-form input[type="email"],
.c-form input[type="file"],
.c-form textarea {
  width: 100%;
  min-height: clamp(32px, var(--px-37), 37px);
  padding: 0.4em 0.8em;
  border: 1px solid #bcbcbc;
  border-radius: 5px;
  background: #f8f8f8;
  font-family: var(--f-sans);
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.6;
  color: #333;
}
.c-form textarea {
  min-height: clamp(140px, var(--px-214), 214px);
  resize: vertical;
}
.c-form input:focus-visible,
.c-form textarea:focus-visible {
  outline: 2px solid var(--c-red);
  outline-offset: 1px;
}
/* 郵便番号は短い入力欄（.c-form input[type=text] に勝つよう詳細度を上げる） */
.c-form .c-form__field--sm input[type="text"] {
  width: 34.5%;
  min-width: 140px;
}
.c-form__btn {
  margin-top: clamp(40px, var(--px-113), 113px);
  text-align: center;
}
.c-form__submit {
  width: clamp(170px, var(--px-208), 208px);
  min-height: clamp(40px, var(--px-47), 47px);
  padding-left: clamp(14px, var(--px-22), 22px);
  padding-right: clamp(44px, var(--px-64), 64px);
  border: 2px solid var(--c-red);
  border-radius: 999px;
  background: var(--c-red) url("../img/common/arrow-white.svg") no-repeat right
    clamp(14px, var(--px-22), 22px) center / clamp(24px, var(--px-32), 32px)
    auto;
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(13px, var(--px-16), 16px);
  letter-spacing: 0.06em;
  color: var(--c-white);
  text-align: left;
  cursor: pointer;
  transition: 0.25s ease-in-out;
}
.c-form__submit:hover {
  background-color: var(--c-white);
  background-image: url("../img/common/arrow-red.svg");
  color: var(--c-red);
}
/* CF7 の検証メッセージ */
.wpcf7-not-valid-tip {
  margin-top: 0.4em;
  font-size: clamp(12px, var(--px-14), 14px);
  color: #ff8f97;
}
.wpcf7-response-output {
  width: min(720px, 89%);
  margin-inline: auto !important;
  padding: 1em !important;
  border-color: var(--c-gold) !important;
  font-size: clamp(13px, var(--px-16), 16px);
}

/* -----------------------------------------------------
  プライバシーポリシー（スクロールボックス）
----------------------------------------------------- */
.c-privacy {
  width: min(1028px, 89%);
  margin-inline: auto;
  height: clamp(240px, var(--px-301), 301px);
  display: flex;
  flex-direction: column;
  padding: clamp(16px, var(--px-24), 24px) clamp(16px, 2.5vw, 36px);
  border: 2px solid var(--c-white);
}
.c-privacy__title {
  flex-shrink: 0;
  text-align: center;
  font-weight: 600;
  font-size: clamp(17px, var(--px-24), 24px);
  line-height: 1.4;
  letter-spacing: 0.06em;
  margin-bottom: clamp(10px, var(--px-22), 22px);
}
.c-privacy__scroll {
  flex: 1;
  overflow-y: auto;
  padding-right: clamp(16px, 2.5vw, 36px);
  line-height: 35px;
  font-size: clamp(13px, var(--px-16), 16px);
  font-weight: 400;
  scrollbar-width: thin;
  scrollbar-color: var(--c-white) transparent;
}
.c-privacy__scroll::-webkit-scrollbar {
  width: 5px;
}
.c-privacy__scroll::-webkit-scrollbar-track {
  background: transparent;
}
.c-privacy__scroll::-webkit-scrollbar-thumb {
  background: var(--c-white);
}
.c-privacy__scroll p + p,
.c-privacy__scroll ul + p {
  margin-top: 1em;
}
.c-privacy__list {
  margin: 0.4em 0 0 1.2em;
}
.c-privacy__list li {
  list-style: disc;
}

@media screen and (max-width: 680px) {
  .c-form__row {
    flex-direction: column;
    gap: 6px;
  }
  .c-form__label {
    width: 100%;
    min-height: 0;
  }
  .c-privacy__scroll {
    line-height: 2;
  }
}

/* CONTACT は TOPの背景装飾より前面に */
.p-contact {
  z-index: 1;
}
/* -----------------------------------------------------
  実績紹介：本文下の画像ギャラリー（クリックでアイキャッチを差し替え）
----------------------------------------------------- */
.p-works-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(8px, var(--px-16), 16px);
  margin-top: clamp(24px, var(--px-40), 40px);
}
.p-works-gallery__item {
  width: calc((100% - clamp(8px, var(--px-16), 16px) * 3) / 4);
}
.p-works-gallery__thumb {
  display: block;
  width: 100%;
  cursor: zoom-in;
}
.p-works-gallery__thumb img {
  display: block;
  width: 100%;
  /* WPが出力する height 属性で縦に伸びるのを防ぐ */
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: opacity 0.3s;
}
.p-works-gallery__thumb:hover {
  opacity: 1;
}
.p-works-gallery__thumb:hover img {
  opacity: 0.75;
}
@media screen and (max-width: 680px) {
  .p-works-gallery {
    gap: 8px;
  }
  .p-works-gallery__item {
    width: calc((100% - 8px * 2) / 3);
  }
}
