/* 05｜聯絡我們模板（Elementor 可調 Banner 高度與背景位置） */

/* Excellent Media｜聯絡我們頁面樣式
   只作用於匯入的聯絡頁 Elementor 元件；Banner 高度由 Elementor Layout 設定控制。 */
/* 01｜全寬區塊與內容最大寬度 */
.em-contact-bleed {
  box-sizing: border-box;
  position: relative;
  left: 50%;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: -50vw !important;
  transform: none;
}
.em-contact-bleed > .e-con-inner,
.em-contact-bleed > .elementor-container,
.em-contact-bleed .em-contact-hero-inner > .e-con-inner,
.em-contact-bleed .em-contact-main-inner > .e-con-inner,
.em-contact-bleed .em-contact-location-inner > .e-con-inner {
  width: min(100% - 48px, var(--em-brand-width)) !important;
  max-width: var(--em-brand-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* 02｜Banner 背景、文字入場和右側資訊卡 */
.em-contact-hero {
  display: flex;
  justify-content: center;
  overflow: hidden;
  background-size: cover !important;
}
.em-contact-hero-inner { position: relative; z-index: 1; }
.em-contact-hero-copy .em-contact-eyebrow { animation: em-contact-rise .72s .06s cubic-bezier(.2,.7,.25,1) both; }
.em-contact-hero-title { animation: em-contact-rise .8s .15s cubic-bezier(.2,.7,.25,1) both; }
.em-contact-hero-lead { animation: em-contact-rise .78s .28s cubic-bezier(.2,.7,.25,1) both; }
.em-contact-hero-actions { animation: em-contact-rise .75s .4s cubic-bezier(.2,.7,.25,1) both; }
.em-contact-side { animation: em-contact-slide .86s .24s cubic-bezier(.2,.7,.25,1) both; }
@keyframes em-contact-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes em-contact-slide { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }
.em-contact-hero::after {
  content: ""; position: absolute; right: -92px; top: -175px; width: 390px; height: 760px;
  border-left: 1px solid rgba(230,0,18,.11); transform: rotate(28deg); pointer-events: none;
}
.em-contact-hero-title .elementor-heading-title { margin: 0; color: var(--em-brand-ink); font-size: clamp(44px,5.3vw,64px); line-height: 1.2; }
.em-contact-hero-lead { max-width: 570px; }
.em-contact-side {
  border: 1px solid rgba(255,255,255,.86);
  border: 1px solid rgba(255,255,255,.68);
  border-left: 3px solid var(--em-brand-red);
  border-radius: 3px;
  padding: 24px 28px !important;
  background: rgba(255,255,255,.9);
  box-shadow: 0 18px 48px rgba(26,34,42,.12);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.62);
  box-shadow: 0 18px 48px rgba(26,34,42,.14);
  -webkit-backdrop-filter: blur(16px) saturate(125%);
  backdrop-filter: blur(16px) saturate(125%);
}
.em-contact-side-label p { margin: 0; letter-spacing: .17em; font-weight: 700; }
.em-contact-side-title .elementor-heading-title { white-space: pre-line; color: var(--em-brand-ink) !important; font-size: 27px; line-height: 1.45; }
.em-contact-side-note p { margin: 0; color: #505962 !important; font-size: 13px; line-height: 1.8; }
/* 03｜按鈕沿用首頁的紅色／白色樣式和箭頭 */
.em-contact-button .elementor-button {; align-items: center; min-height: 49px; padding: 12px 23px !important; border-radius: 3px !important; font-family: "Noto Sans TC", sans-serif !important;
  font-weight: 700 !important; transition: background .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease;
}
.em-contact-button--primary .elementor-button { background: var(--em-brand-red) !important; color: #fff !important; }
.em-contact-button--secondary .elementor-button { background: #fff !important; color: var(--em-brand-ink) !important; }
.em-contact-hero-actions .elementor-button,
.em-contact-hero-actions .elementor-button-content-wrapper,
.em-contact-hero-actions .elementor-button-text {
  white-space: nowrap !important;
}
.em-contact-hero-actions .elementor-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.em-contact-hero-actions .elementor-button-content-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
}
.em-contact-hero-actions .elementor-button::after,
.em-contact-button .elementor-button::after { content: none !important; display: none !important; }
.em-contact-hero-actions .elementor-button-text::after,
.em-contact-button .elementor-button-text::after {
  content: "→" !important;
  display: inline-block !important;
  margin-left: 10px;
  color: currentColor;
  font: 600 15px/1 Arial,sans-serif;
  white-space: nowrap;
  transition: transform .25s ease;
}
@media (hover:hover) and (pointer:fine) {
  .em-contact-button--primary .elementor-button:hover { background: #cf0010 !important; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(230,0,18,.18) !important; }
  .em-contact-button--secondary .elementor-button:hover { color: var(--em-brand-red) !important; transform: translateY(-2px); box-shadow: 0 8px 18px rgba(32,36,42,.09) !important; }
  .em-contact-hero-actions .elementor-button:hover .elementor-button-text::after,
  .em-contact-button .elementor-button:hover .elementor-button-text::after { transform: translateX(4px); }
}
.em-contact-main { padding-top: 112px !important; padding-bottom: 120px !important; }
.em-contact-location { padding-top: 96px !important; padding-bottom: 104px !important; }
/* 04｜聯絡方式、SVG 圖示與互動 */
.em-contact-main-inner { align-items: start !important; }
.em-contact-details > .e-con-inner { gap: 14px; }
.em-contact-details > .elementor-widget-heading:first-child { margin-bottom: 7px; }
.em-contact-method { padding: 16px 0; border-bottom: 1px solid #e6e8e9; }
.em-contact-method,
.em-contact-method .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 15px !important;
}
.em-contact-method > .elementor-widget-html,
.em-contact-method > .e-con-inner > .elementor-widget-html {
  display: block;
  flex: 0 0 44px !important;
  width: 44px !important;
  max-width: 44px !important;
}
.em-contact-icon { display: grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; border: 1px solid #f0d9db; border-radius: 50%; background: #fff7f7; color: var(--em-brand-red); }
.em-contact-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.em-contact-method-copy { display: flex !important; flex: 1 1 auto !important; flex-direction: column !important; gap: 4px !important; min-width: 0; width: auto !important; }
.em-contact-method-copy > .e-con-inner { display: flex !important; flex-direction: column !important; gap: 4px !important; }
.em-contact-method-copy .elementor-widget-heading { margin: 0; }
.em-contact-method-copy .elementor-heading-title { margin: 0; color: #737b83; font: 700 10px/1.5 "Noto Sans TC",sans-serif; letter-spacing: .12em; }
.em-contact-method-link .elementor-button { padding: 0 !important; border: 0 !important; background: transparent !important; color: var(--em-brand-ink) !important; font-size: 16px !important; font-weight: 600 !important; box-shadow: none !important; }
.em-contact-method-link .elementor-button:hover { color: var(--em-brand-red) !important; }
.em-contact-method, .em-contact-form-card, .em-contact-map-frame { transition: transform .3s ease,box-shadow .3s ease; }
.em-contact-icon { transition: transform .3s cubic-bezier(.2,.7,.25,1),background .3s ease; }
@media (hover:hover) and (pointer:fine) {
  .em-contact-method:hover { transform: translateX(4px); }
  .em-contact-method:hover .em-contact-icon { transform: scale(1.08); background: #fff0f1; }
  .em-contact-form-card:hover { transform: translateY(-4px); box-shadow: 0 22px 54px rgba(32,36,42,.1); }
  .em-contact-map-frame:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(32,36,42,.1); }
}
.em-contact-note { margin-top: 16px; padding: 16px 18px; border-left: 2px solid var(--em-brand-red); background: #f7f7f7; }
.em-contact-note p { margin: 0; }
.em-contact-note-label p { color: var(--em-brand-red) !important; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
/* 05｜表單、地圖和辦公地點 */
.em-contact-form-card { border: 1px solid #eceeef; box-shadow: 0 14px 40px rgba(32,36,42,.055); }
.em-contact-form-card .emif-heading h3 { font-family: "Noto Serif TC",serif; }
.em-contact-map-frame { width: 100%; height: 390px; overflow: hidden; border: 1px solid #e0e3e4; background: #e9eceb; }
.em-contact-map-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.em-contact-address p { color: #414750; font-size: 16px; line-height: 1.9; }
.em-contact-location-copy > .elementor-widget-button { margin-top: 5px; }
/* 06｜區塊進場、手機版排列與減少動態 */
@supports (animation-timeline: view()) {
  .em-contact-main-inner, .em-contact-location-inner, .em-contact-form-card, .em-contact-map {
    animation: em-contact-scroll-in linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 42%;
  }
  @keyframes em-contact-scroll-in { from { opacity: .35; transform: translateY(32px); } to { opacity: 1; transform: translateY(0); } }
}
@media(max-width:767px) {
  .em-contact-bleed > .e-con-inner,
  .em-contact-bleed .em-contact-hero-inner > .e-con-inner,
  .em-contact-bleed .em-contact-main-inner > .e-con-inner,
  .em-contact-bleed .em-contact-location-inner > .e-con-inner { width: calc(100% - 36px) !important; }
  .em-contact-hero { padding: 64px 18px 68px !important; }
  .em-contact-button .elementor-button { min-height: 45px; padding: 11px 20px !important; font-size: 13px !important; }
  .em-contact-hero-copy, .em-contact-hero-side, .em-contact-details, .em-contact-form-card,
  .em-contact-map, .em-contact-location-copy { width: 100% !important; }
  .em-contact-hero .em-contact-hero-inner > .e-con-inner,
  .em-contact-main .em-contact-main-inner > .e-con-inner,
  .em-contact-location .em-contact-location-inner > .e-con-inner { flex-direction: column !important; gap: 28px !important; }
  .em-contact-side { margin-top: 12px; padding: 20px 22px !important; }
  .em-contact-main { padding: 76px 18px 82px !important; }
  .em-contact-form-card { padding: 24px 20px !important; }
  .em-contact-map-frame { height: 290px; }
  .em-contact-location { padding: 74px 18px 80px !important; }
}
@media(prefers-reduced-motion:reduce) {
  .em-contact-bleed *, .em-contact-bleed *::before, .em-contact-bleed *::after {
    animation: none !important; transition: none !important; transform: none !important; opacity: 1 !important;
  }
}