*{ box-sizing: border-box; }
body{margin: 0;}
/* ===== 本畫布自訂 CSS（畫布層） ===== */
/* css/_contact.css */
.tpl-contact .contact-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
  align-items: start;
  gap: clamp(32px, 4vw, 80px);
}
.tpl-contact .contact-info {
  padding: clamp(28px, 2.6vw, 48px);
  background: #f1f1f1;
}
.tpl-contact .contact-info .btn-link {
  margin-top: 20px;
}
.tpl-contact .contact-title {
  margin-bottom: 20px;
  color: var(--ColorPrimary, #b3540f);
  font-size: clamp(20px, 1.5vw, 26px);
  font-weight: 700;
}
.tpl-contact .contact-list {
  list-style: none;
}
.tpl-contact .contact-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 6px;
}
.tpl-contact .contact-item::before {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 4px;
  background: var(--ColorPrimary, #b3540f);
  content: "";
}
.tpl-contact .icon-phone::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.tpl-contact .icon-mail::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E") center/contain no-repeat;
}
.tpl-contact .contact-item.icon-message::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.9 20A9 9 0 1 0 4 16.1L2 22Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.9 20A9 9 0 1 0 4 16.1L2 22Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.tpl-contact .icon-clock::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E") center/contain no-repeat;
}
.tpl-contact .contact-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: -10px 0;
  color: var(--TextColorPrimary, #2a2a2a);
  transition: color 0.15s;
}
@media (hover: hover) and (pointer: fine) {
.tpl-contact .contact-link:hover {
    color: var(--ColorPrimary, #b3540f);
  }
}
.tpl-contact .contact-link:is(:active, :focus-visible) {
  color: var(--ColorPrimary, #b3540f);
}
.tpl-contact .no-wrap {
  white-space: nowrap;
}
.tpl-contact .contact-form .btn-link {
  margin-top: 28px;
}
.tpl-contact .form-captcha:empty {
  display: none;
}
.contact-page .eforms-wrapper {
  display: block;
}
.contact-page .eforms-wrapper .form-row {
  display: block;
  margin-top: 20px;
}
.contact-page .eforms-wrapper .form-row:first-child {
  margin-top: 0;
}
.contact-page .eforms-wrapper .form-tag {
  width: auto;
  margin-bottom: 8px;
  font-weight: 500;
}
.contact-page .eforms-wrapper .main-red {
  color: var(--ColorPrimary, #b3540f);
}
.contact-page .eforms-wrapper .form-col {
  width: 100%;
}
.contact-page .eforms-wrapper .form-style {
  width: 100%;
  min-height: 52px;
  padding: 12px 16px;
  border: var(--BorderPrimary, 1px solid #dcdcdc);
  border-radius: var(--BorderRadius, 6px);
  background: #ffffff;
  font-size: 16px;
  transition: border-color 0.15s;
}
.contact-page .eforms-wrapper .form-style:focus-visible {
  border-color: var(--ColorPrimary, #b3540f);
  outline: none;
}
.contact-page .eforms-wrapper .captcha-col {
  display: flex;
  align-items: center;
  gap: 12px;
}
.contact-page .eforms-wrapper .captcha-col .form-style {
  flex: 1;
  background: #ffffff;
}
.contact-page .eforms-wrapper .captcha-col .captcha-img {
  width: auto;
  height: 52px;
  cursor: pointer;
}
.contact-page .eforms-wrapper .submit-btn {
  width: var(--BtnWidth, 250px);
  height: var(--BtnHeight, 52px);
  margin: 28px 0 0;
  border: 0;
  border-radius: var(--BtnBorderRadius, 0);
  color: var(--BtnPrimaryTextColor, #ffffff);
  background: var(--BtnPrimaryBg, #b3540f);
  font-size: var(--BtnFontSize, 16px);
  transition: color 0.3s, background-color 0.3s;
}
@media (hover: hover) and (pointer: fine) {
.contact-page .eforms-wrapper .submit-btn:hover {
    color: var(--BtnPrimaryHoverTextColor, #ffffff);
    background: var(--BtnPrimaryHoverBg, #3a1f14);
  }
}
.contact-page .eforms-wrapper .submit-btn:is(:active, :focus-visible) {
  color: var(--BtnPrimaryHoverTextColor, #ffffff);
  background: var(--BtnPrimaryHoverBg, #3a1f14);
}
@media (max-width: 1023px) {
.tpl-contact .contact-container {
    grid-template-columns: minmax(0, 1fr);
  }
}