/* ============================================================================
 * common/pages/contactUs.css — 跨主題共用聯絡我們頁面
 * ============================================================================
 *
 * 用途：
 *   提供 6 個前台主題共用的聯絡我們頁面樣式 baseline：聯絡資訊容器
 *   (.contactBox)、地圖區 (.mapBox)、加入好友區 (.addfriendBox) 含 RWD。
 *
 * 設計意圖：
 *   - common/pages/contactUs.css = default baseline
 *   - themes/default/pages/contactUs.css 故意保持空殼
 *   - 其他主題透過 themes/{theme}/pages/contactUs.css 對 baseline 做差異化
 *
 * 內容索引：
 *   - .contactBox：聯絡資訊主容器
 *   - .mapBox / .mapBox .map / .mapBox .mapText（h1, p）：地圖區（含 @media max-width 768）
 *   - .addfriendBox / .addfriendBox .addfriend（含 .addfriendImg）/ .addfriendText
 *     （h1, p）：加 LINE 好友等社群入口（含 @media max-width 768）
 *
 * 使用頁面：
 *   - resources/views/web/contactUs/contactUs.blade.php
 *
 * 載入順序：
 *   common/{base,header,sidebar,footer,widget}.css → themes/default/{同}.css →
 *   common/pages/contactUs.css（本檔）→ themes/default/pages/contactUs.css → custom.css
 *
 * 抽取來源：default.css line 6519~6622（.contactBox + .mapBox + .addfriendBox 含 RWD）
 *
 * 詳細規格：openspec/specs/web-theme-css/spec.md（Requirement R.FUNC.1 / R.FUNC.8）
 * 變更記錄：openspec/changes/issue518-web-theme-css-modularization/（task 6.7）
 * ============================================================================
 */


/* ============================================================================
 * 聯絡我們頁面樣式
 *   抽取自 default.css line 6519~6622
 * ============================================================================
 */

.contactBox {
  background: rgba(255, 255, 255, 0.3725490196);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid #2c2c2c;
  padding: 15px 20px;
  border-radius: 20px;
  height: 100%;
}

.mapBox {
  display: flex;
  justify-content: center;
  align-items: center;
}

.mapBox .map {
  margin-right: 20px;
}


@media screen and (max-width: 767.98px) {
  .mapBox .map {
    margin-right: 0px;
  }
}

.mapBox .mapText {
  margin-top: 20px;
  color: #2c2c2c;
}

.mapBox .mapText h1 {
  color: #2c2c2c;
  margin: 0 0 20px;
  /* font-size: 25px;
  line-height: 45px; */
  font-weight: bold;
}

@media screen and (max-width: 767.98px) {
  .mapBox .mapText h1 {
    /* font-size: 18px; */
    line-height: 32px;
    margin: 0 0 12px;
  }
}

.mapBox .mapText p {
  color: #2c2c2c;
  /* font-size: 16px; */
}

.addfriendBox {
  display: flex;
  justify-content: flex-start;
  align-items: start;
}

.addfriendBox .addfriend {
  margin-right: 40px;
}

@media screen and (max-width: 767.98px) {
  .addfriendBox .addfriend {
    margin-right: 10px;
    width: 40%;
  }
}

.addfriendBox .addfriend .addfriendImg {
  width: 100%;
  height: 100%;
  max-height: 200px;
  -o-object-fit: contain;
  object-fit: contain;
}

.addfriendBox .addfriendText {
  margin-top: 20px;
}

.addfriendBox .addfriendText h1 {
  margin: 0 0 20px;
  font-size: 25px;
  font-weight: bold;
  color: #333333;
  line-height: 1.5;
}

@media screen and (max-width: 767.98px) {
  .addfriendBox .addfriendText h1 {
    font-size: 18px;
    line-height: 32px;
    margin: 0 0 12px;
  }
}

.addfriendBox .addfriendText p {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: 16px;
  color: #333333;
}


/* ============================================================================
 * 聯絡我們表單改版（.contact-card / .contact-form）— issue #622
 *   單欄置中卡片、12 欄響應式格線、統一輸入框與焦點態；neutral 公版配色，
 *   主題可於 themes/<theme>/pages/contactUs.css 覆寫品牌色（accent / 按鈕底色）。
 *   對齊會員資料表單 .member-form 設計語彙；保留 #contactForm / .btn-submit /
 *   各欄位 id 與 parsley、recaptcha JS 掛點不變。
 * ============================================================================ */

/* 單欄表單置中容器（無側欄，收窄至 900 聚焦，小螢幕自動收窄） */
.contact-center-container {
  max-width: 900px;
}

/* 頁區段上下留白（左右由 container 內距負責） */
.contact-center {
  padding: 16px 0 56px;
}

@media (max-width: 767.98px) {
  .contact-center {
    padding: 8px 0 40px;
  }
}

/* 白卡：取代舊 .message-box white-bg */
.contact-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 36px 40px;
  box-shadow: 0 6px 22px rgba(17, 24, 39, 0.07);
}

@media screen and (max-width: 767.98px) {
  .contact-card {
    padding: 22px 18px;
  }
}

.contact-form {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.contact-form__section {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

/* 表單前言標題：左側 accent bar（主題可覆寫色） */
.contact-form__title {
  position: relative;
  margin: 0;
  padding-left: 14px;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.4;
  color: #111827;
}

.contact-form__title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 18px;
  border-radius: 99rem;
  background: #111827;
}

/* 12 欄響應式格線 */
.contact-form__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 20px 18px;
}

.contact-form__field {
  grid-column: span 12;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.contact-form__field--half {
  grid-column: span 6;
}

.contact-form__field > label {
  margin-bottom: 8px;
  font-size: 13.5px;
  font-weight: 600;
  color: #374151;
}

.contact-form__field > label .text-danger {
  margin-right: 2px;
}

/* 統一輸入框 / textarea：限縮在 .contact-form 內覆寫 base 基底 */
.contact-form .form-control {
  width: 100%;
  height: auto;
  min-height: 48px;
  margin: 0;
  padding: 12px 14px;
  font-size: 15px;
  color: #111827;
  background: #ffffff;
  border: 1px solid #dfe3e8;
  border-radius: 10px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.contact-form textarea.form-control {
  min-height: 150px;
  resize: vertical;
}

.contact-form .form-control::placeholder {
  color: #9ca3af;
}

.contact-form .form-control:focus {
  outline: none;
  border-color: #111827;
  box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.08);
}

.contact-form .form-control.is-invalid {
  border-color: #dc2626;
}

.contact-form .form-control.is-invalid:focus {
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
}

.contact-form .invalid-feedback {
  display: block;
  margin-top: 6px;
  font-size: 12.5px;
  color: #dc2626;
}

/* footer：驗證碼 + 送出，與表單以細線分隔 */
.contact-form__footer {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 24px;
  border-top: 1px solid #e5e7eb;
}

.contact-form__recaptcha-label {
  margin: 0 0 10px;
  font-size: 13.5px;
  font-weight: 600;
  color: #374151;
}

.contact-form__recaptcha-label .text-danger {
  margin-right: 2px;
}

.contact-form__actions {
  display: flex;
  justify-content: center;
}

/* 送出按鈕：沿用 .btnSummit.gold 深底，圓角加大（主題覆寫品牌色仍生效） */
.contact-form .contact-form__submit.btnSummit {
  width: auto;
  min-width: 200px;
  max-width: none;
  margin: 0;
  padding: 13px 32px;
  font-size: 15px;
  font-weight: 600;
  border-radius: 10px;
}

@media screen and (max-width: 767.98px) {
  .contact-form {
    gap: 24px;
  }

  .contact-form__field--half {
    grid-column: span 12;
  }

  .contact-form .contact-form__submit.btnSummit {
    width: 100%;
    min-width: 0;
  }
}
