:root,[data-theme='light']{
  --font-display:'Cabinet Grotesk','Pretendard','Apple SD Gothic Neo',sans-serif;
  --font-body:'General Sans','Pretendard','Apple SD Gothic Neo',sans-serif;
  --text-xs:clamp(.75rem,.72rem + .14vw,.875rem);
  --text-sm:clamp(.875rem,.83rem + .18vw,1rem);
  --text-base:clamp(1rem,.96rem + .18vw,1.125rem);
  --text-lg:clamp(1.125rem,1.02rem + .52vw,1.5rem);
  --text-xl:clamp(1.65rem,1.3rem + 1.2vw,2.5rem);
  --text-2xl:clamp(2.15rem,1.5rem + 2.5vw,4rem);
  --text-hero:clamp(2.65rem,1.4rem + 4.8vw,6.5rem);
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
  --radius-sm:.25rem;--radius-md:.5rem;--radius-lg:1rem;--radius-xl:1.5rem;
  --color-bg:oklch(98.5% .006 210);--color-surface:oklch(100% 0 0);--color-surface-2:oklch(96.5% .012 210);--color-surface-offset:oklch(93.5% .016 210);--color-border:oklch(82% .024 220);
  --color-text:oklch(24% .04 235);--color-text-muted:oklch(48% .025 230);--color-text-faint:oklch(63% .018 225);
  --color-ink:oklch(18% .055 238);--color-deep:oklch(22% .065 238);--color-navy:oklch(31% .075 235);--color-accent:oklch(83% .11 190);--color-accent-strong:oklch(53% .105 192);--color-white:oklch(99% .004 210);--logo-core:var(--color-accent);
  --shadow-soft:0 1px 2px oklch(18% .03 235/.05),0 18px 48px oklch(18% .03 235/.08);
  --transition:220ms cubic-bezier(.16,1,.3,1);--shell:1280px;
}
[data-theme='dark']{
  --color-bg:oklch(15.5% .027 235);--color-surface:oklch(19% .03 235);--color-surface-2:oklch(22.5% .032 232);--color-surface-offset:oklch(26% .03 230);--color-border:oklch(35% .026 225);
  --color-text:oklch(94% .008 210);--color-text-muted:oklch(73% .018 215);--color-text-faint:oklch(58% .02 220);--color-ink:oklch(12% .03 238);--color-deep:oklch(18% .045 238);--color-navy:oklch(26% .06 235);--color-accent:oklch(78% .105 190);--color-accent-strong:oklch(72% .11 190);--color-white:oklch(98% .005 210);--logo-core:var(--color-bg);--shadow-soft:0 1px 2px oklch(0 0 0/.28),0 22px 54px oklch(0 0 0/.3)
}
@media(prefers-color-scheme:dark){:root:not([data-theme]){--color-bg:oklch(15.5% .027 235);--color-surface:oklch(19% .03 235);--color-surface-2:oklch(22.5% .032 232);--color-surface-offset:oklch(26% .03 230);--color-border:oklch(35% .026 225);--color-text:oklch(94% .008 210);--color-text-muted:oklch(73% .018 215)}}
body{transition:background-color var(--transition),color var(--transition)}
.shell{width:min(100% - clamp(2.5rem,6vw,8rem),var(--shell));margin-inline:auto}
.section{padding-block:clamp(var(--space-20),9vw,var(--space-32))}
h1,h2{font-family:var(--font-display);font-weight:500;letter-spacing:-.045em}
h3,strong,.brand-word{font-family:var(--font-display)}
.overline{font-size:var(--text-xs);font-weight:700;letter-spacing:.16em;color:var(--color-accent-strong)}
.overline.light{color:var(--color-accent)}
.text-link{display:inline-flex;align-items:center;gap:var(--space-3);min-height:44px;font-size:var(--text-sm);font-weight:700;border-bottom:1px solid currentColor}
.text-link:hover{color:var(--color-accent-strong)}
.text-link.light{color:var(--color-white)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-8);min-height:3.5rem;padding:var(--space-4) var(--space-6);font-size:var(--text-sm);font-weight:700;border:1px solid transparent}
.button svg{width:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;transition:transform var(--transition)}
.button:hover svg{transform:translateX(var(--space-1))}
.button-primary{color:var(--color-ink);background:var(--color-accent)}
.button-primary:hover{background:var(--color-white)}
.button-outline-light{color:var(--color-white);border-color:oklch(100% 0 0/.45)}
.button-outline-light:hover{background:var(--color-white);color:var(--color-ink)}
.icon-button{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:1px solid color-mix(in oklab,var(--color-text) 15%,transparent)}
.icon-button svg{width:1.2rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.icon-button:hover{background:var(--color-surface-2)}

.site-header{position:fixed;z-index:100;top:0;left:0;width:100%;color:var(--color-white);border-bottom:1px solid oklch(100% 0 0/.17);transition:background var(--transition),color var(--transition),transform var(--transition),box-shadow var(--transition)}
.site-header.is-scrolled{color:var(--color-text);background:color-mix(in oklab,var(--color-bg) 92%,transparent);border-color:color-mix(in oklab,var(--color-text) 13%,transparent);backdrop-filter:blur(18px);box-shadow:0 8px 30px oklch(10% .03 235/.06)}
.header-inner{height:5rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-8)}
.brand{display:inline-flex;align-items:center;gap:var(--space-3);min-height:44px;color:inherit}
.brand-mark{width:2.35rem;color:var(--color-accent);fill:none;overflow:visible}
.brand-word{font-size:var(--text-lg);font-weight:800;letter-spacing:-.045em}
.brand-place{font-size:.7rem;letter-spacing:.17em;opacity:.62;padding-left:var(--space-2);border-left:1px solid currentColor}
.desktop-nav{display:flex;align-items:center;gap:clamp(var(--space-4),2vw,var(--space-8));margin-left:auto}
.desktop-nav a{position:relative;min-height:44px;display:flex;align-items:center;font-size:var(--text-sm);font-weight:600;color:inherit}
.desktop-nav a::after{content:'';position:absolute;left:0;right:0;bottom:.35rem;height:1px;background:var(--color-accent);transform:scaleX(0);transform-origin:right;transition:transform var(--transition)}
.desktop-nav a:hover::after{transform:scaleX(1);transform-origin:left}
.header-tools{display:flex;align-items:center;gap:var(--space-3)}
.header-cta{display:flex;align-items:center;justify-content:center;min-height:2.75rem;padding-inline:var(--space-5);font-size:var(--text-sm);font-weight:700;color:var(--color-ink);background:var(--color-accent)}
.header-cta:hover{background:var(--color-white)}
.theme-toggle .moon{display:none;fill:currentColor;stroke:none}
[data-theme=dark] .theme-toggle .sun{display:none}[data-theme=dark] .theme-toggle .moon{display:block}
.menu-toggle{display:none}
.mobile-menu,.menu-scrim{display:none}

.hero{position:relative;min-height:min(940px,100svh);display:grid;align-items:end;isolation:isolate;color:var(--color-white);background:var(--color-ink);overflow:hidden}
.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%}
.hero-image{z-index:-3;object-fit:cover;object-position:62% 45%;background:var(--color-ink)}
.hero-shade{z-index:-2;background:linear-gradient(90deg,oklch(10% .045 240/.9) 0%,oklch(10% .045 240/.67) 42%,oklch(10% .045 240/.12) 76%),linear-gradient(0deg,oklch(7% .03 240/.68) 0%,transparent 43%)}
.hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 17rem;gap:var(--space-16);align-items:end;padding-top:8rem;padding-bottom:clamp(var(--space-16),7vw,var(--space-24))}
.hero-copy{max-width:60rem}
.hero h1{font-size:var(--text-hero);max-width:14ch;margin-block:var(--space-6);color:var(--color-white)}
.hero h1 em{font-style:normal;color:var(--color-accent)}
.hero-lead{font-size:var(--text-base);max-width:48ch;color:oklch(96% .008 210/.84)}
.hero-actions{display:flex;align-items:center;gap:var(--space-8);margin-top:var(--space-10)}
.hero-aside{border-top:1px solid oklch(100% 0 0/.32)}
.hero-aside div{padding-block:var(--space-4);border-bottom:1px solid oklch(100% 0 0/.2)}
.hero-aside span,.hero-aside strong{display:block}.hero-aside span{font-size:.7rem;letter-spacing:.14em;color:var(--color-accent)}.hero-aside strong{font-family:var(--font-body);font-size:var(--text-sm);margin-top:var(--space-1)}
.hero-caption{position:absolute;right:clamp(var(--space-5),4vw,var(--space-12));bottom:var(--space-5);z-index:2;font-size:var(--text-xs);color:oklch(100% 0 0/.6);writing-mode:vertical-rl}
.quick-facts{border-bottom:1px solid var(--color-border);background:var(--color-bg)}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.facts-grid p{padding:var(--space-6);font-size:var(--text-sm);font-weight:600;border-left:1px solid var(--color-border)}
.facts-grid p:last-child{border-right:1px solid var(--color-border)}
.facts-grid span{display:block;font-size:.7rem;letter-spacing:.12em;color:var(--color-accent-strong);margin-bottom:var(--space-2)}

.editorial-head{display:grid;grid-template-columns:.55fr 1.1fr .75fr;gap:var(--space-12);align-items:start;margin-bottom:var(--space-20)}
.editorial-head h2,.proof-head h2,.method-intro h2,.pricing-head h2,.reviews-head h2,.faq-head h2,.outdoor-copy h2{font-size:var(--text-2xl)}
.editorial-head>p:last-child,.proof-head>p,.method-intro>p:last-child,.pricing-head>p,.reviews-head>p,.faq-head>p:last-child,.outdoor-copy>p{color:var(--color-text-muted)}
.service-list{border-top:1px solid var(--color-border)}
.service-row{display:grid;grid-template-columns:4rem 1fr 1.2fr auto;align-items:center;gap:var(--space-6);padding-block:var(--space-6);border-bottom:1px solid var(--color-border)}
.service-number{font-size:var(--text-xs);color:var(--color-text-faint)}
.service-row h3{font-size:var(--text-lg)}
.service-row p{font-size:var(--text-sm);color:var(--color-text-muted)}
.service-row strong{font-size:var(--text-base);color:var(--color-accent-strong);white-space:nowrap}

.proof{background:var(--color-surface-2)}
.proof-head{display:grid;grid-template-columns:1fr .6fr;gap:var(--space-16);align-items:end;margin-bottom:var(--space-12)}
.proof-head .overline{margin-bottom:var(--space-5)}
.proof-head>p{justify-self:end;max-width:34ch}
.proof-bleed{display:grid;grid-template-columns:1fr 1fr;width:100%}
.proof-panel{position:relative;min-width:0;overflow:hidden;background:var(--color-ink)}
.proof-panel img{width:100%;height:clamp(22rem,39vw,38rem);object-fit:cover;transition:transform 900ms cubic-bezier(.16,1,.3,1),filter var(--transition)}
.proof-panel:first-child img{filter:saturate(.75) brightness(.82)}
.proof-panel:hover img{transform:scale(1.018)}
.proof-panel figcaption{position:absolute;left:clamp(var(--space-5),4vw,var(--space-12));bottom:var(--space-8);display:grid;color:var(--color-white)}
.proof-panel figcaption span{font-size:.7rem;letter-spacing:.16em;color:var(--color-accent)}
.proof-panel figcaption strong{font-size:var(--text-xl)}
.proof-panel figcaption small{font-size:var(--text-xs);opacity:.7}
.proof-note{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-8)}
.proof-note p{font-size:var(--text-sm);color:var(--color-text-muted)}
.proof-note ul{display:flex;gap:var(--space-8);font-size:var(--text-sm);font-weight:700}
.proof-note li::before{content:'·';color:var(--color-accent-strong);margin-right:var(--space-3)}

.method{padding-bottom:clamp(var(--space-24),12vw,12rem)}
.method-intro{display:grid;grid-template-columns:.55fr 1fr .75fr;gap:var(--space-12);margin-bottom:var(--space-16)}
.photo-spread{display:grid;grid-template-columns:1.35fr .65fr;grid-template-rows:auto auto auto;gap:var(--space-5);align-items:start}
.photo{margin:0}.photo img{width:100%;object-fit:cover;background:var(--color-surface-offset)}
.photo figcaption{display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted);padding-top:var(--space-3);border-top:1px solid var(--color-border);margin-top:var(--space-3)}
.photo figcaption span{color:var(--color-text);font-weight:700;letter-spacing:.08em}
.photo-diagnostic{grid-row:1/span 2}.photo-diagnostic img{height:clamp(26rem,48vw,43rem)}
.photo-equipment img{height:clamp(13rem,22vw,20rem)}
.photo-technician{width:82%;justify-self:end;margin-top:var(--space-12)}
.photo-technician img{height:clamp(17rem,29vw,28rem)}
.photo-spread-copy{grid-column:1;max-width:42rem;padding-top:var(--space-8);border-top:1px solid var(--color-border)}
.pull-quote{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.3;letter-spacing:-.03em}

.process{color:var(--color-white);background:var(--color-ink)}
.process-layout{display:grid;grid-template-columns:.85fr 1fr;gap:clamp(var(--space-12),8vw,var(--space-32));align-items:start}
.process-sticky{position:sticky;top:8rem}.process-sticky h2{font-size:var(--text-2xl);margin-block:var(--space-5);color:var(--color-white)}.process-sticky>p:last-child{color:oklch(95% 0 0/.62)}
.process-list{list-style:none;border-top:1px solid oklch(100% 0 0/.2)}
.process-list li{display:grid;grid-template-columns:4rem 1fr;gap:var(--space-5);padding-block:var(--space-8);border-bottom:1px solid oklch(100% 0 0/.18)}
.process-list>li>span{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-accent)}
.process-list h3{font-size:var(--text-lg);margin-bottom:var(--space-3);color:var(--color-white)}
.process-list p{font-size:var(--text-sm);color:oklch(95% 0 0/.66)}

.full-bleed-living{position:relative;min-height:clamp(32rem,67vw,52rem);display:grid;align-items:end;isolation:isolate;color:var(--color-white);overflow:hidden}
.full-bleed-living>img,.living-overlay{position:absolute;inset:0;width:100%;height:100%}.full-bleed-living>img{z-index:-2;object-fit:cover;object-position:center}.living-overlay{z-index:-1;background:linear-gradient(0deg,oklch(10% .04 235/.78),transparent 60%)}
.living-copy{padding-bottom:clamp(var(--space-12),7vw,var(--space-24))}.living-copy h2{font-size:var(--text-2xl);margin-block:var(--space-5);color:var(--color-white)}.living-copy p:last-child{color:oklch(98% 0 0/.78)}

.outdoor-grid{display:grid;grid-template-columns:1.12fr .72fr;gap:clamp(var(--space-10),8vw,var(--space-32));align-items:center}
.outdoor-image img{width:100%;height:clamp(27rem,48vw,42rem);object-fit:cover}
.outdoor-image figcaption{font-size:var(--text-xs);color:var(--color-text-muted);padding-top:var(--space-3)}
.outdoor-copy h2{margin-block:var(--space-5)}.outdoor-copy .text-link{margin-top:var(--space-8)}

.pricing{background:var(--color-surface-2)}
.pricing-head{display:grid;grid-template-columns:1fr .7fr;gap:var(--space-12);align-items:end;margin-bottom:var(--space-12)}
.pricing-head .overline{margin-bottom:var(--space-5)}.pricing-head>p{justify-self:end;max-width:36ch}
.price-table-wrap{overflow-x:auto;background:var(--color-surface);box-shadow:var(--shadow-soft)}
.price-table-wrap:focus-visible{outline-offset:2px}
table{min-width:52rem}th,td{text-align:left;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);font-size:var(--text-sm);vertical-align:middle}thead th{font-size:var(--text-xs);letter-spacing:.08em;color:var(--color-text-muted);background:var(--color-surface-offset)}tbody th{font-family:var(--font-body);font-weight:600}tbody tr:last-child>*{border-bottom:0}td strong{font-size:var(--text-base);color:var(--color-accent-strong)}th small{font-size:var(--text-xs);font-weight:400;color:var(--color-text-muted)}
.price-disclaimer{margin-top:var(--space-5);padding-left:var(--space-5);font-size:var(--text-xs);color:var(--color-text-muted);position:relative}.price-disclaimer::before{content:'※';position:absolute;left:0;color:var(--color-accent-strong)}

.reviews-head{display:grid;grid-template-columns:.5fr 1fr .65fr;gap:var(--space-12);align-items:end;margin-bottom:var(--space-16)}
.reviews-head>p:last-child{font-size:var(--text-sm)}
.review-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--space-6)}
.review-featured,.review-small{margin:0;background:var(--color-surface);border:1px solid var(--color-border)}
.review-featured{min-height:30rem;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(var(--space-8),5vw,var(--space-16))}
.review-featured>p{font-family:var(--font-display);font-size:var(--text-xl);line-height:1.45;letter-spacing:-.025em}
.review-stack{display:grid;gap:var(--space-6)}
.review-small{display:flex;flex-direction:column;justify-content:space-between;padding:var(--space-8)}.review-small>p{font-size:var(--text-base)}
blockquote footer{display:flex;flex-direction:column;margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--color-border)}blockquote footer strong{font-size:var(--text-sm)}blockquote footer span{font-size:var(--text-xs);color:var(--color-text-muted)}

.area{color:var(--color-white);background:var(--color-deep)}
.area-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(var(--space-12),8vw,var(--space-32));align-items:start}
.area-head h2{font-size:var(--text-2xl);margin-block:var(--space-5);color:var(--color-white)}.area-head>p:last-child{color:oklch(95% 0 0/.63)}
.districts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid oklch(100% 0 0/.2);border-left:1px solid oklch(100% 0 0/.2)}
.districts li{display:flex;align-items:center;justify-content:center;min-height:5rem;padding:var(--space-4);font-size:var(--text-sm);border-right:1px solid oklch(100% 0 0/.2);border-bottom:1px solid oklch(100% 0 0/.2)}
.area-note{grid-column:2;font-size:var(--text-xs);color:oklch(95% 0 0/.52)}

.faq-layout{display:grid;grid-template-columns:.65fr 1.1fr;gap:clamp(var(--space-12),8vw,var(--space-32));align-items:start}
.faq-head{position:sticky;top:8rem}.faq-head h2{margin-block:var(--space-5)}.faq-head>p:last-child{font-size:var(--text-sm)}
.faq-list{border-top:1px solid var(--color-border)}
.faq-item{border-bottom:1px solid var(--color-border)}
.faq-question{width:100%;min-height:5rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding-block:var(--space-5);text-align:left;font-size:var(--text-base);font-weight:600}
.faq-question:hover{color:var(--color-accent-strong)}.faq-question svg{width:1.25rem;min-width:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;transition:transform var(--transition)}.faq-question[aria-expanded=true] svg{transform:rotate(45deg)}
.faq-answer p{padding:0 var(--space-12) var(--space-6) 0;color:var(--color-text-muted);font-size:var(--text-sm)}

.cta{position:relative;min-height:42rem;display:grid;place-items:center;isolation:isolate;color:var(--color-white);overflow:hidden}.cta>img,.cta-shade{position:absolute;inset:0;width:100%;height:100%}.cta>img{z-index:-2;object-fit:cover}.cta-shade{z-index:-1;background:oklch(10% .055 238/.75)}
.cta-inner{text-align:center;display:flex;flex-direction:column;align-items:center;padding-block:var(--space-20)}.cta h2{font-size:var(--text-2xl);margin-block:var(--space-5);color:var(--color-white)}.cta-inner>p:not(.overline){color:oklch(98% 0 0/.76)}.cta-actions{display:flex;gap:var(--space-4);margin-top:var(--space-8)}.cta-inner small{margin-top:var(--space-4);font-size:var(--text-xs);color:oklch(98% 0 0/.58)}

.site-footer{padding-block:var(--space-20) var(--space-8);color:var(--color-white);background:oklch(11% .025 238)}
.footer-top{display:grid;grid-template-columns:.7fr 1fr auto;gap:var(--space-12);align-items:start;padding-bottom:var(--space-16)}.footer-top>p{font-size:var(--text-sm);color:oklch(95% 0 0/.58)}.footer-phone{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-accent)}.footer-phone small{font-family:var(--font-body);font-size:var(--text-xs);color:oklch(95% 0 0/.5)}
.footer-nav{display:grid;grid-template-columns:1fr 1fr;padding-block:var(--space-8);border-top:1px solid oklch(100% 0 0/.16);border-bottom:1px solid oklch(100% 0 0/.16)}.footer-nav nav{display:flex;flex-wrap:wrap;gap:var(--space-6)}.footer-nav a{font-size:var(--text-sm)}.footer-nav a:hover{color:var(--color-accent)}.footer-nav address{justify-self:end;font-style:normal;font-size:var(--text-xs);color:oklch(95% 0 0/.55)}
.footer-bottom{display:flex;justify-content:space-between;gap:var(--space-8);padding-top:var(--space-8);font-size:var(--text-xs);color:oklch(95% 0 0/.42)}.footer-bottom p:last-child{text-align:right}
.mobile-booking{display:none}

/* Fail-open reveal: items are always visible; JS only adds a one-time entrance animation. */
.reveal{opacity:1;transform:none}
.js .reveal.is-visible{animation:reveal-in 700ms cubic-bezier(.16,1,.3,1) both}
@keyframes reveal-in{from{opacity:.01;transform:translateY(var(--space-5))}to{opacity:1;transform:none}}

@media(max-width:1080px){
  .desktop-nav{display:none}.menu-toggle{display:grid}.header-cta{display:none}
  .editorial-head,.method-intro,.reviews-head{grid-template-columns:.5fr 1.2fr}.editorial-head>p:last-child,.method-intro>p:last-child,.reviews-head>p:last-child{grid-column:2}
  .service-row{grid-template-columns:3rem .8fr 1.2fr auto}
  .photo-spread{grid-template-columns:1fr 1fr}.photo-diagnostic{grid-row:auto}.photo-diagnostic img,.photo-equipment img{height:28rem}.photo-technician{width:100%;margin-top:0}.photo-technician img{height:26rem}.photo-spread-copy{grid-column:1/span 2}
  .area-layout{grid-template-columns:1fr}.area-note{grid-column:1}.districts{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:780px){
  body{padding-bottom:4.75rem}.shell{width:min(100% - 2.5rem,var(--shell))}.section{padding-block:var(--space-20)}
  .header-inner{height:4.5rem}.brand-place{display:none}.theme-toggle{border-color:oklch(100% 0 0/.25)}.site-header.is-scrolled .theme-toggle{border-color:var(--color-border)}
  .menu-scrim{display:block;position:fixed;z-index:190;inset:0;background:oklch(8% .03 235/.6);opacity:0;visibility:hidden;transition:opacity var(--transition),visibility var(--transition)}.menu-scrim.is-open{opacity:1;visibility:visible}
  .mobile-menu{display:flex;position:fixed;z-index:200;top:0;right:0;width:min(89vw,28rem);height:100dvh;flex-direction:column;padding:var(--space-6);color:var(--color-white);background:var(--color-ink);transform:translateX(101%);transition:transform 420ms cubic-bezier(.16,1,.3,1)}.mobile-menu.is-open{transform:none}.mobile-menu-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-8);border-bottom:1px solid oklch(100% 0 0/.18)}.menu-kicker{font-size:.7rem;letter-spacing:.14em;color:var(--color-accent)}.mobile-menu .icon-button{border-color:oklch(100% 0 0/.2)}.mobile-menu nav{display:flex;flex-direction:column;margin-top:var(--space-6)}.mobile-menu nav a{display:flex;align-items:center;gap:var(--space-4);min-height:3.75rem;font-family:var(--font-display);font-size:var(--text-lg);border-bottom:1px solid oklch(100% 0 0/.14)}.mobile-menu nav span{font-family:var(--font-body);font-size:.65rem;color:var(--color-accent)}.mobile-menu-contact{margin-top:auto;padding-top:var(--space-6);border-top:1px solid oklch(100% 0 0/.18)}.mobile-menu-contact p{font-size:var(--text-xs);color:oklch(100% 0 0/.55)}.mobile-menu-contact a{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-accent)}.mobile-menu-contact small{font-size:var(--text-xs)}
  .hero{min-height:48rem}.hero-image{object-position:61% center}.hero-shade{background:linear-gradient(0deg,oklch(8% .04 240/.93) 5%,oklch(8% .04 240/.46) 70%,oklch(8% .04 240/.2))}.hero-inner{display:block;padding-top:9rem;padding-bottom:var(--space-12)}.hero h1{font-size:clamp(2.65rem,12.5vw,4.4rem);max-width:12ch}.hero-lead{max-width:34ch}.hero-actions{align-items:flex-start;flex-direction:column;gap:var(--space-4);margin-top:var(--space-8)}.hero-aside{display:none}.hero-caption{display:none}
  .facts-grid{grid-template-columns:1fr 1fr}.facts-grid p{padding:var(--space-4);border-bottom:1px solid var(--color-border)}
  .editorial-head,.method-intro,.pricing-head,.reviews-head,.proof-head{display:block}.editorial-head h2,.method-intro h2,.proof-head h2,.pricing-head h2,.reviews-head h2{margin-block:var(--space-5)}.editorial-head>p:last-child,.method-intro>p:last-child{margin-top:var(--space-6)}.editorial-head,.method-intro,.pricing-head,.reviews-head{margin-bottom:var(--space-10)}.service-row{grid-template-columns:2.5rem 1fr auto;gap:var(--space-4)}.service-row p{grid-column:2/span 2}.service-row strong{grid-column:3;grid-row:1}
  .proof-head>p{justify-self:start;margin-top:var(--space-5)}.proof-bleed{grid-template-columns:1fr}.proof-panel img{height:22rem}.proof-note{align-items:flex-start;flex-direction:column;gap:var(--space-4)}.proof-note ul{gap:var(--space-4);flex-wrap:wrap}
  .photo-spread{display:block}.photo{margin-bottom:var(--space-8)}.photo-diagnostic img,.photo-equipment img,.photo-technician img{height:22rem}.photo-spread-copy{margin-top:var(--space-12)}
  .process-layout{grid-template-columns:1fr}.process-sticky,.faq-head{position:static}.process-list li{grid-template-columns:3rem 1fr}
  .full-bleed-living{min-height:42rem}.full-bleed-living>img{object-position:61% center}.living-overlay{background:linear-gradient(0deg,oklch(8% .04 235/.85),transparent 70%)}
  .outdoor-grid{grid-template-columns:1fr}.outdoor-image img{height:28rem}.outdoor-copy{padding-top:var(--space-6)}
  .pricing-head>p{margin-top:var(--space-5)}.price-table-wrap::after{content:'좌우로 밀어 전체 요금을 확인하세요';display:block;padding:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-surface-offset)}
  .reviews-head>p:last-child{margin-top:var(--space-5)}.review-layout{grid-template-columns:1fr}.review-featured{min-height:auto}.review-featured>p{font-size:var(--text-lg)}
  .districts{grid-template-columns:repeat(2,1fr)}
  .faq-layout{grid-template-columns:1fr}.faq-list{margin-top:var(--space-10)}
  .cta{min-height:40rem}.cta-actions{width:100%;max-width:24rem;flex-direction:column}.cta-actions .button{width:100%}
  .footer-top{grid-template-columns:1fr}.footer-phone{font-size:var(--text-lg)}.footer-nav{grid-template-columns:1fr;gap:var(--space-8)}.footer-nav address{justify-self:start}.footer-bottom{flex-direction:column}.footer-bottom p:last-child{text-align:left}
  .mobile-booking{position:fixed;z-index:150;left:0;right:0;bottom:0;display:grid;grid-template-columns:.75fr 1.25fr;padding:var(--space-2);padding-bottom:max(var(--space-2),env(safe-area-inset-bottom));background:color-mix(in oklab,var(--color-bg) 94%,transparent);border-top:1px solid var(--color-border);backdrop-filter:blur(16px)}.mobile-booking a{display:flex;align-items:center;justify-content:center;min-height:3.25rem;font-size:var(--text-sm);font-weight:700}.mobile-booking a:first-child{border:1px solid var(--color-border)}.mobile-booking a:last-child{gap:var(--space-4);color:var(--color-ink);background:var(--color-accent)}.mobile-booking svg{width:1.1rem;fill:none;stroke:currentColor;stroke-width:1.8}
}
@media(max-width:420px){.shell{width:min(100% - 2rem,var(--shell))}.hero{min-height:46rem}.hero h1{font-size:clamp(2.45rem,12.4vw,3.25rem)}.facts-grid p{font-size:var(--text-xs)}.service-row{grid-template-columns:2rem 1fr}.service-row strong{grid-column:2;grid-row:auto}.service-row p{grid-column:2}.photo-diagnostic img,.photo-equipment img,.photo-technician img{height:18rem}.districts li{min-height:4rem}.faq-question{font-size:var(--text-sm)}}
.image-fallback{display:grid;place-items:center;min-height:16rem;color:var(--color-text-muted);background:var(--color-surface-offset);font-family:var(--font-display);font-size:var(--text-sm);letter-spacing:.14em}
