    :root{
      --bg:#0f1012;
      --panel:#15171a;
      --text:#e9e6df;
      --muted:#bdb8ae;
      --line:rgba(233,230,223,.14);
      --accent:#d9c3a2;
      --accent2:#b9935a;
      --shadow: 0 12px 32px rgba(0,0,0,.35);
      --radius: 18px;
      --max: 1200px;
      --serif: "Noto Serif JP", serif;
      --sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif;
    }
    *{ box-sizing:border-box; }
    html{ scroll-behavior:smooth; }
    body{
      margin:0;
      color:var(--text);
      background:
        radial-gradient(1200px 700px at 20% 10%, rgba(217,195,162,.12), transparent 55%),
        radial-gradient(1000px 600px at 80% 20%, rgba(185,147,90,.10), transparent 60%),
        linear-gradient(180deg, #0b0c0f 0%, var(--bg) 60%, #0b0c0f 100%);
      font-family: var(--sans);
      line-height:1.75;
      letter-spacing:.02em;
    }
    a{ color:inherit; text-decoration:none; }
    .container{ width:min(var(--max), calc(100% - 40px)); margin:0 auto; }

    /* Header / Nav */
    header{
      font-family: var(--serif);
      position:sticky; top:0; z-index:30;
      backdrop-filter: blur(10px);
      background: rgba(15,16,18,.72);
      border-bottom:1px solid var(--line);
    }
.nav{
  display:flex;
  align-items:center;
  justify-content: flex-start;
  padding:14px 0;
  gap:16px;
}

/* 共通（フッター含む） */
.social{
  display:flex;
  align-items:center;
  gap:10px;
}

/* ヘッダー電話番号（右上固定） */
.header-tel{
  position: fixed;
  right: 24px;
  z-index: 1001;
}

.header-tel a{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-decoration: none;
  color: var(--text);
}

/* TELラベル */
.header-tel .tel-label{
  font-size: 10px;
  letter-spacing: .3em;
  color: var(--muted);
}

/* 電話番号本体 */
.header-tel .tel-number{
  font-family: var(--serif);
  font-size: 32px;       /* ← 大きさはここ */
  letter-spacing: .12em;
  line-height: 1.2;
}

@media (max-width: 1030px){
  :root{
    --max:1200px;
  }
  .header-tel{
    top: 16px;
    right: 16px;
  }

  .header-tel .tel-number{
    font-size: 16px;
  }
}

.sns-links{
  display: flex;
  gap: 16px;
}

.sns-links a{
  color: #333;
  font-size: 20px;
  transition: opacity .2s ease;
}

.sns-links a:hover{
  opacity: 0.6;
}

.main-nav ul{
  list-style:none;
  display:flex;
  gap:18px;           /* 元の18でOK（22にしたければ22） */
  padding:0;
  margin:0;

  flex-wrap: nowrap;  /* ← wrap禁止 */
  white-space: nowrap;/* ← 文字折り禁止 */
}
    nav a{
      font-size:16px;
      color: var(--muted);
      padding:8px 10px;
      border-radius: 999px;
      border:1px solid transparent;
      transition: .2s ease;
    }
    nav a:hover{
      color:var(--text);
      border-color: var(--line);
      background: rgba(233,230,223,.05);
    }

    /* Footer */
    footer{
      border-top: 1px solid var(--line);
      padding: 22px 24px;   /* ← 0 を 24px に */
      color: var(--muted);
      font-size: 12px;
    }

footer .container > div{
  text-align: center;
  width: 100%;
}

/* ===== ハンバーガー（ここからは入れ子にしない！） ===== */
.nav-toggle{
  display: none;
  background: none;
  border: 0;
  padding: 10px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.nav-toggle span{
  display:block;
  width:26px;
  height:2px;
  background: var(--text);
  margin:6px 0;
  border-radius:999px;
  transition: transform .25s ease, opacity .25s ease;
}

@media (max-width: 1030px){
  .main-nav{ display:none; }

  .nav-toggle{
    display:block;
    margin-left:auto;
    position:relative;
    z-index:10001;
  }

  .main-nav.is-open{
    display:block;
    position:fixed;
    inset:0;
    z-index:10000;
    background:#0f1012;      /* 下を見せない */
    padding:86px 24px 24px;
    overflow-y:auto;
  }

  .main-nav.is-open ul{
    display:flex;
    flex-direction:column;
    gap:18px;
    margin:0;
    padding:0;
    list-style:none;
  }

  .main-nav.is-open a{
    display:block;
    font-size:18px;
    padding:12px 0;
    color:var(--text);
    border-bottom:1px solid rgba(233,230,223,.12);
  }

  .header-tel{ display:none !important; }
}

.nav-toggle.is-open span:nth-child(1){ transform: translateY(8px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity:0; }
.nav-toggle.is-open span:nth-child(3){ transform: translateY(-8px) rotate(-45deg); }

body.nav-open{ overflow:hidden; }

/* ハンバーガーボタンを確実に押せるようにする */
.nav-toggle{
  pointer-events: auto;
  position: relative;
  z-index: 20002;
}
header{
  position: sticky;
  z-index: 20000;
}
/* ===== ハンバーガー：最前面で全画面を確実に覆う（上書き） ===== */
@media (max-width: 1030px){
  /* これが“面”になる */
  .main-nav.is-open{
    display: block !important;
    position: fixed !important;
    top: 0; left: 0; right: 0; bottom: 0;
    width: 100vw;
    height: 100dvh;               /* iPhone対策 */
    background: #0f1012;
    z-index: 99999 !important;     /* とにかく最前面 */
    padding: 86px 24px 24px;
    overflow-y: auto;
  }

  /* 三本線ボタンも最前面で押せるように */
  .nav-toggle{
    position: relative;
    z-index: 100000 !important;
  }

  /* headerのbackdrop-filterがfixedを邪魔することがあるので、開いてる間は切る */
  body.nav-open header{
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

/* お知らせ詳細：タイトル背景を消す */
.news-detail .section-head{
  background: transparent;
  border: 0;
}

/* ロゴ（SVG） */

.logo{
  height:56px;          /* ヘッダーに合っている高さ */
  display:flex;
  align-items:center;
}

.logo svg{
  height:100%;
  width:auto;
  display:block;
  transform: scale(1.1);
  fill: currentColor;
}

.brand{
  display: flex;
  align-items: center;
  gap: 12px;   /* ロゴと文字の間隔 */
  transform: translateX(-100px);
}

.brand-text{
  font-family: var(--serif);   /* 明朝ベースなら */
  font-size: 22px;
  color: var(--muted);         /* ロゴより一段落とす */
  letter-spacing: .1em;
  white-space: nowrap;
  height: center;
}

@media (max-width: 1030px){
 .brand{
  transform: translateX(0px);
}
}

footer .credit {
  font-size: 11px;
  color: rgba(233,230,223,.35);
  text-align: center;
}

footer .credit a {
  color: inherit;
  text-decoration: none;
}

footer .credit a:hover {
  text-decoration: underline;
}
