html {
  scroll-behavior: smooth;
}
/* === updated .pagetop and .pagetop__arrow === */
.pagetop {
  position: fixed;
  right: 2vw;
  bottom: 2vw;
  z-index: 1000;
  display: none;
  background: linear-gradient(120deg,#39B795 60%,#6dd5ed 100%);
  border-radius: 50%;
  width: 56px;
  height: 56px;
  box-shadow: 0 2px 12px rgba(57,183,149,0.18);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.pagetop__arrow {
  border: solid #fff;
  border-width: 0 6px 6px 0;
  display: inline-block;
  padding: 12px;
  transform: rotate(-135deg);
  -webkit-transform: rotate(-135deg);
}

body {
  font-family: 'Montserrat', 'BIZ UDGothic', sans-serif;
  background: #f8fafc;
  color: #222;
}
.br-pc {display: block;}
.br-sp {display: none;}

.main-text {
font-size:2.5rem;
font-family: "Helvetica Neue",
  Arial,
  "Hiragino Kaku Gothic ProN",
  "Hiragino Sans",
  Meiryo,
  sans-serif;      
}

@keyframes scroll-anim {
from {
  opacity: 0;
  scale: 0.9;
}
to {
  opacity: 1;
  scale: 1;
}
}

.fade-in {
animation: scroll-anim linear;
animation-timeline: view();
animation-range: entry 0% contain 20%;
}

.news-list {
list-style: none outside;
margin: 80px 0;
padding: 0;
}

.news-list .item a {
display: flex;
flex-wrap: wrap;
flex-wrap: nowrap;
text-decoration: none;
color: #333;
border-bottom: 1px solid #CCC;
padding: 20px 20px;
}

.news-list .item:first-child a {
border-top: none;
}

.news-list .item .date {
margin: 0;
min-width: 120px;
font-size: 16px;
color: #999;
padding: 0 20px 0 0;
}

.news-list .item .title {
margin: 0;
width: 100%;
}

.news-list .item a:hover .title {
color: #08F;
}

@media screen and (max-width: 767px) {
.br-pc {display: none;}
.br-sp {display: block;}

.word_break {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.justify {
  text-align: justify; /* 均等揃え */
};


.menu-btn-margin {
  margin-top:15px;
  margin-bottom:15px;
}

.main-text {
  font-size:1.0rem;
}

.news-list .item a {
  flex-wrap: wrap;
}

.news-list .item .date {
  min-width: 100px;
}

.news-list .item .title {
  margin-top: 10px;
}
}



.table-section {
  border-bottom:1px solid #DDD;
}
.table-section div p {
  padding-top:5px!important;
  padding-bottom:5px!important;
  margin:10px 0!important;
}
.table-section label {
  font-size:22px;
  padding-top:5px!important;
  padding-bottom:5px!important;
  margin-top:5px;
}    

.youtube {
  width: 100%;
  aspect-ratio: 16 / 9;
}
.youtube iframe {
  width: 100%;
  height: 100%;
}


/* override */
.btn-success {
background: radial-gradient(#68C975,#39B795)!important;
color:#FFF!important;
}

.youtube {
position: relative;
width: 100%;
padding-top: 56.25%;
}

.youtube iframe {
position: absolute;
top: 0;
right: 0;
width: 100% !important;
height: 100% !important;
}

.accordion {
  --bs-accordion-active-bg:#39B795!important;
  --bs-accordion-active-color:#FFF!important;
}
/* ========= Merged from inline styles (index.html &amp; entry.html) ========= */
.navbar {
  background: rgba(255,255,255,0.95) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07);
  backdrop-filter: blur(8px);
}
.navbar-brand img {
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.08));
}

.main-visual {
  position: relative;
  min-height: 500px;
  margin-top: 80px;
  background: linear-gradient(120deg, #39B795 60%, #6dd5ed 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.main-visual img.bg {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.65;
}
.main-visual .overlay {
  position: absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(120deg,rgba(57,183,149,0.2) 60%,rgba(109,213,237,0.15) 100%);
  opacity: 0;
  animation: fadeInOverlay 1s ease-in-out 0.5s forwards;
}

@keyframes fadeInOverlay {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes fadeInText {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.fade-in-section {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.fade-in-section.visible {
  opacity: 1;
  transform: translateY(0);
}

.main-visual .main-text {
  position: relative;
  z-index: 2;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,0.18);
  font-size: 2.1rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.5em;
  opacity: 0;
  animation: fadeInText 1s ease-in-out 1s forwards;
}

section {
  padding: 64px 0 48px 0;
}
section#news {
  padding: 48px 0 32px 0;
}
.section-title {
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 2.5rem;
  text-align: center;
  color: #39B795;
  letter-spacing: 0.04em;
}

.footer {
  background: linear-gradient(90deg,#39B795 60%,#6dd5ed 100%);
  color: #fff;
  border-top-left-radius: 2em;
  border-top-right-radius: 2em;
  margin-top: 120px;
  box-shadow: 0 -2px 16px rgba(57,183,149,0.08);
}
.footer a { color: #fff; opacity: 0.9; transition: opacity 0.2s; }
.footer a:hover { opacity: 1; text-decoration: underline; }

/* Entry page compact hero */
.main-visual--compact { min-height: 340px; }
.main-visual--compact img.bg { opacity: 0.45; }
.main-visual--compact .overlay {
  background: linear-gradient(120deg,rgba(57,183,149,0.7) 60%,rgba(109,213,237,0.5) 100%);
  opacity: 1;
  animation: none;
}

/* Cards / Tables / Buttons used on entry and index */
.card-modern {
  border-radius: 1.2rem;
  box-shadow: 0 4px 24px rgba(57,183,149,0.08);
  border: none;
  transition: all 0.3s ease;
  overflow: hidden;
}
.card-modern:hover {
  box-shadow: 0 8px 32px rgba(57,183,149,0.18);
  transform: translateY(-4px);
}
.card-modern .card-header {
  font-weight: 700;
  font-size: 1.1rem;
  text-align: center;
  padding: 1rem;
  border: none;
}
.card-modern .card-title {
  font-weight: 700;
  font-size: 1.3rem;
  margin-bottom: 1rem;
  text-align: center;
}
.card-modern .card-body { padding: 1.5rem; }
.card-modern ul { margin-bottom: 1.5rem; }
.card-modern ul li {
  padding: 0.3rem 0;
  font-size: 0.95rem;
  line-height: 1.4;
  position: relative;
  padding-left: 1.2rem;
}
.card-modern ul li:before {
  content: "⚽";
  position: absolute;
  left: 0;
  color: #39B795;
}

.table-modern {
  background: #fff;
  border-radius: 1.2rem;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(57,183,149,0.08);
  border: none;
}
.table-modern th {
  background: #39B795;
  color: #fff;
  font-weight: 600;
  border: none;
  padding: 1.2rem 1.5rem;
  vertical-align: middle;
  font-size: 1rem;
}
.table-modern td {
  padding: 1.2rem 1.5rem;
  border-bottom: 1px solid rgba(57,183,149,0.1);
  line-height: 1.6;
  font-size: 1rem;
}
.table-modern tr:last-child td { border-bottom: none; }
.table-modern tr:hover { background-color: rgba(57,183,149,0.05); }

.btn-modern {
  border-radius: 2em;
  font-weight: 600;
  padding: 0.7em 2.2em;
  background: linear-gradient(90deg,#39B795 60%,#6dd5ed 100%);
  color: #fff;
  border: none;
  box-shadow: 0 2px 8px rgba(57,183,149,0.12);
  transition: background 0.2s, box-shadow 0.2s;
}
.btn-modern:hover {
  background: linear-gradient(90deg,#6dd5ed 60%,#39B795 100%);
  color: #fff;
  box-shadow: 0 4px 16px rgba(57,183,149,0.18);
}

@media (max-width: 768px) {
  .main-visual .main-text { font-size: 1.3rem; }
  section { padding: 40px 0 32px 0; }
  .section-title { font-size: 1.3rem; }

  .table-modern th,
  .table-modern td {
    display: block;
    width: 100% !important;
    box-sizing: border-box;
  }
  .table-modern th { border-bottom: none; margin-bottom: 0.5rem; }
  .table-modern td { border-bottom: 1px solid rgba(57,183,149,0.1); margin-bottom: 1rem; }
  .table-modern tr:last-child td { border-bottom: none; margin-bottom: 0; }
}


/* =========================
   Enije content styling
   (about section on index.html)
   ========================= */
.enije-content{
  background:#ffffff;
  border-radius:16px;
  padding:32px;
  box-shadow:0 10px 30px rgba(0,0,0,.06);
  border:1px solid rgba(0,0,0,.06);
}

/* helpers */
.word_break{word-break:break-word;overflow-wrap:break-word;}
.text-green{color:#1fa37c;}

/* highlight (mission) */
.enije-highlight{
  background:linear-gradient(135deg,#f5fbff 0%,#f0fff7 100%);
  border:1px solid rgba(31,163,124,.15);
  border-left:6px solid #1fa37c;
  border-radius:12px;
  padding:20px 20px 16px;
}
.enije-mission{
  font-weight:800;
  letter-spacing:.02em;
  margin-bottom:.25rem;
}

/* achievement & future cards */
.enije-achievement,
.enije-future{
  background:#ffffff;
  border-radius:12px;
  padding:20px 24px;
  border:1px solid rgba(0,0,0,.06);
  position:relative;
}
.enije-achievement::before,
.enije-future::before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:6px;
  border-radius:12px 0 0 12px;
}
.enije-achievement::before{background:linear-gradient(180deg,#22c55e,#16a34a);} /* green */
.enije-future::before{background:linear-gradient(180deg,#38bdf8,#0ea5e9);}     /* blue */

/* representative card (right column) */
.profile-card{
  background:#ffffff;
  border-radius:16px;
  padding:24px;
  border:1px solid rgba(0,0,0,.06);
  box-shadow:0 8px 24px rgba(0,0,0,.06);
}
.profile-badge .badge{font-weight:600;}

/* organization cards */
.rep-card,
.timeline-card{
  background:#ffffff;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.06);
  box-shadow:0 6px 18px rgba(0,0,0,.05);
}

/* timeline */
.timeline{margin:0;padding-left:18px;position:relative;}
.timeline::before{content:"";position:absolute;left:6px;top:2px;bottom:2px;width:2px;background:#e2e8f0;}
.timeline-item{display:flex;gap:12px;align-items:center;margin:10px 0;position:relative;}
.timeline-item::before{content:"";position:absolute;left:-12px;width:10px;height:10px;border-radius:50%;background:#1fa37c;box-shadow:0 0 0 3px #e8faf4;}
.timeline-item .year{flex:0 0 80px;font-weight:700;color:#1f2937;}
.timeline-item .event{flex:1;color:#334155;}

/* utility tables */
.table-modern th{background:#f8fafc;color:#0f172a;}
.table-modern td, .table-modern th{vertical-align:middle;}

/* spacing tweaks */
#enije .enije-content p{margin-bottom:1rem;}

/* responsive */
@media (max-width: 991.98px){
  .enije-content{padding:22px;border-radius:12px;}
  .enije-highlight{padding:16px;border-left-width:5px;}
  .timeline-item .year{flex:0 0 70px;}
}
@media (max-width: 575.98px){
  .enije-content{padding:18px;}
  .timeline{padding-left:14px;}
  .timeline-item{gap:8px;}
  .timeline-item .year{flex:0 0 62px;font-size:.95rem;}
}