  * { margin: 0; padding: 0; box-sizing: border-box; }
  html, body {
    background: #fbfaf6;
    color: #1a1a1a;
    font-family: 'Shippori Mincho', 'Noto Serif JP', serif;
    line-height: 1.95;
    -webkit-font-smoothing: antialiased;
    letter-spacing: 0.05em;
  }
  body { overflow-x: hidden; padding-bottom: 60px; }
  img { display: block; max-width: 100%; }
  a { color: inherit; text-decoration: none; }

  /* ─── 神田伯山風カラーパレット ─── */
  :root {
    --bg-main: #fbfaf6;      /* 生成・和紙白 */
    --bg-sub: #f3f1ea;       /* やや影のある和紙 */
    --bg-card: #ffffff;      /* 純白 */
    --ink: #1a1a1a;          /* 墨黒 */
    --ink-soft: #333;
    --sub: #555;
    --mute: #999;
    --line: #d8d3c4;         /* 罫線・和紙の縁 */
    --line-thin: #e8e3d4;
    --shu: #9a2a2a;          /* 朱赤 アクセント（最小限） */
  }

  /* ─── ヘッダー ─── */
  .header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 120;
    padding: 16px 22px;
    background: rgba(251, 250, 246, 0.94);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 0.5px solid var(--line);
    display: flex;
    justify-content: space-between;
    align-items: center;
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }
  .header.is-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .logo-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .crest {
    width: 32px;
    height: 32px;
    border: 0.5px solid var(--ink);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: var(--ink);
    font-weight: 500;
    position: relative;
  }
  .crest::before {
    content: '';
    position: absolute;
    inset: 3px;
    border: 0.5px solid var(--ink);
    border-radius: 50%;
  }
  .logo {
    font-family: 'Shippori Mincho', serif;
    font-size: 15px;
    letter-spacing: 0.28em;
    color: var(--ink);
    font-weight: 500;
  }
  .header-menu {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 8px 0 8px 12px;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    color: inherit;
    -webkit-tap-highlight-color: transparent;
  }
  .header-menu-label {
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: var(--ink);
    text-transform: uppercase;
  }
  .header-menu-icon {
    width: 24px;
    height: 14px;
    position: relative;
    display: block;
  }
  .header-menu-icon::before,
  .header-menu-icon::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 0.5px;
    background: var(--ink);
    transition: transform 0.25s ease, top 0.25s ease, bottom 0.25s ease;
  }
  .header-menu-icon::before { top: 4px; }
  .header-menu-icon::after { bottom: 4px; }
  body.is-menu-open .header-menu-icon::before {
    top: 7px;
    transform: rotate(45deg);
  }
  body.is-menu-open .header-menu-icon::after {
    bottom: 6px;
    transform: rotate(-45deg);
  }
  .nav-backdrop {
    position: fixed;
    inset: 0;
    z-index: 105;
    background: rgba(26, 26, 26, 0.35);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  .nav-backdrop.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .pc-left-nav {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    width: min(82vw, 300px);
    height: 100%;
    height: 100dvh;
    flex-direction: column;
    justify-content: space-between;
    align-items: stretch;
    padding: 88px 0 36px;
    border-right: 0.5px solid var(--line);
    background: var(--bg-main);
    z-index: 110;
    transform: translateX(-105%);
    transition: transform 0.3s ease;
    pointer-events: none;
  }
  .pc-left-nav.is-open {
    transform: translateX(0);
    pointer-events: auto;
  }
  .pc-left-nav .pc-left-logo {
    display: none;
  }
  .pc-left-menu {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    list-style: none;
    width: 100%;
    padding: 0 28px;
    margin: 0;
  }
  .pc-left-menu a {
    font-family: 'Shippori Mincho', serif;
    font-size: 13px;
    letter-spacing: 0.22em;
    color: var(--sub);
    display: block;
    width: 100%;
    padding: 16px 0;
    border-bottom: 0.5px solid var(--line-thin);
    transition: color 0.2s, padding-left 0.2s;
  }
  .pc-left-menu li:first-child a { border-top: 0.5px solid var(--line-thin); }
  .pc-left-copy {
    font-family: 'Cormorant Garamond', serif;
    font-size: 8px;
    letter-spacing: 0.2em;
    color: var(--mute);
    text-transform: uppercase;
    text-align: center;
  }
  body.is-menu-open {
    overflow: hidden;
  }

  /* ─── HERO（全幅フルスクリーン） ─── */
  .hero {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 600px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    text-align: left;
  }
  /* 背景ビジュアル（写真支給後はimg or background-imageに差替） */
  .hero-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, #c8c2b3 0%, #7a7464 40%, #3a3530 100%);
    z-index: 0;
  }
  /* スクリム：下から暗くなるグラデ */
  .hero-scrim {
    position: absolute;
    inset: 0;
    background:
      linear-gradient(to top, rgba(10,9,8,0.82) 0%, rgba(10,9,8,0.35) 50%, rgba(10,9,8,0.1) 100%);
    z-index: 1;
  }
  /* テキストブロック */
  .hero-inner {
    position: relative;
    z-index: 2;
    padding: 0 28px 64px;
    width: 100%;
  }
  .hero-eyebrow {
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.45em;
    color: rgba(255,255,255,0.6);
    margin-bottom: 20px;
    text-transform: uppercase;
    font-weight: 400;
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .hero-eyebrow::before {
    content: '';
    display: inline-block;
    width: 32px;
    height: 0.5px;
    background: rgba(255,255,255,0.4);
    flex-shrink: 0;
  }
  .hero-title {
    font-size: 58px;
    font-weight: 500;
    letter-spacing: 0.35em;
    color: #fff;
    line-height: 1.25;
    margin-bottom: 18px;
    text-shadow: 0 2px 24px rgba(0,0,0,0.3);
  }
  .hero-subtitle {
    font-family: 'Cormorant Garamond', serif;
    font-size: 12px;
    letter-spacing: 0.5em;
    color: rgba(255,255,255,0.55);
    margin-bottom: 36px;
    text-transform: uppercase;
    font-weight: 300;
  }
  .hero-tagline {
    font-size: 12px;
    letter-spacing: 0.2em;
    color: rgba(255,255,255,0.7);
    line-height: 2.2;
  }

  /* ─── セクション共通 ─── */
  .section {
    padding: 100px 28px;
    position: relative;
  }
  .section-head {
    text-align: center;
    margin-bottom: 56px;
  }
  .section-tag {
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.5em;
    color: var(--sub);
    text-transform: uppercase;
    display: block;
    margin-bottom: 16px;
    font-weight: 400;
  }
  .section-title {
    font-size: 24px;
    font-weight: 500;
    letter-spacing: 0.4em;
    color: var(--ink);
    margin-bottom: 20px;
    line-height: 1.6;
  }
  .section-rule {
    width: 28px;
    height: 0.5px;
    background: var(--ink);
    margin: 0 auto;
  }

  /* ─── NEWS（Instagram） ─── */
  .news {
    background: var(--bg-card);
    border-top: 0.5px solid var(--line);
    border-bottom: 0.5px solid var(--line);
  }
  .news-lead {
    text-align: center;
    font-size: 13px;
    color: var(--sub);
    line-height: 2.1;
    margin-bottom: 44px;
  }
  .news-list {
    display: flex;
    flex-direction: column;
    max-width: 720px;
    margin: 0 auto;
    border-top: 0.5px solid var(--line);
  }
  .news-list > a,
  .news-list > .news-item {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 18px 4px;
    border-bottom: 0.5px solid var(--line);
    transition: background 0.2s;
  }
  .news-list > a:hover {
    background: var(--bg-sub);
    padding-left: 10px;
  }
  .news-list .date {
    font-family: 'Cormorant Garamond', serif;
    font-size: 12px;
    color: var(--mute);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.08em;
    flex: 0 0 72px;
  }
  .news-list .cat {
    font-size: 10px;
    color: var(--shu);
    border: 0.5px solid var(--shu);
    padding: 2px 10px;
    letter-spacing: 0.12em;
    flex: 0 0 auto;
  }
  .news-list .t {
    font-size: 13px;
    color: var(--ink);
    line-height: 1.7;
    letter-spacing: 0.06em;
    flex: 1;
    min-width: 0;
  }
  .insta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 6px;
    margin-bottom: 36px;
  }
  .insta-item {
    aspect-ratio: 1;
    background: linear-gradient(135deg, #f3f1ea 0%, #d8d3c4 100%);
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .insta-item::after {
    content: 'IG';
    font-family: 'Cormorant Garamond', serif;
    color: var(--mute);
    font-size: 11px;
    letter-spacing: 0.2em;
    opacity: 0.5;
  }
  .insta-cta {
    text-align: center;
  }
  .insta-cta a {
    display: inline-block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.35em;
    color: var(--ink);
    padding: 14px 32px;
    border: 0.5px solid var(--ink);
    text-transform: uppercase;
  }

  /* ─── SCHEDULE（Googleカレンダー風マンスリービュー） ─── */
  .schedule {
    background: var(--bg-main);
  }
  .schedule-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
    padding: 0 8px;
  }
  .schedule-nav-arrow {
    font-family: 'Cormorant Garamond', serif;
    font-size: 20px;
    color: var(--ink);
    padding: 4px 12px;
    cursor: pointer;
    font-weight: 300;
    text-decoration: none;
  }
  .schedule-nav-month {
    text-align: center;
  }
  .schedule-nav-en {
    font-family: 'Cormorant Garamond', serif;
    font-size: 22px;
    letter-spacing: 0.25em;
    color: var(--ink);
    line-height: 1;
    margin-bottom: 6px;
    font-weight: 400;
  }
  .schedule-nav-jp {
    font-size: 11px;
    color: var(--sub);
    letter-spacing: 0.3em;
  }
  .cal-grid {
    background: var(--bg-card);
    border: 0.5px solid var(--line);
  }
  .cal-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    border-bottom: 0.5px solid var(--line);
    background: var(--bg-sub);
  }
  .cal-weekday {
    text-align: center;
    padding: 11px 0;
    font-family: 'Cormorant Garamond', serif;
    font-size: 10px;
    letter-spacing: 0.2em;
    color: var(--sub);
    text-transform: uppercase;
    font-weight: 400;
  }
  .cal-weekday.sun { color: var(--shu); }
  .cal-weekday.sat { color: #4a5f7c; }
  .cal-days {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
  }
  .cal-day {
    aspect-ratio: 1 / 1.2;
    border-right: 0.5px solid var(--line-thin);
    border-bottom: 0.5px solid var(--line-thin);
    padding: 6px 3px 4px;
    position: relative;
    background: var(--bg-card);
    overflow: hidden;
  }
  .cal-day:nth-child(7n) { border-right: none; }
  .cal-days .cal-day:nth-last-child(-n+7) { border-bottom: none; }
  .cal-day-num {
    font-family: 'Cormorant Garamond', serif;
    font-size: 13px;
    color: var(--ink);
    line-height: 1;
    text-align: center;
    font-weight: 400;
  }
  .cal-day.other .cal-day-num { color: #d0cab9; }
  .cal-day.sun .cal-day-num { color: var(--shu); }
  .cal-day.sat .cal-day-num { color: #4a5f7c; }
  .cal-event {
    margin-top: 5px;
    background: var(--ink);
    color: var(--bg-card);
    font-size: 8px;
    line-height: 1.3;
    padding: 2px 3px;
    letter-spacing: 0.02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: 'Shippori Mincho', serif;
  }
  .cal-event.shu {
    background: var(--shu);
  }
  .schedule-note {
    margin-top: 32px;
    text-align: center;
    font-size: 10px;
    color: var(--mute);
    letter-spacing: 0.15em;
    line-height: 2;
  }

  /* ─── PROFILE ─── */
  .profile {
    background: var(--bg-sub);
    border-top: 0.5px solid var(--line);
  }
  .profile-portrait {
    width: 100%;
    aspect-ratio: 4/5;
    background: linear-gradient(135deg, #c8c2b3 0%, #7a7565 100%);
    margin-bottom: 40px;
  }
  .profile-body {
    font-size: 13px;
    color: var(--ink-soft);
    line-height: 2.3;
    letter-spacing: 0.08em;
  }
  .profile-body p { margin-bottom: 20px; }
  .profile-list {
    margin-top: 40px;
    border-top: 0.5px solid var(--line);
  }
  .profile-list-item {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 0.5px solid var(--line);
    align-items: baseline;
  }
  .profile-list dt {
    font-family: 'Cormorant Garamond', serif;
    font-size: 10px;
    color: var(--sub);
    letter-spacing: 0.3em;
    text-transform: uppercase;
  }
  .profile-list dd {
    font-size: 13px;
    color: var(--ink);
    letter-spacing: 0.08em;
  }

  /* ─── GOODS ─── */
  .goods {
    background: var(--bg-card);
    border-top: 0.5px solid var(--line);
  }
  .goods-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  .goods-img {
    width: 100%;
    aspect-ratio: 1;
    background: linear-gradient(135deg, #f3f1ea 0%, #d8d3c4 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--mute);
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    margin-bottom: 14px;
    text-transform: uppercase;
  }
  .goods-name {
    font-size: 13px;
    color: var(--ink);
    line-height: 1.7;
    margin-bottom: 4px;
    letter-spacing: 0.05em;
  }
  .goods-meta {
    font-size: 10px;
    color: var(--sub);
    letter-spacing: 0.15em;
    font-family: 'Cormorant Garamond', serif;
  }
  .goods-note {
    margin-top: 44px;
    padding: 18px 22px;
    background: var(--bg-sub);
    border-left: 1px solid var(--shu);
    font-size: 11px;
    color: var(--ink-soft);
    line-height: 2;
    letter-spacing: 0.05em;
  }

  /* ─── LINKS ─── */
  .links {
    background: var(--bg-main);
    border-top: 0.5px solid var(--line);
  }
  .link-list {
    border-top: 0.5px solid var(--line);
  }
  .link-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 6px;
    border-bottom: 0.5px solid var(--line);
  }
  .link-name {
    font-size: 14px;
    color: var(--ink);
    letter-spacing: 0.08em;
  }
  .link-name span {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 9px;
    color: var(--sub);
    letter-spacing: 0.35em;
    margin-top: 5px;
    text-transform: uppercase;
  }
  .link-arrow {
    font-family: 'Cormorant Garamond', serif;
    color: var(--ink);
    font-size: 18px;
    font-weight: 300;
  }

  /* ─── CONTACT（外部リンクCTAのみ） ─── */
  .contact {
    background: var(--bg-sub);
    border-top: 0.5px solid var(--line);
    text-align: center;
  }
  .contact-lead {
    font-size: 13px;
    color: var(--ink-soft);
    line-height: 2.2;
    margin-bottom: 48px;
    letter-spacing: 0.08em;
  }
  .contact-cta {
    display: inline-block;
    padding: 22px 56px;
    background: var(--ink);
    color: var(--bg-card);
    font-size: 13px;
    letter-spacing: 0.35em;
    font-family: 'Shippori Mincho', serif;
    font-weight: 500;
    position: relative;
  }
  .contact-cta-arrow {
    margin-left: 14px;
    font-family: 'Cormorant Garamond', serif;
    font-weight: 300;
    font-size: 14px;
  }
  .contact-cta-sub {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 10px;
    color: var(--sub);
    margin-top: 18px;
    letter-spacing: 0.4em;
    text-transform: uppercase;
  }
  .contact-note {
    margin-top: 40px;
    font-size: 10px;
    color: var(--mute);
    letter-spacing: 0.15em;
    line-height: 2;
  }

  /* ─── FOOTER ─── */
  .footer {
    background: var(--ink);
    color: var(--bg-main);
    padding: 60px 28px 50px;
    text-align: center;
  }
  .footer-crest {
    width: 40px;
    height: 40px;
    border: 0.5px solid var(--bg-main);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    margin-bottom: 18px;
    position: relative;
  }
  .footer-crest::before {
    content: '';
    position: absolute;
    inset: 3px;
    border: 0.5px solid var(--bg-main);
    border-radius: 50%;
  }
  .footer-logo {
    font-size: 17px;
    color: var(--bg-main);
    letter-spacing: 0.35em;
    font-weight: 500;
    margin-bottom: 10px;
  }
  .footer-logo-sub {
    font-family: 'Cormorant Garamond', serif;
    font-size: 10px;
    color: #888;
    letter-spacing: 0.45em;
    text-transform: uppercase;
    margin-bottom: 44px;
  }
  .footer-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px 24px;
    margin-bottom: 40px;
    font-size: 11px;
    color: #bbb;
    letter-spacing: 0.18em;
  }
  .footer-copy {
    font-family: 'Cormorant Garamond', serif;
    font-size: 9px;
    color: #777;
    letter-spacing: 0.25em;
  }

  /* ─── STICKY BAR ─── */
  .sticky-bar {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    z-index: 99;
    background: var(--ink);
    border-top: 0.5px solid #333;
    height: 60px;
    display: flex;
    transform: translateY(100%);
    transition: transform 0.3s ease;
  }
  .sticky-bar.is-visible {
    transform: translateY(0);
  }
  .sticky-main {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bg-main);
    font-size: 13px;
    letter-spacing: 0.25em;
    font-weight: 500;
  }
  .sticky-insta {
    width: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bg-main);
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.2em;
    border-left: 0.5px solid #333;
  }

  /* ─── PC専用：初期非表示 ─── */
  .pc-right-contact,
  .pc-right-fixed { display: none; }

  /* pc-right-fixedはPCで表示 */
  @media (min-width: 1024px) {
    .pc-right-fixed { display: flex !important; }
  }

  /* ─── PC ─── */
  @media (min-width: 1024px) {
    :root {
      --sidebar-w: 200px;
      --container-w: 1100px;       /* 全体の最大幅（ナビ＋コンテンツ＋コンタクト） */
    }

    body { padding-bottom: 0; }

    /* ヘッダーはSPのまま非表示 */
    .header { display: none; }
    .nav-backdrop { display: none !important; }
    body.is-menu-open { overflow: visible; }

    /* コンテナ左端の位置（ウィンドウが広いときは中央寄せ、狭いときは端） */
    /* left端 = max(0, (100vw - container-w) / 2) */

    /* ══ 左サイドバー：固定縦ナビ（コンテナ左端に配置） ══ */
    .pc-left-nav {
      display: flex;
      position: fixed;
      top: 0;
      left: max(0px, calc((100vw - var(--container-w)) / 2));
      width: var(--sidebar-w);
      height: 100vh;
      flex-direction: column;
      justify-content: space-between;
      align-items: center;
      padding: 44px 0 40px;
      border-right: 0.5px solid var(--line);
      background: var(--bg-main);
      z-index: 80;
      transform: none;
      pointer-events: auto;
    }
    .pc-left-nav .pc-left-logo,
    .pc-left-logo {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
    }
    .pc-left-crest {
      width: 38px; height: 38px;
      border: 0.5px solid var(--ink);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 15px; color: var(--ink); font-weight: 500;
      position: relative;
    }
    .pc-left-crest::before {
      content: '';
      position: absolute; inset: 3px;
      border: 0.5px solid var(--ink); border-radius: 50%;
    }
    .pc-left-name {
      font-family: 'Shippori Mincho', serif;
      font-size: 13px; letter-spacing: 0.3em;
      color: var(--ink); font-weight: 500;
    }
    .pc-left-name-en {
      font-family: 'Cormorant Garamond', serif;
      font-size: 9px; letter-spacing: 0.35em;
      color: var(--mute); text-transform: uppercase;
    }
    /* 横書きナビリンク */
    .pc-left-menu {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 0;
      list-style: none;
      width: 100%;
      padding: 0 28px;
    }
    .pc-left-menu a {
      font-family: 'Shippori Mincho', serif;
      font-size: 12px; letter-spacing: 0.22em;
      color: var(--sub);
      display: block;
      width: 100%;
      padding: 14px 0;
      border-bottom: 0.5px solid var(--line-thin);
      transition: color 0.2s, padding-left 0.2s;
    }
    .pc-left-menu li:first-child a { border-top: 0.5px solid var(--line-thin); }
    .pc-left-menu a:hover { color: var(--ink); padding-left: 6px; }
    /* コピーライト */
    .pc-left-copy {
      font-family: 'Cormorant Garamond', serif;
      font-size: 8px; letter-spacing: 0.2em;
      color: var(--mute); text-transform: uppercase;
      text-align: center;
    }

    /* ══ 右サイドバー：固定お問い合わせ ══ */
    .pc-right-contact {
      display: flex;
      position: fixed;
      top: 0; right: 0;
      width: var(--sidebar-w);
      height: 100vh;
      flex-direction: column;
      justify-content: space-between;
      align-items: center;
      padding: 44px 0 40px;
      border-left: 0.5px solid var(--line);
      background: var(--bg-main);
      z-index: 80;
    }
    .pc-right-label {
      font-family: 'Cormorant Garamond', serif;
      font-size: 10px; letter-spacing: 0.45em;
      color: var(--sub); text-transform: uppercase;
      text-align: center;
    }
    .pc-right-label::before {
      content: '◆';
      color: var(--shu); font-size: 7px;
      display: block; text-align: center;
      margin-bottom: 8px;
    }
    .pc-right-center {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 16px;
      text-align: center;
      padding: 0 20px;
    }
    .pc-right-title {
      font-size: 12px; letter-spacing: 0.2em;
      color: var(--ink); font-weight: 500;
      line-height: 2;
      text-align: center;
    }
    .pc-right-note {
      font-family: 'Cormorant Garamond', serif;
      font-size: 10px; letter-spacing: 0.12em;
      color: var(--mute);
      line-height: 1.9;
      text-align: center;
    }
    .pc-right-btn {
      display: flex; align-items: center; justify-content: center;
      width: 44px; height: 44px;
      background: var(--ink); color: var(--bg-main);
      font-family: 'Cormorant Garamond', serif;
      font-size: 16px; font-weight: 300;
    }
    .pc-right-ig {
      font-family: 'Cormorant Garamond', serif;
      font-size: 10px; letter-spacing: 0.35em;
      color: var(--sub); text-transform: uppercase;
      text-align: center;
    }

    /* PC右サイドバー：空のスペーサー（コンテナ右端に配置） */
    .pc-right-contact {
      display: block;
      position: fixed;
      top: 0;
      right: max(0px, calc((100vw - var(--container-w)) / 2));
      width: var(--sidebar-w);
      height: 100vh;
      border-left: 0.5px solid var(--line);
      background: var(--bg-main);
      z-index: 78;
      pointer-events: none;
    }

    /* 右下固定：お問い合わせパネル（コンテナ右端に配置） */
    .pc-right-fixed {
      display: flex;
      position: fixed;
      bottom: 0;
      right: max(0px, calc((100vw - var(--container-w)) / 2));
      width: var(--sidebar-w);
      flex-direction: column;
      align-items: center;
      padding: 28px 20px 36px;
      gap: 14px;
      z-index: 81;
      pointer-events: auto;
      background: var(--bg-main);
      border-left: 0.5px solid var(--line);
      margin-right: 0 !important;
    }
    .pc-right-fixed-title {
      font-size: 11px; letter-spacing: 0.2em;
      color: var(--ink); font-weight: 500;
      text-align: center; line-height: 1.9;
    }
    .pc-right-fixed-btn {
      display: flex; align-items: center; justify-content: center;
      width: 44px; height: 44px;
      background: var(--ink); color: var(--bg-main);
      font-family: 'Cormorant Garamond', serif;
      font-size: 18px; font-weight: 300;
      transition: background 0.2s;
    }
    .pc-right-fixed-btn:hover { background: var(--shu); }

    /* アクティブナビ */
    .pc-left-menu a.active {
      color: var(--ink);
      font-weight: 600;
    }
    .pc-left-menu a.active::before {
      content: '';
      display: inline-block;
      width: 4px; height: 4px;
      background: var(--shu);
      border-radius: 50%;
      margin-right: 8px;
      vertical-align: middle;
      margin-bottom: 2px;
    }
    /* メインコンテンツ：コンテナ内側（左右サイドバーの内側）に配置 */
    body > *:not(.pc-left-nav):not(.pc-right-contact):not(.pc-right-fixed):not(.sticky-bar):not(.nav-backdrop):not(.mk) {
      margin-left: calc(max(0px, (100vw - var(--container-w)) / 2) + var(--sidebar-w));
      margin-right: calc(max(0px, (100vw - var(--container-w)) / 2) + var(--sidebar-w));
    }

    /* HEROはコンテンツ幅いっぱい・SPと同じ縦長比率 */
    .hero {
      width: auto !important;
      max-width: none;
      height: auto;
      min-height: 0;
      aspect-ratio: 3 / 4;
    }
    .hero-inner { padding: 0 48px 56px; }
    .hero-title { font-size: 52px; letter-spacing: 0.35em; }
    .hero-subtitle { font-size: 12px; }
    .hero-tagline { font-size: 12px; line-height: 2.4; }

    /* セクション：コンテンツ領域いっぱい（左右パディングで内側余白） */
    .section { padding: 120px 70px; }
    .section-title { font-size: 28px; }

    .insta-grid { grid-template-columns: repeat(3, 1fr); }
    .goods-grid { grid-template-columns: repeat(4, 1fr); gap: 32px; }
    .link-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 60px; }

    .profile-inner {
      display: grid;
      grid-template-columns: 5fr 6fr;
      gap: 70px;
      align-items: start;
    }
    .profile-portrait { margin-bottom: 0; }

    .cal-day { aspect-ratio: 1 / 0.85; padding: 8px 6px 6px; }
    .cal-day-num { font-size: 14px; }
    .cal-event { font-size: 10px; padding: 3px 6px; line-height: 1.35; }

    /* SPスティッキーバーは非表示 */
    .sticky-bar { display: none; }
  }

  /* ─── Spread CMS ─── */
  .sheet-notice,
  .news-empty {
    max-width: 720px;
    margin: 0 auto 24px;
    padding: 14px 18px;
    font-size: 12px;
    color: var(--sub);
    text-align: center;
    background: var(--bg-sub);
    border: 0.5px solid var(--line);
    line-height: 1.8;
  }
  .news-more {
    text-align: center;
    margin-top: 28px;
  }
  .news-more a {
    font-size: 12px;
    letter-spacing: 0.15em;
    color: var(--shu);
    border-bottom: 0.5px solid var(--shu);
    padding-bottom: 2px;
  }
  .goods-img-photo {
    background-size: cover;
    background-position: center;
    color: transparent;
  }
  .goods-img-photo::after { display: none; }
  .goods-buy {
    margin-top: 10px;
    font-size: 11px;
    text-align: center;
  }
  .goods-buy a {
    color: var(--shu);
    letter-spacing: 0.1em;
  }
  .logo-link {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: inherit;
  }
  body.subpage {
    padding-bottom: 40px;
  }
  .subpage-hero {
    padding-top: 100px;
    padding-bottom: 40px;
  }
  .subpage-body {
    padding-top: 0;
    max-width: 720px;
    margin: 0 auto;
  }
  .news-list-page {
    border-top: 0.5px solid var(--line);
  }
  .detail-date {
    display: block;
    font-family: 'Cormorant Garamond', serif;
    font-size: 12px;
    color: var(--mute);
    letter-spacing: 0.12em;
    margin-bottom: 16px;
  }
  .detail-title {
    font-size: 20px;
    line-height: 1.7;
    letter-spacing: 0.12em;
  }
  .detail-text {
    font-size: 14px;
    color: var(--ink-soft);
    line-height: 2.2;
    letter-spacing: 0.06em;
  }
  .detail-text a {
    color: var(--shu);
    text-decoration: underline;
  }
  .detail-external {
    margin-top: 32px;
    text-align: center;
  }
  .detail-external a {
    color: var(--shu);
    letter-spacing: 0.1em;
    font-size: 13px;
  }
  .page-back {
    margin-top: 48px;
    text-align: center;
    font-size: 12px;
    letter-spacing: 0.1em;
  }
  .page-back a {
    color: var(--sub);
  }
  .pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-top: 36px;
    font-size: 12px;
    letter-spacing: 0.08em;
  }
  .pagination-link {
    color: var(--ink);
    text-decoration: none;
  }
  .pagination-link.is-disabled {
    color: var(--mute);
  }
  .footer-compact {
    padding: 40px 28px;
    text-align: center;
  }
  .footer-compact .footer-copy {
    margin-top: 0;
  }
  .footer-company{margin:18px 0 0;font-size:12px;line-height:1.9;letter-spacing:.08em}
  .mk{position:fixed;left:14px;bottom:74px;z-index:120;background:#B8322A;color:#fff;font-size:11px;padding:7px 12px;border-radius:20px;display:flex;align-items:center;gap:8px;box-shadow:0 4px 16px rgba(0,0,0,.18)}
  .mk button{background:none;border:none;color:#fff;cursor:pointer;font-size:14px;line-height:1;padding:0}
  @media (min-width: 1024px) {
    .mk { bottom: 14px; }
  }
