/* Shared Single template. Typography, colors and section padding remain Elementor controls. */
/* Keep the previously shipped faces available for explicitly chosen fonts. */
@font-face { font-family:Newsreader; src:url('../fonts/newsreader-variable.ttf') format('truetype'); font-weight:200 800; font-style:normal; font-display:swap; }
@font-face { font-family:'Noto Sans TC'; src:url('../fonts/noto-sans-tc-variable.ttf') format('truetype'); font-weight:100 900; font-style:normal; font-display:swap; }
.ude-case-root {
 --ude-case-paper:#eeebe5;
 --ude-case-font-en:Georgia,'Source Han Sans TW','思源黑體 TW','Source Han Sans TC','思源黑體 TC',SimHei,'黑体',serif;
 --ude-case-font-zh:'Source Han Sans TW','思源黑體 TW','Source Han Sans TC','思源黑體 TC',SimHei,'黑体',sans-serif;
 color:var(--ude-case-paper);
 font-family:var(--ude-case-font-en);
}
/* Defaults have lower specificity than Elementor's saved per-element fonts. */
:where(.ude-case-root) .ude-case-font-en,
:where(.ude-case-root) .ude-case-font-mixed { font-family:var(--ude-case-font-en); }
:where(.ude-case-root) .ude-case-font-zh { font-family:var(--ude-case-font-zh); }
.ude-case-root .ude-case-font-en .elementor-heading-title,
.ude-case-root .ude-case-font-en .elementor-button,
.ude-case-root .ude-case-font-mixed .elementor-heading-title,
.ude-case-root .ude-case-font-mixed .elementor-button,
:where(.ude-case-root) .ude-case-font-en.elementor-widget-text-editor,
:where(.ude-case-root) .ude-case-font-mixed.elementor-widget-text-editor,
:where(.ude-case-root) .ude-case-font-mixed.elementor-widget-theme-post-content { font-family:var(--ude-case-font-en); }
.ude-case-root .ude-case-font-zh .elementor-heading-title,
.ude-case-root .ude-case-font-zh .elementor-button,
:where(.ude-case-root) .ude-case-font-zh.elementor-widget-text-editor { font-family:var(--ude-case-font-zh); }
.ude-case-root .elementor-widget-heading .elementor-heading-title { color:inherit; }
.ude-case-root .elementor-widget-text-editor p:last-child { margin-bottom:0; }
.ude-case-root .ude-case-hero { min-height:clamp(580px,45.7vw,850px); }
.ude-case-root .ude-case-hero-motto { position:absolute; top:60px; left:30%; width:40%; z-index:2; }
body:has(.ude-case-root) > footer.site-footer { display:none; }
.ude-case-root .ude-case-philosophy-text { white-space:normal; }
.ude-case-root .ude-case-philosophy-text p { margin:0; }
.ude-case-root .ude-case-meta-label { opacity:.55; }
.ude-case-root .ude-case-plan img { display:block; width:100%; height:auto; }
.ude-case-root .ude-case-return .elementor-button { padding:14px 22px; background:transparent; border:0; }
.ude-case-root .ude-case-return a:focus-visible { outline:1px solid currentColor; outline-offset:4px; }
.ude-case-root .ude-case-return .elementor-button-content-wrapper { flex-direction:column; gap:4px; }
/* JS evaluates current rendered values, including whitespace and lazy sources.
   Only plugin-owned classes change; saved Elementor visibility stays intact. */
.ude-case-root .ude-case-is-empty { display:none !important; }
.ude-case-root .ude-case-plans .ude-case-plan-single.elementor-element { width:100%; flex-basis:100%; }
.ude-case-gallery { display:flex; align-items:flex-start; gap:var(--ude-case-column-gap,32px); width:100%; }
.ude-case-gallery__col { display:flex; flex:1 1 0; min-width:0; flex-direction:column; gap:var(--ude-case-row-gap,42px); }
.ude-case-gallery__photo { margin:0; min-width:0; order:var(--ude-order); }
.ude-case-gallery__photo a { display:block; }
.ude-case-gallery__photo a:focus-visible { outline:2px solid #eeebe5; outline-offset:6px; }
.ude-case-gallery__photo img { display:block; width:100%; height:auto; border-radius:0; }
.ude-case-gallery-empty { padding:32px; border:1px dashed #aaa; color:inherit; }
@media(max-width:1024px) {
 .ude-case-root .ude-case-hero { min-height:600px; }
}
@media(max-width:767px) {
 .ude-case-root .ude-case-hero-motto { display:none; }
 .ude-case-root .ude-case-hero { min-height:760px; }
 .ude-case-root .ude-case-title .elementor-heading-title { font-size:84px; }
 .ude-case-gallery { flex-direction:column; gap:var(--ude-case-row-gap,24px); }
 .ude-case-gallery__col { display:contents; }
 .ude-case-gallery__photo { width:100%; }
}
