
:root{
  --ink:#292522;
  --sub:#6f6862;
  --paper:#fffdf9;
  --paper-2:#f6f0e8;
  --brick:#7f2f2f;
  --brick-dark:#5e2020;
  --gold:#b48a4a;
  --green:#53634c;
  --line:#ded5cb;
  --shadow:0 14px 36px rgba(53,43,35,.09);
  --radius:22px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  line-height:1.75;
}
img{max-width:100%;display:block}
a{color:inherit}
.site-header{
  position:sticky;top:0;z-index:30;
  background:rgba(255,253,249,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(127,47,47,.08);
}
.header-inner{
  max-width:var(--max);margin:auto;padding:14px 22px;
  display:flex;align-items:center;gap:24px;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;letter-spacing:.03em}
.brand-mark{
  display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
  background:var(--brick);color:white;font-size:.82rem;
}
#site-menu{margin-left:auto}
.global-nav{display:flex;gap:20px;align-items:center}
.global-nav a{text-decoration:none;font-size:.92rem;color:#4e4741}
.global-nav a:hover{color:var(--brick)}
.menu-button{display:none;margin-left:auto;border:1px solid var(--line);background:white;padding:9px 12px;border-radius:10px}

.hero{
  min-height:630px;position:relative;display:flex;align-items:flex-end;
  background:
    linear-gradient(120deg,rgba(71,25,25,.12),rgba(31,28,25,.12)),
    url('/assets/images/hero-yamatotakada.webp') center/cover no-repeat,
    linear-gradient(135deg,#8d6658,#c8b8a8);
}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(35,24,20,.76) 0%,rgba(35,24,20,.32) 50%,rgba(35,24,20,.08) 100%);
}
.hero-content{
  position:relative;z-index:1;width:min(var(--max),100%);margin:0 auto;padding:90px 24px 76px;color:white;
}
.eyebrow,.kicker{font-size:.78rem;letter-spacing:.18em;font-weight:800}
.hero h1{font-size:clamp(2.7rem,7vw,5.6rem);line-height:1.05;margin:.2em 0 .3em;letter-spacing:-.04em}
.hero-content>p:not(.eyebrow){font-size:1.16rem}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.button{
  display:inline-flex;align-items:center;justify-content:center;
  padding:12px 20px;border-radius:999px;text-decoration:none;font-weight:700;
}
.button.primary{background:var(--brick);color:white}
.button.ghost{border:1px solid rgba(255,255,255,.7);color:white}
.button.light{background:white;color:var(--brick)}

.section{max-width:var(--max);margin:auto;padding:80px 24px}
.section.muted{max-width:none;background:var(--paper-2)}
.section.muted>*{max-width:var(--max);margin-left:auto;margin-right:auto}
.section-heading{max-width:760px;margin-bottom:34px}
.section-heading.compact{margin-bottom:24px}
.section-heading h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.25;margin:.12em 0 .25em}
.kicker{color:var(--brick)}
.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.feature-card{
  border:1px solid var(--line);border-radius:var(--radius);padding:28px;background:white;box-shadow:var(--shadow)
}
.feature-card h3{font-size:1.4rem;margin:.35em 0}
.feature-card a{color:var(--brick);font-weight:700}
.card-label{font-size:.72rem;letter-spacing:.16em;font-weight:900;color:var(--gold)}

.cards-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.event-card,.news-item{
  background:white;border:1px solid var(--line);border-radius:18px;padding:22px
}
.event-card h3,.news-item h3{margin:.35em 0}
.status{
  display:inline-block;padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:800;
  background:#eee4db;color:var(--brick-dark)
}
.meta{font-size:.86rem;color:var(--sub)}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.photo-card{background:white;border-radius:18px;overflow:hidden;border:1px solid var(--line)}
.photo-card img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#ddd}
.photo-card .photo-body{padding:14px 16px}
.photo-card h3{font-size:1rem;margin:0 0 4px}
.photo-card p{font-size:.86rem;color:var(--sub);margin:0}
.news-list{display:grid;gap:12px}
.news-row{
  display:grid;grid-template-columns:120px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none
}
.news-row time{color:var(--sub)}
.section-more{text-align:right;margin-top:22px}
.section-more a{color:var(--brick);font-weight:800}

.walk-banner{
  max-width:var(--max);margin:0 auto 80px;padding:42px 46px;border-radius:30px;
  background:linear-gradient(135deg,var(--brick-dark),var(--brick));color:white;
  display:flex;justify-content:space-between;align-items:end;gap:30px
}
.walk-banner h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.2;margin:.15em 0}

.page-hero{
  max-width:var(--max);margin:0 auto;padding:64px 24px 24px
}
.page-hero h1{font-size:clamp(2.4rem,5vw,4.5rem);line-height:1.15;margin:.15em 0}
.page-content{max-width:var(--max);margin:auto;padding:30px 24px 90px}
.prose{max-width:820px}
.prose h2{margin-top:2.4em}
.placeholder-box{
  border:1px dashed var(--line);background:var(--paper-2);padding:30px;border-radius:18px;color:var(--sub)
}

.site-footer{background:#27231f;color:#f6f0e8;padding:46px 24px}
.footer-inner{max-width:var(--max);margin:auto}
.footer-links{display:flex;flex-wrap:wrap;gap:18px;margin:20px 0}
.footer-links a{color:#f6f0e8}
.copyright{font-size:.8rem;color:#bfb5ab}

.error-page{
  min-height:72vh;display:grid;place-items:center;padding:60px 24px;text-align:center
}
.error-code{font-size:clamp(6rem,20vw,12rem);font-weight:900;line-height:.8;color:var(--brick);opacity:.14}
.error-page h1{font-size:clamp(2rem,4vw,3rem)}

.loading,.empty-state{color:var(--sub);padding:24px;border:1px dashed var(--line);border-radius:14px}

@media (max-width:860px){
  .dashboard-grid,.cards-list{grid-template-columns:1fr}
  .photo-grid{grid-template-columns:repeat(2,1fr)}
  .menu-button{display:block}
  #site-menu{
    display:none;position:absolute;left:0;right:0;top:73px;background:var(--paper);padding:12px 20px 24px;border-bottom:1px solid var(--line)
  }
  #site-menu.open{display:block}
  .global-nav{align-items:stretch;flex-direction:column;gap:0}
  .global-nav a{padding:12px 4px;border-bottom:1px solid #eee5dd}
  .brand-text{font-size:.94rem}
  .hero{min-height:500px}
  .walk-banner{margin-left:16px;margin-right:16px;align-items:flex-start;flex-direction:column;padding:34px 28px}
  .news-row{grid-template-columns:1fr;gap:2px}
}
@media (max-width:560px){
  .header-inner{padding:12px 16px}
  .hero-content{padding:44px 18px 42px}
  .section{padding:60px 18px}
  .photo-grid{gap:10px}
  .photo-card .photo-body{padding:11px 12px}
}

/* 2026-09 public-ready accessibility / polish */
.menu-button{font-weight:700;color:var(--ink);cursor:pointer}
.menu-button:focus-visible,
a:focus-visible{outline:3px solid rgba(180,138,74,.55);outline-offset:3px}
@media (max-width:560px){
  .hero h1{font-size:clamp(2.45rem,13vw,3.8rem)}
  .hero-content>p:not(.eyebrow){font-size:1.04rem}
  .hero-actions{margin-top:20px}
}
