/* ----------------------------------
  全体の基本設定
---------------------------------- */
body {
  margin: 0;
  font-family: "Helvetica", "Arial", sans-serif;
  line-height: 1.7;
  color: #333;
  background: #ffffff; /* 全体背景 白 */
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

section {
  padding: 100px 20px;
  max-width: 1200px;
  margin: auto;
}

.section-title {
  text-align: center;
  font-size: 28px;
  margin-bottom: 40px;
  color: #1c6085;
  font-weight: bold;
}

/* ----------------------------------
  固定ヘッダー（白背景）
---------------------------------- */
header {
  width: 100%;
  background: #ffffff;  /* 白背景 */
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  padding: 12px 20px;
  box-sizing: border-box;
  border-bottom: 1px solid #e5e5e5;
}

.header-inner {
  max-width: 1200px;
  margin: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo {
  font-size: 20px;
  font-weight: bold;
  color: #1c6085;
}

/* PCナビ */
.nav ul {
  display: flex;
}
.nav a:hover {
  opacity: 0.6;
}
@media (max-width: 768px) {
  .nav ul {
    display: none;
  }
}

/* ----------------------------------
  スマホ用ハンバーガー
---------------------------------- */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
}

.hamburger span {
  width: 26px;
  height: 3px;
  background: #1c6085; /* 白背景に合わせた濃色 */
  transition: 0.3s;
}

/* スマホメニュー */
#sp-menu {
  display: none;
  background: #ffffff;
  border-bottom: 1px solid #e5e5e5;
  text-align: center;
  padding: 20px 0;
}

#sp-menu ul {
  list-style: none;
  padding: 0;
}

#sp-menu li {
  margin: 15px 0;
}

#sp-menu a {
  color: #1c6085;
  font-size: 18px;
}

/* ハンバーガー ON */
.hamburger.active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
/* ハンバーガー hover（スマホ時のみ表示されるのでPCに影響なし） */
.hamburger:hover span {
  opacity: 0.7;
  transform: translateX(2px);
}
/* ハンバーガーメニュー内のリンク */
.nav-links {
    list-style: none;
    flex-direction: column;
    padding: 20px;
    align-items: flex-end; /* ★ 右寄せ */
        text-align: right; /* ★ これを追加 */
}

.nav-links li {
    margin: 15px 0;
}

.nav-links a {
    display: block;         /* ★ a をブロックにして全体をホバーに */
    width: 100%;            /* ★ 横幅いっぱいに */
    padding: 12px 20px;     /* ★ ホバー領域を広く */
    text-decoration: none;
    font-size: 18px;
}

/* ホバー時の背景 */
.nav-links a:hover {
    background: #eee;       /* ★ 大きく反応するように */
}

/* ----------------------------------
  HERO
---------------------------------- */
.hero {
  padding: 180px 20px 120px;
  text-align: center;
  background: #1c6085;
  color: #fff;
}

.hero h1 {
  font-size: 34px;
  margin-bottom: 10px;
}

.btn-area {
  margin-top: 25px;
}

.btn {
  background: #fff;
  color: #1c6085;
  padding: 10px 28px;
  border-radius: 30px;
  display: inline-block;
  margin: 5px;
  font-weight: bold;
  transition: 0.3s;
}

.btn:hover {
  background: #e9f4f9;
}

/* ----------------------------------
  ABOUT
---------------------------------- */
.about {
  max-width: 800px;
  margin: auto;
  font-size: 16px;
}

/* ----------------------------------
  WORKS（カード枠）
---------------------------------- */
/* WORKS グリッド */
.works-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
  margin-top: 30px;
}

.work-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.work-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.15);
}

/* 画像 */
.work-card img {
  width: 100%;
  transition: transform 0.4s ease, opacity 0.4s ease;
}

.work-card:hover img {
  transform: scale(1.05);
  opacity: 0.85;
}

/* タイトル */
.work-title {
  padding: 15px 12px;
  background: #1c6085;
  color: #fff;
  text-align: center;
  font-size: 16px;
  transition: background 0.3s;
}

.work-card:hover .work-title {
  background: #144a66;
}
/* h3 カテゴリタイトル装飾 */
.works-cat {
  font-size: 22px;
  font-weight: 700;
  margin: 50px 0 20px;
  padding-left: 12px;        /* 左ラインのための余白 */
  border-left: 5px solid #1c6085; /* 左の色付きライン */
  color: #1c6085;
}


/* ----------------------------------
  SERVICE
---------------------------------- */
.service-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}

.service-item {
  background: #f4f8fa;
  padding: 25px;
  border-radius: 12px;
}

.service-item h3 {
  color: #1c6085;
  margin-bottom: 10px;
}

/* ----------------------------------
  CONTACT
---------------------------------- */
.contact {
  text-align: center;
}

.contact a {
  display: inline-block;
  padding: 12px 30px;
  background: #1c6085;
  color: #fff;
  border-radius: 30px;
  margin-top: 15px;
  transition: 0.3s;
}

.contact a:hover {
  background: #144a66;
}

/* ----------------------------------
  SP（スマホ対応）
---------------------------------- */
@media (max-width: 768px) {

  nav ul {
    display: none; /* PCナビ非表示 */
  }

  .hamburger {
    display: flex; /* SP表示 */
  }

  /* スマホメニューはJSでON/OFF */
  #sp-menu {
    display: none;
  }

  .works-grid {
    grid-template-columns: 1fr; /* 1列 */
  }

  .service-list {
    grid-template-columns: 1fr;
  }

  .hero h1 {
    font-size: 28px;
  }

  section {
    padding: 80px 20px;
  }
}