:root{
	--color-primary:#0D7886;
	--color-accent:#F0F8FA;
	--color-text:#333333;
	--color-text-secondary:#666666;
}

/* BEM helpers (Tailwindの@applyを使わずプレーンCSSで表現) */
.btn{ display:inline-flex; align-items:center; justify-content:center; padding:0.75rem 1.25rem; border-radius:0.375rem; transition:transform .2s ease, box-shadow .2s ease; }
.btn--primary{ background:var(--color-primary); color:#fff; }
.btn--primary:hover{ transform:scale(1.05); }
.btn--secondary{ background:#fff; color:var(--color-primary); outline:1px solid var(--color-primary); }
.btn--secondary:hover{ transform:scale(1.05); }

/* Accent (orange) for CTA */
.btn--accent{ 
  background:#FF7A00; 
  color:#fff; 
  box-shadow:0 6px 20px rgba(255,122,0,.25); 
  transform: scale(1.3);
  transform-origin: center;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-shadow: 0 1px 2px rgba(0,0,0,0.1);
}
.btn--accent:hover{ 
  transform:scale(1.35) translateY(-2px); 
  box-shadow:0 12px 35px rgba(255,122,0,.4); 
}
.btn--accent-outline{ 
  background:#fff; 
  color:#FF7A00; 
  outline:2px solid #FF7A00; 
  transform: scale(1.3);
  transform-origin: center;
  font-weight: 600;
  letter-spacing: 0.5px;
}
.btn--accent-outline:hover{ 
  transform:scale(1.35) translateY(-2px); 
  box-shadow:0 12px 35px rgba(255,122,0,.3); 
}

.card{ background:#fff; border-radius:0.75rem; box-shadow:0 1px 2px rgba(0,0,0,.06); overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
.card:hover{ transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0,0,0,.08); }
.card__image{ width:100%; height:12rem; object-fit:cover; }
.card__body{ padding:1rem; }
.card__title{ font-weight:600; margin-bottom:.25rem; }
.card__text{ font-size:.875rem; color:var(--color-text-secondary); }

/* スタッフメンバーカードを縦方向に120%拡張 */
#staff .card{ 
  min-height: 450px; 
  display: flex; 
  flex-direction: column; 
  align-items: center;
  text-align: center;
  padding: 1rem;
}
#staff .card__image{ 
  width: 200px; 
  height: 200px; 
  object-fit: cover; 
  object-position: center; 
  border-radius: 50%;
  margin: 1rem auto 1.5rem auto;
  display: block;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
#staff .card__body{ 
  padding: 0 1rem 1rem 1rem; 
  flex: 1; 
  display: flex; 
  flex-direction: column; 
  justify-content: flex-start; 
  text-align: left;
  width: 100%;
}
#staff .card__title{
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  color: var(--color-text);
}
#staff .card__text{
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--color-text-secondary);
}
#staff .card:hover{ transform: translateY(-5px); }
#staff .card:hover .card__image{ 
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  transform: scale(1.05);
}

.modern-table{ width:100%; border-collapse:separate; border-spacing:0 0.5rem; }
.modern-table th{ vertical-align:top; font-size:.875rem; color:var(--color-text-secondary); padding-right:1.5rem; white-space:nowrap; }
.modern-table td{ font-size:clamp(14px, 1vw, 16px); }

/* 企業概要テーブルの下線を実線に変更 */
#company .modern-table tr{ border-bottom: 1px solid #e5e7eb; }
#company .modern-table tr:last-child{ border-bottom: none; }

/* Header color change on scroll - 常時#0D7886に変更 */
.site-header{ 
  background: transparent; 
}
.site-header.is-scrolled{ 
  background: rgba(13, 120, 134, 0.9); 
}

/* ヘッダー文字サイズの調整 */
.site-header .font-semibold {
  font-size: 1.25rem;
  font-weight: 600;
}

.site-header .nav-link {
  font-size: 1.1rem;
  font-weight: 500;
  padding: 0.75rem 0.5rem;
}

.site-header img {
  height: 2.5rem;
  width: auto;
}

/* Hero / Tagline スライドショー背景 */
.hero-section{ 
  position: relative; 
  overflow: hidden; 
  min-height: 66.67vh;
  display: flex;
  align-items: center;
}
.hero-background{ 
  position: absolute; 
  top: 0; 
  left: 0; 
  width: 100%; 
  height: 100%; 
  z-index: 1; 
}
.hero-slide{ 
  position: absolute; 
  top: 0; 
  left: 0; 
  width: 100%; 
  height: 100%; 
  opacity: 0; 
  transition: opacity 2s ease-in-out;
  background-size: cover; 
  background-position: center; 
  background-repeat: no-repeat;
}
.hero-slide.active{ 
  opacity: 1; 
}
.hero-overlay{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(13, 120, 134, 0.7);
  z-index: 2;
}
.hero-section .tagline{
  font-size: clamp(32px, 6vw, 80px);
  line-height: 1.2;
  text-shadow: 0 2px 4px rgba(0,0,0,0.3);
  text-align: left;
  font-weight: 700;
  letter-spacing: 0.02em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Typography */
.tagline{ color:var(--color-primary); font-weight:700; font-size:clamp(24px, 4vw, 40px); }
.tagline--inverse{ color:#fff; }
.lead{ margin-top:1rem; max-width:48rem; color:var(--color-text-secondary); font-size:clamp(14px, 2.2vw, 18px); }

/* Nav links */
.nav-link{ position:relative; }
.nav-link{ padding: .5rem .25rem; }
.nav-link:focus-visible{ outline:2px solid #fff; outline-offset:2px; border-radius:4px; }
.nav-link.is-active::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:#fff; opacity:.9; }

/* Parallax placeholder */
.parallax{ background:linear-gradient(180deg, rgba(13,120,134,0.15), rgba(240,248,250,0.15)); }

/* CTA pulse animation */
[data-cta]{ will-change: transform; }
[data-cta].pulse{ animation:pulse 1.6s ease-in-out infinite; }
@keyframes pulse{
	0%,100%{ transform:scale(1); box-shadow:0 0 0 0 rgba(13,120,134,.0); }
	50%{ transform:scale(1.05); box-shadow:0 10px 30px rgba(13,120,134,.18); }
}

/* Links transition */
a{ transition: color .2s ease; }
a:hover{ color:var(--color-primary); }

/* CLS mitigation for common images */
.card__image{ aspect-ratio: 16/9; }
img[alt="企業ロゴ"], header img{ aspect-ratio: auto; height:auto; }
img[alt*="バナー"]{ aspect-ratio: 16/9; }

/* 私たちについてセクションのロゴ画像サイズ調整 */
#about img[alt="企業ロゴ"]{
  width: 70%;
  height: auto;
  margin: 0 auto;
  display: block;
}

/* 事業内容セクションのCTAボタン配置最適化 */
#business .btn--accent,
#business .btn--accent-outline {
  min-width: 280px;
  padding: 1rem 2rem;
  font-size: 1.1rem;
  white-space: nowrap;
}

#business .flex.flex-col {
  padding: 2rem 0;
  min-height: 300px;
  justify-content: center;
  gap: 47px;
}

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce){
	*{ animation: none!important; transition: none!important; scroll-behavior: auto!important; }
}



