/* 共通ベーススタイル */
body {
    margin-top: 30px;
    padding: 0;
    font-family: Arial, sans-serif;
}

* {
    color: #5A5A5A;
}

p {
  margin-bottom: 0.5rem;
}

.sidebar {
    background-color: #FCFCFC;
    position: sticky;
}


.source {
    color: #B3B3B3;
    font-size: 0.7rem;
}

nav {
    background-color: #2C3E4F;
}

footer {
    background-color: #2C3E4F;
}

footer hr {
    height: 2px;
    border: none; /* デフォルトのボーダーを取り除く */
    background-color: #D9D9D9;
}

.question {
    background-color: #EAEAEA;
}


.breadcrumb-item + .breadcrumb-item::before {
    content: "＞";
}

.breadcrumb-item a {
        color: #25A7B3; /* 文字色を黒に変更 */
        text-decoration: none; /* 下線を削除 */
}       

.link {
    color: inherit; /* 文字色を黒に変更 */
    text-decoration: none; /* 下線を削除 */
}

.link :hover{
    filter: brightness(100%); /* ホバー時に色を暗くする */
}

.nav-link:hover{
    color: #25A7B3;
}

.social-link:hover {
    color: #25A7B3 !important;
}

.social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.dropdown-humbarger-item[href^="http"] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
}

.instagram-icon {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    flex: 0 0 28px;
    object-fit: cover;
}

.instagram-menu-icon {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    flex-basis: 24px;
}

.social-link:hover .instagram-icon,
.dropdown-humbarger-item:hover .instagram-icon {
    opacity: 0.86;
}

.no-underline{
    text-decoration: none;
}


/* 通常サイズの画像 */
.logo-img {
    width: 210px;
    height: 50px;
}

.nav-icon {
  font-size: 32px;
}


/* さらに小さい画面の時（例: 400px以下）にさらに縮小 */
@media (max-width: 480px) {
    .logo-img {
        width: 130px;
        height: 33px;
    }
    .nav-icon {
        font-size: 27px;
    }
}
@media (max-width: 420px) {
    .logo-img {
        width: 120px;
        height: 30px;
    }
}

.learning-progress-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  width: calc(100% - 8px);
  margin: 6px 4px 12px;
  padding: 7px 10px;
  border: 1px solid rgba(37, 167, 179, .24);
  border-radius: 8px;
  background: #FFFFFF;
  box-shadow: 0 6px 16px rgba(44, 62, 79, .10);
  text-decoration: none;
}

.learning-progress-card[hidden] {
  display: none !important;
}

.learning-progress-card:hover,
.learning-progress-card:focus {
  border-color: rgba(37, 167, 179, .56);
  box-shadow: 0 10px 24px rgba(44, 62, 79, .14);
}

.learning-progress-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: #F1F9F9;
}

.learning-progress-card-icon i {
  color: #2C3E4F;
  font-size: .9rem;
}

.learning-progress-card-main {
  display: block;
  min-width: 0;
  overflow: hidden;
}

.learning-progress-card-title {
  overflow: hidden;
  color: #2C3E4F;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.35;
  white-space: normal;
  word-break: break-word;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.learning-progress-card-muted {
  grid-area: laststudy;
  color: #7A7A7A;
  font-size: .64rem;
  white-space: nowrap;
}

.learning-progress-card-metrics {
  grid-area: metrics;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  min-width: 0;
}

.learning-progress-card-metrics span {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 2px 5px;
  border-radius: 999px;
  background: #F5F7F8;
  color: #2C3E4F;
  font-size: .62rem;
  font-weight: 700;
  white-space: nowrap;
}

.learning-progress-card-action {
  display: inline-flex;
  grid-column: 3;
  grid-row: 1;
  align-items: center;
  justify-content: center;
  justify-self: end;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 7px;
  background-color: rgba(43, 155, 166, 0.85);
  color: #FFFFFF !important;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.1;
  white-space: nowrap;
}

@media (max-width: 480px) {
  .learning-progress-card {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 7px;
    width: calc(100% - 8px);
    margin: 16px 4px 12px;
    padding: 7px 8px;
  }

  .learning-progress-card-main {
    display: block;
  }

  .learning-progress-card-action {
    grid-column: 3;
    grid-row: 1;
    width: auto;
    max-width: 74px;
    white-space: normal;
  }

  .learning-progress-card-title {
    white-space: normal;
  }

  .learning-progress-card-muted {
    white-space: nowrap;
  }
}



/* ハンバーガーアイコンのボタンのスタイル */
.navbar-toggler {
  border: none; /* ボーダーをなくす */
  padding: 0; /* 必要に応じて余白を調整 */
}

/* ハンバーガーアイコン自体の色を白に */
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(245, 245, 245, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* オフキャンバスの幅を右7割に調整 */
.offcanvas.offcanvas-end {
    width: min(85vw, 500px);
    max-width: calc(100vw - 16px);
    overflow-x: hidden;
}


/* =========================================================
   Dropdown styles (Common + Exceptions)
   目的：通常dropdownは統一 / hamburger内submenuは例外扱い
========================================================= */

/* ===== Common (通常dropdown) ===== */
.dropdown-menu {
  border-radius: 0;
  padding: 8px 0;
  border: 1px solid rgba(0,0,0,.100);
  background: #FFFFFF;
  box-shadow: 0 10px 20px rgba(0,0,0,.18);
  z-index: 3000;
}

.dropdown-item {
  padding: 8px 10px;
  color: #5A5A5A !important;
  background: transparent;
  border-radius: 0;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background: rgba(248,245,245,.55);
  color: #5A5A5A !important;
}

.dropdown-item.active,
.dropdown-item:active {
  background: #FFFFFF !important;
  color: #F1F9F9 !important;
}

/* トグル（▼ボタン）共通：枠・影を消す */
.dropdown-toggle {
  border: none !important;
  box-shadow: none !important;
}
.dropdown-toggle:focus,
.dropdown-toggle:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* ===== Exceptions (hamburger / submenu) ===== */

/* ハンバーガー内のサブメニューは “普通のdropdownメニュー” にしたくない */
.dropdown-humbarger-menu {
  border: none !important;
  box-shadow: none !important;
  display: none;
  background: transparent !important;
  padding: 0 !important;
}

/* ハンバーガー内のアイテム：区切り線 */
.dropdown-humbarger-item {
  border-bottom: 1px solid #e0e0e0;
  padding-top: 15px;
  padding-bottom: 0px;
}
.dropdown-humbarger-item:first-child {
  border-top: none;
}

/* ハンバーガー内は hover の背景を付けない */
.dropdown-humbarger-menu .dropdown-humbarger-item:hover {
  background-color: transparent !important;
}

/* サブメニュー（アコーディオン展開）だけは static/透明で展開 */
.dropdown-submenu .dropdown-menu {
  display: none;
  position: static !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;

  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
}

.dropdown-submenu.open .dropdown-menu {
  display: block;
}

.offcanvas-body {
  overflow-y: auto;
  overflow-x: hidden;
  max-height: calc(100vh - 96px);
  padding-right: 1rem;
  -webkit-overflow-scrolling: touch;
}


/* サイズ */
h7 {
        font-size: 0.7rem;
}

.h7 {
    font-size: 0.9rem;
}

.h8 {
    font-size: 0.8rem;
}

.h9 {
    font-size: 0.7rem;
}

.h10 {
    font-size: 0.6rem;
}

/* カラー */
.black1 {
    color: #535353;
}

.black2 {
    color: #757575;
}

.white1 {
    color: #F5FCFC;
}

.gray1 {
    color: #808080;
}

.gray2{
    color: #B3B3B3;
}

.gray3 {
    color: #E5E5E5;
}

.navy {
    color: #2C3E4F;
}

.main-color {
    color: #05C1A2;
}

.secondary-color {
    color: #25A7B3;
}

.bg-gray {
  background-color:#F5F5F5 ;
}

.inline {
    display: inline; /* または display: inline-block; */
    margin-right: 1rem; /* 必要に応じてマージンを調整 */
}

ul.secondary-ul {
  list-style-type: none; /* デフォルトのリストスタイルを削除 */
  padding-left: 15px;       /* デフォルトのパディングを削除 */
}

ul.secondary-ul li::before {
  content: '•';       /* マーカーとして円を使用 */
  color: #25A7B3;         /* マーカーの色を赤に設定 */
  font-size: 20px;    /* マーカーのサイズを設定 */
  padding-right: 8px; /* マーカーとテキストの間隔を設定 */
  vertical-align: middle; /* マーカーの垂直位置を中央に設定 */
}

/* ボタン */
.main-button {
  background-color: rgba(16, 182, 158, 0.85);
  color: #F5FCFC; /* ボタン内のテキスト色 */
  border: none; /* 境界線を無くす */
  border-radius: 6px; /* ボタンを完全に丸くする */
  padding: 10px 10px; /* ボタンのサイズを調整 */
  text-align: center; /* テキストを中央揃え */
  cursor: pointer; /* マウスオーバー時にカーソルを手の形に変更 */
  outline: none; /* フォーカス時のアウトラインを無くす */
}

.secondary-button{
  background-color: rgba(43, 155, 166, 0.85);
  color: #F5FCFC; /* ボタン内のテキスト色 */
  border: none; /* 境界線を無くす */
  border-radius: 6px; /* ボタンを完全に丸くする */
  padding: 10px 10px; /* ボタンのサイズを調整 */
  text-align: center; /* テキストを中央揃え */
  cursor: pointer; /* マウスオーバー時にカーソルを手の形に変更 */
  outline: none; /* フォーカス時のアウトラインを無くす */
}

.navy-button {
    background-color: #2C3E4F;
    color: #FFC107;
    border: none; /* 境界線を無くす */
    border-radius: 6px; /* ボタンを完全に丸くする */
    padding: 10px 10px; /* ボタンのサイズを調整 */
    text-align: center; /* テキストを中央揃え */
    cursor: pointer; /* マウスオーバー時にカーソルを手の形に変更 */
    outline: none; /* フォーカス時のアウトラインを無くす */
}

.blue-button {
    background-color: #4F7191;
    color: #F5FCFC;
    border: none; /* 境界線を無くす */
    border-radius: 6px; /* ボタンを完全に丸くする */
    padding: 10px 10px; /* ボタンのサイズを調整 */
    text-align: center; /* テキストを中央揃え */
    cursor: pointer; /* マウスオーバー時にカーソルを手の形に変更 */
    outline: none; /* フォーカス時のアウトラインを無くす */
}

.matt-button {
    background-color: #44546A;
    color: #F5FCFC;
    border: none; /* 境界線を無くす */
    border-radius: 6px; /* ボタンを完全に丸くする */
    padding: 1px 10px; /* ボタンのサイズを調整 */
    text-align: center; /* テキストを中央揃え */
    cursor: pointer; /* マウスオーバー時にカーソルを手の形に変更 */
    outline: none; /* フォーカス時のアウトラインを無くす */
}

.unuse-button {
    background-color: #F7F4F4;
    color: #808080;
    border: none; /* 境界線を無くす */
    border-radius: 6px; /* ボタンを完全に丸くする */
    padding: 10px 10px; /* ボタンのサイズを調整 */
    text-align: center; /* テキストを中央揃え */
    outline: none; /* フォーカス時のアウトラインを無くす */
}

.main-button p {
  color: inherit ; /* 親要素から色を継承 */
  margin: 0rem 0rem; /* デフォルトのマージンを削除 */
  padding: 0rem 0rem;
  font-weight: 300; /* より細いフォントウェイト */
  background-color: transparent; /* <p> タグの背景を透明に設定 */
}

.secondary-button p {
  color: inherit ; /* 親要素から色を継承 */
  margin: 0rem 0rem; /* デフォルトのマージンを削除 */
  font-weight: 300; /* より細いフォントウェイト */
  background-color: transparent; /* <p> タグの背景を透明に設定 */
}

.unuse-button p {
  color: inherit ; /* 親要素から色を継承 */
  margin: 0rem 0rem; /* デフォルトのマージンを削除 */
  padding: 0rem 0rem;
  font-weight: 300; /* より細いフォントウェイト */
  background-color: transparent; /* <p> タグの背景を透明に設定 */
}

.main-button:hover, .secondary-button:hover, .navy-button:hover, .blue-button:hover, .matt-button:hover {
  filter: brightness(85%);
}



ul.secondary-color-list {
  list-style-type: none; /* デフォルトのリストスタイルを削除 */
  padding-left: 0;       /* デフォルトのパディングを削除 */
}

ul.secondary-color-list li::before {
  content: '•';       /* マーカーとして円を使用 */
  color: #25A7B3;         /* マーカーの色を赤に設定 */
  font-size: 20px;    /* マーカーのサイズを設定 */
  padding-right: 8px; /* マーカーとテキストの間隔を設定 */
  vertical-align: middle; /* マーカーの垂直位置を中央に設定 */
}

ul.navy-color-list {
  list-style-type: none; /* デフォルトのリストスタイルを削除 */
  padding-left: 0;       /* デフォルトのパディングを削除 */
}

ul.navy-color-list li::before {
  content: '•';       /* マーカーとして円を使用 */
  color: #4F7191;         /* マーカーの色を赤に設定 */
  font-size: 20px;    /* マーカーのサイズを設定 */
  padding-right: 8px; /* マーカーとテキストの間隔を設定 */
  vertical-align: middle; /* マーカーの垂直位置を中央に設定 */
}


#page_top {
  width: 50px;
  height: 50px;
  bottom: 30px;
  background: #CCCCCC;
  opacity: 0.4;
  border-radius: 50%;
  position: fixed; /* スクロール時に固定 */
}

/* md以上のとき：親の右端から5pxに配置 */
@media (min-width: 768px) {
  #page_top {
    right: calc(100% + 10px - 9 * 8.33333%); /* 右端から5px */
  }
}


/* md以下のとき：画面右から少し左に配置 */
@media (max-width: 767px) {
  #page_top {
    right: 20px; /* 画面右から少し左に寄せる */
  }
}

#page_top a {
  display: block;
  width: 50px;
  height: 50px;
  text-decoration: none;
}

#page_top a::before {
  content: '';
  width: 25px; /* 横に潰すために幅を設定 */
  height: 15px; /* 高さを設定 */
  background-color: #f9f9f9; /* 三角形の色を白に設定 */
  position: absolute;
  top: 48%;
  left: 50%;
  transform: translate(-50%, -50%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%); /* 三角形を作成 */
  border-radius: 5px; /* 角を丸くする */
}






/* タイトルリストの設定 */
.stripe-title {
  position: relative;
  padding-left: 5px; /* 左側にパディングを設定し、線との間隔を作る */
  border-radius: 6px; /* ボタンを完全に丸くする */
}

.stripe-title {
  position: relative;
  background-color: rgba(248, 248, 248);
  /*
  background-image: repeating-linear-gradient(
    315deg, 
    rgba(44, 62, 79, 0.05) 0px,
    rgba(44, 62, 79, 0.05) 2px, 
    transparent 2px, 
    transparent 4px
  );*/
  padding: 12px 5px 12px;
  line-height: 0.2; /* 行の高さを設定 */
}
.stripe-title-text {
  display: inline-block;
  max-width: 100%;
  line-height: 1.35;
}

@media (max-width: 480px) {
  .stripe-title-text {
    max-width: 280px;
  }
}

thead th, thead th p  {
  background-color: #25A7B3 !important; 
  color: #E9E9E9 !important;
}

.main_title_underline {
  display: block; /* ブロック要素にする */
  width: fit-content; /* 文字幅に合わせる */
  border-bottom: 3px solid #25A7B3; /* 線の太さと色を指定 */
  padding-bottom: 3px; /* アンダーラインとのスペース */
  margin: 0 auto; /* 要素全体を中央寄せにする */
  text-align: center; /* テキストの中央寄せ（オプション） */
}

.main_underline{
  display: block; /* ブロック要素にする */
  width: fit-content; /* 文字幅に合わせる */
  border-bottom: 3px solid #25A7B3; /* 線の太さと色を指定 */
  padding-bottom: 3px; /* アンダーラインとのスペース */
}

.case-study-card {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 22px;
  border: 1px solid #E3EAEE;
  border-radius: 16px;
  background: linear-gradient(135deg, #FFFFFF 0%, #F7FBFC 100%);
  box-shadow: 0 10px 24px rgba(44, 62, 79, 0.08);
}

.case-study-logo-wrap {
  flex: 0 0 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  padding: 18px;
  border-radius: 14px;
  background: #FFFFFF;
  border: 1px solid rgba(37, 167, 179, 0.16);
}

.case-study-logo {
  width: 100%;
  max-width: 150px;
  height: auto;
}

.case-study-body {
  flex: 1 1 auto;
}

.case-study-eyebrow {
  color: #25A7B3;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.case-study-title {
  color: #2C3E4F;
  font-size: 1.12rem;
  font-weight: 700;
}

.case-study-link {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  color: #25A7B3;
  font-weight: 700;
  text-decoration: none;
}

.case-study-link:hover {
  color: #1F8B95;
}

@media (max-width: 767px) {
  .case-study-card {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    padding: 18px;
  }

  .case-study-logo-wrap {
    flex-basis: auto;
    min-height: 0;
  }

  .case-study-logo {
    max-width: 130px;
  }
}



.language-accordion-content {
  display: none;
  /* その他のスタイリング */
}

.language-accordion-content.active {
  display: block;
  /* アクティブ状態のスタイリング */
}

.dropdown-menu {
    position: absolute !important;
}

.dropdown-submenu > a::before {
  content: '\25BC'; /* 三角形（▶）のUnicode */
  margin-right: 8px; /* 三角形とテキストの間にスペースを追加 */
  font-size: 0.5em; /* 矢印の大きさを調整 */
  transform: scaleX(1.5); /* 水平方向に1.5倍引き伸ばす */
  display: inline-block; /* transformを適用するために必要 */
  vertical-align: middle; /* テキストと垂直方向で中央揃え */
}

.sp-accordion-inner li {
  background: rgba(255, 255, 255, 0.4);
}
.sp-accordion-inner li:hover {
  background: rgba(255, 255, 255, 0.6);
}
.child {
  display: none;
}

#navbarDropdownLang::after {
  display: none !important;
}



.modal-content {
  background-color: #fff !important;  /* モーダル本体の背景を白に戻す */
  opacity: 1 !important;              /* 半透明を解除 */
  z-index: 1051;                      /* backdropより前面（Bootstrapでは1050がデフォ） */
}

.modal, .modal-body {
  opacity: 1 !important;
  backdrop-filter: none !important;
  filter: none !important;
}

#signup-form input::placeholder,
#signin-form input::placeholder,
#signout-form input::placeholder {
  color: #bbbbbb;  /* または #ccc, #aaa など好みの薄いグレー */
}







.ginou-icon-wrap {
  height: 96px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ssw-sector-icon {
  width: 72px;
  height: 72px;
  display: block;
  overflow: visible;
}

.ssw-sector-icon * {
  shape-rendering: auto;
}
