/* 高階・黑金質感：黑底、金色細框與細線、置中對稱、照片帶金框。 */
.s-noir { --bg: #0c0b0a; --bg2: #13110f; --fg: #ece4d4; --muted: #a39782; --line: #3a3226; --accent: #c9a45c; --on-accent: #0c0b0a; --card: #15130f;
  --font-head: var(--serif); --head-weight: 600; --h1: clamp(2.4rem, 7vw, 4.6rem); --radius: 0; --radius-btn: 0; color-scheme: dark; }
.s-noir .top { background: rgba(12, 11, 10, .9); border-bottom: 1px solid var(--line); }
.s-noir .brand b { letter-spacing: .3em; color: var(--accent); }
.s-noir .nav .nav-cta { background: transparent; color: var(--accent); border: 1px solid var(--accent); }
.hero-noir { min-height: min(92vh, 820px); display: grid; place-items: center; text-align: center; overflow: hidden; }
.hero-noir .hero-img { position: absolute; inset: 0; }
.hero-noir .hero-img img { filter: brightness(.45) contrast(1.1) saturate(.8); }
.hero-noir .hero-txt { position: relative; padding: 24px; }
.hero-noir .frame { border: 1px solid var(--accent); outline: 1px solid rgba(201, 164, 92, .4); outline-offset: 10px; padding: clamp(36px, 6vw, 64px) clamp(28px, 6vw, 80px); background: rgba(12, 11, 10, .55); backdrop-filter: blur(2px); }
.hero-noir .hero-en { color: var(--accent); letter-spacing: .6em; }
.hero-noir h1 { letter-spacing: .2em; }
.hero-noir .rule { display: block; width: 60px; height: 1px; background: var(--accent); margin: 22px auto 0; }
.hero-noir .hero-lede { margin-inline: auto; color: #cfc4b0; }
.hero-noir .hero-act { justify-content: center; }
.s-noir .btn { background: transparent; color: var(--accent); border: 1px solid var(--accent); letter-spacing: .2em; font-weight: 500; }
.s-noir .btn:hover { background: var(--accent); color: var(--on-accent); }
.s-noir .sec { text-align: center; border-top: 1px solid var(--line); }
.s-noir .sec-h { letter-spacing: .4em; font-size: clamp(1.3rem, 2.6vw, 1.7rem); color: var(--accent); }
.s-noir .sec-h::before, .s-noir .sec-h::after { content: "◆"; font-size: .5em; vertical-align: middle; margin: 0 18px; opacity: .7; }
.s-noir .menu, .s-noir .about, .s-noir .info, .s-noir .days { margin-inline: auto; text-align: left; max-width: 680px; }
.s-noir .menu i { border-color: rgba(201, 164, 92, .4); }
.s-noir .menu .price { color: var(--accent); }
.s-noir .pic { background: none; border: 1px solid rgba(201, 164, 92, .5); padding: 8px; }
.s-noir .pic img { filter: saturate(.85); }
.s-noir .sec-act { justify-content: center; }
.s-noir .person .ini { background: none; border: 1px solid var(--accent); color: var(--accent); }
.s-noir .foot { background: #070606; }
.s-noir .foot-name { color: var(--accent); letter-spacing: .2em; }
.s-noir .notice { background: var(--accent); color: var(--on-accent); }
