/* Jill Chu 新富利 — 打版紙方格 + 海邊工廠深海藍 */
:root{
  --bg:#fbfbf8; --paper:#f1f3f2; --ink:#1d2a36; --muted:#5d6872; --line:#d6dcdf;
  --sea:#24506a; --sea-dark:#1b3d52; --chalk:#b7412e; --on-sea:#f4f6f6; --grid:rgba(36,80,106,.07);
  --f-display:"Noto Serif TC","Songti TC","PMingLiU",serif;
  --f-body:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  --f-latin:"Cormorant Garamond",Georgia,serif;
  --gut:max(16px,4vw);
  --head-bg:rgba(251,251,248,.96); --box-bg:rgba(251,251,248,.9);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.8}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--f-display);line-height:1.35;margin:0;text-wrap:balance;font-weight:700}
p{margin:0}
:focus-visible{outline:2px solid var(--chalk);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:8px 14px;z-index:100}
.skip:focus{left:8px}
.wrap{max-width:calc(1280px + var(--gut) * 2);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
.wrap.narrow{max-width:780px}
.narrow-l{max-width:46rem}
.muted{color:var(--muted)}
.lead{font-size:17px;margin-top:14px}
.eyebrow{font-family:var(--f-latin);font-style:italic;font-size:20px;color:var(--sea);display:block}
.sec-head{display:flex;flex-direction:column;gap:4px;margin-bottom:32px}
.sec-head h2{font-size:clamp(24px,3vw,32px)}
section{padding-block:72px}
@media (max-width:640px){section{padding-block:52px}}
.pattern{background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px}
.btn{display:inline-block;font:inherit;font-weight:500;background:var(--chalk);color:#fff;border:1px solid var(--chalk);padding:10px 26px;text-decoration:none;cursor:pointer;border-radius:2px}
.btn:hover{background:#9c3524}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bg)}
.more{margin-top:24px;font-size:15px}
.more a{color:var(--sea);text-decoration:none;border-bottom:1px solid currentColor}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:8px}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--chalk)}

/* 頁首 */
.site-header{position:sticky;top:0;z-index:50;background:var(--head-bg);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.logo{display:flex;flex-direction:column;line-height:1.1;text-decoration:none}
.logo b{font-family:var(--f-latin);font-size:28px;letter-spacing:.12em;font-weight:500}
.logo span{font-size:11px;letter-spacing:.28em;color:var(--muted);text-transform:uppercase}
.site-nav .menu{list-style:none;display:flex;gap:4px 22px;margin:0;padding:0;font-size:15px}
.site-nav .menu > li{position:relative}
.site-nav a{display:block;text-decoration:none;padding-block:6px;border-bottom:1px solid transparent}
.site-nav a:hover,.site-nav .current-menu-item > a,.site-nav .current-menu-ancestor > a{border-color:var(--chalk)}
.site-nav .sub-menu{list-style:none;margin:0;padding:8px 0;position:absolute;left:-14px;top:100%;min-width:150px;background:var(--bg);border:1px solid var(--line);display:none}
.site-nav .sub-menu a{padding:6px 14px;border:0}
.site-nav .sub-menu a:hover{color:var(--chalk)}
.site-nav li:hover > .sub-menu,.site-nav li:focus-within > .sub-menu{display:block}
.nav-toggle{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;position:relative}
.nav-toggle span:first-child,.nav-toggle span:first-child::before,.nav-toggle span:first-child::after{position:absolute;left:11px;width:22px;height:2px;background:var(--ink);content:"";transition:transform .2s}
.nav-toggle span:first-child{top:21px}
.nav-toggle span:first-child::before{left:0;top:-7px}
.nav-toggle span:first-child::after{left:0;top:7px}
.nav-open .nav-toggle span:first-child{background:transparent}
.nav-open .nav-toggle span:first-child::before{transform:translateY(7px) rotate(45deg)}
.nav-open .nav-toggle span:first-child::after{transform:translateY(-7px) rotate(-45deg)}
@media (max-width:960px){
  .nav-toggle{display:block}
  .site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);max-height:calc(100vh - 72px);overflow:auto}
  .nav-open .site-nav{display:block}
  .site-nav .menu{flex-direction:column;gap:0;padding:8px var(--gut) 20px}
  .site-nav .menu a{padding:12px 0;border-bottom:1px solid var(--line)}
  .site-nav .sub-menu{display:block;position:static;border:0;padding:0 0 0 16px;background:none}
}

/* 首頁大圖 */
.hero{position:relative;background:var(--paper);padding:0}
.hero > img{width:100%;height:480px;object-fit:cover;object-position:70% center}
.hero-copy{position:absolute;inset:0;display:flex;align-items:center}
.hero-copy .wrap{width:100%}
.hero .box{max-width:30rem;background:var(--box-bg);padding:26px 30px;backdrop-filter:blur(4px)}
.hero .box small{font-family:var(--f-latin);font-style:italic;font-size:18px;color:var(--sea)}
.hero h1{font-size:clamp(24px,3vw,36px);margin-block:4px 10px}
.hero .box p{font-size:15px;color:var(--muted)}
.hero-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
@media (max-width:720px){
  .hero > img{height:auto;aspect-ratio:4/3}
  .hero-copy{position:static}
  .hero .box{max-width:none;background:var(--paper);padding:22px var(--gut) 28px;backdrop-filter:none}
  .hero-copy .wrap{padding:0}
}

/* 服務項目 */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc{background:var(--bg);padding:24px;display:flex;gap:16px;align-items:flex-start;min-width:0;text-decoration:none;transition:background .2s}
a.svc:hover{background:var(--paper)}
a.svc:hover h3{color:var(--chalk)}
.svc img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.svc h3{font-size:18px}
.svc .en{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.svc p{font-size:14px;color:var(--muted);margin-top:6px}
@media (max-width:860px){.services{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.services{grid-template-columns:1fr}}

/* 左右分欄 */
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.split > *{min-width:0}
.split-media img{width:100%;border:1px solid var(--line);background:#fff}
@media (max-width:820px){.split{grid-template-columns:1fr;gap:28px}}
.qa{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}
.qa li{padding-left:40px;position:relative;font-size:15px}
.qa li b{position:absolute;left:0;top:-2px;font-family:var(--f-latin);font-size:24px;color:var(--chalk);line-height:1.3}
.callout{margin-top:24px;border-left:3px solid var(--chalk);padding:6px 0 6px 16px;font-size:15px}
.video-block{margin-top:40px;display:grid;gap:12px;max-width:860px}
.yt{position:relative;aspect-ratio:16/9;background:#000;max-width:100%}
.yt button{all:unset;cursor:pointer;display:block;width:100%;height:100%;position:relative}
.yt img,.yt iframe{width:100%;height:100%;object-fit:cover;border:0}
.yt .play{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:rgba(183,65,46,.92)}
.yt .play::after{content:"";position:absolute;left:29px;top:22px;border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent #fff}
.factory-video{width:100%;max-width:860px;margin-bottom:24px;background:#000}

/* 作品 */
.works-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px 16px}
.works-grid.six{grid-template-columns:repeat(6,1fr);gap:12px}
.work-card{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.work-card img,.work-card .ph{width:100%;aspect-ratio:2/3;object-fit:cover;background:var(--paper);display:block;transition:opacity .2s}
.work-card a:hover img{opacity:.85}
.work-card figcaption{display:flex;flex-direction:column;font-size:14px;line-height:1.5}
.work-card figcaption a{text-decoration:none;font-weight:500}
.work-card .meta{font-size:12px;color:var(--muted)}
@media (max-width:960px){.works-grid{grid-template-columns:repeat(3,1fr)}.works-grid.six{grid-template-columns:repeat(3,1fr)}}
@media (max-width:540px){.works-grid,.works-grid.six{grid-template-columns:repeat(2,1fr)}}
.filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.filter a{text-decoration:none;font-size:14px;padding:4px 14px;border:1px solid var(--line);border-radius:999px}
.filter a:hover{border-color:var(--ink)}
.filter a[aria-current]{background:var(--ink);color:#fff;border-color:var(--ink)}
.work-single{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:start}
.work-single > *{min-width:0}
.work-photos{display:grid;gap:12px}
.work-info{position:sticky;top:96px;display:flex;flex-direction:column;gap:16px}
.work-info h1{font-size:clamp(24px,3vw,34px)}
@media (max-width:820px){.work-single{grid-template-columns:1fr}.work-info{position:static}}

/* 活動 */
.event-feature{display:grid;grid-template-columns:340px 1fr;gap:44px;align-items:start}
.event-feature > *{min-width:0}
.event-feature img{width:100%;border:1px solid var(--line)}
.events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 24px}
.event-card{display:flex;flex-direction:column;gap:14px;min-width:0}
.event-card .poster img,.event-card .ph{width:100%;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--line);background:var(--paper);display:block}
.event-card h3{font-size:18px}
.event-card h3 a{text-decoration:none}
.event-card h3 a:hover{color:var(--chalk)}
.status{display:inline-block;font-size:12px;padding:0 10px;border:1px solid var(--muted);color:var(--muted);border-radius:999px;margin-bottom:6px}
.is-upcoming .status{border-color:var(--chalk);color:var(--chalk)}
.event-single{display:grid;grid-template-columns:420px 1fr;gap:48px;align-items:start}
.event-single > *{min-width:0}
.event-single h1{font-size:clamp(24px,3vw,32px);margin-bottom:8px}
.event-single .poster img{width:100%;border:1px solid var(--line)}
.event-single .prose{margin-top:24px}
@media (max-width:900px){.events-grid{grid-template-columns:1fr 1fr}}
@media (max-width:820px){.event-feature,.event-single{grid-template-columns:1fr}}
@media (max-width:540px){.events-grid{grid-template-columns:1fr}}
dl.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 20px;margin:18px 0;font-size:15px}
dl.facts dt{color:var(--muted)}
dl.facts dd{margin:0}
dl.facts.small{font-size:14px;margin:8px 0;gap:2px 14px}

/* 文章 */
.posts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px 28px}
.posts-grid.three{grid-template-columns:repeat(3,1fr)}
.post-card{border-top:2px solid var(--ink);padding-top:16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.post-card .thumb img{width:100%;aspect-ratio:3/2;object-fit:cover;margin-bottom:6px}
.post-card time{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.post-card h3{font-size:19px}
.post-card h3 a{text-decoration:none}
.post-card h3 a:hover{color:var(--chalk)}
.post-card p{font-size:14px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:900px){.posts-grid.three{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.posts-grid,.posts-grid.three{grid-template-columns:1fr}}
.post-cover{margin:0 0 28px}
.tags a{display:inline-block;font-size:13px;color:var(--sea);margin-right:10px;text-decoration:none}
.navigation.pagination{margin-top:40px}
.nav-links{display:flex;gap:8px;flex-wrap:wrap}
.nav-links a,.nav-links span{padding:4px 12px;border:1px solid var(--line);text-decoration:none;font-size:14px}
.nav-links .current{background:var(--ink);color:#fff}

/* 內頁頁首 */
.page-hero{padding-block:56px 44px;border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(28px,4vw,42px);margin-top:4px}
.page-hero .lead{color:var(--muted);max-width:42rem}

/* 文字內容 */
.prose{font-size:16px}
.prose > * + *{margin-top:1em}
.prose h2{font-size:24px;margin-top:1.8em}
.prose h3{font-size:19px;margin-top:1.6em}
.prose a{color:var(--sea);word-break:break-all}
.prose ul,.prose ol{padding-left:1.4em}
.prose img{margin-block:1.2em}
.prose blockquote{margin:1.4em 0;padding-left:16px;border-left:3px solid var(--chalk)}

/* 品牌經歷 */
.timeline{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:0}
.timeline > li{display:grid;grid-template-columns:110px 1fr;gap:24px;padding-block:18px;border-top:1px solid var(--line)}
.timeline .year{font-family:var(--f-latin);font-size:30px;color:var(--sea);line-height:1.1;font-variant-numeric:tabular-nums}
.timeline ul{margin:0;padding-left:1.1em;display:grid;gap:4px;font-size:15px}
@media (max-width:540px){.timeline > li{grid-template-columns:1fr;gap:6px}}
.profile{display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:start}
.profile > *{min-width:0}
.profile h2{font-size:clamp(26px,3vw,34px);margin-bottom:16px}
.profile h2 small{font-family:var(--f-latin);font-weight:500;font-size:.7em;color:var(--muted)}
@media (max-width:820px){.profile{grid-template-columns:1fr}.profile-photo{max-width:320px}}
.sub-title{font-size:20px;margin:48px 0 16px}
.table-wrap{overflow-x:auto}
table.cv{border-collapse:collapse;width:100%;min-width:560px;font-size:14px}
table.cv td{padding:10px 14px 10px 0;border-bottom:1px solid var(--line);vertical-align:top}
table.cv .num{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}

/* 服務流程 */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px 20px}
.steps li{display:flex;flex-direction:column;gap:4px;min-width:0}
.steps img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:10px;border:1px solid var(--line)}
.steps .num{font-family:var(--f-latin);font-size:28px;color:var(--chalk);line-height:1}
.steps .stage{font-size:12px;letter-spacing:.1em;color:var(--muted)}
.steps b{font-weight:500}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}}
.price-list{display:grid;grid-template-columns:1fr 1fr;gap:4px 56px;max-width:900px}
.price{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:10px;padding-block:12px;border-bottom:1px solid var(--line)}
.price .name{font-weight:500}
.price .dots{border-bottom:1px dotted var(--muted);transform:translateY(-4px)}
.price .amt{font-variant-numeric:tabular-nums;font-family:var(--f-display)}
.price .note{grid-column:1/-1;font-size:13px;color:var(--muted)}
@media (max-width:700px){.price-list{grid-template-columns:1fr}}
.checklist{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.checklist li{background:var(--bg);border:1px solid var(--line);padding:20px;min-width:0}
.checklist b{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-size:17px;margin-bottom:8px}
.checklist b span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--sea);color:#fff;font-family:var(--f-latin);font-size:16px;flex:none}
.checklist p{font-size:14px;color:var(--muted)}
@media (max-width:860px){.checklist{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.checklist{grid-template-columns:1fr}}

/* 租賃說明 */
.rent-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:20px}
.rent-steps > li{display:flex;gap:18px;background:var(--bg);border:1px solid var(--line);padding:24px;min-width:0}
.rent-steps .num{font-family:var(--f-latin);font-size:40px;line-height:1;color:var(--chalk);flex:none;width:28px}
.rent-steps h3{font-size:19px;margin-bottom:8px}
.rent-steps .prose{font-size:15px}
.rent-steps .prose ul{padding-left:1.1em}
@media (max-width:760px){.rent-steps{grid-template-columns:1fr}}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}
.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover}
@media (max-width:600px){.photo-grid{grid-template-columns:1fr 1fr}}

/* 團隊、合作 */
.team{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.member{display:flex;gap:20px;align-items:center;min-width:0}
.member img{width:120px;height:120px;object-fit:cover;border-radius:50%;flex:none}
.member h3{font-family:var(--f-latin);font-size:26px;font-weight:500}
.member p{font-size:14px;color:var(--muted)}
@media (max-width:640px){.team{grid-template-columns:1fr}}
.partners{margin-top:40px;font-size:14px;color:var(--muted)}
.partners b{color:var(--ink);font-weight:500}
.partners .logos{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:20px;align-items:center}
.partners .logos img{height:64px;width:auto}

/* 聯絡 */
.contact-band{background:var(--sea);color:var(--on-sea)}
.contact-band .eyebrow{color:var(--on-sea);opacity:.8}
.contact-band h2{font-size:clamp(24px,3vw,32px);margin-top:4px}
.contact-band .grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.contact-band .grid > *{min-width:0}
.contact-band dl.facts dt{color:var(--on-sea);opacity:.7}
.contact-band a{color:var(--on-sea)}
@media (max-width:760px){.contact-band .grid{grid-template-columns:1fr}}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.contact-form label{display:flex;flex-direction:column;font-size:13px;gap:4px}
.contact-form label.full{grid-column:1/-1}
.contact-form input,.contact-form textarea,.contact-form select{font:inherit;font-size:16px;padding:10px 12px;border:1px solid transparent;background:#fff;color:var(--ink);border-radius:2px;width:100%}
.contact-form .req{color:#ffb9a8}
.contact-form .btn{grid-column:1/-1;justify-self:start}
.contact-form .hp{position:absolute;left:-9999px}
.form-msg{grid-column:1/-1;padding:10px 14px;font-size:14px}
.form-msg.ok{background:rgba(255,255,255,.15)}
.form-msg.err{background:#fff;color:var(--chalk)}
@media (max-width:540px){.contact-form{grid-template-columns:1fr}}

/* 頁尾 */
.site-footer{background:var(--sea-dark);color:#cfd8de;font-size:14px}
.site-footer a{color:#fff;text-decoration:none}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr auto;gap:32px;padding-block:44px}
.site-footer .logo b{color:#fff}
.site-footer .logo span{color:#9fb1bd}
.site-footer dl.facts dt{color:#9fb1bd}
.foot-menu,.site-footer .menu,.socials{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.site-footer .menu{grid-template-columns:1fr 1fr}
.copy{border-top:1px solid rgba(255,255,255,.12);padding-block:16px;font-size:12px;color:#9fb1bd}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr}}

/* 燈箱 */
.lightbox{position:fixed;inset:0;background:rgba(10,16,22,.92);display:grid;place-items:center;z-index:200;padding:24px;cursor:zoom-out}
.lightbox img{max-height:92vh;width:auto}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.contact-form .lbl{display:block}

/* 右下角浮動聯絡按鈕 */
.float-contact{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:60;display:flex;flex-direction:column;gap:10px}
.fc{position:relative;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;color:#fff;text-decoration:none;box-shadow:0 4px 14px rgba(29,42,54,.22);transition:transform .15s}
.fc:hover{transform:translateY(-2px)}
.fc-line{background:#06c755}
.fc-tel{background:var(--chalk)}
.fc-tip{position:absolute;right:62px;top:50%;transform:translateY(-50%);white-space:nowrap;background:var(--ink);color:#fff;font-size:13px;padding:4px 10px;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .15s}
.fc:hover .fc-tip,.fc:focus-visible .fc-tip{opacity:1}
@media (max-width:640px){.fc{width:48px;height:48px}.fc-tip{display:none}}
