/* FutventureLab local production shell — v6 */
:root{
  --fl-blue:#005DBA; --fl-blue-dark:#00498f; --fl-teal:#0097B2;
  --fl-purple:#4E368E; --fl-green:#89CD8A; --fl-orange:#FF741F;
  --fl-bg:#FAFAF7; --fl-text:#111111; --fl-muted:#4B5563; --fl-border:#E5E7EB;
  --fl-max:1280px;
}
html{scroll-behavior:smooth;background:var(--fl-bg)}
body{margin:0;color:var(--fl-text);background:var(--fl-bg);font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",Arial,sans-serif;overflow-x:hidden}
*,*:before,*:after{box-sizing:border-box}
a{color:inherit;text-decoration:none}
button{font:inherit}
img{max-width:100%;height:auto}
.fl-global-header + main{padding-top:0!important}

/* Readable text variants: keep bright brand hues for surfaces and decoration. */
.text-brand-green{color:#356D38!important}
.text-brand-orange{color:#A13D00!important}
.text-brand-teal{color:#006978!important}

/* Keyboard users need a visible focus ring on every interactive control. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid #005DBA!important;
  outline-offset:3px!important;
}

/* Skip navigation appears only when reached by keyboard. */
.fl-skip-link{position:fixed;left:12px;top:-64px;z-index:2000;padding:10px 16px;border-radius:0 0 10px 10px;background:#005DBA;color:#fff;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.fl-skip-link:focus{top:0}
#main-content{scroll-margin-top:110px}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Header */
.fl-global-header{position:sticky;top:0;z-index:1000;width:100%;background:rgba(255,255,255,.98);border-bottom:1px solid #ECEDEA;backdrop-filter:saturate(140%) blur(12px)}
.fl-header-inner{max-width:var(--fl-max);min-height:90px;margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:28px}
.fl-brand{display:inline-flex;align-items:center;flex:0 0 auto;min-width:190px}
.fl-brand-logo{display:block;width:190px!important;max-width:190px!important;height:auto!important;max-height:64px!important;object-fit:contain;object-position:left center}
.fl-brand-fallback{display:none;font-weight:800;font-size:18px;white-space:nowrap}
.fl-logo-failed .fl-brand-fallback{display:inline-flex}
.fl-desktop-nav{margin-left:auto;display:flex;align-items:center;gap:24px;min-width:0}
.fl-nav-link,.fl-nav-button{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:8px 0;font-size:15px;font-weight:650;white-space:nowrap;color:#1B1D1F;transition:color .18s ease}
.fl-nav-link:hover,.fl-nav-button:hover{color:var(--fl-blue)}
.fl-nav-group{position:relative;display:flex;align-items:center}
.fl-chevron{width:8px;height:8px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .18s ease}
.fl-nav-group:hover .fl-chevron,.fl-nav-group:focus-within .fl-chevron{transform:rotate(225deg) translate(-2px,-1px)}
.fl-dropdown{position:absolute;left:-18px;top:calc(100% + 8px);min-width:260px;padding:10px;background:#fff;border:1px solid #E8EAEC;border-radius:14px;box-shadow:0 16px 38px rgba(17,17,17,.12);opacity:0;visibility:hidden;transform:translateY(-5px);transition:.16s ease;z-index:1100}
.fl-nav-group:hover .fl-dropdown,.fl-nav-group:focus-within .fl-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.fl-dropdown a{display:block;padding:11px 12px;border-radius:9px;font-size:14px;line-height:1.45;color:#222}
.fl-dropdown a:hover{background:#F3F7FB;color:var(--fl-blue)}
.fl-header-cta{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:46px;padding:0 22px;border-radius:999px;background:var(--fl-blue);color:#fff;font-size:14px;font-weight:700;transition:background .18s ease,transform .18s ease}
.fl-header-cta:hover{background:var(--fl-blue-dark);transform:translateY(-1px)}
.fl-mobile-toggle{display:none;width:46px;height:46px;margin-left:auto;border:0;background:transparent;border-radius:12px;position:relative;cursor:pointer}
.fl-mobile-toggle:before,.fl-mobile-toggle:after,.fl-mobile-toggle span{content:"";position:absolute;left:11px;right:11px;height:2px;background:#111;border-radius:2px;transition:.2s ease}
.fl-mobile-toggle:before{top:14px}.fl-mobile-toggle span{top:22px}.fl-mobile-toggle:after{top:30px}
.fl-mobile-toggle[aria-expanded="true"]:before{top:22px;transform:rotate(45deg)}
.fl-mobile-toggle[aria-expanded="true"] span{opacity:0}
.fl-mobile-toggle[aria-expanded="true"]:after{top:22px;transform:rotate(-45deg)}
.fl-mobile-menu{display:none;background:#fff;border-top:1px solid #ECEDEA;padding:10px 20px 22px;box-shadow:0 18px 34px rgba(17,17,17,.08)}
.fl-mobile-menu.is-open{display:block}
.fl-mobile-menu>a,.fl-mobile-menu summary{display:flex;align-items:center;min-height:48px;padding:7px 4px;font-size:16px;font-weight:650;cursor:pointer;list-style:none}
.fl-mobile-menu details>a{display:block;padding:10px 12px 10px 20px;font-size:14px;color:#3F444A;border-left:2px solid #EDF0F2}
.fl-mobile-menu details>a:hover{color:var(--fl-blue)}
.fl-mobile-cta{justify-content:center!important;margin-top:12px!important;padding:0 18px!important;border-radius:999px!important;background:var(--fl-blue)!important;color:#fff!important}

/* Footer */
.fl-global-footer{background:#F0F5F8;border-top:1px solid #E2E8EC;color:#111}
.fl-footer-inner{max-width:var(--fl-max);margin:0 auto;padding:72px 32px 24px}
.fl-footer-grid{display:grid;grid-template-columns:1.35fr .9fr 1.2fr;gap:56px;align-items:start}
.fl-footer-logo{display:block;width:250px!important;max-width:250px!important;max-height:82px!important;object-fit:contain;object-position:left center;margin-bottom:22px}
.fl-footer-logo-fallback{display:none;font-size:20px;font-weight:800;margin-bottom:18px}.fl-logo-failed .fl-footer-logo-fallback{display:block}
.fl-footer-copy{margin:0;color:#4B5563;font-size:15px;line-height:1.8}
.fl-footer-title{margin:0 0 18px;font-size:17px!important;line-height:1.3!important;font-weight:750!important;color:#111}
.fl-footer-links{display:flex;flex-direction:column;gap:11px}.fl-footer-links a{font-size:14px;color:#4B5563}.fl-footer-links a:hover{color:var(--fl-blue)}
.fl-contact-list{display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:1.65;color:#4B5563}.fl-contact-list a{color:#1E5C92;font-weight:650}
.fl-footer-bottom{margin-top:52px;padding-top:22px;border-top:1px solid #DCE3E8;color:#6B7280;font-size:13px}

/* Large section typography */
.global-section-heading{font-size:clamp(2.25rem,4.2vw,3.5rem)!important;line-height:1.12!important;letter-spacing:-.03em!important;font-weight:750!important;text-wrap:balance;margin-bottom:0!important}
.global-section-heading+p,.global-section-heading+.section-intro{margin-top:16px!important}

/* Blueprint compliance shells */
.fl-gap-shell{border:1px dashed #D5D7DA;background:#FFFFFF;border-radius:20px;padding:32px;min-height:180px;display:flex;align-items:center;justify-content:center;text-align:center;color:#6B7280}
.fl-visual-shell{border:1px solid rgba(78,54,142,.14);background:linear-gradient(135deg,#E5E2EA 0%,#ECF5EA 52%,#FAFAF7 100%);border-radius:24px;min-height:320px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.fl-visual-shell:before{content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(78,54,142,.16);border-radius:50%;top:-60px;right:-40px}.fl-visual-shell:after{content:"";position:absolute;width:120px;height:120px;background:#DCEEEF;border-radius:28px;bottom:-38px;left:-24px;transform:rotate(18deg)}
.fl-visual-shell-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:300px}.fl-visual-shell-mark{width:64px;height:64px;border-radius:20px;background:#FFFFFF;display:flex;align-items:center;justify-content:center;color:#4E368E;font-size:28px;font-weight:700;border:1px solid rgba(78,54,142,.12)}.fl-visual-shell-label{font-size:14px;line-height:1.6;color:#4B5563}

/* Image failure fallback */
.fl-image-failed{position:relative;overflow:hidden;background:linear-gradient(135deg,#F2F4F5,#E8EEF1)!important}.fl-image-failed>img{visibility:hidden}.fl-image-failed:after{content:"圖片暫未能載入";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#6B7280;font-size:13px;font-weight:650;z-index:3}

@media(max-width:1100px){
  .fl-header-inner{min-height:80px;padding:0 24px}.fl-brand{min-width:165px}.fl-brand-logo{width:165px!important;max-width:165px!important}.fl-desktop-nav,.fl-header-cta{display:none}.fl-mobile-toggle{display:block}.fl-footer-logo{width:230px!important;max-width:230px!important}
}
@media(max-width:767px){
  .fl-header-inner{min-height:74px;padding:0 18px}.fl-brand{min-width:148px}.fl-brand-logo{width:148px!important;max-width:148px!important;max-height:52px!important}
  .fl-footer-inner{padding:54px 20px 22px}.fl-footer-grid{grid-template-columns:1fr;gap:34px}.fl-footer-logo{width:210px!important;max-width:210px!important}.fl-footer-bottom{margin-top:38px}
  .global-section-heading{font-size:clamp(2rem,9.8vw,2.625rem)!important;line-height:1.14!important}
}
