/* Start custom CSS for section, class: .elementor-element-ca4c4e1 *//* =========================================================
   台鋼保經｜全台服務據點
   正式互動版 V9：依清單寬度統一切換單列／雙列
   字體：Noto Serif TC
========================================================= */

.tsg-location-page,
.tsg-location-page * {
  box-sizing: border-box;
}

.tsg-location-page {
  --tsg-navy: #061f33;
  --tsg-navy-2: #0b324e;
  --tsg-gold: #eab230;
  --tsg-gold-dark: #bf8515;
  --tsg-ink: #172a39;
  --tsg-text: #405260;
  --tsg-muted: #7a8790;
  --tsg-line: #dfe4e7;
  --tsg-soft: #f5f7f7;
  --tsg-map-fill: #dfe3e4;
  --tsg-map-hover: #f3dfab;
  --tsg-map-selected: #eab230;

  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  color: var(--tsg-ink);
  background: #ffffff;
  font-family: "Noto Serif TC", "Microsoft JhengHei", "PingFang TC", serif;
}

.tsg-location-page a,
.tsg-location-page button,
.tsg-location-page input,
.tsg-location-page select {
  font: inherit;
}

.tsg-location-page a { text-decoration: none; }
.tsg-location-page button { border: 0; }
.tsg-location-page [hidden] { display: none !important; }

.tsg-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* =========================================================
   頁首
========================================================= */

.tsg-location-intro {
  padding: 50px 24px 25px;
  background: #ffffff;
}

.tsg-location-intro-inner {
  width: min(1240px, 100%);
  margin: 0 auto;
  text-align: center;
}

.tsg-location-kicker {
  display: block;
  margin-bottom: 6px;
  color: var(--tsg-gold-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .24em;
}

.tsg-location-intro h1 {
  margin: 0 !important;
  color: var(--tsg-navy) !important;
  font-size: clamp(34px, 4vw, 47px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .08em;
}

.tsg-location-intro p {
  max-width: 760px;
  margin: 12px auto 0 !important;
  color: var(--tsg-muted) !important;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.9;
}

/* =========================================================
   上方連動查詢
========================================================= */

.tsg-location-tools {
  padding: 0 24px 34px;
  background: #ffffff;
}

.tsg-location-tools-inner {
  width: min(1120px, 100%);
  display: grid;
  grid-template-columns: 190px 190px minmax(260px, 1fr) auto auto;
  gap: 11px;
  margin: 0 auto;
}

.tsg-location-field,
.tsg-location-search {
  position: relative;
  display: block;
}

.tsg-location-field select,
.tsg-location-search input {
  width: 100%;
  height: 47px;
  border: 1px solid #cbd2d6;
  border-radius: 6px;
  background: #ffffff;
  color: var(--tsg-ink);
  font-size: 14px;
  font-weight: 500;
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.tsg-location-field select { padding: 0 13px; }
.tsg-location-search input { padding: 0 15px 0 43px; }

.tsg-location-field select:focus,
.tsg-location-search input:focus {
  border-color: var(--tsg-gold);
  box-shadow: 0 0 0 3px rgba(234,178,48,.13);
}

.tsg-location-search-icon {
  position: absolute;
  top: 50%;
  left: 14px;
  width: 17px;
  height: 17px;
  transform: translateY(-50%);
  background: #5e6d77;
  pointer-events: none;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='m20 20-4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%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'%3E%3Ccircle cx='11' cy='11' r='7' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='m20 20-4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
}

.tsg-location-search-btn,
.tsg-location-reset-btn {
  min-width: 72px;
  height: 47px;
  padding: 0 18px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  transition: background .2s ease, transform .2s ease;
}

.tsg-location-search-btn {
  background: var(--tsg-navy);
  color: #ffffff;
}

.tsg-location-search-btn:hover {
  background: var(--tsg-navy-2);
  transform: translateY(-1px);
}

.tsg-location-reset-btn {
  background: #edf0f2;
  color: var(--tsg-navy);
}

.tsg-location-reset-btn:hover { background: var(--tsg-gold); }

/* =========================================================
   主區塊
========================================================= */

.tsg-location-main {
  width: 100%;
  padding: 38px 24px 72px;
  background: #ffffff;
}

.tsg-location-layout {
  width: min(1320px, 100%);
  display: grid;
  grid-template-columns: minmax(340px, .94fr) minmax(0, 1.55fr);
  gap: 58px;
  margin: 0 auto;
}

/* =========================================================
   左側互動 SVG 地圖
========================================================= */

.tsg-location-map-panel {
  position: sticky;
  top: 108px;
  align-self: start;
  min-width: 0;
}

.tsg-location-map-heading { margin-bottom: 13px; }

.tsg-location-map-heading > span,
.tsg-location-directory-top > div > span {
  display: block;
  margin-bottom: 4px;
  color: var(--tsg-gold-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .18em;
}

.tsg-location-map-heading h2,
.tsg-location-directory-top h2 {
  margin: 0 !important;
  color: var(--tsg-navy) !important;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.45;
}

.tsg-location-map-heading p {
  margin: 6px 0 0 !important;
  color: var(--tsg-muted) !important;
  font-size: 13px;
  line-height: 1.75;
}

.tsg-location-map-stage {
  position: relative;
  width: min(430px, 100%);
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 5px auto 0;
  background: #ffffff;
}

.tsg-location-map {
  width: 100%;
  max-height: 560px;
  overflow: visible;
  opacity: 0;
  filter:
    drop-shadow(0 10px 10px rgba(6,31,51,.10))
    drop-shadow(0 3px 3px rgba(6,31,51,.07));
  transition:
    opacity .25s ease,
    filter .22s ease;
}

.tsg-location-map.is-ready { opacity: 1; }

.tsg-map-county {
  fill: var(--tsg-map-fill);
  stroke: #ffffff;
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
  cursor: pointer;
  outline: none;

  transform-box: fill-box;
  transform-origin: center;
  transform: translateY(0);

  filter: drop-shadow(0 1px 1px rgba(6,31,51,.08));

  transition:
    fill .2s ease,
    stroke .2s ease,
    filter .2s ease,
    transform .2s ease;
}

.tsg-map-county.is-hover {
  fill: var(--tsg-map-hover);
  stroke: #ffffff;
  transform: translateY(-1.5px);
  filter:
    drop-shadow(0 5px 4px rgba(6,31,51,.13))
    drop-shadow(0 1px 1px rgba(6,31,51,.08));
}

.tsg-map-county.is-selected {
  fill: var(--tsg-map-selected);
  stroke: #ffffff;
  stroke-width: 1.35;
  transform: translateY(-3px);
  filter:
    drop-shadow(0 8px 6px rgba(6,31,51,.18))
    drop-shadow(0 2px 2px rgba(6,31,51,.10));
}

.tsg-map-county:focus-visible {
  stroke: var(--tsg-gold);
  stroke-width: 2;
}

.tsg-location-map-loading {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #81909a;
  font-size: 13px;
  text-align: center;
}

.tsg-location-map-spinner {
  width: 28px;
  height: 28px;
  border: 3px solid #e2e6e8;
  border-top-color: var(--tsg-gold);
  border-radius: 50%;
  animation: tsg-map-spin .8s linear infinite;
}

@keyframes tsg-map-spin { to { transform: rotate(360deg); } }

.tsg-location-map-loading.is-error {
  padding: 30px;
  border: 1px dashed #d5dbdf;
  border-radius: 8px;
  background: #ffffff;
}

.tsg-location-map-error-title {
  display: block;
  color: var(--tsg-navy);
  font-size: 16px;
  font-weight: 700;
}

.tsg-location-map-tooltip {
  position: absolute;
  z-index: 5;
  padding: 6px 9px;
  border: 1px solid rgba(6,31,51,.08);
  border-radius: 5px;
  background: rgba(255,255,255,.96);
  color: var(--tsg-navy);
  font-size: 12px;
  font-weight: 700;
  pointer-events: none;
  box-shadow: 0 5px 14px rgba(6,31,51,.1);
}

.tsg-location-map-note i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--tsg-gold);
}

#tsg-location-map-status {
  color: var(--tsg-navy);
  font-weight: 700;
}

/* =========================================================
   右側目錄 + 縣市次分類
========================================================= */

.tsg-location-directory { min-width: 0; }

.tsg-location-directory-top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 10px;
}

.tsg-location-directory-top > p {
  margin: 0 !important;
  color: var(--tsg-muted) !important;
  font-size: 13px;
}

.tsg-location-directory-top > p strong {
  color: var(--tsg-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
}

.tsg-location-county-nav {
  margin-bottom: 0;
  border-bottom: 1px solid #ccd3d7;
}

.tsg-location-county-nav-label {
  margin-bottom: 2px;
  color: var(--tsg-gold-dark);
  font-size: 12px;
  font-weight: 700;
}

.tsg-location-county-tabs {
  display: flex;
  gap: 5px;
  overflow-x: auto;
  scrollbar-width: none;
}

.tsg-location-county-tabs::-webkit-scrollbar { display: none; }

.tsg-location-county-tab {
  position: relative;
  flex: 0 0 auto;
  min-width: 66px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 9px 10px 10px;
  background: transparent;
  color: #8d979e;
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
}

.tsg-location-county-tab::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1px;
  width: 0;
  height: 2px;
  transform: translateX(-50%);
  background: var(--tsg-gold);
  transition: width .2s ease;
}


.tsg-location-county-tab:hover,
.tsg-location-county-tab.is-active {
  color: var(--tsg-navy);
}

.tsg-location-county-tab.is-active::after { width: 100%; }

.tsg-location-county-tab.is-active {
  color: var(--tsg-navy);
  font-weight: 700;
}


/* =========================================================
   據點清單
========================================================= */

.tsg-location-list {
  max-height: 625px;
  overflow-y: auto;
  padding: 0 18px 0 9px;
  scrollbar-color: #aab3b8 transparent;
  scrollbar-width: thin;
}

.tsg-location-list::-webkit-scrollbar { width: 7px; }
.tsg-location-list::-webkit-scrollbar-thumb {
  border-radius: 20px;
  background: #aab3b8;
}

.tsg-location-list-item {
  padding: 27px 0 23px;
  border-bottom: 1px solid #d9dee1;
}

.tsg-location-list-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.tsg-location-list-meta {
  margin-bottom: 4px;
  color: var(--tsg-gold-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
}

.tsg-location-list-item h3 {
  margin: 0 !important;
  color: var(--tsg-navy) !important;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.45;
}

.tsg-location-badge {
  flex: 0 0 auto;
  padding: 5px 9px;
  border: 1px solid rgba(234,178,48,.35);
  border-radius: 999px;
  background: rgba(234,178,48,.09);
  color: #966b0f;
  font-size: 11px;
  font-weight: 700;
}

.tsg-location-list-info {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin-top: 10px;
}

.tsg-location-info-link {
  display: inline-flex;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
  color: #50616d !important;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.65;
}

.tsg-location-info-address {
  flex: 1 1 330px;
  min-width: 260px;
}
.tsg-location-info-link:hover { color: var(--tsg-gold-dark) !important; }

.tsg-location-mini-icon {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  margin-top: 3px;
  background: var(--tsg-gold-dark);
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
}

.tsg-location-mini-pin {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s7-6.1 7-12A7 7 0 1 0 5 9c0 5.9 7 12 7 12Z' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='9' r='2.5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s7-6.1 7-12A7 7 0 1 0 5 9c0 5.9 7 12 7 12Z' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='9' r='2.5' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E");
}

.tsg-location-mini-phone {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4h4l2 5-3 2c1.7 3.2 3.8 5.3 7 7l2-3 5 2v4c0 1-1 2-2 2C10 23 1 14 1 4c0-1 1-2 2-2h2Z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4h4l2 5-3 2c1.7 3.2 3.8 5.3 7 7l2-3 5 2v4c0 1-1 2-2 2C10 23 1 14 1 4c0-1 1-2 2-2h2Z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.tsg-location-mini-fax {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9V3h12v6M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 14h12v7H6z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9V3h12v6M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 14h12v7H6z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.tsg-location-empty {
  padding: 78px 20px;
  text-align: center;
}

.tsg-location-empty > span {
  color: var(--tsg-gold-dark);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
}

.tsg-location-empty h3 {
  margin: 7px 0 6px !important;
  color: var(--tsg-navy) !important;
  font-size: 23px;
}

.tsg-location-empty p {
  margin: 0 !important;
  color: var(--tsg-muted) !important;
  font-size: 13px;
}

/* =========================================================
   CTA
========================================================= */

.tsg-location-cta {
  width: min(1320px, 100%);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  margin: 54px auto 0;
  padding: 33px 38px;
  border-radius: 10px;
  background: linear-gradient(125deg, #061f33 0%, #0b324e 100%);
  box-shadow: 0 16px 36px rgba(6,31,51,.12);
}

.tsg-location-cta > div > span {
  display: block;
  margin-bottom: 5px;
  color: var(--tsg-gold);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .2em;
}

.tsg-location-cta h2 {
  margin: 0 0 5px !important;
  color: #ffffff !important;
  font-size: 23px;
  font-weight: 700;
}

.tsg-location-cta p {
  margin: 0 !important;
  color: rgba(255,255,255,.72) !important;
  font-size: 13px;
  line-height: 1.7;
}

.tsg-location-cta > a {
  flex: 0 0 auto;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: 5px;
  background: var(--tsg-gold);
  color: var(--tsg-navy) !important;
  font-size: 13px;
  font-weight: 700;
}

/* =========================================================
   WordPress / Elementor 防干擾
========================================================= */

body .elementor .tsg-location-page,
body .elementor-widget-html .tsg-location-page,
body .elementor-widget-container .tsg-location-page { width: 100%; }

.tsg-location-page h1,
.tsg-location-page h2,
.tsg-location-page h3,
.tsg-location-page p { max-width: none; }

.tsg-location-page a { text-transform: none !important; }

/* =========================================================
   平板
========================================================= */

@media screen and (max-width: 1024px) {
  .tsg-location-tools-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tsg-location-search { grid-column: span 2; }
  .tsg-location-search-btn,
  .tsg-location-reset-btn { width: 100%; }

  .tsg-location-layout {
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 34px;
  }

  .tsg-location-map-stage {
    min-height: 450px;
  }

  .tsg-location-list { max-height: 590px; }
}

/* =========================================================
   手機
========================================================= */

@media screen and (max-width: 767px) {
  .tsg-location-intro { padding: 37px 18px 21px; }
  .tsg-location-intro h1 { font-size: 31px; }
  .tsg-location-intro p {
    margin-top: 9px !important;
    font-size: 13px;
  }

  .tsg-location-tools { padding: 0 17px 26px; }

  .tsg-location-tools-inner {
    grid-template-columns: 1fr 1fr;
    gap: 9px;
  }

  .tsg-location-search { grid-column: span 2; }

  .tsg-location-field select,
  .tsg-location-search input,
  .tsg-location-search-btn,
  .tsg-location-reset-btn {
    height: 45px;
    font-size: 13px;
  }

  .tsg-location-main { padding: 28px 17px 49px; }
  .tsg-location-layout { display: block; }

  .tsg-location-map-panel {
    position: static;
    margin-bottom: 34px;
  }

  .tsg-location-map-heading { text-align: center; }

  .tsg-location-map-stage {
    width: min(300px, 82vw);
    min-height: 390px;
  }

  .tsg-location-map-note {
    max-width: 430px;
    margin-left: auto;
    margin-right: auto;
  }

  .tsg-location-directory-top h2 { font-size: 25px; }

  .tsg-location-list {
    max-height: none;
    overflow: visible;
    padding: 0;
  }

  .tsg-location-list-item { padding: 23px 1px 22px; }
  .tsg-location-list-item h3 { font-size: 21px; }

  .tsg-location-list-info { display: block; }
  .tsg-location-info-link {
    display: flex;
    margin-top: 6px;
  }

  .tsg-location-cta {
    display: block;
    margin-top: 39px;
    padding: 28px 24px;
  }

  .tsg-location-cta > a {
    width: 100%;
    margin-top: 20px;
  }
}

/* =========================================================
   極小手機
========================================================= */

@media screen and (max-width: 390px) {
  .tsg-location-tools-inner { grid-template-columns: 1fr; }
  .tsg-location-search { grid-column: auto; }

  .tsg-location-map-stage {
    width: 245px;
    min-height: 350px;
  }

  .tsg-location-map-note {
    display: block;
    text-align: center;
  }

  #tsg-location-map-status {
    display: block;
    margin-top: 5px;
  }

  .tsg-location-directory-top { align-items: flex-start; }
  .tsg-location-directory-top > p { padding-top: 6px; }
}


/* =========================================================
   V2｜白色背景與地圖立體感補強
========================================================= */

.tsg-location-page,
.tsg-location-intro,
.tsg-location-tools,
.tsg-location-main,
.tsg-location-layout,
.tsg-location-map-panel,
.tsg-location-directory {
  background-color: #ffffff;
}

.tsg-location-map-panel {
  isolation: isolate;
}

.tsg-location-map-stage::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 52%;
  width: 68%;
  height: 78%;
  transform: translate(-50%, -50%);
  border-radius: 48%;
  background: radial-gradient(
    ellipse at center,
    rgba(6,31,51,.045) 0%,
    rgba(6,31,51,.018) 45%,
    rgba(6,31,51,0) 72%
  );
  filter: blur(12px);
  pointer-events: none;
}

.tsg-location-map {
  position: relative;
  z-index: 1;
}

.tsg-location-map-loading,
.tsg-location-map-tooltip {
  z-index: 3;
}


/* =========================================================
   V3｜地圖區精簡
========================================================= */

.tsg-location-map-heading {
  margin: 0 0 10px !important;
  text-align: center;
}

.tsg-location-map-heading > span,
.tsg-location-map-heading > p {
  display: none !important;
}

.tsg-location-map-heading h2 {
  margin: 0 !important;
  color: var(--tsg-navy) !important;
  font-size: 27px !important;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .05em;
}

/* 台灣地圖再縮小 */
.tsg-location-map-stage,
.tsg-location-map-wrap {
  width: min(320px, 100%) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.tsg-location-map {
  max-height: 490px !important;
}

/* 整體背景固定白色 */
.tsg-location-page,
.tsg-location-intro,
.tsg-location-tools,
.tsg-location-main,
.tsg-location-layout,
.tsg-location-map-panel,
.tsg-location-directory,
.tsg-location-map-stage,
.tsg-location-map-wrap {
  background: #ffffff !important;
}

/* =========================================================
   手機版｜不顯示地圖，只使用上方篩選
========================================================= */

@media screen and (max-width: 767px) {
  .tsg-location-map-panel {
    display: none !important;
  }

  .tsg-location-layout {
    display: block !important;
  }

  .tsg-location-directory {
    width: 100% !important;
  }

  .tsg-location-main {
    padding-top: 24px !important;
  }

  .tsg-location-subcategory,
  .tsg-location-county-nav {
    margin-top: 0 !important;
  }
}


/* =========================================================
   V4｜據點資訊緊湊排列
   桌機：標題一列，資訊與操作同一列
   手機：自然換行
========================================================= */

.tsg-location-list-item {
  display: block;
  padding: 24px 0 21px;
}

.tsg-location-list-head {
  margin: 0;
}
.tsg-location-list-info {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 20px;
  min-width: 0;
  margin-top: 0;
}

.tsg-location-info-address {
  flex: 1 1 310px;
  min-width: 240px;
}

.tsg-location-info-link {
  flex: 0 0 auto;
  align-items: center;
  line-height: 1.55;
  white-space: nowrap;
}

.tsg-location-info-address {
  white-space: normal;
}

.tsg-location-mini-icon {
  margin-top: 0;
}

/* 中等寬度：資訊維持橫向排列，空間不足時自然換行 */
@media screen and (max-width: 1180px) and (min-width: 768px) {
  .tsg-location-list-info {
    gap: 7px 16px;
  }
}

/* 手機：不強求同列，避免資訊擠壓 */
@media screen and (max-width: 767px) {
  .tsg-location-list-item {
    display: block;
    padding: 22px 1px 20px;
  }

  .tsg-location-list-info {
    display: flex !important;
    flex-wrap: wrap;
    gap: 7px 16px;
    margin-top: 9px;
  }

  .tsg-location-info-address {
    flex: 1 0 100%;
    min-width: 0;
  }

  .tsg-location-info-link {
    display: inline-flex !important;
    margin-top: 0 !important;
    white-space: normal;
  }
}


/* =========================================================
   V5｜移除額外操作按鈕
   地址本身連至 Google Maps；電話本身可直接撥打
========================================================= */

.tsg-location-list-info {
  margin-top: 10px;
}

.tsg-location-info-address,
.tsg-location-info-link[href^="tel:"] {
  cursor: pointer;
}

.tsg-location-info-address:hover,
.tsg-location-info-link[href^="tel:"]:hover {
  color: var(--tsg-gold-dark) !important;
}


/* =========================================================
   V9｜據點資訊一致性切版
   大空間：地址＋電話＋傳真同一列
   清單區不足：所有據點同步切成「地址一列／電話＋傳真一列」
========================================================= */

/* 讓切換依右側清單實際寬度，而不是整個瀏覽器寬度 */
.tsg-location-directory {
  container-type: inline-size;
  container-name: tsg-location-directory;
}

/* 預設：桌機寬度足夠時全部同一列 */
.tsg-location-list-info {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  flex-wrap: nowrap !important;
  gap: 8px 22px;
  width: 100%;
  min-width: 0;
  margin-top: 10px;
}

/* 地址永遠不換行 */
.tsg-location-info-address {
  display: inline-flex !important;
  align-items: center;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: max-content !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

/* 電話＋傳真永遠綁在一起 */
.tsg-location-contact-group {
  display: inline-flex !important;
  align-items: center;
  flex: 0 0 auto !important;
  flex-wrap: nowrap !important;
  gap: 22px;
  width: auto !important;
  min-width: max-content !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

.tsg-location-contact-group .tsg-location-info-link {
  display: inline-flex !important;
  align-items: center;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: max-content !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

.tsg-location-mini-icon {
  margin-top: 0 !important;
}

/* 
   當右側清單容器寬度不足時：
   所有據點一起切成相同的兩列，不再各自依文字長短換行。
*/
@container tsg-location-directory (max-width: 760px) {
  .tsg-location-list-info {
    flex-direction: column !important;
    align-items: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 8px;
  }

  .tsg-location-info-address {
    width: auto !important;
    min-width: max-content !important;
    white-space: nowrap !important;
  }

  .tsg-location-contact-group {
    width: auto !important;
    min-width: max-content !important;
    gap: 18px;
  }
}

/* 手機：固定雙列邏輯，避免橫向擠壓 */
@media screen and (max-width: 767px) {
  .tsg-location-list-info {
    flex-direction: column !important;
    align-items: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 7px;
    margin-top: 9px;
  }

  .tsg-location-info-address {
    white-space: nowrap !important;
  }

  .tsg-location-contact-group {
    gap: 14px;
  }
}

/* 極小手機：只縮小字級與間距，不拆電話／傳真群組 */
@media screen and (max-width: 390px) {
  .tsg-location-contact-group {
    gap: 10px;
  }

  .tsg-location-info-link,
  .tsg-location-contact-group .tsg-location-info-link {
    font-size: 12px;
  }
}/* End custom CSS */