/* RESET */
*{margin:0;padding:0;box-sizing:border-box;}
body{
font-family:"Noto Sans JP",sans-serif;
background:#f8f5f1;
color:#333;
line-height:1.9;
}

/* NAV */
header{
background:#ffffff;
box-shadow:0 2px 10px rgba(0,0,0,0.05);
position:sticky;
top:0;
z-index:1000;
}
.nav-inner{
max-width:1100px;
margin:auto;
display:flex;
justify-content:space-between;
align-items:center;
padding:20px;
}
.logo a{
font-size:22px;
font-weight:bold;
color:#8B6F47;
text-decoration:none;
}
nav a{
margin-left:20px;
text-decoration:none;
color:#333;
font-size:15px;
}
nav a:hover{color:#8B6F47;}

/* HERO */
.hero{
text-align:center;
padding:100px 20px;
background:linear-gradient(to bottom,#ffffff,#f3ede6);
}
.hero h1{
font-size:30px;
margin-bottom:20px;
}
.btn{
display:inline-block;
background:#8B6F47;
color:#fff;
padding:14px 30px;
border-radius:40px;
text-decoration:none;
margin:10px;
transition:0.3s;
}
.btn:hover{opacity:0.85;}

/* SECTION */
.section{
padding:80px 20px;
max-width:1100px;
margin:auto;
}
.section h2{
text-align:center;
margin-bottom:50px;
font-size:24px;
color:#8B6F47;
}

/* CARD */
.card-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:30px;
}
.card{
background:#fff;
padding:30px;
border-radius:18px;
box-shadow:0 6px 20px rgba(0,0,0,0.06);
transition:0.3s;
}
.card:hover{transform:translateY(-5px);}
.card h3{
margin-bottom:15px;
color:#8B6F47;
}
.card a{
text-decoration:none;
color:#8B6F47;
font-weight:bold;
}

/* FOOTER */
footer{
background:#2f2a26;
color:#fff;
padding:60px 20px;
text-align:center;
margin-top:60px;
}
footer a{
color:#fff;
text-decoration:none;
}
.footer-links a{
margin:0 10px;
font-size:14px;
}
/* =============================
   SLIDER
============================= */
.hero-slider{
overflow:hidden;
position:relative;
height:400px;
}
.slider-wrapper{
display:flex;
animation:slide 20s infinite;
}
.slide{
min-width:100%;
}
.slide img{
width:100%;
height:400px;
object-fit:cover;
}

@keyframes slide{
0%{transform:translateX(0);}
25%{transform:translateX(-100%);}
50%{transform:translateX(-200%);}
75%{transform:translateX(-300%);}
100%{transform:translateX(0);}
}

/* =============================
   PHOTO GRID
============================= */
.photo-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:20px;
}
.photo-item img{
width:100%;
cursor:pointer;
border-radius:12px;
transition:0.3s;
}
.photo-item img:hover{
opacity:0.8;
}

/* MODAL */
#modal{
display:none;
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.8);
justify-content:center;
align-items:center;
z-index:9999;
}
#modal img{
max-width:90%;
max-height:90%;
}
/* =============================
   HERO SLIDER
============================= */
.hero-slider{
overflow:hidden;
height:420px;
position:relative;
}

.slider-wrapper{
display:flex;
animation:slide 25s infinite;
}

.slide{
min-width:100%;
}

.slide img{
width:100%;
height:420px;
object-fit:cover;
}

@keyframes slide{
0%{transform:translateX(0);}
20%{transform:translateX(-100%);}
40%{transform:translateX(-200%);}
60%{transform:translateX(-300%);}
80%{transform:translateX(-400%);}
100%{transform:translateX(0);}
}

/* =============================
   CONTACT FORM
============================= */

.contact-form{
max-width:600px;
margin:40px auto 0;
display:flex;
flex-direction:column;
gap:18px;
}

.contact-form label{
font-weight:bold;
margin-bottom:5px;
color:#8B6F47;
}

.form-control{
width:100%;
padding:12px 15px;
border:1px solid #ddd;
border-radius:8px;
font-size:16px;
background:#fff;
transition:0.2s;
}

.form-control:focus{
border-color:#8B6F47;
outline:none;
box-shadow:0 0 0 2px rgba(139,111,71,0.1);
}

.contact-form textarea{
min-height:150px;
resize:vertical;
}

.success-message{
color:#2e7d32;
text-align:center;
margin-bottom:20px;
}

.error-message{
color:#c62828;
text-align:center;
margin-bottom:20px;
}