/* ==========================================
   fishing-gear.css
   漁網・漁具 事業内容詳細ページ固有スタイル
   ========================================== */

body {
  padding-top: 80px;
}

@media (max-width: 560px) {
  body {
    padding-top: 64px;
  }
}

/* ------------------------------------------
   共通: セクションヘッダー
------------------------------------------ */
.fg-section-header {
  text-align: center;
  /* margin-bottom: 60px; */
}

.fg-section-header__en {
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.15em;
  color: #968971;
  text-transform: uppercase;
  margin: 0 0 12px;
  line-height: 1;
}

.fg-section-header__icon {
  display: block;
  margin: 0 auto 20px;
  opacity: 0.8;
}

.fg-section-header__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 36px;
  color: #1d2e45;
  letter-spacing: 1.08px;
  line-height: 1.5;
  margin: 0 0 32px;
}

.fg-section-header__desc {
  font-family: "Shippori Mincho", serif;
  font-size: 20px;
  font-weight: 600;
  color: #1d2e45;
  line-height: 1.6;
  letter-spacing: 0.6px;
  margin: 0;
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
}

.fg-section-header__desc-break--sp {
  display: none;
}

.fg-section-header__subdesc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #7a8192;
  line-height: 2;
  margin: 0;
}

.fg-section-header--light .fg-section-header__title {
  color: #1d2e45;
}

/* 取り扱い商品ラベル */
.fg-label {
  display: inline-block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  font-weight: 500;
  color: #fff;
  background-color: #968971;
  padding: 2px 8px;
  letter-spacing: 0.05em;
  margin-right: 10px;
  white-space: nowrap;
}

/* ------------------------------------------
   ヒーロー
------------------------------------------ */
.fg-hero {
  padding: 70px 0;
  background-color: #fff;
}

.fg-hero__inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 16px;
  display: flex;
  align-items: center;
  gap: 64px;
}

/* PCのみ：見出しの上端を写真の上辺にそろえる（縦中央ではない）。SPは下の @media で別指定 */
@media (min-width: 561px) {
  .fg-hero__inner {
    align-items: flex-start;
  }
}

.fg-hero__text {
  flex: 0 0 531px;
}

.fg-hero__heading {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 28px;
  color: #1d2e45;
  letter-spacing: 1px;
  line-height: 1.75;
  margin: 0 0 28px;
}

.fg-hero__body {
  font-family: "Shippori Mincho", serif;
  font-size: 16px;
  font-weight: 600;
  color: #1d2e45;
  line-height: 1.8;
  letter-spacing: 0.48px;
  margin: 0;
}

.fg-hero__heading-break--sp {
  display: none;
}

.fg-hero__image {
  flex: 0 0 480px;
}

.fg-hero__img {
  display: block;
  width: 100%;
  height: 340px;
  object-fit: cover;
}

/* PC：Figma（2026.10.14）に合わせる
   見出し 35px / 行間1.6 / 字間1.05px、本文 531px、写真 553×320、左右の余白なし（1160px）、
   パンくずの下 30px、見出し→本文 30px、文字と写真の間 76px */
@media (min-width: 1025px) {
  .fg-hero {
    padding: 30px 0 70px;
  }
  .fg-hero__inner {
    padding: 0;
    gap: 76px;
  }
  .fg-hero__heading {
    font-size: 35px;
    line-height: 1.6;
    letter-spacing: 1.05px;
    margin: 0 0 30px;
    white-space: nowrap; /* 改行は管理画面の指定どおり（文字の列より少し広くなるので折り返させない） */
  }
  .fg-hero__text {
    flex: 0 0 531px;
  }
  .fg-hero__image {
    flex: 0 0 553px;
  }
  .fg-hero__img {
    height: 320px;
  }
  /* 漁撈機械・養殖装置／漁船建造のページ：見出し3行・写真 553×359、見出し→本文 25px */
  .fg-hero--tall .fg-hero__heading {
    margin-bottom: 25px;
  }
  .fg-hero--tall .fg-hero__img {
    height: 359px;
  }
}

/* 見出し中の「、」「・」の字間を詰める（Figma：-10.5px） */
.fg-hero__punct {
  letter-spacing: -0.3em;
}
.fg-hero__punct--dot {
  margin-left: -0.3em;
}

/* ------------------------------------------
   漁法・用途に応じた漁網
------------------------------------------ */
.fg-nets {
  padding: 100px 0;
  background-color: #fff;
}

/* PC：写真の下→扇のアイコンの上を 70px にする（Figma）。ヒーローの下余白 70px だけにして、こちらの上余白は 0 */
@media (min-width: 561px) {
  .fg-hero + .fg-nets {
    padding-top: 0;
  }
}

.fg-nets__container {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 16px;
}

/* セクション説明文 → 一般漁網の説明文まで 60px */
.fg-nets .fg-section-header {
  margin-bottom: 60px;
}

.fg-nets__group {
  margin-bottom: 120px; /* 一般漁網のカード下 → 養殖網の説明文まで（PC）。SPは下の @media で 50px */
}

.fg-nets__group:last-child {
  margin-bottom: 0;
}

.fg-nets__group-header {
  display: flex;
  align-items: flex-start;
  gap: 0;
  margin-bottom: 50px; /* 漁網・漁具の両セクション共通（SPは下の @media で 20px） */
}

/* PCのみ（SPは下の @media で別指定）
   見出しは右の説明文の縦中央にそろえる */
@media (min-width: 561px) {
  .fg-nets .fg-nets__group-header {
    align-items: center;
    margin-bottom: 50px;
  }

  .fg-nets .fg-nets__group-info {
    padding-top: 0;
  }

  /* 見出し → 説明文は 60px 空ける（短い見出しは従来どおり 233px 幅で説明文の位置をそろえる） */
  .fg-nets .fg-nets__group-title {
    flex: 0 0 auto;
    min-width: 233px;
    padding-right: 60px;
    box-sizing: border-box;
  }

  /* 漁具セクション：見出しは説明文の縦中央／見出し → 説明文は 100px */
  .fg-tools .fg-nets__group-header {
    align-items: center;
  }

  .fg-tools .fg-nets__group-info {
    padding-top: 0;
  }

  .fg-tools .fg-nets__group-title {
    flex: 0 0 auto;
    margin-right: 100px;
  }
}

.fg-nets__group-title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 32px;
  color: #1d2e45;
  letter-spacing: 0.96px;
  line-height: 1.5;
  margin: 0;
  flex: 0 0 233px;
  white-space: nowrap;
}

.fg-nets__group-info {
  flex: 1;
  padding-top: 6px;
}

.fg-nets__group-desc {
  font-family: "Shippori Mincho", serif;
  font-size: 18px;
  font-weight: 600;
  color: #1d2e45;
  line-height: 1.6;
  letter-spacing: 0.54px;
  margin: 0;
}

.fg-nets__group-desc-break--sp {
  display: none;
}

/* 漁網カード */
.fg-net-cards {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.fg-net-card {
  display: flex;
  align-items: stretch;
  background-color: #f1f3f4;
  height: 310px;
  padding: 50px 60px;
  gap: 45px;
}

.fg-net-card__text {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.fg-net-card__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 24px;
  color: #1d2e45;
  letter-spacing: 0.72px;
  line-height: 1.5;
  margin: 0 0 16px;
  /* タイトルの下 15px に下線（PC） */
  padding-bottom: 15px;
  border-bottom: 1px solid #1d2e45;
}

.fg-net-card__desc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #1d2e45;
  line-height: 1.6;
  letter-spacing: 0.48px;
  margin: 0 0 16px;
}

.fg-net-card__products {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: #7a8192;
  line-height: 1.8;
  margin: 0;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0;
}

/* 養殖網カード用: セパレーター（下線はタイトルの border-bottom に統一したため非表示） */
.fg-net-card__sep {
  display: none;
  border: none;
  border-top: 1px solid rgba(29, 46, 69, 0.15);
  margin: 0 0 20px;
}

.fg-net-card__products-label {
  font-family: "Noto Sans JP", sans-serif;

  margin: 0;
  color: #1d2e45;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 150%; /* 24px */
  letter-spacing: 0.48px;
}

.fg-net-card__products-items {
  font-family: "Noto Sans JP", sans-serif;
  color: #1d2e45;
  font-size: 16px;
  font-weight: 500;
  line-height: 150%; /* 24px */
  letter-spacing: 0.48px;
}

.fg-net-card__image {
  flex: 0 0 405px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 0;
  align-self: center;
}

.fg-net-card__image img {
  display: block;
  width: 405px;
  height: 210px;
  object-fit: cover;
}

/* 2枚のカード(養殖網)は横並び */
.fg-net-cards--two {
  flex-direction: row;
  gap: 2px;
}

.fg-net-cards--two .fg-net-card {
  flex: 1;
  flex-direction: column;
}

.fg-net-cards--two .fg-net-card__image {
  flex: 0 0 auto;
}

.fg-net-cards--two .fg-net-card__image img {
  height: 240px;
  min-height: unset;
}

.fg-net-cards--two .fg-net-card__text {
  padding: 32px 28px;
}

/* ------------------------------------------
   漁具
------------------------------------------ */
.fg-tools {
  padding: 100px 0;
  background-color: #fff;
}

.fg-tools__container {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 16px;
}

.fg-tool-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.fg-tool-card {
  background-color: #f5f7f9;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.fg-tool-card__title {
  order: 2;
  padding: 28px 24px 0;
}

.fg-tool-card__image {
  overflow: hidden;
  order: 1;
}

.fg-tool-card__text {
  order: 3;
}

.fg-tool-card__image img {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.fg-tool-card:hover .fg-tool-card__image img {
  transform: scale(1.04);
}

.fg-tool-card__text {
  padding: 0 24px 32px;
}

.fg-tool-card__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 22px;
  color: #1d2e45;
  letter-spacing: 1px;
  margin: 0 0 14px;
}

.fg-tool-card__desc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #1d2e45;
  line-height: 1.6; /* 25.6px */
  letter-spacing: 0.48px;
  margin: 0 0 16px;
}

.fg-tool-card__products {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  color: #7a8192;
  line-height: 1.8;
  margin: 0;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
}

/* ------------------------------------------
   施工実績フォトギャラリー
------------------------------------------ */
.fg-gallery {
  overflow: hidden;
  --fg-gallery-w: 700px;
  --fg-gallery-h: 472px;
  --fg-gallery-sec: 12s; /* 1枚あたりに流れる秒数（大きいほどゆっくり） */
}

.fg-gallery__track {
  display: flex;
  width: max-content;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 0;
  animation: fg-gallery-scroll calc(var(--fg-gallery-n, 6) * var(--fg-gallery-sec)) linear infinite;
  will-change: transform;
}

.fg-gallery__item {
  flex: 0 0 auto;
  width: var(--fg-gallery-w);
  height: var(--fg-gallery-h);
  margin: 0;
  overflow: hidden;
}

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

@keyframes fg-gallery-scroll {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-50%, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .fg-gallery__track {
    animation: none;
  }
}

/* ------------------------------------------
   この事業でできること
------------------------------------------ */
.fg-capabilities {
  padding: 100px 0 0; /* 下余白は 制作・施工の流れ側の padding-top に寄せている（PC） */
  background-color: #fff;
}

.fg-capabilities__container {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 16px;
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 16px;
  margin-top: -193px;
  background: #fff;
  background-color: #fff;
  z-index: 1;
  position: relative;
  padding-top: 80px;
}

.fg-capabilities__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
}

.fg-capability-item {
  padding: 40px 0 48px;
  text-align: center;
}

.fg-capability-item__num {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 48px;
  color: #1d2e45;
  letter-spacing: 0;
  margin: 0 0 20px;
  line-height: 1.6;
}

.fg-capability-item__num::after {
  content: "";
  display: block;
  width: 80px;
  height: 2px;
  background-color: #b0cadb;
  margin: 16px auto 0;
}

.fg-capability-item__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 21px;
  color: #1d2e45;
  letter-spacing: 1.1px;
  line-height: 1.6;
  margin: 0 0 20px;
  letter-spacing: 0;
}

.fg-capability-item__desc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #1d2e45;
  letter-spacing: 0.45px;
  line-height: 1.8;
  margin: 0;
  text-align: left;
}

/* PC：Figma に合わせる（4列 260px・列の間 40px＝全体 1160px、左右の余白なし／
   数字→線 20px・線→タイトル 24px 前後／タイトル 22px・字間 1.1px／タイトル→説明 10px） */
@media (min-width: 1025px) {
  .fg-capabilities__container {
    padding-left: 0;
    padding-right: 0;
  }
  .fg-capability-item__num {
    margin-bottom: 22px;
  }
  .fg-capability-item__num::after {
    margin-top: 20px;
  }
  .fg-capability-item__title {
    font-size: 22px;
    letter-spacing: 1.1px;
    margin-bottom: 10px;
  }
}

/* ------------------------------------------
   施工の流れ
------------------------------------------ */
.fg-flow {
  /* 上: 「この事業でできること」の説明文下端 → 見出し上端 = 111px（項目の下余白48px + 63px） */
  padding: 63px 0 80px;
  background-color: #fff;
}

.fg-flow__container {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 16px;
}

.fg-flow__header {
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 1;
  margin-bottom: -24px;
}

.fg-flow__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 32px;
  color: #1d2e45;
  letter-spacing: 0.96px;
  line-height: 1.5;
  margin: 0;
  padding: 0 24px;
  background-color: #fff;
  white-space: nowrap;
}

.fg-flow__frame {
  border: 2px solid #b0cadb;
  padding: 56px 50px 60px;
  padding-left: 23px;
  padding-right: 23px;
}

.fg-flow__intro {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 20px;
  color: #1d2e45;
  letter-spacing: 0.6px;
  line-height: 1.6;
  text-align: center;
  margin: 0 0 52px;
}

.fg-flow__steps {
  display: flex;
  align-items: flex-start;
}

.fg-flow__step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  position: relative;
}

.fg-flow__step-header {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 6px;
  margin-bottom: 4px;
}

.fg-flow__step-circle {
  width: 36px;
  height: 36px;
  aspect-ratio: 1 / 1;
  border: 1px solid #000;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.fg-flow__step-num {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 17px;
  color: #1d2e45;
  letter-spacing: 0.51px;
  line-height: 1.5;
  text-align: center;
  margin: 0;
}

.fg-flow__step-icon {
  width: 76px;
  height: 67px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fg-flow__step-icon img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.fg-flow__step-title {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 17px;
  color: #1d2e45;
  letter-spacing: 0.51px;
  line-height: 1.5;
  text-align: center;
  margin: 0;
  width: 100%;
  white-space: nowrap;
}

.fg-flow__step-desc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #1d2e45;
  letter-spacing: 0.42px;
  line-height: 1.6;
  margin: 0;
}

.fg-flow__step-break--sp {
  display: none;
}

.fg-flow__step-arrow {
  flex-shrink: 0;
  padding-top: 49px;
  display: flex;
  align-items: flex-start;
  margin-left: 17px;
  margin-right: 13px;
}

/* PC：Figma に合わせる（枠は 1160px・左右の余白なし。内側 24px／各ステップ幅 153px・矢印の左右 14px。
   文章→ステップ 40px、枠の上 55px・下 35px、アイコンは丸の上端から 9px 下） */
@media (min-width: 1025px) {
  .fg-flow__container {
    padding-left: 0;
    padding-right: 0;
  }
  .fg-flow__frame {
    padding: 55px 24px 35px;
  }
  .fg-flow__intro {
    margin-bottom: 40px;
  }
  .fg-flow__step-arrow {
    margin-left: 14px;
    margin-right: 14px;
  }
  .fg-flow__step-header {
    margin-bottom: 1px;
  }
  .fg-flow__step-icon {
    margin-top: 9px;
  }
}

/* ------------------------------------------
   施工実績カード
------------------------------------------ */
.fg-works {
  padding: 80px 0 0; /* 下余白は よくある質問側の padding-top(100px) に寄せている（PC） */
  background-color: #fff;
}

.fg-works__container {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: "head cta" "cards cards";
  align-items: center;
  row-gap: 40px;
}

.fg-works__head {
  grid-area: head;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.fg-works__cta {
  grid-area: cta;
}

.fg-works__head-title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 28px;
  color: #1d2e45;
  letter-spacing: 0.04em;
  line-height: 1.4;
  margin: 0;
}

.fg-work-cards {
  grid-area: cards;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.fg-work-card {
  display: block;
  text-decoration: none;
  overflow: hidden;
  position: relative;
}

.fg-work-card__image {
  position: relative;
  overflow: hidden;
}

.fg-work-card__image img {
  display: block;
  width: 100%;
  height: 260px;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.fg-work-card:hover .fg-work-card__image img {
  transform: scale(1.04);
}

.fg-work-card__overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 360px;
  max-width: 100%;
  min-height: 77px;
  box-sizing: border-box;
  padding: 12px 20px;
  background-color: rgba(29, 46, 69, 0.8);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.fg-work-card__text {
  flex: 1;
}

.fg-work-card__category {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.42px;
  line-height: 1.8;
  margin: 0 0 2px;
}

.fg-work-card__title {
  font-family: "Shippori Mincho", serif;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  margin: 0;
  line-height: 1.5;
  letter-spacing: 0.66px;
}

.fg-work-card__chevron {
  flex-shrink: 0;
  width: 6px;
  height: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  margin-left: 12px;
}

/* 共通アウトラインボタン */
.fg-btn-outline {
  display: inline-block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #1d2e45;
  border: 1px solid #1d2e45;
  padding: 14px 48px;
  text-decoration: none;
  letter-spacing: 0.08em;
  transition:
    background-color 0.3s ease,
    color 0.3s ease;
}

.fg-btn-outline:hover {
  background-color: #1d2e45;
  color: #fff;
}

/* ------------------------------------------
   よくある質問
------------------------------------------ */
.fg-faq {
  padding: 100px 0; /* 上: 施工実績カードの下端 → 見出しの上端 = 100px */
  background-color: #fff;
}

/* デザインにはPCでも英語ラベル（FAQ）が無いため非表示（SPと同じ） */
.fg-faq .fg-section-header__en {
  display: none;
}

.fg-faq__container {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 16px;
}

.fg-faq__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin: 0;
  align-items: start;
}

.fg-faq__item {
  border: 2px solid #b0cadb;
}

.fg-faq__question {
  display: flex;
  align-items: center;
  height: 56px;
  padding: 0 30px 0 25px;
  gap: 13px;
  cursor: pointer;
  user-select: none;
}

.fg-faq__question:hover .fg-faq__q-text {
  opacity: 0.75;
}

.fg-faq__q-mark {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: #1d2e45;
  color: #fff;
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.48px;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.fg-faq__q-text {
  flex: 1;
  font-family: "Shippori Mincho", serif;
  font-size: 16px;
  font-weight: 700;
  color: #1d2e45;
  line-height: 1.5;
  letter-spacing: 0.48px;
  transition: opacity 0.2s;
}

.fg-faq__icon {
  flex: 0 0 auto;
  width: 16px;
  height: 10px;
  position: relative;
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease;
}

.fg-faq__icon::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-right: 1.5px solid #1d2e45;
  border-bottom: 1.5px solid #1d2e45;
  transform: rotate(45deg) translateY(-3px);
  transition: transform 0.3s ease;
}

.fg-faq__question[aria-expanded="true"] .fg-faq__icon::before {
  transform: rotate(225deg) translateY(-3px);
}

.fg-faq__answer {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 0 24px;
  margin: 0;
  border-top: 1px solid rgba(29, 46, 69, 0.1);
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition:
    max-height 0.35s ease,
    opacity 0.3s ease,
    padding 0.3s ease;
}

.fg-faq__item.is-open .fg-faq__answer {
  max-height: 300px;
  opacity: 1;
  padding: 4px 24px 24px;
}

.fg-faq__a-mark {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: rgba(29, 46, 69, 0.12);
  color: #1d2e45;
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 32px;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
}

.fg-faq__a-text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #0e212f;
  line-height: 1.5;
  letter-spacing: 0.45px;
  padding-top: 12px;
}

/* PC：Figma に合わせる（見出しのアイコン直下／施工実績／よくある質問）
   ・見出し：アイコンの直下にタイトル（余白0）、タイトル→説明 30px
   ・施工実績：カードは 360×250・間隔 40px、左右の余白なし（1160px）、見出し 32px
   ・よくある質問：2列 560px・間隔 40px（縦 20px）、閉じた状態 56px */
@media (min-width: 1025px) {
  .fg-section-header__icon {
    margin-bottom: 0;
  }
  .fg-section-header__title {
    margin-bottom: 30px;
  }

  .fg-works {
    padding-top: 42px;
  }
  .fg-works__container {
    padding-left: 0;
    padding-right: 0;
  }
  .fg-works__head-title {
    font-size: 32px;
    letter-spacing: 0.96px;
    line-height: 1.5;
  }
  .fg-work-cards {
    gap: 40px;
  }
  .fg-work-card__image img {
    height: 250px;
  }

  .fg-faq__container {
    padding-left: 0;
    padding-right: 0;
  }
  .fg-faq .fg-section-header__title {
    font-size: 32px;
    letter-spacing: 0.96px;
    margin-bottom: 40px;
  }
  .fg-faq__list {
    gap: 20px 40px;
  }
  .fg-faq__question {
    height: 52px; /* 枠 2px×2 を足して 56px */
    padding: 0 13px 0 23px;
  }
  .fg-faq__icon {
    width: 12px;
    height: 7px;
  }
  .fg-faq__icon::before {
    width: 8.5px;
    height: 8.5px;
  }
  .fg-faq__item.is-open .fg-faq__answer {
    padding: 12px 27px 12px 23px;
    gap: 13px;
  }
  .fg-faq__a-mark {
    width: 28px;
    height: 28px;
    line-height: 28px;
    margin-top: 9px;
  }
  .fg-faq__a-text {
    padding-top: 0;
  }
}

/* ------------------------------------------
   資料請求・お問い合わせ CTA
------------------------------------------ */
.fg-cta {
  padding: 100px 0;
  background-color: #0e212f;
}

.fg-cta__inner {
  max-width: 680px;
  margin: 0 auto;
  padding: 0 16px;
  text-align: center;
}

.fg-cta__en {
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.15em;
  color: #968971;
  text-transform: uppercase;
  margin: 0 0 16px;
  line-height: 1;
}

.fg-cta__title {
  font-family: "Shippori Mincho", serif;
  font-weight: 600;
  font-size: 30px;
  color: #fff;
  letter-spacing: 2px;
  line-height: 1.4;
  margin: 0 0 28px;
}

.fg-cta__desc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.75);
  line-height: 2.2;
  margin: 0 0 44px;
}

.fg-cta__btn {
  display: inline-block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #0e212f;
  background-color: #fff;
  padding: 16px 56px;
  text-decoration: none;
  letter-spacing: 0.08em;
  transition:
    background-color 0.3s ease,
    color 0.3s ease;
  margin-bottom: 48px;
}

.fg-cta__btn:hover {
  background-color: #968971;
  color: #fff;
}

.fg-cta__tel {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: 40px;
}

.fg-cta__tel-label {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.6);
  margin: 0 0 12px;
  letter-spacing: 0.05em;
}

.fg-cta__tel-number {
  display: block;
  font-family: "Roboto", sans-serif;
  font-weight: 600;
  font-size: 32px;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.05em;
  margin: 0 0 8px;
  line-height: 1;
}

.fg-cta__tel-hours {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.5);
  margin: 0;
  letter-spacing: 0.03em;
}

/* ==========================================
   SP (max-width: 560px)
   ========================================== */
@media (max-width: 560px) {
  /* ------------------------------------------
     共通: セクションヘッダー
  ------------------------------------------ */
  .fg-section-header__icon {
    width: 100px;
    height: auto;
    /* margin-bottom: 16px; */
    margin-bottom: 0;
  }

  .fg-section-header__title {
    font-size: 22px;
    letter-spacing: 0.66px;
    line-height: 1.5;
    margin-bottom: 20px;
  }

  .fg-section-header__desc {
    font-size: 15px;
    letter-spacing: 0.45px;
    line-height: 1.75;
  }

  /* 漁法・用途に応じた漁網／この事業でできること：説明文 18px / 160%（28.8px） */
  .fg-nets .fg-section-header__desc,
  .fg-capabilities .fg-section-header__desc {
    font-size: 18px;
    letter-spacing: 0.54px;
    line-height: 160%;
  }

  .fg-section-header__desc-break--sp {
    display: inline;
  }

  .fg-section-header__desc-break--pc {
    display: none;
  }

  /* ------------------------------------------
     ヒーロー
  ------------------------------------------ */
  .fg-hero {
    padding: 40px 0 50px;
  }

  .fg-hero__inner {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
    padding: 0 22px;
  }

  .fg-hero__text {
    flex: none;
  }

  .fg-hero__heading {
    font-size: 24px;
    letter-spacing: 0.72px;
    line-height: 150%; /* 36px */
    margin-bottom: 20px;
  }

  .fg-hero__heading-break--sp {
    display: inline;
  }

  .fg-hero__heading-break--pc {
    display: none;
  }

  .fg-hero__body {
    font-size: 15px;
    letter-spacing: 0.45px;
    line-height: 1.8;
  }

  .fg-hero__image {
    flex: none;
  }

  .fg-hero__img {
    height: 230px;
  }

  /* ------------------------------------------
     漁法・用途に応じた漁網
  ------------------------------------------ */
  .fg-nets {
    padding: 60px 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  .fg-nets__container {
    padding: 0 22px;
  }

  .fg-nets .fg-section-header {
    margin-bottom: 0;
  }

  .fg-nets__group {
    margin-bottom: 50px;
  }

  .fg-nets__group-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 20px;
  }

  .fg-nets__group-title {
    font-size: 22px;
    letter-spacing: 0.66px;
    flex: none;
    white-space: normal;
    margin: 30px auto 0;
  }

  /* 一般漁網のカード下 → 養殖網タイトルまで 50px（グループ間余白50px＋タイトル上余白0） */
  .fg-nets .fg-nets__group + .fg-nets__group .fg-nets__group-title {
    margin-top: 0;
  }

  .fg-nets__group-info {
    padding-top: 0;
  }

  .fg-nets__group-desc {
    font-size: 16px;
    letter-spacing: 0.48px;
    line-height: 160%; /* 25.6px */
  }

  .fg-nets__group-desc-break--sp {
    display: inline;
  }

  .fg-nets__group-desc-break--pc {
    display: none;
  }

  .fg-net-cards {
    gap: 16px;
  }

  .fg-net-card {
    flex-direction: column;
    height: auto;
    padding: 30px 24px;
    gap: 0;
  }

  .fg-net-card__title {
    font-size: 20px;
    letter-spacing: 0.6px;
    margin: 0 0 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid #1d2e45;
  }

  .fg-net-card__sep {
    display: none;
  }

  .fg-net-card__desc {
    letter-spacing: 0.42px;
    line-height: 1.75;
    margin-bottom: 16px;
    color: #1d2e45;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.45px;
  }

  .fg-net-card__products-label,
  .fg-net-card__products-items {
    letter-spacing: 0.39px;
    color: #1d2e45;
    font-size: 15px;
    font-weight: 500;
    line-height: 150%; /* 22.5px */
    letter-spacing: 0.45px;
  }

  .fg-net-card__image {
    flex: none;
    justify-content: center;
    margin-top: 20px;
  }

  .fg-net-card__image img {
    width: 100%;
    height: 160px;
  }

  .fg-net-cards--two {
    flex-direction: column;
    gap: 16px;
  }

  .fg-net-cards--two .fg-net-card__image img {
    height: 160px;
  }

  .fg-net-cards--two .fg-net-card__text {
    padding: 0;
  }

  /* ------------------------------------------
     漁具
  ------------------------------------------ */
  .fg-tools {
    padding: 60px 0;
    padding-top: 20px;
  }

  .fg-tools__container {
    padding: 0 22px;
  }

  .fg-tool-cards {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .fg-tool-card__image {
    padding: 0 24px;
    margin-bottom: 15px;
  }

  .fg-tool-card__image img {
    height: 160px;
  }

  .fg-tool-card__text {
    padding: 0 24px 30px;
  }

  .fg-tool-card__title {
    order: -1;
    font-size: 19px;
    padding: 20px 24px 0;
    margin: 0 0 16px;
  }

  .fg-tool-card__desc {
    font-family: "Noto Sans JP";
    color: #1d2e45;
    font-size: 15px;
    font-weight: 500;
    line-height: 160%;
    letter-spacing: 0.45px;
    margin: 0 0 15px;
  }

  .fg-tool-card__products {
    font-size: 12px;
  }

  /* ------------------------------------------
     施工実績フォトギャラリー
  ------------------------------------------ */
  .fg-gallery {
    --fg-gallery-w: 267px;
    --fg-gallery-h: 180px;
    --fg-gallery-sec: 5s;
  }

  /* ------------------------------------------
     この事業でできること
  ------------------------------------------ */
  .fg-capabilities {
    padding: 0 0 60px;
    display: flow-root; /* 見出しの負マージンでセクション全体が上に動かないようにする */
  }

  .fg-capabilities__container {
    padding: 0 22px;
    margin-top: 0; /* PC用の負マージンを解除 */
    background: transparent; /* 白い帯（見出し）だけを写真に重ねる */
    display: flow-root;
  }

  .fg-capabilities .fg-section-header {
    position: relative;
    z-index: 2;
    background: #fff;
    margin-top: -26px; /* 白い帯だけが写真ギャラリーの下端に 26px 重なる（セクション全体は重ねない） */
    padding-top: 20px;
  }

  .fg-capabilities__grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .fg-capability-item {
    display: block;
    padding: 32px 0 0;
    border-bottom: none;
    text-align: center;
  }

  .fg-capability-item:last-child {
    border-bottom: none;
  }

  .fg-capability-item__num {
    font-size: 32px;
    margin: 0;
    color: #1d2e45;
    font-weight: 700;
    line-height: 1.6;
  }

  .fg-capability-item__num::after {
    display: block;
    width: 70px;
    height: 2px;
    background-color: hsl(204, 37%, 77%);
    margin: 3px auto 10px; /* 数字 → 下線 3px／下線 → タイトル 10px */
  }

  .fg-capability-item__title {
    font-size: 20px;
    color: #1d2e45;
    font-weight: 700;
    letter-spacing: 1px;
    line-height: 1.6;
    margin: 0 0 8px;

    white-space: normal;
  }

  .fg-capability-item__title-break--pc {
    display: none;
  }

  .fg-capability-item__desc {
    margin: 0;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 160%;
    letter-spacing: 0.42px;
    text-align: left;
  }

  /* ------------------------------------------
     施工の流れ
  ------------------------------------------ */
  .fg-flow {
    padding: 0 0 60px;
  }

  .fg-flow__container {
    padding: 0 22px;
  }

  .fg-flow__header {
    margin-bottom: -18px;
  }

  .fg-flow__title {
    font-size: 22px;
    letter-spacing: 0.66px;
    padding: 0 16px;
  }

  .fg-flow__frame {
    padding: 36px 20px 30px;
  }

  .fg-flow__intro {
    font-size: 14px;
    letter-spacing: 0.42px;
    line-height: 1.7;
    margin-bottom: 30px;
    text-align: left;
  }

  .fg-flow__steps {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: start;
    row-gap: 28px;
  }

  .fg-flow__step-arrow:nth-child(4),
  .fg-flow__step-arrow:nth-child(8) {
    display: none;
  }

  .fg-flow__step-arrow {
    padding-top: 18px;
    margin-left: 6px;
    margin-right: 6px;
  }

  .fg-flow__step-header {
    display: grid;
    justify-items: center;
    align-items: center;
    position: relative;
    gap: 0;
  }

  .fg-flow__step-icon {
    grid-row: 1;
    grid-column: 1;
    width: auto;
    height: 56px;
  }

  .fg-flow__step-icon img {
    width: auto;
    height: 100%;
    max-width: none;
  }

  .fg-flow__step-circle {
    grid-row: 1;
    grid-column: 1;
    justify-self: start;
    align-self: start;
    width: 30px;
    height: 30px;
    aspect-ratio: 1 / 1;
    border: 1px solid #000;
    transform: translate(-40%, -40%);
    margin-left: 15px;
    margin-top: -11px;
  }

  .fg-flow__step-num {
    color: #1d2e45;
    text-align: center;
    font-family: "Shippori Mincho", serif;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.45px;
  }

  .fg-flow__step-title {
    font-size: 13px;
    letter-spacing: 0.39px;
    white-space: normal;
  }

  .fg-flow__step-desc {
    font-size: 13px;
    font-style: normal;
    font-weight: 500;
    line-height: 160%;
    letter-spacing: 0.39px;
    text-align: left;
  }

  .fg-flow__step-break--sp {
    display: inline;
  }

  /* ------------------------------------------
     施工実績カード
  ------------------------------------------ */
  .fg-works {
    padding: 0 0 60px 0;
  }

  .fg-works__container {
    display: block;
    padding: 0 22px;
  }

  .fg-works__head {
    display: block;
    margin-bottom: 24px;
  }

  .fg-works__cta {
    display: flex;
    width: 240px;
    height: 52px;
    margin: 32px auto 0;
    font-size: 16px;
    letter-spacing: 0.48px;
    line-height: 1.6;
  }

  .fg-works__cta .top-business__cta-arrow {
    width: 20px;
    height: 8px;
  }

  .fg-works__head-title {
    font-size: 22px;
    white-space: nowrap;
  }

  .fg-work-cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .fg-work-card__image img {
    height: 220px;
  }

  .fg-work-card__overlay {
    width: 100%;
  }

  .fg-work-card__overlay {
    height: auto;
    min-height: 77px;
    padding: 16px 20px;
  }

  .fg-work-card__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .fg-work-card__category {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.8;
    letter-spacing: 0.42px;
    order: 2;
  }

  .fg-work-card__title {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.54px;
    order: 1;
  }

  /* ------------------------------------------
     よくある質問
  ------------------------------------------ */
  .fg-faq {
    padding: 0 0 60px 0;
  }

  .fg-faq__container {
    padding: 0 22px;
  }

  .fg-faq .fg-section-header {
    text-align: left;
  }

  .fg-faq .fg-section-header__en {
    display: none;
  }

  .fg-faq .fg-section-header__title {
    color: #1d2e45;
    font-family: "Shippori Mincho", serif;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0.72px;
  }

  .fg-faq__list {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .fg-faq__question {
    height: auto;
    min-height: 56px;
    padding: 14px 4px 14px 18px; /* 右を詰めて矢印を右寄せ（質問文の幅 約241px） */
    gap: 10px;
  }

  .fg-faq__q-text {
    font-size: 15px;
    line-height: 150%; /* 22.5px */
    letter-spacing: 0.45px;
  }

  .fg-faq__answer {
    padding: 0 16px;
    gap: 12px;
  }

  .fg-faq__item.is-open .fg-faq__answer {
    padding: 4px 16px 20px;
  }

  .fg-faq__a-text {
    font-size: 13px;
  }
}

/* ------------------------------------------
   管理画面の [sp] / [pc] 改行（スマホのみ／PCのみ）共通クラス
------------------------------------------ */
.fg-br--sp {
  display: none;
}

.fg-br--pc {
  display: inline;
}

@media (max-width: 560px) {
  .fg-br--sp {
    display: inline;
  }

  .fg-br--pc {
    display: none;
  }
}

/* 施工実績：該当カテゴリーの実績が無いとき */
.fg-works__empty {
  grid-area: cards;
  margin: 0;
  padding: 48px 0;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.48px;
  color: #1d2e45;
  background-color: #f4f6f9;
}

@media (max-width: 560px) {
  .fg-works__empty {
    padding: 32px 16px;
    font-size: 14px;
  }
}
