/* Storefront configuration. Admin workspace styling is deliberately isolated. */
body:not(.admin-theme) {
 --ink:var(--design-textColor,#171719);--muted:var(--design-mutedColor,#5d5c63);
 color:var(--ink);background:var(--design-pageBg,#fff);
 font-family:var(--design-fontFamily,'DM Sans','Noto Sans TC',sans-serif);
 font-size:var(--design-bodySize,1rem);line-height:var(--design-lineHeight,1.65);
}
body:not(.admin-theme) .wrap {max-width:var(--design-contentWidth,85rem)}
body:not(.admin-theme) :is(h1,h2,h3) {color:var(--design-headingColor,#171719)}
body:not(.admin-theme) :is(.text-arrow,.form-foot a,.tracking-link) {color:var(--design-linkColor,#6d3f91)}
body:not(.admin-theme) :is(.text-arrow,.form-foot a,.tracking-link):hover {color:var(--design-linkHover,#171719)}
body:not(.admin-theme) .site-header {height:auto;min-height:var(--design-headerHeight,4.75rem);background:var(--design-headerBg,#fff);color:var(--design-headerText,#171719);position:var(--design-headerSticky,sticky)}
body:not(.admin-theme) .header-inner {min-height:var(--design-headerHeight,4.75rem)}
body:not(.admin-theme) .brand img {width:var(--design-logoWidth,11.5625rem)}
body:not(.admin-theme) :is(.desktop-nav a,.mobile-nav a,.nav-group summary):is(:hover,[aria-current]) {color:var(--design-headerActive,#6d3f91)}
body:not(.admin-theme) :is(.mobile-nav,.submenu) {background:var(--design-headerBg,#fff);color:var(--design-headerText,#171719)}
body:not(.admin-theme) .site-footer {background:var(--design-footerBg,#f5f5f6);color:var(--design-footerText,#333);border-color:var(--design-footerBorder,#dedce1)}
body:not(.admin-theme) .footer-main {padding-block:var(--design-footerPadding,2.625rem)}
body:not(.admin-theme) :is(.footer-contact,.footnote) {color:var(--design-footerText,#333);border-color:var(--design-footerBorder,#dedce1)}
body:not(.admin-theme) .home-main :is(.home-close,.home-hero,.image-panel) {background-color:var(--design-homeBg,#f5f3f7)}
body:not(.admin-theme) .home-main :is(h1,h2) {color:var(--design-homeHeading,#171719)}
body:not(.admin-theme) .home-main :is(.hero-content p,.panel-inner p,.home-close p) {color:var(--design-homeText,#6d3f91)}
body:not(.admin-theme) .home-main :is(.hero-content,.panel-inner,.home-close .wrap) {align-items:var(--design-homeJustify,center);text-align:var(--design-homeAlign,center)}
body:not(.admin-theme) .home-hero .hero-content h1 {font-size:clamp(2.1875rem,5.7vw,var(--design-homeTitleSize,5.5rem))}
body:not(.admin-theme) .home-hero .hero-shade {background:linear-gradient(rgb(255 255 255 / var(--design-homeOverlay,.45)),rgb(255 255 255 / var(--design-homeOverlay,.45)))}
/* All call-to-action links, including old .dark and homepage overrides. */
body:not(.admin-theme) :is(a.pill-link,a.pill-link.dark,a.panel-link,a.text-arrow,button.pill-link,.next-links>a) {
 background:var(--design-buttonBg,#e2e2e2);color:var(--design-buttonText,#111);
 border:1px solid var(--design-buttonBorder,#d0d0d0);border-radius:var(--design-buttonRadius,0);
 padding:var(--design-buttonPaddingY,.75rem) var(--design-buttonPaddingX,1.25rem);
 font-size:var(--design-buttonSize,1rem);min-height:2.75rem;text-decoration:none;
 transition:background-color .18s,color .18s,border-color .18s;transform:none;
}
body:not(.admin-theme) :is(a.pill-link,a.pill-link.dark,a.panel-link,a.text-arrow,button.pill-link,.next-links>a):is(:hover,:focus-visible) {
 background:var(--design-buttonHoverBg,#ffd414);color:var(--design-buttonHoverText,#111);border-color:var(--design-buttonHoverBg,#ffd414);transform:none;
}
body:not(.admin-theme) .next-links>a * {color:inherit}
@media(max-width:560px){body:not(.admin-theme) .brand img{width:min(var(--design-logoWidth,11.5625rem),34vw)}body:not(.admin-theme) .header-inner{gap:.5rem}}
body:not(.admin-theme) .site-header :is(.header-inner,.mobile-nav,.locale-switch) {background:var(--design-headerBg,#fff);color:var(--design-headerText,#171719);color-scheme:only light}
body:not(.admin-theme) .site-header :is(a,.menu-toggle,.locale-switch) {color:var(--design-headerText,#171719);-webkit-text-fill-color:currentColor}
body:not(.admin-theme) .site-header .menu-toggle span {background:var(--design-headerText,#171719)}
body:not(.admin-theme) .site-header :is(.desktop-nav a,.mobile-nav a,.nav-group summary):is(:hover,[aria-current]) {color:var(--design-headerActive,#6d3f91);-webkit-text-fill-color:currentColor}
body:not(.admin-theme) :is(a.pill-link,a.pill-link.dark,a.panel-link,a.text-arrow,button.pill-link,.next-links>a),body:not(.admin-theme) :is(a.pill-link,a.panel-link,a.text-arrow,button.pill-link,.next-links>a) * {-webkit-text-fill-color:currentColor;color-scheme:only light}
body:not(.admin-theme) :is(a.pill-link,a.panel-link,a.text-arrow,button.pill-link,.next-links>a) :is(span,b,svg) {color:inherit}
:root body:not(.admin-theme) main :is(.form-grid,.project-form-row,.media-time) {grid-template-columns:repeat(var(--design-formColumns,2),minmax(0,1fr));row-gap:var(--design-formRowGap,1.25rem);column-gap:var(--design-formColumnGap,1.5rem)}
@media(max-width:760px){:root body:not(.admin-theme) main :is(.form-grid,.project-form-row,.media-time){grid-template-columns:minmax(0,1fr)}}

/* Logos inherit the surrounding theme, including transparent uploaded PNGs. */
.brand,.brand img,.footer-main>img,.footer-main>a:has(img),.footer-main img,[data-media-slot=brand-logo]{background:transparent!important;border-radius:0!important;box-shadow:none!important}
.logo-preview-dialog{max-width:min(90vw,640px);color:#222;background:#fff;padding:24px;border:1px solid #888}.logo-preview-dialog::backdrop{background:#0008}.logo-preview-grid{display:grid;gap:12px;margin:20px 0}.logo-preview-grid>div{padding:20px}.logo-preview-grid img{max-width:100%;max-height:100px;object-fit:contain}.logo-preview-dialog button{margin:6px;padding:12px;background:#e2e2e2;color:#111}.logo-preview-dialog button:hover{background:#ffd414}
/* Header and footer use one navigation system; each keeps its own imagery/background. */
body:not(.admin-theme) :is(.site-header,.site-footer){font-family:var(--design-fontFamily,'DM Sans','Noto Sans TC',sans-serif);font-size:var(--design-navSize,1rem);color:var(--design-navText,#171719);background-repeat:no-repeat;background-position:center;background-size:cover}
body:not(.admin-theme) .site-header{background-image:var(--design-headerPhoto,none)}
body:not(.admin-theme) .site-footer{background-image:var(--design-footerPhoto,none)}
body:not(.admin-theme) :is(.site-header,.site-footer) nav{font-size:var(--design-navSize,1rem);font-weight:var(--design-navWeight,700);line-height:1.5}
body:not(.admin-theme) :is(.site-header,.site-footer) nav :is(a,summary){display:inline-flex;align-items:center;gap:.5rem;color:var(--design-navText,#171719);font:inherit;padding:.5rem .25rem;text-decoration:none}
body:not(.admin-theme) :is(.site-header,.site-footer) nav :is(a,summary):is(:hover,:focus-visible,[aria-current]){color:var(--design-navHover,#171719);text-decoration:underline;text-underline-offset:.3em}
body:not(.admin-theme) :is(.site-header,.site-footer) nav .menu-icon{width:var(--design-navIconSize,1.75rem);height:var(--design-navIconSize,1.75rem);object-fit:contain;flex:none;padding:0;background:transparent}
body:not(.admin-theme) :is(.footer-contact,.footnote){font-family:inherit;font-size:var(--design-navSize,1rem);color:var(--design-navText,#171719)}
body:not(.admin-theme) .site-header .header-inner{background:transparent}
body:not(.admin-theme) .site-footer .submenu{background:var(--design-footerBg,#f5f5f6)}
@media(max-width:760px){body:not(.admin-theme) :is(.site-header,.site-footer) nav a{min-height:44px}body:not(.admin-theme) .footer-main nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;width:100%}}

/* Configurable effects: underline and accent bar are separate controls. */
body:not(.admin-theme) :is(.site-header,.site-footer) nav :is(a,summary):is(:hover,:focus-visible,[aria-current]){text-decoration:var(--design-navUnderline,none)}
body:not(.admin-theme) .desktop-nav a::after{display:var(--design-navBarDisplay,block);height:var(--design-navBarHeight,.625rem);bottom:calc(-1 * var(--design-navBarOffset,.5rem));background:var(--design-navBarColor,#ffd414);border-radius:var(--design-navBarRadius,0);transition:right var(--design-navBarMotion,280ms) ease}
body:not(.admin-theme) .site-header .locale-switch,body:not(.admin-theme) .site-header .locale-switch option{background:var(--design-localeBg,#ffd414)!important;color:var(--design-localeText,#171719)!important;-webkit-text-fill-color:var(--design-localeText,#171719);color-scheme:only light}
body:not(.admin-theme) .site-header .locale-switch{border:var(--design-localeBorderWidth,.0625rem) solid var(--design-localeBorder,#d8b600);border-radius:var(--design-localeRadius,0);min-height:2.75rem}
body:not(.admin-theme) :is(.inquiry-form,.icon-card,.project-summary,.quote-card,.compact-form){background:var(--design-panelBg,#f6f5f7);color:var(--design-panelText,#29242e)}
:root body main :is(.inquiry-form,.icon-card,.project-summary,.quote-card,.compact-form,.config-section,.content-block,.inquiry-item){border:var(--design-panelBorderWidth,.0625rem) var(--design-panelBorderStyle,solid) var(--design-panelBorder,#817b87);border-radius:var(--design-panelRadius,0);padding:var(--design-panelPadding,1.5rem)}
:root body main :is(td,th){border-color:var(--design-panelBorder,#817b87)}
body:not(.admin-theme) main :is(h1,h2){font-size:clamp(2rem,4.5vw,var(--design-headingSize,4rem))}
body:not(.admin-theme) .home-hero .hero-content h1{font-size:clamp(2.1875rem,5.7vw,var(--design-homeTitleSize,5.5rem))}
body:not(.admin-theme) .subhero h1{font-size:clamp(2rem,4.5vw,var(--design-headingSize,4rem));line-height:1.15;letter-spacing:-.06em;margin:28px 0 22px}
body:not(.admin-theme) .subhero-inner p{font-size:18px;font-weight:600;line-height:inherit}
body main img:not([data-media-slot=brand-logo]):not(.menu-icon){border-radius:var(--design-imageRadius,0)}
body:not(.admin-theme) :is(a.pill-link,a.pill-link.dark,a.panel-link,a.text-arrow,button.pill-link,.next-links>a){border-width:var(--design-buttonBorderWidth,.0625rem);border-style:var(--design-buttonBorderStyle,solid)}
body.admin-theme{--ink:var(--design-adminText,#303030);background:var(--design-adminBg,#fff);color:var(--design-adminText,#303030);font-size:var(--design-adminFontSize,1rem)}
body.admin-theme :is(.config-section,.inquiry-form,.compact-form,.quote-card,.project-summary,.content-block,.inquiry-item,.media-entry,.visual-inspector,.menu-parent){background:var(--design-adminPanelBg,#fff);color:var(--design-adminPanelText,#303030);border-color:var(--design-adminBorder,#aaa)}
body.admin-theme main :is(button:not(.photo-choice):not(.project-card):not(.annotation-item):not([data-tab]),.pill-link){background:var(--design-adminButtonBg,#e2e2e2)!important;color:var(--design-adminButtonText,#111)!important;-webkit-text-fill-color:currentColor;border-radius:var(--design-buttonRadius,0);border-width:var(--design-buttonBorderWidth,.0625rem);border-style:var(--design-buttonBorderStyle,solid)}
@media(prefers-reduced-motion:reduce){body:not(.admin-theme) .desktop-nav a::after{transition:none}}

/* Navigation labels are indivisible. Whole items move, characters never split. */
body:not(.admin-theme) :is(.site-header,.site-footer) nav :is(a,summary){white-space:nowrap;word-break:normal;overflow-wrap:normal;flex-shrink:0;max-width:none;position:relative}
body:not(.admin-theme) .desktop-nav{flex:0 0 auto;gap:clamp(.75rem,1.6vw,2rem)}
body:not(.admin-theme) .desktop-nav>.nav-group{flex-shrink:0}
body:not(.admin-theme) .header-inner{min-width:0}
body:not(.admin-theme) .locale-switch{flex-shrink:0}
body:not(.admin-theme) .footer-main{flex-wrap:wrap;gap:1.5rem 2rem}
body:not(.admin-theme) .footer-main nav{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;min-width:0;max-width:100%}
body:not(.admin-theme) :is(.footer-contact,.footnote){min-width:0;max-width:100%;flex-wrap:wrap}
body:not(.admin-theme) :is(.footer-contact,.footnote)>:is(a,span){white-space:nowrap;max-width:100%;overflow-x:auto;overflow-y:hidden}
body:not(.admin-theme) :is(.site-header,.site-footer) nav :is(a,summary)::after{content:"";position:absolute;left:0;right:100%;bottom:calc(-1 * var(--design-navBarOffset,.5rem));display:var(--design-navBarDisplay,block);height:var(--design-navBarHeight,.625rem);background:var(--design-navBarColor,#ffd414);border-radius:var(--design-navBarRadius,0);transition:right var(--design-navBarMotion,280ms) ease;pointer-events:none}
body:not(.admin-theme) :is(.site-header,.site-footer) nav :is(a,summary):is(:hover,:focus-visible,[aria-current])::after{right:0}
body:not(.admin-theme) :is(.site-header,.site-footer) .submenu{min-width:max-content;max-width:none}
body:not(.admin-theme) .mobile-nav{overflow:auto;max-width:100vw}
body:not(.admin-theme) .site-header.nav-collapsed .desktop-nav{display:none}
body:not(.admin-theme) .site-header.nav-collapsed .menu-toggle{display:flex;flex-direction:column;gap:6px;border:0;background:none;cursor:pointer;padding:10px;flex:none}
body:not(.admin-theme) .site-header.nav-collapsed .menu-toggle span{width:24px;height:2px;background:var(--design-navText,#171719)}
body:not(.admin-theme) .site-header.nav-collapsed .mobile-nav:not([hidden]){display:flex;flex-direction:column;padding:12px 18px;max-height:70svh;overflow:auto}
body:not(.admin-theme) .site-header.nav-collapsed .mobile-nav .submenu{position:static;box-shadow:none}
@media(prefers-reduced-motion:reduce){body:not(.admin-theme) :is(.site-header,.site-footer) nav :is(a,summary)::after{transition:none}}
body:not(.admin-theme) .site-header.nav-collapsed .header-inner>.brand{min-width:0;flex-shrink:1}
@media(max-width:1250px){body:not(.admin-theme) .header-inner>.brand{min-width:0;flex-shrink:1}}
body:not(.admin-theme) .footer-main nav>:is(a,.nav-group){max-width:100%}
body:not(.admin-theme) .footer-main nav .nav-group>summary{max-width:100%}
body:not(.admin-theme) :is(.site-header,.site-footer) .nav-label{min-width:0;max-width:100%;white-space:nowrap;overflow-x:auto;overflow-y:hidden}
/* One image-and-copy hero layout across public content pages, including QMS. */
body:not(.admin-theme) .subhero{height:auto;min-height:max(550px,70svh);display:grid}
body:not(.admin-theme) .subhero-inner{height:auto;min-width:0;width:calc(100% - 64px);padding-block:clamp(48px,8vw,96px);overflow-wrap:anywhere}
body:not(.admin-theme) .subhero-inner p{max-width:36rem}
@media(max-width:760px){body:not(.admin-theme) .subhero{min-height:max(490px,64svh)}body:not(.admin-theme) .subhero-inner{width:calc(100% - 36px);padding-block:48px}}
/* Every category hero uses the same typography; theme changes only its palette. */
/* Long translated menus remain visible on tablet/desktop instead of disappearing. */
@media(min-width:761px){
 body:not(.admin-theme) .site-header .header-inner{flex-wrap:wrap;row-gap:.5rem;padding-block:.5rem}
 body:not(.admin-theme) .site-header .desktop-nav{display:flex;flex:0 0 auto}
 body:not(.admin-theme) .site-header .menu-toggle{display:none}
 body:not(.admin-theme) .site-header.nav-wrapped .desktop-nav{order:10;width:100%;max-width:100%;justify-content:start;row-gap:0;padding:0}
 body:not(.admin-theme) .site-header .mobile-nav{display:none}
 body:not(.admin-theme) .site-header .ossa-personal{margin-left:auto}
}
@media(max-width:760px){
 body:not(.admin-theme) .site-header .desktop-nav{display:none}
 body:not(.admin-theme) .site-header .menu-toggle{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
 body:not(.admin-theme) .site-header .mobile-nav:not([hidden]){display:flex}
}
