@charset "UTF-8";

/* ========================================
  State CSS
  状態別スタイル
  active, hover, hidden, open など
======================================== */

/* ------------------------------
1. 表示・非表示
------------------------------ */
.hidden {
  display: none !important;
}

.is-hidden {
  display: none !important;
}

.is-visible {
  display: block !important;
}

/* ------------------------------
  2. Selected / Current
------------------------------ */
.is-selected,
.selected {
  background-color: #f0f8ff;
}

/* ------------------------------
  3. Hover / Focus 状態
------------------------------ */
.hover\:color-primary:hover,
.focus\:color-primary:focus {
  color: #0073e6;
}

.hover\:bg-light:hover {
  background-color: #f9f9f9;
}

.hover\:underline:hover {
  text-decoration: underline;
}

/* ------------------------------
  4. Open / Close (ドロワー・モーダル用)
------------------------------ */
.is-open {
  display: block;
}

.is-closed {
  display: none;
}

/* ------------------------------
  5. Disabled / Readonly
------------------------------ */
.is-disabled,
.disabled {
  opacity: 0.5;
  pointer-events: none;
}

/* ------------------------------
  6. Transition / Animation (簡易)
------------------------------ */
.transition {
  transition: all 0.3s ease-in-out;
}

.fade-in {
  opacity: 0;
  animation: fadeIn 0.3s forwards;
}

.fade-out {
  opacity: 1;
  animation: fadeOut 0.3s forwards;
}

@keyframes fadeIn {
  to { opacity: 1; }
}

@keyframes fadeOut {
  to { opacity: 0; }
}

/* ------------------------------
  7. Utility for visually hidden (アクセス補助)
------------------------------ */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}

/* ------------------------------
  8. Collapse / Expand (アコーディオン)
------------------------------ */
.is-collapsed {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.is-expanded {
  max-height: 1000px; /* 適宜調整 */
  transition: max-height 0.3s ease;
}

/* ------------------------------
  9. スマホ専用表示 / 非表示
------------------------------ */
@media screen and (max-width: 767px) {
  .sp-only {
    display: block !important;
  }

  .pc-only {
    display: none !important;
  }
}

/* ------------------------------
  10. PC専用表示 / 非表示
------------------------------ */
@media screen and (min-width: 768px) {
  .sp-only {
    display: none !important;
  }

  .pc-only {
    display: block !important;
  }
}