/* taccgc-polish.css — post-migration polish, extracted from the identical
   <style id="taccgc-polish-css"> block that was inlined in every migrated page.
   Edit here once instead of across 74 HTML files. */
/* Nav labels: theme forces UPPERCASE via --con_header_nav_menu_link_text_transform.
   Title Case reads cleaner — override to none. */
.main_menu_nav>li>a,#menu-taccgc>li>a{text-transform:none !important;}
/* Animated hero (Ken Burns slow zoom on the photo layer only) + content fade-up. Respects
   prefers-reduced-motion. */
.taccgc-hero-bg{animation:taccgcKenBurns 22s ease-in-out infinite alternate;will-change:transform;transform-origin:center;}
.taccgc-hero-content>*{animation:taccgcFadeUp .9s ease-out both;}
.taccgc-hero-content>p{animation-delay:.05s;}
.taccgc-hero-content>h1{animation-delay:.18s;}
.taccgc-hero-content>a{animation-delay:.34s;}
@keyframes taccgcKenBurns{from{transform:scale(1);}to{transform:scale(1.12);}}
@keyframes taccgcFadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion:reduce){
  .taccgc-hero-bg{animation:none;}
  .taccgc-hero-content>*{animation:none;}
}
/* Language switcher → tidy pill instead of bare "EN / 中文" text */
.taccgc-lang-switcher-mobile{gap:0;border:1px solid rgba(0,0,0,.18);border-radius:999px;overflow:hidden;font-size:13px;}
.taccgc-lang-switcher-mobile span{display:none;}
.taccgc-lang-switcher-mobile a{padding:.3em .7em;line-height:1;}
.taccgc-lang-switcher-mobile a[aria-current="true"]{background:#1a73c2;color:#fff;text-decoration:none;}
li.taccgc-lang-switcher span{opacity:.4;}
/* Recent-events cards: uniform cover crop + equal height + calmer "read more".
   The card image is <li.post_item> .image > a > img — force every cover to the same box. */
.posts_per_row_3{display:flex;flex-wrap:wrap;gap:28px 24px;align-items:stretch;}
.posts_per_row_3>.post_item{flex:1 1 0;min-width:260px;list-style:none;display:flex;}
.post_item .post_inner{display:flex;flex-direction:column;height:100%;width:100%;}
.post_item .image{margin:0;}
.post_item .image img{aspect-ratio:16/10;object-fit:cover;width:100%;height:auto;display:block;border-radius:8px;}
/* "Read More": replace the heavy floating blue circle-arrow with a calm inline text link */
.news_item_button a{box-shadow:none !important;background:none !important;width:auto !important;height:auto !important;
  border-radius:0 !important;color:#1a73c2 !important;font-weight:600;display:inline-flex;align-items:center;gap:.35em;padding:0 !important;}
.news_item_button a svg,.news_item_button .button_icon{width:1em !important;height:1em !important;fill:currentColor;margin:0 !important;}
.news_item_button{position:static !important;margin-top:.6em;}
/* Single event-post: constrain measure + cap any oversized flyer image */
.single-post:not(.vc_sidebar_page) .content-area{max-width:900px;margin-left:auto;margin-right:auto;}
.single-post:not(.vc_sidebar_page) .entry-content{max-width:760px;margin:0 auto;}
.single-post .entry-content p{max-width:78ch;}
.single-post .entry-content figure.wp-block-image{max-width:78ch;margin-left:0;margin-right:0;}
.single-post .entry-content img{max-width:100%;height:auto;max-height:88vh;object-fit:contain;display:block;margin:1em auto;}
/* Section heading rhythm */
.elementor-heading-title{letter-spacing:.01em;}
/* Director / about initials avatars sit clean in the grid */
.elementor-9767 figure.wp-caption img,figure.wp-caption img[src^="data:image/svg"]{border-radius:8px;}
