@charset "UTF-8";

/* -------------------------------
   Google Fonts
---------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;700&display=swap');

/* -------------------------------
   base
---------------------------------*/
html {
  font-size: 100%;
}

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: "Helvetica Neue", "Arial", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  background: #ffffff;
  color: #111111;
  line-height: 1.6;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

li {
  list-style-type: none;
}

.line {
  border-bottom: 1px solid #666666;
}

.instagram-icon{
  width: 20px;
  opacity: 0.5; /* 存在感を消しすぎず、馴染ませる */
  transition: opacity 0.3s;
}

.instagram-icon:hover {
  opacity: 1; /* マウスを乗せた時だけハッキリさせる */
}

.instagram-icon-white {
  width: 18px;
  opacity: 0.6;
  padding-top:5px;
}

.logo-white {
  color: #fff;
}

.logo-gray {
  color: #666666;
}

.wrapper {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 20px;
}

.site-title {
  font-size: 2.3rem;
  margin-top: 65px;
  margin-bottom: 0;
}

.sub-title {
  margin-bottom: 8px;
}

.sec-title {
  text-align: center;
  font-size: 1.6rem;
  margin-bottom: 30px;
}

.mini-text {
  font-family: 'Noto Serif JP', serif;
  color:#666;
  display: block;
  font-size: 0.9rem;
}

/* -------------------------------
   header 
---------------------------------*/
.hero-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 10;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 30px 60px;  
}

.hero-header h1 {
  margin-bottom: 30px;    /* ロゴとナビの距離 */
}

.logo-svg {
  width: 80px;
}

.logo-none {
  display: none;
}

.text-shadow {
 text-shadow: 0 0 6px rgba(0,0,0,0.6);
}

.nav-white {
  display: flex;
  gap: 30px;
  padding-top:20px;
}

.nav-white a {
  color: #ffffff;
}

/*--- page-works essay about nav--- */
.nav-gray {
  display: flex;
  gap: 30px;
  padding: 0;
  list-style: none;
  margin: 0;
  padding:0;
}

.nav-gray li a {
  font-size: 0.9rem;
  color: #666666;
  letter-spacing: 0.08em; /* 文字をパラパラと配置するイメージ */
  font-weight: 400;       /* フォントを少し細くする */
}

/* -------------------------------
   Hero Fullscreen
---------------------------------*/
.hero-full {
  position: relative;
  height: 100vh;
}

.hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center; /* 縦方向中央 */
  align-items: center;    /* 横方向中央 */
  color: white;
  margin-top:95px;
}

.hero-text {
  text-align: center;
}

h1 {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  justify-content: center;
}

.tibetan-script {
  margin-top: 25px;
}

/* ハンバーガーメニュー */
.hamburger {
  position: fixed;
  top: 20px;
  left: 20px;
  width: 28px;
  height: 20px;
  cursor: pointer;
  z-index: 1000;
  }

.hamburger span {
  display: block;
  height: 2px;
  background: #333;
  margin-bottom: 6px;
  transition: 0.3s;
  }

.side-menu {
  position: fixed;
  top: 0;
  left: -100%;
  width: 280px;
  max-width: 80%;
  height: 100vh;
  background: rgba(255, 255, 255, 0.95); /* 少し透ける */
  padding: 80px 10px;
  transition: left 0.5s ease;
  z-index: 999;
  }

/* 開いた状態 */
.side-menu.active {
  left: 0;
  }

/* メニュー内 */
.side-menu h2{
  text-align: center;
  }

.side-menu h2 a {
  font-size: 1.8rem;
  }

.side-menu ul {
  list-style: none;
  }

.side-menu li {
  margin-bottom: 20px;
  }

.side-menu .menu-item a {
  font-size: 1.5rem;
  letter-spacing: 0.002em;
  font-weight: bold;
  }

.side-menu a {
  text-decoration: none;
  color: #222;
  font-size: 15px;
  }

  .essay-item {
  margin-top: 3em;
  }

/* 三本線 → × に変化 */
.hamburger.active span:nth-child(1) {
  /* y方向に8px（隙間の分）だけ下げてから45度回す */
  transform: translateY(8px) rotate(45deg);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger.active span:nth-child(3) {
  /* y方向に8pxだけ上げてからマイナス45度回す */
  transform: translateY(-8px) rotate(-45deg);
}

.hamburger span:last-child {
  margin-bottom: 0;
}

.hamburger {
        display: none;
}

/* ホバーエフェクト */
.gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  padding: 0 15px 40px;
}

.photo-item {
  overflow: hidden;
}

.photo-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: 0.5s ease;
}

.photo-item:hover img {
  transform: scale(1.03);
  opacity: 0.92;
}

.photo-item img {
  transition: 0.5s ease;
}

.photo-item:hover img {
  opacity: 0.9;
}

/* スクロール誘導 */
.scroll-indicator{
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-block;
  width: 30px;
  height: 50px;
}

/* 矢印 */
.scroll-indicator span{
  display: block;
  width: 20px;
  height: 20px;
  border-left: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: rotate(-45deg);
  margin: 0 auto;
  animation: bounce 2.5s infinite; opacity: 0.6;
}

/* ピョン */
@keyframes bounce{
  0%   { transform: translateY(0) rotate(-45deg); opacity: 0; }
  50%  { transform: translateY(10px) rotate(-45deg); opacity: 1; }
  100% { transform: translateY(20px) rotate(-45deg); opacity: 0; }
}

/* 動かさない */
@keyframes fade {
  0%,100% { opacity: 0; }
  50% { opacity: 1; }
}

/* 白＋薄い影 */
.scroll-indicator span{
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  filter: drop-shadow(0 0 3px rgba(0,0,0,0.6));
}

/* 少しだけリッチに */
.scroll-indicator::after{
  content: "Scroll";
  display: block;
  text-align: center;
  font-size: 11px;
  color: #fff;
  margin-top: 8px;
  letter-spacing: 1px;
  opacity: 0.8;
}

/* -------------------------------
   Sections
---------------------------------*/
.intro.wrapper {
  margin-top: 30px;
  margin-bottom: 0;
}

.intro-text {
  font-family: 'Noto Serif JP', serif;
  font-size: 15px;
  text-align: center;
  line-height: 2.6;
}

/* --- top-works --- */
section.top-works.wrapper {
  max-width: 800px;
  margin: 0 auto;
  padding-top:5px;
}

.top-works ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  /* 修正ポイント：ここを100pxにします */
  column-gap: 80px; /* 1と、2・3の間の「縦のライン」の隙間 */
  /* 2と3の間の「横のライン」の隙間（元の10pxに戻す、またはお好みで） */
  row-gap: 10px; 
  padding: 0;
}

.top-works ul li:nth-child(1) {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
}

.top-works ul li img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* page-worksのここから差し替え */
.photography-container {
  padding: 100px 60px;
  max-width: 1100px; /* 一覧ページと同じ最大幅 */
  margin: 0 auto;    /* 左右を auto にすることで、画面の真ん中に寄ります */
  box-sizing: border-box;
}

/* --- タイトルとメニューの調整 --- */
.cl-sec-title {
  margin-bottom: 40px;
  text-align: left; /* お好みで。中央なら center */
}

.album {
  margin-bottom: 60px; /* グリッドとの間隔 */
  list-style: none;
  padding: 0;
}

/* --- グリッド本体：ここがパズルの土台です --- */
.photography-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 基本3列 */
  gap: 40px;                             /* 黄金の余白 */
  grid-auto-rows: auto;                  /* 高さを自動にし、余白問題を解決 */
  grid-auto-flow: dense;
  margin-top: 20px;
}

.photography-grid a {
  display: block;
}

.photography-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.photography-nav {
  text-align: center;
  font-family: 'Noto Serif', serif;
  color: #666;
  font-size: 0.9rem;
}

/* --- スペーサー（空白行） --- */
.grid-spacer {
  grid-column: span 3;
  height: 0; /* gapの40px分だけ正確に空きます */
}

/* --- 変化を付けるためのクラス（必要に応じて追加） --- */
.size-large { grid-column: span 2; grid-row: span 2; }
.size-wide  { grid-column: span 2; }
.size-tall  { grid-row: span 2; }


/* --- top-essay --- */
.top-essay.wrapper {
  margin-top: 10px;
}

.top-essay dl {
  display: flex;
  flex-wrap: wrap;
  border-top: solid 1px #c8c8c8;
  margin: 0;
  padding: 0;
}

.top-essay dt,
.top-essay dd {
  padding: 15px;
  box-sizing: border-box;
  /* box-shadowなら隙間があっても太さが重ならず1pxになります */
  box-shadow: 0 1px 0 0 #c8c8c8; 
}

.top-essay dt { width: 25%; }
.top-essay dd { width: 75%; margin: 0; }


/* --- page-essay  --- */
.page-essay {
  max-width: 800px;    /* 文章を読みやすくするため、全体の幅を少し絞る */
  margin: 145px auto;
  padding: 0 20px;
}

.page-essay article {
  display: flex;
  flex-direction: column; /* 最初から縦並びに指定 */
  align-items: center;    /* 中央揃え */
  gap: 21px;              /* 写真とタイトルの隙間をここで調節 */
  margin-bottom: 100px;
}

.page-essay img {
  width: 100%;
  max-width: 800px;       /* 写真の最大幅 */
  height: auto;           /* 写真の比率を維持 */
  object-fit: cover;
  /* 写真の補正フィルター */
  filter: contrast(1.05) brightness(1.02) saturate(0.9); [cite: 77]
}

.page-essay .text {
  width: 100%;
  max-width: 800px;
}

.essay-title {
  font-family: 'Noto Serif JP', serif; 
  font-size: 1.7rem; 
  margin: 0 0 20px 0;    /* 下にだけ余白を作る */
  padding-top: 0;
}

.page-essay p {
  font-family: 'Noto Serif JP', serif; 
  font-weight: 500;
  font-size: 15px; 
  line-height: 2.0; 
  margin-bottom: 1.5em;  /* 段落ごとの隙間 */
}

.page-essay .border-img {
  border: 1px solid #111111;
}

/* --- page-about --- */
.about-container {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  min-height: 100vh; 
  padding-top: 0;  
}

/* 左側：写真セクション */
.about-image-section {
  flex: 1;
  min-width: 50%;  /* PC時は半分 */
  height: 100vh;   /* 縦いっぱい */
  background-image: url('../images/about-main.jpg');
  background-size: 108%;
  display: flex;
  flex-direction: column;  /* 上下に並べる */
  justify-content: center; /* 縦の真ん中 */
  align-items: center;     /* 横の真ん中 */
}

.about-title {
  color: #fff;
  font-family: "Helvetica Neue", "Arial", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
  font-size: 2.5rem; /* 大きさは好みで調整してください */
  margin-bottom: 20px; /* ロゴとの間の隙間だけ指定 */
}

.about-logo img {
  width: 120px; /* ロゴのサイズ */
  height: auto;
  opacity: 0.3;
}

/* 右側：テキストセクション */
.about-content-section {
  flex: 1;
  min-width: 50%;   /* PC時は半分 */
  /* background-color: #fff; */
  background-color: #fafafa;
  display: flex;
  align-items: center; /* 上下中央 */
  justify-content: center; /* 左右中央 */
  padding: 60px;
  box-sizing: border-box;
}

.about-content-section.page-essay {
  margin-top: 0;
  margin-bottom: 0;
}

div.about-nav {
  text-align: right;
}

.content-inner {
  max-width: 500px; /* 1行が長くなりすぎないように制限 */
  width: 100%;
}

.content-inner h2 {
  margin-top: 35px;
}

.content-inner .credit {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  color:#888;

}

.essay-title {
  font-family: 'Noto Serif JP', serif; 
  font-size: 1.7rem; 
  margin: 0 0 20px 0;
  color: #333;
}

.page-essay p {
  font-family: 'Noto Serif JP', serif; 
  font-weight: 500;
  font-size: 15px; 
  line-height: 2.0; 
  margin-bottom: 1.5em;
  color: #444;
}

/* -------------------------------
   category 
---------------------------------*/
/* --- category-essay --- */
.wrapper {
  width: 960px;
  margin: 50px auto;
}

.c-banner img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  margin-top: 145px;
}

.c-sec-title {
  text-align: center;
  font-size: 1.7rem;
  margin-bottom: 30px;
}

h2.cl-sec-title {
  text-align: left;
  font-size: 1.7rem;
  margin-bottom: 0;
  padding-left: 0;
}

.c-essay dl {
  display: flex;
  flex-wrap: wrap;
  border-top: solid 1px #c8c8c8;
  margin: 0;
  padding: 0;
}

.c-essay dt,
.c-essay dd {
  padding: 15px;
  box-sizing: border-box;
  /* box-shadowなら隙間があっても太さが重ならず1pxになります */
  box-shadow: 0 1px 0 0 #c8c8c8; 
}

.c-essay dt { width: 25%; }
.c-essay dd { width: 75%; margin: 0; }


/* --- category-photography --- */
.page-works-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.spacer {
  grid-column: 1 / -1;
  height: 120px; /* 好みで調整 */
}

.album {
   margin-top: 0; 
   padding-left: 0;
   margin-bottom: 20px;
}

/* -------------------------------
   footer
---------------------------------*/
.footer {
  text-align: center;
  margin-top: 80px;
  padding: 40px;
  font-size: 0.9rem;
}

/* -------------------------------
  photo album
---------------------------------*/
.album-container {
  width: 100%;
  height: 90vh; /* 画面の9割を使用。余白を活かす設定 */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #fff; /* 背景を白にすると、フィルムの黒が締まります */
}

.photo-viewport {
  flex: 1;
  width: 100%;
  height: 80vh; /* 枠の高さもしっかり確保 */
  display: flex;
  align-items: center;
  justify-content: center;
}

/* .filter-on::after {
  content: "";
  position: fixed; 
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.18);
  pointer-events: none; 
  z-index: 9999; 
} */

.album-photo {
  width: auto !important;
  height: auto !important;
  /* 縦でも横でも、この枠の中に収まるようにする */
  max-width: 85% !important; 
  max-height: 75vh !important; 
  object-fit: contain; /* 縦横比を維持して収める */
  display: block;
  transform: translateY(50px); /* ナビとの重なり調整 */
}

/* ナビゲーションのスタイル */
.album-nav {
  padding: 20px 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  font-size: 0.9rem;
  letter-spacing: 0.1em;
}

.album-nav a {
  text-decoration: none;
  color: #333;
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s;
}

.album-nav a:hover {
  border-bottom: 1px solid #333;
}

/* overlay */
.photo-view::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.15); /* 濃さは好みで調整 */
}

/* 矢印の土台（aタグ） */
.nav-previous a,
.nav-next a {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  display: flex; /* 中央揃えのため追加 */
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
}

/* 左右位置 */
.nav-previous a {
  left: 40px;
}

.nav-next a {
  right: 40px;
}

/* 矢印のデザイン（擬似要素） */
.nav-previous a::before,
.nav-next a::before {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  border-top: 2px solid rgba(0,0,0,0.35);
  border-right: 2px solid rgba(0,0,0,0.35);
}

/* 向き */
.nav-previous a::before {
  transform: rotate(-135deg);
}

.nav-next a::before {
  transform: rotate(45deg);
}

/* hover */
.nav-previous a:hover::before,
.nav-next a:hover::before {
  border-color: #666;
}

.photo-frame figcaption{
  margin-top:14px;
  font-size:14px;
  color:#666;
  line-height:1.6;
  text-align:left;
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}

.back-link {
  position: fixed;
  top: 20px;
  left: 20px;
  font-size: 14px;
  color: #aaa;
  text-decoration: none;
  transition: 0.3s;
}

.back-link:hover {
  color: #666;
}

/* -------------------------------
   gallery
--------------------------------- */
/* .gallery だけではなく、テンプレート固有のクラスを先頭に付けます */
.page-template-page-gallery-php .gallery {
  background: #000;
  color: #fff;
  line-height: 1.6;
}

/* 念のため body 自体も黒くしておくと隙間ができません */
.page-template-page-gallery-php {
  background-color: #000;
}

.page-template-page-gallery-php .hero-header,
.page-template-page-gallery-php footer {
  display: none;
}

.page-template-page-gallery-php main.gallery {
  padding: 120px 0 80px !important;
}

.gallery h1 {
  font-size: 14px;
  letter-spacing: 0.1em;
  font-weight: normal;
}

.gallery .photo {
  margin-bottom: 17vh;
  display: flex;
  justify-content: center;
}

.gallery .photo img {
  width: 80%;
  max-width: 800px;
  height: auto;
  display: block;
}

.gallery .photo img.vertical {
  width: 60%;
  max-width: 520px;
}

.gallery .fade {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 1s ease, transform 1s ease;
}

.gallery .fade.show {
  opacity: 1;
  transform: translateY(0);
}

.gallery .back-link {
  position: fixed;
  top: 28px;
  left: 28px;
  color: rgba(255,255,255,0.75);
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 0.08em;
  z-index: 100;
  transition: opacity 0.3s ease;
}

.gallery .back-link:hover {
  opacity: 0.6;
}



/* -------------------------------
   responsive (768px以下)
---------------------------------*/
@media (max-width: 768px) {
 .hero-header {
  padding: 20px;
  max-width: 100%;
  height: auto;
  flex-direction: column;
  }

 .wrapper {
  width: 92%;
  margin: 0 auto;
  }

 .nav-white li a {
  display: none;
  }

 .nav-gray li a {
  display: none;
  }

 .hamburger {
  display: block;
  }

 .hamburger span {
  display: block;
  height: 2px;
  background: #cccccc;
  margin-bottom: 6px;
  transition: 0.3s;
  }

  /* Instagramアイコンの調整 */
.instagram-icon {
  height: 1.1rem; /* 0.9remの文字に対して少しだけ大きく設定 */
  width: auto;    /* アスペクト比を維持 */
  vertical-align: middle; /* 文字の高さ中央に合わせる */
  opacity: 0.7;   /* 他のナビ文字に合わせて少し薄くすると馴染みます */
}
  
 .intro-text {
  text-align: left;
  }

 .top-works ul {
  display: block;
  }

 .top-works ul li {
  margin-bottom: 20px;
  }

 .top-works ul li img {
  width: 70%;
  height: auto;
  margin: auto;
  }

  .top-essay dt {
    width: 100%;
    box-shadow: none; /* スマホで縦に並んだ時の中間の線を消す */
    padding-bottom: 5px;
  }
  .top-essay dd {
    width: 100%;
    padding-top: 5px;
  }
  
 .album {
  margin: 40px 0;
  text-align: center; /* 中央に配置 */
}

.album li {
  list-style: none;
  margin-bottom: 10px;
  line-height: 1.8;
}

.album a.line {
  font-weight: bold;
  text-decoration: none;
  border-bottom: 1px solid #333; /* リンクであることを示す線 */
  padding-bottom: 2px;
}

.c-banner img {
  margin-top: 150px;
} 

.page-essay {
  padding: 0 20px 60px 20px;
  margin-top: 150px;
}

.page-essay article {
  flex-direction: column;
}

.c-essay dt {
  width: 100%;
  box-shadow: none; /* スマホで縦に並んだ時の中間の線を消す */
  padding-bottom: 5px;
}

  .c-essay dd {
  width: 100%;
  padding-top: 5px;
  }

.about-image-section {
    min-width: 100%;
    height: 60vh; /* スマホでは高さを抑える */
 }
.about-content-section {
   min-width: 100%;
    padding: 40px 20px;
}

.page-works {
  padding-top:55px;
}

.photography-grid {
    /* 3列から1列に変更 */
    grid-template-columns: 1fr; 
    gap: 30px; /* スマホでは隙間を少し狭くするとバランスが良いです */
  }

  /* 大きな写真の特別ルールを解除して、横幅いっぱいにリセットする */
  .size-large, .size-wide, .size-tall {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
  }
  
  /* スペーサー（空白行）もスマホでは不要、または高さを調整 */
  .grid-spacer {
    grid-column: span 1;
    height: 20px; 
  }

/* カテゴリータイトルの調整 */
h2.cl-sec-title {
  text-align: center;        
  margin-top: 50px; 
  margin-bottom: 30px;
}

.cl-sec-title .mini-text {
  display: block;
  font-size: 0.9rem;        /* 日本語は控えめに */
  color: #888;
  letter-spacing: 0.1em;
  margin-top: 5px;
}

.container {
  flex-direction: column;
}
.left-box,
.right-box {
  flex: none;
  width: 100%;
  height: 50vh; /* スマホでは上下50%ずつ */
}

/* -- garllery -- */
.gallery .photo {
    margin-bottom: 8vh;
  }

  .gallery .photo img {
    width: 70%;
    max-width: none;
  }

  .gallery .photo img.vertical {
    width: 70%;
    max-width: none;
  }

  .gallery .back-link {
    top: 20px;
    left: 20px;
    font-size: 12px;
  }

/* --- 1. 横向き (Landscape) の設定：ロゴを消して写真を最大化 --- */
@media (orientation: landscape) {
/* ヘッダー（ロゴ）とハンバーガーメニュー、フィルターを非表示 */
.hero-header, 
.hamburger, 
.logo-gray { 
  display: none !important; 
 }

/* フィルター除去（以前の修正を継承） */
.photo-viewport.filter-on::after {
  display: none !important;
 }

/* コンテナを画面最上部から表示し、中央に寄せる */
.album-container {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;     /* 画面の高さ100% */
  width: 100vw;      /* 画面の幅100% */
  margin-top: -70px !important;
  padding: 0 !important;
  position: relative;
  overflow: hidden;
  background-color: #fff;
  }

/* 写真を画面の高さに合わせる */
.photo-viewport {
  flex: 1;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  }

.album-photo {
  max-height: 96vh; /* 上下にわずかな余白を残して最大化 */
  width: auto !important;
  object-fit: contain;
  }

/* 矢印を写真の左右に配置 */
.photo-navigation {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 0 20px;
  pointer-events: none;
  z-index: 100;
  }

.nav-previous, .nav-next {
  pointer-events: auto;
  }

.nav-previous a, .nav-next a {
  display: block;
  min-width: 44px;
  min-height: 44px;
  }
} /* 横向き設定の閉じ（1つ目） */


/* --- A. 縦向き (Portrait) の設定 --- */
@media (orientation: portrait) {
.album-container {
  width: 100%;
  position: relative;
  /* ↓ 上部を詰めたい場合はここをマイナスにします */
  margin-top: -50px !important; 
  padding-top: 0;
  }

.photo-viewport {
  width: 75%; /* 写真をもう少し小さくして、左右に矢印のスペースを作る */
  margin: 0 auto;
  }

.album-photo {
  width: 100%;
  height: auto;
  object-fit: contain;
  }

/* 矢印を画面の左右ギリギリに配置する */
.photo-navigation {
  position: absolute;
  /* 50% より大きくすると下に下がります。55%〜60%くらいで微調整してみてください */
  top: 55%; 
  left: 0;
  right: 0;
  /* この transform は中央揃えのためのものなので、そのままでOK */
  transform: translateY(-50%); 
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 0 10px;
  pointer-events: none;
  z-index: 100;
}

.nav-previous, .nav-next {
  pointer-events: auto;
        }
    }

} /* 768pxメディアクエリ全体の閉じ（3つ目） */

/* PC・タブレット用のメニュー設定（これは残す） */
@media (min-width: 769px) {
.side-menu {
  left: -100% !important;
  }
}



