@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.2);
}
.c-sec-title__ja {
  font-family: var(--f-serif);
  font-weight: 600;
  font-size: clamp(17px, var(--px-24), 24px);
  line-height: 1.46;
  letter-spacing: 0.21em;
  text-indent: 0.21em;
  /* 英字の下端に食い込ませる（Figmaの重なり） */
  margin-top: max(-40px, -2.78vw);
}

/* -----------------------------------------------------
  ボタン「詳しくはこちら」
----------------------------------------------------- */
.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);
}

.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: 680px) {
  .p-single__content {
    line-height: 2;
  }
}

/* =====================================================
  会社概要
===================================================== */

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

/* -----------------------------------------------------
  下層共通：MV（ヘッダーが上に被さる前提で、写真の見える高さは400px）
----------------------------------------------------- */
.c-sub-mv {
  position: relative;
  overflow: hidden;
}
.c-sub-mv__pic {
  display: block;
  width: 100%;
  aspect-ratio: 1440 / 400;
  object-fit: cover;
  /* Figma と同じ切り出し位置（中央だとロゴが切れて下にズレる） */
  object-position: center 27%;
}
/* 写真を落ち着かせる黒み（Figma：黒50%） */
.c-sub-mv::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  pointer-events: none;
}
.c-sub-mv__watermark {
  position: absolute;
  top: 1%;
  left: 62.4%;
  z-index: 1;
  width: 37.6%;
  opacity: 0.12;
  transform: rotate(180deg);
  pointer-events: none;
}
.c-sub-mv__title {
  position: absolute;
  left: 50%;
  top: 46.4%;
  z-index: 2;
  transform: translate(-50%, -50%);
  width: 100%;
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(22px, 3.33vw, 48px);
  line-height: 1.34;
  letter-spacing: 0;
  text-align: center;
  text-shadow: 0.23em 0.19em 0.06em rgba(0, 0, 0, 0.77);
}

/* -----------------------------------------------------
  セクションタイトル：下層は日本語の字間が狭い（Figma：0.06em）
----------------------------------------------------- */
.c-sec-title--narrow .c-sec-title__ja {
  letter-spacing: 0.06em;
  text-indent: 0.06em;
  margin-top: max(-31px, -2.15vw);
}

/* -----------------------------------------------------
  GAWONについて：CONCEPT
----------------------------------------------------- */
.p-about-concept {
  padding-block: clamp(24px, 3.33vw, 48px) 0;
}
.p-about-concept__body {
  width: 52.15%;
  margin-top: clamp(20px, 2.78vw, 40px);
  margin-inline: auto;
  line-height: 2.19;
  letter-spacing: 0.06em;
}

/* -----------------------------------------------------
  GAWONについて：REIGNITE 公式スポンサー
----------------------------------------------------- */
.p-about-sponsor {
  position: relative;
  margin-top: clamp(50px, 7.43vw, 107px);
  padding-block: clamp(50px, 7.5vw, 108px) clamp(60px, 9.72vw, 140px);
}
/* 背景：GAWON柄タイル */
.p-about-sponsor::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/common/bg-pattern.png") repeat;
  background-size: 33.125% auto;
  opacity: 0.15;
  pointer-events: none;
}
.p-about-sponsor > * {
  position: relative;
  z-index: 1;
}
.p-about-sponsor__lead {
  margin-top: clamp(28px, 3.96vw, 57px);
  font-family: var(--f-sans);
  font-weight: 600;
  line-height: 2.19;
  letter-spacing: 0.21em;
  text-align: center;
}
.p-about-sponsor__banner {
  display: block;
  width: 58.26%;
  margin-top: clamp(24px, 3.13vw, 45px);
  margin-inline: auto;
}
.p-about-sponsor__banner img {
  width: 100%;
  height: auto;
}
.p-about-sponsor__banner:hover {
  opacity: 0.85;
}

/* -----------------------------------------------------
  GAWONについて：公式キャラクター
----------------------------------------------------- */
.p-about-chara {
  padding-top: clamp(50px, 6.74vw, 97px);
}
.p-about-chara__inner {
  display: flex;
  align-items: flex-start;
  gap: 4.81%;
  width: 76.53%;
  margin-top: clamp(30px, 6.6vw, 95px);
  margin-inline: auto;
}
.p-about-chara__pics {
  display: flex;
  align-items: flex-end;
  width: 44.46%;
  flex-shrink: 0;
}
.p-about-chara__pic {
  height: auto;
}
.p-about-chara__pic--sub {
  width: 44.9%;
}
/* 大きい方は少し重ねて、底辺も少し上げる（Figma） */
.p-about-chara__pic--main {
  width: 62.86%;
  margin-left: -7.76%;
  margin-bottom: 7.07%;
}
.p-about-chara__box {
  flex: 1;
  min-width: 0;
  min-height: clamp(180px, 26.11vw, 376px);
  margin-top: clamp(8px, 1.46vw, 21px);
  padding: clamp(16px, 1.94vw, 28px) clamp(20px, 4.03vw, 58px)
    clamp(20px, 2.78vw, 40px);
  border: 1px solid var(--c-white);
  border-radius: clamp(18px, 2.57vw, 37px);
}
.p-about-chara__name {
  font-family: var(--f-sans);
  font-weight: 600;
  font-size: clamp(20px, 2.22vw, 32px);
  line-height: 1.45;
  letter-spacing: 0.06em;
}
.p-about-chara__text {
  margin-top: clamp(20px, 3.13vw, 45px);
  font-family: var(--f-sans);
  font-weight: 600;
  letter-spacing: 0.06em;
}

/* -----------------------------------------------------
  GAWONについて：FEATURES 当社の特徴
----------------------------------------------------- */
.p-about-features {
  padding-block: clamp(60px, 12.08vw, 174px) clamp(80px, 51.04vw, 735px);
}
.p-about-features__lead {
  width: 63.54%;
  margin-top: clamp(30px, 4.31vw, 62px);
  margin-inline: auto;
  line-height: 2.19;
  letter-spacing: 0.06em;
}
.p-about-features__list {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 4.31vw, 62px);
  margin-top: clamp(60px, 10.28vw, 148px);
}
.c-feature {
  display: flex;
  align-items: center;
  gap: clamp(20px, 3.89vw, 56px);
  width: clamp(300px, 46.18vw, 665px);
  margin-inline: auto;
}
/* 偶数番は枠が左・ラベルが右（Figma の互い違い） */
.c-feature:nth-child(even) {
  flex-direction: row-reverse;
}
.c-feature__label {
  flex: 1;
  min-width: 0;
  font-family: var(--f-serif);
  font-weight: 400;
  font-size: clamp(13px, 1.39vw, 20px);
  line-height: 1.3;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.c-feature__label em {
  font-size: clamp(20px, 2.22vw, 32px);
}
.c-feature__box {
  /* Figma：665 のうち枠が 466 */
  flex: none;
  width: 70.08%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: clamp(90px, 8.61vw, 124px);
  /* 左右は Figma の実測（本文枠 439px）が収まる余白にする */
  padding: clamp(12px, 1.32vw, 19px) clamp(10px, 0.83vw, 12px);
  border: 1px solid var(--c-white);
}
.c-feature__title {
  font-family: var(--f-serif);
  font-weight: 600;
  font-size: clamp(15px, 1.39vw, 20px);
  line-height: 1.45;
  letter-spacing: 0.06em;
  text-align: center;
}
.c-feature__desc {
  margin-top: clamp(8px, 1.11vw, 16px);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(12px, var(--px-16), 16px);
  line-height: 1.4;
  letter-spacing: 0.06em;
}

/* -----------------------------------------------------
  GAWONについて：SP
----------------------------------------------------- */
@media screen and (max-width: 680px) {
  /* 英字タイトルは js/fit-en-title.js が親の幅に合わせて上書きする。
     ここの値は JS が走るまでのフォールバック
     （9文字級の POLYESTER でも折り返さない大きさにしてある） */
  .c-sec-title__en {
    font-size: 8.53vw;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
  }
  .c-sub-mv__pic {
    aspect-ratio: 375 / 260;
  }
  .p-about-concept__body,
  .p-about-features__lead {
    width: 89.33%;
  }
  .p-about-sponsor__banner {
    width: 89.33%;
  }
  .p-about-chara__inner {
    flex-direction: column;
    align-items: center;
    gap: 24px;
    width: 89.33%;
  }
  .p-about-chara__pics {
    width: 80%;
  }
  .p-about-chara__box {
    width: 100%;
  }
  .c-feature {
    width: 89.33%;
    gap: 12px;
    flex-direction: column;
  }
  .c-feature:nth-child(even) {
    flex-direction: column;
  }
  .c-feature__label {
    font-size: 3.2vw;
  }
  .c-feature__label em {
    font-size: 5.33vw;
  }
}

/* -----------------------------------------------------
  商品カードのグリッド（TOPのGOODS／商品一覧で共通）
----------------------------------------------------- */
.c-goods-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: clamp(30px, var(--px-76), 76px) clamp(8px, 1.18vw, 17px);
  padding-inline: 5.625%;
}
.c-goods__img {
  display: block;
  width: 100%;
  aspect-ratio: 242 / 292;
  object-fit: cover;
}
/* 画像未登録のときの当たり枠（Figma の #d9d9d9） */
.c-goods__img--empty {
  background: #d9d9d9;
}
.c-goods__name {
  display: block;
  margin-top: clamp(10px, var(--px-21), 21px);
  font-family: var(--f-sans);
  font-weight: 600;
  font-size: clamp(12px, var(--px-16), 16px);
  line-height: 1.2;
  letter-spacing: 0.21em;
}
.c-goods a:hover .c-goods__img {
  opacity: 0.8;
}
@media screen and (max-width: 680px) {
  .c-goods-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
/* -----------------------------------------------------
  商品一覧
----------------------------------------------------- */
.p-products-list {
  /* 下の余白は Figma どおり大きめ（一覧の下端 1507 → フッター 2163） */
  padding-block: clamp(24px, 3.13vw, 45px) clamp(80px, 45.56vw, 656px);
}
.p-products-list .c-goods-grid {
  margin-top: clamp(30px, var(--px-65), 65px);
}
.p-products-list .pagination-area {
  margin-top: clamp(40px, 5.56vw, 80px);
}
/* ページが1枚のときは空divの余白を消す */
.p-products-list .pagination-area:empty {
  margin-top: 0;
}

/* -----------------------------------------------------
  商品詳細：画像＋商品情報
----------------------------------------------------- */
.p-product-main {
  padding-top: clamp(50px, 11.88vw, 171px);
}
.p-product-main__inner {
  display: flex;
  align-items: flex-start;
  gap: 4.06%;
  padding-inline: 5.55%;
}
/* --- 画像（拡大＋サムネ） --- */
.p-product-gallery {
  width: 45.94%;
  flex-shrink: 0;
  /* 商品名より少し下から始まる（Figma） */
  margin-top: clamp(6px, 0.97vw, 14px);
}
.p-product-gallery__main {
  width: 80.95%;
}
.p-product-gallery__main img {
  display: block;
  width: 100%;
  aspect-ratio: 476 / 596;
  object-fit: contain;
}
.p-product-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.65%;
  margin-top: clamp(20px, 5.49vw, 79px);
}
.p-product-gallery__thumb {
  display: block;
  width: 100%;
  padding: 0;
  border: 2px solid transparent;
  background: none;
  cursor: pointer;
}
.p-product-gallery__thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 140 / 169;
  object-fit: cover;
}
.p-product-gallery__thumb.is-current {
  border-color: var(--c-red);
}
.p-product-gallery__thumb:hover img {
  opacity: 0.8;
}
/* --- 商品情報 --- */
.p-product-info {
  width: 50%;
  flex-shrink: 0;
}
.p-product-info__name {
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(20px, 2.22vw, 32px);
  line-height: 1.375;
  letter-spacing: 0;
}
.p-product-info__lead {
  /* 商品名との間に赤い罫線を引く（Figma） */
  margin-top: clamp(24px, 4.24vw, 61px);
  padding-top: clamp(14px, 1.88vw, 27px);
  border-top: 2px solid var(--c-red);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 2.19;
  letter-spacing: 0;
}
.p-product-spec {
  margin-top: clamp(20px, 3.13vw, 45px);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(16px, var(--px-24), 24px);
  line-height: 1.46;
  color: var(--c-red);
}
.p-product-spec__row {
  display: flex;
  gap: 1em;
}
.p-product-spec__row + .p-product-spec__row {
  margin-top: clamp(10px, 1.39vw, 20px);
}
.p-product-spec dt {
  flex-shrink: 0;
  width: 5em;
}
.p-product-spec dd small {
  font-size: 0.667em;
}
/* --- TEL／メールボタン --- */
.c-product-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 1.32vw, 19px);
  width: clamp(240px, 26.18vw, 377px);
  min-height: clamp(56px, 5.42vw, 78px);
  padding-inline: 1em;
  background: var(--c-red);
  font-family: var(--f-sans);
  font-weight: 500;
  color: var(--c-white);
}
.c-product-btn:first-of-type {
  margin-top: clamp(24px, 3.61vw, 52px);
}
.c-product-btn--mail {
  margin-top: clamp(14px, 2.08vw, 30px);
}
.c-product-btn img {
  flex-shrink: 0;
  width: clamp(24px, 2.36vw, 34px);
  height: auto;
}
.c-product-btn__main {
  display: block;
  font-size: clamp(20px, 2.22vw, 32px);
  line-height: 1.1;
  letter-spacing: 0.1em;
}
.c-product-btn__sub {
  display: block;
  font-size: clamp(11px, var(--px-16), 16px);
  line-height: 1.4;
  letter-spacing: 0;
}
.c-product-btn:hover {
  opacity: 0.85;
}
/* --- 特定商取引法表示へのリンク --- */
.c-product-tokusho-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 1.11vw, 16px);
  width: clamp(260px, 36.04vw, 519px);
  min-height: clamp(64px, 6.81vw, 98px);
  margin-top: clamp(24px, 3.54vw, 51px);
  padding-inline: 1em;
  border: 1px solid var(--c-white);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(15px, var(--px-24), 24px);
  line-height: 1.46;
  letter-spacing: 0.06em;
}
.c-product-tokusho-link img {
  flex-shrink: 0;
  width: clamp(22px, 2.36vw, 34px);
  height: auto;
}
.c-product-tokusho-link__arrow {
  flex-shrink: 0;
  width: clamp(11px, 1.04vw, 15px);
  aspect-ratio: 15 / 12;
  background: var(--c-white);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.c-product-tokusho-link:hover {
  opacity: 1;
  background: rgba(255, 255, 255, 0.12);
}

/* -----------------------------------------------------
  商品詳細：商品説明
----------------------------------------------------- */
.p-product-desc {
  padding-top: clamp(60px, 15.42vw, 222px);
}
.p-product-desc__title {
  font-family: var(--f-serif);
  font-weight: 600;
  font-size: clamp(20px, 2.22vw, 32px);
  line-height: 1.1;
  letter-spacing: 0.07em;
  text-indent: 0.07em;
  text-align: center;
}
.p-product-desc__cols {
  margin-top: clamp(30px, 4.72vw, 68px);
  padding-inline: 5.55%;
}
.p-product-desc__head {
  padding-bottom: clamp(10px, 1.46vw, 21px);
  border-bottom: 2px solid var(--c-red);
  font-family: var(--f-serif);
  font-weight: 600;
  font-size: clamp(17px, var(--px-24), 24px);
  line-height: 1.46;
  letter-spacing: 0.07em;
}
.p-product-desc__body {
  margin-top: clamp(14px, 1.74vw, 25px);
  line-height: 2.19;
  letter-spacing: 0.07em;
}

/* -----------------------------------------------------
  特定商取引法表示（アコーディオン）
----------------------------------------------------- */
.p-product-tokusho {
  padding-top: clamp(50px, 8.33vw, 120px);
}
.c-accordion {
  width: clamp(300px, 60.07vw, 865px);
  margin-inline: auto;
}
.c-accordion__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: 100%;
  min-height: clamp(60px, 5.97vw, 86px);
  padding: clamp(8px, 0.9vw, 13px) 1em;
  border: none;
  background: var(--c-red);
  font-family: var(--f-serif);
  font-weight: 700;
  color: var(--c-white);
  cursor: pointer;
}
.c-accordion__title {
  font-size: clamp(16px, var(--px-24), 24px);
  line-height: 1.3;
  letter-spacing: 0.07em;
}
.c-accordion__state::after {
  content: "open ▼";
  font-family: var(--f-en);
  font-size: clamp(14px, 1.53vw, 22px);
  line-height: 1.2;
  letter-spacing: 0.06em;
}
.accordion-header.active .c-accordion__state::after {
  content: "close ▲";
}
.c-accordion__body {
  height: 0;
  overflow: hidden;
  transition: height 0.4s ease;
}
.c-tokusho {
  padding-top: clamp(20px, 3.06vw, 44px);
}
.c-tokusho__row {
  display: flex;
  /* 縦罫線を行の高さいっぱいに伸ばすため stretch */
  align-items: stretch;
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
}
.c-tokusho__row:first-child {
  border-top: 1px solid rgba(255, 255, 255, 0.35);
}
.c-tokusho dt {
  flex-shrink: 0;
  width: 27.4%;
  padding-block: clamp(10px, 1.11vw, 16px);
  padding-inline: 4.1% 1em;
  /* 見出しと内容を区切る縦罫線（Figma） */
  border-right: 1px solid rgba(255, 255, 255, 0.35);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(12px, var(--px-16), 16px);
  line-height: 2.19;
  letter-spacing: 0.07em;
}
.c-tokusho dd {
  flex: 1;
  min-width: 0;
  padding-block: clamp(10px, 1.11vw, 16px);
  padding-left: 1.75%;
  font-family: var(--f-sans);
  font-weight: 400;
  font-size: clamp(12px, var(--px-16), 16px);
  line-height: 2.19;
  letter-spacing: 0.07em;
}

/* -----------------------------------------------------
  商品詳細：ご案内ブロック
----------------------------------------------------- */
.p-product-guide {
  padding-block: clamp(60px, 17.71vw, 255px) clamp(60px, 32.57vw, 469px);
}
.p-product-guide__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(30px, 3.82vw, 55px) 5.7%;
  padding-inline: 5.55%;
}
.c-guide__head {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.53vw, 22px);
  padding-bottom: clamp(10px, 1.32vw, 19px);
  border-bottom: 2px solid var(--c-red);
  font-family: var(--f-serif);
  font-weight: 600;
  font-size: clamp(16px, var(--px-24), 24px);
  line-height: 1.3;
  letter-spacing: 0.07em;
}
.c-guide__icon {
  flex-shrink: 0;
  width: clamp(24px, 2.32vw, 33px);
  height: auto;
}
.c-guide__icon--glyph {
  display: inline-block;
  width: auto;
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(22px, 2.22vw, 32px);
  line-height: 1;
  transform: scaleX(-1);
}
.c-guide__body {
  margin-top: clamp(14px, 2.08vw, 30px);
  padding-left: clamp(10px, 2.22vw, 32px);
  font-family: var(--f-sans);
  font-weight: 400;
  font-size: clamp(12px, var(--px-16), 16px);
  line-height: 2.19;
  letter-spacing: 0.07em;
}
.c-guide__gap {
  line-height: 1.2;
}

/* -----------------------------------------------------
  商品ページ：SP
----------------------------------------------------- */
@media screen and (max-width: 820px) {
  .p-product-guide__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 680px) {
  .p-product-main__inner {
    flex-direction: column;
    gap: 28px;
    padding-inline: 5.33%;
  }
  .p-product-gallery,
  .p-product-info {
    width: 100%;
    margin-top: 0;
  }
  .p-product-gallery__main {
    width: 100%;
  }
  .p-product-gallery__thumbs {
    margin-top: 14px;
  }
  .c-product-btn,
  .c-product-tokusho-link {
    width: 100%;
  }
  .p-product-desc__cols {
    padding-inline: 5.33%;
  }
  .c-accordion {
    width: 89.33%;
  }
  .c-tokusho__row {
    flex-direction: column;
    padding-block: 10px;
  }
  .c-tokusho dt {
    width: 100%;
    padding: 0;
    border-right: none;
    color: var(--c-red);
  }
  .c-tokusho dd {
    padding: 0;
  }
  .p-product-guide__list {
    grid-template-columns: 1fr;
    padding-inline: 5.33%;
  }
  .p-product-guide {
    padding-block: 60px 80px;
  }
}

/* -----------------------------------------------------
  会社概要：COMPANY（表＋地図）
----------------------------------------------------- */
.p-company-info {
  padding-top: clamp(24px, 3.33vw, 48px);
}
.p-company-info__inner {
  display: flex;
  align-items: flex-start;
  gap: 10.42%;
  margin-top: clamp(40px, 7.5vw, 108px);
  padding-inline: 7.15% 5.55%;
}
.c-company-table {
  width: 38.66%;
  flex-shrink: 0;
}
.c-company-table__row {
  display: flex;
  align-items: center;
  padding-block: clamp(8px, 1.04vw, 15px);
  padding-inline: 3.09%;
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(12px, var(--px-16), 16px);
  line-height: 1.75;
  letter-spacing: 0.06em;
  /* Figma：2px ダッシュ／4px 空きの点線 */
  background-image: repeating-linear-gradient(
    to right,
    var(--c-white) 0 2px,
    transparent 2px 6px
  );
  background-size: 100% 1px;
  background-repeat: no-repeat;
  background-position: left bottom;
}
.c-company-table dt {
  flex-shrink: 0;
  width: 27.85%;
}
.c-company-table dd {
  flex: 1;
  min-width: 0;
}
.c-company-table dd a:hover {
  color: var(--c-red);
  opacity: 1;
}
.p-company-info__map {
  width: 50.92%;
  aspect-ratio: 640 / 424;
  /* 表より少し下から始まる（Figma） */
  margin-top: clamp(20px, 3.61vw, 52px);
}
.p-company-info__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* -----------------------------------------------------
  会社概要：OFFICIALSITE バナー
----------------------------------------------------- */
.p-company-official {
  padding-block: clamp(50px, 7.78vw, 112px) 0;
}

/* -----------------------------------------------------
  会社概要：よくある質問
----------------------------------------------------- */
.p-company-faq {
  padding-block: clamp(40px, 3.61vw, 52px) clamp(80px, 29.51vw, 425px);
}
.p-company-faq__title {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(64px, 7.01vw, 101px);
  margin-inline: 5.55%;
  padding-inline: 1em;
  background: var(--c-red);
  font-family: var(--f-serif);
  font-weight: 700;
  font-size: clamp(19px, 2.08vw, 30px);
  line-height: 1.13;
  letter-spacing: 0.06em;
  text-indent: 0.06em;
}
.c-faq {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 1.94vw, 28px);
  margin-top: clamp(40px, 5.97vw, 86px);
  margin-inline: 5.55%;
}
/* --- 質問（アコーディオンの見出し） --- */
.c-faq__q {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.53vw, 22px);
  width: 100%;
  min-height: clamp(52px, 4.51vw, 65px);
  padding-block: clamp(8px, 0.83vw, 12px);
  padding-inline: 3.52% 1.1%;
  border: none;
  background: var(--c-white);
  font-family: var(--f-serif);
  font-weight: 700;
  color: var(--c-red);
  text-align: left;
  cursor: pointer;
}
.c-faq__mark {
  flex-shrink: 0;
  font-size: clamp(17px, 1.67vw, 24px);
  line-height: 1.2;
  letter-spacing: 0.06em;
}
.c-faq__text {
  flex: 1;
  min-width: 0;
  font-size: clamp(14px, 1.39vw, 20px);
  line-height: 1.4;
  letter-spacing: 0.06em;
}
/* ＋／−（開くと横線1本になる） */
.c-faq__toggle {
  position: relative;
  flex-shrink: 0;
  width: clamp(20px, 2.08vw, 30px);
  height: clamp(20px, 2.08vw, 30px);
}
.c-faq__toggle::before,
.c-faq__toggle::after {
  content: "";
  position: absolute;
  left: 0;
  top: calc(50% - clamp(1.5px, 0.14vw, 2px));
  width: 100%;
  height: clamp(3px, 0.28vw, 4px);
  background: #333333;
}
.c-faq__toggle::after {
  transform: rotate(90deg);
  transition: transform 0.3s ease;
}
.accordion-header.active .c-faq__toggle::after {
  transform: rotate(0deg);
}
/* --- 回答 --- */
.c-faq__body {
  height: 0;
  overflow: hidden;
  transition: height 0.4s ease;
}
.c-faq__body .body-content {
  display: flex;
  align-items: flex-start;
  gap: clamp(12px, 1.67vw, 24px);
  padding-block: clamp(18px, 2.99vw, 43px) 0;
  padding-inline: 3.98% 6.48%;
}
.c-faq__mark--a {
  color: var(--c-white);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(14px, 1.39vw, 20px);
  line-height: 1.75;
}
.c-faq__answer {
  flex: 1;
  min-width: 0;
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(12px, var(--px-16), 16px);
  line-height: 2.19;
  letter-spacing: 0.06em;
}

/* -----------------------------------------------------
  会社概要：SP
----------------------------------------------------- */
@media screen and (max-width: 680px) {
  .p-company-info__inner {
    flex-direction: column;
    gap: 28px;
    padding-inline: 5.33%;
  }
  .c-company-table,
  .p-company-info__map {
    width: 100%;
  }
  .p-company-info__map {
    margin-top: 0;
  }
  .c-company-table__row {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding-inline: 2%;
  }
  .c-company-table dt {
    width: 100%;
    color: var(--c-red);
  }
  .p-company-faq__title,
  .c-faq {
    margin-inline: 5.33%;
  }
  .c-faq__q {
    align-items: flex-start;
    gap: 10px;
    padding-inline: 4% 3%;
  }
  .c-faq__body .body-content {
    padding-inline: 4% 4%;
  }
}

/* -----------------------------------------------------
  お問い合わせフォーム（Contact Form 7）
----------------------------------------------------- */
.p-contact-form {
  padding-block: clamp(24px, 3.33vw, 48px) clamp(80px, 32.22vw, 464px);
}
.p-contact-form__body {
  width: clamp(300px, 45.9vw, 661px);
  margin-top: clamp(30px, 4.38vw, 63px);
  margin-inline: auto;
}
.p-contact-form__empty {
  text-align: center;
}
/* CF7 が挿入する余白をリセット */
.p-contact-form .wpcf7-form p {
  margin: 0;
}
/* スピナーはボタンの高さに影響させない（矢印の位置がずれるため） */
.p-contact-form .wpcf7-spinner {
  position: absolute;
  left: 50%;
  top: calc(100% + 12px);
  transform: translateX(-50%);
  margin: 0;
}

/* --- 入力行 --- */
.c-form__row {
  display: flex;
  align-items: center;
  min-height: clamp(64px, 6.6vw, 95px);
}
.c-form__label {
  flex-shrink: 0;
  width: 35.55%;
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.4;
  letter-spacing: 0.21em;
}
.c-form__req,
.c-form__opt {
  margin-right: 0.4em;
  font-size: clamp(11px, 0.97vw, 14px);
}
.c-form__req {
  color: var(--c-red);
}
.c-form__field {
  flex: 1;
  min-width: 0;
}
/* 入力欄の見た目（Figma：#E6E6E6 のベタ、高さ41px） */
.c-form__field input[type="text"],
.c-form__field input[type="tel"],
.c-form__field input[type="email"],
.c-form__field textarea {
  width: 100%;
  min-height: clamp(34px, 2.85vw, 41px);
  padding: 0.4em 0.8em;
  border: none;
  border-radius: 0;
  background: #e6e6e6;
  font-family: var(--f-sans);
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.6;
  color: #333;
}
.c-form__field textarea {
  min-height: clamp(120px, 13.06vw, 188px);
  padding: 0.8em;
  resize: vertical;
}
.c-form__field--file input[type="file"] {
  width: 60%;
  min-width: 110px;
  min-height: clamp(34px, 2.85vw, 41px);
  padding: 0.4em;
  background: #e6e6e6;
  font-size: clamp(11px, 0.83vw, 12px);
  color: #333;
}
/* お問い合わせ内容の行だけ上揃え */
.c-form__row:last-child {
  align-items: flex-start;
}
.c-form__row:last-child .c-form__label,
.c-form__row:last-child .c-form__field {
  padding-top: clamp(12px, 1.81vw, 26px);
}

/* --- ラジオボタン --- */
.c-form__field--radio .wpcf7-radio {
  display: flex;
  align-items: center;
  /* 3つを1行に収める（Figma） */
  gap: clamp(10px, 2.15vw, 31px);
  white-space: nowrap;
}
.c-form__field--radio .wpcf7-list-item {
  margin: 0;
}
.c-form__field--radio label {
  display: flex;
  align-items: center;
  gap: clamp(6px, 0.59vw, 8.5px);
  font-family: var(--f-sans);
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.4;
  letter-spacing: 0.21em;
  cursor: pointer;
}
.c-form__field--radio input[type="radio"] {
  appearance: none;
  flex-shrink: 0;
  width: clamp(11px, 0.9vw, 13px);
  aspect-ratio: 1;
  margin: 0;
  border: none;
  border-radius: 50%;
  background: #e6e6e6;
  cursor: pointer;
}
.c-form__field--radio input[type="radio"]:checked {
  background: var(--c-red);
  box-shadow: 0 0 0 2px #e6e6e6;
}

/* --- プライバシーポリシー（スクロールボックス） --- */
.c-form__policy {
  width: 96.22%;
  max-height: clamp(90px, 7.36vw, 106px);
  margin-top: clamp(30px, 4.55vw, 65px);
  margin-inline: auto;
  overflow-y: auto;
  border: 1px solid var(--c-white);
  scrollbar-width: thin;
  scrollbar-color: #d9d9d9 transparent;
}
.c-form__policy::-webkit-scrollbar {
  width: 3px;
}
.c-form__policy::-webkit-scrollbar-track {
  background: transparent;
}
.c-form__policy::-webkit-scrollbar-thumb {
  background: #d9d9d9;
}
.c-form__policy-inner {
  padding: clamp(6px, 0.49vw, 7px) clamp(14px, 2.05vw, 29px)
    clamp(14px, 1.39vw, 20px) clamp(14px, 1.74vw, 25px);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(12px, 0.97vw, 14px);
  line-height: 2.14;
  letter-spacing: 0.21em;
}
.c-form__policy-title {
  font-size: clamp(14px, 1.25vw, 18px);
  color: var(--c-red);
}
.c-form__policy-head {
  margin-top: 1em !important;
  color: var(--c-red);
}

/* --- 同意チェック --- */
.c-form__agree {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: fit-content;
  margin-top: clamp(24px, 3.4vw, 49px);
  margin-inline: auto;
}
.c-form__agree .wpcf7-list-item {
  margin: 0;
}
.c-form__agree label {
  display: flex;
  align-items: center;
  gap: clamp(7px, 0.69vw, 10px);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(13px, var(--px-16), 16px);
  line-height: 1.4;
  letter-spacing: 0.21em;
  cursor: pointer;
}
.c-form__agree input[type="checkbox"] {
  appearance: none;
  flex-shrink: 0;
  width: clamp(15px, 1.25vw, 18px);
  aspect-ratio: 1;
  margin: 0;
  border: 1px solid #999999;
  background: #e6e6e6;
  cursor: pointer;
}
.c-form__agree input[type="checkbox"]:checked {
  background: var(--c-red);
  border-color: var(--c-red);
}
.c-form__agree input[type="checkbox"]:checked::after {
  content: "";
  display: block;
  width: 30%;
  height: 60%;
  margin: 5% auto 0;
  border: solid var(--c-white);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.c-form__agree-note {
  margin-top: clamp(14px, 2.29vw, 33px) !important;
  padding-left: clamp(22px, 1.94vw, 28px);
  font-family: var(--f-sans);
  font-weight: 500;
  font-size: clamp(11px, 0.97vw, 14px);
  line-height: 1.4;
  letter-spacing: 0.21em;
}

/* --- 送信ボタン --- */
.c-form__btn {
  position: relative;
  width: clamp(170px, var(--px-208), 208px);
  margin-top: clamp(20px, 2.36vw, 34px);
  margin-inline: auto;
}
.c-form__btn::after {
  content: "";
  position: absolute;
  right: clamp(14px, var(--px-22), 22px);
  top: 50%;
  transform: translateY(-50%);
  width: clamp(24px, var(--px-32), 32px);
  aspect-ratio: 32.5 / 10.5;
  background: url("../img/common/arrow-white.svg") center / contain no-repeat;
  pointer-events: none;
}
.c-form__submit {
  width: 100%;
  min-height: clamp(40px, var(--px-47), 47px);
  padding-inline: clamp(14px, var(--px-22), 22px) clamp(44px, 4.03vw, 58px);
  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);
  text-align: left;
  cursor: pointer;
  transition: opacity 0.3s;
}
.c-form__submit:hover:not(:disabled) {
  background: var(--c-white);
  color: var(--c-red);
}
.c-form__btn:has(.c-form__submit:hover:not(:disabled))::after {
  background-image: url("../img/common/arrow-red.svg");
}
.c-form__submit:disabled,
.c-form__submit.is-disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* --- CF7 のメッセージ --- */
.p-contact-form .wpcf7-not-valid-tip {
  margin-top: 4px;
  font-size: clamp(11px, 0.97vw, 14px);
  color: #ff6b6b;
}
.p-contact-form .wpcf7-response-output {
  margin: clamp(16px, 1.67vw, 24px) 0 0 !important;
  padding: 0.8em 1em !important;
  border-width: 1px !important;
  font-size: clamp(12px, var(--px-16), 16px);
  text-align: center;
}

/* -----------------------------------------------------
  お問い合わせ：SP
----------------------------------------------------- */
@media screen and (max-width: 680px) {
  .p-contact-form__body {
    width: 89.33%;
  }
  .c-form__row {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    min-height: 0;
    padding-block: 12px;
  }
  .c-form__label {
    width: 100%;
  }
  .c-form__row:last-child .c-form__label,
  .c-form__row:last-child .c-form__field {
    padding-top: 0;
  }
  .c-form__field--radio .wpcf7-radio {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .c-form__field--file input[type="file"] {
    width: 100%;
  }
  .c-form__policy {
    width: 100%;
    max-height: 140px;
  }
  .c-form__agree {
    width: 100%;
  }
}
