/* å…§é å…±ç”¨ç‰ˆåž‹ï¼š
 * 1) è¦†å¯« css_main èˆŠç‰ˆ float 25%/75% å·¦å³æ¬„
 * 2) æ”¹ç”¨ .and-inner-layoutï¼ˆCSS Gridï¼šlayout-left / layout-rightï¼‰
 * 3) å« bannerã€éºµåŒ…å±‘ã€layout-full å…¨ç‰ˆ
 */

 .container .wrap .and-inner-layout > aside.layout-left,
 .container .wrap .and-inner-layout > .layout-left {
  /* å…§é å·¦å³æ¬„ï¼šè¦†å¯«èˆŠç‰ˆ float å¯¬åº¦è¨­å®š */
   width: auto !important;
   max-width: none !important;
   float: none !important;
   padding: 0 !important;
   margin: 0 !important;
   text-align: left !important;
   display: block !important;
   box-sizing: border-box !important;
 }
 
 .container .wrap .and-inner-layout > .layout-right {
   width: auto !important;
   max-width: none !important;
   float: none !important;
   padding: 0 !important;
   margin: 0 !important;
   box-sizing: border-box !important;
 }
 
.and-inner-banner {
 /* å…§é  banner å®¹å™¨ */
 position: relative;
 max-width: 1200px;
 width: calc(100% - 32px);
 margin: 24px auto 0;
 padding: 60px 16px 60px;
 overflow: hidden;
 border-radius: 20px;
 box-sizing: border-box;
 background-color: #ecece8;
}

.and-inner-banner__bg {
  /* å…§é  banner èƒŒæ™¯ï¼ˆKen Burns å‹•ç•«ä½œç”¨å±¤ï¼‰ */
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("../../images/banner-inner-bg.png");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  transform: scale(1.12);
  transform-origin: center center;
  will-change: transform;
}

@keyframes and-inner-banner-zoom-in {
  from {
    transform: scale(1.12);
  }
  to {
    transform: scale(1);
  }
}

.and-inner-banner.is-zooming .and-inner-banner__bg {
  animation: and-inner-banner-zoom-in 5s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

@keyframes and-inner-banner-text-in {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.and-inner-banner__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}

.and-inner-banner__en,
.and-inner-banner__zh {
  opacity: 0;
  transform: translateY(18px);
  will-change: opacity, transform;
}

.and-inner-banner.is-zooming .and-inner-banner__en {
  animation: and-inner-banner-text-in 0.85s ease-out 0.12s forwards;
}

.and-inner-banner.is-zooming .and-inner-banner__zh {
  animation: and-inner-banner-text-in 0.85s ease-out 0.32s forwards;
}

@media (prefers-reduced-motion: reduce) {
  .and-inner-banner__bg {
    transform: scale(1);
    will-change: auto;
  }
  .and-inner-banner.is-zooming .and-inner-banner__bg {
    animation: none;
  }
  .and-inner-banner__en,
  .and-inner-banner__zh {
    opacity: 1;
    transform: none;
    will-change: auto;
    animation: none !important;
  }
}

.and-inner-banner__en {
  margin: 0 0 20px;
  font-size: 38px;
  font-weight: normal;
  letter-spacing: 2px;
  color: #fc8f4e;
  font-family: "Marcellus", "Noto Serif HK", serif;
}

.and-inner-banner__zh {
  /* margin 一定要寫死：細項頁會把這個元素改印成 <p>（避免與內容標題重複成兩個 h1），
     h1 與 p 的瀏覽器預設 margin 不同，寫死才能讓兩種標籤外觀完全一致 */
  margin: 0;
  font-size: 30px;
  font-weight: normal;
  letter-spacing: 4px;
  color: #111111;
}

.and-breadcrumb {
  /* éºµåŒ…å±‘å€å¡Š */
  max-width: 1200px;
  width: calc(100% - 32px);
  margin: 20px auto 0;
  box-sizing: border-box;
}

.and-breadcrumb__inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 10px;
  padding: 0 10px;
  color: #8a8a8a;
  font-size: 14px;
  letter-spacing: 0.5px;
  line-height: 1.4;
}

.and-breadcrumb__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #999999;
  text-decoration: none;
  transition: color 0.2s ease;
}

.and-breadcrumb__link:hover {
  color: #f58220;
  text-decoration: none;
}

.and-breadcrumb__link i {
  font-size: 13px;
  line-height: 1;
}

.and-breadcrumb__sep {
  display: inline-block;
  font-size: 9px;
  line-height: 1;
  color: #999999;
  transform: translateY(0.5px);
}

.and-breadcrumb__current {
  color: #999999;
}
 
 .and-inner-body {
   background: #ffffff;
   padding: 0 0 50px;
 }
 
 
 .and-inner-layout {
  /* å…§é ä¸»ç‰ˆåž‹ï¼šå·¦æ¬„ + å³æ¬„ */
   display: grid;
   grid-template-columns: 280px minmax(0, 1fr);
   gap: 36px 32px;
   align-items: start;
   padding-top: 32px;
 }
 
 .and-inner-layout.layout-full {
   grid-template-columns: 1fr;
 }
 
 .layout-left {
   min-width: 0;
 }
 
 .layout-right {
   min-width: 0;
 }
 
 
 .left-menu {
  /* æ¡Œæ©Ÿå·¦å´åˆ†é¡žé¸å–® */
   display: flex;
   flex-direction: column;
   gap: 20px;
   background: transparent;
 }

 .left-menu__block {
   background: #f9f9f9;
   border-radius: 20px;
   overflow: hidden;
 }

 .left-menu__head {
   background: #e6e6e6;
   color: #222222;
   display: flex;
   align-items: center;
   gap: 10px;
   padding: 16px 20px;
 }

 .left-menu__head-icon {
   width: 28px;
   height: 28px;
   display: block;
   flex-shrink: 0;
   object-fit: contain;
 }

 .left-menu__head-title {
   font-size: 20px;
   font-weight: 400;
   letter-spacing: 1px;
   line-height: 1.2;
 }

 .left-menu__list {
   list-style: none;
   margin: 0;
   padding: 12px 18px 16px;
 }

 .left-menu__item {
   margin: 0;
   border-bottom: 1px solid #ebebeb;
 }

 .left-menu__item:last-child {
   border-bottom: none;
 }

 .left-menu__link {
   text-decoration: none;
   color: #2e2e2e;
   display: flex;
   align-items: center;
   gap: 8px;
   padding: 12px 4px;
   font-size: 16px;
   font-weight: 400;
   line-height: 1.4;
   transition: color 0.2s ease;
 }

 .left-menu__arrow {
   display: inline-block;
   width: 10px;
   height: 12px;
   font-size: 0;
   line-height: 0;
   overflow: hidden;
   position: relative;
   flex-shrink: 0;
   color: #2e2e2e;
   transition: color 0.2s ease;
 }

 .left-menu__arrow::before {
   content: "";
   display: block;
   width: 100%;
   height: 100%;
   background: currentColor;
   /* å…§å‡¹ç®­é ­ï¼ˆç´„åŠ æ·± 32%ï¼Œå°å°ºå¯¸æ‰çœ‹å¾—å‡ºç®­é ­å½¢ï¼‰ */
   clip-path: polygon(0 0, 100% 50%, 0 100%, 25% 50%);
 }

 .left-menu__label {
   flex: 1;
 }

 .left-menu__item.is-active .left-menu__link,
 .left-menu__link:hover {
   color: #f58220;
 }

 .left-menu__item.is-active .left-menu__arrow,
 .left-menu__link:hover .left-menu__arrow {
   color: #f58220;
 }

 
 .and-digests-intro {
  /* æ–‡æ‘˜é å‰è¨€æ®µè½ */
   margin: 0 0 32px;
   font-size: 16px;
   font-weight: 400;
   color: #4c4c4c;
   line-height: 1.85;
   letter-spacing: 0.5px;
 }

 
 .and-digests-list {
  /* æ–‡ç« åˆ—è¡¨å¡ç‰‡ç¾¤çµ„ */
   display: flex;
   flex-direction: column;
   gap: 28px;
 }
 
 .and-digests-item {
   display: flex;
   flex-direction: row;
   gap: 22px;
   padding: 22px;
   background: #ffffff;
   border-radius: 12px;
   /* box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07); */
   text-decoration: none;
   color: inherit;
   transition: box-shadow 0.25s ease, transform 0.25s ease;
 }
 
 .and-digests-item:hover {
   box-shadow: 0 8px 22px rgba(0, 0, 0, 0.12);
   transform: translateY(-2px);
 }
 
 .and-digests-item__img {
   flex: 0 0 200px;
   width: 200px;
   height: 200px;
   border-radius: 16px;
   overflow: hidden;
   background: #eeeeee;
 }
 
 .and-digests-item__img img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block;
   transition: transform 0.35s ease;
 }
 
 .and-digests-item:hover .and-digests-item__img img {
   transform: scale(1.05);
 }
 
 .and-digests-item__body {
   flex: 1;
   min-width: 0;
   display: flex;
   flex-direction: column;
 }
 
 .and-digests-item .post-meta {
   display: flex;
   align-items: center;
   justify-content: flex-start;
   gap: 14px;
   margin-bottom: 12px;
   flex-wrap: wrap;
 }
 
 .and-digests-item .post-badge {
   display: inline-block;
   background: #3d3d3d;
   color: #ffffff;
   font-size: 12px;
   padding: 5px 14px;
   border-radius: 999px;
   letter-spacing: 1px;
   line-height: 1.4;
 }
 
 .and-digests-item .post-date {
   font-size: 13px;
   color: #aaaaaa;
   letter-spacing: 1px;
 }
 
 .and-digests-item .post-title {
   margin: 0 0 12px;
   font-size: 18px;
   font-weight: normal;
   color: #111111;
   line-height: 1.5;
   letter-spacing: 0.5px;
 }
 
 .and-digests-item:hover .post-title {
   color: #f58220;
 }
 
 .and-digests-item .post-excerpt {
   margin: 0 0 16px;
   font-size: 14px;
   color: #666666;
   line-height: 1.65;
   display: -webkit-box;
   -webkit-line-clamp: 3;
   -webkit-box-orient: vertical;
   overflow: hidden;
   flex: 1;
 }
 
 /* å¡ç‰‡åº•éƒ¨ï¼šé–±è®€æ›´å¤šæŒ‰éˆ•å€ */
 .and-digests-item .post-footer {
   margin-top: auto;
   padding-top: 12px;
   display: flex;
   align-items: center;
   justify-content: flex-end;
 }
 
 .and-digests-item .post-footer::before {
   content: "";
   flex: 1;
   border-top: 1px solid #ebebeb;
   margin-right: 14px;
 }
 
 .and-digests-item .post-more {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   background: #ffffff;
   border: 1.5px solid #b5b5b5;
   color: #313131;
   border-radius: 999px;
   padding: 10px 24px;
   font-size: 12px;
   letter-spacing: 1px;
   line-height: 1;
   transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
 }
 
 .and-digests-item:hover .post-more {
   background: #f58220;
   border-color: #f58220;
   color: #ffffff;
 }

.and-inner-head {
  /* å…§é ä¸»æ¨™é¡Œåˆ—ï¼ˆåœ–ç¤º + ä¸­è‹±æ–‡å­—ï¼‰ */
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;
  padding: 4px 0 0;
}

.and-inner-head__icon {
  width: 179px;
  height: 54px;
  display: block;
  flex-shrink: 0;
  object-fit: contain;
  margin-top: 50px;
}

.and-inner-head__body {
  flex: 1;
  min-width: 0;
  border-bottom: 1px solid #d8d8d8;
  padding: 2px 0 12px;
}

.and-inner-head__title {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  font-size: 22px;
  font-weight: 400;
  color: #2a2a2a;
  letter-spacing: 0.5px;
  line-height: 1.3;
}

.and-inner-head__part {
  color: #2a2a2a;
}

.and-inner-head__en {
  font-size: 16px;
  font-weight: 400;
  color: #9a9a9a;
  letter-spacing: 0.5px;
  line-height: 1.3;
}

.pagination-slot {
  /* åˆ†é å®¹å™¨ï¼ˆæœªæŽ¥è³‡æ–™æ™‚æœƒé¡¯ç¤ºé ç•™æç¤ºï¼‰ */
  flex: 1 1 auto;
  margin: 50px 0;
  text-align: center;
}

.pagination-slot:empty {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  border: 1px dashed #c8c8c2;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.4);
}

.pagination-slot:empty::before {
  content: "分頁預留區塊";
  font-size: 13px;
  color: #9a9a93;
  letter-spacing: 1px;
}

/* 全站共用的「目前沒有資料」提示（由 front_empty_message() 產生）
   用途：區塊有標題、但這次的條件下撈不到資料時，顯示這一行而不是整區隱藏。
   整區隱藏的問題是：使用者剛剛才在畫面上看到那個區塊，點一下篩選就整塊不見，
   會以為網站壞了，而且連篩選選單本身都一起消失就回不去了。
   樣式沿用 .and-events-list__empty（活動專區本來就是這個做法）。 */
.and-empty-message {
  grid-column: 1 / -1;
  margin: 0;
  padding: 40px 16px;
  text-align: center;
  color: #777777;
  font-size: 16px;
}

@media screen and (max-width: 991px) {
  .and-empty-message {
    padding: 28px 12px;
    font-size: 15px;
  }
}

/* åˆ—è¡¨åˆ†é ï¼ˆåœ“å½¢æŒ‰éˆ•ï¼Œå°é½Šç‰ˆåž‹ï¼‰ */
.and-list-pagination {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  vertical-align: middle;
}

.and-list-pagination__btn {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid #d0d0d0;
  background: #ffffff;
  color: #4a4a4a;
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.and-list-pagination__btn:hover {
  border-color: #e8831f;
  color: #e8831f;
}

.and-list-pagination__btn.is-active {
  background: #e8831f;
  border-color: #e8831f;
  color: #ffffff;
  pointer-events: none;
}

/* --- 分頁的選用元件（showpage_front() 的五個開關）---
   切版只用到「頁碼＋箭頭」，但 showpage_front() 另外支援首頁／尾頁／目前頁數／下拉選單。
   下面把這幾個也做成與圓形頁碼一致的樣式，日後開啟任一項都不會樣式不搭。 --- */

/* 首頁／尾頁按鈕（膠囊狀，與圓形頁碼同高同色系） */
.and-list-pagination__edge {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 14px;
  border-radius: 18px;
  border: 1px solid #d0d0d0;
  background: #ffffff;
  color: #4a4a4a;
  font-size: 14px;
  line-height: 1;
  text-decoration: none;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.and-list-pagination__edge:hover {
  border-color: #e8831f;
  color: #e8831f;
  text-decoration: none;
}

.and-list-pagination__edge.is-disabled {
  opacity: 0.4;
  pointer-events: none;
}

/* 「第 N / M 頁」文字 */
.and-list-pagination__status {
  display: inline-flex;
  align-items: center;
  height: 36px;
  color: #8a8a8a;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0.5px;
  user-select: none;
}

/* 頁碼下拉選單 */
.and-list-pagination__select {
  box-sizing: border-box;
  height: 36px;
  padding: 0 30px 0 12px;
  border: 1px solid #d0d0d0;
  border-radius: 18px;
  background-color: #ffffff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%234a4a4a' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 10px 7px;
  color: #4a4a4a;
  font-size: 14px;
  line-height: 1;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.and-list-pagination__select:hover {
  border-color: #e8831f;
  color: #e8831f;
}

@media screen and (max-width: 768px) {
  .and-list-pagination__edge { padding: 0 12px; font-size: 13px; }
  .and-list-pagination__status { font-size: 13px; }
}

.and-list-pagination__ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 36px;
  color: #4a4a4a;
  font-size: 16px;
  letter-spacing: 1px;
  line-height: 1;
  user-select: none;
}

.and-list-pagination__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 36px;
  text-decoration: none;
  color: #4a4a4a;
  transition: color 0.2s ease;
}

.and-list-pagination__arrow.is-disabled {
  opacity: 0.35;
  pointer-events: none;
  cursor: default;
}

.and-list-pagination__arrow:hover:not(.is-disabled) {
  color: #e8831f;
}

.and-list-pagination__arrow .and-dart-arrow {
  width: 10px;
  height: 12px;
}

@media screen and (max-width: 600px) {
  .and-list-pagination {
    gap: 10px;
  }

  .and-list-pagination__btn {
    width: 32px;
    height: 32px;
    font-size: 14px;
  }

  .and-list-pagination__ellipsis {
    height: 32px;
  }
}

.and-article-detail-layout {
  /* æ–‡ç« è©³æƒ…é ç‰ˆåž‹ */
  gap: 0 28px;
}

.and-article-head {
  margin-bottom: 8px;
}

.and-article-meta {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.and-article-badge {
  display: inline-block;
  background: #3d3d3d;
  color: #ffffff;
  font-size: 12px;
  padding: 5px 14px;
  border-radius: 999px;
  letter-spacing: 1px;
  line-height: 1.4;
}

.and-article-badge--activity {
  background: #000000;
}

.and-article-date {
  font-size: 13px;
  color: #aaaaaa;
  letter-spacing: 1px;
}

.and-article-title {
  margin: 0 0 4px;
  font-size: 26px;
  font-weight: 400;
  color: #111111;
  line-height: 1.45;
  letter-spacing: 0.5px;
}

.and-article-detail-layout .editor {
  padding: 16px 0 24px;
}

.and-article-detail-layout .editor p {
  margin: 0 0 1em;
  color: #4c4c4c;
}

.and-article-detail-layout .editor img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 20px 0;
}

@media screen and (max-width: 900px) {
  .and-article-title {
    font-size: 20px;
  }

  .and-article-badge {
    font-size: 11px;
    padding: 4px 12px;
  }

  .and-article-date {
    font-size: 12px;
  }
}

@media screen and (max-width: 480px) {
  .and-article-title {
    font-size: 18px;
  }
}

@media screen and (max-width: 768px) {
  .and-inner-head {
    margin-bottom: 22px;
  }

  .and-inner-head__title {
    font-size: 20px;
  }

  .and-inner-head__icon {
    width: 70px;
    height: 42px;
    margin-top: 15px;
  }

  .and-inner-head__en {
    font-size: 14px;
  }
}
 
@media screen and (max-width: 768px) {
  .and-breadcrumb {
    margin-top: 16px;
  }

  .and-inner-layout {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-top: 24px;
  }

  .and-inner-banner {
    width: calc(100% - 28px);
    margin-top: 16px;
    padding: 36px 14px 48px;
    border-radius: 40px;
  }

  .and-inner-banner__zh {
    font-size: 24px;
    letter-spacing: 2px;
  }
}

.left-menu-mobile {
  /* æ‰‹æ©Ÿå·¦é¸å–®ï¼ˆselect å°Žè¦½ï¼‰ */
  display: none;
  width: 100%;
  margin: 0 0 18px;
  box-sizing: border-box;
}

.left-menu-mobile__select {
  width: 100%;
  height: 48px;
  margin: 0 0 10px;
  padding: 0 44px 0 16px;
  box-sizing: border-box;
  font-size: 16px;
  font-weight: 400;
  color: #333333;
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  cursor: pointer;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" viewBox="0 0 16 8"><path d="M0 0l8 8 8-8z" fill="%239c9c9c"/></svg>');
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 14px 7px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.left-menu-mobile__select:last-child {
  margin-bottom: 0;
}

.left-menu-mobile__select:hover,
.left-menu-mobile__select:focus {
  border-color: #f58220;
}

@media screen and (max-width: 900px) {
  .and-inner-layout {
    grid-template-columns: 1fr;
  }

  .container .wrap .and-inner-layout > aside.layout-left,
  .container .wrap .and-inner-layout > .layout-left {
    display: none !important;
  }

  .left-menu-mobile {
    display: block;
  }
}

@supports (-webkit-touch-callout: none) {
  .left-menu-mobile__select {
    font-size: 16px;
  }
}

@media screen and (max-width: 900px) {
  .and-digests-item {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }

  .and-digests-item__img {
    flex: none;
    width: 100%;
    max-width: none;
    height: auto;
    margin: 0;
  }

  .and-digests-item__img img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}
 
 @media screen and (max-width: 480px) {
   .and-digests-item {
     padding: 16px;
   }
 
   .and-digests-item .post-title {
     font-size: 16px;
   }

   .and-digests-item__img {
     width: 100%;
     max-width: none;
   }

   .and-digests-item__img img {
     width: 100%;
     height: auto;
     object-fit: contain;
   }
 }

.layout-right > .bd-related {
  /* 相關書目：置於右側內容區，不跨欄全版 */
  margin-top: 40px;
  margin-bottom: 40px;
}

.bd-related__head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 50px;
  padding: 4px 0 0;
}

.bd-related__icon {
  width: 179px;
  height: 54px;
  display: block;
  flex-shrink: 0;
  object-fit: contain;
}

.bd-related__body {
  flex: 1;
  min-width: 0;
  border-bottom: 1px solid #d8d8d8;
  padding: 2px 0 14px;
}

.bd-related__title {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  font-size: 22px;
  font-weight: 400;
  color: #2a2a2a;
  letter-spacing: 0.5px;
  line-height: 1.3;
}

.bd-related__part {
  color: #2a2a2a;
  font-weight: 400;
}

.bd-related__en {
  font-size: 16px;
  font-weight: 400;
  color: #9a9a9a;
  letter-spacing: 0.5px;
  line-height: 1.3;
}

.bd-related__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.bd-related__card {
  display: block;
  text-decoration: none;
  color: inherit;
  min-width: 0;
}

.bd-related__img-wrap {
  border-radius: 16px;
  border: 1px solid #e9e9e4;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  margin-bottom: 15px;
  padding: 10px;
  box-sizing: border-box;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.bd-related__card:hover .bd-related__img-wrap {
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
  transform: translateY(-3px);
}

.bd-related__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  transition: transform 0.3s ease;
}

.bd-related__card:hover .bd-related__img-wrap img {
  transform: scale(1.04);
}

.bd-related__name {
  margin: 0;
  font-size: 15px;
  font-weight: normal;
  color: #1f1f1f;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.2s ease;
}

.bd-related__card:hover .bd-related__name {
  color: #f58220;
}

@media screen and (max-width: 1200px) {
  .bd-related__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media screen and (max-width: 900px) {
  .bd-related__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 10px;
  }

  .bd-related__title {
    font-size: 20px;
  }

  .bd-related__icon {
    width: 90px;
    height: 42px;
  }

  .bd-related__en {
    font-size: 14px;
  }
}

@media screen and (max-width: 600px) {
  .bd-related__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.and-inner-layout > .inner-back-list {
  /* è¿”å›žåˆ—è¡¨æŒ‰éˆ•å€ */
  grid-column: 1 / -1;
  text-align: center;
  margin-bottom: 40px;
}

.layout-right > .inner-back-list {
  margin-top: 36px;
  margin-bottom: 0;
  text-align: center;
}

.inner-back-list__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 28px;
  border: 1px solid #d0d0d0;
  border-radius: 17px;
  background: #ffffff;
  color: #4C4C4B;
  font-size: 15px;
  letter-spacing: 1px;
  text-decoration: none;
  line-height: 1.4;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.inner-back-list__btn .and-ui-btn__arrow {
  width: 8px;
  height: 10px;
}

.inner-back-list__btn:hover {
  border-color: #f58220;
  color: #f58220;
}

/* ============================================================
   Shared content cards (home + inner)
   moved from css_index.css for layering
   ============================================================ */

/* --- Events card --- */
.and-events-card {
  background: #ffffff;
  cursor: pointer;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.25s ease, transform 0.25s ease;
  text-decoration: none;
  color: inherit;
  display: block;
  width: 100%;
  box-sizing: border-box;
}
.and-events-card:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.14);
  transform: translateY(-3px);
}
.and-events-card .card-img-wrap {
  position: relative;
  overflow: hidden;
  padding-bottom: 62%;
  background: #eeeeee;
}
.and-events-card .card-img-wrap img {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.and-events-card:hover .card-img-wrap img { transform: scale(1.05); }

.and-events-card .card-body {
  padding: 16px 20px 20px;
  display: block;
}

/* badge + æ—¥æœŸ ä¸€åˆ— */
.and-events-card .card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  gap: 10px;
}
.and-events-card .card-badge {
  display: inline-block;
  background: #000000;
  border: 1px solid #000000;
  color: #ffffff;
  font-size: 12px;
  padding: 4px 14px;
  border-radius: 999px;
  letter-spacing: 1px;
  line-height: 1.5;
  white-space: nowrap;
}
.and-events-card .card-badge.card-badge--activity {
  color: #ffffff;
  background: #000000;
  border-color: #000000;
}
.and-events-card .card-date {
  font-size: 13px;
  color: #aaaaaa;
  letter-spacing: 1px;
}

.and-events-card .card-title {
  font-size: 15px;
  min-height: 50px;
  font-weight: 500;
  color: #222222;
  line-height: 1.6;
  margin: 0 0 18px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0.5px;
  word-break: break-word;
}

/* åˆ†éš”ç·š + more æŒ‰éˆ• */
.and-events-card .card-footer {
  padding-top: 5px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.and-events-card .card-footer::before {
  content: "";
  flex: 1;
  border-top: 1px solid #e6e6e6;
  margin-right: 14px;
}

/* å¡ç‰‡å…§çš„å° more æŒ‰éˆ•ï¼ˆpillï¼‰ */
.and-events-card .card-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #ffffff;
  border: 1.5px solid #b5b5b5;
  color: #313131;
  border-radius: 999px;
  padding: 10px 22px;
  font-size: 12px;
  letter-spacing: 1px;
  line-height: 1;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.and-events-card:hover .card-more {
  background: #f58220;
  border-color: #f58220;
  color: #ffffff;
}

/* --- Videos Section (ç²¾é¸å½±éŸ³) --- */
.and-videos-section {
  background: #ffffff;
  padding: 55px 0 60px;
}
.and-videos-section .and-section-title {
  text-align: center;
  margin-bottom: 36px;
}
.and-videos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.and-video-card {
  display: block;
  text-decoration: none;
  color: inherit;
}
.and-video-card:hover {
  text-decoration: none;
}
.and-video-thumb {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  background: #eeeeee;
  padding-bottom: 56.25%;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.and-video-card:hover .and-video-thumb {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.14);
  transform: translateY(-3px);
}
.and-video-thumb img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.and-video-card:hover .and-video-thumb img {
  transform: scale(1.04);
}
.and-video-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 56px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* background: #ff0000; */
  border-radius: 10px;
  color: #ffffff;
  font-size: 22px;
  line-height: 1;
  pointer-events: none;
  /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); */
  z-index: 1;
}
.and-video-play i {
  line-height: 1;
  color: #ff0000;
  font-size: 40px;
}
.and-video-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 15px;
  padding: 0 2px;
}
.and-video-title {
  /* 由 <span> 改為 <h3> 後補上這兩行，抵銷瀏覽器對標題標籤的預設值，外觀維持原樣 */
  margin: 0;
  font-weight: normal;
  flex: 1;
  min-width: 0;
  font-size: 15px;
  color: #222222;
  line-height: 1.5;
  letter-spacing: 0.3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.and-videos-more {
  display: flex;
  justify-content: center;
  margin-top: 50px;
}

/* --- Blog Section (ç²¾é¸æ–‡æ‘˜) --- */
.and-blog-section {
  background: #ffffff;
  padding: 60px 0 70px;
}
.and-blog-section .and-section-title {
  text-align: center;
  margin-bottom: 40px;
}
.and-blog-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px 40px;
  /* margin-top: 20px; */
  margin-bottom: 40px;
}
.and-blog-post {
  display: flex;
  gap: 22px;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  align-items: stretch;
}

/* å·¦å´æ–¹å½¢åœ–ç‰‡ï¼ˆåœ“è§’ + æ·¡é™°å½±ï¼‰ */
.and-blog-post .post-img {
  width: 180px;
  height: 180px;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 14px;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12);
  background: #eeeeee;
}
.and-blog-post .post-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.and-blog-post:hover .post-img img { transform: scale(1.06); }

/* å³å´å…§å®¹ */
.and-blog-post .post-content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.and-blog-post .post-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.and-blog-post .post-badge {
  display: inline-block;
  background: #3c3c3c;
  color: #ffffff;
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 25px;
  letter-spacing: 1px;
  line-height: 1.5;
  white-space: nowrap;
}
.and-blog-post .post-date {
  font-size: 13px;
  color: #aaaaaa;
  letter-spacing: 1px;
}
.and-blog-post .post-title {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 8px;
}
.and-blog-post .post-title .and-badge-new {
  flex-shrink: 0;
  margin-left: 0;
  margin-top: 2px;
}
.and-blog-post .post-title-text {
  flex: 1;
  min-width: 0;
  font-size: 15px;
  font-weight: 500;
  color: #222222;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.2s;
  letter-spacing: 0.5px;
}
.and-blog-post:hover .post-title-text { color: #f58220; }
.and-blog-post .post-excerpt {
  font-size: 13px;
  color: #888888;
  line-height: 1.7;
  margin-bottom: 14px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  letter-spacing: 0.3px;
}

/* ä¸‹æ–¹åˆ†éš”ç·š + more pill æŒ‰éˆ• */
.and-blog-post .post-footer {
  margin-top: auto;
  padding-top: 12px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.and-blog-post .post-footer::before {
  content: "";
  flex: 1;
  border-top: 1px solid #ebebeb;
  margin-right: 14px;
}
.and-blog-post .post-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #ffffff;
  border: 1.5px solid #b5b5b5;
  color: #313131;
  border-radius: 999px;
  padding: 10px 24px;
  font-size: 12px;
  letter-spacing: 1px;
  line-height: 1;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.and-blog-post:hover .post-more {
  background: #f58220;
  border-color: #f58220;
  color: #ffffff;
}

.and-blog-more-wrap {
  text-align: center;
  margin-top: 50px;
}

/* --- Imprint title lined + item card --- */
/* ç½®ä¸­ + å·¦å³é›™æ©«ç·šæ¨™é¡Œï¼ˆç·šå¯¬èˆ‡è¼ªæ’­åŒå¯¬ï¼‰ */
.and-imprint-section .and-section-title--lined {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  text-align: center;
  margin: 0 50px 36px;
}
.and-section-title--lined {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  text-align: center;
  margin-bottom: 36px;
}
.and-section-title--lined .title-inner {
  flex: 0 0 auto;
}
.and-section-title--lined .en-title {
  font-family: "Marcellus", "Noto Serif HK", serif;
  font-style: normal;
  color: #f58220;
  font-size: 32px;
  display: block;
  margin-bottom: 10px;
  letter-spacing: 3px;
  line-height: 1.2;
}
.and-section-title--lined h2 {
  font-size: 26px;
  font-weight: bold;
  color: #222222;
  letter-spacing: 4px;
  margin: 0;
  line-height: 1.3;
}
.and-section-title--lined .title-line {
  flex: 1 1 auto;
  min-width: 40px;
  max-width: none;
  height: 12px;
  display: inline-block;
  background: linear-gradient(#f4f4f4, #f4f4f4) top / 100% 3px no-repeat,    linear-gradient(#f4f4f4, #f4f4f4) bottom / 100% 3px no-repeat;
}

.and-imprint-item {
  position: relative;
  text-align: center;
  padding: 22px 14px 20px;
  background: transparent;
  border-radius: 14px;
  transition: box-shadow 0.25s ease, background 0.25s ease, transform 0.25s ease;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
}
.and-imprint-item::after {
  content: "";
  display: block;
  width: 56%;
  max-width: 90px;
  height: 1px;
  background: #d0d0d0;
  margin-top: 4px;
  transition: opacity 0.2s ease;
}
.and-imprint-item:hover {
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.10);
  transform: translateY(-2px);
  text-decoration: none;
  color: inherit;
}
.and-imprint-item:hover::after {
  opacity: 0;
}

.and-imprint-item .imprint-logo {
  width: 100%;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.and-imprint-item .imprint-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
.and-imprint-item .brand-name {
  font-size: 14px;
  color: #333333;
  font-weight: 400;
  letter-spacing: 1.5px;
  line-height: 1.4;
}

/* --- Shared content cards responsive (from former css_index) --- */
@media screen and (max-width: 1100px) {
  .and-videos-section .and-videos-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 900px) {
  .and-blog-grid { grid-template-columns: 1fr; }
  .and-section-title--lined .en-title { font-size: 24px; }
  .and-section-title--lined h2 { font-size: 22px; letter-spacing: 3px; }
  .and-imprint-section .and-section-title--lined { margin-left: 40px; margin-right: 40px; gap: 18px; }
}
@media screen and (max-width: 767px) {
  .and-videos-section .and-videos-grid { grid-template-columns: 1fr; gap: 22px; }
}
@media screen and (max-width: 600px) {
  .and-blog-post { gap: 14px; }
  .and-blog-post .post-img { width: 120px; height: 120px; border-radius: 10px; }
  .and-blog-post .post-title-text { font-size: 14px; }
  .and-blog-post .post-excerpt { -webkit-line-clamp: 2; font-size: 12px; }
  .and-imprint-item .imprint-logo { height: 54px; }
  .and-imprint-item .brand-name { font-size: 13px; letter-spacing: 1px; }
  .and-section-title--lined { gap: 14px; margin-bottom: 32px; }
  .and-imprint-section .and-section-title--lined { margin-left: 36px; margin-right: 36px; gap: 12px; }
  .and-section-title--lined .en-title { font-size: 22px; }
  .and-section-title--lined h2 { font-size: 20px; letter-spacing: 2px; }
}
@media screen and (max-width: 768px) {
  .and-events-card .card-body { padding: 14px 16px 16px; }
  .and-events-card .card-title { font-size: 14px; margin-bottom: 14px; line-height: 1.55; }
  .and-events-card .card-badge { font-size: 11px; padding: 3px 10px; }
  .and-events-card .card-date { font-size: 12px; }
  .and-events-card .card-more { padding: 6px 18px; font-size: 11px; }
  .and-videos-section { padding: 40px 0 48px; }
  .and-videos-section .and-section-title { margin-bottom: 24px; }
  .and-video-play { width: 48px; height: 34px; font-size: 18px; border-radius: 8px; }
  .and-video-meta { margin-top: 12px; gap: 8px; }
  .and-video-title { font-size: 14px; }
  .and-videos-more { margin-top: 28px; }
  .and-blog-section { padding: 40px 0 48px; }
  .and-blog-section .and-section-title { margin-bottom: 24px; }
  .and-blog-grid { gap: 24px; margin-bottom: 24px; }
  .and-blog-post { gap: 14px; }
  .and-blog-post .post-img { width: 140px; height: 140px; border-radius: 12px; }
  .and-blog-post .post-badge { font-size: 11px; padding: 3px 10px; }
  .and-blog-post .post-date { font-size: 12px; }
  .and-blog-post .post-title { margin-bottom: 6px; }
  .and-blog-post .post-title-text { font-size: 14px; }
  .and-blog-post .post-excerpt { font-size: 12px; line-height: 1.6; -webkit-line-clamp: 3; margin-bottom: 10px; }
  .and-blog-post .post-more { padding: 6px 18px; font-size: 11px; }
}
@media screen and (max-width: 480px) {
  .and-videos-section { padding: 32px 0 40px; }
  .and-blog-section { padding: 32px 0 40px; }
  .and-blog-post { gap: 12px; }
  .and-blog-post .post-img { width: 110px; height: 110px; border-radius: 10px; }
  .and-blog-post .post-meta { gap: 8px; margin-bottom: 6px; flex-wrap: wrap; }
  .and-blog-post .post-title-text { font-size: 13.5px; line-height: 1.5; }
  .and-blog-post .post-excerpt { -webkit-line-clamp: 2; margin-bottom: 8px; }
  .and-blog-post .post-footer { padding-top: 8px; }
  .and-blog-post .post-more { padding: 5px 14px; font-size: 10.5px; }
  .and-events-card .card-body { padding: 12px 14px 14px; }
  .and-events-card .card-meta { margin-bottom: 10px; }
  .and-events-card .card-title { font-size: 13.5px; margin-bottom: 12px; }
  .and-imprint-item { padding: 12px 8px; }
  .and-imprint-item .imprint-logo { height: 48px; }
  .and-imprint-item .brand-name { font-size: 12px; }
  .and-section-title--lined { gap: 10px; margin-bottom: 26px; }
  .and-imprint-section .and-section-title--lined { margin-left: 36px; margin-right: 36px; }
  .and-section-title--lined .en-title { font-size: 20px; }
  .and-section-title--lined h2 { font-size: 18px; letter-spacing: 1.5px; }
}


/* === about (css_about.css) === */

/*
 * é—œæ–¼å¤§é›ï¼ˆabout.phpï¼‰å°ˆç”¨æ¨£å¼
 * å‡ºç‰ˆç¤¾å“ç‰Œå¡ç‰‡æ¨£å¼æ²¿ç”¨ css_inner.cssï¼ˆå…±ç”¨å¡ç‰‡ï¼‰ çš„ .and-imprint-item
 */

.and-about-layout {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.and-about-intro {
  margin: 0 0 16px;
}

/* 字級／行距／字距吃 css_editor.css 的共用值（後台編輯器同一份），
   這裡只留這一頁專屬的上下留白與文字色——原本重複宣告了
   font-size:16px（與共用值相同）與 line-height:1.85（共用是 1.875），
   後者讓這頁比編輯器裡矮 0.4px，沒有理由不一致。 */
.and-about-intro .editor {
  padding: 8px 0 0;
  color: #333333;
}

.and-about-intro .editor p {
  margin: 0 0 18px;
}

.and-about-intro .editor p:last-child {
  margin-bottom: 0;
}

.and-about-intro .editor img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0 0 24px;
  border-radius: 16px;
}

/* 小標（h1-h6）與條列（ul／ol）的樣式已提升為全站通用，
   移到 webfile/css/css_editor.css，後台編輯器吃的是同一份——
   留在這裡的話後台編輯器看不到，排版就對不起來。 */

/* å‡ºç‰ˆç¤¾å“ç‰Œï¼šéœæ…‹æ ¼ç·šï¼ˆé¦–é åŒæ¬¾å¡ç‰‡ï¼Œéžè¼ªæ’­ï¼‰ */
.and-about-brands.and-imprint-section {
  padding: 8px 0 56px;
  margin-top: 32px;
  background: transparent;
}

.and-about-brands .and-inner-head {
  margin-bottom: 32px;
}

.and-imprint-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 20px 16px;
  padding: 18px 0 8px;
}

@media screen and (max-width: 1100px) {
  .and-imprint-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media screen and (max-width: 900px) {
  .and-about-brands.and-imprint-section {
    padding: 8px 0 48px;
  }

  .and-imprint-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px 14px;
  }
}

@media screen and (max-width: 600px) {
  .and-about-brands.and-imprint-section {
    padding: 8px 0 40px;
    margin-top: 24px;
  }

  .and-about-brands .and-inner-head {
    margin-bottom: 24px;
  }

  .and-imprint-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 12px;
  }
}


/* === book_list (css_book_list.css) === */

/*
 * æ›¸ç±ä¸€è¦½ï¼ˆbook.phpï¼‰å°ˆç”¨æ¨£å¼
 * éºµåŒ…å±‘èˆ‡ä¸»å…§å®¹é–“è·æ²¿ç”¨ css_inner.css çš„ .and-inner-layout
 */

/* å…§æ–‡ä¸Šæ–¹æ¨™é¡Œï¼šåœ–ç¤º + è·¯å¾‘ + ç°ç·š */
.and-book-list-section {
  background: #ffffff;
  border-radius: 16px;
  padding: 0px 18px 24px;
}

.and-book-list-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 40px;
  padding: 4px 0 0;
}

.and-book-list-head__icon {
  width: 179px;
  height: 54px;
  margin-top: 30px;
  display: block;
  flex-shrink: 0;
  object-fit: contain;
}

.and-book-list-head__body {
  flex: 1;
  min-width: 0;
  border-bottom: 1px solid #d8d8d8;
  padding: 2px 0 10px;
}

.and-book-list-head__title {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  font-size: 22px;
  font-weight: normal;
  color: #2a2a2a;
  letter-spacing: 0.5px;
  line-height: 1.3;
}

.and-book-list-head__part {
  color: #2a2a2a;
}

.and-book-list-head__sep {
  color: #9c9c9c;
}

/* --- 書目瀏覽表格的兩種標記（order_form.php，規格 §3.13）---
   ★ 絕版與 HOT 一律用 class，不要把 <span> 串進書名字串（舊站是串字串，
     導致書名一經 htmlspecialchars() 就露出原始標籤）。

   ★ 2026-08-31 業主決定：絕版列的文字不再整列變灰，跟一般列同色。
     灰字讓整列看起來像「停用」而不是「還買得到但已絕版」，
     而且下載連結一起變灰會讓人以為點不了。
     絕版仍看得出來——書名後面的灰底白字「絕版」標籤（.tag-oop）保留。
     tr 上的 is-oop class 也留著，日後要改回或換別種標示直接掛這裡。 */
.and-order-browse .tag-oop,
.and-order-browse .tag-hot {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.5px;
  vertical-align: middle;
  white-space: nowrap;
}

.and-order-browse .tag-oop {
  color: #ffffff;
  background: #9c9c9c;
}

.and-order-browse .tag-hot {
  color: #ffffff;
  background: #d9534f;
}

/* 搜尋結果／得獎書頁的筆數（書籍一覽沒有這一列，只有這兩頁用） */
.and-book-list-head__count {
  margin: 6px 0 0;
  font-size: 14px;
  color: #9c9c9c;
  letter-spacing: 0.5px;
}

.and-book-list-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 50px 20px;
}

.and-book-list-card__link {
  text-decoration: none;
  color: inherit;
  display: block;
}

.and-book-list-card__img-wrap {
  border-radius: 16px;
  border: 1px solid #e9e9e4;
  background: #ffffff;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  margin-bottom: 15px;
  padding: 10px;
  box-sizing: border-box;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.and-book-list-card:hover .and-book-list-card__img-wrap {
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
  transform: translateY(-3px);
}

.and-book-list-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  transition: transform 0.3s ease;
}

.and-book-list-card:hover .and-book-list-card__img-wrap img {
  transform: scale(1.04);
}

.and-book-list-card__title {
  margin: 0;
  font-size: 15px;
  font-weight: normal;
  line-height: 1.45;
  color: #1f1f1f;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color 0.2s ease;
}

@media screen and (max-width: 1200px) {
  .and-book-list-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media screen and (max-width: 900px) {
  .and-book-list-head__title {
    font-size: 20px;
  }

  .and-book-list-head__icon {
    width: 140px;
    height: 42px;
  }

  .and-book-list-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 600px) {
  .and-book-list-section {
    padding: 14px;
  }

  .and-book-list-head {
    gap: 10px;
  }

  .and-book-list-head__icon {
    width: 90px;
    height: 36px;
    margin-top: 10px;
  }

  .and-book-list-head__title {
    font-size: 18px;
  }

  .and-book-list-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 35px 12px;
  }

  .and-book-list-card__img-wrap {
    margin-bottom: 14px;
    border-radius: 12px;
  }

  .and-book-list-card__title {
    font-size: 14px;
    line-height: 1.4;
  }
}


/* === events (css_events.css) === */

/*
 * æ´»å‹•å°ˆå€å…§é ï¼ˆevents.phpï¼‰å°ˆç”¨æ¨£å¼
 * è¼ªæ’­å¤–è§€å°é½Šé¦–é  Bannerï¼Œä½† class ç¨ç«‹è¨­å®šï¼Œä¸å…±ç”¨ .and-banner-wrap
 * æ´»å‹•å¡ç‰‡æ²¿ç”¨ css_inner.cssï¼ˆå…±ç”¨å¡ç‰‡ï¼‰ çš„ .and-events-card
 */

.and-events-layout .layout-right {
  min-width: 0;
}

/* --- å…§é  Banner è¼ªæ’­ï¼ˆç¨ç«‹æ–¼é¦–é  .and-banner-wrapï¼‰--- */
.and-events-banner-wrap {
  width: 100%;
  max-width: 100%;
  margin: 0 0 28px;
  position: relative;
}

.and-events-banner-wrap .and-events-banner-swiper {
  width: 100%;
  height: 360px;
  margin: 0 auto;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
}

.and-events-banner-wrap .swiper-slide {
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
}

/* å¯ç¸®æ”¾èƒŒæ™¯å±¤ï¼šç¹¼æ‰¿ slide çš„ background-imageï¼ˆå°é½Šé¦–é  banner zoomï¼‰ */
.and-events-banner-wrap .swiper-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: inherit;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  transform: scale(1.12);
  transform-origin: center center;
  will-change: transform;
  pointer-events: none;
}

.and-events-banner-wrap .swiper-slide > a {
  position: relative;
  z-index: 1;
}

.and-events-banner-wrap .swiper-slide-active,
.and-events-banner-wrap .swiper-slide-active > a {
  pointer-events: auto;
}

.and-events-banner-wrap .swiper-slide.is-zooming::before {
  animation: and-banner-zoom-in 5s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

@media (prefers-reduced-motion: reduce) {
  .and-events-banner-wrap .swiper-slide::before {
    transform: scale(1);
    will-change: auto;
  }

  .and-events-banner-wrap .swiper-slide.is-zooming::before {
    animation: none;
  }
}

/* å·¦å³ç®­é ­ï¼ˆæ²¿ç”¨ swiper.css çš„ prev.png / next.pngï¼Œåƒ…èª¿æ•´å°ºå¯¸ï¼‰ */
.and-events-banner-wrap .swiper-button-prev,
.and-events-banner-wrap .swiper-button-next {
  width: 44px;
  height: 44px;
  margin-top: -22px;
  background-size: 44px 44px;
  z-index: 30;
  pointer-events: auto;
}

.and-events-banner-wrap .swiper-button-prev {
  left: 12px;
}

.and-events-banner-wrap .swiper-button-next {
  right: 12px;
}

.and-events-banner-wrap .and-events-banner-pagination {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  line-height: 0;
  transform: none;
  z-index: 20;
  pointer-events: auto;
}

.and-events-banner-wrap .and-events-banner-pagination .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  margin: 0 !important;
  background: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 999px;
  opacity: 1;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
  transition: width 0.35s ease, background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
  cursor: pointer;
}

.and-events-banner-wrap .and-events-banner-pagination .swiper-pagination-bullet:hover {
  border-color: #f58220;
}

.and-events-banner-wrap .and-events-banner-pagination .swiper-pagination-bullet-active {
  width: 50px;
  background: #f58220;
  border-color: #f58220;
  box-shadow: 0 2px 2px rgba(245, 130, 32, 0.35);
}

/* --- æ´»å‹•åˆ—è¡¨ï¼ˆå…§é ï¼šå¹³æ¿å…©æ¬„ã€æ‰‹æ©Ÿå–®æ¬„ï¼‰--- */
.and-events-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  min-width: 0;
}

.and-events-list .and-events-card {
  min-width: 0;
}



@media screen and (max-width: 991px) {
  .and-events-banner-wrap .and-events-banner-swiper {
    height: 280px;
  }

  .and-events-list {
    gap: 18px;
  }
}

@media screen and (max-width: 767px) {
  .and-events-banner-wrap {
    border-radius: 16px;
    margin-bottom: 22px;
  }

  .and-events-banner-wrap .and-events-banner-swiper {
    height: 220px;
    border-radius: 16px;
  }

  .and-events-banner-wrap .and-events-banner-pagination {
    bottom: 12px;
    gap: 8px;
  }

  .and-events-banner-wrap .and-events-banner-pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
  }

  .and-events-banner-wrap .and-events-banner-pagination .swiper-pagination-bullet-active {
    width: 36px;
  }

  .and-events-banner-wrap .swiper-button-prev,
  .and-events-banner-wrap .swiper-button-next {
    width: 36px;
    height: 36px;
    margin-top: -18px;
    background-size: 36px 36px;
  }

  .and-events-list {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}


/* === social (css_social.css) === */

/*
 * æ–‡æ‘˜ï¼å½±éŸ³æ•´åˆé ï¼ˆsocial.phpï¼‰å°ˆç”¨æ¨£å¼
 * è¼ªæ’­å¤–è§€å°é½Šæ´»å‹•å°ˆå€ï¼Œä½† class ç¨ç«‹è¨­å®šï¼Œä¸å…±ç”¨ .and-events-banner-wrap
 * å€å¡Šæ¨™é¡Œæ²¿ç”¨ css_inner.css çš„ .and-inner-head
 */

.and-focus-layout .layout-right {
  min-width: 0;
}

/* --- å…§é  Banner è¼ªæ’­ï¼ˆç¨ç«‹ classï¼‰--- */
.and-focus-banner-wrap {
  width: 100%;
  max-width: 100%;
  margin: 0 0 40px;
  position: relative;
}

.and-focus-banner-wrap .and-focus-banner-swiper {
  width: 100%;
  height: 420px;
  margin: 0 auto;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
}

.and-focus-banner-wrap .swiper-slide {
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
}

/* å¯ç¸®æ”¾èƒŒæ™¯å±¤ï¼šç¹¼æ‰¿ slide çš„ background-imageï¼ˆå°é½Šé¦–é  banner zoomï¼‰ */
.and-focus-banner-wrap .swiper-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: inherit;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  transform: scale(1.12);
  transform-origin: center center;
  will-change: transform;
  pointer-events: none;
}

.and-focus-banner-wrap .swiper-slide > a {
  position: relative;
  z-index: 1;
}

.and-focus-banner-wrap .swiper-slide-active,
.and-focus-banner-wrap .swiper-slide-active > a {
  pointer-events: auto;
}

.and-focus-banner-wrap .swiper-slide.is-zooming::before {
  animation: and-banner-zoom-in 5s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

@media (prefers-reduced-motion: reduce) {
  .and-focus-banner-wrap .swiper-slide::before {
    transform: scale(1);
    will-change: auto;
  }

  .and-focus-banner-wrap .swiper-slide.is-zooming::before {
    animation: none;
  }
}

.and-focus-banner-wrap .swiper-button-prev,
.and-focus-banner-wrap .swiper-button-next {
  width: 44px;
  height: 44px;
  margin-top: -22px;
  background-size: 44px 44px;
  z-index: 30;
  pointer-events: auto;
}

.and-focus-banner-wrap .swiper-button-prev {
  left: 12px;
}

.and-focus-banner-wrap .swiper-button-next {
  right: 12px;
}

.and-focus-banner-wrap .and-focus-banner-pagination {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  line-height: 0;
  transform: none;
  z-index: 20;
  pointer-events: auto;
}

.and-focus-banner-wrap .and-focus-banner-pagination .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  margin: 0 !important;
  background: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 999px;
  opacity: 1;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
  transition: width 0.35s ease, background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
  cursor: pointer;
}

.and-focus-banner-wrap .and-focus-banner-pagination .swiper-pagination-bullet:hover {
  border-color: #f58220;
}

.and-focus-banner-wrap .and-focus-banner-pagination .swiper-pagination-bullet-active {
  width: 50px;
  background: #f58220;
  border-color: #f58220;
  box-shadow: 0 2px 2px rgba(245, 130, 32, 0.35);
}

/* --- å€å¡Šé–“è·ï¼ˆè¦†å¯«é¦–é  section paddingï¼‰--- */
.and-focus-page .and-blog-section {
  padding: 0 0 48px;
}

.and-focus-page .and-videos-section {
  padding: 0 0 20px;
}

.and-focus-page .and-blog-section .and-inner-head,
.and-focus-page .and-videos-section .and-inner-head {
  margin-bottom: 28px;
}

@media screen and (max-width: 1200px) {
  .and-focus-banner-wrap .and-focus-banner-swiper {
    height: 360px;
  }
}

@media screen and (max-width: 991px) {
  .and-focus-banner-wrap .and-focus-banner-swiper {
    height: 280px;
  }
}

@media screen and (max-width: 767px) {
  .and-focus-banner-wrap {
    margin-bottom: 28px;
  }

  .and-focus-banner-wrap .and-focus-banner-swiper {
    height: 220px;
    border-radius: 16px;
  }

  .and-focus-banner-wrap .and-focus-banner-pagination {
    bottom: 12px;
    gap: 8px;
  }

  .and-focus-banner-wrap .and-focus-banner-pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
  }

  .and-focus-banner-wrap .and-focus-banner-pagination .swiper-pagination-bullet-active {
    width: 36px;
  }

  .and-focus-banner-wrap .swiper-button-prev,
  .and-focus-banner-wrap .swiper-button-next {
    width: 36px;
    height: 36px;
    margin-top: -18px;
    background-size: 36px 36px;
  }

  .and-focus-page .and-blog-section {
    padding-bottom: 36px;
  }
}

@media screen and (max-width: 480px) {
  .and-focus-banner-wrap .and-focus-banner-swiper {
    height: 180px;
  }

  .and-focus-banner-wrap .and-focus-banner-pagination {
    bottom: 10px;
    gap: 6px;
  }

  .and-focus-banner-wrap .and-focus-banner-pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
  }

  .and-focus-banner-wrap .and-focus-banner-pagination .swiper-pagination-bullet-active {
    width: 28px;
  }
}


/* === shopping (css_shopping.css) === */

/*
 * å„ªæƒ å•†åŸŽå…§é ï¼ˆshopping.phpï¼‰å°ˆç”¨æ¨£å¼
 * å€å¡Šæ¨™é¡Œæ²¿ç”¨ css_inner.css çš„ .and-inner-head
 */

.and-shopping-layout {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.and-shopping-layout .and-mall-platform {
  margin-bottom: 56px;
}

.and-shopping-layout .and-mall-offers {
  margin-bottom: 16px;
}

/* --- è³¼æ›¸å¹³å°ï¼šLogo å¡ç‰‡åˆ— --- */
.and-mall-platform-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 20px;
}

.and-mall-platform-card {
  display: flex;
  align-items: center;
  justify-content: center;
  /* min-height: 108px; */
  padding: 10px 10px;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  text-decoration: none;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.and-mall-platform-card:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.and-mall-platform-card img {
  display: block;
  max-width: 100%;
  /* max-height: 56px; */
  width: auto;
  height: auto;
  object-fit: contain;
}

/* --- å„ªæƒ å°ˆæ¡ˆï¼šæ´»å‹•å¡ç‰‡ï¼ˆé¡žä¼¼é¦–é æ´»å‹•å°ˆå€ï¼Œview ç½®ä¸­ï¼‰--- */
.and-mall-offer-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.and-mall-offer-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid #e3e3e3;
  border-radius: 16px;
  overflow: hidden;
}

.and-mall-offer-card__img-link {
  display: block;
  text-decoration: none;
  cursor: pointer;
}

.and-mall-offer-card__img-wrap {
  position: relative;
  overflow: hidden;
  padding-bottom: 56%;
  background: #f2f2f2;
}

.and-mall-offer-card__img-wrap img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.and-mall-offer-card__img-link:hover .and-mall-offer-card__img-wrap img {
  transform: scale(1.03);
}

.and-mall-offer-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 18px 20px 22px;
}

.and-mall-offer-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.and-mall-offer-card__time-label {
  display: inline-block;
  background: #3d3d3d;
  color: #ffffff;
  font-size: 12px;
  padding: 5px 12px;
  border-radius: 999px;
  letter-spacing: 0.5px;
  line-height: 1.4;
  white-space: nowrap;
}

.and-mall-offer-card__date {
  font-size: 13px;
  color: #888888;
  letter-spacing: 0.5px;
}

.and-mall-offer-card__title {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0.5px;
}

.and-mall-offer-card__title-link {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: #222222;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.2s ease;
}

.and-mall-offer-card__title-link:hover {
  color: #f58220;
}

.and-mall-offer-card__desc {
  margin: 0 0 20px;
  font-size: 14px;
  font-weight: 400;
  color: #888888;
  line-height: 1.7;
  letter-spacing: 0.3px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}

.and-mall-offer-card__footer {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid #e8e8e8;
  display: flex;
  justify-content: center;
}

.and-mall-offer-card__view {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  /* min-width: 120px; */
  padding: 10px 24px;
  border: 1.5px solid #bdbdbd;
  border-radius: 999px;
  background: #ffffff;
  color: #666666;
  font-size: 13px;
  letter-spacing: 1px;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.and-mall-offer-card__view:hover {
  border-color: #f58220;
  color: #f58220;
}

.and-mall-offer-card__view i {
  font-size: 12px;
  line-height: 1;
}

@media screen and (max-width: 1100px) {
  .and-mall-platform-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .and-mall-offer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 767px) {
  .and-shopping-layout .and-mall-platform {
    margin-bottom: 40px;
  }

  .and-mall-platform-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .and-mall-platform-card {
    min-height: 88px;
    padding: 16px 12px;
  }

  .and-mall-offer-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .and-mall-offer-card__body {
    padding: 16px 16px 20px;
  }

  .and-mall-offer-card__title {
    font-size: 15px;
  }

  .and-mall-offer-card__desc {
    font-size: 13px;
    margin-bottom: 16px;
  }
}

/* --- 404 找不到頁面（規格 §5：套既有內頁版型，中間區保持紙質、留白）--- */
.and-404 {
  max-width: 720px;
  margin: 0 auto;
  padding: 48px 20px 96px;
  text-align: center;
}

.and-404__code {
  margin: 0;
  font-family: "Marcellus", "Noto Serif HK", serif;
  font-size: 108px;
  font-weight: normal;
  line-height: 0.9;
  color: #d8d0c4;
  letter-spacing: 10px;
}

.and-404__rule {
  display: block;
  width: 36px;
  height: 1px;
  margin: 28px auto 0;
  background: #cfc6b8;
}

.and-404__title {
  margin: 22px 0 0;
  font-size: 22px;
  font-weight: normal;
  letter-spacing: 4px;
  color: #2a2a2a;
}

.and-404__text {
  margin: 16px auto 0;
  max-width: 28em;
  font-size: 15px;
  line-height: 1.95;
  letter-spacing: 0.4px;
  color: #8a857c;
}

.and-404__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 36px;
}

.and-404__btn {
  display: inline-block;
  min-width: 108px;
  padding: 11px 24px;
  border: 1px solid #ddd6cc;
  border-radius: 100px;
  color: #5a554c;
  font-size: 14px;
  letter-spacing: 1px;
  text-decoration: none;
  background: #ffffff;
  box-sizing: border-box;
  transition: color 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.and-404__btn:hover {
  border-color: #f58220;
  color: #f58220;
  text-decoration: none;
}

.and-404__btn.is-primary {
  background: #f58220;
  border-color: #f58220;
  color: #ffffff;
}

.and-404__btn.is-primary:hover {
  background: #d96f12;
  border-color: #d96f12;
  color: #ffffff;
}

@media screen and (max-width: 768px) {
  .and-404 {
    padding: 28px 12px 72px;
  }
  .and-404__code {
    font-size: 72px;
    letter-spacing: 6px;
  }
  .and-404__title {
    font-size: 18px;
    letter-spacing: 3px;
  }
}

/* --- 優惠商城：兩區都沒有上架資料時的提示 --- */



/* === publisher (css_publisher.css) === */

/*
 * å‡ºç‰ˆç¤¾å“ç‰Œå…§é ï¼ˆpublisher.phpï¼‰å°ˆç”¨æ¨£å¼
 */

.and-publisher-layout {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* --- ä¸Šæ–¹ï¼šç°¡ä»‹ + ç²‰çµ²å°ˆé  --- */
.and-publisher-top-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 40px;
  margin-bottom: 48px;
}

/* 只剩一區時（沒有出版社簡介、或沒有 FB 與社群連結）改為單欄佔滿 100%，
   不要留半邊空白。規則見規格 §3.4⑤：粉絲專頁在「FB 與社群全都沒有」時整區隱藏，
   實際資料裡有 4 間出版社會走到這個狀態。 */
.and-publisher-top-grid.is-single {
  grid-template-columns: minmax(0, 1fr);
}

.and-publisher-intro,
.and-publisher-fanpage {
  min-width: 0;
}

.and-publisher-intro__body,
.and-publisher-fanpage__body {
  margin-top: 8px;
}

.and-publisher-intro__body .editor {
  font-size: 15px;
  line-height: 1.9;
  color: #444444;
  letter-spacing: 0.3px;
}

.and-publisher-intro__body .editor p {
  margin: 0 0 1em;
}

.and-publisher-intro__body .editor p:last-child {
  margin-bottom: 0;
}

/* FB ç²‰çµ²å°ˆé åµŒå…¥ï¼ˆiframe å¯¬åº¦ç”± publisher.js ä¾å®¹å™¨å‹•æ…‹è¨­å®šï¼‰ */
.and-publisher-fb-embed {
  width: 100%;
  max-width: 100%;
  margin-bottom: 20px;
  /* border: 1px solid #dddfe2; */
  border-radius: 8px;
  overflow: hidden;
  background: #ffffff;
  min-height: 340px;
  box-sizing: border-box;
}

.and-publisher-fanpage__body {
  width: 100%;
  max-width: 100%;
}

.and-publisher-fb-embed iframe {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  height: 340px;
  border: 0;
  overflow: hidden;
  vertical-align: top;
}

/* ç¤¾ç¾¤ icon */
.and-publisher-social {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}

.and-publisher-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* width: 44px; */
  /* height: 44px; */
  border-radius: 50%;
  color: #ffffff;
  text-decoration: none;
  font-size: 20px;
  overflow: hidden;
  background: transparent;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.and-publisher-social__icon {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.and-publisher-social__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

.and-publisher-social__link.is-youtube,
.and-publisher-social__link.is-instagram,
.and-publisher-social__link.is-podcast {
  background: transparent;
}

.and-publisher-fanpage-text {
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  color: #444444;
  letter-spacing: 0.3px;
}

/* --- Banner è¼ªæ’­ï¼ˆç¨ç«‹æ–¼ eventsï¼‰--- */
.and-publisher-banner-wrap {
  width: 100%;
  max-width: 100%;
  margin: 0 0 48px;
  position: relative;
}

.and-publisher-banner-wrap .and-publisher-banner-swiper {
  width: 100%;
  height: 360px;
  margin: 0 auto;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
}

.and-publisher-banner-wrap .swiper-slide {
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  pointer-events: none;
}

/* å¯ç¸®æ”¾èƒŒæ™¯å±¤ï¼šç¹¼æ‰¿ slide çš„ background-imageï¼ˆå°é½Šé¦–é  banner zoomï¼‰ */
.and-publisher-banner-wrap .swiper-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: inherit;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  transform: scale(1.12);
  transform-origin: center center;
  will-change: transform;
  pointer-events: none;
}

.and-publisher-banner-wrap .swiper-slide > a {
  position: relative;
  z-index: 1;
}

.and-publisher-banner-wrap .swiper-slide-active,
.and-publisher-banner-wrap .swiper-slide-active > a {
  pointer-events: auto;
}

.and-publisher-banner-wrap .swiper-slide.is-zooming::before {
  animation: and-banner-zoom-in 5s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}

@media (prefers-reduced-motion: reduce) {
  .and-publisher-banner-wrap .swiper-slide::before {
    transform: scale(1);
    will-change: auto;
  }

  .and-publisher-banner-wrap .swiper-slide.is-zooming::before {
    animation: none;
  }
}

.and-publisher-banner-wrap .swiper-button-prev,
.and-publisher-banner-wrap .swiper-button-next {
  width: 44px;
  height: 44px;
  margin-top: -22px;
  background-size: 44px 44px;
  z-index: 30;
  pointer-events: auto;
}

.and-publisher-banner-wrap .swiper-button-prev {
  left: 12px;
}

.and-publisher-banner-wrap .swiper-button-next {
  right: 12px;
}

.and-publisher-banner-wrap .and-publisher-banner-pagination {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  line-height: 0;
  transform: none;
  z-index: 20;
  pointer-events: auto;
}

.and-publisher-banner-wrap .and-publisher-banner-pagination .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  margin: 0 !important;
  background: #ffffff;
  border: 1px solid #d8d8d8;
  border-radius: 999px;
  opacity: 1;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
  transition: width 0.35s ease, background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
  cursor: pointer;
}

.and-publisher-banner-wrap .and-publisher-banner-pagination .swiper-pagination-bullet:hover {
  border-color: #f58220;
}

.and-publisher-banner-wrap .and-publisher-banner-pagination .swiper-pagination-bullet-active {
  width: 50px;
  background: #f58220;
  border-color: #f58220;
  box-shadow: 0 2px 2px rgba(245, 130, 32, 0.35);
}

/* --- ä¸‹æ–¹ï¼šæ›¸ç³» + æ–°æ›¸å¿«å ± --- */
.and-publisher-books-layout {
  margin-top: 0;
}

.and-publisher-books-layout .and-book-list-section {
  margin-top: 0;
}

.and-publisher-books-layout .and-inner-head {
  margin-bottom: 32px;
}

@media screen and (max-width: 991px) {
  .and-publisher-banner-wrap .and-publisher-banner-swiper {
    height: 280px;
  }
}

@media screen and (max-width: 900px) {
  .and-publisher-top-grid {
    grid-template-columns: 1fr;
    gap: 36px;
    margin-bottom: 36px;
  }
}

@media screen and (max-width: 767px) {
  .and-publisher-banner-wrap {
    border-radius: 16px;
    margin-bottom: 32px;
  }

  .and-publisher-banner-wrap .and-publisher-banner-swiper {
    height: 220px;
    border-radius: 16px;
  }

  .and-publisher-banner-wrap .and-publisher-banner-pagination {
    bottom: 12px;
    gap: 8px;
  }

  .and-publisher-banner-wrap .and-publisher-banner-pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
  }

  .and-publisher-banner-wrap .and-publisher-banner-pagination .swiper-pagination-bullet-active {
    width: 36px;
  }

  .and-publisher-banner-wrap .swiper-button-prev,
  .and-publisher-banner-wrap .swiper-button-next {
    width: 36px;
    height: 36px;
    margin-top: -18px;
    background-size: 36px 36px;
  }

  .and-publisher-social__link {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }

  .and-publisher-fb-embed iframe {
    height: 300px;
  }
}


/* === order_form (css_order_form.css) === */

/*
 * æ›¸ç›®è¨‚è³¼å–®é ï¼ˆorder_form.phpï¼‰å°ˆç”¨æ¨£å¼
 *
 * å¾Œç«¯ä¸²æŽ¥å¾Œè«‹æ³¨æ„ï¼š
 * - é ‚éƒ¨ PHP éœæ…‹é™£åˆ—æ”¹ç‚º DB è¿´åœˆï¼ŒHTML class ç¶­æŒä¸è®Š
 * - è‹¥æ›¾åŠ å±•ç¤ºç”¨å¤–æ¡† classï¼Œä¸Šç·šå‰è«‹ç§»é™¤
 *
 * è¡¨æ ¼ï¼åˆ†é ï¼å€å¡Šæ¨™é¡Œå·²æ”¹ç”¨å…¨ç«™å…±ç”¨ï¼š
 *   table.cssã€css_inner.cssï¼ˆ.and-inner-headã€.pagination-slot é ç•™å€ï¼‰
 */

.and-order-layout {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.and-order-download {
  margin: 0 0 56px;
}

.and-order-browse {
  margin: 0 0 24px;
  padding-top: 16px;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  /* border-top: 1px solid #e2e2dc; */
}

/* --- ç¯©é¸åˆ— --- */
.and-order-browse__filter {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background: #f7f7f7;
  /* border: 1px solid #e3e3dd; */
  border-radius: 16px;
  padding: 18px 22px;
  margin-bottom: 24px;
  flex-wrap: wrap;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.and-order-browse__filter .filter-field {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
}

.and-order-browse__filter .filter-label {
  font-size: 16px;
  color: #2a2a2a;
  letter-spacing: 1px;
  flex-shrink: 0;
}

.and-order-browse__filter .filter-select-wrap {
  position: relative;
  flex: 0 0 auto;
  width: 480px;
  max-width: 100%;
  min-width: 280px;
}

.and-order-browse__filter .filter-select {
  width: 100%;
  height: 52px;
  min-height: 52px;
  border: 1px solid #d8d8d4;
  border-radius: 15px;
  background: #ffffff;
  font-size: 16px;
  color: #444444;
  padding: 0 40px 0 20px;
  box-sizing: border-box !important;
  -webkit-box-sizing: border-box !important;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
  font-family: inherit;
  outline: none;
}

.and-order-browse__filter .filter-select:focus {
  border-color: #f58220;
}

.and-order-browse__filter .filter-select-wrap::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid #333333;
  pointer-events: none;
}

.and-order-browse__filter .filter-buttons {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
}

.and-order-browse__filter .filter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  min-width: 0;
  height: 52px;
  min-height: 52px;
  padding: 0 16px;
  border: 1px solid #d8d8d4;
  border-radius: 15px;
  background: #ffffff;
  color: #2a2a2a;
  font-size: 16px;
  letter-spacing: 1px;
  text-decoration: none;
  box-sizing: border-box;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.and-order-browse__filter .filter-btn:hover,
.and-order-browse__filter .filter-btn.is-active {
  background: #2f2f2f;
  border-color: #2f2f2f;
  color: #ffffff;
}

/* --- å·¥å…·åˆ—ï¼šåˆ†é  + å…¨éƒ¨ä¸‹è¼‰ --- */
.and-order-browse__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 20px 0;
  flex-wrap: wrap;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.and-order-browse__toolbar .pagination-slot {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  box-sizing: border-box;
}

.and-order-browse__toolbar .pagination-slot:empty {
  height: 52px;
  min-height: 52px;
  max-height: 52px;
  padding: 0 14px;
  overflow: hidden;
}

.and-order-browse__toolbar .pagination-slot:empty::before {
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.and-order-browse__download-all {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
}

.and-order-download-all-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 52px;
  min-height: 52px;
  max-width: 100%;
  padding: 0 20px;
  background: #ffffff;
  border: 1px solid #d8d8d4;
  border-radius: 15px;
  color: #2a2a2a;
  text-decoration: none;
  font-size: 16px;
  letter-spacing: 1px;
  line-height: 1.3;
  box-sizing: border-box;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.and-order-download-all-btn span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.and-order-download-all-btn:hover {
  border-color: #f58220;
  color: #f58220;
}

.and-order-download-all-btn__icon {
  width: 22px;
  height: 22px;
  display: block;
  flex-shrink: 0;
  object-fit: contain;
}

@media screen and (min-width: 1025px) {
  .and-order-browse__filter .filter-btn {
    flex: 0 1 auto;
    min-width: 170px;
    padding: 0 24px;
  }

  .and-order-download-all-btn {
    padding: 0 24px;
  }

  .and-order-browse__toolbar {
    display: grid;
    /* grid-template-columns: 1fr auto 1fr; */
    align-items: center;
    gap: 16px;
  }

  .and-order-browse__toolbar .pagination-slot {
    grid-column: 2;
    justify-self: center;
    flex: none;
    width: auto;
    min-width: 280px;
    max-width: 100%;
  }

  .and-order-browse__download-all {
    grid-column: 3;
    justify-self: end;
    flex: none;
    width: auto;
    max-width: 100%;
  }
}

@media screen and (max-width: 1024px) {
  .and-order-browse__filter .filter-field,
  .and-order-browse__filter .filter-buttons {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  /* èˆ‡ã€Œå‡ºç‰ˆç¤¾ã€æ¨™ç±¤æ©«æŽ’æ™‚ï¼Œselect åªåƒå‰©é¤˜å¯¬åº¦ï¼Œå‹¿è¨­ width:100% ä»¥å…æº¢å‡º */
  .and-order-browse__filter .filter-select-wrap {
    flex: 1 1 0;
    width: auto;
    max-width: 100%;
    min-width: 0;
  }

  .and-order-browse__filter .filter-select {
    max-width: 100%;
  }

  .and-order-browse__toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .and-order-browse__toolbar .pagination-slot {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
    order: 2;
  }

  .and-order-browse__download-all {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
  }

  .and-order-download-all-btn {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }
}

@media screen and (max-width: 900px) {
  .and-order-browse__filter {
    padding: 14px 16px;
  }
}

@media screen and (max-width: 600px) {
  .and-order-download {
    margin-bottom: 40px;
  }

  /* æ›´çª„èž¢å¹•ï¼šæ¨™ç±¤èˆ‡ select æ”¹ç›´å‘ï¼Œselect æ»¿å¯¬ */
  .and-order-browse__filter .filter-field {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .and-order-browse__filter .filter-select-wrap {
    flex: 1 1 auto;
    width: 100%;
  }
}


/* === contact (css_contact.css) === */

/*
 * è¯çµ¡æˆ‘å€‘é ï¼ˆcontact.phpï¼‰å°ˆç”¨æ¨£å¼
 * æ›¸ç›®ä¸‹è¼‰è¡¨æ ¼æ²¿ç”¨ table.cssï¼ˆèˆ‡ order_form.php ç›¸åŒå¯«æ³•ï¼‰
 */

.and-contact-layout {
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* --- é é¦–æ–‡å®£ --- */
.and-contact-intro {
  margin-bottom: 40px;
  margin-top: 20px;
}

.and-contact-intro__line {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.and-contact-intro__line img {
  display: block;
  width: auto;
  height: 54px;
}

.and-contact-intro__line::after {
  content: "";
  flex: 1;
  border-top: 1px solid #ddddda;
}

.and-contact-intro p {
  margin: 0;
  font-size: 18px;
  color: #555555;
  line-height: 1.9;
}

/* --- æ›¸ç›®ä¸‹è¼‰å€ --- */
.and-contact-download {
  margin-bottom: 56px;
}

.and-contact-download__more {
  margin-top: 28px;
  text-align: center;
}

/* --- åª’é«” / ç•°æ¥­åˆä½œ --- */
.and-contact-cooperation {
  margin-bottom: 56px;
}

.and-contact-cooperation__list {
  text-align: center;
  padding: 8px 0 0;
}

.and-contact-cooperation__item {
  margin: 0 0 10px;
  font-size: 16px;
  line-height: 1.8;
  color: #333333;
}

.and-contact-cooperation__item:last-child {
  margin-bottom: 0;
}

.and-contact-cooperation__label {
  color: #2a2a2a;
}

.and-contact-cooperation__sep {
  color: #555555;
}

.and-contact-cooperation__email {
  color: #333333;
  text-decoration: none;
}

.and-contact-cooperation__email:hover {
  color: #f58220;
  text-decoration: underline;
}

.and-contact-cooperation__body.editor {
  text-align: center;
  padding: 8px 0 0;
  font-size: 16px;
  line-height: 1.8;
  color: #333333;
}
.and-contact-cooperation__body.editor p {
  margin: 0 0 10px;
}
.and-contact-cooperation__body.editor p:last-child {
  margin-bottom: 0;
}
.and-contact-cooperation__body.editor a {
  color: #333333;
  text-decoration: none;
}
.and-contact-cooperation__body.editor a:hover {
  color: #f58220;
  text-decoration: underline;
}

/* --- è¡¨å–®èªªæ˜Žå€ --- */
.and-contact-form-intro {
  margin-bottom: 56px;
}

.and-contact-form-intro__body {
  max-width: 1000px;
  margin: 24px auto 0;
  padding: 0 16px;
  box-sizing: border-box;
}

.and-contact-form-intro__desc {
  margin: 0 0 12px;
  text-align: center;
  font-size: 16px;
  color: #555555;
  line-height: 1.9;
}

.and-contact-form-intro__required {
  margin: 0;
  text-align: center;
  font-size: 14px;
  color: #888888;
}

/* --- è«®è©¢è¡¨å–®ï¼ˆæ¡Œé¢ï¼šé›™æ¬„ï¼‰ --- */
.and-contact-form {
  margin-bottom: 48px;
  padding-top: 8px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.and-contact-form__grid {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  max-width: 1000px;
  min-width: 0;
  margin: 0 auto;
  box-sizing: border-box;
}

.and-contact-form .form-duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 36px;
  align-items: center;
  min-width: 0;
}

.and-contact-form .form-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  box-sizing: border-box;
}

.and-contact-form .form-row--full {
  align-items: flex-start;
}

.and-contact-form .form-label {
  flex: 0 0 72px;
  width: 72px;
  font-size: 16px;
  font-weight: 400;
  color: #222222;
  line-height: 1.4;
  white-space: nowrap;
}

.and-contact-form .form-required {
  color: #e05a2a;
  font-weight: 400;
}

.and-contact-form .form-input,
.and-contact-form .form-select,
.and-contact-form .form-textarea {
  flex: 1 1 0%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid #b5b5b5;
  border-radius: 15px;
  background: #ffffff;
  font-size: 16px;
  color: #222222;
  font-family: inherit;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.and-contact-form .form-input,
.and-contact-form .form-select {
  height: 52px;
  min-height: 52px;
  padding: 0 18px;
}

.and-contact-form .form-textarea {
  min-height: 200px;
  padding: 16px 18px;
  resize: vertical;
  line-height: 1.7;
}

.and-contact-form .form-textarea::placeholder {
  color: #b5b5b5;
  opacity: 1;
}

.and-contact-form .form-textarea::-webkit-input-placeholder {
  color: #b5b5b5;
}

.and-contact-form .form-textarea::-moz-placeholder {
  color: #b5b5b5;
  opacity: 1;
}

.and-contact-form .form-input:focus,
.and-contact-form .form-select:focus,
.and-contact-form .form-textarea:focus {
  outline: none;
  border-color: #888888;
  box-shadow: 0 0 0 2px rgba(181, 181, 181, 0.25);
}

.and-contact-form .form-select-wrap {
  flex: 1 1 0%;
  min-width: 0;
  position: relative;
}

.and-contact-form .form-select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  padding-right: 42px;
  cursor: pointer;
}

.and-contact-form .form-select-wrap::after {
  content: "";
  position: absolute;
  right: 18px;
  top: 50%;
  margin-top: -3px;
  border: 6px solid transparent;
  border-top-color: #666666;
  pointer-events: none;
}

.and-contact-form .form-cell--gender {
  display: flex;
  align-items: center;
  min-width: 0;
}

.and-contact-form .gender-group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px 22px;
}

.and-contact-form .gender-option {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  cursor: pointer;
  font-size: 16px;
  color: #333333;
  font-weight: 400;
}

.and-contact-form .gender-option input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 24px;
  height: 24px;
  margin: 0;
  border: 1px solid #b5b5b5;
  border-radius: 50%;
  background: #ffffff;
  cursor: pointer;
  flex-shrink: 0;
  position: relative;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.and-contact-form .gender-option input[type="radio"]::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 12px;
  margin: -6px 0 0 -6px;
  border-radius: 50%;
  background: #f58220;
  transform: scale(0);
  transition: transform 0.15s ease;
}

.and-contact-form .gender-option input[type="radio"]:checked {
  border-color: #f58220;
  box-shadow: 0 0 0 1px rgba(245, 130, 32, 0.15);
}

.and-contact-form .gender-option input[type="radio"]:checked::after {
  transform: scale(1);
}

.and-contact-form .gender-option input[type="radio"]:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(181, 181, 181, 0.35);
}

.and-contact-form .gender-option__text {
  line-height: 1.2;
  user-select: none;
}

.and-contact-form .form-row--submit {
  display: flex;
  justify-content: center;
  padding-top: 8px;
}

/* 驗證碼列 */
.and-contact-form .form-row--captcha {
  align-items: center;
}

.and-contact-form .form-captcha {
  flex: 1 1 0%;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.and-contact-form .form-captcha__input {
  flex: 0 1 220px;
  max-width: 100%;
}

.and-contact-form .form-captcha__image {
  display: block;
  height: 40px;
  width: auto;
  border: 1px solid #b5b5b5;
  border-radius: 8px;
  background: #ffffff;
  cursor: pointer;
  box-sizing: border-box;
}

.and-contact-form .form-captcha__refresh {
  color: #f58220;
  font-size: 14px;
  letter-spacing: 0.5px;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.and-contact-form .form-captcha__refresh:hover {
  color: #d96f12;
  text-decoration: underline;
}

/* --- 手機版：單欄 + 防溢版 --- */
@media screen and (max-width: 900px) {
  .and-contact-intro p {
    font-size: 16px;
  }

  .and-contact-cooperation__item {
    font-size: 16px;
    padding: 0 8px;
    word-break: break-word;
  }

  .and-contact-form {
    padding-left: 16px;
    padding-right: 16px;
    box-sizing: border-box;
  }

  .and-contact-form__grid {
    max-width: 100%;
    padding: 0 4px;
    box-sizing: border-box;
  }

  .and-contact-form .form-duo {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .and-contact-form .form-label {
    flex: 0 0 68px;
    width: 68px;
    font-size: 15px;
  }

  .and-contact-form .form-row {
    gap: 10px;
  }

  .and-contact-form .form-input,
  .and-contact-form .form-select {
    height: 44px;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 12px;
    font-size: 15px;
  }

  .and-contact-form .form-textarea {
    min-height: 160px;
    padding: 12px 14px;
    border-radius: 12px;
    font-size: 15px;
  }

  .and-contact-form .form-select-wrap::after {
    right: 14px;
  }

  .and-contact-form .gender-group {
    gap: 12px 18px;
  }

  .and-contact-form .gender-option {
    font-size: 15px;
    gap: 6px;
  }

  .and-contact-form .gender-option input[type="radio"] {
    width: 22px;
    height: 22px;
  }

  .and-contact-form .gender-option input[type="radio"]::after {
    width: 10px;
    height: 10px;
    margin: -5px 0 0 -5px;
  }

  .and-contact-form .form-captcha {
    gap: 10px;
  }

  .and-contact-form .form-captcha__input {
    flex: 1 1 160px;
  }
}

@media screen and (max-width: 480px) {
  .and-contact-form {
    padding-left: 10px;
    padding-right: 10px;
  }

  .and-contact-form__grid {
    padding: 0;
  }

  .and-contact-form .form-row {
    flex-wrap: wrap;
  }

  .and-contact-form .form-label {
    flex: 0 0 100%;
    width: 100%;
  }

  .and-contact-form .form-input,
  .and-contact-form .form-select-wrap,
  .and-contact-form .form-textarea {
    flex: 1 1 100%;
    width: 100%;
  }
}
