/* リセット */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

html, body {
font-family: 'Helvetica Neue', sans-serif;
background: #111;
color: #111;
line-height: 1.6;
overscroll-behavior: none;
scroll-behavior: smooth;
}

body {
width: 100%;
}

/* セクション */
.section {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 0;
text-align: center;
}

/* ヒーローエリア */
.hero {
background: url('../images/hero.jpg') no-repeat center center / cover;
color: white;
position: relative;
}

.hero::before {
content: "";
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.4);
}

.hero-content {
position: relative;
z-index: 1;
}

h1, h2, p {
margin-bottom:0;
}

/* スマホサイズベース */
@media (min-width: 960px) {
body {
max-width: 1200px;
margin: 0 auto;
}
}

.gallery {
display: flex;
flex-direction: column;
gap: 0; /* ← 隙間なし */
background: #fff;
}

.image-gallery {
padding: 0;
box-shadow: 
-4px 0 8px rgba(0, 0, 0, 0.05),  /* 左側の影 */
 4px 0 8px rgba(0, 0, 0, 0.05);  /* 右側の影 */
overflow: hidden;
}

.gallery img {
width: 100%;
height: auto;
display: block;
border-radius: 0;/* 丸みなし */
box-shadow: none;/* 影なし */
margin: 0;
padding: 0;
}

a img {
  transition: opacity 0.3s ease;
}

a:hover img {
  opacity: 0.7; /* ← お好みで 0.6〜0.8 が自然です */
}


.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.footer {
  text-align: center;
  font-size: 0.75rem;
  padding: 0.5rem 0.5rem;
  background: #EA545D;
}

.footer a {
  color: #fff;
  text-decoration: none;
}

.footer a:hover {
  opacity: 0.7;
}