/* Refinement of JUNSHIDA's existing light precision studio. */
:root { --ink:#15181d; --muted:#5e6570; --line:#dde1e6; --blue:#155ae5; --paper:#fff; --photo-ground:#fff; --contact-height:64px; }
html { scroll-padding-top:154px; scrollbar-color:#a7afb9 #f4f5f7; }
::selection { background:#dbe8ff; color:#112d5a; }
input,textarea { caret-color:var(--blue); }
.elevated { background:var(--paper); }
.elevated .masthead { height:80px; background:#fff; border-bottom:1px solid var(--line); }
.elevated .masthead nav { font-size:14px; }
.elevated .identity span { font-size:22px; }
.elevated .language-switch a { min-height:44px; display:flex; align-items:center; }
.elevated .language-switch { border:0; background:transparent; padding:0; }
.elevated .language-switch a[aria-current] { color:var(--blue); border-bottom-color:var(--blue); }
.elevated .contact-link { min-height:48px; }
.elevated .consult-primary { background:var(--blue); color:#fff; gap:22px; border:0; font-size:14px; }
.elevated .consult-primary:hover { background:#1046b7; }
.elevated .home-showcase { min-height:670px; padding-block:38px 38px; column-gap:42px; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
.elevated .showcase-intro h1 { font-size:clamp(56px,5.4vw,78px); font-weight:500; line-height:1.2; letter-spacing:-.035em; }
.elevated .showcase-intro h1 .headline-line:last-child>span { color:var(--blue); }
.elevated .showcase-intro>p { font-size:15px; max-width:38ch; margin-top:24px; }
.hero-next { display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:28px; }
.hero-secondary { font-size:13px; min-height:44px; display:flex; align-items:center; text-underline-offset:6px; }
.hero-secondary:hover { color:var(--blue); text-decoration:underline; }
.elevated .showcase-detail { margin-top:32px; max-width:385px; }
.elevated .showcase-detail h2 { font-size:18px; }
.elevated .showcase-detail p { font-size:13px; max-width:38ch; }
.elevated .showcase-detail [role=tabpanel] { min-height:88px; }
.elevated .inspector-camera { max-width:700px; }
.elevated .inspection-bar { font-size:12px; margin-top:8px; }
.elevated .inspection-tabs button { font-size:13px; min-height:56px; }
.structure-points { position:absolute; inset:0; z-index:2; }
.structure-points[hidden] { display:none; }
.structure-point { position:absolute; min-height:44px; padding:8px 6px; font-size:12px; font-weight:500; color:var(--blue); text-align:left; background:transparent; line-height:1.45; transition:color .2s; }
.structure-point:hover,.structure-point:focus-visible { color:var(--blue); }
.point-1 { left:0; top:84%; }
.point-2 { right:8%; top:0; padding-block:0; line-height:1.2; display:flex; align-items:flex-start; }
.point-3 { right:0; top:69%; }
.point-target { display:none; }
.structure-linework { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.structure-linework path { fill:none; stroke:var(--blue); stroke-width:.16; }
.structure-linework circle { fill:var(--blue); stroke:#fff; stroke-width:.35; }
.structure-linework path { stroke-dasharray:50; stroke-dashoffset:0; animation:trace-structure 900ms var(--ease) both; }
@keyframes trace-structure { from { stroke-dashoffset:50; } to { stroke-dashoffset:0; } }
.elevated .home-range { padding-block:56px; }
.elevated .home-heading { display:flex; align-items:baseline; justify-content:space-between; gap:28px; margin-bottom:32px; }
.elevated .home-heading h2 { font-size:clamp(32px,3.2vw,46px); }
.elevated .home-heading p { font-size:14px; margin:0; }
.elevated .range-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px; }
.elevated .range-image { height:235px; margin-bottom:24px; }
.elevated .range-copy h3 { font-size:23px; }
.elevated .range-copy p { font-size:13px; margin-top:8px; }
.elevated .range-item { border-bottom:1px solid var(--line); padding-bottom:24px; }
.elevated .process-studio { padding-block:52px; }
.elevated .process-studio .making-copy h2 { font-size:clamp(34px,3.5vw,50px); }
.elevated .process-studio .making-copy>p { font-size:15px; max-width:42ch; }
.elevated .process-viewer { background:#f3f5f7; }
.elevated .process-screen { height:360px; }
.elevated .process-screen video { background:#f3f5f7; }
.elevated .inquiry-inner h2 { font-size:clamp(32px,3.5vw,48px); }
.elevated .inquiry-inner p { font-size:14px; }
.elevated .inquiry-direct>a>span { font-size:12px; }
.elevated .inquiry-direct details { font-size:14px; }
.product-chapters { position:sticky; top:80px; z-index:25; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 var(--gutter); background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.chapter-links { display:flex; gap:32px; align-items:center; overflow-x:auto; scrollbar-width:none; min-width:0; }
.chapter-links a { position:relative; min-height:58px; display:flex; align-items:center; font-size:14px; white-space:nowrap; color:var(--muted); }
.chapter-links a[aria-current] { color:var(--blue); }
.chapter-links a[aria-current]::after { content:""; position:absolute; inset:auto 0 -1px; height:2px; background:var(--blue); }
.chapter-inquiry { display:inline-flex; gap:18px; align-items:center; flex-shrink:0; color:var(--blue); min-height:48px; font-size:13px; }
.product-chapters~* h2 { scroll-margin-top:16px; }
.elevated .product-intro { padding-bottom:36px; }
.elevated .product-intro-visual .photo-plate,.elevated .product-intro-visual>.zoomable { background:#fff; }
.elevated .product-intro-visual img { background:#fff; mix-blend-mode:normal; }
.elevated .product-overview { padding-block:56px; }
.elevated .product-section { padding-block:45px; }
.elevated .product-specs { font-variant-numeric:tabular-nums; }
.elevated .product-specs tr:nth-child(odd) { background:#f7f8fa; }
.guide-filters { display:flex; flex-wrap:wrap; gap:8px 25px; border-bottom:1px solid var(--line); margin-bottom:34px; }
.guide-filters button { position:relative; font-size:14px; min-height:48px; padding:8px 0 14px; color:var(--muted); }
.guide-filters button[aria-pressed=true] { color:var(--blue); }
.guide-filters button[aria-pressed=true]::after { content:""; position:absolute; inset:auto 0 -1px; height:2px; background:var(--blue); }
.elevated .library-search { margin-bottom:22px; background:#fff; border-color:var(--line); }
.elevated .guide-card img { mix-blend-mode:normal; background:#fff; }
.elevated .inquiry-heading { padding-block:42px 32px; }
.elevated .inquiry-heading h1 { font-size:clamp(38px,4.3vw,62px); margin-top:24px; line-height:1.3; }
.elevated .inquiry-heading>p { max-width:65ch; font-size:15px; margin-top:20px; }
.elevated .inquiry-layout { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(38px,7vw,100px); align-items:start; padding-bottom:64px; }
.elevated .inquiry-aside { position:sticky; top:110px; }
.elevated .inquiry-aside h2 { font-size:24px; margin-top:18px; }
.elevated .inquiry-aside>p { font-size:14px; line-height:1.85; margin-top:18px; max-width:42ch; }
.direct-recipient { padding-block:20px; border-bottom:1px solid var(--line); }
.direct-recipient span { display:block; font-size:12px; color:var(--muted); margin-bottom:7px; }
.direct-recipient a { display:block; font-size:20px; overflow-wrap:anywhere; }
.inquiry-wechat { display:flex; align-items:center; gap:20px; margin-top:28px; }
.inquiry-wechat img { width:100px; height:100px; flex-shrink:0; }
.inquiry-wechat strong { font-size:14px; font-weight:500; }
.inquiry-wechat p { font-size:12px; line-height:1.7; margin-block:8px; }
.inquiry-wechat a { font-size:12px; color:var(--blue); display:inline-flex; min-height:38px; align-items:center; text-decoration:underline; text-underline-offset:5px; }
.elevated .inquiry-form { padding:0 0 0 36px; background:#fff; border:0; border-left:1px solid var(--line); }
.inquiry-channel { display:flex; gap:32px; border-bottom:1px solid var(--line); }
.inquiry-channel button { position:relative; min-height:62px; padding-block:14px; font-size:18px; color:var(--muted); }
.inquiry-channel button[aria-pressed=true] { color:var(--blue); }
.inquiry-channel button[aria-pressed=true]::after { content:""; position:absolute; inset:auto 0 -1px; height:2px; background:var(--blue); }
.channel-note { font-size:13px; line-height:1.8; margin-block:20px 26px; color:var(--muted); min-height:47px; }
.elevated .inquiry-form legend { font-size:21px; padding-bottom:18px; }
.elevated .inquiry-form fieldset { margin:0; padding:0; }
.elevated .form-field { margin-bottom:18px; }
.elevated .form-field>span { font-size:13px; margin-bottom:9px; }
.elevated .form-field input,.elevated .form-field select,.elevated .form-field textarea { background:#fafbfc; border:1px solid #ccd2db; color:var(--ink); font-size:16px; min-height:50px; padding:12px 14px; }
.elevated .form-field textarea { min-height:125px; }
.elevated .form-field input::placeholder,.elevated .form-field textarea::placeholder { color:#646d79; }
.elevated .form-field [aria-invalid=true] { border-color:#b64636; background:#fff9f7; }
.inquiry-extra { padding-block:6px 18px; margin-bottom:22px; border-bottom:1px solid var(--line); }
.inquiry-extra summary { min-height:44px; font-size:13px; cursor:pointer; }
.inquiry-extra[open] summary { margin-bottom:20px; }
.elevated .file-field small { font-size:12px; color:var(--muted); line-height:1.8; }
.elevated .consent { font-size:13px; min-height:44px; align-items:flex-start; margin-bottom:16px; }
.elevated .consent input { accent-color:var(--blue); width:18px; height:18px; flex-shrink:0; margin-top:2px; }
.draft-note { font-size:12px; line-height:1.8; color:var(--muted); margin-top:16px; }
.form-feedback:empty { display:none; }
.elevated .inquiry-review { padding-top:28px; margin-top:28px; }
.elevated .inquiry-review h2 { font-size:21px; }
.elevated .review-content { background:#f7f8fa; border:0; padding:20px; font-family:inherit; font-size:14px; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.8; }
.elevated .review-actions { display:flex; flex-wrap:wrap; gap:12px; }
.elevated .review-actions [data-copy-inquiry] { background:var(--blue); }
.elevated .review-actions .solid-button { font-size:13px; }
[data-review-feedback] { font-size:13px; margin-top:14px; color:var(--blue); }
.quick-wechat { position:fixed; right:24px; bottom:24px; z-index:80; width:min(360px,calc(100vw - 40px)); padding:24px; background:#fff; box-shadow:0 12px 44px rgb(21 24 29 / 16%); }
.quick-wechat-title { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.quick-wechat h2 { font-size:22px; }
.quick-wechat-title button { min-height:44px; font-size:13px; }
.quick-wechat>img { display:block; width:180px; height:180px; margin:18px auto; }
.quick-wechat>p { font-size:14px; line-height:1.8; }
.quick-wechat>a { display:flex; min-height:44px; align-items:center; font-size:13px; margin-top:8px; color:var(--blue); }
.mobile-contact { display:none; }
@media(min-width:1600px) { .elevated .home-showcase { min-height:735px; } }
@media(max-width:1100px) {
 .elevated .masthead nav { gap:18px; font-size:13px; }
 .elevated .showcase-intro h1 { font-size:55px; }
 .hero-next { gap:12px; }.hero-next .solid-button { font-size:12px; padding-inline:17px; }
 .elevated .home-showcase { column-gap:30px; min-height:610px; }
 .elevated .inspection-tabs button { font-size:12px; }
 .elevated .range-copy h3 { font-size:20px; }
 .elevated .range-image { height:200px; }
 .elevated .inquiry-form { padding-left:28px; }
 .chapter-links { gap:24px; }
}
@media(max-width:800px) {
 html { scroll-padding-top:142px; }
 .elevated .masthead { height:72px; }
 .elevated .home-showcase { grid-template-columns:1fr; min-height:0; padding-block:32px 38px; row-gap:24px; }
 .elevated .showcase-intro h1 { font-size:54px; }
 .elevated .showcase-intro>p { font-size:14px; }
 .elevated .showcase-detail { max-width:none; margin-top:0; }
 .elevated .home-heading { display:block; }
 .elevated .home-heading p { margin-top:13px; }
 .elevated .range-grid { gap:24px; }
 .elevated .range-image { height:170px; }
 .elevated .range-copy h3 { font-size:18px; }
 .elevated .range-copy p { font-size:12px; }
 .elevated .process-studio .making-copy>p { font-size:14px; }
 .elevated .process-screen { height:330px; }
 .product-chapters { top:72px; padding-inline:22px; gap:16px; }
 .chapter-inquiry { display:none; }
 .chapter-links { width:100%; gap:26px; }
 .chapter-links a { min-height:54px; font-size:13px; }
 .elevated .inquiry-layout { grid-template-columns:1fr; gap:34px; }
 .elevated .inquiry-aside { position:static; order:2; }
 .elevated .inquiry-form { order:1; border-left:0; padding:0; }
 .elevated .inquiry-heading { padding-block:32px; }
 .mobile-contact { position:fixed; inset:auto 0 0; display:grid; grid-template-columns:1fr 1fr 1.5fr; gap:0; align-items:stretch; z-index:60; height:calc(var(--contact-height) + env(safe-area-inset-bottom)); padding:8px 14px calc(8px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--line); }
 .mobile-contact>a,.mobile-contact>button { display:flex; align-items:center; justify-content:center; gap:9px; font-size:13px; color:var(--ink); min-height:46px; }
 .mobile-contact>.mobile-inquiry { background:var(--blue); color:#fff; }
 .mobile-contact svg { width:18px; height:18px; }
 .elevated:not(.inquiry-route) { padding-bottom:calc(var(--contact-height) + env(safe-area-inset-bottom)); }
 .quick-wechat { inset:auto 20px calc(84px + env(safe-area-inset-bottom)); margin-inline:auto; width:auto; max-width:360px; }
}
@media(max-width:540px) {
 .elevated .identity span { font-size:14px; }
 .elevated .masthead nav { font-size:18px; }
 .elevated .showcase-intro h1 { font-size:45px; line-height:1.23; }
 .elevated .showcase-intro>p { font-size:13px; }
 .elevated .hero-next { margin-top:20px; gap:20px; }
 .elevated .hero-next .solid-button { min-height:48px; font-size:13px; }
 .elevated .showcase-detail h2 { font-size:17px; }
 .elevated .showcase-detail [role=tabpanel] { min-height:72px; }
 .elevated .showcase-detail p { font-size:13px; max-width:none; }
 .structure-point { font-size:11px; min-height:44px; padding:6px 0; }
 .point-2 { padding-block:0; }
 .elevated .inspection-tabs button { font-size:12px; min-height:50px; }
 .elevated .home-range { padding-block:34px 24px; }
 .elevated .home-heading { margin-bottom:12px; }
 .elevated .home-heading h2 { font-size:31px; }
 .elevated .home-heading p { font-size:13px; }
 .elevated .range-grid { display:block; }
 .elevated .range-item { grid-template-columns:108px minmax(0,1fr) 16px; padding-block:19px; gap:20px; border-top:0; }
 .elevated .range-image { height:116px; margin:0; }
 .elevated .range-copy h3 { font-size:18px; }
 .elevated .range-copy p { font-size:12px; }
 .elevated .process-studio { padding-block:32px; }
 .elevated .process-studio .making-copy h2 { font-size:33px; }
 .elevated .process-studio .making-copy>p { font-size:13px; }
 .elevated .process-screen { height:300px; }
 .elevated .inquiry-inner p { font-size:13px; }
 .elevated .inquiry-direct>a { font-size:14px; }
 .elevated .product-intro-heading h1 { font-size:38px; }
 .elevated .product-intro-visual img { height:280px; }
 .elevated .product-intro-actions .solid-button { min-height:50px; }
 .elevated .inquiry-heading h1 { font-size:35px; }
 .elevated .inquiry-heading>p { font-size:14px; }
 .inquiry-channel button { min-height:54px; font-size:17px; }
 .elevated .inquiry-form legend { font-size:20px; }
 .elevated .inquiry-form fieldset { margin-bottom:0; }
 .elevated .inquiry-aside h2 { font-size:24px; }
 .elevated .inquiry-layout { padding-bottom:40px; }
 .guide-filters { gap:2px 20px; margin-bottom:26px; }
 .guide-filters button { font-size:13px; }
}
@media(max-width:360px) {
 .elevated .showcase-intro h1 { font-size:38px; }
 .elevated .hero-next { gap:14px; }
 .elevated .hero-next .solid-button { font-size:12px; padding-inline:15px; }
 .elevated .range-item { grid-template-columns:84px minmax(0,1fr) 14px; gap:14px; }
 .elevated .range-copy h3 { font-size:16px; }
 .elevated .range-copy p { font-size:11px; }
 .point-1 { max-width:62px; }.point-2 { max-width:90px; }.point-3 { max-width:72px; }
 .elevated .inquiry-heading h1 { font-size:31px; }
 .chapter-links { gap:22px; }
 .mobile-contact>a,.mobile-contact>button { gap:6px; font-size:12px; }
}
@media(prefers-reduced-motion:reduce) {
 .structure-linework path { animation:none; }
 .structure-point { transition:none; }
}
html.audit { scroll-behavior:auto!important; }
.audit .structure-linework path { animation:none; }
