/* =========================
   Base
========================= */

body{

  font-family:
    "Noto Sans JP",
    sans-serif;

  background:#f5f7f8;

  color:#1d2630;

  letter-spacing:0.03em;

  line-height:1.8;

  -webkit-font-smoothing:
    antialiased;

  text-rendering:
    optimizeLegibility;
}

/* =========================
   Navbar
========================= */

.navbar{

  backdrop-filter:blur(10px);
}

.navbar-brand{

  font-family:
    "Poppins",
    sans-serif;

  font-size:1.4rem;

  letter-spacing:0.08em;

  font-weight:800;
}

.nav-link{

  font-family:
    "Poppins",
    sans-serif;

  font-weight:600;

  letter-spacing:0.05em;

  transition:0.25s;
}

.nav-link:hover{

  opacity:0.7;
}

/* =========================
   Hero
========================= */

.hero-section{

  min-height:100vh;

  padding-top:140px;
  padding-bottom:120px;

  display:flex;
  align-items:center;

  background:
    linear-gradient(
      rgba(5,30,55,0.72),
      rgba(5,30,55,0.45)
    ),
    url("/images/image1.jpg")
    center/cover no-repeat;

  background-attachment:fixed;

  color:white;

  position:relative;

  overflow:hidden;
}

.hero-subtitle{

  font-family:
    "Poppins",
    sans-serif;

  font-size:1rem;

  letter-spacing:0.25em;

  font-weight:700;

  margin-bottom:25px;

  opacity:0.9;
}

.hero-title{

  font-size:
    clamp(42px,6vw,86px);

  line-height:1.15;

  font-weight:900;

  letter-spacing:0.02em;

  margin-bottom:35px;
}

.hero-text{

  font-size:
    clamp(1rem,1.4vw,1.25rem);

  line-height:2.1;

  opacity:0.95;

  max-width:720px;
}

/* =========================
   News
========================= */

.news-box{

  background:white;

  border-radius:22px;

  padding:35px;

  font-size:1.05rem;

  box-shadow:
    0 10px 30px rgba(0,0,0,0.08);
}

.news-label{

  font-family:
    "Poppins",
    sans-serif;

  color:#005e8a;

  font-weight:800;

  letter-spacing:0.15em;
}

/* =========================
   Section
========================= */

.small-title{

  font-family:
    "Poppins",
    sans-serif;

  color:#005e8a;

  font-weight:700;

  letter-spacing:0.3em;

  margin-bottom:10px;
}

.section-title h2{

  font-size:
    clamp(32px,4vw,56px);

  font-weight:900;

  letter-spacing:0.03em;
}

/* =========================
   Clock
========================= */

.clock-card{

  background:white;

  border-radius:30px;

  padding:60px;

  box-shadow:
    0 10px 35px rgba(0,0,0,0.08);
}

#clockDisplay{

  font-family:
    "Orbitron",
    sans-serif;

  text-align:center;

  font-size:
    clamp(52px,8vw,120px);

  font-weight:800;

  color:#004b73;

  letter-spacing:0.08em;

  line-height:1.1;

  text-shadow:
    0 0 12px rgba(0,75,115,0.15);
}

/* =========================
   Form
========================= */

.form-label{

  font-weight:700;

  letter-spacing:0.03em;
}

.form-select{

  border-radius:14px;

  padding:14px 18px;

  font-size:1rem;

  border:1px solid #d7e0e8;

  transition:0.2s;
}

.form-select:focus{

  border-color:#005e8a;

  box-shadow:
    0 0 0 0.2rem rgba(0,94,138,0.15);
}

/* =========================
   Gallery
========================= */

.card{

  border-radius:24px;

  overflow:hidden;

  transition:0.3s;

  border:none;
}

.card:hover{

  transform:
    translateY(-4px);

  box-shadow:
    0 15px 40px rgba(0,0,0,0.12);
}

.gallery-img{

  width:100%;

  aspect-ratio:16/9;

  object-fit:cover;
}

.card-title{

  font-size:1.4rem;

  font-weight:800;

  letter-spacing:0.03em;
}

/* =========================
   Buttons
========================= */

.btn{

  border-radius:999px;

  font-weight:700;

  letter-spacing:0.03em;
}

/* =========================
   Footer
========================= */

footer{

  font-family:
    "Poppins",
    sans-serif;

  letter-spacing:0.08em;

  font-size:0.95rem;
}

/* =========================
   Responsive
========================= */

@media(max-width:991px){

  .hero-section{

    background-attachment:scroll;
  }

}

@media(max-width:768px){

  .hero-section{

    text-align:center;

    min-height:auto;

    padding-top:140px;

    padding-bottom:80px;
  }

  .hero-title{

    line-height:1.25;
  }

  .clock-card{

    padding:35px 20px;
  }

  #clockDisplay{

    font-size:58px;

    letter-spacing:0.03em;
  }

  .news-box{

    padding:24px;
  }

}