@charset "UTF-8";
/* ===================== 提示されたCSSを統合 ===================== */
html, body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}
:root {
  --header-h: 64px;
}
.sp-only {
  display: none;
}
.tab-only {
  display: inline;
}
.pc-tab-only {
  display: inline;
}
/* ===================== 固定ナビ ===================== */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-right: 30px;
  padding-bottom: 0;
  z-index: 100;
  background: #fff;
  backdrop-filter: blur(6px);
  color: #000;
}
.site-header .logo {
  font-family: "henderson-sans-basic", sans-serif;
  font-weight: 400;
  font-style: normal;
  display: flex;
  margin-left: 20px;
  padding-left: 0px;
  flex-shrink: 0;
}
.site-header .logo .name a {
  color: inherit;
  text-decoration: none;
}
.logo img {
  width: 40px;
  height: auto;
}
.name {
  margin-left: 10px;
  align-items: center;
  margin-top: 10px;
}
.site-header nav ul {
  display: flex;
  gap: 35px;
  list-style: none;
}
.site-header nav a {
  color: #000;
  text-decoration: none;
  font-family: "henderson-sans-basic", sans-serif;
  font-weight: 100;
  font-style: normal;
  white-space: nowrap;
}
/* スムーズスクロールを有効にする */
html {
  scroll-behavior: smooth;
}
#agnes-b-video {
  scroll-margin-top: 80px;
}
#moritown {
  scroll-margin-top: 80px;
}
#waseda {
  scroll-margin-top: 80px;
}
#rikkyo {
    scroll-margin-top: 80px;
}
#lgbtq {
    scroll-margin-top: 80px;
}
#bridal {
    scroll-margin-top: 80px;
}
#shiina-glass {
    scroll-margin-top: 80px;
}
#tsh {
    scroll-margin-top: 80px;
}

/* 1. ボタン全体のサイズと位置 */
.hamburger {
  display: none;
  position: relative; /* 中の線の位置の基準にする */
  width: 30px; /* ボタン全体の横幅 */
  height: 18px; /* ボタン全体の高さ */
  background: none;
  border: none;
  cursor: pointer;
  padding: 0; /* 余計な余白を消す */
}
/* 2. 3本の線に共通するスタイル（ここで太さを決める） */
.hamburger span {
  display: block;
  position: absolute; /* 自由に配置できるようにする */
  left: 0;
  width: 100%; /* 30pxいっぱいに線を引く */
  height: 1px; /* ★ここが「線の太さ」！1px〜4pxでお好み調整 */
  background-color: #000; /* 線の色 */
  border-radius: 10px; /* 角を丸くすると柔らかい印象になります */
  transition: all 0.3s; /* あとでアニメーションさせるための準備 */
}
/* 1番上の線 */
.hamburger span:nth-child(1) {
  top: 0;
}
/* 真ん中の線 */
.hamburger span:nth-child(2) {
  top: 50%; /* 上から50%の位置へ */
  transform: translateY(-50%); /* 線の厚みの分だけ微調整して真ん中へ */
}
/* 1番下の線 */
.hamburger span:nth-child(3) {
  bottom: 0; /* 1番下に配置 */
}

/* クラスがついた時、上の線を45度傾ける */
.hamburger.is-active span:nth-child(1) {
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}
/* クラスがついた時、真ん中の線を消す */
.hamburger.is-active span:nth-child(2) {
  opacity: 0;
}
/* クラスがついた時、下の線を-45度傾ける */
.hamburger.is-active span:nth-child(3) {
  top: 50%;
  bottom: auto; /* ★元の bottom: 0 を無効化 */
  transform: translateY(-50%) rotate(-45deg);
}
/* SPドロワー */
.drawer {
  position: fixed;
  inset: var(--header-h) 0 auto 0;
  z-index: 80;
  background: #fff;
  transform: translateY(-100%);
  opacity: 0; /* 追加：透明にして見えなくする */
  pointer-events: none; /* 追加：裏側のクリック干渉を防ぐ */
  transition: transform .25s ease, opacity .25s ease; /* opacityのアニメーション追加 */
  display: block;
}
.drawer.open {
  transform: translateY(0);
  opacity: 1; /* 追加：開いた時に表示 */
  pointer-events: auto; /* 追加：クリック判定を復活 */
}

.drawer ul {
  list-style: none;
  margin: 0;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.drawer a {
  color: #000;
  text-decoration: none;
  display: block;
  padding: 12px 4px;
    font-family: "henderson-sans-basic", sans-serif;
  font-weight: 100;
  font-style: normal;
}
/* ==================== 動画コンポーネント専用CSS ==================== */
.play-btn-wrap {
  text-align: center;
  margin-top: 20px;
  margin-bottom: 40px;
  width: 100%;
}
.play-btn {
  display: inline-block;
  padding: 14px 30px;
  border: 1px solid #999;
  border-radius: 40px;
  font-family: "henderson-sans-basic", sans-serif;
  font-weight: 100;
  font-style: normal;
  font-size: 14pt;
  text-align: center;
  text-decoration: none;
  color: #333;
  transition: all .3s ease;
  letter-spacing: 3px;
}
.play-btn:hover {
  background: #000;
  color: #fff;
}
/* 再生中（グレーアウト）のボタンスタイル */
.play-btn.is-playing {
  background: #ccc;
  color: #fff;
  border-color: #ccc;
  pointer-events: none; /* 連続クリックを防止 */
}
.video-wrap {
  width: 100%;
  margin: 0 auto;
}
/* ★修正: アスペクト比制御用クラス内で画像と動画を同じ位置・サイズに固定 */
.video-ratio-wrap {
  position: relative;
  width: 100%;
  background-color: #000;
  overflow: hidden;
}
.video-ratio-wrap iframe, .video-ratio-wrap .js-video-cover, .video-ratio-wrap .js-video-player {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.video-ratio-wrap .js-video-cover {
  object-fit: cover; /* 比率が合わない場合はトリミングして隙間をなくす */
  z-index: 2;
}
.video-ratio-wrap .js-video-player {
  z-index: 1;
}
.ratio-16x9 {
  padding-top: 56.25%;
}
.ratio-3x2 {
  padding-top: 66.66%;
}
.ratio-1x1 {
  padding-top: 100%;
}
/* ★追加：縦長（720x1088ベース）用のアスペクト比制御クラス */
.ratio-portrait {
  padding-top: 151.11%; /* 1088 / 720 * 100 */
}
/* ========================== 共通 ========================== */
.works-navi {
  display: flex;
  gap: 0px;
  justify-content: center;
  align-items: center;
}
.works-navi a {
  text-decoration: none;
  color: #000;
  display: block;
  transition: background-color 0.3s ease;
}
.works-navi a:hover {
  background-color: #f5f5f5;
}
.menu-item-a {
  margin: 120px 50px;
  width: 100%;
  max-width: 550px;
}
.menu-item-b {
  margin: 120px 50px;
  width: 100%;
  max-width: 450px;
}
.bcp-list-a, .sc-list-b {
  position: relative;
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 12pt;
  border-bottom: 1px solid #3f3f3f;
  padding: 16px 50px 16px 16px;
}
.bcp-list-a::after, .sc-list-b::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 20px;
  height: 20px;
  border-top: 1px solid #3f3f3f;
  border-right: 1px solid #3f3f3f;
  transform: translateY(-50%) rotate(45deg);
}
.title-branding-client, .title-space-calligraphy {
  display: block;
  font-family: "henderson-sans-basic", sans-serif;
  font-weight: 100;
  font-style: normal;
  font-size: 24pt;
  border-top: 1px solid #3F3F3F;
  padding: 16px 16px;
}
.title {
  font-family: "henderson-sans-basic", sans-serif;
  font-weight: 100;
  font-style: normal;
  font-size: 40pt;
  text-align: center;
}
.lead-copy {
  text-align: center;
  font-family: ryo-gothic-plusn, sans-serif;
  font-size: 13pt;
  font-weight: 500;
  font-style: normal;
}
/* ====================== セクション別 ====================== */
.agnes-b {
    scroll-margin-top: 100px;
}
.agnes-b {
  max-width: 1000px;
  margin: 300px auto;
}
.ag-js-video-container {
  display: flex;
  justify-content: center;
  gap: 100px;
}
.ag-js-video-cover01, .ag-js-video-cover02 {
  max-width: 450px;
  width: 100%;
}
.agnes-b-title {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 500;
  font-size: 15pt;
  text-align: left;
  line-height: 1.6;
  margin: 30px auto;
}
.agnes-b-copy {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 300;
  font-size: 12pt;
  text-align: justify;
  line-height: 1.8;
}
.agnes-site {
  text-align: center;
  width: 100%;
  margin: 100px auto;
}
.agnes-site img {
  max-width: 560px;
}
.moritown {
  margin-top: 300px;
}
.moritown-block {
  display: flex;
  max-width: 1000px; /* ★動画を大きくするため全体幅を拡張 */
  justify-content: center;
  align-items: flex-start; /* ★左右の高さ計算を独立させ、回り込みや縮小崩れを完全に防ぐ */
  gap: 60px;
  margin: 100px auto;
}
.moritown-lead {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 500;
  font-size: 15pt;
  text-align: left;
  line-height: 1.6;
  margin-bottom: 30px;
}
.moritown-copy-wrapper {
  max-width: 500px;
  width: 100%;
}
.moritown-copy {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 300;
  font-size: 12pt;
  text-align: justify;
  line-height: 1.8;
}
/* ★修正: シンプルなブロック要素に戻し、確実に縦積みにする。動画の最大幅も700pxへ拡大 */
.mori-js-video-container {
  width: 100%;
  max-width: 700px;
  display: block;
}
.moritown-photo {
  text-align: center;
  margin: 120px auto;
}
.moritown-photo img {
  max-width: 1180px;
}
.waseda {
  max-width: 1180px;
  margin: 300px auto;
}
.waseda-wrapper {
  display: flex;
  max-width: 1180px;
  width: 100%;
  gap: 90px;
  margin: 30px auto;
}
.waseda-lead {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 500;
  font-size: 15pt;
  text-align: left;
  line-height: 1.6;
  margin-bottom: 30px;
}
.waseda01-copy, .waseda02-copy {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 300;
  font-size: 12pt;
  text-align: justify;
  line-height: 1.8;
}
.waseda-video01, .waseda-video02, .bridal-video01, .bridal-video02 {
  width: 100%;
}
.waseda01-title, .waseda02-title {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 500;
  font-size: 15pt;
  text-align: left;
  line-height: 1.6;
  margin: 20px 0;
}
.rikkyo, .lgbtq, .maikobako, .shiina-glass, .tsh {
  margin: 300px auto;
  max-width: 750px;
}
.rikkyo-lead, .lgbtq-lead, .maikobako-lead, .shiina-glass-lead, .tsh-lead {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 500;
  font-size: 15pt;
  text-align: left;
  line-height: 1.6;
  margin-bottom: 30px;
}
.rk-js-video-container, .lgbtq-js-video-container, .mai-js-video-container, .sn-js-video-container, .tsh-js-video-container {
  margin: 0 auto;
}
.rikkyo-copy, .lgbtq-copy, .maikobako-copy, .shiina-glass-copy, .tsh-copy {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 300;
  font-size: 12pt;
  text-align: justify;
  line-height: 1.8;
  margin-top: 40px;
}
.lecreuset, .bridal {
  max-width: 1180px;
  margin: 300px auto;
}
.lecreuset-wrapper, .bridal-wrapper {
  display: flex;
  max-width: 1180px;
  width: 100%;
  gap: 90px;
  margin: 30px auto;
}
.lecreuset-lead, .bridal-lead {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 500;
  font-size: 15pt;
  text-align: left;
  line-height: 1.6;
  margin-bottom: 40px;
}
.lecreuset01-copy, .lecreuset02-copy, .bridal01-copy, .bridal02-copy {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 300;
  font-size: 12pt;
  text-align: justify;
  line-height: 1.8;
}
.bridal01-title, .bridal02-title {
  font-family: ryo-gothic-plusn, sans-serif;
  font-weight: 500;
  font-size: 15pt;
  text-align: left;
  line-height: 1.6;
  margin-bottom: 30px;
}
/* ====================== スマホ（〜599px） ===================== */
@media screen and (max-width:599px) {
  :root {
    --header-h: 56px;
  } /* スマホは少し低いヘッダー */
  .hamburger {
    display: block;
  }
  .site-header .global-nav {
    display: none;
  }
  /* 改行制御（SPはSP改行のみ有効） */
  .sp-only {
    display: inline;
  }
  .tab-only {
    display: none;
  }
  .pc-only {
    display: none;
  }
  .pc-tab-only {
    display: none;
  }
  .video-cover-img {
    margin-bottom: 20px;
  }
  .play-btn {
    padding: 10px 24px;
  }
  .works-navi {
    flex-direction: column;
    gap: 50px;
    padding: 20px 0;
  }
  .menu-item-a, .menu-item-b {
    margin: 0px 20px;
    width: calc(100% - 40px);
  }
  .menu-item-a {
    margin-top: 100px;
  }
  .title-branding-client, .title-space-calligraphy {
    font-size: 20pt;
    padding: 12px;
  }
  .bcp-list-a, .sc-list-b {
    font-size: 11pt;
    padding: 12px 40px 12px 12px;
  }
  .title {
    font-size: 28pt;
    margin-top: 50px;
  }
  .lead-copy {
    font-size: 12pt;
  }
  .moritown, .waseda, .rikkyo, .lgbtq, .maikobako, .lecreuset, .bridal, .shiina-glass, .tsh {
    margin: 120px 20px;
  }
  .agnes-b {
    margin: 120px 20px;
    max-width: 400px;
  }
  .agnes-b-title, .moritown-lead, .waseda-lead, .rikkyo-lead, .lgbtq-lead, .maikobako-lead, .lecreuset-lead, .bridal-lead, .shiina-glass-lead, .tsh-lead {
    font-size: 14pt;
    margin-bottom: 10px;
  }
  .ag-js-video-container {
    flex-direction: column;
    gap: 50px;
  }
  .agnes-site {
    margin: 60px auto;
  }
  .agnes-site img {
    width: 100%;
  }
  .moritown-block {
    flex-direction: column;
    gap: 40px;
    margin: 0;
  }
  .waseda-wrapper, .lecreuset-wrapper, .bridal-wrapper {
    flex-direction: column;
    gap: 50px;
  }
  .moritown-photo {
    margin: 0 0;
  }
  .moritown-photo img {
    max-width: 100%;
  }
}
/* ====================== TAB ===================== */
@media screen and (min-width: 600px) and (max-width: 1024px) {
  .menu-item-a, .menu-item-b {
    margin: 100px 40px;
  }
  .hamburger {
    display: none;
  }
  .site-header .global-nav { display: block;   
  }
    .drawer { display: none; 
    } /* ★追加：タブレットではSPドロワー自体を無効化 */
  .pc-only, .sp-only {
    display: none;
  }
  .tab-only {
    display: inline;
  }
  .agnes-b, .waseda, .rikkyo, .lgbtq, .maikobako, .lecreuset, .bridal, .shiina-glass, .tsh {
    max-width: 700px;
    text-align: center;
      margin-top: 100px;
      margin-bottom: 200px;
  }
  .moritown {
    justify-content: center;
      margin-bottom: 200px;
  }
  .waseda-lead, .rikkyo-lead, .lgbtq-lead, .maikobako-lead, .lecreuset-lead, .bridal-lead, .shiina-glass-lead, .tsh-lead {
    font-size: 14pt;
    margin: 10px auto;
  }
  .agnes-b-title {
    text-align: center;
    margin: 10px auto;
  }
  .ag-js-video-container {
    flex-direction: column;
    align-items: center;
    gap: 50px;
  }
  .moritown-block {
    flex-direction: column;
    text-align: center;
    max-width: 500px;
       margin-top: 100px;
      margin-bottom: 0;
  }
  .moritown-photo {
    max-width: 800px;
    margin: 30px auto;
  }
  .moritown-photo img {
    max-width: 100%;
  }
  .waseda-wrapper, .lecreuset-wrapper, .bridal-wrapper {
    flex-direction: column;
    gap: 50px;
  }
}
/* ====================== PC ===================== */
@media screen and (min-width: 1025px) {
  .media-16x9 {
    margin-top: 56px;
  }
  .hamburger { display: none; }
  .site-header .global-nav { display: block; }
  .drawer { display: none; } /* ★追加：PCではSPドロワー自体を無効化 */
  /* 改行制御（PC/Tablet改行を有効） */
  .pc-only {
    display: inline;
  }
  .sp-only, .tab-only {
    display: none;
  }
}