/* ============================================================
   service-detail.css — サービス詳細ページ共通スタイル
   /services/*/ 配下の各ページから読み込む共通CSS
   ============================================================ */

/* ヘッダー：TOPページと同様、初期は透明＋白ロゴ、スクロールで白背景＋濃色ロゴ */
.service-detail-page .header.is-scrolled {
  background: rgba(255,255,255,.97) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 var(--color-border);
}
.service-detail-page .header.is-scrolled .header__logo-img { filter: none !important; }
.service-detail-page .header.is-scrolled .header__nav-link { color: var(--color-navy) !important; }
.service-detail-page .header.is-scrolled .header__hamburger-line { background: var(--color-navy) !important; }

/* ヘッダー下の境界ライン（ヒーロー上に乗っている間のみ・控えめなグラデーション） */
.service-detail-page .header::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(29,158,117,.45) 20%,
    rgba(35,96,172,.35) 50%,
    rgba(29,158,117,.45) 80%,
    transparent 100%
  );
  opacity: 1;
  transition: opacity .3s var(--ease-smooth);
  pointer-events: none;
}
.service-detail-page .header.is-scrolled::after {
  opacity: 0;
}
/* モバイル：スクロール後に白背景（TOPページと同様） */
@media (max-width: 768px) {
  .service-detail-page .header.is-scrolled {
    background: rgba(255,255,255,.97) !important;
    box-shadow: 0 1px 0 var(--color-border) !important;
  }
  .service-detail-page .header.is-scrolled .header__logo-img { filter: none !important; }
  .service-detail-page .header.is-scrolled .header__hamburger-line { background: var(--color-navy) !important; }
}

/* ===== ヒーロー（テキストエリア：写真なし・ネイビー無地） ===== */
.sd-hero {
  background: var(--color-navy);
  padding: calc(var(--header-h) + 40px) 0 40px;
  position: relative;
  overflow: hidden;
}
.sd-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 80% 20%, rgba(29,158,117,.12) 0%, transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.sd-hero > .container {
  position: relative;
  z-index: 1;
}

/* ===== 写真帯（ヒーロー直下・横幅100%の帯） ===== */
.sd-hero-photo {
  width: 100%;
  height: 350px;
  background-color: var(--color-navy);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
}
/* 写真の上下に軽いフェードを入れて前後セクションと自然につなげる */
.sd-hero-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(15, 30, 48, 0.18) 0%,
    rgba(15, 30, 48, 0) 30%,
    rgba(15, 30, 48, 0) 70%,
    rgba(15, 30, 48, 0.25) 100%
  );
}

/* 画像未準備のページ用フォールバック */
.sd-hero-photo--noimg {
  background-image: none !important;
  background: linear-gradient(120deg, #16294a 0%, #1a2e4a 50%, #14253f 100%);
}
.sd-breadcrumb {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: rgba(255,255,255,.4);
  margin-bottom: var(--space-8);
  padding-bottom: var(--space-6);
}
.sd-breadcrumb::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 64px;
  height: 1px;
  background: linear-gradient(90deg, rgba(29,158,117,.6), transparent);
}
.sd-breadcrumb a { color: rgba(255,255,255,.55); transition: color .2s; }
.sd-breadcrumb a:hover { color: var(--color-teal); }
.sd-hero__num {
  position: relative;
  display: inline-block;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2em;
  color: var(--color-teal);
  margin-bottom: var(--space-4);
}
.sd-hero__title {
  position: relative;
  font-family: var(--font-sans);
  font-size: clamp(28px, 4.5vw, 46px);
  font-weight: 900;
  color: white;
  line-height: 1.3;
  margin-bottom: var(--space-5);
  letter-spacing: -.01em;
}
.sd-hero__catch {
  position: relative;
  font-size: 15px;
  font-weight: 700;
  color: var(--color-teal-light);
  margin-bottom: var(--space-5);
}
.sd-hero__lead {
  position: relative;
  font-size: 14px;
  color: rgba(255,255,255,.6);
  line-height: 1.9;
  max-width: 640px;
}

/* ===== こんなお悩み ===== */
.sd-problems { padding: var(--space-24) 0; background: var(--color-white); }
.sd-problems__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-4);
}
.sd-problem {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6) var(--space-7);
  background: var(--color-off-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.sd-problem__icon {
  flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: var(--radius-sm);
  background: var(--color-teal-bg);
  color: var(--color-teal);
  display: flex; align-items: center; justify-content: center;
}
.sd-problem p { font-size: 13.5px; color: var(--color-text-mid); line-height: 1.8; padding-top: 8px; }

/* ===== 対応内容 ===== */
.sd-services { padding: var(--space-24) 0; background: var(--color-bg); }
.sd-services__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
}
.sd-service-item {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  transition: transform .3s var(--ease-out), box-shadow .3s;
}
.sd-service-item:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.sd-service-item__title {
  font-family: var(--font-sans);
  font-size: 17px; font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-3);
  line-height: 1.5;
}
.sd-service-item__desc { font-size: 14px; color: var(--color-text-mid); line-height: 1.9; }

/* ===== 関連実績 ===== */
.sd-works { padding: var(--space-24) 0; background: var(--color-white); }
.sd-works__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}
.sd-work-card {
  display: block;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border);
  text-decoration: none;
  color: inherit;
  transition: transform .3s var(--ease-out), box-shadow .3s;
}
.sd-work-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-xl); }
.sd-work-card__img {
  position: relative;
  aspect-ratio: 16/10;
  background-color: var(--color-navy);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.sd-work-card__tag {
  position: absolute;
  top: var(--space-3); left: var(--space-3);
  background: var(--color-teal);
  color: white;
  font-size: 10px; font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--radius-full);
  letter-spacing: .04em;
}
.sd-work-card__body { padding: var(--space-6) var(--space-6) var(--space-7); }
.sd-work-card__body h3 {
  font-family: var(--font-sans);
  font-size: 14px; font-weight: 700;
  color: var(--color-navy);
  margin-bottom: var(--space-2);
  line-height: 1.5;
}
.sd-work-card__body p { font-size: 12.5px; color: var(--color-text-mid); line-height: 1.8; }
.sd-works__more { text-align: center; margin-top: var(--space-10); }

/* ===== ご相談の流れ ===== */
.sd-flow { padding: var(--space-24) 0; position: relative; overflow: hidden; }
.sd-flow__bg {
  position: absolute; inset: 0;
  background: var(--color-navy);
}
.sd-flow__bg::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 20% 50%, rgba(29,158,117,.1) 0%, transparent 60%);
}
.sd-flow__steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
}
.sd-flow__step {
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: var(--radius-lg);
  padding: var(--space-7);
  backdrop-filter: blur(8px);
  transition: background .3s, border-color .3s, transform .3s var(--ease-out);
}
.sd-flow__step:hover {
  background: rgba(255,255,255,.09);
  border-color: rgba(29,158,117,.25);
  transform: translateY(-4px);
}
.sd-flow__num {
  display: block;
  font-family: var(--font-display);
  font-size: 22px; font-weight: 900;
  color: var(--color-teal);
  margin-bottom: var(--space-4);
}
.sd-flow__step h3 {
  font-family: var(--font-sans);
  font-size: 15px; font-weight: 700;
  color: white;
  margin-bottom: var(--space-3);
}
.sd-flow__step p { font-size: 12.5px; color: rgba(255,255,255,.55); line-height: 1.85; }

/* ===== FAQ ===== */
.sd-faq { padding: var(--space-24) 0; background: var(--color-bg); }

/* ===== CTA ===== */
.sd-cta { padding: var(--space-24) 0; position: relative; overflow: hidden; background: var(--color-navy); }
.sd-cta__bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, rgba(29,158,117,.12) 0%, transparent 55%);
  pointer-events: none;
}
.sd-cta__inner {
  position: relative;
  text-align: center;
  max-width: 560px;
  margin: 0 auto;
}
.sd-cta__label {
  font-family: var(--font-display);
  font-size: 11px; font-weight: 700;
  letter-spacing: .2em;
  color: var(--color-teal);
  margin-bottom: var(--space-4);
}
.sd-cta__title {
  font-family: var(--font-sans);
  font-size: clamp(22px, 3.5vw, 32px);
  font-weight: 900;
  color: white;
  line-height: 1.4;
  margin-bottom: var(--space-4);
}
.sd-cta__sub { font-size: 14px; color: rgba(255,255,255,.6); line-height: 1.8; margin-bottom: var(--space-8); }
.sd-cta__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: var(--space-6);
  padding: 10px 24px;
  border-radius: var(--radius-full);
  border: 1.5px solid rgba(255,255,255,.25);
  font-size: 13px;
  font-weight: 500;
  color: rgba(255,255,255,.7);
  transition: all .25s var(--ease-smooth);
}
.sd-cta__back:hover {
  color: white;
  border-color: rgba(255,255,255,.6);
  background: rgba(255,255,255,.06);
  transform: translateY(-2px);
}

/* ===== その他のサービス（FAQ後・CTA前） ===== */
.sd-other-services {
  padding: var(--space-24) 0;
  background: var(--color-white);
}
.sd-other-services__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
}
.sd-other-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-3);
  padding: var(--space-7) var(--space-5);
  background: var(--color-off-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: inherit;
  transition: transform .25s var(--ease-out), box-shadow .25s, border-color .25s;
}
.sd-other-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: transparent;
}
.sd-other-card__icon {
  width: 44px; height: 44px;
  border-radius: var(--radius-sm);
  background: var(--color-teal-bg);
  color: var(--color-teal);
  display: flex;
  align-items: center;
  justify-content: center;
}
.sd-other-card__title {
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.5;
}
.sd-other-services__all {
  text-align: center;
  margin-top: var(--space-10);
}

/* ===== レスポンシブ ===== */
@media (max-width: 1024px) {
  .sd-works__grid { grid-template-columns: repeat(2, 1fr); }
  .sd-flow__steps { grid-template-columns: repeat(2, 1fr); }
  .sd-other-services__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .sd-hero { padding: calc(56px + 32px) 0 40px; }
  .sd-hero-photo { height: 200px; }
  .sd-problems, .sd-services, .sd-works, .sd-flow, .sd-faq, .sd-cta, .sd-other-services { padding: var(--space-16) 0; }
  .sd-problems__grid { grid-template-columns: 1fr; }
  .sd-services__grid { grid-template-columns: 1fr; }
  .sd-works__grid { grid-template-columns: 1fr; }
  .sd-flow__steps { grid-template-columns: 1fr; }
  .sd-other-services__grid { grid-template-columns: repeat(2, 1fr); }
}
