/* 共通スタイル - フォント、アニメーション、レスポンシブ設定 */

/* Remixicon フォント設定 */
:where([class^="ri-"])::before { 
  content: "\f3c2"; 
}

/* アニメーション定義 */
@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInBottom {
  from {
    opacity: 0;
    transform: translateY(50px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes menuOverlay {
  from {
    clip-path: circle(0% at top right);
  }
  to {
    clip-path: circle(150% at top right);
  }
}

.menu-overlay {
  animation: menuOverlay 0.5s ease-in-out forwards;
}

/* フォント設定 */
body, input, textarea, select, button {
  font-family: 'Noto Sans JP', '游ゴシック体', 'Yu Gothic', 'メイリオ', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;
}

/* レスポンシブ設定 */
@media (max-width: 640px) {
  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media (min-width: 641px) and (max-width: 1023px) {
  .container {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

/* ヒーローセクション */
.hero-section {
  position: relative;
  height: 80vh;
  min-height: 600px;
}

@media (max-width: 768px) {
  .hero-section {
    height: 100vh;
    min-height: 100vh;
  }
}

@media (max-width: 767px) {
  .hero-section {
    min-height: 380px;
    height: auto;
  }
}

.hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.1) 100%);
}

/* フォーカス設定 */
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: #0056b3;
}

/* カスタムチェックボックス */
.custom-checkbox {
  position: relative;
  padding-left: 30px;
  cursor: pointer;
  user-select: none;
}

.custom-checkbox input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 20px;
  width: 20px;
  background-color: #fff;
  border: 2px solid #ddd;
  border-radius: 4px;
}

.custom-checkbox:hover input ~ .checkmark {
  border-color: #0056b3;
}

.custom-checkbox input:checked ~ .checkmark {
  background-color: #0056b3;
  border-color: #0056b3;
}

.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

.custom-checkbox input:checked ~ .checkmark:after {
  display: block;
}

.custom-checkbox .checkmark:after {
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* タブ設定 */
.tab-button.active {
  background-color: #0056b3;
  color: white;
}

.tab-content {
  display: none;
}

.tab-content.active {
  display: block;
}
