@charset "utf-8";
@import url("https://fonts.googleapis.com/css2?family=Sawarabi+Gothic&display=swap");

/*common*/

:root {
  --primary-black: #4e5454;
  --primary-blue: #11889b;
  --primary-orange: #f6aa00;
  --primary-bg-gray: #efeded;
  --primary-right-gray: #f5f5f5;
  --primary-bg-blue: #e5f4f6;
}

html {
  font-size: 62.5%;
  scroll-padding-top: 50px;
  scroll-behavior: smooth;
}

body {
  font-family: "Sawarabi Gothic", sans-serif, "Sawarabi Gothic";
  font-weight: 400;
  font-style: normal;
  font-size: 1.6rem;
  line-height: 1.5;
  color: #4e5454;
  background-color: #efeded;
}

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

@media screen and (max-width: 1000px) {
  body {
    font-size: 14px;
  }
}

.text-large {
  font-size: 32px;
  line-height: 2;
}

.wrapper {
  max-width: 1160px;
  width: 90%;
  margin: 0 auto;
}

.sp-only {
  display: none;
}

@media screen and (max-width: 1000px) {
  .sp-only {
    display: block;
  }
}

/* header */

.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-right: 60px;
  padding-left: 60px;
  padding-top: 20px;
  padding-bottom: 20px;
  position: sticky;
  top: 0;
  left: 0;
  z-index: 5;
  width: 100%;
  background-color: #e6e3e3;
}

.logo {
  display: flex;
  gap: 20px;
  align-items: center;
}

.header_logo {
  width: 30%;
}

.header__items {
  display: flex;
  align-items: center;
  gap: 40px;
}

.header__nav {
  display: flex;
  gap: 20px;
}

.header__list {
  display: flex;
  gap: 40px;
  text-align: center;
  white-space: nowrap;
}

.en {
  font-size: 24px;
  color: #11889b;
  text-align: center;
}

.ja {
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  text-align: center;
}

.header__insta {
  width: 10%;
  display: block;
  max-width: 30px;
}

@media screen and (max-width: 1000px) {
  .header {
    justify-content: space-between;
  }
  .header__nav {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: rgba(255, 255, 255, 0.9);
    width: 100%;
    height: calc(100vh - 100%);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 40px;
    clip-path: inset(0 0 100% 0);
    transition: clip-path 0.3s;
  }
  .is-ham-open .header__nav {
    clip-path: inset(0 0 0% 0);
  }
  .header__logo {
    width: 80%;
  }
  .header__list {
    flex-direction: column;
  }
  .header__insta {
    display: none;
  }

  .logo img {
    min-width: 100px;
  }
  .ham {
    width: 45px; /* ← 元のサイズを維持 */
    height: 32px; /* ← 縦幅も維持 */
    flex-shrink: 0; /* ← Flexboxで縮まないように */
  }
}

@media screen and (max-width: 800px) {
  .header {
    padding-right: 30px;
    padding-left: 30px;
  }
}

@media screen and (max-width: 450px) {
  .logo p {
    display: none;
  }
}

/* ham */
.ham {
  width: 45px;
  height: 32px;
  display: block;
  position: relative;
}

.ham__line {
  display: block;
  width: 100%;
  height: 1px;
  background-color: #000;
  position: absolute;
  left: 0;
  top: calc(50% - 0.5px);
}

.ham__line:nth-child(1) {
  transform: translateY(-13px);
  transition: transform 0.3s;
}

.is-ham-open .ham__line:nth-child(1) {
  transform: translateY(0px) rotate(-45deg);
}

.ham__line:nth-child(2) {
  transition: opacity 0.3s;
}

.is-ham-open .ham__line:nth-child(2) {
  opacity: 0;
}

.ham__line:nth-child(3) {
  transform: translateY(13px);
  transition: transform 0.3s;
}

.is-ham-open .ham__line:nth-child(3) {
  transform: translateY(0px) rotate(45deg);
}

@media screen and (min-width: 1001px) {
  .ham {
    display: none;
  }
}

/* main */

.kv {
  height: calc(100vh - 110px);
  min-height: 40vw;
  background-image: url(../img/kv.png);
  background-size: cover;
  background-position: top center;
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  padding: 5% 8%;
}

.kv__title-logo {
  width: 40vw;
  margin-top: 30px;
}

.kv__title {
  gap: 80px;
}

.kv__title-text {
  color: #ffffff;
  font-size: clamp(1.6rem, 2.5vw, 4.8rem);
  letter-spacing: 0.15em;
}

:root {
  --about-bg: #efeded; /* セクション背景 */
  --about-fg: #4e5454; /* 文字色 */
  --container: 1200px;
  --gap: 32px; /* PCの基本グリッド間隔 */
}

.sp-only {
  display: inline;
}
@media (min-width: 768px) {
  .sp-only {
    display: none;
  }
}

@media (max-width: 800px) {
  .kv {
    padding-bottom: 50px;
  }
}

/* 
about--
*/

.about {
  padding: 110px 0px;
}

.about__imges {
  margin: 110px auto;
  padding: 240px 0px;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  grid-template-areas:
    "title img1"
    "img2  img3";
  column-gap: 80px;
  align-items: start;
}

/* タイトル */
.about__title {
  grid-area: title;
  font-size: clamp(1.6rem, 2.4vw, 32px);
  line-height: 2;
  letter-spacing: 0.04em;
  color: #2b2b2b;
  padding: 0% 8%;
  margin-bottom: 50px;
}

.about__text-s {
  place-items: center;
  display: grid;
  font-size: clamp(1.4rem, 2.5vw, 2.4rem);
  line-height: 2.5;
  text-align: center;
  padding-top: 70px;
  max-width: 95%;
  margin: 0 auto;
}

/* 画像枠はすべて同じサイズに */
.about__image1,
.about__image2,
.about__image3 {
  width: 100%;
  max-width: 612px; /* 最大幅を612pxに統一 */
  aspect-ratio: 4 / 3; /* 全部同じ比率（例：4:3）。必要なら変更OK */
  overflow: hidden;
}

/* 配置エリア指定 */
.about__image1 {
  grid-area: img1;
  margin-left: auto;
}
.about__image2 {
  grid-area: img2;
  margin-top: -100px;
}
.about__image3 {
  grid-area: img3;
  margin-left: auto;
  margin-right: 100px;
  margin-top: -160px; /* image2より下げる */
  margin-bottom: 110px;
}

/* 画像を枠いっぱいにフィット */
.about__image1 img,
.about__image2 img,
.about__image3 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.about__text {
  background: url("../img/about_4_1.jpg") no-repeat center center / cover;
  width: 100vw; /* ← 画面幅いっぱい */
  height: 800px;
  margin: 0; /* 念のため余白を消す */
  text-align: center;
  padding-top: 100px;
  line-height: 3;
}

@media (max-width: 1220px) {
  .about__image2 {
    margin-top: 0;
  }
  .about__image3 {
    margin-right: 0;
    margin-top: 0;
  }
}

@media (max-width: 1000px) {
  .about {
    padding-top: 50px;
  }
}

/* 横幅800px以下 → スマホ用の別画像を読み込む */
@media screen and (max-width: 800px) {
  .about__text {
    background-image: url("../img/about_4_3.jpg");
    padding-top: 50px; /* テキスト位置も調整 */
  }
}

/* values */

.values-title {
  display: flex;
  flex-direction: column; /* 親は縦並び */
  align-items: center; /* 横中央 */
  /* gapは使わず、間隔は .values__logo の margin-bottom で作る */
  background-image: url(../img/aboutharmo.png);
  background-size: 75% auto; /* 横幅を画面の75%、高さは自動調整 */
  background-repeat: no-repeat; /* 繰り返しなし */
  background-position: center calc(50% + 50px);
  padding-bottom: 110px;
}

.values__logo {
  display: flex;
  flex-direction: column; /* 画像と擬似要素を縦並びにする→重要 */
  align-items: center; /* 横中央 */
  margin-bottom: 20px; /* ロゴ＋縦線 と タイトルの間隔 */
  /* 幅指定はvhよりもmax-width推奨。必要ならどちらかを使ってください。 */
  /* max-width: 200px; */
  /* width: 15vh;  ← これだと画面の高さ依存でレイアウトがブレやすい */
}

.values__logo img {
  display: block; /* 画像の下に余白が出ないように */
  width: 50%;
  height: auto;
  /* max-width: 200px;  画像サイズを固定したい場合はここで */
}

.values__logo::after {
  content: "";
  width: 2px; /* 線の太さ */
  height: 40px; /* 線の長さ */
  background-color: #333; /* 線の色（ブランド色に合わせてもOK） */
  margin-top: 16px; /* ロゴと縦線の間隔 */
}

.title {
  font-size: clamp(2.8rem, 2.5vw, 3.6rem);
  letter-spacing: 0.3em;
}

.values-item {
  position: relative;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column; /* 子を縦並びに */
  overflow: hidden;
}

.values-item__img {
  position: relative;
  margin-bottom: 300px;
}

.values-item__img img {
  width: 100%;
  height: auto;
  display: block;
}

.values-item__text {
  position: absolute;
  bottom: clamp(120px, 20vw, -300px);
  left: 0;
  background-color: #f5f5f5;
  width: 70%;
  height: 240px;
  display: flex;
  z-index: 1;
  padding-left: 12%;
}

.values-item:nth-of-type(3) .values-item__text {
  left: auto; /* 左寄せ解除 */
  right: 0; /* 右端に寄せる */
  padding-left: 60px;

  opacity: 0;
  transform: translateX(100px); /* 初期は右にオフセット */
  transition: all 0.8s ease; /* アニメーション設定 */
}

.values-item:nth-of-type(3) .values-item__text.active {
  opacity: 1;
  transform: translateX(0); /* 元の位置に戻す */
}

.values-item__title {
  color: #11889b;
  font-size: clamp(1.6rem, 2.5vw, 3.6rem);
  line-height: 150%;
  letter-spacing: 0.15em;
  padding: 50px 30px 50px 60px;
  place-items: center;
}

.values-item__title span {
  font-size: clamp(1.4rem, 2.5vw, 2.4rem);
}

.values-item__text p {
  font-size: clamp(1.4rem, 2.5vw, 1.6rem);
  width: 35%;
  display: flex;
  align-items: center; /* 縦方向の中央揃え */
  height: 240px; /* pタグの高さを指定 */
}

@media (max-width: 800px) {
  .values-item__img {
    margin-bottom: 0; /* 下げていた余白をリセット */
  }

  .values-item__text {
    position: static; /* absoluteを解除して自然な文脈の位置に */
    width: 100%; /* 横幅いっぱい */
    height: auto; /* 高さは中身に応じて可変 */
    flex-direction: column; /* タイトルと段落を縦並びに */
    padding: 10%; /* 内側余白を調整 */
    box-sizing: border-box;
    background-color: #efeded;
  }

  .values-item__title {
    padding: 0; /* PC用の大きな余白をリセット */
    margin-bottom: 16px; /* タイトルとpの間隔 */
  }

  .values-item__text p {
    width: 100%; /* 30%指定を解除して横幅いっぱい */
    height: auto; /* 高さも自動 */
    display: block; /* 通常の段落表示 */
  }
}

/*
---wwd---
*/

.wwd {
  display: flex;
  flex-direction: column; /* 縦並び */
  align-items: center; /* 横方向の中央（クロス軸） */
  background-image: url(../img/whatwedo.png);
  background-size: 75% auto; /* 横幅を画面の75%、高さは自動調整 */
  background-repeat: no-repeat; /* 繰り返しなし */
  background-position: center 50px;
  background-color: #ffffff;
  padding: 0 12%;
}

.wwd h2 {
  padding-top: 100px;
}

.wwd p {
  padding: 140px 0;
  font-size: clamp(1.4rem, 1.5vw, 2.4rem);
  line-height: 200%;
}

.underline {
  position: relative;
  display: inline-block; /* テキスト幅に合わせる */
}

.underline::after {
  content: "";
  position: absolute;
  bottom: -2px; /* テキストの下に配置 */
  left: 0;
  width: 100%;
  height: 2px; /* 線の太さ */
  background-color: #f6aa00; /* 下線の色 */
  transform: scaleX(0); /* 最初は非表示 */
  transform-origin: left; /* 左から伸びる */
  transition: transform 0.8s ease 0.4s;
  /* 0.4s 遅れて 0.8s かけて伸びる */
}

.underline.show::after {
  transform: scaleX(1);
}

.wwd-item {
  font-size: clamp(1.6rem, 1.5vw, 2.4rem);
  line-height: 200%;
  letter-spacing: 0.2em;
  padding: 10px 20px;
  margin-bottom: 40px;
}

.wwd-item__fig {
  display: block;
  max-width: 100%;
  height: auto;
}

.wwd-items {
  display: flex;
  justify-content: space-between;
  gap: 10%;
}

.wwd-item__thema {
  margin: 150px 0;
  padding: 30px 15px 30px 15px;
  position: relative;
}

.wwd-item__thema a {
  display: block; /* aをブロック化して大きくする */
  padding: 30px; /* hover判定を広げるための余白 */
  background: #fff; /* hover領域が分かるように背景（任意） */
  text-align: center; /* 中央寄せ */
}

.wwd-item__thema a img {
  display: block;
  width: 100%; /* レイアウトに合わせて調整 */
  height: auto;
  transition: transform 0.4s ease, filter 0.4s ease;
}

.wwd-item__thema a:hover img {
  transform: scale(1.05); /* 画像を拡大 */
  filter: brightness(1.3); /* 明るく */
}

.wwd-item__thema picture,
.wwd-item__thema img {
  display: block;
  max-width: 100%;
  height: auto;
}

.wwd-item__thema img {
  transition: transform 0.4s ease, filter 0.4s ease;
  display: block;
}

.wwd-item__thema:hover img {
  transform: scale(1.05); /* ふわっと拡大 */
  filter: brightness(1.5); /* 明るさを20%アップ */
}

/* PC幅 → 縦線 */
.wwd-item__thema::after {
  content: "";
  position: absolute;
  bottom: -60px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 30px;
  background: #11889b;
}
.br {
  display: inline;
}

@media screen and (max-width: 1000px) {
  .wwd p {
    padding: 80px 10px;
  }
}

/* 800px以下になったら改行する */
@media screen and (max-width: 800px) {
  .wwd {
    padding-bottom: 50px;
  }

  .br {
    display: block; /* 強制改行 */
  }

  .wwd-item__fig {
    margin-left: -40px; /* セクションの横マージンを打ち消す */
    margin-right: -40px;
    width: calc(100% + 80px); /* 打ち消した分だけ広げる */
    max-width: none; /* 横幅制限を解除 */
  }

  .wwd-item__title {
    flex-direction: column; /* 縦並びに */
    align-items: center; /* 中央寄せにしたい場合 */
    gap: 30px;
  }

  .wwd-items {
    flex-direction: column; /* 縦並びに */
    align-items: center;
    margin-top: 50px;
  }

  .wwd-item__thema {
    margin: 10px 0;
    padding-bottom: 20px;
  }

  /* 縦線を消す */
  .wwd-item__thema::after {
    content: none;
  }

  .wwd-item__thema {
    margin: 0;
    padding: 25px 5px;
    position: relative;
  }

  .wwd-item__thema a {
    padding: 0;
  }
}

/*
---wwd-item__tsunagari---
*/

.wwd-item__tsunagari {
  padding: 10% 8%;
  overflow: hidden;
}

.wwd2 {
  background-color: #f5f5f5;
}

.wwd-item__title {
  display: flex;
  align-items: center;
  gap: 30px; /* 画像・線・h2の間隔を調整 */
}

.wwd-item__img {
  width: 20%;
}

.wwd-item__line {
  width: 80px; /* 横線の長さ */
  height: 1px; /* 横線の太さ */
  background: #11889b; /* 色をブランドカラーなどに */
}

.wwd-item__title h2 {
  font-size: clamp(2rem, 2.5vw, 3.2rem);
  letter-spacing: 0.2em;
}

.wwd-text {
  margin: 60px 100px 60px 0;
  font-size: clamp(1.4rem, 2vw, 1.6rem);
}

.wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
}

.swiper {
  overflow: visible !important; /* 矢印やドットが外にはみ出しても表示される */
}

/* 画像をきれいに表示 */
.swiper-slide img {
  display: block;
  width: 100%;
  height: auto;
}

/* トリガー画像のラッパー */
.swiper-slide .image {
  overflow: hidden; /* 画像拡大時にはみ出さない */
  position: relative;
}

/* トリガー画像本体 */
.swiper-slide .image img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.6s ease, filter 0.6s ease;
}

/* ホバー時の効果 */
.swiper-slide .image:hover img {
  transform: scale(1.1); /* 枠はそのまま、中の画像だけズーム */
  filter: brightness(1.3); /* 明るさアップ */
}

.swiper-slide {
  min-width: 305px;
}

.swiper-slide__text {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
}

.swiper-slide__area {
  font-size: clamp(1.2rem, 2.5vw, 1.6rem);
  padding: 3px 14px;
  border: #f6aa00 solid 1px;
  color: #f6aa00;
  letter-spacing: 0.2em;
  white-space: nowrap;
}

.swiper-slide__title {
  font-size: 2rem;
  letter-spacing: 0.2em;
}

.swiper-slide .image img {
  transition: transform 0.4s ease, filter 0.4s ease;
  display: block;
}

.swiper-slide .image img:hover {
  transform: scale(1.05); /* ふわっと拡大 */
  filter: brightness(1.1); /* 明るさアップ */
}

/* 幅は Swiper に任せるので明示指定は不要 */

/* 矢印 */
.swiper-button-prev,
.swiper-button-next {
  position: absolute;
  top: 50%;
  z-index: 20;
  width: 40px;
  height: 40px;
  /* transform: translateY(-50%); */
}

/* 左右の位置だけ個別に調整 */
.swiper-button-prev {
  left: 0; /* ← 外側へ移動（pxでも可） */
}
.swiper-button-next {
  right: 0;
}

/* 矢印の色・大きさ */
.swiper-button-prev,
.swiper-button-next {
  width: 48px; /* 正円サイズ */
  height: 48px;
  border-radius: 50%; /* 正円 */
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: white; /* 白い背景 */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* デフォルト矢印アイコン */
.swiper-button-prev::after,
.swiper-button-next::after {
  font-size: 15px; /* ← ここを小さめに調整 */
  color: #11889b; /* 矢印の色 */
}
/* ドット（ページネーション） */
.top-slider .swiper-pagination {
  bottom: -30px !important;
}

/* ドットの基本色 */
.swiper-pagination-bullet {
  background-color: #ccc; /* 灰色に設定（任意の色へ変更可） */
  opacity: 1; /* デフォルトだと薄いので1にするとしっかり表示されます */
}

/* アクティブなドット（現在のスライド） */
.swiper-pagination-bullet-active {
  background-color: #11889b; /* ブランドカラーなど好きな色 */
}

@media (max-width: 800px) {
  .wwd-item__img {
    width: 30%;
  }
  .wwd-item__img:nth-of-type(2) {
    width: 50%;
  }

  .wwd-text {
    margin: 10% 5%;
  }
  .swiper-slide__area {
    font-size: clamp(1rem, 2.5vw, 1.6rem);
    padding: 2px 5px;
  }
  .swiper-slide__title {
    font-size: clamp(1.4rem, 2.5vw, 2rem);
  }

  .swiper-slide {
    min-width: auto; /* ← 305px を解除 */
    width: 100%; /* ← 必要ならスマホ画面にフィット */
  }

  .wwd-item__tsunagari {
    padding: 20% 0;
  }

  /* 矢印のベース */
  .swiper-button-prev,
  .swiper-button-next {
    position: absolute;
    top: 40%; /* ← 画像の中央に配置 */
    transform: translateY(-50%); /* ← 中央揃え */
    z-index: 20;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: white;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  }
}

@media screen and (max-width: 425px) {
  .underline::after {
    display: none;
  }
  .wwd p br {
    display: none;
  }
  .wwd p .underline {
    white-space: nowrap; /* 改行禁止 */
    display: inline-block; /* 前の「、」とセットにする */
  }

  .wwd p {
    line-break: strict; /* 日本語の禁則処理を有効化 */
  }

  .wwd p .underline {
    white-space: nowrap; /* この部分は折り返し禁止 */
    display: inline-block; /* 前の「、」とセットで扱う */
  }
}

/* .swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: -10rem; 
  left: 0;
  width: 100%;
  text-align: center;
} */

/*
----------popup-----------
*/
.popup {
  width: 90%;
  max-width: 1000px;
  padding: 60px;
  background-color: #f5f5f5;
  position: fixed;
  z-index: 10;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  transition: 0.3s;
  max-height: 90vh;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.popup__overlay {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background-color: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(20px);
  z-index: 9;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  pointer-events: none;
}

.popup__overlay.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.popup-inner {
  border: #11889b;

  overflow: hidden;
}

.popup.open {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.popup__close {
  display: flex; /* 画像を中央に */
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 20px;
}

.popup__close img {
  width: 30px;
  height: 30px;
  cursor: pointer;
}

.popup__title {
  display: flex;
  padding-bottom: 20px;
  padding-top: 50px;
  border-bottom: #11889b solid 1px;
  gap: 50px;
  align-items: center;
}

.popup__title h3 {
  font-size: clamp(1.6rem, 2.5vw, 3rem);
  color: #11889b;
  letter-spacing: 0.15em;
}

.popup__title-area {
  display: inline-flex; /* ← flexにするとベースラインの隙間が消える */
  align-items: center; /* ← 文字を上下中央に配置 */
  font-size: clamp(1.4rem, 2.5vw, 1.6rem);
  padding: 0 14px; /* ← 上下2pxくらいで控えめに */
  border: #f6aa00 solid 1px;
  color: #f6aa00;
  letter-spacing: 0.2em;
  white-space: nowrap;
  justify-content: center;
}

.popup__main {
  display: flex;
  gap: 30px;
  padding: 40px 0;
}

.popup__img,
.popup__text {
  width: 50%;
}

.popup__text {
  display: flex;
  flex-direction: column; /* 縦に積む */
  justify-content: flex-start; /* 縦(メイン軸)の上づめ */
  align-items: flex-start; /* 横(クロス軸)も左寄せ */
  gap: 0.8em; /* 段落の間隔（任意） */
}

.popup__text p {
  margin: 0; /* pのデフォルト外側余白をリセット */
  line-height: 200%;
}

.popup__nav {
  display: flex;
  height: 30px;
  gap: 50px;
}
.popup__nav img {
  width: auto;
}
.tag,
.namber {
  color: #11889b;
}

.namber {
  margin: 0;
}

.kw {
  color: #11889b;
  border-bottom: #11889b 1px solid;
}

@media (max-width: 800px) {
  .popup {
    width: 95%;
    padding: 40px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.8);
    max-height: 90vh;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .popup.open {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .popup__content {
    min-width: auto; /* ← 305px の指定を無効化 */
    width: 100%; /* 必要なら横幅いっぱいに */
  }

  .popup__close {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 11;
    padding: 10px;
    border-radius: 50%;
  }

  .popup__close img {
    width: 20px;
    height: 20px;
  }

  .popup__title {
    padding: 10px 0;
    gap: 5px;
    flex-direction: column;
    align-items: flex-start;
    border-bottom: #11889b solid 1px;
  }

  .popup__title h3 {
    font-size: 2.4rem;
    margin-bottom: 10px;
  }

  .popup__title-area {
    padding: 0; /* ← 上下2pxくらいで控えめに */
    text-align: center;
    border: none;
    justify-content: left;
  }

  .popup__main {
    flex-direction: column;
    gap: 20px;
    padding: 20px 0;
    align-items: center;
  }

  .popup__img {
    width: 100%;
  }

  .popup__text {
    width: 100%;
  }

  .popup__text {
    gap: 15px;
  }

  .popup__text p {
    font-size: 1.4rem;
    line-height: 1.8;
  }

  .popup__nav {
    flex-direction: column;
    gap: 15px;
    align-items: center;
    padding: 10px 0;
  }

  .popup__nav .namber {
    order: 2;
    font-size: 1.4rem;
  }

  .popup__nav img {
    order: 1;
    width: 150px;
    height: auto;
  }

  .popup__title h3 {
    font-size: clamp(2rem, 2.5vw, 2.4rem);
    padding-right: 15%;
  }

  .popup__text p {
    font-size: clamp(1.2rem, 2.5vw, 1.6rem);
  }

  .popup__nav img {
    width: 30%;
  }

  .popup .swiper-popup .swiper-pagination {
    display: none !important;
  }
}

/*
----------info-----------
*/

.info {
  padding: 250px 10%;
  background-image: url(../img/information.png);
  background-size: 75% auto; /* 横幅を画面の75%、高さは自動調整 */
  background-repeat: no-repeat; /* 繰り返しなし */
  background-position: center 100px;
  padding-bottom: 110px;
  background-color: #d8e6e8;
}

.section-title {
  font-size: 2rem;
  letter-spacing: 0.2em;
  color: #11889b;
  padding-left: 20px;
  padding-bottom: 20px;
}

.overview {
  border-top: #11889b solid 1px;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  letter-spacing: 0.2em;
  padding: 50px 20px;
}

.row {
  display: flex;
  flex-wrap: wrap;
}

dt {
  width: 30%; /* 幅を30％に固定 */
  text-align: left; /* 左寄せ */
}

dd {
  width: 70%; /* 残りを使う */
}

dt,
dd {
  margin: 10px 0;
}

.cols {
  display: flex;
  flex-wrap: wrap;
  gap: 8%;
}

.history,
.owner {
  width: 45%;
}

.history h3,
.owner h3 {
  border-bottom: #11889b solid 1px;
  font-size: 2rem;
  letter-spacing: 0.2em;
  padding: 20px 20px;
  color: #11889b;
}

.owner h3 {
  margin-bottom: 30px;
}

.history-list time {
  width: 20px;
  padding: 0 20px;
}
.history-list li {
  margin: 30px 20px;
}

.history li:nth-child(n + 3):nth-child(-n + 5) {
  margin-left: 120px; /* 右にずらす */
}

.owner-card {
  display: flex;
}

.owner-meta {
  display: flex;
  flex-direction: column;
  gap: 20px; /* 子要素同士の間隔を20px */
  padding-left: 20px;
}

.sns img {
  width: 8%;
  min-width: 30px;
}

@media (max-width: 1360px) {
  .cols {
    display: block;
  }
  .history,
  .owner {
    width: auto;
  }
}

/*
----------ig----------
*/

.ig {
  padding: 300px 25% 150px 25%;
  background-color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-image: url(../img/ig_bg.png);
  background-size: 75% auto;
  background-repeat: no-repeat;
  background-position: center 50px;
}

.ig p {
  padding-bottom: 50px;
}

.ig__img {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 100%;
  max-width: 800px; /* お好みで幅制限 */
  overflow: hidden;
}

.ig__wrap p {
  text-align: center;
  padding: 45px 0;
}

.vm {
  margin-top: 60px;
  width: 40%;
}

.ig__img img {
  display: block;
  width: 100%;
  height: 400px; /* 高さを固定 */
  object-fit: cover; /* トリミングして中央に表示 */
}

.ig__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5); /* 半透明の黒 */
  display: flex;
  justify-content: center;
  align-items: center;
}

.ig__overlay p {
  color: #fff;
  font-size: 1.6rem; /* 文字サイズを少し小さく */
  letter-spacing: 0.05em; /* 字間も少し狭める */
  position: relative;
  display: inline-block;
  padding: 0 10px; /* テキスト左右に余白 → 下線も短くなる */
}

.ig__overlay p::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%); /* 中央揃え */
  width: 0;
  height: 1px;
  background: #fff;
  transition: width 0.5s ease;
}

.ig__img:hover .ig__overlay p::after {
  width: 90%; /* 下線をテキスト幅より短めにする */
}

/* hover時 */
.ig__img:hover img {
  transform: scale(1.1); /* 拡大しても枠内に収まる */
  filter: brightness(1.1); /* 明るく */
}

@media (max-width: 800px) {
  .ig {
    padding: 100px 10%;
  }
  .vm {
    margin-top: 30px;
  }
}

/*
----------footer----------
*/

.footer {
  justify-content: space-between;
  align-items: center;
  padding-right: 60px;
  padding-left: 60px;
  padding-top: 30px;
  padding-bottom: 20px;
  position: sticky;
  top: 0;
  left: 0;
  z-index: 5;
  width: 100%;
  background-color: #e6e3e3;
}

.footer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap; /* 折り返しを防ぐ */
  gap: 40px;
}

.footer_logo {
  flex-shrink: 0; /* ← ロゴが縮まって改行されるのを防ぐ */
  width: auto; /* 固定幅ではなく内容に応じて調整 */
  max-width: 200px; /* 必要なら制限を追加 */
}

.footer__nav {
  display: flex;
  gap: 50px;
  align-items: center;
  flex-wrap: nowrap; /* 改行防止 */
}

.footer__nav-m {
  text-align: center;
  color: #11889b;
  text-decoration: underline 1px;
  text-underline-offset: 5px;
}

.footer__list {
  display: flex;
  gap: 40px;
  text-align: center;
}

.footer__list a {
  display: inline-flex;
  flex-direction: column;
  justify-content: center; /* 縦中央 */
  align-items: center; /* 横中央（左寄せなら flex-start） */
  line-height: 1.2;
  gap: 2px;
  text-decoration: none;
}

.footer__list a .en,
.footer__list a .jp {
  display: block; /* ←上下に並ぶ */
}

.en {
  font-size: 24px;
  color: #11889b;
}

.ja {
  font-size: clamp(1.2rem, 3vw, 1.6rem);
}

.footer__insta {
  width: 10%;
  display: block;
  max-width: 30px;
}

@media screen and (max-width: 1000px) {
  .footer {
    padding: 20px 30px;
  }
  .footer__list {
    display: none;
  }
  .footer__top {
    margin-bottom: 10px;
    margin-right: 20px;
  }
  .footer__item .footer__nav-m {
    font-size: clamp(1rem, 2.5vw, 1.6rem);
  }
}

/*
---js---
*/

.fadein {
  opacity: 0;
  transform: translateY(30px); /* 下から少し浮かせる */
  transition: all 0.8s ease; /* 0.8秒でふわっと */
}

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

/* 順番に遅延をかける */
.about__image1.show {
  transition-delay: 0s;
}
.about__image2.show {
  transition-delay: 0.2s;
}
.about__image3.show {
  transition-delay: 0.4s;
}

.fadein-scale {
  opacity: 0;
  transform: scale(1.05); /* ほんの少し大きめから */
  filter: blur(6px); /* 最初は少しぼかす */
  transition: opacity 2s ease, transform 3s ease, filter 2s ease;
}

.fadein-scale.show {
  opacity: 1;
  transform: scale(1); /* ゆっくり等倍へ */
  filter: blur(0); /* クリアに */
}

.fadein {
  opacity: 0;
  transform: translateY(30px); /* 下から浮かせる */
  transition: all 1s ease;
}

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

.about__text.show {
  transition-delay: 0s;
}

.fadein-left {
  opacity: 0;
  transform: translateX(-50px); /* 左に50pxずらす */
  transition: all 1s ease;
}

.fadein-left.show {
  opacity: 1;
  transform: translateX(0); /* 元の位置に戻る */
}

/* ========== Shippori Mincho フォント ========== */
.font-mincho {
  font-family: "Shippori Mincho", serif;
}
@media screen and (min-width: 1001px) {
  .header__items {
    display: flex !important; /* ← 強制的に表示 */
    align-items: center;
    gap: 40px;
  }
}
