@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Shippori+Mincho:wght@600;800&display=swap');

:root{
  --brand-50:#fdf2f2;
  --brand-100:#fbe1e1;
  --brand-600:#b3272d;
  --brand-700:#9a1f24;
  --brand-800:#7c181c;
  --ink:#241c1c;
}

html{scroll-behavior:smooth;}
body{
  font-family:'Noto Sans JP',sans-serif;
  color:var(--ink);
  background:#fffaf8;
}
.font-mincho{font-family:'Shippori Mincho',serif;}

/* nav */
#site-nav{transition:background-color .25s ease, box-shadow .25s ease, backdrop-filter .25s ease;}
#site-nav.scrolled{background-color:rgba(255,255,255,.96);backdrop-filter:blur(6px);box-shadow:0 2px 14px rgba(0,0,0,.06);}

.nav-link{position:relative;}
.nav-link::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--brand-600);transition:width .2s ease;}
.nav-link:hover::after{width:100%;}

/* mobile menu */
#mobile-menu{max-height:0;overflow:hidden;transition:max-height .3s ease;}
#mobile-menu.open{max-height:600px;}

/* hero */
.hero-overlay{background:linear-gradient(115deg, rgba(36,20,20,.78) 0%, rgba(36,20,20,.45) 45%, rgba(36,20,20,.15) 75%);}

/* cards */
.lift{transition:transform .25s ease, box-shadow .25s ease;}
.lift:hover{transform:translateY(-6px);box-shadow:0 18px 32px -14px rgba(154,31,36,.35);}

/* stat counter */
.stat-num{font-feature-settings:"tnum";}

/* accordion */
.faq-item .faq-icon{transition:transform .25s ease;}
.faq-item.open .faq-icon{transform:rotate(45deg);}
.faq-item .faq-body{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-item.open .faq-body{max-height:400px;}

/* gallery lightbox */
#lightbox{background:rgba(20,10,10,.92);}
#lightbox.hidden{display:none;}

/* number badge */
.num-badge{font-family:'Shippori Mincho',serif;}

::-webkit-scrollbar{width:10px;}
::-webkit-scrollbar-thumb{background:var(--brand-100);border-radius:8px;}
::-webkit-scrollbar-track{background:#fff;}
