:root {
  --main-blue: #1e97f3;
  --sub-blue: #41a7f5;
  --accent-yellow: #ffd600;
  --white: #ffffff;
  --light-bg: #f4f8fb;
  --text-dark: #333333;
  --text-light: #666666;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.6;
  color: var(--text-dark);
  overflow-x: hidden;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Header */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: var(--white);
  z-index: 1000;
  box-shadow: 0 2px 20px rgba(30, 151, 243, 0.1);
  transition: all 0.3s ease;
}

.header.scrolled {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
}

.header-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 0;
}

.logo {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 1.2rem;
  color: var(--main-blue);
  text-decoration: none;
  line-height: 1.2;
}

.nav {
  display: flex;
  list-style: none;
  gap: 40px;
}

.nav a {
  text-decoration: none;
  color: var(--text-dark);
  font-weight: 700;
  transition: color 0.3s ease;
  position: relative;
}

.nav a:hover {
  color: var(--main-blue);
}

.nav a::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 0;
  height: 3px;
  background: var(--accent-yellow);
  transition: width 0.3s ease;
}

.nav a:hover::after {
  width: 100%;
}

.mobile-menu {
  display: none;
  background: none;
  border: none;
  font-size: 1.5rem;
  color: var(--main-blue);
  cursor: pointer;
}

/* Hero Section */
.hero {
  height: calc(100vh - 80px); /* ヘッダー分を引いて100vhを維持 */
  background: linear-gradient(
    135deg,
    var(--main-blue) 0%,
    var(--sub-blue) 100%
  );
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  margin-top: 80px; /* ヘッダーの高さ分のマージンを追加 */
}

/* 平行四辺形画像グリッド - 隙間なくくっつけて配置 */
.hero-image-grid {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  opacity: 0.25;
  overflow: hidden;
  padding: 40px;
}

/* 個別の平行四辺形スタイル - 正確な位置計算のため幅とスキューを調整 */
.hero-parallelogram {
  position: absolute;
  width: 33.33%; /* 3分割の正確な幅 */
  height: 52%;
  overflow: hidden;
  transform: skewX(-12deg); /* スキュー角度を調整 */
  transition: all 0.3s ease;
}

/* 上段の3つの平行四辺形 - 正確な3分割配置 */
.hero-para-1 {
  top: 0;
  left: 0;
  background: url("../images/architectural-building-model.jpg")
    center/cover;
}

.hero-para-2 {
  top: 0;
  left: 33.33%; /* 正確な3分割位置 */
  background: url("../images/architectural-floor-plan-design.jpg")
    center/cover;
}

.hero-para-3 {
  top: 0;
  left: 66.66%; /* 正確な3分割位置 */
  background: url("../images/presentation-with-plans-on-table.jpg")
    center/cover;
}

/* 下段の3つの平行四辺形 - 正確な3分割配置 */
.hero-para-4 {
  top: 48%;
  left: 0;
  background: url("../images/construction-site-team-photo.jpg")
    center/cover;
}

.hero-para-5 {
  top: 48%;
  left: 33.33%; /* 正確な3分割位置 */
  background: url("../images/young-architects-chiba-convention-group-photo.jpg")
    center/cover;
}

.hero-para-6 {
  top: 48%;
  left: 66.66%; /* 正確な3分割位置 */
  background: url("../images/committee-meeting-discussion.jpg")
    center/cover;
}

.hero-content {
  position: relative;
  z-index: 2;
  color: var(--white);
  max-width: 800px;
}

.hero-subtitle {
  font-size: 1.2rem;
  font-weight: 400;
  margin-bottom: 20px;
  opacity: 0.9;
}

.hero-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 4rem;
  line-height: 1.1;
  margin-bottom: 30px;
}

.hero-title .accent {
  color: var(--accent-yellow);
}

.hero-description {
  font-size: 1.3rem;
  margin-bottom: 40px;
  opacity: 0.9;
}

.btn-primary::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.3),
    transparent
  );
  transition: left 0.5s ease;
}

.btn-primary:hover::before {
  left: 100%;
}

.hero-decorations {
  position: absolute;
  top: 15%;
  right: 8%;
  width: 250px;
  height: 250px;
  background: linear-gradient(
    45deg,
    rgba(255, 255, 255, 0.1) 0%,
    rgba(255, 214, 0, 0.1) 100%
  );
  transform: skewX(-12deg);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
}

.hero-decorations::before {
  content: "";
  position: absolute;
  top: 50px;
  left: 50px;
  width: 100px;
  height: 100px;
  background: rgba(255, 255, 255, 0.15);
  transform: skewX(12deg);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
}

/* Enhanced Diagrid Structure Overlay */
.diagrid-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}

.diagrid-pattern {
  position: absolute;
  top: -100%;
  left: -100%;
  width: 300%;
  height: 300%;
  background-image: 
    /* Main diagrid - yellow */ linear-gradient(
      45deg,
      transparent 47%,
      rgba(255, 214, 0, 0.15) 48%,
      rgba(255, 214, 0, 0.15) 52%,
      transparent 53%
    ),
    linear-gradient(
      -45deg,
      transparent 47%,
      rgba(255, 214, 0, 0.1) 48%,
      rgba(255, 214, 0, 0.1) 52%,
      transparent 53%
    ),
    /* Secondary diagrid - white */
      linear-gradient(
        60deg,
        transparent 48%,
        rgba(255, 255, 255, 0.08) 49%,
        rgba(255, 255, 255, 0.08) 51%,
        transparent 52%
      ),
    linear-gradient(
      -60deg,
      transparent 48%,
      rgba(255, 255, 255, 0.06) 49%,
      rgba(255, 255, 255, 0.06) 51%,
      transparent 52%
    ),
    /* Tertiary diagrid - blue */
      linear-gradient(
        30deg,
        transparent 49%,
        rgba(30, 151, 243, 0.05) 49.5%,
        rgba(30, 151, 243, 0.05) 50.5%,
        transparent 51%
      ),
    linear-gradient(
      -30deg,
      transparent 49%,
      rgba(30, 151, 243, 0.05) 49.5%,
      rgba(30, 151, 243, 0.05) 50.5%,
      transparent 51%
    );
  background-size: 80px 80px, 80px 80px, 120px 120px, 120px 120px, 160px 160px,
    160px 160px;
  animation: diagridMove 15s linear infinite;
}

@keyframes diagridMove {
  0% {
    transform: translateX(0) translateY(0);
  }
  100% {
    transform: translateX(-80px) translateY(-80px);
  }
}

/* Deconstructivist Elements */
.decon-elements {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 1;
}

.decon-shape {
  position: absolute;
  background: rgba(255, 255, 255, 0.08);
  transform-origin: center;
  animation: deconFloat 8s ease-in-out infinite;
}

.decon-1 {
  width: 300px;
  height: 80px;
  top: 15%;
  right: 10%;
  transform: skewX(-30deg) rotate(15deg);
  clip-path: polygon(0% 0%, 85% 0%, 100% 100%, 15% 100%);
  animation-delay: 0s;
  background: rgba(255, 214, 0, 0.12);
}

.decon-2 {
  width: 250px;
  height: 100px;
  bottom: 20%;
  left: 5%;
  transform: skewY(20deg) rotate(-12deg);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
  animation-delay: -3s;
  background: rgba(255, 255, 255, 0.1);
}

.decon-3 {
  width: 180px;
  height: 120px;
  top: 55%;
  right: 20%;
  transform: skewX(25deg) rotate(50deg);
  clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);
  animation-delay: -5s;
  background: rgba(30, 151, 243, 0.08);
}

@keyframes deconFloat {
  0%,
  100% {
    transform: translateY(0) translateX(0) skewX(-25deg) rotate(12deg);
    opacity: 0.3;
  }
  50% {
    transform: translateY(-20px) translateX(10px) skewX(-20deg) rotate(15deg);
    opacity: 0.6;
  }
}

/* Structural Lines */
.structural-lines {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 1;
}

/* 挑戦的・建築的美学の構造線 */
.struct-line {
  position: absolute;
  transform-origin: left center;
  transition: all 0.3s ease;
}

/* 主構造線 - エネルギッシュな黄色（若者の挑戦） */
.line-1 {
  width: 60%;
  top: 20%;
  left: 40%;
  height: 4px;
  background: linear-gradient(
    90deg,
    rgba(255, 214, 0, 0.9) 0%,
    rgba(255, 180, 0, 0.7) 50%,
    rgba(255, 214, 0, 0.3) 100%
  );
  transform: rotate(-22deg);
  animation: youthfulPulse 2s ease-in-out infinite;
  box-shadow: 0 0 15px rgba(255, 214, 0, 0.6), 0 0 30px rgba(255, 214, 0, 0.3);
}

/* 支持構造線 - クールなブルー（建築的論理） */
.line-2 {
  width: 40%;
  top: 70%;
  left: 0%;
  height: 3px;
  background: linear-gradient(
    90deg,
    rgba(30, 151, 243, 0.8) 0%,
    rgba(65, 167, 245, 0.6) 70%,
    transparent 100%
  );
  transform: rotate(35deg);
  animation: architecturalFlow 3s ease-in-out infinite 0.7s;
  box-shadow: 0 0 12px rgba(30, 151, 243, 0.4), 0 0 20px rgba(30, 151, 243, 0.2);
}

/* 張力線 - ダイナミックな白（革新性） */
.line-3 {
  width: 55%;
  top: 40%;
  right: -5%;
  height: 5px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.8) 20%,
    rgba(255, 255, 255, 0.9) 80%,
    rgba(255, 255, 255, 0.4) 100%
  );
  transform: rotate(-40deg);
  animation: challengingThrust 2.5s ease-in-out infinite 1.2s;
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.4),
    0 0 35px rgba(255, 255, 255, 0.2);
}

/* 補強線 - 複合構造（建築的複雑性） */
.line-4 {
  width: 30%;
  top: 5%;
  left: 15%;
  height: 2px;
  background: linear-gradient(
    90deg,
    rgba(255, 214, 0, 0.6) 0%,
    rgba(255, 255, 255, 0.5) 50%,
    rgba(30, 151, 243, 0.4) 100%
  );
  transform: rotate(52deg);
  animation: structuralHarmony 4s ease-in-out infinite 1.8s;
  box-shadow: 0 0 8px rgba(255, 214, 0, 0.3);
}

/* 斜張線 - 建築的張力（美学的緊張感） */
.line-5 {
  width: 35%;
  bottom: 5%;
  right: 25%;
  height: 3px;
  background: linear-gradient(
    90deg,
    rgba(30, 151, 243, 0.7) 0%,
    rgba(255, 214, 0, 0.5) 60%,
    transparent 100%
  );
  transform: rotate(-65deg);
  animation: tensionWave 3.5s ease-in-out infinite 2.3s;
  box-shadow: 0 0 10px rgba(30, 151, 243, 0.3), 0 0 15px rgba(255, 214, 0, 0.2);
}

/* 革新線 - 若者の突破力 */
.line-6 {
  width: 25%;
  top: 55%;
  left: 25%;
  height: 6px;
  background: linear-gradient(
    90deg,
    rgba(255, 214, 0, 1) 0%,
    rgba(255, 255, 255, 0.8) 30%,
    rgba(255, 214, 0, 0.6) 70%,
    transparent 100%
  );
  transform: rotate(25deg);
  animation: breakthroughEnergy 1.8s ease-in-out infinite 2.8s;
  box-shadow: 0 0 25px rgba(255, 214, 0, 0.8), 0 0 40px rgba(255, 214, 0, 0.4);
  clip-path: polygon(0% 20%, 100% 0%, 100% 80%, 0% 100%);
}

/* 挑戦的な若者エネルギーのアニメーション */
@keyframes youthfulPulse {
  0%,
  100% {
    opacity: 0.7;
    transform: rotate(-22deg) scaleX(1);
    filter: brightness(1);
  }
  25% {
    opacity: 1;
    transform: rotate(-20deg) scaleX(1.2);
    filter: brightness(1.3);
  }
  75% {
    opacity: 0.9;
    transform: rotate(-24deg) scaleX(1.1);
    filter: brightness(1.1);
  }
}

/* 建築的流れの美学 */
@keyframes architecturalFlow {
  0%,
  100% {
    opacity: 0.6;
    transform: rotate(35deg) scaleX(1) scaleY(1);
  }
  33% {
    opacity: 0.9;
    transform: rotate(37deg) scaleX(1.1) scaleY(1.2);
  }
  66% {
    opacity: 0.8;
    transform: rotate(33deg) scaleX(1.05) scaleY(0.9);
  }
}

/* 挑戦的な突破力 */
@keyframes challengingThrust {
  0%,
  100% {
    opacity: 0.5;
    transform: rotate(-40deg) scaleX(1) translateX(0);
  }
  30% {
    opacity: 1;
    transform: rotate(-38deg) scaleX(1.3) translateX(5px);
  }
  70% {
    opacity: 0.8;
    transform: rotate(-42deg) scaleX(1.1) translateX(-3px);
  }
}

/* 構造的ハーモニー */
@keyframes structuralHarmony {
  0%,
  100% {
    opacity: 0.4;
    transform: rotate(52deg) scaleX(1);
  }
  40% {
    opacity: 0.8;
    transform: rotate(54deg) scaleX(1.15);
  }
  60% {
    opacity: 0.7;
    transform: rotate(50deg) scaleX(1.05);
  }
}

/* 建築的張力の波 */
@keyframes tensionWave {
  0%,
  100% {
    opacity: 0.5;
    transform: rotate(-65deg) scaleX(1) scaleY(1);
  }
  25% {
    opacity: 0.9;
    transform: rotate(-63deg) scaleX(1.2) scaleY(1.3);
  }
  75% {
    opacity: 0.7;
    transform: rotate(-67deg) scaleX(1.1) scaleY(0.8);
  }
}

/* 革新的突破エネルギー */
@keyframes breakthroughEnergy {
  0%,
  100% {
    opacity: 0.6;
    transform: rotate(25deg) scaleX(1) scale(1);
    filter: brightness(1) saturate(1);
  }
  50% {
    opacity: 1;
    transform: rotate(27deg) scaleX(1.4) scale(1.1);
    filter: brightness(1.5) saturate(1.3);
  }
}

/* About セクション - 斜めアニメーション */
@keyframes diagonalPulse {
  0%,
  100% {
    opacity: 0.6;
    transform: rotate(-30deg) skewX(-15deg) scaleX(1);
  }
  50% {
    opacity: 1;
    transform: rotate(-28deg) skewX(-12deg) scaleX(1.1);
  }
}

/* 斜め浮遊アニメーション（奇数） */
@keyframes diagonalFloat1 {
  0%,
  100% {
    transform: skewX(-8deg) translateY(-8px);
  }
  33% {
    transform: skewX(-9deg) translateY(-12px);
  }
  66% {
    transform: skewX(-7deg) translateY(-5px);
  }
}

/* 斜め浮遊アニメーション（偶数） */
@keyframes diagonalFloat2 {
  0%,
  100% {
    transform: skewX(-10deg) translateY(-5px);
  }
  40% {
    transform: skewX(-11deg) translateY(-3px);
  }
  60% {
    transform: skewX(-9deg) translateY(-9px);
  }
}

/* Floating Join Button */
.floating-join {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 999;
  background: linear-gradient(135deg, var(--accent-yellow) 0%, #ffe066 100%);
  color: var(--text-dark);
  padding: 18px 28px;
  text-decoration: none;
  font-weight: 700;
  box-shadow: 0 8px 25px rgba(255, 214, 0, 0.4);
  transform: skewX(-8deg);
  transition: all 0.3s ease;
  animation: pulse 3s infinite;
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
  overflow: hidden;
}

.floating-join::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.4),
    transparent
  );
  transition: left 0.6s ease;
}

.floating-join:hover::before {
  left: 100%;
}

.floating-join:hover {
  transform: skewX(-8deg) translateY(-5px) scale(1.1);
  box-shadow: 0 12px 40px rgba(255, 214, 0, 0.7);
}

@keyframes pulse {
  0%,
  100% {
    transform: skewX(-8deg) scale(1);
    box-shadow: 0 8px 25px rgba(255, 214, 0, 0.4);
  }

  50% {
    transform: skewX(-8deg) scale(1.05);
    box-shadow: 0 12px 35px rgba(255, 214, 0, 0.6);
  }
}

/* Section Base */
.section {
  padding: 100px 0;
}

.section-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  text-align: center;
  margin-bottom: 60px;
  position: relative;
}

/* タイトルの黄色い下線を削除してスッキリとしたデザインに */
/* .section-title::after {
  content: "";
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%) skew(-20deg);
  width: 80px;
  height: 5px;
  background: var(--accent-yellow);
} */

/* Value Proposition Section */
.value-proposition {
  background: linear-gradient(
    135deg,
    var(--white) 0%,
    var(--light-bg) 50%,
    var(--white) 100%
  );
  position: relative;
  overflow: hidden;
  padding: 80px 0;
}

.value-proposition::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23e3f2fd' fill-opacity='0.15'%3E%3Cpath d='M50 15L85 35v30L50 85 15 65V35z'/%3E%3C/g%3E%3C/svg%3E")
    repeat;
  z-index: 1;
  pointer-events: none;
  transform: skewY(-1deg);
}

.value-content {
  position: relative;
  z-index: 2;
}

.value-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 2.2rem;
  color: var(--main-blue);
  margin-bottom: 20px;
  line-height: 1.3;
}

.value-subtitle {
  font-size: 1.3rem;
  color: var(--text-light);
  margin-bottom: 50px;
  line-height: 1.6;
}

.value-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 60px;
  position: relative;
  perspective: 1000px;
}

/* Stepped Terrace Layout */
.value-grid::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    135deg,
    transparent 0%,
    rgba(30, 151, 243, 0.02) 25%,
    transparent 50%,
    rgba(255, 214, 0, 0.02) 75%,
    transparent 100%
  );
  transform: skewY(-1deg);
  z-index: -1;
}

/* Staggered Step Cards */
.value-card {
  background: var(--white);
  padding: 50px 60px;
  position: relative;
  transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  cursor: pointer;
  overflow: visible;
  margin-bottom: 40px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
}

.value-card.primary {
  width: 75%;
  margin-left: 0;
  transform: skewX(-8deg);
  background: linear-gradient(135deg, var(--white) 0%, #f8fbff 100%);
}

.value-card.secondary {
  width: 75%;
  margin-left: auto;
  margin-right: 0;
  transform: skewX(-8deg);
  background: linear-gradient(135deg, var(--white) 0%, #fffef8 100%);
}

.value-card.accent {
  width: 75%;
  margin-left: 12.5%;
  transform: skewX(-8deg);
  background: linear-gradient(135deg, var(--white) 0%, #fff8f8 100%);
}

/* Diagonal Edge Accents */
.value-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  z-index: 2;
  transition: all 0.4s ease;
}

.value-card.primary::before {
  background: linear-gradient(45deg, var(--main-blue) 0%, var(--sub-blue) 100%);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
}

.value-card.secondary::before {
  background: linear-gradient(45deg, var(--accent-yellow) 0%, #ffe066 100%);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
}

.value-card.accent::before {
  background: linear-gradient(45deg, #ff6b7a 0%, #ff8a95 100%);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
}

/* Stepped Terrace Animation */
.value-card {
  animation: stepFloat 10s ease-in-out infinite;
}

.value-card.secondary {
  animation-delay: -3s;
}

.value-card.accent {
  animation-delay: -6s;
}

@keyframes stepFloat {
  0%,
  100% {
    transform: translateY(0);
  }

  33% {
    transform: translateY(-8px);
  }

  66% {
    transform: translateY(-4px);
  }
}

/* Hover Effects - Cantilever Extension */
.value-card:hover {
  transform: translateY(-15px) scale(1.03);
  z-index: 10;
  box-shadow: 0 30px 80px rgba(30, 151, 243, 0.2);
}

.value-card.primary:hover {
  transform: translateY(-15px) skewX(-8deg) scale(1.03);
}

.value-card.secondary:hover {
  transform: translateY(-15px) skewX(-8deg) scale(1.03);
}

.value-card.accent:hover {
  transform: translateY(-15px) skewX(-8deg) scale(1.03);
}

.value-card:hover::before {
  height: 12px;
  filter: brightness(1.2);
}

.value-card h3 {
  font-size: 1.4rem;
  font-weight: 900;
  color: var(--text-dark);
  margin-bottom: 20px;
  line-height: 1.3;
  position: relative;
  z-index: 3;
  text-align: left;
}

.value-card p {
  color: var(--text-light);
  line-height: 1.7;
  font-size: 1rem;
  position: relative;
  z-index: 3;
  text-align: left;
  flex: 1;
}

/* Stepped Interaction Effect */
.value-card.primary:hover ~ .value-card.secondary {
  transform: translateX(20px) skewX(-8deg);
}

.value-card.secondary:hover ~ .value-card.accent {
  transform: translateX(-20px) skewX(-8deg);
}

.value-card:hover ~ .value-card {
  filter: grayscale(0.3);
  opacity: 0.7;
}

/* Subsection Styling */
.subsection-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 2rem;
  text-align: center;
  margin: 20px 0 40px 0;
  color: var(--main-blue);
  position: relative;
}

/* Activities Section in About */
.activities-section {
  margin-top: 60px;
}

.activities-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  margin-top: 40px;
}

.activities-image {
  position: relative;
}

.activities-image img {
  width: 100%;
  height: 350px;
  object-fit: cover;
  transform: skewX(-8deg);
  box-shadow: 0 20px 40px rgba(30, 151, 243, 0.2);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
  transition: all 0.3s ease;
}

.activities-text h4 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--main-blue);
  margin-bottom: 20px;
}

.activities-text p {
  font-size: 1rem;
  margin-bottom: 25px;
  line-height: 1.8;
}

.activities-list {
  list-style: none;
}

.activities-list li {
  padding: 12px 0;
  padding-left: 30px;
  position: relative;
  font-weight: 500;
  font-size: 1rem;
}

.activities-list li::before {
  content: "●";
  position: absolute;
  left: 0;
  color: var(--accent-yellow);
  font-size: 1.3rem;
}

/* Activity Archive */
.activity-archive {
  margin-top: 60px;
}

.archive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 25px;
  margin-top: 40px;
  max-width: 900px; /* 最大幅を設定 */
  margin-left: auto; /* 中央寄せ */
  margin-right: auto; /* 中央寄せ */
}

.archive-card {
  background: var(--white);
  overflow: hidden;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  /* 平行四辺形のスタイル（簡単に戻せるようコメントアウト） */
  /* transform: skewX(-8deg);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%); */
  position: relative;
  text-decoration: none;
  color: inherit;
  display: block;
  cursor: pointer;
}

.archive-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    135deg,
    transparent 0%,
    rgba(30, 151, 243, 0.08) 100%
  );
  pointer-events: none;
  z-index: 1;
}

.archive-card:hover {
  /* 平行四辺形のホバー効果をコメントアウト */
  /* transform: skewX(-8deg) translateY(-8px) scale(1.02); */
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 20px 45px rgba(30, 151, 243, 0.25);
}

.archive-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  /* 画像の平行四辺形スタイルをコメントアウト */
  /* transform: skewX(-8deg);
  clip-path: polygon(10% 0%, 100% 0%, 100% 100%, 0% 100%); */
}

.archive-card-content {
  padding: 20px;
  position: relative;
  z-index: 2;
}

.archive-date {
  color: var(--main-blue);
  font-weight: 700;
  font-size: 0.85rem;
  margin-bottom: 8px;
}

.archive-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-dark);
  line-height: 1.4;
  margin: 0;
  transition: color 0.3s ease;
}

.archive-card:hover .archive-title {
  color: var(--main-blue);
}

/* Topics Section */
.topics {
  background: var(--white);
  padding: 80px 0;
  position: relative;
}

/* Simple Topics List */
.topics-list {
  max-width: 800px;
  margin: 0 auto;
  background: var(--white);
  border: 1px solid #e0e0e0;
  overflow: hidden;
}

.topics-list-item {
  display: flex;
  align-items: center;
  padding: 20px 30px;
  border-bottom: 1px solid #e0e0e0;
  transition: background-color 0.3s ease;
  text-decoration: none; /* 下線を削除 */
  color: inherit; /* 親要素の色を継承 */
}

.topics-list-item:last-child {
  border-bottom: none;
}

.topics-list-item:hover {
  background-color: #f8f9fa;
}

.topic-date {
  color: var(--text-dark);
  font-size: 0.9rem;
  font-weight: 500;
  min-width: 100px;
  margin-right: 30px;
  flex-shrink: 0;
  text-decoration: none; /* 日付の下線を削除 */
}

.topic-title {
  font-size: 1rem;
  font-weight: 400;
  color: var(--text-dark);
  line-height: 1.5;
  flex: 1;
  text-decoration: none; /* タイトルの下線を削除 */
}

/* Topics More Link */
.topics-more,
.archive-more,
.committee-more {
  text-align: center;
  margin-top: 50px;
}

.topics-more-link,
.archive-more-link,
.committee-more-link {
  display: inline-block;
  color: var(--main-blue);
  font-weight: 700;
  text-decoration: none;
  padding: 15px 35px;
  border: 2px solid var(--main-blue);
  transition: all 0.3s ease;
  clip-path: polygon(5% 0%, 100% 0%, 95% 100%, 0% 100%);
  transform: skewX(-3deg);
  font-size: 1.1rem;
}

.topics-more-link:hover,
.archive-more-link:hover,
.committee-more-link:hover {
  background-color: var(--main-blue);
  color: var(--white);
  transform: skewX(-3deg) translateY(-3px);
  box-shadow: 0 8px 20px rgba(30, 151, 243, 0.3);
}

/* このスタイルは統一されたスタイルに統合されました */

/* About Section - 斜めデザイン強調 */
.about {
  background: var(--light-bg);
  position: relative;
  overflow: hidden;
}

/* 建築的なスキューライン */
.about::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 120px;
  background: var(--white);
  transform: skewY(-4deg);
  transform-origin: top left;
  box-shadow: 0 8px 25px rgba(30, 151, 243, 0.15);
}

/* 挑戦的な斜め構造線 */
.about::after {
  content: "";
  position: absolute;
  top: 15%;
  right: 5%;
  width: 400px;
  height: 6px;
  background: var(--accent-yellow);
  transform: rotate(-30deg) skewX(-15deg);
  animation: diagonalPulse 3s ease-in-out infinite;
  z-index: 1;
  clip-path: polygon(15% 0%, 100% 0%, 85% 100%, 0% 100%);
}

/* 斜めデザインのヒーロー画像 */
.about-hero-image {
  margin: 80px 0;
  width: 100%;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
}

.about-hero-image::before {
  content: "";
  position: absolute;
  top: 10%;
  left: 5%;
  width: 200px;
  height: 8px;
  background: var(--accent-yellow);
  transform: rotate(-25deg) skewX(-10deg);
  z-index: 3;
  clip-path: polygon(15% 0%, 100% 0%, 85% 100%, 0% 100%);
  animation: diagonalPulse 4s ease-in-out infinite;
}

.about-hero-image::after {
  content: "";
  position: absolute;
  bottom: 15%;
  right: 8%;
  width: 150px;
  height: 6px;
  background: var(--main-blue);
  transform: rotate(30deg) skewX(15deg);
  z-index: 3;
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
  animation: diagonalPulse 4s ease-in-out infinite 2s;
}

.about-hero-image img {
  width: 100%;
  height: 450px;
  object-fit: cover;
  box-shadow: 0 25px 60px rgba(30, 151, 243, 0.3),
    0 10px 30px rgba(0, 0, 0, 0.15);
  transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  display: block;
  position: relative;
  z-index: 1;
  transform: skewX(-1deg);
}

.about-hero-image img:hover {
  transform: skewX(-2deg) scale(1.02);
  box-shadow: 0 35px 80px rgba(30, 151, 243, 0.4),
    0 15px 40px rgba(255, 214, 0, 0.2), 0 8px 25px rgba(0, 0, 0, 0.2);
}

/* 挑戦的レイアウト構成 */
.about-content {
  display: block;
  max-width: 1200px;
  margin: 100px auto 0 auto;
  padding: 0 20px;
  position: relative;
  z-index: 2;
}

/* イントロセクション */
.about-intro {
  text-align: center;
  margin-bottom: 80px;
  position: relative;
  padding: 50px 0;
}

.about-intro::before {
  content: "";
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 100%;
  background: var(--white);
  transform: skewX(-8deg);
  z-index: -1;
  box-shadow: 0 15px 40px rgba(30, 151, 243, 0.12);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
}

.about-intro p {
  font-size: 1.4rem;
  margin-bottom: 40px;
  line-height: 1.9;
  color: var(--text-dark);
  position: relative;
  z-index: 2;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  transform: skewX(-1deg);
}

/* 活動内容グリッド */
.activities-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
  margin-top: 60px;
}

/* 活動カード - 上品な斜めデザイン */
.activity-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  padding: 30px 25px;
  position: relative;
  box-shadow: 0 10px 25px rgba(30, 151, 243, 0.15);
  transition: all 0.3s ease;
  /* 平行四辺形のスタイル（簡単に戻せるようコメントアウト） */
  /* clip-path: polygon(3% 0%, 100% 0%, 97% 100%, 0% 100%);
  transform: skewX(-3deg); */
  overflow: hidden;
  min-height: 280px;
  flex: 1 1 calc(33.333% - 20px);
}

/* 全て統一方向 */
.activity-card:nth-child(even) {
  /* 平行四辺形のスタイルをコメントアウト */
  /* transform: skewX(-3deg);
  clip-path: polygon(3% 0%, 100% 0%, 97% 100%, 0% 100%); */
}

/* 画像エリア - 軽やかな斜め */
.activity-image {
  position: relative;
  overflow: hidden;
  height: 140px;
  width: 100%;
  margin-bottom: 20px;
  /* 画像エリアの平行四辺形スタイルをコメントアウト */
  /* clip-path: polygon(2% 0%, 100% 0%, 98% 100%, 0% 100%); */
  box-shadow: 0 6px 15px rgba(30, 151, 243, 0.2);
}

.activity-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: all 0.3s ease;
  transform: scale(1.05);
}

/* コンテンツエリア */
.activity-content {
  position: relative;
  z-index: 2;
  flex: 1;
  padding: 0 5px;
}

.activity-content h4 {
  font-family: "Montserrat", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--main-blue);
  margin-bottom: 15px;
  line-height: 1.3;
  position: relative;
}

/* h4の黄色い下線を削除 */
/* .activity-content h4::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 40px;
  height: 3px;
  background: var(--accent-yellow);
  transform: skewX(-15deg);
} */

.activity-content p {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text-dark);
  font-weight: 400;
}

/* ホバー効果 - 上品な浮上 */
.activity-card:hover {
  /* 平行四辺形のホバー効果をコメントアウト */
  /* transform: skewX(-3deg) translateY(-8px); */
  transform: translateY(-8px);
  box-shadow: 0 15px 35px rgba(30, 151, 243, 0.25);
}

.activity-card:nth-child(even):hover {
  /* 平行四辺形のホバー効果をコメントアウト */
  /* transform: skewX(-3deg) translateY(-8px); */
  transform: translateY(-8px);
}

.activity-card:hover .activity-image img {
  transform: scale(1.05);
}

/* 委員会詳細リンク */
/* このスタイルは統一されたスタイルに統合されました */

/* ===============================
   SUBPAGE DESIGN SYSTEM
   =============================== */

/* Page Hero - Architectural Banner */
.page-hero {
  height: 65vh;
  min-height: 450px;
  background: linear-gradient(
    135deg,
    var(--main-blue) 0%,
    var(--sub-blue) 100%
  );
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  margin-top: 80px;
}

.page-hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

.page-hero-content {
  position: relative;
  z-index: 3;
  color: var(--white);
  max-width: 900px;
}

.page-breadcrumb {
  font-size: 0.9rem;
  margin-bottom: 25px;
  opacity: 0.85;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.page-breadcrumb a {
  color: var(--white);
  text-decoration: none;
  transition: all 0.3s ease;
  position: relative;
}

.page-breadcrumb a:hover {
  color: var(--accent-yellow);
}

.page-breadcrumb a::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--accent-yellow);
  transition: width 0.3s ease;
}

.page-breadcrumb a:hover::after {
  width: 100%;
}

.page-breadcrumb span {
  margin: 0 12px;
  opacity: 0.7;
}

.page-hero-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 4rem;
  line-height: 1.1;
  margin-bottom: 30px;
  text-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
  position: relative;
}

.page-hero-title .accent {
  color: var(--accent-yellow);
  position: relative;
}

.page-hero-title .accent::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 0;
  width: 100%;
  height: 4px;
  background: var(--accent-yellow);
  transform: skewX(-15deg);
  opacity: 0.8;
}

.page-hero-description {
  font-size: 1.3rem;
  line-height: 1.7;
  opacity: 0.9;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  max-width: 600px;
}

/* Content Sections - Modular System */
.page-content {
  background: var(--light-bg);
  position: relative;
  padding: 100px 0;
}

.page-content.alt-bg {
  background: var(--white);
}

.page-content.gradient-bg {
  background: linear-gradient(135deg, var(--light-bg) 0%, #e8f4fd 100%);
}

/* Enhanced Section Intro */
.section-intro {
  text-align: center;
  margin-bottom: 80px;
  position: relative;
}

.section-intro::before {
  content: "";
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%) skewX(-20deg);
  width: 60px;
  height: 4px;
  background: var(--accent-yellow);
}

/* Universal Content Card System */
.content-card {
  background: var(--white);
  padding: 50px 60px;
  margin: 50px auto 0 auto;
  max-width: 1000px;
  box-shadow: 0 20px 50px rgba(30, 151, 243, 0.12);
  transform: skewX(-2deg);
  clip-path: polygon(2% 0%, 100% 0%, 98% 100%, 0% 100%);
  position: relative;
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.content-card:hover {
  transform: skewX(-2deg) translateY(-8px);
  box-shadow: 0 25px 60px rgba(30, 151, 243, 0.18);
}

.content-card.primary::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(45deg, var(--main-blue) 0%, var(--sub-blue) 100%);
  clip-path: polygon(2% 0%, 100% 0%, 98% 100%, 0% 100%);
}

.content-card.accent::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(45deg, var(--accent-yellow) 0%, #ffe066 100%);
  clip-path: polygon(2% 0%, 100% 0%, 98% 100%, 0% 100%);
}

.content-text {
  font-size: 1.15rem;
  line-height: 1.8;
  color: var(--text-dark);
  margin: 0;
  text-align: left;
}

/* Flexible Grid System */
.grid-container {
  margin-top: 60px;
}

.grid-2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
  gap: 40px;
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 35px;
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 30px;
}

/* Universal Feature Cards */
.feature-card {
  background: var(--white);
  padding: 40px 35px;
  box-shadow: 0 15px 35px rgba(30, 151, 243, 0.1);
  transform: skewX(-3deg);
  clip-path: polygon(3% 0%, 100% 0%, 97% 100%, 0% 100%);
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.feature-card.wide {
  grid-column: 1 / -1;
  max-width: 900px;
  margin: 0 auto;
}

.feature-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: var(--accent-yellow);
  transition: all 0.4s ease;
}

.feature-card.blue::before {
  background: linear-gradient(45deg, var(--main-blue) 0%, var(--sub-blue) 100%);
}

.feature-card.gradient::before {
  background: linear-gradient(45deg, #ff6b7a 0%, #ff8a95 100%);
}

.feature-card:hover {
  transform: skewX(-3deg) translateY(-10px) scale(1.02);
  box-shadow: 0 25px 50px rgba(30, 151, 243, 0.2);
}

.feature-card:hover::before {
  height: 10px;
  filter: brightness(1.2);
}

.feature-icon {
  font-size: 3rem;
  margin-bottom: 25px;
  display: block;
  text-align: center;
  line-height: 1;
}

.feature-card h3,
.feature-card h4 {
  font-family: "Montserrat", sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--main-blue);
  margin-bottom: 18px;
  text-align: center;
  line-height: 1.3;
}

.feature-card p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--text-dark);
  text-align: left;
  flex: 1;
}

/* Content Categories */
.content-category {
  margin-bottom: 80px;
}

.category-header {
  font-family: "Montserrat", sans-serif;
  font-size: 2rem;
  font-weight: 800;
  color: var(--main-blue);
  margin-bottom: 40px;
  position: relative;
  padding-left: 25px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.category-header::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) skewX(-25deg);
  width: 8px;
  height: 120%;
  background: linear-gradient(135deg, var(--accent-yellow) 0%, #ffe066 100%);
  border-radius: 2px;
}

/* Enhanced List System */
.styled-list {
  display: grid;
  gap: 18px;
}

.list-item {
  display: flex;
  align-items: center;
  padding: 22px 30px;
  background: var(--light-bg);
  transform: skewX(-1deg);
  clip-path: polygon(1% 0%, 100% 0%, 99% 100%, 0% 100%);
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative;
  border-left: 4px solid transparent;
}

.list-item:hover {
  background: #e8f4fd;
  transform: skewX(-1deg) translateX(12px);
  box-shadow: 0 8px 25px rgba(30, 151, 243, 0.15);
  border-left-color: var(--main-blue);
}

.list-marker {
  width: 10px;
  height: 10px;
  background: linear-gradient(
    135deg,
    var(--main-blue) 0%,
    var(--sub-blue) 100%
  );
  border-radius: 50%;
  margin-right: 25px;
  flex-shrink: 0;
  position: relative;
}

.list-marker::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 4px;
  height: 4px;
  background: var(--white);
  border-radius: 50%;
}

.list-item-text {
  font-size: 1.05rem;
  font-weight: 500;
  color: var(--text-dark);
  line-height: 1.6;
  flex: 1;
}

/* Universal Item Cards */
.item-cards {
  margin-top: 60px;
}

.item-card {
  background: var(--white);
  padding: 30px 25px;
  box-shadow: 0 12px 25px rgba(30, 151, 243, 0.08);
  transform: skewX(-2deg);
  clip-path: polygon(2% 0%, 100% 0%, 98% 100%, 0% 100%);
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  border-left: 5px solid var(--accent-yellow);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
}

.item-card:hover {
  transform: skewX(-2deg) translateY(-8px) scale(1.03);
  box-shadow: 0 20px 40px rgba(30, 151, 243, 0.15);
  border-left-color: var(--main-blue);
}

.item-title {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text-dark);
  line-height: 1.4;
  text-align: center;
  margin: 0;
}

/* Enhanced CTA Section */
.cta-section {
  background: linear-gradient(135deg, var(--light-bg) 0%, #e8f4fd 100%);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}

.cta-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 80px;
  background: var(--white);
  transform: skewY(-2deg);
  transform-origin: top left;
}

.cta-section::after {
  content: "";
  position: absolute;
  top: 20%;
  right: 10%;
  width: 200px;
  height: 6px;
  background: var(--accent-yellow);
  transform: rotate(-25deg) skewX(-15deg);
  opacity: 0.3;
}

.cta-content {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.cta-title {
  font-family: "Montserrat", sans-serif;
  font-size: 2.8rem;
  font-weight: 900;
  color: var(--main-blue);
  margin-bottom: 25px;
  line-height: 1.2;
}

.cta-description {
  font-size: 1.25rem;
  line-height: 1.7;
  color: var(--text-dark);
  margin-bottom: 50px;
  opacity: 0.9;
}

/* Responsive Design - Mobile First Approach */
@media (max-width: 768px) {
  .page-hero {
    height: 55vh;
    min-height: 380px;
    margin-top: 70px;
    padding: 0 20px;
  }

  .page-hero-title {
    font-size: 2.8rem;
  }

  .page-hero-description {
    font-size: 1.15rem;
  }

  .content-card {
    padding: 35px 30px;
    transform: skewX(0deg);
    clip-path: none;
    margin: 30px auto 0 auto;
  }

  .content-card:hover {
    transform: translateY(-5px);
  }

  .grid-2,
  .grid-3,
  .grid-4 {
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .feature-card {
    transform: skewX(0deg);
    clip-path: none;
    padding: 30px 25px;
  }

  .feature-card.wide {
    grid-column: 1;
  }

  .feature-card:hover {
    transform: translateY(-8px);
  }

  .category-header {
    font-size: 1.6rem;
    padding-left: 20px;
  }

  .list-item {
    transform: skewX(0deg);
    clip-path: none;
    padding: 18px 20px;
  }
}

/* Information Archive Page Styles */
.information-archive-page {
  padding: 80px 0;
  margin-top: 70px; /* Adjust for fixed header */
}

.information-archive-header {
  text-align: center;
  margin-bottom: 60px;
}

.information-archive-title {
  font-family: "Montserrat", sans-serif;
  font-weight: 900;
  font-size: 3rem;
  color: var(--main-blue);
  margin-bottom: 15px;
}

.information-archive-description {
  font-size: 1.1rem;
  color: var(--text-light);
  max-width: 800px;
  margin: 0 auto;
  line-height: 1.6;
}

.information-list {
  max-width: 800px;
  margin: 0 auto;
  /* border-top: 1px solid var(--border-color); */ /* 個別アイテムにボーダーを適用するため削除 */
}

.information-list-item {
  display: block; /* 全体をリンク可能にする */
  padding: 25px 30px;
  border: 1px solid var(--border-color);
  margin-bottom: 15px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease-in-out;
  text-decoration: none; /* リンクの下線を削除 */
  color: inherit; /* リンクの色を親要素から継承 */
}

.information-list-item:hover {
  background-color: var(--light-bg);
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.item-date {
  font-size: 0.9rem;
  color: var(--text-light);
  margin-bottom: 8px;
  text-decoration: none; /* 日付のリンク下線を削除 */
}

.item-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1.4;
  margin-bottom: 0;
  text-align: left; /* タイトルを左寄せ */
}

.item-excerpt {
  display: none; /* 本文を非表示 */
}

.item-link {
  display: none; /* 続きを読むリンクを非表示 */
}

/* Pagination Styles */
.pagination {
  margin-top: 60px;
  text-align: center;
}

.pagination .page-numbers {
  display: inline-block;
  padding: 10px 15px;
  margin: 0 5px;
  border: 1px solid var(--border-color);
  text-decoration: none;
  color: var(--text-dark);
  transition: all 0.3s ease;
}

.pagination .page-numbers.current,
.pagination .page-numbers:hover {
  background-color: var(--main-blue);
  color: var(--white);
  border-color: var(--main-blue);
}

@media (max-width: 768px) {
  .information-archive-title {
    font-size: 2.2rem;
  }
  .information-archive-description {
    font-size: 1rem;
  }
  .information-list-item {
    padding: 20px 0;
  }
  .item-title {
    font-size: 1.2rem;
  }
  .item-excerpt {
    font-size: 0.9rem;
  }
  .pagination .page-numbers {
    padding: 8px 12px;
    margin: 0 3px;
  }
}

  .list-item:hover {
    transform: translateX(8px);
  }

  .item-card {
    transform: skewX(0deg);
    clip-path: none;
    padding: 25px 20px;
    min-height: 100px;
  }

  .item-card:hover {
    transform: translateY(-5px);
  }

  .cta-title {
    font-size: 2.2rem;
  }

  .cta-description {
    font-size: 1.15rem;
  }

  /* Simplify structural elements on mobile */
  .page-hero .diagrid-overlay,
  .page-hero .decon-elements,
  .page-hero .structural-lines {
    display: none;
  }
}

/* 斜めデザイン強調の特性グリッド */
.about-features {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 40px;
  margin-top: 60px;
  position: relative;
}

/* 斜めカード - 安定表示 */
.about-features li {
  padding: 30px 40px;
  background: #f8fbff;
  position: relative;
  font-weight: 600;
  font-size: 1.1rem;
  line-height: 1.8;
  text-align: left;
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
  box-shadow: 0 25px 50px rgba(30, 151, 243, 0.3),
    0 12px 30px rgba(255, 214, 0, 0.15), 0 6px 18px rgba(0, 0, 0, 0.15);
  transition: all 0.3s ease;
}

/* 奇数・偶数での斜め差別化（固定） */
.about-features li:nth-child(odd) {
  transform: skewX(-12deg) translateY(-12px);
}

.about-features li:nth-child(even) {
  transform: skewX(-14deg) translateY(-12px);
}

/* 軽いホバー効果 */
.about-features li:hover {
  box-shadow: 0 30px 60px rgba(30, 151, 243, 0.35),
    0 15px 35px rgba(255, 214, 0, 0.25), 0 8px 25px rgba(0, 0, 0, 0.2);
}

.about-features li:nth-child(odd):hover {
  transform: skewX(-12deg) translateY(-15px);
}

.about-features li:nth-child(even):hover {
  transform: skewX(-14deg) translateY(-15px);
}

/* Footer - シンプル斜めアクセント */
.footer {
  background: var(--main-blue);
  color: var(--white);
  padding: 60px 0 30px;
  position: relative;
}

/* シンプルな斜めトランジション */
.footer::before {
  content: "";
  position: absolute;
  top: -40px; /* 上に移動して文字との重なりを解消 */
  left: 0;
  right: 0;
  height: 80px;
  background: var(--light-bg);
  transform: skewY(-3deg);
  transform-origin: top left;
}

.footer-content {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 40px;
  margin-bottom: 30px;
}

.footer-section {
  position: relative;
}

.footer-section h3 {
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 20px;
  color: var(--accent-yellow);
  position: relative;
}

.footer-section p {
  margin-bottom: 10px;
  opacity: 0.9;
}

.footer-section a {
  color: var(--white);
  text-decoration: none;
  transition: color 0.3s ease;
}

.footer-section a:hover {
  color: var(--accent-yellow);
}

.footer-bottom {
  text-align: center;
  padding-top: 30px;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  opacity: 0.7;
  position: relative;
  z-index: 2;
}

/* Advanced Animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(50px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-100px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(100px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.8);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Animation Classes */
.animate-fade-in {
  animation: fadeInUp 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.animate-slide-left {
  animation: slideInLeft 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.animate-slide-right {
  animation: slideInRight 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.animate-scale {
  animation: scaleIn 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

.animate-delay-1 {
  animation-delay: 0.2s;
}

.animate-delay-2 {
  animation-delay: 0.4s;
}

.animate-delay-3 {
  animation-delay: 0.6s;
}

/* Enhanced Hover Effects with Architectural Perspective */
.topic-card {
  background: var(--white);
  padding: 30px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  position: relative;
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transform: skewX(-8deg);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
  overflow: visible;
  transform-style: preserve-3d;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.topic-card:hover {
  transform: skewX(-8deg) translateY(-12px) perspective(500px) rotateX(2deg)
    scale(1.03);
  box-shadow: 0 25px 60px rgba(30, 151, 243, 0.25),
    0 5px 20px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.archive-card:hover {
  transform: skewX(-8deg) translateY(-8px) translateX(3px) perspective(500px)
    rotateY(-1deg);
  box-shadow: 0 20px 45px rgba(30, 151, 243, 0.25),
    0 8px 25px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.activities-image:hover img {
  transform: skewX(-8deg) scale(1.05) perspective(600px) rotateZ(1deg);
  box-shadow: 0 30px 65px rgba(30, 151, 243, 0.35),
    0 12px 35px rgba(0, 0, 0, 0.18);
}

/* Button Enhanced Effects */
.btn-primary {
  display: inline-block;
  background: linear-gradient(135deg, var(--accent-yellow) 0%, #ffe066 100%);
  color: var(--text-dark);
  padding: 18px 45px;
  font-weight: 700;
  font-size: 1.1rem;
  text-decoration: none;
  transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transform: skewX(-8deg);
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
  position: relative;
  overflow: hidden;
  transform-style: preserve-3d;
}

.btn-primary:hover {
  background: linear-gradient(135deg, #ffe066 0%, var(--accent-yellow) 100%);
  transform: skewX(-8deg) translateY(-8px) perspective(400px) rotateX(-5deg)
    scale(1.08);
  box-shadow: 0 20px 50px rgba(255, 214, 0, 0.5), 0 5px 15px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

/* Performance Optimizations */
.hero::before,
.topics::before,
.topics::after,
.about::before,
.reports::before,
.activities::before,
.footer::before {
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* GPU Acceleration for smooth animations */
.topic-card,
.archive-card,
.value-card,
.btn-primary,
.floating-join,
.about-hero-image img,
.activities-image img {
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
}

/* 平行四辺形画像グリッドに変更したため、単一背景画像設定を削除 */
/* .hero::before {
  background-image: url("../images/architectural-building-model.jpg");
} */

/* Text shadows for better readability on backgrounds */
.hero-content {
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

/* Smooth scrolling optimization */
html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

/* ===============================
   RESPONSIVE DESIGN - MOBILE FIRST
   =============================== */

/* Mobile Navigation */
@media (max-width: 1024px) {
  .nav {
    gap: 25px;
  }

  .nav a {
    font-size: 0.9rem;
  }
}

/* Tablet Responsive */
@media (max-width: 768px) {
  /* Header & Navigation */
  .header-content {
    padding: 12px 0;
  }

  .logo {
    font-size: 1rem;
    line-height: 1.1;
  }

  .nav {
    display: none;
  }

  .mobile-menu {
    display: block;
    font-size: 1.3rem;
  }

  /* Simplify decorative elements on tablet */
  .hero-decorations,
  .decon-elements {
    display: none;
  }

  /* Sections */
  .section {
    padding: 70px 0;
  }

  /* Value Proposition */
  .value-title {
    font-size: 1.9rem;
  }

  .value-subtitle {
    font-size: 1.15rem;
    margin-bottom: 40px;
  }

  .value-grid {
    gap: 25px;
    margin-top: 40px;
  }

  .value-card {
    padding: 40px 35px;
    margin-bottom: 30px;
  }

  .value-card.primary,
  .value-card.secondary,
  .value-card.accent {
    width: 90%;
    margin-left: 5%;
    margin-right: 5%;
  }

  /* About Features */
  .about-features {
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
  }

  .about-features li {
    padding: 25px 30px;
    font-size: 1rem;
  }
}

/* ===============================
   レスポンシブ対応 - モバイルファースト
   =============================== */

/* タブレット対応 (768px以下) */
@media (max-width: 768px) {
  /* ヒーローセクション */
  .hero {
    height: calc(100vh - 70px); /* ヘッダー分を引いて100vhを維持 */
    min-height: 450px;
    margin-top: 70px; /* タブレット用のヘッダー高さ調整 */
  }

  .hero-title {
    font-size: 2.8rem;
    line-height: 1.2;
  }

  .hero-description {
    font-size: 1.1rem;
  }

  /* 平行四辺形画像グリッドを簡素化 */
  .hero-image-grid {
    padding: 20px;
    opacity: 0.2;
  }

  .hero-parallelogram {
    transform: skewX(-8deg); /* 角度を緩やかに */
  }

  /* タブレットでは構造線とdiagridをヒーローセクション内に制限 */
  .hero {
    overflow: hidden; /* ヒーローセクション外への溢れを防ぐ */
  }

  .structural-lines {
    opacity: 0.6; /* タブレットでは薄く */
  }

  .diagrid-overlay {
    opacity: 0.25; /* diagridも薄く */
  }

  /* タブレット用に構造線のサイズを調整 */
  .line-1 {
    width: 50%; /* 幅を調整 */
    top: 20%;
    left: 35%;
  }

  .line-6 {
    width: 25%; /* 幅を調整 */
    top: 55%;
    left: 25%;
  }

  /* セクションタイトル */
  .section-title {
    font-size: 2.2rem;
    margin-bottom: 40px;
  }

  .subsection-title {
    font-size: 1.8rem;
    margin: 60px 0 30px 0;
  }

  /* 活動グリッド - 2列表示 */
  .activities-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 40px;
  }

  .activity-card {
    min-height: 300px;
    padding: 25px 20px;
  }

  .activity-card:nth-child(4),
  .activity-card:nth-child(5) {
    margin: 0; /* タブレットでは特別なマージンを削除 */
  }

  /* アーカイブグリッド - 縦落ち対応 */
  .archive-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  /* トピックス */
  .topics-list-item {
    padding: 15px 20px;
  }

  .topic-date {
    min-width: 80px;
    margin-right: 15px;
    font-size: 0.85rem;
  }

  .topic-title {
    font-size: 0.95rem;
  }

  /* フッター */
  .footer-content {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }

  /* フローティングボタン */
  .floating-join {
    bottom: 20px;
    right: 20px;
    padding: 15px 25px;
    font-size: 0.9rem;
  }
}

/* モバイル対応 (480px以下) */
@media (max-width: 480px) {
  /* コンテナ */
  .container {
    padding: 0 15px;
  }

  /* ヘッダー */
  .header-content {
    padding: 10px 0;
  }

  .logo {
    font-size: 0.9rem;
    line-height: 1.1;
  }

  /* ヒーロー */
  .hero {
    height: calc(100vh - 60px); /* ヘッダー分を引いて100vhを維持 */
    min-height: 400px;
    padding: 0 15px;
    margin-top: 60px; /* モバイル用のヘッダー高さ調整 */
  }

  .hero-subtitle {
    font-size: 0.9rem;
    margin-bottom: 12px;
  }

  .hero-title {
    font-size: 2.2rem;
    margin-bottom: 20px;
  }

  .hero-description {
    font-size: 1rem;
    margin-bottom: 25px;
    line-height: 1.6;
  }

  /* 平行四辺形を更に簡素化 */
  .hero-image-grid {
    padding: 15px;
    opacity: 0.15;
  }

  .hero-parallelogram {
    transform: skewX(-5deg); /* さらに緩やかに */
  }

  /* モバイルでは構造線とdiagridをヒーローセクション内に制限 */
  .hero {
    overflow: hidden; /* ヒーローセクション外への溢れを防ぐ */
  }

  .structural-lines {
    opacity: 0.5; /* モバイルでは薄く表示 */
  }

  .diagrid-overlay {
    opacity: 0.15; /* diagridも薄く表示 */
  }

  /* モバイル用に構造線のサイズを調整 */
  .line-1 {
    width: 40%; /* 幅を小さく */
    top: 25%;
    left: 30%;
  }

  .line-6 {
    width: 20%; /* 幅を小さく */
    top: 60%;
    left: 20%;
  }

  /* その他の線は非表示 */
  .line-2,
  .line-3,
  .line-4,
  .line-5 {
    display: none;
  }

  /* セクション */
  .section {
    padding: 50px 0;
  }

  .section-title {
    font-size: 1.8rem;
    margin-bottom: 30px;
  }

  .subsection-title {
    font-size: 1.5rem;
    margin: 40px 0 25px 0;
  }

  /* 活動グリッド - モバイルは1列 */
  .activities-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
    margin-top: 30px;
  }

  .activity-card {
    min-height: 280px;
    padding: 20px;
  }

  .activity-image {
    height: 120px;
    margin-bottom: 15px;
  }

  .activity-content h4 {
    font-size: 1.2rem;
    margin-bottom: 10px;
  }

  .activity-content p {
    font-size: 0.9rem;
    line-height: 1.5;
  }

  /* アーカイブグリッド - 完全に縦落ち */
  .archive-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .archive-card img {
    height: 150px;
  }

  .archive-card-content {
    padding: 15px;
  }

  .archive-date {
    font-size: 0.8rem;
    margin-bottom: 6px;
  }

  .archive-title {
    font-size: 1rem;
    line-height: 1.3;
  }

  /* トピックス - モバイル最適化 */
  .topics-list-item {
    flex-direction: column;
    align-items: flex-start;
    padding: 15px 20px;
  }

  .topic-date {
    min-width: auto;
    margin-right: 0;
    margin-bottom: 8px;
    font-size: 0.8rem;
    color: var(--main-blue);
    font-weight: 600;
  }

  .topic-title {
    font-size: 0.9rem;
    line-height: 1.4;
  }

  /* About セクション */
  .about-hero-image {
    margin: 40px 0;
  }

  .about-hero-image img {
    height: 250px;
  }

  .about-intro p {
    font-size: 1rem;
    margin-bottom: 25px;
    line-height: 1.7;
  }

  /* リンクボタン - PCと同じスタイルに戻す */
  .topics-more-link,
  .archive-more-link,
  .committee-more-link {
    padding: 15px 35px;
    font-size: 1.1rem;
    transform: skewX(-3deg);
    clip-path: polygon(5% 0%, 100% 0%, 95% 100%, 0% 100%);
  }

  .topics-more-link:hover,
  .archive-more-link:hover,
  .committee-more-link:hover {
    transform: skewX(-3deg) translateY(-3px);
  }

  /* フッター */
  .footer {
    padding: 40px 0 20px;
  }

  .footer::before {
    display: none; /* モバイルでは斜め要素を削除 */
  }

  .footer-content {
    grid-template-columns: 1fr;
    gap: 25px;
    margin-bottom: 20px;
  }

  .footer-section h3 {
    font-size: 1.2rem;
    margin-bottom: 15px;
  }

  .footer-section p {
    font-size: 0.9rem;
    margin-bottom: 8px;
  }

  /* フローティングボタン */
  .floating-join {
    bottom: 15px;
    right: 15px;
    padding: 12px 20px;
    font-size: 0.85rem;
    transform: none !important;
    clip-path: none !important;
    border-radius: 4px;
  }

  .floating-join:hover {
    transform: translateY(-3px) scale(1.05) !important;
  }

}


/* --- Parent Logo Styling --- */
.footer-section.parent-logo {
    display: flex;
    align-items: center;
    justify-content: flex-end; /* 右寄せ */
}


.oya_logo{
    width: 350px!important; /* ロゴの幅を調整 */
    height: auto; /* 高さは自動 */
  background:#FFFFFF;
  padding:10px;
  display:block;
}
.oya_logo:hover{
  opacity:0.8;
}