/* 2026-09-07: 文字を縮めず、写真と操作の配置で読みやすさを保つ。 */
body{font-size:18px;line-height:1.8}
header{height:auto;min-height:104px;gap:24px;flex-wrap:wrap;padding-block:18px}
nav{font-size:16px;gap:28px;flex-wrap:wrap}
nav a{font-size:16px;line-height:1.5}
.eyebrow,.intro .eyebrow,.controls>.eyebrow,.study{font-size:14px;line-height:1.7;letter-spacing:1.4px;color:#67594c}
.intro{max-width:1160px;margin:48px auto 42px;padding-inline:28px;gap:0 36px}
.intro h1{font-size:clamp(36px,4.3vw,60px);line-height:1.45;letter-spacing:-1px;margin:18px 0}
.intro h1 span,.intro>p:not(.eyebrow) span{display:inline-block}
.intro>p:not(.eyebrow){font-size:18px;line-height:1.95;margin:0 0 16px}
.study{margin-top:12px}
.tryon{grid-template-columns:minmax(0,1fr) 410px;max-width:1160px;margin-inline:auto}
.portrait-area{position:sticky;top:20px;min-width:0}
.portrait-top{position:static;padding:16px 20px;background:#e8e1d6;gap:12px;flex-wrap:wrap}
.portrait-top>span{font-size:14px;letter-spacing:1px}
.portrait-top button{font-size:16px;min-height:44px;padding:9px 16px;background:#f8f5ee}
.portrait-caption{font-size:14px;gap:10px;flex-wrap:wrap;line-height:1.7;color:#4b4036}
.portrait-caption span:last-child{letter-spacing:.4px}
.photo-loading{font-size:16px;line-height:1.8;padding:0 20px}
.mirror-status{padding:14px 20px;margin:0;background:#f0e8dc;color:#573d2b;font-size:16px;line-height:1.8}
.mirror-status:empty{display:none}
.controls{padding:26px 0 0 34px;min-width:0}
.controls>.eyebrow{margin-bottom:15px}
.controls h2{font-size:36px;line-height:1.4}
.frame-copy{font-size:18px;line-height:1.8;color:#675443;margin:10px 0 22px}
.frame-types{gap:9px}
.frame-types button{font-size:16px;letter-spacing:0;line-height:1.5;padding:10px 4px}
.frame-types svg{height:42px}
.colors{gap:12px;flex-wrap:wrap;margin:22px 0}
.colors>span{font-size:16px;letter-spacing:.5px;flex:1 1 100%;line-height:1.6}
.colors button{width:44px;height:44px;min-height:44px;border-width:6px}
.price{font-size:30px;display:flex;align-items:baseline;gap:8px 12px;flex-wrap:wrap;line-height:1.5}
.price small{font-size:16px;line-height:1.6;color:#67594c;margin-left:0}
.steps{align-items:baseline;padding-top:24px;margin-top:24px}
.steps>span{font-size:20px;color:#805c3d}
.steps h3{font-size:18px;line-height:1.7;font-weight:600}
.upload,.calibrate,.primary,.text-button,.product-story button,.stage-actions button{font-size:16px;line-height:1.65;min-height:48px;height:auto;white-space:normal}
.upload{padding:15px 12px;background:#fffaf2}
.upload:focus-within{outline:3px solid #ad7c54;outline-offset:3px}
.small,.disclaimer{font-size:16px;line-height:1.9;color:#675443}
.fit-status{font-size:16px;line-height:1.8;color:#68472f;min-height:58px}
.sliders{margin:18px 0 24px}
.sliders label{grid-template-columns:58px minmax(0,1fr) 50px;font-size:16px;min-height:44px;gap:10px;margin:10px 0}
.sliders output{font-size:16px;line-height:1.5}
.sliders input{min-width:0;height:36px}
.text-button{margin-top:10px;padding:12px 5px}
.disclaimer{padding-top:18px;margin-top:24px}
.collection{gap:5vw;padding-top:56px}
.product-stage{height:460px}
.stage-label{font-size:14px;letter-spacing:1px;top:16px;left:18px;right:18px}
.stage-actions{max-width:calc(100% - 32px);right:16px;bottom:16px}
.stage-actions button{padding:10px 20px}
.product-story h2{font-size:40px;margin:18px 0}
.product-story>p:not(.eyebrow){font-size:18px;line-height:1.95}
.product-story dl{font-size:16px;line-height:1.8}
.product-story dl>div{align-items:baseline;flex-wrap:wrap;gap:4px 14px;padding:14px 0}
.product-story dt{font-weight:600}
.product-story dd{overflow-wrap:anywhere}
footer{font-size:14px;letter-spacing:.5px;gap:22px;align-items:baseline;flex-wrap:wrap;line-height:1.8}
footer a{font-size:16px;min-height:44px}
@media(max-width:1240px){.tryon{margin-inline:5vw;grid-template-columns:minmax(0,1fr) 390px}.controls{padding-left:28px}}
@media(max-width:900px){.intro{display:block;margin:32px 5vw;padding:0}.intro>p:not(.eyebrow){margin:18px 0}.tryon{grid-template-columns:minmax(0,1fr) 350px}.controls{padding-left:22px}.collection{grid-template-columns:1fr 1fr;gap:24px}.product-stage{height:360px}}
@media(max-width:760px){
 body{font-size:16px}header{margin-inline:5vw;gap:12px;padding-block:18px;min-height:0}.logo{font-size:27px}
 nav{width:100%;justify-content:space-between;gap:8px 14px}nav>a:nth-child(2){display:block}nav a{font-size:16px;padding:8px 0}
 .intro h1{font-size:clamp(34px,7vw,48px);letter-spacing:-1px}.intro>p:not(.eyebrow){font-size:16px}.study{font-size:14px}
 .tryon{display:flex;flex-direction:column;margin-bottom:48px}.portrait-area{position:relative;top:auto}
 .portrait-top{padding:12px 14px;gap:8px}.portrait-top button{font-size:16px}.portrait-top>span{font-size:14px}
 .portrait-caption{font-size:14px;padding:12px 14px}.mirror-status{padding:12px 14px}.portrait-caption span:last-child{display:none}
 .controls{padding:30px 0 0}.controls h2{font-size:34px}.frame-copy{font-size:16px}.frame-types button{font-size:16px;padding:10px 4px}
 .steps h3{font-size:18px}.sliders label{font-size:16px}.small,.disclaimer,.text-button{font-size:16px}
 .collection{grid-template-columns:1fr;padding-top:32px;gap:28px}.product-stage{height:340px}.product-story{padding:0}
 .product-story h2{font-size:34px}.product-story>p:not(.eyebrow){font-size:16px}.product-story dl{font-size:16px}
 footer{font-size:14px;gap:18px;padding-block:25px}footer span{overflow-wrap:anywhere}
}
@media(max-width:360px){nav{justify-content:flex-start;gap:4px 20px}.portrait-top>span{flex-basis:100%}.stage-label{letter-spacing:0}.stage-actions button{padding-inline:16px}}
@media(max-height:750px){.portrait-area{position:relative;top:auto}}
