/* Custom Styles not covered by Tailwind config */

/* Glass Panel Effect */
.glass-panel {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.8);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
}

.text-shadow-gold {
    text-shadow: 0 0 20px rgba(251, 191, 36, 0.3);
}

/* Scroll Animations */
/* State: Hidden (Initial) */
.scroll-hidden {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

/* State: Visible (Triggered by JS) */
.scroll-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Delays */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-500 { transition-delay: 500ms; }
.delay-700 { transition-delay: 700ms; }
.delay-1000 { transition-delay: 1000ms; }
.delay-1500 { transition-delay: 1500ms; }

/* Hero Animations Keyframes */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeScale {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

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

/* Helper classes for Hero animations */
.animate-fade-in-up {
    opacity: 0; /* Start hidden */
    animation: fadeInUp 1s ease-out forwards;
}

.animate-fade-in-scale {
    opacity: 0;
    animation: fadeScale 1s ease-out forwards;
}

.animate-fade-in {
    opacity: 0;
    animation: fadeIn 1s ease-out forwards;
}

.hero-outline {
  -webkit-text-stroke: 1px rgba(15, 23, 42, 0.40); /* うっすら濃いめの枠 */
  text-shadow:
    0 10px 30px rgba(0,0,0,0.35),                 /* 読ませる影 */
    0 0 22px rgba(251,191,36,0.18);               /* 金のにじみ（好みで） */
}

.hero-outline-thin {
  -webkit-text-stroke: 0.75px rgba(15, 23, 42, 0.30);
  text-shadow: 0 6px 18px rgba(0,0,0,0.30);
}

.hero-shadow {
  text-shadow: 0 6px 18px rgba(0,0,0,0.30);
}

.pager-badge {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 200;
  padding: .5rem .9rem;
  border-radius: 999px;
  background: var(--glass-bg);
  color: var(--text-main);
  font-size: .9rem;
  line-height: 1;
  box-shadow: 0 6px 16px rgba(0,0,0,.18);
  backdrop-filter: blur(4px);
  font-variant-numeric: tabular-nums;
  border: 1px solid rgba(0, 240, 255, 0.4);
}

/* 縦に並ぶ */
.testimonials{
  display:flex;
  flex-direction:column;
  gap: 3rem;
}

/* 1行（横長） */
.t-item{
  display:flex;
  justify-content:flex-start;
}

/* 偶数行は右寄せ（Bが右に行く） */
.t-item:nth-child(even){
  justify-content:flex-end;
}

/* 中身：横並び */
.t-inner{
  width: min(100%, 980px);   /* ここで横長感をコントロール */
  display:flex;
  align-items:flex-start;
  gap: 1.25rem;
}

/* 偶数行は左右反転 + 文字右寄せ */
.t-item:nth-child(even) .t-inner{
  flex-direction: row-reverse;
  text-align:right;
}

/* アイコン（大きくしてもOK） */
.t-avatar{
  width: 84px;
  height: 84px;
  border-radius: 9999px;
  overflow:hidden;
  flex: 0 0 auto;
  background: #fff;
  border: 1px solid rgba(217, 187, 120, .35); /* angel-goldっぽい薄め */
}

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

/* 文字アイコン用 */
.t-avatarText{
  display:flex;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size: 28px;
  color: #1f6feb; /* ここは今のテーマに合わせて調整 */
}

/* 本文ブロック：カードっぽさを消す */
.t-body{
  position:relative;
  padding: 1.25rem 1.5rem;
  background: rgba(255,255,255,.55);  /* “膜” */
  backdrop-filter: blur(6px);
  border-bottom: 1px solid rgba(217, 187, 120, .22); /* 下線だけ */
  border-radius: 24px;
}

/* quote は背景の飾りとして薄く */
.t-body::before{
  content:"“";
  position:absolute;
  top:-18px;
  left:-6px;
  font-size: 64px;
  line-height:1;
  color: rgba(217, 187, 120, .25);
  font-family: serif;
}
.t-item:nth-child(even) .t-body::before{
  left:auto;
  right:-6px;
}

.t-name{
  font-weight:700;
  margin-bottom:.5rem;
}

.t-text{
  line-height:1.9;
  opacity:.85;
}

/* モバイルは右寄せを解除して素直に縦 */
@media (max-width: 768px){
  .t-item,
  .t-item:nth-child(even){
    justify-content:flex-start;
  }
  .t-item:nth-child(even) .t-inner{
    flex-direction: row;
    text-align:left;
  }
  .t-item:nth-child(even) .t-body::before{
    right:auto;
    left:-6px;
  }
}