:root{
  --sidebar-w: 290px;
  --navy: #1f2a63;
  --navy-deep: #1a2257;
  --purple-dark: #281a4c;
  --purple-deeper: #221541;
  --olive: #8d8c3e;
  --olive-light: #a3a24a;
  --gold: #c9a227;
  --paper: #ece9e3;
  --paper-card: #ffffff;
  --ink: #2c2a28;
  --ink-soft: #4a4640;
  --line: #cfcac0;
}

*{margin:0;padding:0;box-sizing:border-box;}

html,body{
  font-family:"Noto Serif JP", serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.9;
}

/* ============ SIDEBAR ============ */
.sidebar{
  position:fixed;
  top:0;left:0;
  width:var(--sidebar-w);
  height:100vh;
  overflow-y:auto;
  background:linear-gradient(180deg,var(--purple-dark) 0%, var(--purple-deeper) 100%);
  color:#e4e0f2;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:36px 0 24px;
  z-index:10;
}

.seal{
  width:96px;height:96px;
  opacity:.85;
}
.seal .fol-circle, .seal .fol-ring{stroke:#cfcbe8;}
.seal .fol-star{stroke:#b9b4dd;}
.seal .fol-dot{fill:#cfcbe8;}

.brand-logo{
  width:90px;
  height:525px;
  margin:0 0 14px;
}

.nav-wrap{
  width:100%;
  flex:1;
  padding:0 26px;
}
.nav-wrap ul{list-style:none;}
.nav-wrap li{
  border-bottom:1px solid rgba(255,255,255,.16);
}
.nav-wrap li:first-child{border-top:1px solid rgba(255,255,255,.16);}
.nav-wrap a{
  display:block;
  padding:13px 4px;
  color:#e6e3f3;
  text-decoration:none;
  font-size:14px;
  letter-spacing:.02em;
  line-height:1.7;
  transition:color .2s ease, padding-left .2s ease;
}
.nav-wrap a:hover{
  color:#fff;
  padding-left:10px;
}
.nav-wrap li.is-active{
  border:none;
  margin:14px 0 2px;
}
.nav-wrap li.is-active a{
  background:var(--olive);
  color:#fff;
  text-align:center;
  padding:14px 8px;
  border-radius:1px;
  letter-spacing:.06em;
}
.nav-wrap li.is-active a:hover{
  padding-left:8px;
  background:var(--olive-light);
}

.sidebar-collapsible{
  display:flex;
  flex-direction:column;
  align-items:center;
  width:100%;
}

.sidebar-seal-bottom{
  display:block;
  width:80px;
  height:80px;
  margin:26px 0 14px;
}

.copyright{
  font-size:11px;
  color:#bdb8d8;
  letter-spacing:.04em;
  padding-bottom:6px;
}

/* ============ MAIN ============ */
main{
  margin-left:var(--sidebar-w);
}

/* HERO */
.hero{
  position:relative;
  width:100%;
  line-height:0;
}
.hero-image{
  display:block;
  width:100%;
  height:auto;
}

/* CENTER EMBLEM */
.emblem-large-wrap{
  display:flex;
  justify-content:center;
  padding:54px 24px 40px;
}
.emblem-large{
  display:block;
  width:150px;
  height:150px;
}

/* IZANAI HEADING */
.izanai-heading{
  text-align:center;
  font-family:"Yuji Syuku", serif;
  font-size:clamp(22px, 3vw, 36px);
  font-weight:500;
  color:var(--purple-dark);
  letter-spacing:.12em;
  line-height:1.6;
  padding:0 24px 48px;
}

/* DOUJUTSU IMAGE */
.doujutsu-wrap{
  max-width:700px;
  margin:0 auto 56px;
  padding:0 24px;
}
.doujutsu-image{
  display:block;
  width:100%;
  height:auto;
}

/* IF SECTION */
.if-section{
  max-width:700px;
  margin:0 auto;
  padding:0 24px 60px;
}
.section-head{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--navy);
  font-family:"Shippori Mincho", serif;
  font-size:22px;
  font-weight:700;
  letter-spacing:.06em;
  padding-bottom:14px;
  border-bottom:1px solid var(--navy);
  margin-bottom:26px;
}
.section-head .mark{color:var(--navy);font-size:20px;}

ul.bullets{
  list-style:none;
  margin-bottom:32px;
}
ul.bullets li{
  position:relative;
  padding-left:1.3em;
  font-size:15px;
  color:var(--ink);
  margin-bottom:6px;
}
ul.bullets li::before{
  content:"●";
  position:absolute;
  left:0;
  font-size:.7em;
  top:.5em;
  color:var(--ink);
}

.lead-text{
  font-size:15px;
  margin-bottom:8px;
}

.divider{
  border:none;
  border-top:1px solid var(--line);
  margin:36px 0;
}

.reverse-text{
  font-size:15px;
}

/* CONTENT IMAGE (no frame) */
.content-image-wrap{
  max-width:700px;
  margin:0 auto 56px;
  padding:0 24px;
}
.content-image{
  display:block;
  width:100%;
  height:auto;
}

/* BANNER */
.banner{
  background:linear-gradient(90deg, var(--navy-deep), var(--purple-dark));
  color:#fff;
  text-align:center;
  font-family:"Shippori Mincho", serif;
  font-size:20px;
  letter-spacing:.18em;
  padding:24px 16px;
}

.mobile-brand{
  display:none;
}

/* HAMBURGER BUTTON */
.menu-toggle{
  display:none;
  position:fixed;
  top:12px;
  right:16px;
  z-index:30;
  width:42px;height:42px;
  background:transparent;
  border:none;
  cursor:pointer;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
}
.menu-toggle span{
  display:block;
  width:24px;height:2px;
  background:#fff;
  border-radius:1px;
  transition:transform .2s ease, opacity .2s ease;
}
.sidebar.is-open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.sidebar.is-open .menu-toggle span:nth-child(2){opacity:0;}
.sidebar.is-open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* RESPONSIVE */
@media (max-width: 900px){
  :root{--sidebar-w:0px;}

  .sidebar{
    position:fixed;
    top:0;left:0;right:0;
    width:100%;
    height:56px;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    padding:0;
    overflow:visible;
    z-index:20;
  }
  .brand-logo{display:none;}

  .mobile-brand{
    display:block;
    position:fixed;
    top:0;left:0;
    height:56px;
    line-height:56px;
    padding-left:18px;
    font-family:"Shippori Mincho", serif;
    letter-spacing:.3em;
    font-size:14px;
    color:#fff;
  }

  .menu-toggle{display:flex;}

  main{margin-left:0; padding-top:56px;}

  .sidebar-collapsible{
    display:none;
    position:absolute;
    top:56px;left:0;right:0;
    width:100%;
    max-height:calc(100vh - 56px);
    overflow-y:auto;
    background:linear-gradient(180deg,var(--purple-dark) 0%, var(--purple-deeper) 100%);
    flex-direction:column;
    align-items:center;
    padding:10px 0 24px;
  }
  .sidebar.is-open .sidebar-collapsible{
    display:flex;
  }

  .nav-wrap{width:100%;padding:0 26px;}

  .hero{height:340px;}
}

