@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD（リパブリュー沼津店）
    Theme URI: https://swell-theme.com/
    Description: 駅前ビール工場リパブリュー（沼津店）用 SWELL子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ==========================================================
   Base
   ========================================================== */
:root {
  --nz-bg: #0b0a09;
  --nz-panel: #161412;
  --nz-panel2: #1b1916;
  --nz-line: #2e2a25;
  --nz-gold: #c8a75a;
  --nz-goldline: #5a4c2c;
  --nz-red: #d0202e;
  --nz-text: #f3efe7;
  --nz-sub: #cfc8bb;
  --nz-mute: #a8a093;
  --nz-faint: #8f877a;
  --nz-gutter: clamp(20px, 6vw, 80px);
  --nz-mincho: "Shippori Mincho B1", serif;
  --nz-lato: "Lato", sans-serif;
}
body.nz-body {
  margin: 0;
  background: var(--nz-bg);
  color: var(--nz-text);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.nz-body *, .nz-body *::before, .nz-body *::after { box-sizing: border-box; }
.nz-body a { color: inherit; text-decoration: none; }
.nz-body a:hover { opacity: .85; }
.nz-body img { max-width: 100%; }
.nz-body h1, .nz-body h2, .nz-body h3, .nz-body p, .nz-body ul, .nz-body ol, .nz-body dl, .nz-body dd, .nz-body figure { margin: 0; }
.nz-body h1::before, .nz-body h1::after, .nz-body h2::before, .nz-body h2::after, .nz-body h3::before, .nz-body h3::after { content: none; }
.nz-page { min-height: 100vh; display: flex; flex-direction: column; background: var(--nz-bg); }
.nz-mincho { font-family: var(--nz-mincho); font-weight: 700; }
.nz-lato { font-family: var(--nz-lato); font-weight: 700; }
.nz-eyebrow { font-family: var(--nz-lato); font-weight: 700; font-size: 13px; letter-spacing: .3em; color: var(--nz-gold); }
.nz-rule { display: block; width: 40px; height: 1px; background: var(--nz-gold); }
.nz-wrap { max-width: 1360px; width: 100%; margin: 0 auto; padding-left: var(--nz-gutter); padding-right: var(--nz-gutter); }
.nz-cover { width: 100%; height: 100%; object-fit: cover; display: block; background: var(--nz-panel2); }
.nz-h2 { font-family: var(--nz-mincho); font-weight: 700; font-size: clamp(24px, 2.8vw, 34px); line-height: 1.5; }
.nz-h2--sm { font-size: clamp(22px, 2.4vw, 30px); line-height: 1.4; }
.nz-p { font-size: 15px; line-height: 2; color: var(--nz-sub); text-wrap: pretty; }
.nz-note { font-size: 12px; color: var(--nz-mute); }
.nz-link-u { align-self: flex-start; font-size: 15px; font-weight: 500; border-bottom: 1px solid var(--nz-gold); padding-bottom: 4px; }
.nz-sp-only { display: none !important; }
@media (max-width: 1279px) {
  .nz-pc-only { display: none !important; }
  .nz-sp-only { display: revert !important; }
}

/* Buttons */
.nz-btn { height: 56px; padding: 0 32px; display: inline-flex; align-items: center; justify-content: center; gap: 16px; font-family: var(--nz-mincho); font-weight: 700; font-size: 16px; border: 0; cursor: pointer; }
.nz-btn--red { background: var(--nz-red); color: #fff !important; }
.nz-btn--line { border: 1px solid var(--nz-text); }
.nz-btn--gold { background: var(--nz-gold); color: var(--nz-bg) !important; }
.nz-btns { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.nz-tel-ico { width: 16px; height: 16px; fill: var(--nz-gold); flex: none; }

/* ==========================================================
   Header (PC / SP)
   ========================================================== */
.nz-header { position: sticky; top: 0; z-index: 100; background: rgba(11, 10, 9, .62); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); }
.admin-bar .nz-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .nz-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .nz-header { top: 0; } }
.nz-header--pc { height: 80px; margin-bottom: -80px; padding: 0 max(var(--nz-gutter), calc((100% - 1360px) / 2)); display: flex; align-items: center; gap: 40px; }
.nz-header__logo { height: 52px; width: auto; display: block; }
.nz-gnav { display: flex; gap: 28px; font-size: 14px; font-weight: 500; flex: 1; justify-content: flex-end; white-space: nowrap; }
.nz-gnav a { padding: 8px 0; border-bottom: 2px solid transparent; }
.nz-gnav a.is-current { border-bottom-color: var(--nz-gold); }
.nz-header__cta { display: flex; align-items: center; gap: 20px; }
.nz-header__tel { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.nz-header__tel-num { display: flex; align-items: center; gap: 8px; font-family: var(--nz-lato); font-weight: 700; font-size: 20px; letter-spacing: .04em; }
.nz-header__tel-label { font-size: 11px; color: var(--nz-mute); }
.nz-header__reserve { height: 48px; padding: 0 24px; background: var(--nz-red); color: #fff !important; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font-family: var(--nz-mincho); font-weight: 700; font-size: 15px; line-height: 1.2; }
.nz-header__reserve small { font-family: "Noto Sans JP", sans-serif; font-weight: 500; font-size: 10px; letter-spacing: .04em; }
.nz-header--sp { display: none; height: 56px; margin-bottom: -56px; padding: 0 16px; grid-template-columns: 44px 1fr 44px; align-items: center; }
.nz-header--sp .nz-header__logo { height: 38px; justify-self: center; }
@media (max-width: 1279px) {
  .nz-header--pc { display: none; }
  .nz-header--sp { display: grid; }
}
.nz-burger { width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.nz-burger span { display: block; height: 1px; width: 22px; background: var(--nz-text); }
.nz-burger span:last-child { width: 14px; }
.nz-tel-sq { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-family: var(--nz-lato); font-weight: 700; font-size: 11px; letter-spacing: .1em; border: 1px solid var(--nz-gold); color: var(--nz-gold) !important; }

/* Drawer */
.nz-drawer { position: fixed; inset: 0; z-index: 300; background: var(--nz-bg); display: none; flex-direction: column; }
.nz-drawer.is-open { display: flex; }
.admin-bar .nz-drawer { top: 32px; }
@media (max-width: 782px) { .admin-bar .nz-drawer { top: 46px; } }
.nz-drawer__head { height: 56px; flex: none; padding: 0 16px; display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; border-bottom: 1px solid var(--nz-line); }
.nz-drawer__head .nz-header__logo { height: 38px; justify-self: center; }
.nz-close { width: 44px; height: 44px; position: relative; border: 0; background: transparent; cursor: pointer; }
.nz-close span { position: absolute; left: 11px; top: 22px; width: 22px; height: 1px; background: var(--nz-text); }
.nz-close span:first-child { transform: rotate(45deg); }
.nz-close span:last-child { transform: rotate(-45deg); }
.nz-drawer__body { flex: 1; overflow: auto; padding: 8px 24px 32px; display: flex; flex-direction: column; gap: 28px; width: 100%; max-width: 520px; margin: 0 auto; }
.nz-drawer__nav { display: flex; flex-direction: column; }
.nz-drawer__nav a { height: 56px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--nz-line); }
.nz-drawer__nav a span:first-child { font-family: var(--nz-mincho); font-weight: 700; font-size: 17px; }
.nz-drawer__nav a span:last-child { font-family: var(--nz-lato); font-weight: 700; font-size: 10px; letter-spacing: .24em; color: var(--nz-gold); }
.nz-drawer__cta { display: flex; flex-direction: column; gap: 12px; }
.nz-drawer__reserve { height: 60px; background: var(--nz-red); color: #fff !important; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; line-height: 1.2; }
.nz-drawer__reserve small { font-size: 11px; font-weight: 500; }
.nz-drawer__reserve span { font-family: var(--nz-mincho); font-weight: 700; font-size: 17px; }
.nz-drawer__tel { height: 56px; border: 1px solid var(--nz-text); display: flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--nz-lato); font-weight: 700; font-size: 20px; letter-spacing: .04em; }
.nz-drawer__hours { font-size: 12px; line-height: 1.8; color: var(--nz-mute); text-align: center; }
.nz-drawer__links { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: center; font-size: 13px; color: var(--nz-sub); }
.nz-drawer__links .is-gold { color: var(--nz-gold); }
body.nz-lock { overflow: hidden; }

/* SNS icons */
.nz-sns { display: flex; gap: 12px; }
.nz-sns--center { justify-content: center; }
.nz-sns a { width: 40px; height: 40px; border: 1px solid var(--nz-line); border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.nz-sns--lg a { width: 44px; height: 44px; }
.nz-sns svg { display: block; }

/* ==========================================================
   Hero
   ========================================================== */
.nz-hero { position: relative; height: calc(clamp(520px, 78vh, 720px) + 80px); background: var(--nz-panel2); overflow: hidden; }
.nz-hero__slide { position: absolute; top: 0; left: 0; width: 100%; height: 80%; object-fit: cover; -webkit-mask-image: linear-gradient(to bottom, #000 75%, transparent); mask-image: linear-gradient(to bottom, #000 75%, transparent); display: block; opacity: 0; transition: opacity 1.4s ease; }
.nz-hero__slide.is-active { opacity: 1; }
.nz-hero__set { position: absolute; inset: 0; }
.nz-hero__set--sp, .nz-hero__dots--sp { display: none !important; }
@media (max-width: 767px) {
  .nz-hero__set--pc, .nz-hero__dots--pc { display: none !important; }
  .nz-hero__set--sp { display: block !important; }
  .nz-hero__dots--sp { display: flex !important; }
}
.nz-hero__shade { position: absolute; left: 0; right: 0; bottom: 0; height: 88%; background: linear-gradient(to top, rgba(11,10,9,.95) 0%, rgba(11,10,9,.8) 45%, rgba(11,10,9,0) 100%); }
.nz-hero__body { position: absolute; left: max(clamp(24px, 6vw, 80px), calc((100% - 1200px) / 2)); right: clamp(24px, 6vw, 80px); bottom: calc(clamp(16px, 3vh, 32px) + 40px); display: flex; flex-direction: column; gap: 20px; max-width: 720px; }
.nz-hero__title { font-family: var(--nz-mincho); font-weight: 800; font-size: clamp(28px, 4vw, 48px); line-height: 1.45; text-wrap: pretty; }
.nz-hero__lead { font-size: 15px; line-height: 1.9; color: var(--nz-sub); text-wrap: pretty; }
.nz-hero__dots { position: absolute; right: clamp(24px, 6vw, 80px); bottom: clamp(16px, 3vh, 32px); display: flex; gap: 8px; }
.nz-hero__dots button { width: 32px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer; display: flex; align-items: center; }
.nz-hero__dots button span { display: block; width: 100%; height: 2px; background: #5d574e; transition: background .4s; }
.nz-hero__dots button.is-active span { background: var(--nz-text); }
.nz-hero .nz-btn { padding: 0 36px; }

.nz-pagehero { position: relative; height: clamp(280px, 34vw, 420px); background: var(--nz-panel2); overflow: hidden; }
.nz-pagehero--s { height: clamp(240px, 28vw, 340px); }
.nz-pagehero--xs { height: clamp(200px, 22vw, 280px); }
.nz-pagehero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.nz-pagehero__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(11,10,9,.92) 0%, rgba(11,10,9,.55) 60%, rgba(11,10,9,.3) 100%); }
.nz-pagehero__body { position: absolute; left: max(clamp(24px, 6vw, 80px), calc((100% - 1200px) / 2)); right: clamp(24px, 6vw, 80px); bottom: clamp(32px, 5vw, 56px); display: flex; flex-direction: column; gap: 12px; }
.nz-pagehero__title { font-family: var(--nz-mincho); font-weight: 800; font-size: clamp(28px, 4vw, 44px); line-height: 1.3; }
.nz-crumb { max-width: 1360px; width: 100%; margin: 0 auto; padding: 16px var(--nz-gutter); display: flex; flex-wrap: wrap; gap: 10px; font-size: 12px; color: var(--nz-faint); }
.nz-crumb span:last-child { color: var(--nz-sub); }

/* ==========================================================
   Layout blocks
   ========================================================== */
.nz-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); margin: 0 auto; width: 100%; }
.nz-split--boxed { max-width: 1360px; width: calc(100% - 2 * var(--nz-gutter)); }
.nz-split--full { max-width: 1360px; width: calc(100% - 2 * var(--nz-gutter)); }
.nz-split--panel { background: var(--nz-panel); }
.nz-split--bleed { background: var(--nz-panel); }
.nz-split--mt { margin-top: 4px; }
.nz-split__img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; display: block; background: var(--nz-panel2); }
.nz-split--full .nz-split__img { min-height: 400px; }
@media (max-width: 767px) { .nz-split__img--short { height: auto; min-height: 0 !important; aspect-ratio: 16 / 9; } }
.nz-split__body { padding: clamp(48px, 7vw, 80px) clamp(24px, 6vw, 80px); display: flex; flex-direction: column; justify-content: center; gap: 20px; }
.nz-split--full .nz-split__body, .nz-split--tall .nz-split__body { padding-top: clamp(48px, 7vw, 96px); padding-bottom: clamp(48px, 7vw, 96px); }
.nz-num { display: flex; align-items: baseline; gap: 14px; }
.nz-num b { font-family: var(--nz-lato); font-weight: 900; font-size: 32px; line-height: 1; color: var(--nz-gold); }

.nz-imgrow { display: grid; gap: 4px; margin: 4px auto 0; width: 100%; }
.nz-imgrow--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1360px; width: calc(100% - 2 * var(--nz-gutter)); }
.nz-imgrow--3 img { aspect-ratio: 4 / 3; }
.nz-imgrow--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1360px; width: calc(100% - 2 * var(--nz-gutter)); }
.nz-imgrow--2 img { aspect-ratio: 3 / 2; }
.nz-imgrow img { width: 100%; object-fit: cover; display: block; background: var(--nz-panel2); }

.nz-sec { max-width: 1360px; width: 100%; margin: 0 auto; padding: clamp(72px, 9vw, 112px) var(--nz-gutter); display: flex; flex-direction: column; gap: 56px; }
.nz-sec--tight { padding-top: 0; gap: 40px; }
.nz-sechead { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.nz-sechead .nz-h2 { font-size: clamp(24px, 3vw, 36px); }
.nz-sechead .nz-rule { margin: 4px 0 8px; }
.nz-sechead .nz-p { line-height: 1.9; max-width: 600px; }
.nz-sechead--row { flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; text-align: left; border-bottom: 1px solid var(--nz-line); padding-bottom: 24px; }
.nz-sechead--row > div { display: flex; flex-direction: column; gap: 10px; }

.nz-intro { max-width: 1360px; width: 100%; margin: 0 auto; padding: clamp(48px, 7vw, 88px) var(--nz-gutter) clamp(64px, 8vw, 104px); display: flex; flex-direction: column; align-items: center; gap: 24px; text-align: center; }
.nz-intro__title { font-family: var(--nz-mincho); font-weight: 700; font-size: clamp(24px, 3.2vw, 40px); line-height: 1.6; text-wrap: balance; }
.nz-intro .nz-p { max-width: 640px; line-height: 2.1; }
.nz-formula { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 16px; padding-bottom: clamp(40px, 6vw, 72px); margin-bottom: clamp(16px, 3vw, 32px); border-bottom: 1px solid var(--nz-line); }
.nz-formula__eq { font-family: var(--nz-lato); font-weight: 900; font-size: clamp(28px, 4.4vw, 52px); line-height: 1.25; }
.nz-formula__eq em { font-style: normal; color: var(--nz-red); }
.nz-formula__catch { margin-top: 8px !important; font-family: var(--nz-mincho); font-weight: 700; font-size: clamp(20px, 2.4vw, 28px); line-height: 1.5; }
.nz-formula__sub { font-family: var(--nz-mincho); font-weight: 600; font-size: clamp(15px, 1.6vw, 19px); line-height: 1.8; color: var(--nz-sub); text-wrap: balance; }

/* Course cards */
.nz-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; }
.nz-card { background: var(--nz-panel); display: flex; flex-direction: column; }
.nz-card > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; background: var(--nz-panel2); }
.nz-card__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.nz-card__tag { font-size: 12px; color: var(--nz-gold); font-weight: 700; }
.nz-card__name { font-family: var(--nz-mincho); font-weight: 700; font-size: 22px; }
.nz-card__desc { font-size: 13px; line-height: 1.7; color: var(--nz-mute); }
.nz-price { font-family: var(--nz-lato); font-weight: 700; font-size: 28px; }
.nz-card .nz-price { margin-top: auto; }
.nz-price small { font-family: "Noto Sans JP", sans-serif; font-size: 12px; font-weight: 500; margin-left: 4px; }
.nz-card__btn { height: 48px; background: var(--nz-gold); color: var(--nz-bg) !important; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; }
.nz-center-link { align-self: center; font-size: 14px; color: var(--nz-sub); border-bottom: 1px solid var(--nz-gold); padding-bottom: 4px; }

/* TOP news */
.nz-topnews { max-width: 1360px; width: 100%; margin: 0 auto; padding: 0 var(--nz-gutter) clamp(72px, 9vw, 112px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 40px; }
.nz-topnews__head { display: flex; flex-direction: column; gap: 10px; }
.nz-topnews__head .nz-link-u { margin-top: 12px; font-size: 14px; }
.nz-topnews__list { grid-column: span 2; min-width: 0; display: flex; flex-direction: column; border-top: 1px solid var(--nz-line); }
@media (max-width: 640px) { .nz-topnews__list { grid-column: auto; } }
.nz-newsrow { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--nz-line); }
.nz-date { font-family: var(--nz-lato); font-size: 14px; color: var(--nz-mute); }
.nz-cat { font-size: 11px; border: 1px solid var(--nz-goldline); color: var(--nz-gold); padding: 3px 8px; line-height: 1.4; }
.nz-newsrow__title { font-size: 15px; flex: 1; min-width: 200px; }
.nz-arrow { color: var(--nz-gold); }

/* Reservation */
.nz-resv { max-width: 1360px; width: 100%; margin: 0 auto; padding: 0 var(--nz-gutter) 32px; }
.nz-resv__outer { background: var(--nz-panel); padding: 8px; }
.nz-resv__inner { border: 1px solid var(--nz-goldline); padding: clamp(28px, 4vw, 48px) clamp(20px, 4vw, 56px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 40px; align-items: center; }
.nz-resv__col { display: flex; flex-direction: column; gap: 14px; }
.nz-resv__col .nz-eyebrow { font-size: 12px; }
.nz-resv__title { font-family: var(--nz-mincho); font-weight: 700; font-size: clamp(22px, 2.4vw, 30px); }
.nz-resv__lead { font-size: 15px; line-height: 1.8; color: var(--nz-sub); }
.nz-resv__hours { font-size: 14px; line-height: 1.9; color: var(--nz-mute); }
.nz-resv__web { height: 64px; background: var(--nz-red); color: #fff !important; display: flex; align-items: center; justify-content: center; gap: 16px; font-family: var(--nz-mincho); font-weight: 700; font-size: 18px; }
.nz-resv__tel { height: 64px; border: 1px solid var(--nz-text); display: flex; align-items: center; justify-content: center; gap: 12px; }
.nz-resv__tel small { font-size: 12px; color: var(--nz-mute); }
.nz-resv__tel b { font-family: var(--nz-lato); font-weight: 700; font-size: 24px; letter-spacing: .04em; }
.nz-resv__note { font-size: 12px; color: var(--nz-mute); text-align: center; }

.nz-ec { padding: 0 var(--nz-gutter) 80px; display: flex; justify-content: center; }
.nz-ec a { height: 56px; width: 100%; max-width: 420px; border: 1px solid var(--nz-text); display: flex; align-items: center; justify-content: center; gap: 16px; font-family: var(--nz-mincho); font-weight: 700; font-size: 16px; }
.nz-map { max-width: 1360px; width: 100%; margin: 0 auto; padding: 0 var(--nz-gutter) 80px; }
.nz-map iframe { width: 100%; height: clamp(260px, 40vw, 400px); border: 0; display: block; filter: grayscale(1) contrast(.9); }

/* Group stores */
.nz-group { max-width: 1360px; width: 100%; margin: 0 auto; padding: 0 var(--nz-gutter) clamp(72px, 9vw, 112px); display: flex; flex-direction: column; gap: 32px; }
.nz-group__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 24px; }
.nz-store { background: var(--nz-panel); display: flex; flex-direction: column; }
.nz-store > img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; background: var(--nz-panel2); }
.nz-store__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.nz-store__name { font-family: var(--nz-mincho); font-weight: 700; font-size: 20px; line-height: 1.5; }
.nz-store__addr { font-size: 13px; line-height: 1.8; color: var(--nz-mute); }
.nz-store .nz-link-u { margin-top: auto; padding-top: 8px; font-size: 14px; }

/* Footer */
.nz-footer { border-top: 1px solid var(--nz-line); }
.nz-footer__in { max-width: 1520px; margin: 0 auto; padding: 64px var(--nz-gutter) 32px; display: flex; flex-direction: column; gap: 48px; }
.nz-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 40px; }
.nz-footer__info { display: flex; flex-direction: column; gap: 16px; }
.nz-footer__logo { height: 60px; width: auto; align-self: flex-start; }
.nz-footer__name { font-family: var(--nz-mincho); font-weight: 700; font-size: 17px; }
.nz-footer__addr { font-size: 13px; line-height: 1.9; color: var(--nz-mute); }
.nz-footer__info .nz-sns { margin-top: 4px; }
.nz-footer__links { display: flex; flex-direction: column; gap: 14px; font-size: 14px; }
.nz-footer__links .is-gold { color: var(--nz-gold); }
.nz-footer__bottom { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; font-size: 12px; color: var(--nz-faint); border-top: 1px solid var(--nz-line); padding-top: 24px; }

.nz-spbar { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; grid-template-columns: 1fr 1.4fr; border-top: 1px solid var(--nz-line); }
.nz-spbar a { height: 60px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
.nz-spbar__tel { background: var(--nz-panel); }
.nz-spbar__tel small { font-size: 11px; color: var(--nz-mute); }
.nz-spbar__tel b { font-family: var(--nz-lato); font-weight: 700; font-size: 15px; }
.nz-spbar__web { background: var(--nz-red); color: #fff !important; }
.nz-spbar__web b { font-family: var(--nz-mincho); font-weight: 700; font-size: 16px; }
.nz-spbar__web small { font-size: 11px; }
@media (max-width: 1279px) {
  .nz-spbar { display: grid; }
  body.nz-body { padding-bottom: 60px; }
}

/* ==========================================================
   Menu (course) page
   ========================================================== */
.nz-menu-intro { max-width: 1360px; width: 100%; margin: 0 auto; padding: clamp(48px, 7vw, 88px) var(--nz-gutter) clamp(48px, 6vw, 64px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: clamp(32px, 5vw, 72px); align-items: center; }
.nz-menu-intro > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; background: var(--nz-panel2); }
.nz-menu-intro > div { display: flex; flex-direction: column; gap: 20px; }
.nz-menu-intro .nz-h2 { font-size: clamp(24px, 2.8vw, 32px); line-height: 1.55; }
.nz-menu-gallery { max-width: 1360px; width: 100%; margin: 0 auto; padding: 0 var(--nz-gutter) clamp(48px, 6vw, 64px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.nz-menu-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; background: var(--nz-panel2); }
.nz-anchor-nav { max-width: 1360px; width: 100%; margin: 0 auto; padding: 0 var(--nz-gutter) clamp(56px, 7vw, 80px); }
.nz-anchor-nav nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 1px; background: var(--nz-line); border: 1px solid var(--nz-line); }
.nz-anchor-nav a { background: var(--nz-bg); padding: 20px 24px; display: flex; flex-direction: column; gap: 4px; }
.nz-anchor-nav a small { font-family: var(--nz-lato); font-size: 11px; letter-spacing: .2em; color: var(--nz-gold); }
.nz-anchor-nav a span { font-size: 15px; font-weight: 500; }
.nz-courses { max-width: 1360px; width: 100%; margin: 0 auto; padding: 0 var(--nz-gutter); display: flex; flex-direction: column; gap: 4px; }
.nz-course { scroll-margin-top: 96px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); background: var(--nz-panel); }
.nz-course--rev { direction: rtl; }
.nz-course > * { direction: ltr; }
.nz-course > img { width: 100%; height: 100%; min-height: clamp(280px, 40vw, 560px); object-fit: cover; display: block; background: var(--nz-panel2); }
.nz-course__body { padding: clamp(28px, 4.5vw, 56px); display: flex; flex-direction: column; gap: 16px; }
.nz-course__body .nz-eyebrow { font-size: 12px; }
.nz-course__head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; }
.nz-course__name { font-family: var(--nz-mincho); font-weight: 700; font-size: clamp(22px, 2.4vw, 28px); }
.nz-course__head .nz-price { font-size: clamp(26px, 2.4vw, 30px); }
.nz-course__tag { font-size: 13px; line-height: 1.7; color: var(--nz-gold); font-weight: 700; }
.nz-course__desc { font-size: 14px; line-height: 1.95; color: var(--nz-sub); text-wrap: pretty; }
.nz-course__items { border-top: 1px solid var(--nz-line); padding-top: 16px; display: flex; flex-direction: column; gap: 8px; font-size: 14px; line-height: 1.6; list-style: none; padding-left: 0; }
.nz-choice { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 13px; }
.nz-choice > span:first-child { color: var(--nz-mute); }
.nz-choice b { border: 1px solid var(--nz-goldline); color: var(--nz-gold); padding: 4px 10px; font-weight: 400; }
.nz-course__btn { height: 52px; margin-top: 8px; background: var(--nz-red); color: #fff !important; display: flex; align-items: center; justify-content: center; gap: 12px; font-family: var(--nz-mincho); font-weight: 700; font-size: 15px; }
.nz-drink { scroll-margin-top: 96px; max-width: 1360px; width: 100%; margin: 0 auto; padding: clamp(72px, 9vw, 112px) var(--nz-gutter) 0; display: flex; flex-direction: column; gap: 48px; }
.nz-drink__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 40px; border-top: 1px solid var(--nz-line); padding-top: 32px; }
.nz-drink__grid > div { display: flex; flex-direction: column; gap: 12px; }
.nz-drink__grid b { font-family: var(--nz-mincho); font-weight: 700; font-size: 18px; }
.nz-drink__grid span { font-size: 14px; line-height: 1.9; color: var(--nz-sub); }
.nz-notice { scroll-margin-top: 96px; max-width: 1360px; width: 100%; margin: 0 auto; padding: clamp(72px, 9vw, 112px) var(--nz-gutter); display: flex; flex-wrap: wrap; gap: 24px 56px; }
.nz-notice > div { flex: 1 1 240px; display: flex; flex-direction: column; gap: 10px; }
.nz-notice .nz-h2 { font-size: clamp(22px, 2.4vw, 28px); }
.nz-notice ol { flex: 3 1 480px; min-width: 0; padding: 0; list-style: none; display: flex; flex-direction: column; border-top: 1px solid var(--nz-line); font-size: 14px; line-height: 1.85; color: var(--nz-sub); }
.nz-notice li { display: grid; grid-template-columns: 40px minmax(0, 1fr); padding: 16px 0; border-bottom: 1px solid var(--nz-line); }
.nz-notice li > span:first-child { font-family: var(--nz-lato); color: var(--nz-gold); }

/* ==========================================================
   Access page
   ========================================================== */
.nz-access { max-width: 1360px; width: 100%; margin: 0 auto; padding: clamp(48px, 7vw, 88px) var(--nz-gutter) clamp(72px, 9vw, 112px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(32px, 5vw, 64px); }
.nz-access > div { display: flex; flex-direction: column; gap: 24px; }
.nz-access__name { font-family: var(--nz-mincho); font-weight: 700; font-size: clamp(22px, 2.2vw, 26px); line-height: 1.5; }
.nz-dl { display: grid; grid-template-columns: 96px minmax(0, 1fr); border-top: 1px solid var(--nz-line); font-size: 14px; line-height: 1.85; }
.nz-dl dt { padding: 16px 0; border-bottom: 1px solid var(--nz-line); color: var(--nz-gold); font-weight: 700; }
.nz-dl dd { padding: 16px 0; border-bottom: 1px solid var(--nz-line); }
.nz-dl .is-tel { font-family: var(--nz-lato); font-weight: 700; font-size: 18px; }
.nz-access__jump { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 12px; }
.nz-access__jump a { height: 52px; border: 1px solid var(--nz-text); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 500; }
.nz-access iframe { width: 100%; height: 100%; min-height: clamp(320px, 40vw, 460px); border: 0; display: block; filter: grayscale(1) contrast(.9); }
.nz-route { scroll-margin-top: 96px; max-width: 1360px; width: 100%; margin: 0 auto; padding: 0 var(--nz-gutter) clamp(72px, 9vw, 96px); display: flex; flex-direction: column; gap: 40px; }
.nz-route .nz-h2 { font-size: clamp(24px, 3vw, 32px); }
.nz-route > img { width: 100%; max-width: 960px; align-self: center; display: block; background: var(--nz-panel2); }
.nz-route__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 40px 48px; }
.nz-route__cols > div { display: flex; flex-direction: column; gap: 14px; }
.nz-route__cols h3 { font-family: var(--nz-mincho); font-weight: 700; font-size: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--nz-line); }
.nz-route__cols p { font-size: 14px; line-height: 1.95; color: var(--nz-sub); text-wrap: pretty; }

/* ==========================================================
   News (archive / single)
   ========================================================== */
.nz-newslist { max-width: 1040px; width: 100%; margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--nz-gutter) clamp(72px, 9vw, 112px); display: flex; flex-direction: column; gap: 32px; }
.nz-newslist__title { font-family: var(--nz-mincho); font-weight: 700; font-size: clamp(22px, 2.4vw, 28px); }
.nz-newslist__items { display: flex; flex-direction: column; border-top: 1px solid var(--nz-line); }
.nz-newsitem { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px clamp(20px, 3vw, 40px); align-items: center; padding: 28px 0; border-bottom: 1px solid var(--nz-line); }
.nz-newsitem img { width: 100%; max-width: 320px; aspect-ratio: 16 / 9; object-fit: cover; display: block; background: var(--nz-panel2); }
.nz-newsitem__body { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.nz-meta { display: flex; align-items: center; gap: 14px; }
.nz-newsitem__title { font-family: var(--nz-mincho); font-weight: 700; font-size: clamp(18px, 1.8vw, 21px); line-height: 1.5; }
.nz-newsitem__excerpt { font-size: 14px; line-height: 1.8; color: var(--nz-mute); text-wrap: pretty; }
.nz-newsitem__more { align-self: flex-start; font-size: 13px; color: var(--nz-gold); }
.nz-empty { padding: 32px 0; color: var(--nz-mute); font-size: 14px; }
.nz-pager .nav-links { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.nz-pager .page-numbers { min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--nz-line); display: flex; align-items: center; justify-content: center; font-family: var(--nz-lato); font-size: 14px; }
.nz-pager .page-numbers.current { border-color: var(--nz-gold); color: var(--nz-gold); }
.nz-article { max-width: 880px; width: 100%; margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--nz-gutter) clamp(56px, 7vw, 80px); display: flex; flex-direction: column; gap: 28px; }
.nz-article__head { display: flex; flex-direction: column; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid var(--nz-line); }
.nz-article__title { font-family: var(--nz-mincho); font-weight: 700; font-size: clamp(24px, 3vw, 34px); line-height: 1.5; }
.nz-article__thumb { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; background: var(--nz-panel2); }
.nz-article__content { font-size: 15px; line-height: 2.1; color: var(--nz-sub); }
.nz-article__content > * + * { margin-top: 20px !important; }
.nz-article__content a { color: var(--nz-gold); border-bottom: 1px solid var(--nz-goldline); }
.nz-article__content img { height: auto; }
.nz-article__content h2, .nz-article__content h3 { font-family: var(--nz-mincho); color: var(--nz-text); line-height: 1.5; background: none; border: 0; padding: 0; }
.nz-article__content h2 { font-size: 22px; margin-top: 40px !important; }
.nz-article__content h3 { font-size: 19px; margin-top: 32px !important; }
.nz-article__back { display: flex; justify-content: center; padding-top: 32px; border-top: 1px solid var(--nz-line); margin-top: 16px; }
.nz-article__back a { height: 52px; padding: 0 32px; border: 1px solid var(--nz-text); display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 500; }

/* ==========================================================
   Contact
   ========================================================== */
.nz-contact { max-width: 880px; width: 100%; margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--nz-gutter) clamp(72px, 9vw, 112px); display: flex; flex-direction: column; gap: 48px; }
.nz-contact__notice { border: 1px solid var(--nz-goldline); padding: clamp(20px, 3vw, 28px) clamp(20px, 3vw, 32px); display: flex; flex-direction: column; gap: 16px; }
.nz-contact__notice > b { font-size: 15px; }
.nz-contact__notice > p { font-size: 14px; line-height: 1.85; color: var(--nz-sub); text-wrap: pretty; }
.nz-contact__notice .nz-btns { gap: 12px; }
.nz-contact__notice .nz-btn { height: 48px; padding: 0 24px; font-size: 15px; gap: 12px; }
.nz-contact__notice .nz-btn--line { font-family: var(--nz-lato); font-size: 18px; letter-spacing: .04em; gap: 10px; }
.nz-form { display: flex; flex-direction: column; gap: 28px; }
.nz-form__head { display: flex; flex-direction: column; gap: 10px; }
.nz-form__head p { font-size: 14px; line-height: 1.85; color: var(--nz-mute); }
.nz-field { display: flex; flex-direction: column; gap: 10px; }
.nz-field__label { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; }
.nz-req { font-size: 11px; font-weight: 700; background: var(--nz-red); color: #fff; padding: 2px 6px; line-height: 1.4; }
.nz-opt { font-size: 11px; font-weight: 500; border: 1px solid #5d574e; color: var(--nz-mute); padding: 1px 6px; line-height: 1.4; }
.nz-body .nz-field input, .nz-body .nz-field textarea { width: 100%; height: 52px; padding: 0 16px; background: var(--nz-panel); border: 1px solid var(--nz-line); border-radius: 0; color: var(--nz-text); font-family: inherit; font-size: 16px; outline: none; box-shadow: none; }
.nz-body .nz-field textarea { height: auto; min-height: 200px; padding: 14px 16px; line-height: 1.8; resize: vertical; }
.nz-body .nz-field input:focus, .nz-body .nz-field textarea:focus { border-color: var(--nz-gold); }
.nz-form__privacy { font-size: 12px; line-height: 1.8; color: var(--nz-mute); }
.nz-form__privacy a { color: var(--nz-sub); border-bottom: 1px solid var(--nz-goldline); }
.nz-form__submit { align-self: center; width: 100%; max-width: 360px; height: 60px; margin-top: 8px; border: 0; background: var(--nz-gold); color: var(--nz-bg); cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 14px; font-family: var(--nz-mincho); font-weight: 700; font-size: 17px; }

/* MW WP Form */
.nz-mwform br { display: none; }
.nz-mwform p:empty { display: none; }
.nz-mwform .mw_wp_form form { display: flex; flex-direction: column; gap: 28px; }
/* 既存フォームの書き方（h3 / dl dt dd）やクラスなしの部品もデザインに合わせる */
.nz-mwform h3 { margin: 0; padding-bottom: 12px; border-bottom: 1px solid var(--nz-line); font-family: var(--nz-mincho); font-weight: 700; font-size: 18px; }
.nz-mwform dl { margin: 0; display: flex; flex-direction: column; gap: 28px; }
.nz-mwform dt { margin: 0 0 10px; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; }
.nz-mwform dt span { font-size: 11px; font-weight: 700; background: var(--nz-red); color: #fff; padding: 2px 6px; line-height: 1.4; }
.nz-mwform dd { margin: 0; }
.nz-body .nz-mwform input:not([type=submit]):not([type=button]):not([type=hidden]):not([type=radio]):not([type=checkbox]), .nz-body .nz-mwform select { width: 100%; height: 52px; padding: 0 16px; background: var(--nz-panel); border: 1px solid var(--nz-line); border-radius: 0; color: var(--nz-text); font-family: inherit; font-size: 16px; outline: none; box-shadow: none; }
.nz-body .nz-mwform textarea { width: 100%; min-height: 200px; padding: 14px 16px; background: var(--nz-panel); border: 1px solid var(--nz-line); border-radius: 0; color: var(--nz-text); font-family: inherit; font-size: 16px; line-height: 1.8; outline: none; box-shadow: none; resize: vertical; }
.nz-body .nz-mwform input:focus, .nz-body .nz-mwform textarea:focus { border-color: var(--nz-gold); }
.nz-body .nz-mwform input[type=submit], .nz-body .nz-mwform input[type=button] { -webkit-appearance: none; appearance: none; display: block; width: 100%; max-width: 360px; height: 60px; margin: 0 auto; padding: 0 24px; border: 0; border-radius: 0; box-shadow: none; background: var(--nz-gold); color: var(--nz-bg); cursor: pointer; font-family: var(--nz-mincho); font-weight: 700; font-size: 17px; }
.nz-body .nz-mwform input[name=submitBack] { max-width: 240px; background: transparent; border: 1px solid var(--nz-text); color: var(--nz-text); font-size: 16px; }
.nz-body .nz-mwform input[type=submit]:hover, .nz-body .nz-mwform input[type=button]:hover { opacity: .85; }
.nz-mwform .error { display: block; margin-top: 4px; font-size: 13px; color: #ef8a8a; }
.nz-form__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 8px; }
.nz-body .nz-form__actions input[type=submit] { margin: 0; }
.nz-body input.nz-form__submit, .nz-body input.nz-form__back { -webkit-appearance: none; appearance: none; border-radius: 0; box-shadow: none; }
.nz-body input.nz-form__submit { margin-top: 0; }
.nz-body input.nz-form__back { width: 100%; max-width: 240px; height: 60px; background: transparent; border: 1px solid var(--nz-text); color: var(--nz-text); cursor: pointer; font-family: var(--nz-mincho); font-weight: 700; font-size: 16px; }
.nz-mwform .mw_wp_form_confirm .nz-field, .nz-mwform .mw_wp_form_confirm dd { padding-bottom: 20px; border-bottom: 1px solid var(--nz-line); font-size: 15px; line-height: 1.9; color: var(--nz-sub); white-space: pre-wrap; }
.nz-mwform .mw_wp_form_confirm .nz-input-only { display: none; }
.nz-mwform .nz-confirm-only { display: none; }
.nz-mwform .mw_wp_form_confirm .nz-confirm-only { display: block; font-size: 14px; color: var(--nz-sub); }
.nz-mwform .mw_wp_form_complete { padding: clamp(32px, 5vw, 56px) clamp(20px, 4vw, 48px); border: 1px solid var(--nz-goldline); text-align: center; font-size: 15px; line-height: 2; color: var(--nz-sub); }

/* ==========================================================
   Privacy
   ========================================================== */
.nz-policy { max-width: 880px; width: 100%; margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--nz-gutter) clamp(72px, 9vw, 112px); display: flex; flex-direction: column; gap: 32px; }
.nz-policy p { font-size: 14px; line-height: 2; color: var(--nz-sub); text-wrap: pretty; }
.nz-policy section { display: flex; flex-direction: column; gap: 14px; padding-top: 32px; border-top: 1px solid var(--nz-line); }
.nz-policy h2 { display: flex; align-items: baseline; gap: 14px; font-family: var(--nz-mincho); font-weight: 700; font-size: clamp(18px, 1.8vw, 21px); line-height: 1.5; }
.nz-policy h2 span { font-family: var(--nz-lato); font-weight: 700; font-size: 14px; color: var(--nz-gold); }
.nz-policy ul { padding: 0 0 0 1.2em; display: flex; flex-direction: column; gap: 10px; font-size: 14px; line-height: 1.9; color: var(--nz-sub); }
.nz-policy ul b { color: var(--nz-text); font-weight: 500; }
