/* style.css */
:root{--bg:#f7f9fc;--accent-2:#7c3aed;--muted:#64748b;--max:1200px}
*{box-sizing:border-box}body{margin:0;font-family: 'Noto Sans JP', Arial, sans-serif;background:var(--bg);color:#0f172a;-webkit-font-smoothing:antialiased}
.container{max-width:var(--max);margin:0 auto;padding:1rem}
.header{background:white;position:sticky;top:0;z-index:60;box-shadow:0 8px 20px rgba(2,6,23,0.04)}
.header .inner{display:flex;align-items:center;justify-content:space-between;padding:12px 1rem}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:56px;height:56px;border-radius:10px;object-fit:cover}
.brand h1{margin:0;font-size:1rem}
.nav{display:flex;gap:18px;align-items:center}
.nav a{color:inherit;text-decoration:none;padding:8px 10px;border-radius:8px;font-weight:600}
.btn-primary{background:linear-gradient(90deg,var(--accent-2),#fb923c);color:white;padding:8px 12px;border-radius:10px;text-decoration:none}
.mobile-toggle{display:none}
@media (max-width:900px){.nav{display:none}.mobile-toggle{display:block}}

/* Hero */
.hero{position:relative;overflow:hidden;background:#000}
.hero .inner{display:flex;align-items:center;gap:2rem;padding:0;position:relative}
.hero .left{flex:1;padding:48px 1rem;max-width:560px;position: absolute;z-index: 1;}
.hero h2{font-size:3rem;margin:0 0 12px;color:white;text-shadow:0 6px 30px rgba(0,0,0,0.45)}
.hero p{color:rgba(255,255,255,0.92);margin:0 0 20px;text-shadow:0 4px 18px rgba(0,0,0,0.35)}
.hero .media{flex:1;min-height:700px;max-height:700px;display:flex;align-items:center;justify-content:center;position:relative}
.slides{position:relative;width:100%;height:700px}
.slides picture, .slides img{position:absolute;inset:0;width:100%;height:700px;object-fit:cover;object-position:center;opacity:0;transition:opacity .8s ease, transform .8s ease;transform:scale(1.02)}
.slides img.active{opacity:1;transform:scale(1);}
.carousel-controls{position:absolute;inset:auto 18px 18px auto;display:flex;gap:10px;z-index:40}
.ctrl-btn{width:46px;height:46px;border-radius:999px;background:rgba(255,255,255,0.9);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(2,6,23,0.12);border:0;cursor:pointer;transition:transform .18s ease}
.ctrl-btn:hover{transform:translateY(-3px)}
.dots{position:absolute;left:50%;transform:translateX(-50%);bottom:14px;display:flex;gap:8px;z-index:40}
.dots button{width:10px;height:10px;border-radius:999px;border:0;background:rgba(255,255,255,0.6);cursor:pointer;box-shadow:0 4px 10px rgba(2,6,23,0.08)}
.dots button.active{width:34px;background:linear-gradient(90deg,var(--accent-2),#fb923c);border-radius:999px}

/* sections */
.section{padding:3rem 0}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.card{background:white;padding:1.2rem;border-radius:12px;box-shadow:0 8px 28px rgba(2,6,23,0.04);border:1px solid rgba(2,6,23,0.04)}
.footer{background:#0b1220;color:rgba(255,255,255,0.85);padding:2rem 0}
.footer a{color:inherit;text-decoration:none}
.contact_section{min-height: 80vh;}
@media (max-width:900px){.hero h2{font-size:2rem}.slides img{height:420px}.hero .media{min-height:420px;max-height:420px}}

/* Enrichment styles: testimonials, gallery, team */
.testimonial{font-style:italic;color:var(--muted)}
.card-grid .card p{color:rgba(15,23,42,0.9)}

.menu-btn {
  display: none;
  cursor: pointer;
}

.mobile-menu {
  position: fixed;
  z-index: 999;
  top: 0;
  right: -260px;
  width: 240px;
  height: 100%;
  background: white;
  display: flex;
  flex-direction: column;
  padding-top: 2rem;
  transition: right 0.3s ease;
}

.mobile-menu a {
  color: #333;
  text-decoration: none;
  padding: 1rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.mobile-menu.show {
  right: 0;
}

.close-btn {
  background: none;
  border: none;
  color: #333;
  font-size: 2rem;
  cursor: pointer;
  align-self: flex-end;
  margin-right: 0.5rem;
}

@media (max-width: 768px) {
  .nav-links {
    display: none;
  }
  .menu-btn {
    display: block;
  }
}

