/* Jobs page: Elementor owns copy, images, section spacing and responsive values.
   This stylesheet supplies brand styling, dynamic listing presentation and motion. */
body:is(.em-design-jobs, :has(.em-jobs-hero)) { overflow-x: clip; }
body.em-design-jobs .site-content > .ast-container,
body:has(.em-jobs-hero) .site-content > .ast-container { display:block; width:100%!important; max-width:none!important; margin:0!important; padding:0!important; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .site-content #primary,
body:is(.em-design-jobs, :has(.em-jobs-hero)) .site-content #primary.content-area { float:none!important; width:100%!important; max-width:none!important; margin:0!important; }

body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero { position:relative; isolation:isolate; overflow:hidden; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero .elementor-background-overlay { z-index:0; opacity:1!important; background:linear-gradient(90deg,rgba(250,249,247,.98) 0%,rgba(250,249,247,.94) 30%,rgba(250,249,247,.68) 49%,rgba(250,249,247,.12) 74%,rgba(250,249,247,.02) 100%)!important; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__inner { position:relative; z-index:1; width:100%; max-width:1220px; margin-inline:auto; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__copy { flex:0 1 58%; min-width:0; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__card { flex:0 1 34%; min-width:0; border:1px solid rgba(255,255,255,.72); border-left:2px solid var(--em-brand-red,#e60012); border-radius:3px; background:rgba(255,255,255,.78)!important; box-shadow:0 20px 58px rgba(32,36,42,.11); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__card-label .elementor-heading-title { color:var(--em-brand-red,#e60012)!important; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__card-index { padding-top:10px; border-top:1px solid rgba(32,36,42,.13); }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__title .elementor-heading-title,
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__accent .elementor-heading-title { font-size:clamp(40px,5vw,62px)!important; line-height:1.18!important; overflow-wrap:anywhere; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__actions { margin-top:10px; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-button .elementor-button { display:inline-flex!important; min-height:49px; align-items:center; justify-content:center; padding:12px 22px!important; border:1px solid transparent!important; border-radius:3px!important; box-shadow:none!important; font:700 14px/1.5 var(--em-font-body,"Noto Sans TC",sans-serif)!important; text-decoration:none; transition:transform .25s ease,background-color .25s ease,box-shadow .25s ease; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-button--primary .elementor-button { background:var(--em-brand-red,#e60012)!important; color:#fff!important; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-button--secondary .elementor-button,
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-button--light .elementor-button { background:#fff!important; color:var(--em-brand-ink,#20242a)!important; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-button .elementor-button-content-wrapper { display:inline-flex!important; align-items:center; flex-wrap:nowrap!important; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-button .elementor-button-text { display:inline-flex; align-items:center; white-space:nowrap; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-button .elementor-button-text::after { content:"→"; display:inline-block; margin-left:12px; color:currentColor; font:600 17px/1 Arial,sans-serif; transition:transform .25s ease; }
@media(hover:hover) and (pointer:fine) {
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-button .elementor-button:hover { transform:translateY(-2px); box-shadow:0 9px 22px rgba(32,36,42,.13)!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-button .elementor-button:hover .elementor-button-text::after { transform:translateX(4px); }
}

body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-listing__inner,
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__inner,
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-cta__inner { max-width:1220px; margin-inline:auto; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-listing__intro-row { display:flex; align-items:flex-end; justify-content:space-between; gap:36px; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-listing__title { flex:0 1 61%; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-listing__description { flex:0 1 34%; padding-bottom:5px; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-cta__copy { width:72%; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__heading { max-width:700px; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__steps { display:flex; align-items:stretch; border-top:1px solid #dfe2e3; border-bottom:1px solid #dfe2e3; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__step { position:relative; flex:1 1 33.333%; min-width:0; border-color:#dfe2e3; transition:transform .3s ease,background-color .3s ease; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__step:first-child { border-left:0!important; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__step:last-child { border-right:0!important; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__icon .elementor-heading-title { display:grid; width:44px; height:44px; place-items:center; border:1px solid #e7cbcd; border-radius:50%; transition:transform .35s ease,background-color .3s ease,color .3s ease; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__step-title { margin-top:5px; }
@media(hover:hover) and (pointer:fine) {
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__step:hover { transform:translateY(-4px); background:rgba(255,255,255,.55); }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__step:hover .em-jobs-guide__icon .elementor-heading-title { transform:rotate(-8deg); background:#fff; }
}
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-cta__inner { display:flex; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-cta__copy { flex:1 1 auto; min-width:0; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-cta__eyebrow .elementor-heading-title { color:#f08088!important; }
body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-cta .em-jobs-button--light .elementor-button { min-width:172px; }

/* Functional listing shortcode. */
.em-jobs-board { width:100%; }
.em-jobs-board__filters { display:grid; grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(130px,1fr)) auto; align-items:center; gap:10px; padding:14px; border:1px solid #e9e6e3; border-radius:6px; background:#fff; box-shadow:0 12px 34px rgba(32,36,42,.045); }
.em-jobs-board__filters label { display:block; min-width:0; }
.em-jobs-board__filters input,.em-jobs-board__filters select { display:block; width:100%; min-width:0; height:48px; padding:0 14px; border:1px solid #dfe2e4; border-radius:3px; outline:0; background:#fff; color:#394148; font:400 13px var(--em-font-body,"Noto Sans TC",sans-serif); transition:border-color .2s ease,box-shadow .2s ease; }
.em-jobs-board__filters input::placeholder { color:#92999e; }
.em-jobs-board__filters input:focus,.em-jobs-board__filters select:focus { border-color:var(--em-brand-red,#e60012); box-shadow:0 0 0 3px rgba(230,0,18,.09); }
.em-jobs-board__filters button { display:inline-flex; min-width:126px; min-height:48px; align-items:center; justify-content:center; gap:11px; padding:11px 16px; border:0; border-radius:3px; background:var(--em-brand-red,#e60012); color:#fff; font:700 13px var(--em-font-body,"Noto Sans TC",sans-serif); cursor:pointer; transition:transform .25s ease,background-color .25s ease; }
.em-jobs-board__filters button::after { content:"→"; font:600 17px/1 Arial,sans-serif; transition:transform .25s ease; }
.em-jobs-board__filters button:hover { transform:translateY(-2px); background:#c90010; }
.em-jobs-board__filters button:hover::after { transform:translateX(4px); }
.em-jobs-board__count { margin:23px 0 14px; color:#737b83; font-size:12px; }
.em-jobs-board__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.em-jobs-board__card { display:flex; min-height:208px; flex-direction:column; padding:24px 26px 22px; border:1px solid #e7e4e0; border-radius:4px; background:#fff; box-shadow:0 7px 22px rgba(32,36,42,.03); transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease; }
.em-jobs-board__card:hover { transform:translateY(-4px); border-color:#dfb9bc; box-shadow:0 15px 32px rgba(32,36,42,.08); }
.em-jobs-board__card-meta { display:flex; align-items:center; justify-content:space-between; gap:14px; color:#818a90; font-size:11px; }
.em-jobs-board__card-meta>span { color:var(--em-brand-red,#e60012); font-weight:700; }
.em-jobs-board__card h3 { margin:17px 0 8px; color:#20242a; font:600 21px/1.45 var(--em-font-heading,"Noto Serif TC",serif); }
.em-jobs-board__card h3 a { color:inherit; text-decoration:none; }
.em-jobs-board__card>p { margin:0; color:#737b83; font-size:13px; line-height:1.8; }
.em-jobs-board__card-link { display:inline-flex; align-items:center; gap:9px; align-self:flex-start; margin-top:auto; padding-top:17px; color:var(--em-brand-red,#e60012); font-size:12px; font-weight:700; text-decoration:none; }
.em-jobs-board__card-link span { font-size:16px; transition:transform .25s ease; }
.em-jobs-board__card:hover .em-jobs-board__card-link span { transform:translateX(4px); }
.em-jobs-board__empty { position:relative; display:grid; min-height:260px; align-content:center; justify-items:center; gap:10px; padding:42px 24px; border:1px solid #e8e6e3; border-radius:4px; background:#faf9f7; color:#737b83; text-align:center; }
.em-jobs-board__empty-mark { position:relative; display:block; width:38px; height:38px; margin-bottom:8px; border:1px solid #d7c6c7; border-radius:50%; }
.em-jobs-board__empty-mark::before { position:absolute; top:10px; left:10px; width:12px; height:12px; border:1.5px solid var(--em-brand-red,#e60012); border-radius:50%; content:""; }
.em-jobs-board__empty-mark::after { position:absolute; top:22px; left:22px; width:8px; height:1.5px; transform:rotate(45deg); transform-origin:left; background:var(--em-brand-red,#e60012); content:""; }
.em-jobs-board__empty h3 { margin:0; color:#343a3f; font:600 21px/1.5 var(--em-font-heading,"Noto Serif TC",serif); }
.em-jobs-board__empty p { margin:0; color:#737b83; font-size:13px; line-height:1.8; }
.em-jobs-board__pagination { margin-top:25px; }
.em-jobs-board__pagination .page-numbers { display:inline-flex; min-width:40px; min-height:40px; align-items:center; justify-content:center; margin:0 4px 4px 0; padding:0 10px; border:1px solid #e3e6e8; color:#343a3f; text-decoration:none; }
.em-jobs-board__pagination .page-numbers.current { border-color:var(--em-brand-red,#e60012); background:var(--em-brand-red,#e60012); color:#fff; }
.em-jobs-board__notice { padding:20px; border:1px solid #e8cfd1; color:#8c1a22; }

/* The current archive remains styled until the editable Elementor page is published. */
body.em-design-jobs .platform-recruitment-page { min-height:580px; padding:82px 24px 94px; background:#f8f7f4; }
body.em-design-jobs .platform-recruitment-shell { width:min(1220px,100%); margin:0 auto; }
body.em-design-jobs .platform-recruitment-header { margin:0 0 28px; }
body.em-design-jobs .platform-recruitment-header .platform-recruitment-kicker { color:#737b83; font-size:11px; font-weight:700; letter-spacing:.12em; }
body.em-design-jobs .platform-recruitment-header h1 { margin:13px 0 8px; color:#20242a; font:700 clamp(34px,4vw,52px)/1.2 var(--em-font-heading,"Noto Serif TC",serif); }
body.em-design-jobs .platform-recruitment-header>p:last-child { color:#737b83; font-size:15px; }
body.em-design-jobs .platform-recruitment-filters { display:grid; grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(130px,1fr)) auto; align-items:center; gap:10px; padding:14px; border:1px solid #e9e6e3; border-radius:6px; background:#fff; }
body.em-design-jobs .platform-recruitment-filters label { min-width:0; }
body.em-design-jobs .platform-recruitment-filters input,body.em-design-jobs .platform-recruitment-filters select { width:100%; height:48px; padding:0 14px; border:1px solid #dfe2e4; border-radius:3px; background:#fff; }
body.em-design-jobs .platform-recruitment-filters button { min-height:48px; padding:0 19px; border:0; border-radius:3px; background:#e60012; color:#fff; font-weight:700; }
body.em-design-jobs .platform-recruitment-empty { display:grid; min-height:260px; place-content:center; justify-items:center; gap:10px; margin-top:24px; border:1px solid #e8e6e3; background:#faf9f7; text-align:center; }
body.em-design-jobs .platform-recruitment-empty h2 { margin:0; font:600 22px/1.5 var(--em-font-heading,"Noto Serif TC",serif); }
body.em-design-jobs .platform-recruitment-empty p { margin:0; color:#737b83; font-size:13px; }

.em-jobs-reveal { transition:opacity .7s cubic-bezier(.2,.7,.25,1),transform .7s cubic-bezier(.2,.7,.25,1); }
.em-jobs-reveal.is-visible { animation:em-jobs-rise .72s cubic-bezier(.2,.7,.25,1) var(--em-jobs-reveal-delay,0ms) both; }
.em-jobs-hero__card.is-visible { animation-name:em-jobs-card-in; animation-duration:.9s; }
@keyframes em-jobs-rise { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@keyframes em-jobs-card-in { from { opacity:0; transform:translate(16px,12px); } to { opacity:1; transform:translate(0,0); } }

@media(max-width:1024px) {
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__inner { flex-direction:column!important; align-items:stretch!important; gap:25px!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__copy,body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__card { width:100%!important; max-width:none; flex:0 0 100%; }
 .em-jobs-board__filters,body.em-design-jobs .platform-recruitment-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .em-jobs-board__search,.platform-recruitment-filters label:first-child { grid-column:1/-1; }
 .em-jobs-board__filters button,body.em-design-jobs .platform-recruitment-filters button { width:100%; }
}
@media(max-width:767px) {
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero { min-height:0!important; padding:220px 20px 58px!important; background-position:68% center!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero .elementor-background-overlay { background:linear-gradient(0deg,rgba(250,249,247,.99) 0%,rgba(250,249,247,.94) 46%,rgba(250,249,247,.45) 76%,rgba(250,249,247,.08) 100%)!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__inner { gap:20px!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__title .elementor-heading-title,
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__accent .elementor-heading-title { font-size:clamp(35px,9vw,43px)!important; line-height:1.2!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-hero__card { padding:20px!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-listing__intro-row { display:block; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-listing__title,body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-listing__description { width:100%; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-listing__description { margin-top:12px; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__steps { flex-direction:column!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__step { flex:1 1 auto; min-height:0; padding:19px 0!important; border-right:0!important; border-bottom:1px solid #dfe2e3!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-guide__step:last-child { border-bottom:0!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-cta__inner { flex-direction:column!important; align-items:stretch!important; gap:20px!important; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-cta__copy,body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-cta__inner>.elementor-widget-button { width:100%!important; flex:0 0 100%; }
 body:is(.em-design-jobs, :has(.em-jobs-hero)) .em-jobs-cta__inner>.elementor-widget-button .elementor-button { width:100%; }
 .em-jobs-board__filters,body.em-design-jobs .platform-recruitment-filters { grid-template-columns:minmax(0,1fr); gap:9px; padding:11px; }
 .em-jobs-board__search,.platform-recruitment-filters label:first-child { grid-column:auto; }
 .em-jobs-board__grid { grid-template-columns:minmax(0,1fr); gap:12px; }
 .em-jobs-board__card { min-height:190px; padding:21px 19px; }
 .em-jobs-board__empty { min-height:220px; padding:32px 20px; }
 body.em-design-jobs .platform-recruitment-page { min-height:0; padding:58px 20px 66px; }
}
@media(prefers-reduced-motion:reduce) {
 .em-jobs-reveal,.em-jobs-reveal.is-visible,.em-jobs-board__card,.em-jobs-board__card-link span,.em-jobs-button .elementor-button { animation:none!important; transition:none!important; transform:none!important; }
}
