/* Stable, font-independent controls across Georgian/English and touch devices. */
.ui-icon{display:inline-block;width:22px;height:22px;flex:none;vertical-align:middle;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
span:has(>.ui-icon){display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}
:is(a,button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:5px}
button,summary,a,input{-webkit-tap-highlight-color:transparent}
button,summary{touch-action:manipulation}
:root .menu-toggle{position:relative;flex:none;width:46px;height:46px;padding:11px;border:1px solid var(--line);background:var(--paper);border-radius:0;align-items:center;justify-content:center}
:root .menu-toggle span{position:absolute;left:11px;top:21px;width:22px;height:2px;margin:0;background:var(--ink);transform:translateY(-4px);transform-origin:center}
:root .menu-toggle span:last-child{transform:translateY(4px)}
:root .menu-toggle[aria-expanded=true] span:first-child{transform:rotate(45deg)}
:root .menu-toggle[aria-expanded=true] span:last-child{transform:rotate(-45deg)}
:root :is(.text-link,.guide-inline-link,.back-top,.section-finish a){align-items:center;gap:18px;min-height:44px}
:root .service-scope summary>span{width:24px;height:24px}
:root .service-scope[open] summary>span{transform:rotate(45deg)}
:root .demo-stage summary::after{content:'';width:18px;height:18px;justify-self:end;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}
:root .demo-stage[open] summary::after{content:'';-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E")}
:root .portfolio-lightbox :is([data-gallery-close],[data-gallery-prev],[data-gallery-next]){display:grid;place-items:center;width:48px;height:48px;padding:0;flex-shrink:0;border-radius:50%}
:root .portfolio-lightbox-top [data-gallery-close]{border:1px solid #ffffff4d}
:root .portfolio-lightbox-stage button{top:calc(50% - 24px)}
:root .portfolio-lightbox .ui-icon{width:24px;height:24px}
/* Keep the actual range native: the visible handle is only a clear affordance. */
:root .renovation-divider{inset:0 auto 0 var(--before-share);width:2px;background:#fff;box-shadow:0 0 0 1px #00000020}
:root .renovation-divider>span{width:52px;height:52px;background:#fff;color:var(--ink);border:1px solid #00000018;box-shadow:0 3px 20px #00000026}
:root .renovation-divider .ui-icon{width:26px;height:26px}
:root .renovation-canvas:focus-within .renovation-divider>span{outline:2px solid var(--accent);outline-offset:4px}
:root .renovation-badge{padding:8px 12px;background:#fffffff2;font-size:12px;line-height:1.6;color:var(--ink)}
:root .renovation-comparison{max-width:none;padding:0;border:0;background:transparent}
/* Wide, equally sized comparison canvases without stretching either atlas. */
:root .renovation-canvas{aspect-ratio:2/1}
:root :is(.interior-atlas,.yard-atlas){inset:auto 0;top:50%;aspect-ratio:3/2;transform:translateY(-50%)}
:root .interior-atlas--after{transform:translateY(-45.2%)}
:root :is(.interior-comparison-section,.yard-section)>.wrap{max-width:1568px}
:root :is(.office-heading,.commercial-build-heading){gap:clamp(28px,4vw,64px);padding-block:var(--section-space) 24px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
:root :is(.office-heading h1,.office-heading h2,.commercial-build-heading h2,.comparison-heading h2,.yard-heading h2){font-size:clamp(30px,3vw,44px);line-height:1.4}
:root .office-figure figcaption,:root .commercial-build-figure figcaption{min-height:48px}
:root :is(.office-stages,.commercial-build-stages,.construction-stages,.reno-stages) button{min-height:44px;line-height:1.7}
:root .service-scope dl{background:var(--surface)}
:root .service-scope dl>div+div{border-color:var(--line)}
:root .partner-profile-inner>div{min-width:0}
:root .partner-profile h2{overflow-wrap:anywhere}
/* Compact introductions and one alignment grid, without shrinking the scenes. */
:root .page-home .reno-heading{width:min(calc(100% - var(--gutter)*2),var(--motion-frame-width,100%));max-width:none;padding:32px 0 20px;gap:24px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
:root .page-home .reno-heading h2{font-size:clamp(28px,2.4vw,36px);line-height:1.4}
:root .page-home .reno-heading .eyebrow{margin-bottom:12px}
:root .page-home .reno-hint{margin:0 0 8px}
:root .page-home .reno-art{border:0}
:root .page-home .reno-load-status{aspect-ratio:var(--motion-aspect,1.5)}
:root .page-inner .intro{background:none}
:root #intro-title{font-size:clamp(36px,4vw,60px);line-height:1.4;max-width:25ch;margin:20px 0 32px}
:root #intro-title>em{margin-left:0}
:root .partner-profile h2{font-size:clamp(28px,3vw,44px)}
/* The root scroll padding already accounts for the fixed header. */
html{scroll-padding-top:calc(var(--header-height) + 16px)}
:root :is(.page-home,.page-inner) main :is(section,article,details)[id]{scroll-margin-top:0}
:root .commercial-service-image{display:block;aspect-ratio:4/3;margin:0}
:root .commercial-service-image--showroom img{width:300%;height:auto;max-width:none;left:-100%;top:50%;object-fit:initial;transform:translateY(-50%)}
:root .commercial-service-image--showroom figcaption{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);padding:6px 10px;background:#fffffff2;color:var(--ink);font-size:11px;line-height:1.6}
@media(min-width:761px){:root .commercial-services-grid h3{min-height:3.2em}}
@media(max-width:760px){
 :root .header-inner{gap:8px}
 :root .site-header .brand{width:160px;padding-inline:10px}
 :root .language-switch{gap:2px}
 :root .language-switch a{min-width:32px;min-height:44px;display:grid;place-items:center}
 :root .mobile-menu{padding:24px var(--gutter);background:var(--paper)}
 :root .mobile-menu a{font-size:clamp(20px,5.7vw,26px);line-height:1.6;padding:16px 0;border-bottom:1px solid var(--line)}
 :root .ui-icon{width:22px;height:22px;stroke-width:1.9}
 :root :is(.office-heading,.commercial-build-heading){grid-template-columns:minmax(0,1fr);gap:18px;padding-block:32px 22px}
 :root :is(.office-heading h1,.office-heading h2,.commercial-build-heading h2,.comparison-heading h2,.yard-heading h2){font-size:clamp(28px,6.5vw,34px)}
 :root :is(.office-heading-copy,.commercial-build-heading-copy){margin-top:0}
 :root .renovation-canvas{aspect-ratio:3/2}
 :root :is(.interior-atlas,.yard-atlas){inset:0;aspect-ratio:auto;transform:none}
 :root .interior-atlas--after{transform:translateY(4.8%)}
 :root .renovation-divider>span{width:46px;height:46px}
 :root .renovation-presets{gap:4px}
 :root .renovation-presets button{min-width:0;min-height:52px;font-size:13px;padding-inline:4px;line-height:1.6}
 :root .renovation-toolbar>p{font-size:13px}
 :root .renovation-comparison figcaption{font-size:12px;line-height:1.8}
 :root .renovation-comparison figcaption>span:first-child{font-size:13px}
 :root .renovation-badge{font-size:11px;padding:6px 8px}
 :root .section-finish a{justify-content:space-between}
 :root .breadcrumb{flex-wrap:wrap;gap:8px;font-size:12px}
 :root .page-home .reno-heading{padding-block:24px 18px}
 :root .page-home .reno-heading h2{font-size:28px}
 :root .page-home .reno-heading-copy{margin-top:12px}
 :root .page-home .reno-hint{font-size:12px;gap:8px;margin-bottom:4px}
 :root .page-home .reno-archive-link{font-size:13px;margin-top:0;gap:16px}
 :root #intro-title{font-size:clamp(32px,7.5vw,40px);margin-block:16px 24px}
 :root .approach-lead{font-size:22px}
 :root .portfolio-lightbox{max-height:calc(100dvh - 24px);width:calc(100% - 24px);max-width:none}
 :root .portfolio-lightbox-stage{height:56dvh}
 :root .portfolio-lightbox-bottom{align-items:flex-start;flex-direction:column;gap:10px;font-size:12px;line-height:1.7}
}
@media(max-width:360px){
 :root .site-header .brand{width:140px;padding-inline:6px}
 :root .header-inner{padding-inline:16px;gap:4px}
 :root .language-switch a{min-width:29px}
}
@media(max-width:420px){:root .commercial-build-stages{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}}
@media(prefers-reduced-motion:reduce){:root .menu-toggle span{transition:none}}
