/* 襯衫生活 SHIRT'LIFE · 客人版尺寸建議。色彩依品牌 CIS V2：米白、橄欖、墨色、沙色，皮革棕只做小面積提示。
   外部字型不載入（CSP 只允許自家資源），標題用襯線字、內文用無襯線字，各裝置以系統字型呈現。 */
:root{
  --cream:#F6F1E8;--paper:#FFFCF6;--olive:#525B4D;--olive-deep:#3E4639;--ink:#202723;--sand:#D9CFBF;--rust:#A66545;
  --muted:#6C7367;--line:#E7E0D2;--tint:#EFE9DC;
  --serif:"Noto Serif TC","Source Han Serif TC","Songti TC","Noto Serif CJK TC","PMingLiU",Georgia,serif;
  --sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei","Source Han Sans TC",system-ui,sans-serif;
  --latin:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  font-family:var(--sans);color:var(--ink);background:var(--cream);font-synthesis:none;-webkit-text-size-adjust:100%;
}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}
.demo-label{text-align:center;padding:7px 12px;background:var(--sand);color:#5B574D;font-size:11px;letter-spacing:.06em}

/* 版面：手機滿版，電腦置中成一張紙 */
main{max-width:520px;margin:0 auto;background:var(--paper);min-height:100vh;padding:0 0 36px}
main>*:not(header):not(.help):not(.result):not(footer):not(details){margin-left:24px;margin-right:24px}
@media(min-width:600px){main{margin:28px auto;min-height:0;box-shadow:0 22px 70px #191F1B1A}}

/* 品牌頁首：官方橫式 LOGO（含 SHIRT’LIFE 與襯衫生活），保持原比例與留白 */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-bottom:1px solid var(--line)}
.logo{display:block;height:46px;width:auto}
.edition{font:500 11px/1 var(--latin);letter-spacing:.24em;color:var(--olive);white-space:nowrap}

.intro{margin-top:34px;margin-bottom:6px}
.eyebrow{margin:0 0 10px;font-size:12px;letter-spacing:.14em;color:var(--rust)}
h1{margin:0 0 10px;font:500 28px/1.3 var(--serif);letter-spacing:.07em}
h2{margin:0;font:500 17px/1.5 var(--serif);letter-spacing:.04em}
.muted{color:var(--muted);line-height:1.7}
.intro .muted{font-size:14px;margin:0}
.small{font-size:12px;line-height:1.7}

.product{margin-top:24px;margin-bottom:26px;padding:18px;background:var(--cream);border:1px solid var(--line)}
.product>div{min-width:0}
.product .eyebrow{margin-bottom:6px;font-size:11px;letter-spacing:.16em}
#chooseLabel{display:block;margin-top:14px}
#pantsReference{margin-top:20px}

/* 表單 */
label,legend{font-size:13px;font-weight:600;letter-spacing:.04em}
label>span{font-size:12px;color:var(--muted);font-weight:400}
input,select,button{font:inherit}
input[type=number],select{width:100%;margin-top:8px;padding:12px;border:1px solid var(--sand);border-radius:6px;background:var(--paper);color:var(--ink);min-height:48px}
input::placeholder{font-size:13px;color:#A29E92}
input:focus,select:focus,button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--olive);outline-offset:3px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
fieldset{border:0;padding:0;margin:26px 0 8px}
legend{padding:0;margin-bottom:12px}
.fits{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.fits label{position:relative;cursor:pointer}
.fits input{position:absolute;opacity:0;width:1px;height:1px}
.fits label>span{display:block;text-align:center;border:1px solid var(--sand);border-radius:6px;padding:13px 4px;color:var(--olive)}
.fits strong{display:block;font-size:15px;letter-spacing:.08em}
.fits small{display:block;font-size:11px;margin-top:4px;font-weight:400;color:var(--muted)}
.fits input:checked+span{background:var(--olive);border-color:var(--olive);color:var(--paper)}
.fits input:checked+span small{color:#E5E0D2}
.fits input:focus-visible+span{outline:2px solid var(--olive);outline-offset:3px}
details{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
main>details{margin-left:24px;margin-right:24px}
summary{cursor:pointer;font-size:13px;font-weight:600;padding:3px 0;letter-spacing:.03em}
summary span{font-size:11px;color:var(--muted);font-weight:400;margin-left:8px}
.primary{display:flex;justify-content:space-between;align-items:center;width:100%;background:var(--olive);color:var(--paper);border:0;padding:16px 20px;border-radius:6px;font-weight:600;letter-spacing:.1em;margin-top:24px;cursor:pointer;min-height:54px}
.primary:hover{background:var(--olive-deep)}.primary:disabled{opacity:.55;cursor:wait}
.error{font-size:13px;color:#9B482B;background:#FBEFE6;padding:12px;border-radius:6px}

/* 結果：三種鬆感一次看，只留鬆感、尺碼與必要提醒 */
.result{margin:26px 24px 0;background:var(--cream);border:1px solid var(--sand)}
.basis{margin:0;padding:12px 18px;font-size:12px;letter-spacing:.18em;color:var(--olive);border-bottom:1px solid var(--sand);display:flex;align-items:center;gap:9px}
.basis::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--olive)}
.fit-list{list-style:none;margin:0;padding:6px 0}
.fit-row{display:grid;grid-template-columns:72px 1fr;align-items:center;column-gap:14px;padding:13px 18px;border-left:3px solid transparent}
.fit-row.selected{background:var(--tint);border-left-color:var(--olive)}
.fit-name{font-size:14px;font-weight:600;letter-spacing:.08em;color:var(--olive)}
.fit-size{font:500 38px/1.15 var(--serif);letter-spacing:.01em}
.fit-row.off .fit-size{font-size:18px;color:#7A6A52;letter-spacing:.02em}
.fit-hint{grid-column:2;margin-top:2px;font-size:13px;font-weight:500;color:var(--rust);line-height:1.6}
.fit-hint::before{content:"\25B2\00a0";font-size:9px;vertical-align:1px}
.result>#singleResult{padding:20px 18px 6px}
.result-heading{display:flex;align-items:center;gap:16px}
.result-heading strong{font:500 40px/1.15 var(--serif)}
.result-heading span{font-size:12px;color:var(--muted)}
.result>#singleResult p{line-height:1.7;margin:0 0 10px}
.result.pending .result-heading strong{font-size:22px}
#resultNote{margin:0;padding:12px 18px 16px;font-size:12px;line-height:1.7;color:var(--muted);border-top:1px solid var(--line)}

/* LINE 客服 */
.help{margin:18px 24px 0;padding:16px 18px;background:var(--sand);display:flex;align-items:center;justify-content:space-between;gap:14px}
.help strong{display:block;font:500 15px/1.4 var(--serif);letter-spacing:.06em}
.help span{font-size:12px;color:#5B574D}
.line-link{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--olive);color:var(--paper);padding:10px 16px;border-radius:6px;text-decoration:none;font-size:14px;font-weight:600;letter-spacing:.06em;white-space:nowrap}
.line-link small{font-size:11px;font-weight:400;letter-spacing:.04em;opacity:.85}
.line-link:hover{background:var(--olive-deep)}

/* 商品尺寸表 */
.table-scroll{overflow:auto;margin-top:12px}
table{width:100%;min-width:350px;border-collapse:collapse;font-size:12px;text-align:center}
td,th{padding:10px 8px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-weight:500}

/* 頁尾：品牌名稱（LOGO 只在頁首出現一次，避免重複） */
footer{margin:30px 24px 0;border-top:1px solid var(--line);padding-top:20px;text-align:center}
.wordmark{margin:0 0 12px;display:flex;flex-direction:column;align-items:center;gap:6px}
.wordmark span{font:500 17px/1 var(--latin);letter-spacing:.2em;color:var(--olive)}
.wordmark b{font:500 12px/1 var(--serif);letter-spacing:.5em;padding-left:.5em;color:var(--ink)}
.text-button{background:none;border:0;color:var(--olive);font-size:13px;text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:8px}

/* 量測說明 */
.measurement-help{border:0;margin:10px 0 12px;padding:0}
.measurement-help>summary{color:var(--olive);font-size:12px;font-weight:500;text-decoration:underline;text-underline-offset:3px;padding:8px 0}
.measure-guide{margin:16px 0 20px;padding:18px;background:var(--cream);border:1px solid var(--line);border-radius:6px}
.measure-guide figcaption{font-size:13px;font-weight:600;text-align:center;line-height:1.6}
.measure-diagram{display:block;width:100%;max-width:360px;height:auto;margin:8px auto 12px}
.measure-steps{display:grid;gap:13px}
.measure-steps p{margin:0;line-height:1.65;font-size:13px}
.measure-steps strong,.measure-steps span,.measure-steps small{display:block}
.measure-steps strong{margin-bottom:2px}
.measure-steps small{font-size:12px;color:var(--muted)}
.chest-key{color:var(--olive)}.length-key{color:#8A5238}
.measure-caution{margin:16px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:12px;line-height:1.7;color:var(--muted)}

@media(max-width:380px){
  .logo{height:40px}.row{gap:12px}h1{font-size:26px}.fit-row{grid-template-columns:62px 1fr}.fit-size{font-size:34px}
  .help{flex-direction:column;align-items:stretch}.line-link{flex-direction:row;justify-content:center;gap:8px}.measure-guide{padding:14px 10px}
}
@media(prefers-reduced-motion:no-preference){.primary,.line-link,.fits label>span{transition:background .15s}}
