/*=============================================================
  private_museum_main.css
  Private Museum メインページ
  ・タイル背景（1→4→2→5→3→6→10→7→9→8）
  ・抹茶色（黄緑）オーバーレイで旧ページの雰囲気を踏襲
  ・レスポンシブ対応
=============================================================*/

/* ====== リセット ====== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ====== ベース ====== */
html { font-size: 16px; scroll-behavior: smooth; }

body {
  font-family: 'MS PGothic', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
  font-size: 13px;
  line-height: 1.7;
  color: #ffffff;
  background-color: #050a03;
  min-width: 320px;
  -webkit-text-size-adjust: 100%;
}

/* ======================================================
   タイル背景（並び順：1→4→2→5→3→6→10→7→9→8）
   ・抹茶色（黄緑）被せで旧ページの雰囲気を残す
   ====================================================== */
#tile-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 2px;
  pointer-events: none;
  background: #050a03;
}
@media screen and (max-width: 768px) {
  #tile-bg {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(5, 1fr);
  }
}
#tile-bg .tile-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  filter: brightness(0.55) saturate(0.70);
  background: #050a03;
}

/* 抹茶色（黄掛かりグリーン）オーバーレイ */
#tile-overlay {
  position: fixed;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    135deg,
    rgba(30, 55, 10, 0.72) 0%,
    rgba(15, 40, 5, 0.65) 50%,
    rgba(20, 50, 8, 0.70) 100%
  );
  pointer-events: none;
}
/* ====== ガラス反射・斜め線オーバーレイ ====== */
#glass-lines {
  position: fixed;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
#glass-lines svg {
  width: 100%;
  height: 100%;
}


/* ====== リンク ====== */
a { color: #ffff00; text-decoration: none; }
a:hover { color: #ffffff; text-decoration: underline; }
img { max-width: 100%; height: auto; display: block; border: none; }

/* ====== ページ外枠 ====== */
.page-wrapper {
  position: relative;
  z-index: 3;
  max-width: 760px;
  margin: 0 auto;
  padding: 0 10px 80px;
}

/* ====== SEO H1 ====== */
.seo-heading {
  font-size: clamp(11px, 2.2vw, 14px);
  font-weight: normal;
  color: #ffffff;
  text-align: center;
  padding: 8px 10px;
  background: rgba(0, 30, 10, 0.80);
  line-height: 1.5;
  border-bottom: 1px solid #336633;
}
.seo-heading a { color: #ffffff; text-decoration: none; }

/* ====== PM バナーヘッダー ====== */
.pm-header {
  background: rgba(0, 25, 8, 0.85);
  border-bottom: 1px solid #336633;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  gap: 10px;
  flex-wrap: wrap;
}
.pm-header img { max-width: 100%; height: auto; }
.pm-header-back a {
  color: #ffffff;
  font-size: 0.85em;
  white-space: nowrap;
  text-decoration: none;
  border: 1px solid #55aa44;
  padding: 4px 10px;
  display: inline-block;
  background: rgba(0, 40, 10, 0.60);
  border-radius: 3px;
  transition: background 0.2s;
}
.pm-header-back a:hover { background: rgba(0, 80, 20, 0.80); color: #ffff99; }

/* ====== PM サブナビゲーション（高級グリーン光沢ボタン） ====== */
.pm-nav {
  display: flex;
  gap: 6px;
  padding: 10px 8px;
  background: rgba(0, 15, 5, 0.88);
  border-top: 1px solid #2a5a2a;
  border-bottom: 2px solid #1a4a1a;
}
.pm-nav a {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 10px 6px;
  text-align: center;
  font-size: clamp(13px, 2.8vw, 15px);
  font-weight: bold;
  letter-spacing: 0.04em;
  color: #d4f5d4;
  text-decoration: none;
  border-radius: 5px;
  border: 1px solid #4a9a4a;
  /* 光沢グラデーション */
  background: linear-gradient(
    180deg,
    #3a7a30 0%,
    #2a6020 40%,
    #1e4a16 60%,
    #254e1c 100%
  );
  box-shadow:
    inset 0 1px 0 rgba(180, 255, 160, 0.30),
    inset 0 -1px 0 rgba(0, 0, 0, 0.35),
    0 3px 8px rgba(0, 0, 0, 0.55);
  transition: background 0.18s, color 0.18s, box-shadow 0.18s, transform 0.12s;
  position: relative;
  overflow: hidden;
}
/* 光沢ハイライト（上部ライン） */
.pm-nav a::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(
    180deg,
    rgba(200, 255, 180, 0.18) 0%,
    rgba(200, 255, 180, 0.04) 100%
  );
  border-radius: 5px 5px 0 0;
  pointer-events: none;
}
.pm-nav a:last-child { border-right: none; }
.pm-nav a:hover {
  background: linear-gradient(
    180deg,
    #4e9a42 0%,
    #3a7a2e 40%,
    #2a5e20 60%,
    #326428 100%
  );
  color: #ffffff;
  box-shadow:
    inset 0 1px 0 rgba(200, 255, 180, 0.40),
    inset 0 -1px 0 rgba(0, 0, 0, 0.30),
    0 4px 12px rgba(0, 0, 0, 0.60);
  transform: translateY(-1px);
  text-decoration: none;
}
.pm-nav a.active {
  background: linear-gradient(
    180deg,
    #2a5a22 0%,
    #1e4418 40%,
    #183614 60%,
    #1e3e18 100%
  );
  color: #aaffaa;
  border-color: #66bb66;
  box-shadow:
    inset 0 2px 6px rgba(0, 0, 0, 0.50),
    inset 0 1px 0 rgba(150, 255, 130, 0.15),
    0 1px 3px rgba(0, 0, 0, 0.40);
  transform: translateY(0);
  cursor: default;
}
@media screen and (max-width: 480px) {
  .pm-nav { gap: 4px; padding: 8px 6px; }
  .pm-nav a { min-height: 42px; font-size: 13px; }
}

/* ====== 区切り線 ====== */
.divider {
  border: none;
  border-top: 1px solid #336633;
  margin: 10px 0;
}

/* ====== イントロテキスト ====== */
.intro-block {
  background: rgba(0, 25, 8, 0.75);
  border-bottom: 1px solid #336633;
  padding: 10px 12px;
  font-size: 0.9em;
  color: #ffffff;
}
.intro-block p { margin-bottom: 0.8em; }
.intro-block strong { font-weight: bold; }
.intro-block a { color: #ffff00; }

/* ====== 照明リンク ====== */
.lighting-link {
  text-align: center;
  padding: 6px 4px;
  font-size: 0.9em;
  background: rgba(0, 20, 5, 0.60);
}

/* ====== 使用例写真 ====== */
.usage-photo {
  text-align: center;
  padding: 10px 0;
  background: rgba(0, 25, 8, 0.70);
  border-bottom: 1px solid #336633;
}
.usage-photo img { margin: 0 auto; max-width: 600px; width: 100%; }
.usage-photo .caption { font-size: 0.85em; margin-top: 6px; color: #ffffff; padding: 0 8px 6px; }

/* ====== カテゴリバナー ====== */
.category-banner {
  background: rgba(0, 25, 8, 0.82);
  border-bottom: 1px solid #336633;
  padding: 12px 10px;
  margin: 0;
}
.category-banner .banner-title {
  text-align: center;
  font-size: clamp(13px, 2.4vw, 15px);
  color: #ffffff;
  margin-bottom: 10px;
  line-height: 1.7;
}
.category-links {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-bottom: 4px;
}
.category-links a {
  text-align: center;
  font-size: clamp(13px, 2.3vw, 14px);
  font-weight: bold;
  color: #ffff66;
  padding: 7px 4px;
  display: block;
  line-height: 1.5;
  background: rgba(0, 40, 12, 0.55);
  border: 1px solid rgba(80, 160, 60, 0.35);
  border-radius: 3px;
  transition: background 0.15s, color 0.15s;
}
.category-links a:hover {
  background: rgba(0, 70, 20, 0.75);
  color: #ffffff;
  text-decoration: none;
}
.name-plate-row,
.studio-row,
.inquiry-row {
  text-align: center;
  font-size: clamp(13px, 2.3vw, 14px);
  color: #ffffff;
  padding: 7px 4px;
  line-height: 1.7;
}
.name-plate-row a,
.studio-row a,
.inquiry-row a { color: #ffff66; font-weight: bold; }
.name-plate-row a:hover,
.studio-row a:hover,
.inquiry-row a:hover { color: #ffffff; }

/* ====== PM グリッド ====== */
.pm-grid-section {
  padding: 10px 0;
  background: rgba(0, 20, 5, 0.70);
}
.pm-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  padding: 6px;
}
.pm-item {
  background: rgba(0, 30, 10, 0.60);
  text-align: center;
  padding: 6px 4px 8px;
  border: 1px solid rgba(51, 102, 51, 0.30);
}
.pm-item a { display: block; }
.pm-item a:hover { opacity: 0.85; }
.pm-item img {
  margin: 0 auto;
  max-width: 100%;
  height: 80px;
  width: auto;
  object-fit: contain;
}
.pm-item .pm-label {
  font-size: clamp(11px, 1.8vw, 12px);
  color: #e3fcdc;
  margin-top: 5px;
  line-height: 1.5;
  word-break: break-all;
}

/* ====== 下部大写真 ====== */
.bottom-photos {
  padding: 10px 0;
  text-align: center;
  background: rgba(0, 20, 5, 0.70);
}
.bottom-photos img { margin: 0 auto 6px; max-width: 600px; width: 100%; }
.bottom-photos .caption {
  font-size: 0.85em;
  color: #ffffff;
  margin-bottom: 16px;
  padding: 0 8px;
}
.bottom-photos .caption strong { font-weight: bold; }
.tokushou-link {
  text-align: center;
  font-size: 0.9em;
  margin: 10px 0 20px;
}

/* ====== フッター ====== */
.page-footer {
  border-top: 1px solid #336633;
  background: rgba(0, 20, 5, 0.92);
  padding: 14px 10px;
  text-align: center;
  font-size: 0.8em;
  color: #aaaaaa;
}
.page-footer a { color: #88cc88; }
.page-footer a:hover { color: #ffff00; }

/* ====== 固定フローティングボタン ====== */
.float-btns {
  position: fixed;
  bottom: 20px;
  left: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-left: 12px;
  gap: 8px;
  z-index: 1000;
  pointer-events: none;
}
.float-btns > * { pointer-events: auto; }

.btn-call {
  display: flex;
  align-items: center;
  gap: 7px;
  background: #c8251a;
  color: #fff;
  font-size: 0.82em;
  font-weight: bold;
  padding: 9px 14px;
  border-radius: 30px;
  text-decoration: none;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.6);
  white-space: nowrap;
  transition: background 0.2s;
}
.btn-call:hover { background: #e02d20; color: #fff; text-decoration: none; }
.btn-call .icon { font-size: 1.1em; }

.btn-inquiry {
  display: flex;
  align-items: center;
  gap: 7px;
  background: #1a5c1a;
  color: #fff;
  font-size: 0.82em;
  font-weight: bold;
  padding: 9px 14px;
  border-radius: 30px;
  text-decoration: none;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.6);
  white-space: nowrap;
  transition: background 0.2s;
  border: 1px solid #2d8b2d;
}
.btn-inquiry:hover { background: #236b23; color: #fff; text-decoration: none; }
.btn-inquiry .icon { font-size: 1.1em; }

.btn-access {
  display: flex;
  align-items: center;
  gap: 7px;
  background: #1a3a5c;
  color: #fff;
  font-size: 0.82em;
  font-weight: bold;
  padding: 9px 14px;
  border-radius: 30px;
  text-decoration: none;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.6);
  white-space: nowrap;
  transition: background 0.2s;
  border: 1px solid #2d6098;
}
.btn-access:hover { background: #234b7a; color: #fff; text-decoration: none; }
.btn-access .icon { font-size: 1.1em; }

/* ====== 固定ボタン：ページトップ（右下） ====== */
.btn-totop {
  position: fixed;
  bottom: 20px;
  right: 12px;
  width: 46px;
  height: 46px;
  background: rgba(0, 80, 0, 0.85);
  border: 1px solid #2d8b2d;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.3em;
  text-decoration: none;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.5);
  z-index: 1000;
  transition: background 0.2s;
}
.btn-totop:hover { background: rgba(0, 110, 0, 0.95); color: #fff; text-decoration: none; }

/*=============================================
  レスポンシブ
=============================================*/
@media screen and (max-width: 600px) {
  .pm-grid { grid-template-columns: repeat(3, 1fr); }
  .category-links { grid-template-columns: repeat(2, 1fr); }
  .pm-header { flex-direction: column; align-items: center; }
  .seo-heading { font-size: 0.78em; }
  .float-btns { padding-left: 8px; gap: 6px; bottom: 16px; }
  .btn-call,
  .btn-inquiry,
  .btn-access { font-size: 0.75em; padding: 8px 11px; }
  .btn-totop { bottom: 16px; right: 8px; width: 42px; height: 42px; font-size: 1.1em; }
}
@media screen and (max-width: 400px) {
  .pm-grid { grid-template-columns: repeat(2, 1fr); }
  .pm-item img { height: 65px; }
  .category-links { grid-template-columns: repeat(2, 1fr); }
}

/* ====== Instagramブロック（showcase.css と同構造） ====== */
.instagram-block {
  background: rgba(0, 10, 5, 0.50);
  border-left: 3px solid #c13584;
  padding: 10px 14px;
  margin: 20px 0 10px;
  border-radius: 0;
}
.instagram-block .insta-text {
  font-size: 0.82rem;
  color: #ffffff;
  margin-bottom: 6px;
  line-height: 1.7;
}
.instagram-block .insta-link {
  font-weight: bold;
  font-size: 0.85rem;
  margin-bottom: 0;
}
.instagram-block .insta-link a {
  color: #f7a8c4;
  text-decoration: underline;
}
.instagram-block .insta-link a:hover {
  color: #ffffff;
}
.instagram-block .insta-update {
  font-size: 0.78rem;
  color: #dddddd;
}
.insta-widget-wrap {
  margin-top: 14px;
  width: 100%;
  overflow: hidden;
  border-radius: 6px;
  background: #000;
  min-height: 300px;
}
.insta-widget-wrap iframe {
  width: 100%;
  min-height: 610px;
  border: 0;
  display: block;
}
@media (max-width: 640px) {
  .insta-widget-wrap iframe {
    min-height: 690px;
  }
}
