@charset "UTF-8";

/* ====================================
   下層ページ共通補完スタイル (Header)
   ==================================== */
.bg-white { background-color: #fff; }
.bg-light-gray { background-color: #f5f5f5; }
.bg-dark { background-color: var(--dark); }
.bg-black { background-color: var(--black); }
.text-dark { color: #333 !important; }
.text-blue { color: var(--primary) !important; }
.text-white { color: #fff !important; }
.text-center { text-align: center; }

/* --- Page Header --- */
.page-header {
  background: url('https://images.unsplash.com/photo-1494412574643-35d324682133?auto=format&fit=crop&q=80') center/cover no-repeat;
  position: relative;
  padding: 160px 0 100px;
  text-align: center;
  color: #fff;
  border-bottom: 8px solid var(--primary);
}
.page-header::before {
  content: ''; position: absolute; top:0; left:0; width:100%; height:100%;
  background: rgba(0,0,0,0.6);
}
.page-title {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin: 0;
}
.en-title {
  font-family: var(--font-en);
  font-size: 80px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
}
.jp-subtitle {
  font-family: var(--font-main);
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  background: var(--primary);
  padding: 8px 24px;
  letter-spacing: 0.1em;
  display: inline-block;
}


/* ====================================
   CONTACT PAGE UNIQUE STYLES
   ==================================== */
.contact-form-section {
  padding: 120px 0; /* イントロが消えたため上下の余白をしっかり取る */
}

.contact-form-container {
  max-width: 900px;
  margin: 0 auto;
  padding: 80px;
  border: 4px solid var(--dark); /* 黒の太枠 */
  box-shadow: 15px 15px 0 var(--primary); /* シティーアクトブルーの影 */
  background: #fff;
}

/* フォームの行 */
.form-row {
  margin-bottom: 40px;
}

/* 2カラムレイアウト用 */
.split-row {
  display: flex;
  gap: 40px;
}
.split-row .col {
  width: 50%;
}

.form-label {
  display: flex;
  align-items: center;
  gap: 15px;
  font-weight: 900;
  font-size: 16px;
  margin-bottom: 15px;
  color: var(--dark);
}

/* 必須・任意バッジ */
.required {
  background: var(--primary); /* 青色 */
  color: #fff;
  font-size: 12px;
  padding: 4px 10px;
  font-weight: bold;
  letter-spacing: 0.1em;
}
.any {
  background: #ccc;
  color: #fff;
  font-size: 12px;
  padding: 4px 10px;
  font-weight: bold;
  letter-spacing: 0.1em;
}

/* 入力フィールド共通 */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
textarea,
select {
  width: 100%;
  padding: 15px 20px;
  background: #f9f9f9;
  border: 2px solid #ddd;
  border-radius: 0; /* 角丸なしで無骨に */
  font-size: 16px;
  font-family: inherit;
  transition: 0.3s;
  outline: none;
  font-weight: 500;
  color: #111;
}

/* フォーカス時の動き（青い影で強調） */
input:focus,
textarea:focus,
select:focus {
  background: #fff;
  border-color: var(--dark);
  box-shadow: 5px 5px 0 var(--primary);
}

textarea {
  height: 250px;
  resize: vertical;
}

/* セレクトボックスの矢印カスタマイズ */
.select-wrap {
  position: relative;
}
.select-wrap::after {
  content: '▼';
  font-size: 12px;
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--primary); /* 矢印を青に */
}
select {
  appearance: none;
  cursor: pointer;
}


/* 送信ボタン */
.submit-area {
  text-align: center;
  margin-top: 60px;
  padding-top: 60px;
  border-top: 2px dashed #ddd;
}

.submit-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background: var(--primary);
  color: #fff;
  font-size: 20px;
  font-weight: 900;
  padding: 25px 80px;
  width: 100%;
  max-width: 400px;
  border: 2px solid var(--primary);
  cursor: pointer;
  letter-spacing: 0.1em;
  transition: 0.3s;
}

.submit-btn:hover {
  background: #fff;
  color: var(--primary);
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0, 80, 157, 0.2);
}


/* --- スマホ対応 --- */
@media (max-width: 900px) {
  /* Header */
  .page-header { padding: 120px 0 80px; }
  .en-title { font-size: 48px; }
  .jp-subtitle { font-size: 14px; padding: 6px 16px; }

  /* Form */
  .contact-form-section { padding: 80px 0; }
  .contact-form-container { 
    padding: 40px 20px; 
    border-width: 2px;
    box-shadow: 8px 8px 0 var(--primary);
  }
  .split-row { flex-direction: column; gap: 40px; }
  .split-row .col { width: 100%; }
  
  .submit-btn { padding: 20px 0; max-width: none; font-size: 18px; }
}