
.fl{--bg:#F6F1E9;--paper:#FBF8F3;--green:#2E3B32;--green2:#1F2A24;--sage:#A9B79F;--sage2:#DDE3D6;--rose:#C98C84;--rose2:#A9625C;--tx:#4A5650;--sub:#7A857E;--line:rgba(46,59,50,.18);
--serif:"Noto Serif TC","Songti TC",serif;--sans:"Noto Sans TC",sans-serif;--en:"Cormorant Garamond","Noto Serif TC",serif;--ease:cubic-bezier(.22,1,.36,1);
font-family:var(--sans);font-size:16px;color:var(--tx);background:var(--bg);letter-spacing:.05em;line-height:1.9;overflow-x:clip}
.fl *{box-sizing:border-box}.fl a{text-decoration:none;color:inherit}.fl img{display:block;max-width:100%}
.fl p,.fl h1,.fl h2,.fl h3,.fl h4,.fl ul,.fl ol,.fl figure,.fl details,.fl blockquote{margin:0}.fl p:empty{display:none !important}
.fl :where(.is-layout-flow,.is-layout-flex)>*{margin-block:0}
body:has(.fl){overflow-x:hidden;background:#F6F1E9}body:has(.fl) [data-vertical-spacing]{padding-top:0 !important;padding-bottom:0 !important}
body:has(.fl) .hero-section,body:has(.fl) .entry-header{display:none !important}
body:has(.fl) #footer,body:has(.fl) .ct-footer,body:has(.fl) #header,body:has(.fl) header.ct-header{display:none !important}
.fl{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw) !important;margin-right:0 !important}.fl>*{margin-block:0 !important}
.fl-w{max-width:1240px;margin-inline:auto !important;padding-inline:clamp(20px,5vw,64px)}
.fl-sec{padding-block:clamp(72px,10vw,150px);position:relative}
html:has(.fl){scroll-behavior:smooth}.fl [id]{scroll-margin-top:76px}
/* 範例聲明＋導覽 */
.fl-top{background:var(--green);color:#E9EEE4;text-align:center;font-size:13px;letter-spacing:.1em;padding:8px 16px;line-height:1.5}
.fl-top b{color:#F1C9C3;font-weight:500}
.fl-nav{position:sticky;top:0;z-index:50;background:rgba(246,241,233,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.fl-nav .in{max-width:1240px;margin-inline:auto;padding:14px clamp(20px,5vw,64px);display:flex;align-items:center;gap:30px}
.fl-logo{font:600 21px/1 var(--serif);letter-spacing:.14em;color:var(--green2)}
.fl-logo small{display:block;margin-top:5px;font:italic 500 12.5px/1 var(--en);letter-spacing:.18em;color:var(--sub)}
.fl .fl-menu{display:flex;gap:28px;list-style:none;padding:0;margin:0 0 0 auto}
.fl-nav .fl-menu a{font-size:14.5px;color:var(--green2);padding:6px 0;border-bottom:1px solid transparent;transition:border-color .3s}
.fl-nav .fl-menu a:hover{border-color:var(--rose)}
/* 按鈕 */
.fl .fl-btn>.wp-block-button__link{border-radius:0;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 30px;border:1px solid var(--green);background:var(--green);color:#F6F1E9;font:500 15px/1 var(--sans);letter-spacing:.14em;cursor:pointer;transition:background .4s var(--ease),color .4s var(--ease),transform .4s var(--ease),border-color .4s}
.fl .fl-btn>.wp-block-button__link:hover{background:var(--rose2);border-color:var(--rose2);transform:translateY(-3px)}
.fl .fl-btn.ghost>.wp-block-button__link{background:transparent;color:var(--green)}.fl .fl-btn.ghost>.wp-block-button__link:hover{background:var(--green);color:#F6F1E9;border-color:var(--green)}
.fl .fl-btn.light>.wp-block-button__link{background:#F6F1E9;color:var(--green);border-color:#F6F1E9}.fl .fl-btn.light>.wp-block-button__link:hover{background:var(--rose);color:#fff;border-color:var(--rose)}
.fl .fl-btn.line>.wp-block-button__link{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}.fl .fl-btn.line>.wp-block-button__link:hover{background:#fff;color:var(--green)}
.fl .fl-btn.sm>.wp-block-button__link{min-height:42px;padding:0 20px;font-size:13.5px}
.fl .fl-btn.off>.wp-block-button__link{opacity:.45;pointer-events:none;transform:none}
.fl .fl-btn>.wp-block-button__link:focus-visible,.fl a:focus-visible,.fl summary:focus-visible,.fl button:focus-visible{outline:2px solid var(--rose2);outline-offset:4px}
/* 標題 */
.fl .fl-en{display:block;margin-bottom:14px;font:italic 500 18px/1 var(--en);letter-spacing:.22em;color:var(--rose2)}
.fl .fl-h2{font:600 clamp(28px,3.6vw,50px)/1.45 var(--serif);letter-spacing:.06em;color:var(--green2);text-wrap:balance}
.fl .fl-lead{margin-top:18px;max-width:34em;font-size:clamp(15.5px,1.2vw,17.5px)}
.fl .fl-head{margin-bottom:clamp(36px,5vw,72px)}
.fl .fl-head.c{text-align:center}.fl .fl-head.c .fl-lead{margin-inline:auto}
/* 主視覺 */
.fl-hero{position:relative;min-height:clamp(560px,88vh,840px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--green2)}
.fl-hero .fl-bg{position:absolute;inset:0;margin:0}.fl-hero .fl-bg img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.fl-hero:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(21,30,25,.82) 0%,rgba(21,30,25,.5) 42%,rgba(21,30,25,.05) 78%),linear-gradient(0deg,rgba(21,30,25,.55),transparent 38%)}
.fl-hero .fl-w{position:relative;z-index:2;width:100%;padding-block:clamp(60px,9vw,120px) clamp(36px,5vw,64px)}
.fl-hero .fl-en{color:#F1C9C3}
.fl-hero h1{font:600 clamp(44px,6.8vw,104px)/1.18 var(--serif);letter-spacing:.06em;color:#fff;text-wrap:balance}
.fl-hero .sub{margin-top:24px;max-width:27em;font-size:clamp(15.5px,1.3vw,18.5px);color:#E7ECE2}
.fl-hero .cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.fl-next a{display:flex;align-items:center;gap:12px;color:#fff}
.fl .fl-next{position:absolute;right:clamp(20px,5vw,64px);bottom:clamp(36px,5vw,64px);z-index:2;display:flex;align-items:center;gap:12px;padding:12px 20px;border:1px solid rgba(255,255,255,.55);background:rgba(21,30,25,.4);backdrop-filter:blur(8px);font-size:14px;letter-spacing:.1em}
.fl-next i{width:9px;height:9px;border-radius:50%;background:#F1C9C3;animation:flPulse 2s infinite}
@keyframes flPulse{0%{box-shadow:0 0 0 0 rgba(241,201,195,.7)}70%{box-shadow:0 0 0 12px rgba(241,201,195,0)}100%{box-shadow:0 0 0 0 rgba(241,201,195,0)}}
/* 關於 */
.fl-about .fl-w{display:grid;grid-template-columns:5fr 6fr;gap:clamp(32px,6vw,100px);align-items:center}
.fl-ph{position:relative}
.fl-ph img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.fl-ph:before{content:"";position:absolute;left:-18px;bottom:-18px;width:62%;height:62%;border:1px solid var(--rose);z-index:-1}
.fl-about p.t{margin-top:20px}
.fl .fl-sign{margin-top:26px;font:italic 500 26px/1 var(--en);color:var(--rose2);letter-spacing:.08em}
.fl-stats{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:clamp(20px,4vw,56px);margin-top:42px;padding-top:30px;border-top:1px solid var(--line)}
.fl-stats b{display:block;font:500 clamp(38px,4.4vw,60px)/1 var(--en);color:var(--green2);letter-spacing:.02em}
.fl-stats b small{font-size:.5em;color:var(--rose2);margin-left:3px}
.fl-stats .l{margin-top:8px;font-size:13.5px;color:var(--sub)}
/* 課程 */
.fl-ws{background:var(--paper)}
.fl-ws .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.6vw,40px)}
.fl-card{display:flex;flex-direction:column}
.fl-card .ph{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--sage2)}
.fl-card .ph figure{height:100%;margin:0}.fl-card .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
@media (hover:hover){.fl-card:hover .ph img{transform:scale(1.06)}}
.fl-card .no{position:absolute;left:18px;top:14px;font:italic 500 28px/1 var(--en);color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.4)}
.fl-card h3{margin-top:22px;font:600 clamp(22px,2vw,27px)/1.4 var(--serif);letter-spacing:.08em;color:var(--green2)}
.fl-card .meta{margin-top:6px;font-size:13.5px;color:var(--sub);letter-spacing:.1em}
.fl-card p.d{margin-top:12px;font-size:15.5px}
.fl-card .inc{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:13.5px;color:var(--sub)}
.fl-card .row{margin-top:auto;padding-top:20px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.fl-card .pr{font:500 28px/1 var(--en);color:var(--green2);letter-spacing:.02em}.fl-card .pr small{font:400 12.5px/1 var(--sans);color:var(--sub);margin-left:6px;letter-spacing:.08em}
/* 場次 */
.fl-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.fl-chips .wp-block-button__link{display:inline-flex;align-items:center;text-decoration:none;border-radius:0;appearance:none;cursor:pointer;min-height:42px;padding:0 20px;border:1px solid var(--line);background:transparent;font:500 14.5px/1 var(--sans);letter-spacing:.1em;color:var(--green2);transition:background .3s,color .3s,border-color .3s}
.fl-chips .wp-block-button__link:hover{border-color:var(--green)}
.fl-chips .is-on>.wp-block-button__link{background:var(--green);border-color:var(--green);color:#F6F1E9}
.fl-list{border-top:1px solid var(--green)}
.fl-row{display:grid;grid-template-columns:130px 1.4fr 1fr auto;gap:clamp(14px,2.4vw,40px);align-items:center;padding:26px 0;border-bottom:1px solid var(--line);transition:background .3s,padding .3s var(--ease)}
.fl-row.is-off{display:none}
@media (hover:hover){.fl-row:hover{background:rgba(201,140,132,.08);padding-inline:14px}}
.fl-row .dt{font:500 44px/1 var(--en);color:var(--green2);letter-spacing:.02em}
.fl-row .dt small{display:block;margin-top:6px;font:400 13px/1 var(--sans);color:var(--sub);letter-spacing:.06em;white-space:nowrap}
.fl-row h3{font:600 20px/1.5 var(--serif);letter-spacing:.08em;color:var(--green2)}
.fl-row .tm{font-size:14px;color:var(--sub)}
.fl-seat{font-size:13.5px;color:var(--sub)}
.fl-seat .bar{display:flex;gap:4px;margin-top:8px}
.fl-seat .bar i{flex:1;max-width:22px;height:5px;background:var(--sage2)}
.fl-seat .bar i.on{background:var(--rose)}
.fl-seat b{color:var(--rose2);font-weight:500}
.fl-row .go{display:flex;align-items:center;gap:20px}
.fl-row .go .pr{font:500 24px/1 var(--en);color:var(--green2)}
.fl .fl-note{margin-top:22px;font-size:13px;color:var(--sub)}
/* 流程 */
.fl-flow{background:var(--green);color:#CBD5C8}
.fl-flow .fl-h2{color:#F6F1E9}.fl-flow .fl-en{color:#F1C9C3}.fl-flow .fl-lead{color:#CBD5C8}
.fl-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,48px)}
.fl-steps>div{padding-top:22px;border-top:1px solid rgba(246,241,233,.4)}
.fl-steps .n{display:block;font:italic 500 48px/1 var(--en);color:#F1C9C3;letter-spacing:.02em}
.fl-steps h3{margin-top:14px;font:600 20px/1.5 var(--serif);letter-spacing:.1em;color:#F6F1E9}
.fl-steps p{margin-top:8px;font-size:14.5px;color:#CBD5C8}
/* 作品牆 */
.fl-gal .masonry{columns:3;column-gap:clamp(14px,2vw,28px)}
.fl-gal figure{break-inside:avoid;margin:0 0 clamp(14px,2vw,28px);position:relative;overflow:hidden}
.fl-gal figure img{width:100%;height:auto;transition:transform 1.2s var(--ease)}
@media (hover:hover){.fl-gal figure:hover img{transform:scale(1.05)}}
.fl-gal figcaption{margin:0;text-align:left;position:absolute;left:0;bottom:0;padding:34px 18px 14px;width:100%;background:linear-gradient(0deg,rgba(21,30,25,.6),transparent);color:#fff;font-size:13.5px;letter-spacing:.12em;opacity:0;transition:opacity .5s}
.fl-gal figure:hover figcaption,.fl-gal figure:focus-within figcaption{opacity:1}
/* 場地 */
.fl-venue{background:var(--paper)}
.fl-venue .fl-w{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,6vw,96px);align-items:center}
.fl-venue .ph img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.fl-info{margin-top:28px;display:grid;gap:0}
.fl-info>div{display:grid;grid-template-columns:84px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px}
.fl-info .k{font-weight:500;color:var(--rose2);letter-spacing:.14em;font-size:13.5px}
/* 回饋 */
.fl-voice .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3.5vw,56px)}
.fl-voice .bq{padding-top:26px;border-top:1px solid var(--green)}
.fl-voice .bq:before{content:"“";display:block;margin-bottom:-8px;font:500 64px/1 var(--en);color:var(--rose)}
.fl-voice .q{display:block;quotes:none;font:500 clamp(17px,1.5vw,20px)/1.9 var(--serif);letter-spacing:.06em;color:var(--green2)}
.fl-voice .cite{margin-top:18px;font-size:13.5px;color:var(--sub);letter-spacing:.1em}
/* FAQ */
.fl-faq{background:var(--paper)}
.fl-faq .fl-w{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,6vw,100px);align-items:start}
.fl-faq details{border-bottom:1px solid var(--line)}.fl-faq details:first-child{border-top:1px solid var(--green)}
.fl-faq summary{cursor:pointer;list-style:none;padding:22px 4px;display:flex;justify-content:space-between;align-items:center;gap:20px;font:600 18px/1.6 var(--serif);letter-spacing:.06em;color:var(--green2)}
.fl-faq summary::-webkit-details-marker{display:none}
.fl-faq summary:after{content:"";flex:none;width:11px;height:11px;border-right:1.5px solid var(--green);border-bottom:1.5px solid var(--green);transform:rotate(45deg) translateY(-3px);transition:transform .4s var(--ease)}
.fl-faq details[open] summary:after{transform:rotate(-135deg) translateY(-3px)}
.fl-faq details p{padding:0 4px 24px;font-size:15.5px;max-width:34em}
/* 報名 */
.fl-join{background:var(--green2);color:#CBD5C8;text-align:center}
.fl-join .fl-h2{color:#F6F1E9;margin-inline:auto}.fl-join .fl-en{color:#F1C9C3}
.fl-jsteps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,3vw,44px);margin:clamp(34px,5vw,60px) auto;max-width:980px;text-align:left}
.fl-jsteps>div{padding:26px 4px 0;border-top:1px solid rgba(246,241,233,.4)}
.fl-jsteps .n{display:block;font:italic 500 40px/1 var(--en);color:#F1C9C3}
.fl-jsteps h3{margin-top:10px;font:600 19px/1.5 var(--serif);color:#F6F1E9;letter-spacing:.1em}
.fl-jsteps p{margin-top:6px;font-size:14.5px;color:#CBD5C8}
.fl-join .tiny{margin-top:18px;font-size:13px;color:#8FA091}
.fl-party{margin:clamp(44px,6vw,76px) auto 0;max-width:980px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:26px 32px;border:1px solid rgba(246,241,233,.35);text-align:left}
.fl-party b{display:block;font:600 20px/1.5 var(--serif);color:#F6F1E9;letter-spacing:.08em}.fl-party span{font-size:14.5px;color:#9FB0A1}
.fl-foot{background:#141C17;color:#8FA091;padding:30px 0;font-size:13.5px}
.fl-foot .in{max-width:1240px;margin-inline:auto;padding-inline:clamp(20px,5vw,64px);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.fl-fab{display:none}
.fl.fl-js .fl-rv:not(.is-in){opacity:0;transform:translateY(30px)}
.fl-rv{transition:opacity 1s var(--ease),transform 1s var(--ease)}
@keyframes flUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.fl-hero .fl-w{animation:flUp 1.1s var(--ease) both}
@media (max-width:1000px){
.fl-about .fl-w,.fl-venue .fl-w,.fl-faq .fl-w{grid-template-columns:1fr}
.fl-ph{max-width:420px}
.fl-ws .grid,.fl-voice .grid{grid-template-columns:1fr 1fr}
.fl-steps{grid-template-columns:1fr 1fr}
.fl-gal .masonry{columns:2}
.fl-row{grid-template-columns:96px 1fr auto}.fl-row .fl-seat{grid-column:2/3;grid-row:2}.fl-row .go{grid-row:1/3;grid-column:3}
.fl .fl-menu{display:none}.fl-nav .fl-navbtn{margin-left:auto}
.fl-next{display:none}
}
@media (max-width:680px){
.fl-ws .grid,.fl-voice .grid,.fl-steps,.fl-jsteps{grid-template-columns:1fr}
.fl-gal .masonry{columns:2}
.fl-hero{min-height:560px}
.fl-hero .cta .fl-btn{flex:1 1 100%}.fl-hero .cta .fl-btn>.wp-block-button__link{width:100%}
.fl-row{grid-template-columns:96px 1fr;gap:10px 14px;padding:20px 0}
.fl-row .dt{font-size:36px}
.fl-row .go{grid-column:1/3;grid-row:auto;justify-content:space-between}
.fl-row .fl-seat{grid-column:2/3;grid-row:auto}
.fl-stats{gap:18px}
.fl-fab{display:flex;position:fixed;left:16px;right:84px;bottom:14px;z-index:60}.fl-fab .wp-block-buttons,.fl-fab .fl-btn,.fl-fab .fl-btn>.wp-block-button__link{width:100%}
.fl-foot{padding-bottom:84px}
}
@media (prefers-reduced-motion:reduce){.fl.fl-js .fl-rv:not(.is-in){opacity:1;transform:none}.fl-rv{transition:none}.fl-hero .fl-w{animation:none}.fl .fl-btn>.wp-block-button__link,.fl-card .ph img,.fl-gal figure img{transition:none}html:has(.fl){scroll-behavior:auto}.fl-next i{animation:none}}
