/* ============================================================
   月白神社（架空デモ）— 白×墨×朱の和モダン
   ============================================================ */
:root{
  --white:#fdfdfb;
  --washi:#f7f5f0;
  --sumi:#211e1a;
  --sumi-soft:#59544c;
  --shu:#b3402e;
  --kin:#b28e4c;
  --line:#e6e2d8;
  --serif:'Shippori Mincho','Noto Serif JP',serif;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:var(--serif);font-weight:400;color:var(--sumi);background:var(--white);line-height:2.2;letter-spacing:.08em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
.container{max-width:1080px;margin:0 auto;padding:0 24px}
.section{padding:110px 0}

/* 和紙のざらつき */
body::after{
  content:'';position:fixed;inset:0;z-index:9990;pointer-events:none;opacity:.05;mix-blend-mode:multiply;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* 見出し（小ラベル＋大見出し） */
.sec-label{display:flex;align-items:center;gap:12px;font-size:.8rem;letter-spacing:.32em;color:var(--shu);margin-bottom:14px}
.sec-label::before{content:'';width:34px;height:1px;background:var(--shu)}
.sec-title{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:600;letter-spacing:.14em;line-height:1.7}
.sec-en{font-size:.72rem;letter-spacing:.4em;color:var(--kin);margin-top:10px;text-transform:uppercase}

.reveal{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s ease}
.reveal.is-visible{opacity:1;transform:none}

.btn{display:inline-block;border:1px solid var(--sumi);padding:16px 52px;font-size:.9rem;letter-spacing:.3em;text-indent:.3em;transition:.35s;background:transparent}
.btn:hover{background:var(--sumi);color:var(--white)}
.btn-shu{border-color:var(--shu);background:var(--shu);color:#fff}
.btn-shu:hover{background:#963526;border-color:#963526;color:#fff}

/* ---------- header ---------- */
header{position:fixed;inset:0 0 auto;z-index:100;background:rgba(253,253,251,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header-in{max-width:1240px;margin:0 auto;padding:16px 28px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;flex-direction:column;line-height:1.4}
.logo b{font-size:1.28rem;font-weight:600;letter-spacing:.3em}
.logo span{font-size:.6rem;letter-spacing:.42em;color:var(--kin);text-transform:uppercase}
nav.gnav ul{display:flex;gap:30px;align-items:center}
nav.gnav a{font-size:.86rem;letter-spacing:.18em;color:var(--sumi-soft);transition:color .3s;padding:4px 0}
nav.gnav a:hover,nav.gnav a.current{color:var(--shu)}
nav.gnav a.current{border-bottom:1px solid var(--shu)}
.menu-btn{display:none;background:none;border:none;cursor:pointer;width:44px;height:44px;position:relative;z-index:110}
.menu-btn span{position:absolute;left:10px;width:24px;height:1px;background:var(--sumi);transition:.3s}
.menu-btn span:nth-child(1){top:18px}.menu-btn span:nth-child(2){top:25px}
body.menu-open .menu-btn span:nth-child(1){top:22px;transform:rotate(30deg)}
body.menu-open .menu-btn span:nth-child(2){top:22px;transform:rotate(-30deg)}
#fullnav{display:none}

/* ---------- hero（トップ） ---------- */
.hero{position:relative;height:92vh;min-height:560px;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:no-preference){
  .hero-bg img{animation:kenburns 24s ease-out both}
}
@keyframes kenburns{from{transform:scale(1.07)}to{transform:scale(1)}}
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,10,.18),rgba(20,16,10,.02) 40%,rgba(20,16,10,.3))}
.hero-copy{position:absolute;right:8%;top:50%;transform:translateY(-50%);z-index:2;writing-mode:vertical-rl;color:#fff;text-shadow:0 2px 22px rgba(0,0,0,.45)}
.hero-copy h1{font-size:clamp(1.9rem,4vw,3rem);font-weight:600;letter-spacing:.32em;line-height:2}
.hero-copy p{font-size:.92rem;letter-spacing:.34em;margin-right:26px;margin-top:8px;color:rgba(255,255,255,.85)}
.hero-name{position:absolute;left:7%;bottom:9%;z-index:2;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.4)}
.hero-name b{display:block;font-size:1.5rem;font-weight:600;letter-spacing:.5em}
.hero-name span{font-size:.66rem;letter-spacing:.42em;color:rgba(255,255,255,.75);text-transform:uppercase}
.hero-scroll{position:absolute;left:50%;bottom:0;z-index:2;width:1px;height:84px;background:rgba(255,255,255,.5);overflow:hidden}
.hero-scroll::after{content:'';position:absolute;left:0;top:-40%;width:1px;height:40%;background:#fff;animation:scrollline 2.2s ease-in-out infinite}
@keyframes scrollline{to{top:120%}}

/* ---------- お知らせ帯 ---------- */
.news-strip{background:var(--washi);border-bottom:1px solid var(--line)}
.news-strip .container{display:flex;align-items:center;gap:26px;padding-top:20px;padding-bottom:20px;flex-wrap:wrap}
.news-strip .t{font-size:.8rem;letter-spacing:.3em;color:var(--shu);flex:none}
.news-strip a{display:flex;gap:16px;font-size:.84rem;color:var(--sumi-soft);align-items:baseline}
.news-strip a:hover{color:var(--shu)}
.news-strip time{font-size:.74rem;color:var(--kin);letter-spacing:.1em;flex:none}

/* ---------- ご案内カード ---------- */
.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:56px}
.guide-card{display:block;background:var(--white);border:1px solid var(--line);transition:.35s}
.guide-card:hover{border-color:var(--kin);transform:translateY(-4px);box-shadow:0 18px 40px rgba(33,30,26,.08)}
.guide-card figure{overflow:hidden;aspect-ratio:4/3}
.guide-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.guide-card:hover img{transform:scale(1.04)}
.guide-card .tx{padding:22px 24px 26px}
.guide-card h3{font-size:1.05rem;font-weight:600;letter-spacing:.2em}
.guide-card small{display:block;font-size:.68rem;letter-spacing:.32em;color:var(--kin);margin-top:4px;text-transform:uppercase}
.guide-card p{font-size:.82rem;line-height:2;color:var(--sumi-soft);margin-top:12px}

/* ---------- 情報行 ---------- */
.info-rows{border-top:1px solid var(--line);margin-top:48px}
.info-row{display:grid;grid-template-columns:210px 1fr;border-bottom:1px solid var(--line);padding:24px 8px;font-size:.9rem}
.info-row dt{letter-spacing:.24em;color:var(--shu)}
.info-row dd{color:var(--sumi-soft);line-height:2.1}

/* ---------- 下層ページ共通 ---------- */
.page-hero{position:relative;padding:170px 0 74px;background:var(--washi);overflow:hidden;text-align:center}
.page-hero .ph-bg{position:absolute;inset:0}
.page-hero .ph-bg img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.page-hero .ph-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(247,245,240,.82),rgba(247,245,240,.94))}
.page-hero .container{position:relative;z-index:1}
.page-hero h1{font-size:clamp(1.9rem,4vw,2.7rem);font-weight:600;letter-spacing:.3em}
.page-hero .en{font-size:.72rem;letter-spacing:.44em;color:var(--kin);margin-top:12px;text-transform:uppercase}
.crumbs{font-size:.72rem;color:var(--sumi-soft);margin-top:18px;letter-spacing:.14em}
.crumbs a:hover{color:var(--shu)}

/* ---------- 授与品 ---------- */
.item-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:52px}
.item-card{border:1px solid var(--line);background:#fff;transition:.35s}
.item-card:hover{border-color:var(--kin);transform:translateY(-4px)}
.item-card figure{aspect-ratio:1;overflow:hidden;background:#fff}
.item-card img{width:100%;height:100%;object-fit:cover}
.item-card .tx{padding:18px 18px 22px;text-align:center}
.item-card h3{font-size:.95rem;font-weight:600;letter-spacing:.16em}
.item-card p{font-size:.76rem;color:var(--sumi-soft);margin-top:6px;line-height:1.9}
.item-card .price{display:inline-block;margin-top:10px;font-size:.82rem;color:var(--shu);letter-spacing:.14em;border-top:1px solid var(--line);padding-top:8px}

/* オンライン授与所バナー */
.ec-banner{margin-top:64px;border:1px solid var(--kin);background:linear-gradient(135deg,#faf7f0,#fdfdfb);padding:44px 36px;text-align:center;position:relative;overflow:hidden}
.ec-banner::before{content:'';position:absolute;right:-60px;top:-60px;width:190px;height:190px;border-radius:50%;border:1px solid rgba(178,142,76,.4)}
.ec-banner::after{content:'';position:absolute;right:36px;top:26px;width:12px;height:12px;border-radius:50%;background:var(--kin);opacity:.6}
.ec-banner h3{font-size:1.15rem;font-weight:600;letter-spacing:.24em}
.ec-banner p{font-size:.84rem;color:var(--sumi-soft);margin-top:12px}
.ec-banner .soon{display:inline-block;margin-top:20px;font-size:.76rem;letter-spacing:.3em;color:var(--kin);border:1px solid var(--kin);padding:9px 26px}

/* ---------- 祭事表 ---------- */
.saiji-list{border-top:1px solid var(--line);margin-top:52px}
.saiji-row{display:grid;grid-template-columns:150px 240px 1fr;gap:14px;border-bottom:1px solid var(--line);padding:26px 8px;font-size:.9rem;align-items:baseline}
.saiji-row .m{color:var(--shu);letter-spacing:.2em}
.saiji-row .n{font-weight:600;letter-spacing:.16em}
.saiji-row .d{color:var(--sumi-soft);font-size:.82rem;line-height:2}

/* ---------- 2カラム記事 ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:56px}
.split figure{overflow:hidden}
.split img{width:100%}
.split h3{font-size:1.2rem;font-weight:600;letter-spacing:.2em;margin-bottom:18px}
.split p{font-size:.9rem;color:var(--sumi-soft);line-height:2.3}

/* ---------- footer ---------- */
footer{background:var(--sumi);color:rgba(255,255,255,.78);margin-top:110px}
footer .f-in{max-width:1080px;margin:0 auto;padding:64px 24px 40px;display:grid;grid-template-columns:1fr auto;gap:40px}
footer .f-name b{display:block;font-size:1.2rem;font-weight:600;letter-spacing:.4em;color:#fff}
footer .f-name span{font-size:.62rem;letter-spacing:.4em;color:var(--kin);text-transform:uppercase}
footer .f-name p{font-size:.8rem;margin-top:18px;line-height:2.2;color:rgba(255,255,255,.6)}
footer nav{display:grid;gap:12px;font-size:.82rem;letter-spacing:.18em;align-content:start}
footer nav a:hover{color:var(--kin)}
.f-demo{border-top:1px solid rgba(255,255,255,.12);text-align:center;font-size:.72rem;color:rgba(255,255,255,.45);padding:20px 24px;line-height:2}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .section{padding:80px 0}
  nav.gnav{display:none}
  .menu-btn{display:block}
  #fullnav{display:flex;position:fixed;inset:0;background:rgba(253,253,251,.98);z-index:105;flex-direction:column;align-items:center;justify-content:center;gap:28px;opacity:0;pointer-events:none;transition:opacity .35s}
  body.menu-open #fullnav{opacity:1;pointer-events:auto}
  #fullnav a{font-size:1rem;letter-spacing:.3em}
  .hero-copy{right:10%}
  .guide-grid{grid-template-columns:1fr;gap:20px}
  .item-grid{grid-template-columns:repeat(2,1fr);gap:16px}
  .info-row{grid-template-columns:1fr;gap:6px;padding:18px 4px}
  .saiji-row{grid-template-columns:1fr;gap:4px}
  .split{grid-template-columns:1fr;gap:30px}
  footer .f-in{grid-template-columns:1fr;gap:30px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
