/* Round 25 · C only. Loaded last; every rule is scoped to .c152 so A and the standalone demos are untouched. */

/* ---------- Points · layout 05 長景: a long view held on the left, three plans pass on the right ---------- */
.c152 .points-long{--pl-line:#d7d2c5;--pl-brass:#a07f43;--pl-num:"LEAP Cormorant",Georgia,serif;position:relative;background:var(--paper);color:var(--ink)}
.c152 .points-long .longview{display:grid;grid-template-columns:1fr 1fr;align-items:start}
/* The held picture sits under the fixed header, never beneath its paper gradient. */
.c152 .points-long .hold{position:sticky;top:96px;height:calc(var(--leap-vh,100svh) - 96px - 5vh);min-height:420px;margin:0 0 0 4vw;overflow:hidden;background:#dcd6c8}
.c152 .points-long .hold img{object-position:50% 58%}
.c152 .points-long .pass{padding:16vh 6vw 14vh 7vw}
.c152 .points-long .head{margin-bottom:9vh}
.c152 .points-long .head h2{font:400 clamp(27px,2.6vw,40px)/1.45 var(--serif);letter-spacing:.06em;text-wrap:balance}
.c152 .points-long .sub{margin-top:16px;font-size:16px;line-height:1.7;letter-spacing:.05em;color:var(--ink)}
.c152 .points-long article{min-height:34vh;display:flex;flex-direction:column;justify-content:center;gap:20px;border-top:1px solid var(--pl-line);padding:5vh 0}
.c152 .points-long h3{font:400 28px/1.4 var(--serif);letter-spacing:.08em}
.c152 .points-long .figures{display:grid;gap:12px}
.c152 .points-long .amt{display:inline-flex;align-items:baseline;gap:8px;font:400 50px/1 var(--pl-num);letter-spacing:-.01em;white-space:nowrap}
.c152 .points-long .amt small{font:11px var(--sans);letter-spacing:.06em;color:var(--soft)}
.c152 .points-long .pts{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;font-size:13px;color:var(--soft)}
.c152 .points-long .pts b{font:400 22px/1.2 var(--pl-num);color:var(--ink)}
.c152 .points-long .pts em{font-style:normal;color:var(--pl-brass);padding-left:10px;border-left:1px solid var(--pl-line)}
.c152 .points-long .gifts{display:grid;gap:6px;font-size:15px;line-height:1.6;color:var(--pl-brass)}
.c152 .points-long .gifts li{display:flex;gap:10px;align-items:baseline}
.c152 .points-long .gifts li::before{content:'';flex:0 0 14px;height:1px;background:currentColor;transform:translateY(-4px)}
.c152 .points-long .foot{margin-top:30px;font-size:12px;line-height:1.8;color:#8b8f84}
html[lang|=en] .c152 .points-long h3{font-family:var(--pl-num);font-size:32px;letter-spacing:.01em;line-height:1.15}
html[lang|=en] .c152 .points-long .head h2{font-family:var(--pl-num);letter-spacing:-.005em;line-height:1.15}
html[lang|=en] .c152 .points-long .sub,html[lang|=en] .c152 .points-long .gifts,html[lang|=en] .c152 .points-long .pts,html[lang|=en] .c152 .points-long .foot{font-family:"LEAP Inter",var(--sans);letter-spacing:.01em}
/* Restrained, bidirectional reveals (c25.js adds .reveal-ready; without JS everything is shown). */
@media(prefers-reduced-motion:no-preference){
 .c152 .points-long.reveal-ready [data-pl-reveal]{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease),transform 1s var(--ease)}
 .c152 .points-long.reveal-ready [data-pl-reveal].in{opacity:1;transform:none}
 .c152 .points-long.reveal-ready .hold img{transform:scale(1.04);transition:transform 1.6s var(--ease)}
 .c152 .points-long.reveal-ready .hold.in img{transform:none}
}
@media(max-width:700px){
 .c152 .points-long .longview{grid-template-columns:1fr}
 .c152 .points-long .hold{position:relative;top:0;height:52vh;min-height:300px;margin:76px 0 0}
 .c152 .points-long .pass{padding:6vh 22px 9vh}
 .c152 .points-long .head{margin-bottom:5vh}
 .c152 .points-long .head h2{font-size:26px}
 .c152 .points-long .sub{font-size:16px}
 .c152 .points-long article{min-height:0;padding:4.5vh 0}
 .c152 .points-long h3{font-size:22px}
 html[lang|=en] .c152 .points-long h3{font-size:27px}
 .c152 .points-long .amt{font-size:40px}
 .c152 .points-long .gifts{font-size:15px}
 .c152 .points-long .foot{font-size:13px}
}

/* ---------- Space · 平面描繪 speed (first flat drawing only) ---------- */
.c152 .space-map{padding-bottom:64px}
.c152 .flat-speed{position:absolute;right:4vw;bottom:14px;z-index:6;display:flex;align-items:center;gap:12px;padding:6px 0 6px 14px;background:var(--paper);font:12px/1.4 "LEAP Inter",var(--sans);letter-spacing:.06em;color:var(--soft)}
.c152 .flat-speed label{white-space:nowrap}
.c152 .flat-speed input[type=range]{-webkit-appearance:none;appearance:none;width:132px;height:28px;margin:0;background:transparent;cursor:pointer;--v:32%}
.c152 .flat-speed input[type=range]::-webkit-slider-runnable-track{height:1px;background:linear-gradient(to right,var(--ink) var(--v),#34403640 var(--v))}
.c152 .flat-speed input[type=range]::-moz-range-track{height:1px;background:#34403640}
.c152 .flat-speed input[type=range]::-moz-range-progress{height:1px;background:var(--ink)}
.c152 .flat-speed input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--ink);margin-top:-5.5px;border:0}
.c152 .flat-speed input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--ink);border:0}
.c152 .flat-speed input[type=range]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.c152 .flat-speed output{min-width:3.6em;font-variant-numeric:tabular-nums;color:var(--ink)}
.c152 .flat-speed .flat-replay{min-height:32px;padding:0 2px;color:var(--bronze);letter-spacing:.08em;white-space:nowrap;transition:color .3s}
.c152 .flat-speed .flat-replay:hover{color:var(--ink)}
@media(max-width:700px){
 .c152 .space-map{padding-bottom:16px}
 /* Phones: in flow below the drawing and any room photo, so it never covers either. */
 .c152 .flat-speed{position:static;justify-content:flex-end;flex-wrap:wrap;gap:6px 12px;margin:12px 10px 0;padding:0;font-size:13px}
 .c152 .flat-speed input[type=range]{width:min(150px,36vw);height:44px}
 .c152 .flat-speed .flat-replay{min-height:44px}
}

/* ---------- Space · room card: the photograph keeps one position whatever the caption length ---------- */
@media(min-width:701px){
 /* Anchored from the top instead of centred on its own (text-dependent) height; the caption grows downward. */
 .c152 .plan-layout .room-view,.c152 .plan-layout[data-selected] .room-view{top:max(0px,calc(50% - min(var(--leap-vh,100svh) * .24,22svh) - 56px));transform:none}
}
@media(max-width:700px){
 /* Phones stack the card under the drawing; reserve the longest caption so the page below never shifts. */
 .c152 .room-view .room-description{min-height:calc(1.75em * 3)}
 html[lang|=en] .c152 .room-view h3{min-height:calc(1.55em * 2)}
}

/* ---------- Membership · one common rhythm for CTA, divider and benefit rows ---------- */
@media(min-width:701px){
 .c152 .compare{row-gap:0;align-items:stretch}
 .c152 .compare .plan{display:flex;flex-direction:column}
 /* Round 24 measured 0px between every CTA and the first divider. One shared 14px step now sets
    CTA → divider → benefit row → divider; the link is pinned to the card foot so all three share a baseline. */
 .c152 .compare{--member-step:14px}
 .c152 .compare .plan-copy{padding:20px 0 22px}
 .c152 .compare .plan-rate-link{margin:auto 0 0;padding:6px 0 var(--member-step)}
 .c152 .compare-row{padding:var(--member-step) 0}
}
@media(max-width:700px){
 .c152 .compare .plan-rate-link{margin:0;padding:0 0 12px}
}

/* ---------- Header · 點數 stays reachable on phones (the other section links hide there) ---------- */
@media(max-width:700px){
 .c152 .top nav .points-link{display:inline-flex}
}
