/* Hallmark · macrostructure: Split Studio · tone: calm local service · anchor hue: brand green
 * Existing brand fonts and exact brand colours retained. Audience: households in Taipei and New Taipei.
 * Nav: edge-aligned compact service masthead. Footer: compact colophon. Motion: disclosure feedback only.
 * Pre-emit critique: P4 H4 E4 S4 R4 V4. Brand-specified LINE white-on-green contrast exception retained.
 */
*{box-sizing:border-box}html,body{overflow-x:clip}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-body);line-height:1.85;-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure,dl,dd{margin:0}h1,h2,h3{font-family:var(--font-display);font-style:normal;font-weight:700;line-height:1.4;overflow-wrap:anywhere;min-width:0}h2{font-size:var(--text-heading);letter-spacing:-.035em}h3{font-size:1.125rem}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button,a,summary{-webkit-tap-highlight-color:var(--color-clear)}a:focus-visible,summary:focus-visible{outline:3px solid var(--color-accent);outline-offset:5px}.final a:focus-visible{outline-color:var(--color-white)}a:active{opacity:.76}.wrap{width:min(1120px,calc(100% - 40px));margin-inline:auto}.section{padding-block:var(--space-2xl)}.muted,.fineprint{color:var(--color-muted)}.category{font-size:var(--text-small);font-weight:500;letter-spacing:.12em;color:var(--color-accent);margin-bottom:var(--space-sm)}.number,.step-number{font-family:var(--font-number);font-variant-numeric:tabular-nums}.text-link{display:inline-flex;align-items:center;gap:var(--space-sm);font-weight:500;white-space:nowrap;min-height:44px}.text-link span{font-size:1.15em}.text-link:hover{text-decoration:underline;text-underline-offset:6px}.line-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-lg);white-space:nowrap;background:var(--color-line);color:var(--color-white);padding:14px 22px;min-height:56px;border-radius:var(--radius-button);font-weight:700;line-height:1.5}.line-btn:hover{text-decoration:underline;text-underline-offset:5px}.skip{position:fixed;top:12px;left:12px;z-index:100;background:var(--color-surface);padding:var(--space-sm);transform:translateY(-200%)}.skip:focus{transform:none}
/* Compact brand masthead; no duplicate green CTA above the hero action. */
.nav-in{display:flex;gap:var(--space-md);align-items:center;justify-content:space-between;min-height:86px;border-bottom:1px solid var(--color-rule)}.brand{display:block;flex-shrink:0;width:176px}.brand img{width:100%;height:auto}.nav-service{display:none;font-size:var(--text-small);color:var(--color-muted)}.nav nav{display:flex;gap:var(--space-lg);font-size:var(--text-small);font-weight:500}.nav nav a{white-space:nowrap;min-height:44px;display:inline-flex;align-items:center;gap:8px}.nav nav a:hover{text-decoration:underline;text-underline-offset:6px}.nav nav a:not(:last-child){display:none}
.hero{padding-top:var(--space-xl)}.hero-grid{display:grid;gap:var(--space-xl)}h1{font-size:var(--text-display);letter-spacing:-.045em;line-height:1.38;font-weight:900}.intro{margin-top:var(--space-md);max-width:28em;color:var(--color-muted);font-size:var(--text-body)}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);align-items:center;margin-top:var(--space-lg)}.hero-photo{min-width:0;background:var(--color-ink);align-self:center}.hero-photo img{width:100%;height:auto;aspect-ratio:1.42;object-fit:cover;object-position:44% 50%}.hero-photo figcaption{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;color:var(--color-dark-text);padding:16px 20px;font-size:.75rem;letter-spacing:.035em}.facts{margin-top:var(--space-xl);padding-block:var(--space-md);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);border-block:1px solid var(--color-rule)}.facts dt{color:var(--color-muted);font-size:.75rem;margin-bottom:4px}.facts dd{font-size:.875rem;font-weight:500}.facts-index{display:flex;align-items:center}.facts-index a{font-size:.875rem;white-space:nowrap;display:flex;justify-content:space-between;width:100%;padding-block:12px}
.split{display:grid;gap:var(--space-lg)}.section-intro .muted{margin-top:var(--space-md)}.service-main h3{font-size:1.5rem;margin-bottom:var(--space-sm)}.service-main p{max-width:35em;color:var(--color-muted)}.service-main a{margin-block:8px 24px;color:var(--color-accent)}.symptoms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md) var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--color-rule)}.symptoms p{font-size:.875rem;color:var(--color-muted);margin-top:8px}.service-note{font-size:.875rem;color:var(--color-muted);margin-top:var(--space-md)}
.process{background:var(--color-soft)}.steps{list-style:none;margin:var(--space-lg) 0 0;padding:0;display:grid;gap:var(--space-lg)}.step-number{display:block;font-size:1.125rem;color:var(--color-accent);margin-bottom:8px}.steps li{border-top:1px solid var(--color-rule);padding-top:var(--space-sm)}.steps p{font-size:.875rem;color:var(--color-muted);margin-top:var(--space-sm)}.section-top{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.section-top>.muted{font-size:.875rem;max-width:25em}.case-layout{display:grid;gap:var(--space-lg)}.case-main img{width:100%;height:auto}.case-main figcaption{padding-top:var(--space-sm)}.case-main figcaption strong{display:block;font-size:1.125rem;margin-bottom:8px}.case-main figcaption span{font-size:.8125rem;color:var(--color-muted)}.case-side{display:grid;align-content:start;gap:var(--space-lg)}.case-side img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.case-side figcaption{font-size:.8125rem;padding-top:12px;color:var(--color-muted)}.fineprint{font-size:.8125rem;line-height:1.8;margin-top:var(--space-md)}.extra-photo{border-top:1px solid var(--color-rule)}.extra-photo img{aspect-ratio:auto}.extra-photo figure{padding-block:var(--space-sm)}
.pricing{background:var(--color-surface)}.price-head .category{margin-bottom:8px}.version{font-size:.8125rem;color:var(--color-muted)}.price-grid{border-top:2px solid var(--color-ink)}.price-card{padding-block:var(--space-md);border-bottom:1px solid var(--color-rule)}.price-card h3{font-size:1.125rem;margin-bottom:var(--space-sm)}.price-row{display:flex;justify-content:space-between;gap:12px;padding-block:8px;font-size:.875rem;align-items:baseline}.price-row b{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.price-row .rise{color:var(--color-brown)}.price-note{font-size:.75rem;color:var(--color-muted);line-height:1.8;margin-top:8px}.price-terms{background:var(--color-soft);padding:var(--space-md);margin-top:var(--space-lg);font-size:.8125rem}.price-terms p+p{margin-top:12px}
.about-grid{display:grid;gap:var(--space-xl)}.values{margin-top:var(--space-md)}.values>div{display:grid;grid-template-columns:48px minmax(0,1fr);gap:var(--space-sm);padding-block:var(--space-sm);border-bottom:1px solid var(--color-rule)}.values dt{font-weight:700}.values dd{font-size:.875rem;color:var(--color-muted)}.alu{border:1px solid var(--color-rule);padding:var(--space-md);align-self:start}.alu-top{display:grid;grid-template-columns:90px minmax(0,1fr);gap:var(--space-md);align-items:center}.alu-top img{width:100%;height:auto}.alu h3{font-size:1.75rem;margin-bottom:8px}.alu-top .category{margin-bottom:8px;font-size:.75rem}.alu-top p:not(.category){font-size:.875rem;color:var(--color-muted)}.alu .fineprint{font-size:.75rem}.reviews-inner{padding-block:var(--space-md);border-block:1px solid var(--color-rule);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-sm)}.reviews h2{font-size:1.125rem}.reviews a{font-size:.875rem}
.faq-list{border-top:1px solid var(--color-rule)}.faq-list details{border-bottom:1px solid var(--color-rule)}summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);cursor:pointer;min-height:64px;padding-block:var(--space-sm);font-size:.875rem;font-weight:500}summary::-webkit-details-marker{display:none}summary:hover{color:var(--color-accent)}summary span{font-size:1.125rem;flex-shrink:0;transition:transform var(--dur-short) var(--ease-out)}details[open]>summary span{transform:rotate(45deg)}details>p{padding-bottom:var(--space-md);color:var(--color-muted);font-size:.875rem}.final{background:var(--color-ink);color:var(--color-dark-text)}.final .category{color:var(--color-dark-text)}.final h2{font-size:var(--text-display);color:var(--color-white)}.final p:not(.category){margin-top:var(--space-sm);font-size:.875rem}.final .line-btn{margin-top:var(--space-lg)}.final-grid{display:grid;gap:var(--space-xl)}.checklist{list-style:none;padding:0;margin:0}.checklist li{border-bottom:1px solid var(--color-muted);padding:12px 0;display:flex;align-items:center;gap:var(--space-sm);font-size:.9375rem}.checklist li::before{content:'✓';color:var(--color-leaf)}.checklist li span{font-size:.75rem;margin-left:auto}.footer-inner{padding-block:var(--space-lg);display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:center;justify-content:space-between}.footer-inner p{font-size:.75rem;color:var(--color-muted)}.copyright{font-size:.6875rem}.footer-inner .text-link{font-size:.75rem}.float-line{display:none;position:fixed;bottom:max(16px,env(safe-area-inset-bottom));right:20px;z-index:40;background:var(--color-line);color:var(--color-white);border-radius:var(--radius-button);font-size:.875rem;font-weight:700;padding:13px 18px;gap:24px;white-space:nowrap}.float-line.show{display:inline-flex}
@media(min-width:40rem){.wrap{width:min(1120px,calc(100% - 80px))}.nav nav a:not(:last-child){display:inline-flex}.hero{padding-top:var(--space-2xl)}.facts{grid-template-columns:repeat(4,minmax(0,1fr))}.facts>div+div{border-left:1px solid var(--color-rule);padding-left:var(--space-md)}.facts-index{justify-content:flex-end}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.case-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg)}.price-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);column-gap:var(--space-xl);align-items:baseline}.price-card h3{grid-column:1;grid-row:1/4;margin:0}.price-row,.price-note{grid-column:2}.price-row{font-size:1rem}.price-note{font-size:.8125rem}.about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-xl)}.alu-top{grid-template-columns:72px minmax(0,1fr);gap:var(--space-sm)}.final-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:60rem){.nav-in{min-height:104px}.nav-service{display:block;margin-right:auto}.nav nav{gap:36px}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:56px;align-items:center}.hero{padding-top:56px}.hero-photo img{aspect-ratio:1.32}.hero-actions{gap:var(--space-md)}.hero .intro{max-width:25em}.facts{margin-top:56px;padding-block:var(--space-md)}.section{padding-block:var(--space-3xl)}.split{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:var(--space-2xl)}.steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-lg);margin-top:var(--space-xl)}.section-top{flex-direction:row;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-xl)}.case-layout{gap:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr))}.case-side{gap:var(--space-lg)}.price-card{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);padding-block:var(--space-lg)}.price-card h3{font-size:1.25rem}.price-row{padding-block:10px}.price-row b{font-size:1.125rem}.price-terms{max-width:100%;padding:var(--space-lg)}.about-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--space-2xl)}.alu{padding:var(--space-lg)}.alu-top{grid-template-columns:96px minmax(0,1fr);gap:var(--space-md)}.final-grid{gap:var(--space-3xl)}.float-line.show{display:none}}
@media(max-width:359px){.brand{width:152px}.nav nav{font-size:.75rem}.hero-actions{align-items:flex-start;flex-direction:column}.price-row{flex-wrap:wrap}.price-row b{margin-left:auto}.symptoms{gap:var(--space-md)}.alu-top{grid-template-columns:72px minmax(0,1fr);gap:var(--space-sm)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

summary:active{opacity:.76}

/* Selected desktop originals: show every edge, preserve native proportions. */
.hero-photo img,.case-side img{aspect-ratio:auto;object-fit:contain;height:auto}

/* Verified Google review excerpts; snapshot date is shown beside the source. */
.reviews{background:var(--color-surface);padding-block:var(--space-2xl)}
.review-panel{display:grid;gap:var(--space-lg)}
.reviews h2{font-size:var(--text-heading)}
.review-rating{display:flex;align-items:baseline;gap:var(--space-sm);margin-top:var(--space-md)}
.review-score{font-family:var(--font-number);font-size:3.25rem;line-height:1.1;font-weight:500}
.review-stars{color:var(--color-brown);letter-spacing:.12em;font-size:1rem;white-space:nowrap}
.review-count{color:var(--color-muted);font-size:.875rem;margin-top:var(--space-xs)}
.review-captured{color:var(--color-muted);font-size:.75rem;margin-top:var(--space-sm)}
.review-list{border-top:1px solid var(--color-rule)}
.review-entry{padding-block:var(--space-md);border-bottom:1px solid var(--color-rule)}
.review-byline{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);font-size:.875rem}
.review-byline .review-stars{font-size:.75rem}
.review-entry blockquote{margin:var(--space-sm) 0;font-size:1.125rem;line-height:1.8}
.review-entry .review-source{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;font-size:.75rem;color:var(--color-muted);text-decoration:underline;text-underline-offset:4px}
.review-source:hover{color:var(--color-accent)}
@media(min-width:60rem){.reviews{padding-block:var(--space-3xl)}.review-panel{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:var(--space-2xl)}}

/* Service and price rows: machine illustrations reuse the owner's price sheet. */
.machine-list{border-top:2px solid var(--color-ink)}
.machine-row{display:grid;grid-template-columns:88px minmax(0,1fr);column-gap:var(--space-sm);row-gap:4px;padding-block:var(--space-md);border-bottom:1px solid var(--color-rule);align-items:center}
.machine-picture{display:block;width:100%;height:auto;overflow:hidden;grid-column:1;grid-row:1/3;mix-blend-mode:multiply}
.machine-description{grid-column:2;min-width:0}
.machine-description h3{font-size:1rem;line-height:1.5}
.machine-variant{font-size:.8125rem;color:var(--color-muted);margin-top:4px}
.machine-price{grid-column:2;font-family:var(--font-number);font-size:1.25rem;font-weight:600;color:var(--color-accent);white-space:nowrap;line-height:1.5}
.machine-note{grid-column:1/-1;font-size:.75rem;color:var(--color-muted);margin-top:var(--space-xs);line-height:1.8}
@media(min-width:40rem){.machine-row{grid-template-columns:144px minmax(0,1fr) auto;column-gap:var(--space-md)}.machine-picture{grid-row:1}.machine-price{grid-column:3;grid-row:1;font-size:1.5rem;text-align:right}.machine-description h3{font-size:1.125rem}.machine-note{grid-column:2/-1;max-width:48em}}
@media(min-width:60rem){.machine-row{grid-template-columns:176px minmax(0,1fr) auto;column-gap:var(--space-xl)}.machine-description h3{font-size:1.25rem}.machine-price{font-size:1.75rem}.machine-variant{font-size:.875rem}.machine-note{font-size:.8125rem}}

/* Same-angle before/after pairs from 2026-09-14 photos: labels only, no captions (owner request). */
.case-pairs{display:grid;gap:var(--space-lg);margin-top:var(--space-xl)}
.case-pair-imgs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--color-rule)}
.case-pair-imgs div{position:relative;background:var(--color-surface)}
.case-pair-imgs img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.case-tag{position:absolute;left:8px;top:8px;background:var(--color-ink);color:var(--color-white);font-size:.75rem;font-weight:700;line-height:1.6;padding:2px 8px;border-radius:4px}
.case-tag-after{background:var(--color-accent)}
@media(min-width:40rem){.case-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Games: always visible, each game is one obvious tap target (owner request 2026-09-15). Not LINE green. */
.games{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-rule);display:grid;gap:var(--space-xs)}
.games-label{font-size:.75rem;font-weight:700;letter-spacing:.12em;color:var(--color-accent)}
.game-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:64px;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-rule);border-radius:var(--radius-button)}
.game-card:hover{border-color:var(--color-accent)}
.game-text{display:grid;gap:2px;min-width:0}
.game-text strong{font-size:1rem;line-height:1.5}
.game-text span{font-size:.8125rem;color:var(--color-muted);line-height:1.6}
.game-play{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;background:var(--color-accent);color:var(--color-white);font-size:.8125rem;font-weight:700;line-height:1.5;padding:8px 12px;border-radius:999px;white-space:nowrap}
.games .fineprint{margin-top:4px;font-size:.75rem}
