@font-face{font-family:Montserrat;font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/montserrat.woff2') format('woff2')}@font-face{font-family:Unbounded;font-style:normal;font-weight:400;font-display:swap;src:url('fonts/unbounded.woff2') format('woff2')}@font-face{font-family:'Montserrat Fallback';font-style:normal;font-weight:400 700;src:local('Arial'),local('Roboto');size-adjust:110.84%;ascent-override:87.33%;descent-override:22.64%;line-gap-override:0%}@font-face{font-family:'Unbounded Fallback';font-style:normal;font-weight:400;src:local('Arial'),local('Roboto');size-adjust:134.11%;ascent-override:74.19%;descent-override:18.27%;line-gap-override:0%}/* Narrowest phones (№117): below 389px the H1 minimum (--fs-h1) and the contact values on /architects/ (--fs-contact) scale with the window, so text that Chromium on Linux renders a little wider than on a Mac still fits (reports/proof/ci-failures-M002.md); from 390px both sizes are unchanged. */:root{--paper:#fff;--white:#fff;--ink:#111;--muted:#5e5e5e;--line:#dcdcdc;--dark:#111;--accent:#6b6b6b;--tint:#f0f0f0;--band:#f2f2f2;--display:Unbounded,'Unbounded Fallback',sans-serif;--body:Montserrat,'Montserrat Fallback',sans-serif;--container:1328px;--line-strong:#c8c8c8;--line-dark:#696969;--muted-dark:#c8c8c8;--fs-h1:clamp(min(28px,7.2vw),3.3vw,48px);--fs-h2:clamp(25px,2.5vw,36px);--fs-h3:26px;--fs-h4:18px;--fs-lead:17px;--fs-body:15px;--fs-small:14px;--fs-caption:13px;--fs-contact:min(var(--fs-h4),4.63vw);--lh-heading:1.25;--lh-title:1.4;--lh-text:1.75;--ls-heading:-.04em;--ls-title:-.03em;--ls-caps:.14em;--measure:720px;--space-section:96px;--space-block:64px;--space-heading:48px;--gap-split:72px;--gap-col:32px;--gap-row:48px;--gap-tile:16px;--gap-field:8px;--space-field:20px;--header-height:89px;--bar-height:0px;--bar-height-launcher:96px;--bar-height-banner:240px;--thead-height:136px;--label-cols:1fr 2.15fr;--label-gap:48px;--label-offset:calc((100% - var(--label-gap)) / 3.15 + var(--label-gap));--z-over-media:1;--z-media-action:2;--z-dialog-close:3;--z-header:25;--z-compare:25;--z-mobile-bar:28;--z-cookie:40;--z-toast:60;--z-skip:100;--z-table-head:1;--tint-photo:#e5e5e5;--tint-strong:#e3e3e3;--tint-hover:#fafafa;--line-field:#d0d0d0;--line-status:#bdbdbd;--line-soft:#bebebe;--line-mid:#a1a1a1;--placeholder:#7e7e7e;--hover-dark:#dedede;--topline-ink:#e6e6e6;--footer-ink:#e5e5e5;--footer-text:#bfbfbf;--footer-muted:#c6c6c6;--footer-eyebrow:#b5b5b5;--footer-line:#616161;--media-dark:#2f2f2f;--scrim-hero:rgba(0,0,0,.64);--scrim-cover:#0008;--play-fill:#2e2e2e80;--play-line:#fff9;--backdrop:#1d1d1d99;--backdrop-media:#000000d9;--print-ink:#000;--print-tint:#eee;--draft-bg:#fff8e6;--draft-line:#d69e2e;--draft-ink:#8a5a00;--radius-none:0;--radius-round:50%;--shadow-banner:0 12px 60px #1f1f1f22;--shadow-toast:0 4px 30px #0002;--shadow-launcher:0 4px 24px #0002;--shadow-picked:inset 0 0 0 1px var(--dark);--shadow-focus:0 0 0 7px var(--white);--opacity-disabled:.6;--dur-fast:.2s;--dur-medium:.35s;--dur-slow:.5s;--ease-standard:ease;--video-width:min(420px,calc((100svh - var(--header-height) - var(--space-heading)) * 720 / 1280));--case-lead-ratio:4/3;--case-lead-width:min(560px,calc((100svh - 240px) * var(--case-lead-ratio)))}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--gap-tile));scroll-padding-bottom:var(--bar-height)}html:has(.compare-launcher:not([hidden])){scroll-padding-bottom:var(--bar-height-launcher)}html:has(.cookie-banner:not([hidden])){scroll-padding-bottom:var(--bar-height-banner)}body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--fs-body)/var(--lh-text) var(--body);-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}.submit-button:disabled{cursor:wait}img{max-width:100%;display:block}figure{margin:0}svg{flex-shrink:0}ul,ol{padding-left:1.2rem}p{margin:0 0 1.2em}h1,h2,h3,h4{margin:0 0 12px;font-family:var(--display);font-weight:400;line-height:var(--lh-title);letter-spacing:var(--ls-title)}h1{font-size:var(--fs-h1);margin-bottom:24px}h1,h2{line-height:var(--lh-heading);letter-spacing:var(--ls-heading)}h2{font-size:var(--fs-h2);margin-bottom:.7em}h3{font-size:var(--fs-h4)}h1 em,h2 em{font-style:normal;color:var(--accent)}a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--ink);outline-offset:2px;box-shadow:var(--shadow-focus)}::selection{background:var(--line)}button.text-button{background:none;border:0;padding:0;color:inherit;text-decoration:underline;text-underline-offset:4px}button.text-button:hover{color:var(--accent)}[hidden]{display:none!important}.container{width:min(var(--container),calc(100% - 96px));margin-inline:auto}.eyebrow{display:flex;align-items:center;gap:16px;font-size:var(--fs-caption);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;line-height:1.6;color:var(--muted)}.eyebrow>span:first-child{font-variant-numeric:tabular-nums}.small-line{width:32px;height:1px;background:currentColor}.lead{font-size:var(--fs-lead);max-width:var(--measure);color:var(--muted)}.fine-print{font-size:var(--fs-caption);color:var(--muted)}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;min-height:54px;padding:15px 23px;background:var(--dark);color:var(--white);border:1px solid var(--dark);font-size:var(--fs-caption);font-weight:600;line-height:1.4;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.button:hover{background:var(--accent);border-color:var(--accent);color:var(--white)}/* One filled button per first screen (UX-02): the header «Бесплатный замер» on desktop, the bottom bar on phones; hero buttons are outline. The direction hero and the 404 button keep class="button" in their markup (tests/catalog-copy.test.mjs, scripts/build.mjs) and take the outline look here. */.button-secondary,.product-hero .hero-actions>.button,.not-found>.button{background:transparent;color:var(--ink);border-color:var(--line)}.button-secondary:hover,.product-hero .hero-actions>.button:hover,.not-found>.button:hover{background:var(--ink);border-color:var(--ink);color:var(--white)}.button-small{min-height:42px;padding:10px 15px;font-size:var(--fs-caption)}.text-link{display:inline-flex;align-items:center;gap:20px;background:none;border:0;border-bottom:1px solid var(--line);padding:9px 0;font-weight:600;font-size:var(--fs-caption);color:var(--ink);cursor:pointer}.text-link:hover{color:var(--accent);border-color:var(--accent)}.skip-link{position:absolute;z-index:var(--z-skip);left:20px;top:-200px;background:var(--dark);color:var(--white);padding:14px}.skip-link:focus{top:20px}.topline{background:var(--dark);color:var(--topline-ink);font-size:var(--fs-caption);letter-spacing:.04em}.topline .container{display:flex;justify-content:space-between;align-items:center;padding-block:8px}.topline a:hover{color:var(--white)}.site-header{position:sticky;top:0;z-index:var(--z-header);background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:88px}.brand{width:150px;flex-shrink:0}.brand img{width:150px;height:auto}.desktop-nav{display:flex;gap:25px;margin-left:22px}.desktop-nav a{position:relative;font-size:var(--fs-caption);font-weight:500;padding:20px 0}.desktop-nav a[aria-current]:after{content:'';position:absolute;bottom:12px;left:0;right:0;height:1px;background:var(--accent)}.header-phone{font-size:14px;font-weight:600;white-space:nowrap;margin-left:auto}.header-cta{display:flex;align-items:center;gap:20px;font-size:var(--fs-caption);border:1px solid var(--line);padding:12px 16px}.header-cta:hover{border-color:var(--accent)}.menu-toggle{display:none;background:none;border:0;padding:12px;width:48px;height:48px}.menu-toggle span{display:block;width:24px;height:1.5px;background:var(--ink);margin:6px 0;transition:transform var(--dur-fast) var(--ease-standard)}.menu-toggle:hover span{background:var(--accent)}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.8px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.8px) rotate(-45deg)}.mobile-nav{padding:20px 24px 40px;border-top:1px solid var(--line);max-height:calc(100dvh - 104px);overflow:auto}.mobile-nav a{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-body);min-height:44px;padding:12px 0;border-bottom:1px solid var(--line)}.mobile-nav-heading{margin:20px 0 0;font-size:var(--fs-caption);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted)}.hero{padding:32px 0 var(--space-block)}.hero-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:var(--gap-split);min-height:660px}.hero-copy{padding:48px 0 12px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.hero h1{margin:24px 0}.hero-copy>p{font-size:var(--fs-lead);color:var(--muted);max-width:var(--measure)}.hero-actions{display:flex;align-items:center;gap:12px;margin-top:32px;flex-wrap:wrap}.hero-actions .button{padding-inline:18px;gap:18px}.hero-facts{margin-top:42px;border-top:1px solid var(--line);padding-top:24px;width:100%;font-size:var(--fs-small);color:var(--muted)}.hero-facts span{display:flex;gap:10px;align-items:baseline}.hero-facts b{font-weight:500;font-size:var(--fs-h4);color:var(--ink)}.hero-photo{position:relative;min-height:640px;overflow:hidden;background:var(--tint-strong)}.hero-photo>img{height:100%;width:100%;object-fit:cover;object-position:49% 50%;position:absolute;inset:0}.hero-photo:after{content:'';position:absolute;bottom:0;left:0;right:0;height:25%;background:linear-gradient(transparent,var(--scrim-hero));pointer-events:none}.hero-photo figcaption{position:absolute;bottom:27px;left:28px;color:var(--white);z-index:var(--z-over-media);display:grid;font-size:var(--fs-caption);font-weight:500}.hero-photo figcaption small{opacity:.75;font-size:var(--fs-caption);margin-top:4px;font-weight:400}.photo-link{position:absolute;bottom:26px;right:26px;z-index:var(--z-media-action);background:var(--paper);color:var(--ink);width:44px;height:44px;display:grid;place-items:center}.section{padding-block:var(--space-section)}.section-topless{padding-top:0}.section-heading{display:grid;grid-template-columns:var(--label-cols);gap:var(--label-gap);margin-bottom:var(--space-heading)}.section-heading>.eyebrow{align-self:start;margin-top:9px}.section-heading h2{max-width:790px;margin-bottom:16px}.section-heading>div>:last-child{margin-bottom:0}.section-description{max-width:var(--measure);color:var(--muted);font-size:var(--fs-body)}.category-links{display:flex;gap:34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin-bottom:35px}.category-links a{font-size:var(--fs-caption);display:flex;align-items:center;justify-content:space-between;gap:24px;flex:1}.category-links a+a{border-left:1px solid var(--line);padding-left:30px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-row) var(--gap-col)}.product-card{min-width:0}.card-photo{display:block;position:relative;aspect-ratio:1.32;overflow:hidden;background:var(--tint-photo)}.card-photo img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-standard)}.card-photo:hover img{transform:scale(1.035)}.card-number{position:absolute;left:14px;top:14px;font-size:var(--fs-caption);background:var(--paper);padding:4px 8px;min-width:30px;text-align:center}/* Marks catalogue covers that are visualizations, not photos of completed projects. */.card-badge{position:absolute;left:14px;bottom:16px;font-size:var(--fs-caption);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;line-height:1.6;color:var(--ink);background:var(--paper);padding:5px 9px}.product-grid+.fine-print{margin-top:32px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}/* The product hero follows the image's real proportions (width/height from the file): landscape images are shown whole, portrait video frames are cropped to 4:5. */.product-hero figure.hero-visualization{position:relative}.product-hero figure.hero-portrait>img{aspect-ratio:4/5}@media(min-width:1001px){.product-hero figure.hero-portrait{width:min(100%,calc((100svh - 240px) * .8));justify-self:end}}/* Phones (UX-01): the photo stands above the text and takes at most about a third of the space between the sticky header and the bottom bar, so the H1 under it (up to three lines, after the crumbs, caption and eyebrow) stays in the first screen from 360×780 up. */@media(max-width:700px){.product-hero figure{order:-1}.product-hero figure>img{max-height:calc((100svh - var(--header-height) - var(--bar-height)) * .35)}}.hero-visualization>.card-badge{top:14px;bottom:auto}.card-arrow{position:absolute;bottom:16px;right:16px;width:38px;height:38px;display:grid;place-items:center;background:var(--paper)}.card-content{padding:24px 0 0}.card-content .eyebrow{margin-bottom:12px}.card-content p{font-size:var(--fs-small);color:var(--muted)}.card-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding-top:14px;font-size:var(--fs-caption);font-weight:500;min-height:50px}.compare-check{display:flex;align-items:center;gap:6px;font-weight:600;white-space:nowrap;cursor:pointer;min-height:24px;border:1px solid var(--line);padding:6px 10px;background:var(--white);transition:border-color var(--dur-fast) var(--ease-standard)}.compare-check input{width:14px;height:14px;accent-color:var(--dark);margin:0}.section-bottom{margin-top:var(--space-heading);display:flex;align-items:center;justify-content:space-between;gap:24px}.budget-section{background:var(--dark);color:var(--paper)}.budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-split)}.budget-grid h2{margin-top:24px}.budget-grid p{font-size:var(--fs-body);max-width:var(--measure);color:var(--muted-dark)}.budget-grid p.fine-print{font-size:var(--fs-caption)}.budget-section .eyebrow,.budget-section .fine-print{color:var(--muted-dark)}.budget-section .button{margin-top:18px;background:var(--paper);color:var(--dark);border-color:var(--paper)}.budget-section .button:hover{background:var(--hover-dark)}.budget-examples{display:flex;flex-direction:column;justify-content:center}.budget-examples>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:30px 0;border-bottom:1px solid var(--line-dark)}.budget-examples>div:first-child{border-top:1px solid var(--line-dark)}.budget-examples>div>span{font-size:var(--fs-h4);font-weight:400;line-height:1.5}.budget-examples small{display:block;font-size:var(--fs-small);color:var(--muted-dark)}.budget-examples strong{font-family:var(--display);font-size:var(--fs-h3);font-weight:400;white-space:nowrap;letter-spacing:var(--ls-heading)}.budget-examples>.fine-print{margin-top:20px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-row) var(--gap-col)}.project-image{display:block;position:relative;aspect-ratio:.84;overflow:hidden;margin-bottom:24px;background:var(--band)}.project-image img{width:100%;height:100%;object-fit:cover}.project-label{position:absolute;left:16px;top:16px;background:var(--paper);font-size:var(--fs-caption);padding:7px 10px;max-width:calc(100% - 32px)}.project-card .eyebrow{margin-bottom:12px}.process-section{background:var(--tint)}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap-row) var(--gap-col);list-style:none;padding:0;margin:0}.steps li{border-top:1px solid var(--line-strong);padding-top:24px}.step-number{font-size:var(--fs-caption);color:var(--accent);display:block;margin-bottom:12px}.steps p{font-size:var(--fs-small);color:var(--muted)}.faq-list{margin-left:var(--label-offset)}.faq-list details{border-top:1px solid var(--line)}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{display:flex;gap:24px;justify-content:space-between;align-items:center;list-style:none;cursor:pointer;font-size:var(--fs-body);font-weight:500;padding:24px 0}.faq-list summary::-webkit-details-marker{display:none}.faq-list details[open] summary svg{transform:rotate(180deg)}.faq-list details>div{padding:0 32px 24px 0;font-size:var(--fs-small);color:var(--muted)}.cta-section{background:var(--band);padding:var(--space-block) 0}.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:var(--gap-split)}.cta-inner h2{margin-top:24px}.cta-inner p{font-size:var(--fs-body);color:var(--muted);max-width:var(--measure)}.cta-inner>.button{flex-shrink:0}.site-footer{background:var(--dark);color:var(--footer-ink);padding-top:72px}.footer-top{display:grid;grid-template-columns:1.1fr 1fr .8fr 1.1fr;gap:42px;padding-bottom:64px}.footer-top>div{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font-size:14px}.footer-top .eyebrow{color:var(--footer-eyebrow);margin-bottom:14px;font-size:var(--fs-caption)}.footer-top a:hover{color:var(--white)}.footer-brand{font-family:var(--display);font-size:30px;line-height:1.2;display:flex;flex-direction:column;letter-spacing:-.035em}.footer-brand span{font-size:14px;letter-spacing:.02em}.footer-top p{font-size:14px;color:var(--footer-text);margin-top:12px}.footer-phone{font-size:17px;white-space:nowrap}.footer-bottom{display:flex;gap:26px;align-items:center;justify-content:space-between;padding:24px 0;border-top:1px solid var(--footer-line);font-size:14px;color:var(--footer-muted)}.footer-bottom .text-button{font-size:14px}.mobile-actions{display:none}.page-intro{padding-top:32px;padding-bottom:var(--space-block)}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:var(--fs-caption);color:var(--muted);margin-bottom:var(--space-heading)}.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}.page-intro>.eyebrow{margin-bottom:24px}.page-intro h1{max-width:1000px}.page-intro .lead{margin-bottom:0}.catalog-tools{display:flex;gap:var(--gap-col);margin-top:32px}.product-intro{padding-top:32px;padding-bottom:var(--space-block)}.product-hero{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-split);align-items:center}.product-hero h1{margin-top:24px;overflow-wrap:anywhere}.product-hero figure>img{width:100%;height:auto;object-fit:cover}.product-hero figcaption{font-size:var(--fs-caption);color:var(--muted);margin-top:12px}/* Phones held landscape (backlog 1, 667×375): a third of ~240px would cut the photo to a strip, so it keeps its own proportions (width follows the height) and fits whole between the sticky header and the bottom bar; left-aligned so the «Визуализация» badge stays on it. */@media(max-width:700px) and (orientation:landscape){.product-hero figure>img{width:auto;max-width:100%;max-height:calc(100svh - var(--header-height) - var(--bar-height) - var(--gap-tile))}}.price-note{border-top:1px solid var(--line);padding-top:24px;margin-top:32px}.price-note>span{display:block;font-size:var(--fs-caption);color:var(--muted);text-transform:uppercase;letter-spacing:var(--ls-caps);font-weight:600}.price-note strong{display:block;font-weight:600;font-size:var(--fs-lead);margin-block:8px}.price-note p{font-size:var(--fs-small);color:var(--muted)}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-row) var(--gap-col)}.feature-grid>div{border-top:1px solid var(--line);padding-top:calc(var(--gap-row) / 2)}.feature-grid p{color:var(--muted);font-size:var(--fs-small)}.use-cases{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.use-cases span{border:1px solid var(--line);padding:10px 15px;font-size:var(--fs-caption)}.specification-section{background:var(--band)}.split{display:grid;grid-template-columns:1fr 1.3fr;gap:var(--gap-split)}.split h2{margin-top:24px}.split p{font-size:var(--fs-body);max-width:var(--measure);color:var(--muted)}.specs{margin:0}.specs>div{display:grid;grid-template-columns:150px 1fr;gap:24px;border-top:1px solid var(--line-strong);padding:20px 0}.specs dt{font-size:var(--fs-small);color:var(--muted)}.specs dd{font-size:var(--fs-small);margin:0}.important-note{padding:24px;background:var(--tint-strong);margin-top:24px;font-size:var(--fs-small)}.important-note strong{font-weight:600}.important-note li+li{margin-top:10px}.options-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-row) var(--gap-col)}.options-grid article{border-top:1px solid var(--line);padding-top:24px}.options-grid .eyebrow{margin-bottom:12px}.options-grid p{font-size:var(--fs-small);color:var(--muted)}.compare-picker{display:flex;flex-wrap:wrap;gap:10px}.compare-picker label{cursor:pointer;border:1px solid var(--line);padding:10px 14px;font-size:var(--fs-caption);display:flex;gap:10px;align-items:center}.compare-picker input{accent-color:var(--dark);width:16px;height:16px}.compare-hint{font-size:var(--fs-caption);color:var(--muted);margin:16px 0 24px}.table-scroll{overflow-x:auto}.compare-table{width:100%;border-collapse:collapse;min-width:600px;text-align:left}.compare-table th,.compare-table td{border:1px solid var(--line);vertical-align:top;font-size:var(--fs-small);min-width:190px}.compare-table th{font-weight:500;background:var(--tint)}.compare-table thead th{font-size:var(--fs-small)}.compare-table tbody th{width:170px;min-width:140px;font-size:var(--fs-small);color:var(--muted);background:transparent}.project-detail{display:grid;grid-template-columns:1.35fr 1fr;gap:70px;align-items:start}.project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.project-gallery img{width:100%;height:auto}.project-detail aside{position:sticky;top:130px}.project-detail aside h2{margin-top:20px;font-size:26px}.project-detail aside p{font-size:var(--fs-caption);color:var(--muted)}.project-detail aside .button{display:flex;margin-top:16px}.fact-list{padding:0;list-style:none;font-size:var(--fs-caption);margin-block:30px}.fact-list li{padding:15px 0;border-top:1px solid var(--line)}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap-row) var(--gap-col)}.guide-grid article{border-top:1px solid var(--line);padding:24px 0}.guide-grid h2{font-size:var(--fs-h4);line-height:var(--lh-title);letter-spacing:var(--ls-title);margin-bottom:12px}.guide-grid .eyebrow{margin-bottom:12px}.guide-grid p{color:var(--muted);font-size:var(--fs-small)}.article{padding-bottom:var(--space-section)}.prose h2{font-size:var(--fs-h3);margin-top:var(--space-heading);line-height:var(--lh-title);letter-spacing:var(--ls-title)}.prose>section:first-child>h2{margin-top:0}.prose p,.prose ul{max-width:var(--measure)}.prose a:not(.button){text-decoration:underline;text-underline-offset:4px}.prose li+li{margin-top:10px}.prose .faq-list{margin:var(--space-heading) 0}.related-links{display:flex;flex-wrap:wrap;gap:var(--gap-tile)}.related-links a{display:flex;align-items:center;gap:15px;padding:14px;border:1px solid var(--line);font-size:var(--fs-caption)}.editorial-image{width:100%;height:100%;object-fit:cover;min-height:370px}.editorial-note{padding:32px;background:var(--tint);margin:32px 0;font-size:var(--fs-small)}.editorial-note a{text-decoration:underline}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.contact-grid>a{border:1px solid var(--line);padding:30px;display:flex;flex-direction:column;gap:25px}.contact-grid strong{font-family:var(--display);font-size:var(--fs-h4);font-weight:400;letter-spacing:var(--ls-title);line-height:var(--lh-title)}.contact-grid svg{align-self:flex-end}.contact-note{padding:var(--space-heading) 0;max-width:var(--measure)}.contact-note p{font-size:var(--fs-body);color:var(--muted)}.estimate-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:var(--gap-split);align-items:start}fieldset{min-width:0}.form-panel{border:1px solid var(--line);padding:32px;margin:0 0 32px}.form-panel legend{font-family:var(--display);font-size:var(--fs-h4);padding:0 12px;letter-spacing:var(--ls-title);line-height:var(--lh-title)}.form-panel legend>span{font-family:var(--body);font-size:var(--fs-caption);color:var(--accent);margin-right:10px}.form-panel label:not(.checkbox-row),.operator-login label,.operator-toolbar label{display:flex;flex-direction:column;gap:8px;font-size:var(--fs-small);font-weight:500;margin-bottom:20px}.form-panel input:not([type=checkbox]),.form-panel select,.operator-login input,.operator-toolbar select,.operator-card select{width:100%;min-width:0;border:1px solid var(--line-field);border-radius:var(--radius-none);background:transparent;padding:13px 12px;min-height:49px;color:var(--ink);font-size:var(--fs-small)}.form-panel input::placeholder{color:var(--placeholder)}.form-panel input:disabled{background:var(--band);color:var(--muted)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.checkbox-row{display:flex;align-items:flex-start;gap:11px;font-size:var(--fs-small);font-weight:400;margin:4px 0 20px;cursor:pointer;min-height:24px}.checkbox-row input{width:18px;height:18px;margin:2px 0 0;flex-shrink:0;accent-color:var(--dark)}.faq-list summary:hover,.compare-check:hover,.checkbox-row:hover{color:var(--accent)}.consent-label{font-size:var(--fs-small)}.consent-label a{text-decoration:underline}.estimate-summary{position:sticky;top:115px;background:var(--tint);padding:32px}.estimate-summary h2{font-size:var(--fs-h3);line-height:var(--lh-title);letter-spacing:var(--ls-title)}.estimate-area{font-size:26px;font-weight:400;margin-top:35px}.estimate-area small{display:block;font-size:var(--fs-caption);color:var(--muted)}.estimate-price{font-family:var(--display);font-size:35px;line-height:1.5;font-weight:400;margin-top:20px;letter-spacing:-.055em}.estimate-summary>p{font-size:var(--fs-small);color:var(--muted);margin-top:12px}.estimate-summary hr{border:0;border-top:1px solid var(--line-strong);margin:24px 0}.estimate-summary>strong{font-size:var(--fs-caption);font-weight:600}.estimate-summary ul{font-size:var(--fs-small);margin-top:14px}.summary-actions{display:grid;justify-items:start;gap:4px;margin:25px 0}.whatsapp-link{font-size:var(--fs-caption);text-decoration:underline;text-underline-offset:4px;display:block;padding-block:12px}.preview-note{font-size:var(--fs-caption);background:var(--band);padding:12px;color:var(--muted)}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.submit-button{width:100%;margin-block:15px}.submit-button+.fine-print{margin-top:16px}#form-status:not(:empty){display:flex;align-items:flex-start;gap:var(--gap-field);font-size:var(--fs-small);border:1px solid var(--line-status);background:var(--tint);padding:18px;margin-top:18px}#form-status p{margin:0}#form-status a{font-weight:600;text-decoration:underline}#form-status.sending-message{border-style:dashed}#form-status.success-message{border-color:var(--ink);background:var(--paper)}#form-status.error-message{border-color:var(--ink);background:var(--band)}.status-icon{flex:none;display:inline-grid;place-items:center;width:1.6em;height:1.6em;border:1px solid currentColor;border-radius:var(--radius-round);font-weight:600;line-height:1}.sending-message .status-icon{border-style:dashed}.error-message .status-icon{border-radius:var(--radius-none);border-color:var(--ink);background:var(--ink);color:var(--white)}.field-flag{font-size:var(--fs-caption);font-weight:400;color:var(--muted)}.form-panel .field{margin-bottom:var(--space-field)}.form-panel .field>label{margin-bottom:0}.field-error{font-size:var(--fs-small);font-weight:600;color:var(--ink);margin:var(--gap-field) 0 0}.form-panel input[aria-invalid=true]:not([type=checkbox]){border-color:var(--ink)}.submit-price{font-size:var(--fs-small);margin:var(--space-field) 0 0}.submit-price:not(.is-shown){visibility:hidden}.submit-price strong{font-weight:600}.operator-login{max-width:500px}.operator-login input{margin-bottom:10px}.operator-toolbar{display:flex;align-items:center;gap:22px}.operator-toolbar label{min-width:230px}.operator-summary{display:flex;flex-wrap:wrap;gap:12px;margin:25px 0}.operator-summary>*{border:1px solid var(--line);padding:15px;font-size:var(--fs-caption)}.operator-card{border:1px solid var(--line);padding:28px;margin:20px 0}.operator-card h2,.operator-card h3{font-size:20px}.operator-card p{font-size:var(--fs-caption);margin-bottom:8px}.operator-card dl{display:grid;grid-template-columns:180px 1fr;gap:8px 22px;font-size:var(--fs-caption)}.operator-card dd{margin:0;overflow-wrap:anywhere}.operator-card select{max-width:260px;margin:15px 16px 15px 0}.operator-card button{background:var(--dark);color:var(--white);border:1px solid var(--dark);padding:12px 20px;font-size:var(--fs-caption)}.cookie-banner{position:fixed;z-index:var(--z-cookie);bottom:20px;left:24px;width:min(490px,calc(100% - 48px));background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-banner);padding:23px}.cookie-banner strong{font-family:var(--display);font-size:14px;font-weight:400;letter-spacing:-.025em}.cookie-banner p{font-size:var(--fs-caption);color:var(--muted);line-height:1.8;margin:12px 0 18px}.cookie-banner p a{text-decoration:underline}.cookie-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.cookie-actions .text-button{font-size:var(--fs-caption);padding:9px}.dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:38px;width:min(540px,calc(100% - 32px));max-height:calc(100dvh - 40px)}.dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(3px)}.dialog .eyebrow{margin-top:10px}.dialog h2{font-size:var(--fs-h3);margin-top:16px;line-height:var(--lh-title);letter-spacing:var(--ls-title)}.dialog>p{font-size:var(--fs-small);color:var(--muted)}.dialog-close{position:absolute;right:12px;top:8px;line-height:1;width:40px;height:40px;border:0;background:none;color:var(--ink);font-size:28px}.consent-option{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:19px 0;cursor:pointer}.consent-option strong{font-size:var(--fs-caption);display:block;font-weight:500}.consent-option small{font-size:var(--fs-caption);color:var(--muted);display:block}.consent-option input{width:20px;height:20px;accent-color:var(--dark);flex-shrink:0}.dialog>.button{width:100%;margin-top:18px}.dialog>.fine-print{margin-top:18px}.toast{position:fixed;z-index:var(--z-toast);bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 40px);background:var(--ink);color:var(--white);font-size:var(--fs-caption);padding:15px 25px;box-shadow:var(--shadow-toast)}
@media(min-width:1600px){.hero-grid{min-height:730px}.hero-photo{min-height:720px}}
@media(max-width:1200px){.container{width:calc(100% - 64px)}.desktop-nav{gap:17px;margin-left:0}.header-inner{gap:18px}.header-phone{font-size:var(--fs-caption)}.brand,.brand img{width:125px}.header-cta{gap:12px}.hero-grid{gap:30px;min-height:600px;grid-template-columns:1fr 1fr}.hero-photo{min-height:600px}.hero-actions{gap:10px}.hero-actions .button{font-size:var(--fs-caption);padding-inline:14px;gap:12px}.budget-grid{gap:60px}.footer-top{gap:25px}.footer-phone{font-size:var(--fs-small)}.product-hero{gap:35px}.estimate-layout{gap:30px}.estimate-summary{padding:25px}.estimate-price{font-size:var(--fs-h1)}.contact-grid>a{padding:22px}.split{gap:55px}}
@media(max-width:1000px){.desktop-nav{display:none}.menu-toggle{display:block}.header-phone{font-size:var(--fs-caption)}.header-inner{height:76px}.hero h1{font-size:var(--fs-h1)}.hero-grid{min-height:555px}.hero-photo{min-height:555px}.hero-copy{padding-top:20px}.hero-facts{margin-top:25px}.section{padding-block:70px}.section-topless{padding-top:0}.section-heading{grid-template-columns:1fr 2.1fr;gap:26px}.section-heading h2{font-size:var(--fs-h2)}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-col) var(--gap-tile)}.budget-grid{gap:38px}.project-grid{gap:20px}.project-card h3{font-size:var(--fs-h4)}.project-label{left:10px;top:10px;padding:6px}.steps{grid-template-columns:repeat(2,1fr);gap:35px}.footer-top{grid-template-columns:1fr 1fr;gap:40px}.cta-inner h2{font-size:var(--fs-h2)}.product-hero{grid-template-columns:1fr 1fr;gap:30px;align-items:start}.product-hero h1{font-size:var(--fs-h1)}.product-hero .hero-actions .button{width:100%}.product-hero .hero-actions .text-link{margin-top:5px}.feature-grid h3,.feature-grid h2{font-size:var(--fs-h4)}.feature-grid{gap:var(--gap-col)}.split{grid-template-columns:1fr 1.35fr;gap:35px}.specs>div{grid-template-columns:120px 1fr;gap:18px}.options-grid{gap:24px}.options-grid h3{font-size:var(--fs-h4)}.project-detail{gap:35px;grid-template-columns:1fr 1fr}.project-gallery{grid-template-columns:1fr}.guide-grid{grid-template-columns:1fr;gap:15px}.guide-grid article{display:grid;grid-template-columns:1fr 2fr;column-gap:32px}.guide-grid article>h2{margin-top:0;grid-column:2}.guide-grid article>p,.guide-grid article>.text-link{grid-column:2}.guide-grid article>.text-link{justify-self:start}.estimate-layout{grid-template-columns:1fr}.estimate-summary{position:static;grid-row:1;padding:28px}.estimate-summary .estimate-area{float:right;font-size:var(--fs-h3);margin:0 0 15px 20px}.estimate-price{font-size:var(--fs-h1);margin-top:15px}.estimate-summary>.fine-print{max-width:650px}.summary-actions{display:flex;gap:25px;flex-wrap:wrap;margin:18px 0}.estimate-layout{gap:36px}.contact-grid{grid-template-columns:1fr}.contact-grid>a{display:grid;grid-template-columns:1.2fr 1fr 20px;align-items:center;gap:20px;padding:30px}.contact-grid svg{align-self:center}}
@media(max-width:700px){:root{--container:100%;--fs-h3:22px;--fs-lead:16px;--fs-small:13px;--fs-caption:12px;--header-height:69px;--bar-height:calc(55px + max(10px, env(safe-area-inset-bottom, 0px)));--bar-height-launcher:calc(var(--bar-height) + 64px);--bar-height-banner:280px;--thead-height:136px}.container{width:calc(100% - 40px)}.topline .container{padding-block:7px}.topline a{display:none}.header-inner{height:68px;gap:8px}.brand,.brand img{width:119px}.header-phone{display:none}.header-cta{display:none}.menu-toggle{width:44px;padding:8px;flex-shrink:0}.mobile-nav{max-height:calc(100dvh - 121px - 55px - max(10px,env(safe-area-inset-bottom)))}.hero{padding:0 0 25px}.hero-grid{display:flex;flex-direction:column;gap:28px;min-height:0}.hero-copy{padding:34px 0 0}.hero-copy>.eyebrow{font-size:var(--fs-caption);gap:10px}.small-line{width:20px}.hero h1{font-size:var(--fs-h1);line-height:1.3;letter-spacing:-.055em;margin:21px 0 22px}.hero-copy>p{line-height:1.9}.hero-copy p br{display:none}.hero-actions{width:100%;gap:10px;margin-top:7px}.hero-actions .button{font-size:var(--fs-caption);padding:13px 12px;gap:10px;min-height:49px}.hero-actions>.button{flex:1}.hero-facts{margin-top:24px;padding-top:17px}.hero-photo{min-height:350px;aspect-ratio:1.02;width:100%}.hero-photo figcaption{bottom:20px;left:20px}.hero-photo .photo-link{bottom:18px;right:18px;width:36px;height:36px}.section{padding-block:52px}.section-topless{padding-top:0}.section-heading{display:block;margin-bottom:28px}.section-heading>.eyebrow{margin:0 0 21px}.section-heading h2{font-size:var(--fs-h2);line-height:1.4;letter-spacing:-.045em}.section-description{line-height:1.9}.eyebrow{gap:12px}.category-links{flex-direction:column;gap:0;padding:0;margin-bottom:28px}.category-links a{padding:15px 0;font-size:var(--fs-caption)}.category-links a+a{border-left:0;padding-left:0;border-top:1px solid var(--line)}.product-grid{grid-template-columns:1fr;gap:var(--gap-col)}.card-photo{aspect-ratio:1.4}.card-content h3{font-size:var(--fs-h4)}.card-content p{line-height:1.9}.card-content .eyebrow{font-size:var(--fs-caption)}.section-bottom{margin-top:28px;gap:18px;align-items:flex-start;flex-wrap:wrap}.button{min-height:50px;padding:14px 19px;gap:23px}.section-bottom .text-link{font-size:var(--fs-caption)}.budget-grid{grid-template-columns:1fr;gap:32px}.budget-grid h2{font-size:var(--fs-h2);line-height:1.35}.budget-grid .fine-print{font-size:var(--fs-caption)}.budget-examples>div{padding:22px 0}.project-grid{grid-template-columns:1fr;gap:33px}.project-image{aspect-ratio:1;max-height:500px}.project-label{left:14px;top:14px}.project-card h3{font-size:var(--fs-h4)}.project-card .eyebrow{font-size:var(--fs-caption)}.project-image img{object-position:center 43%}.steps{grid-template-columns:1fr 1fr;gap:27px 24px}.steps h3{font-size:var(--fs-small);line-height:1.5}.steps p{line-height:1.85}.step-number{margin-bottom:20px}.faq-list{margin-left:0}.faq-list summary{padding-block:21px;line-height:1.8}.faq-list details>div{padding-right:20px}.cta-section{padding:45px 0}.cta-inner{flex-direction:column;align-items:flex-start;gap:15px}.cta-inner h2{font-size:var(--fs-h2);line-height:1.4}.cta-inner>.button{width:100%}.site-footer{padding-top:46px;padding-bottom:var(--bar-height)}html:has(.compare-launcher:not([hidden])) .site-footer{padding-bottom:var(--bar-height-launcher)}html:has(.cookie-banner:not([hidden])) .site-footer{padding-bottom:var(--bar-height-banner)}.footer-top{grid-template-columns:1fr 1fr;gap:36px 24px;padding-bottom:35px}.footer-top>div:first-child{grid-column:1/-1}.footer-top>div:last-child{grid-column:1/-1}.footer-top>div{font-size:var(--fs-small);gap:11px}.footer-top .eyebrow{font-size:var(--fs-caption);margin-bottom:6px}.footer-brand{font-size:var(--fs-h1)}.footer-top p{font-size:var(--fs-small);margin-bottom:0}.footer-phone{font-size:var(--fs-small)}.footer-bottom{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:var(--fs-caption);padding:22px 0}.footer-bottom .text-button{font-size:var(--fs-caption);text-align:left}.mobile-actions{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:var(--z-mobile-bar);background:var(--paper);border-top:1px solid var(--line);padding:10px 16px max(10px,env(safe-area-inset-bottom));gap:12px}.mobile-actions a{display:flex;align-items:center;justify-content:center;gap:16px;min-height:44px;font-size:var(--fs-caption);font-weight:500}.mobile-actions a:first-child{flex:1.5;background:var(--dark);color:var(--white)}.mobile-actions a:last-child{flex:1;border:1px solid var(--line)}.cookie-banner{bottom:calc(var(--bar-height) + var(--gap-tile));left:12px;width:calc(100% - 24px);padding:17px}.cookie-banner strong{font-size:var(--fs-small)}.cookie-banner p{font-size:var(--fs-caption);margin-block:8px 12px;line-height:1.7}.cookie-actions{gap:8px}.cookie-actions .button{min-height:39px;padding:9px 10px;font-size:var(--fs-caption);flex:1;white-space:nowrap}.cookie-actions .text-button{font-size:var(--fs-caption);padding:7px 4px}.dialog{padding:26px}.consent-option{padding:16px 0}.consent-option small{font-size:var(--fs-caption)}.toast{bottom:80px;font-size:var(--fs-caption);width:max-content}.page-intro{padding-top:22px;padding-bottom:38px}.breadcrumbs{gap:8px;margin-bottom:33px}.page-intro>.eyebrow{margin-bottom:20px}.page-intro h1{font-size:var(--fs-h1);line-height:1.4;overflow-wrap:anywhere}.page-intro .lead{font-size:var(--fs-lead);margin-top:22px;line-height:1.9}.catalog-tools{gap:20px;flex-wrap:wrap;margin-top:20px}.catalog-tools .text-link{font-size:var(--fs-caption)}.product-intro{padding-top:22px;padding-bottom:0}.product-hero{grid-template-columns:1fr;gap:30px}.product-hero h1{font-size:var(--fs-h1);margin-top:20px;line-height:1.35}.product-hero .lead{font-size:var(--fs-lead);line-height:1.85}.product-hero .hero-actions{display:flex}.product-hero .hero-actions .button{width:auto}.product-hero .hero-actions .text-link{margin:0;padding:13px}.feature-grid{grid-template-columns:1fr;gap:calc(var(--gap-row) / 2)}.feature-grid h3,.feature-grid h2{font-size:var(--fs-h4)}.use-cases{gap:8px;margin-top:10px}.use-cases span{padding:8px 11px}.split{grid-template-columns:1fr;gap:27px}.split h2{font-size:var(--fs-h2);margin-top:16px}.specs>div{grid-template-columns:110px 1fr;gap:15px;padding:17px 0}.important-note{padding:22px}.options-grid{grid-template-columns:1fr;gap:22px}.options-grid .eyebrow{margin-bottom:15px}.options-grid h3{font-size:var(--fs-h4)}.compare-picker{gap:8px}.compare-picker label{padding:9px 10px}.compare-picker input{width:16px;height:16px}.compare-table th,.compare-table td{min-width:160px}.compare-table tbody th{min-width:110px}.project-detail{grid-template-columns:1fr;gap:30px}.project-gallery{grid-template-columns:1fr 1fr;gap:12px}.project-detail aside{position:static}.project-detail aside h2{font-size:var(--fs-h3)}.project-detail aside p,.fact-list{font-size:var(--fs-caption)}.guide-grid article{display:block}.guide-grid h2{margin-top:20px}.article{padding-bottom:50px}.article h1{font-size:var(--fs-h1)}.prose{font-size:var(--fs-body);line-height:1.95}.prose h2{margin-top:35px}.editorial-image{min-height:280px;aspect-ratio:1.2}.editorial-note{padding:25px}.contact-grid>a{display:flex;gap:18px;align-items:flex-start;padding:25px}.contact-grid svg{align-self:flex-end}.contact-note{padding:25px 0}.estimate-summary{padding:23px}.estimate-price{font-size:var(--fs-h1);clear:both}.estimate-summary .estimate-area{float:none;font-size:var(--fs-h3);margin-top:25px}.estimate-summary .summary-actions{flex-direction:column;align-items:flex-start;gap:3px}.estimate-summary .summary-actions button{font-size:var(--fs-caption)}.estimate-summary .whatsapp-link{font-size:var(--fs-caption)}.form-panel{padding:20px 16px}.form-row{grid-template-columns:1fr;gap:13px}.form-panel input:not([type=checkbox]),.form-panel select{font-size:var(--fs-lead);padding:11px 9px}.form-panel label:not(.checkbox-row){font-size:var(--fs-small)}.form-panel .fine-print{font-size:var(--fs-caption)}.form-panel .submit-button{font-size:var(--fs-caption)}.operator-toolbar{flex-wrap:wrap;gap:15px}.operator-card{padding:18px}.operator-card dl{grid-template-columns:100px 1fr;font-size:var(--fs-caption)}.operator-card h2,.operator-card h3{font-size:var(--fs-h4)}.operator-card select{max-width:100%;font-size:var(--fs-lead)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.site-header,.topline,.site-footer,.mobile-actions,.cookie-banner,.dialog,.summary-actions,.whatsapp-link,.form-panel:nth-child(2),.skip-link{display:none!important}body{background:var(--white);color:var(--print-ink);font-size:11pt}.container{width:100%}.page-intro{padding:20px 0}.page-intro h1{font-size:24pt}.estimate-layout{display:block}.estimate-summary{position:static;page-break-inside:avoid;background:var(--print-tint)}.estimate-summary ul,.estimate-summary>strong,.estimate-summary hr{display:block}.section{padding:20px 0}.breadcrumbs{display:none}a:after{content:none!important}.estimate-layout>.estimate-summary{margin-top:25px}}.compare-launcher{position:fixed;bottom:24px;right:24px;background:var(--dark);color:var(--white);z-index:var(--z-compare);padding:15px 22px;font-size:var(--fs-caption)}.compare-launcher:not(:focus-visible){box-shadow:var(--shadow-launcher)}.compare-launcher:hover{color:var(--white);background:var(--accent)}.compare-launcher[hidden]{display:none}.operator-card{padding:24px;border:1px solid var(--line);margin-top:20px}.operator-card-header{display:flex;align-items:start;justify-content:space-between;gap:20px}.operator-details{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 30px}.operator-details dt{font-size:var(--fs-caption);color:var(--muted);margin-top:12px}.operator-details dd{margin:4px 0;overflow-wrap:anywhere}.operator-actions{display:flex;gap:14px;align-items:end;margin-top:24px}.operator-actions select{padding:12px}.operator-phone{font-size:18px}.operator-empty{padding:30px;background:var(--tint)}.operator-more{margin-top:24px}.operator-card h2{font-size:23px}@media(max-width:700px){.compare-launcher{bottom:calc(var(--bar-height) + var(--gap-tile));right:16px;padding:12px 16px}.operator-details{grid-template-columns:1fr}.operator-card-header{flex-direction:column}}.portfolio-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.portfolio-filter{display:flex;align-items:center;gap:14px;background:transparent;border:1px solid var(--line);padding:12px 17px;color:var(--ink);font-size:var(--fs-caption);min-height:46px}.portfolio-filter span{font-size:var(--fs-caption);opacity:.8}.portfolio-filter[aria-pressed=true]{background:var(--dark);border-color:var(--dark);color:var(--white)}.video-dialog-close:hover,.portfolio-filter:hover:not([aria-pressed=true]),.compare-picker label:hover,.compare-check:hover{border-color:var(--accent)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-row) var(--gap-col)}.portfolio-cover{display:block;aspect-ratio:4/5;background:var(--media-dark);position:relative;overflow:hidden}.portfolio-cover img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-medium) var(--ease-standard)}.portfolio-cover:hover img{transform:scale(1.035)}.portfolio-cover:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,var(--scrim-cover));pointer-events:none}.portfolio-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:62px;height:62px;display:grid;place-items:center;border:1px solid var(--play-line);border-radius:var(--radius-round);background:var(--play-fill);color:var(--white);z-index:var(--z-over-media);backdrop-filter:blur(5px)}.portfolio-duration{position:absolute;bottom:18px;left:18px;z-index:var(--z-over-media);color:var(--white);font-size:var(--fs-caption);letter-spacing:.05em}.portfolio-card>.eyebrow{margin:24px 0 12px}.portfolio-card>p{font-size:var(--fs-small);color:var(--muted);max-width:38em}.video-dialog{padding:0;border:0;width:min(1060px,calc(100vw - 64px));max-height:calc(100dvh - 64px);overflow:auto;background:var(--paper);color:var(--ink)}.video-dialog[open]{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.video-dialog::backdrop{background:var(--backdrop-media);backdrop-filter:blur(5px)}.video-stage{background:var(--dark);display:grid;place-items:center;min-height:480px}.video-stage video{display:block;width:100%;max-height:calc(100dvh - 64px);object-fit:contain}.video-dialog-close{position:absolute;right:12px;top:12px;width:44px;height:44px;border:1px solid var(--line);background:var(--paper);font-size:29px;line-height:1;z-index:var(--z-dialog-close)}.video-dialog-details{padding:75px 35px 40px;align-self:center}.video-dialog-details h2{font-size:var(--fs-h3);margin-top:16px;line-height:var(--lh-title);letter-spacing:var(--ls-title)}.video-dialog-details>p{font-size:var(--fs-small)}.video-dialog-details .button{margin-top:16px}.portfolio-count{margin-bottom:24px}@media(max-width:1000px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-col) var(--gap-tile)}.video-dialog-details{padding:60px 24px 25px}}@media(max-width:700px){.portfolio-grid{grid-template-columns:1fr;gap:var(--gap-col)}.portfolio-cover{aspect-ratio:4/4.4}.portfolio-card h3{font-size:var(--fs-h3)}.portfolio-filter{padding:11px 13px;gap:9px}.video-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.video-dialog[open]{display:block}.video-stage{min-height:0}.video-stage video{height:auto;max-height:61dvh}.video-dialog-details{padding:25px 22px}.video-dialog-details h2{margin-top:12px}.video-dialog-details .eyebrow{font-size:var(--fs-caption)}.video-dialog-close{position:fixed;right:22px;top:22px}.video-dialog-details .button{margin-top:4px}}@media print{.video-dialog,.portfolio-filters{display:none!important}}.individual-price{font-family:var(--display);font-size:25px;line-height:1.4;overflow-wrap:normal}.project-options{margin-top:24px;border-top:1px solid var(--line);padding-top:24px}.field-label{display:block;font-size:var(--fs-small);margin-bottom:12px;font-weight:600}.estimate-options{font-size:var(--fs-small);color:var(--muted)}.flagship-note{border-left:3px solid var(--accent);padding:14px 20px;margin-top:26px;font-size:var(--fs-caption);line-height:1.8;background:var(--tint)}@media(max-width:700px){.hero-home h1{font-size:var(--fs-h1);letter-spacing:-.055em}.individual-price{font-size:var(--fs-h3)}.project-options .field-label{font-size:var(--fs-small)}}/* Owner-provided architectural visualizations, kept distinct from built projects. */.visualization-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-row) var(--gap-col)}@media(min-width:701px){.visualization-grid-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Tablet: a third product card sits centred under the first two — on every page, including the home teaser. */
@media(min-width:701px) and (max-width:1000px){.product-grid .product-card:last-child:nth-child(3){grid-column:1/-1;justify-self:center;width:calc(50% - var(--gap-tile) / 2)}}.visualization-card{min-width:0}.visualization-link{display:flex;flex-direction:column;height:100%;color:var(--ink)}.visualization-cover{aspect-ratio:3/2;overflow:hidden;background:var(--band)}.visualization-cover img{width:100%;height:100%;object-fit:cover}.visualization-cover-portrait img{object-fit:contain}.visualization-caption{flex:1;display:flex;flex-direction:column;align-items:flex-start;padding:24px 0 16px;border-bottom:1px solid var(--line)}.visualization-caption>.eyebrow{margin-bottom:12px}.visualization-caption h3{overflow-wrap:anywhere}.visualization-action{align-self:stretch;margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:var(--fs-caption);font-weight:500;color:var(--muted)}.visualization-action>span{font-size:19px;line-height:1}.visualization-link:hover .visualization-action{color:var(--accent)}.visualization-more{margin-top:var(--space-heading)}.visualization-more>summary{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:52px;padding:14px 20px;border:1px solid var(--line);list-style:none;cursor:pointer;font-size:var(--fs-caption);font-weight:600}.visualization-more>summary::-webkit-details-marker{display:none}.visualization-more>summary:hover{color:var(--accent);border-color:var(--accent)}.visualization-more[open]>summary svg{transform:rotate(180deg)}.visualization-more>.visualization-grid{margin-top:var(--gap-row)}@media(max-width:1000px){.visualization-grid{gap:var(--gap-col) var(--gap-tile)}.visualization-caption h3{font-size:var(--fs-h4)}}@media(max-width:700px){.visualization-grid{grid-template-columns:1fr;gap:var(--gap-col)}.visualization-caption{padding-top:17px}.visualization-caption h3{font-size:var(--fs-h4)}.visualization-more{margin-top:26px}.visualization-more>summary{width:100%;min-height:52px}.visualization-more>.visualization-grid{margin-top:28px}}@media print{.visualization-more>summary{display:none}.visualization-card{break-inside:avoid}}
/* == home == */
/* Desktop: the 4:5 video frame is shown whole, as tall as the first screen allows; tablets and phones keep the square crop. The caption stays left of the watermark at the bottom centre. */
@media(min-width:1001px){.hero-home .hero-grid{grid-template-columns:minmax(0,1fr) auto;min-height:0}.hero-home .hero-photo{height:clamp(560px,calc(100svh - 170px),760px);aspect-ratio:4/5;min-height:0}}.hero-home .hero-photo figcaption{max-width:170px}.hero-home .hero-copy{container-type:inline-size}.hero-proof{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.hero-proof span{display:grid;align-content:start;gap:4px;line-height:1.5}.hero-proof b{white-space:nowrap}.why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap-row) var(--gap-col)}.why-grid>div{border-top:1px solid var(--line);padding-top:24px}.why-grid p{font-size:var(--fs-small);color:var(--muted);margin:0}.home-directory{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--gap-col);margin-top:var(--space-block)}.home-directory ul{list-style:none;padding:0;margin:14px 0 0;border-top:1px solid var(--line)}.home-directory>div:first-child ul{columns:2;column-gap:var(--gap-col)}.home-directory li{break-inside:avoid;border-bottom:1px solid var(--line)}.home-directory li a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;font-size:var(--fs-small);line-height:1.5}.budget-actions{display:flex;align-items:center;gap:32px;flex-wrap:wrap;margin-top:32px}.budget-section .budget-actions .button{margin-top:0}.budget-section .text-link{color:var(--paper);border-color:var(--line-dark)}.budget-section .text-link:hover{color:var(--hover-dark);border-color:var(--hover-dark)}
@media(max-width:1000px){.why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-directory{grid-template-columns:1fr 1fr}.home-directory>div:first-child{grid-column:1/-1}}
/* Phones (U-12): the photo follows the buttons and the facts go under it, so the photo shows in the first screen; the copy block is unwrapped for the reorder and its spacing moves onto its items. */@media(max-width:700px){.hero-home .hero-grid{gap:0}.hero-home .hero-copy{display:contents}.hero-home .hero-copy>.eyebrow{margin-top:var(--gap-col)}.hero-home .hero-photo{margin-top:var(--gap-col)}.hero-home .hero-proof{order:1}.hero-proof{grid-template-columns:1fr 1fr;gap:14px}.why-grid{grid-template-columns:1fr;gap:23px}.home-directory{grid-template-columns:1fr;margin-top:40px}.home-directory>div:first-child ul{columns:1}}/* Контейнерный, а не медиазапрос из CR-01 (02-07): ширина колонки текста героя зависит не только от ширины окна, но и от его высоты — высота фото задана clamp() от 100svh. */@container (max-width:460px){.hero-proof{grid-template-columns:1fr 1fr;gap:14px}}/* == product == *//* Terms strip: the conditions and the service page links, one under the other. */
.terms-links{display:grid;justify-items:start;gap:2px}/* LCP tie-break (D-06): on /catalog/ both this card's photo and the next card's photo (data-category="bioklimaticheskie-pergoly") are eager (D-05) and render at the identical .card-photo box size — Chromium's LCP-size heuristic reads them as exactly tied and, empirically, keeps whichever finishes painting last in that frame, which is not reliably this (first) card. Unlike transform (paint-only, see the next rule), width/height change the <img>'s own layout box, which is what that heuristic reads — a 6% bump (clipped by the same overflow:hidden .card-photo) makes this card's declared size strictly the larger one and settles the tie for good (UX-08 gap found while implementing D-05/D-06). The card frame itself is clean (media/frames/flagship-card.webp, cut above the «ALUM PERGOLA» watermark), so the bump needs no top anchor (M002 T007 removed U-02). */.product-card[data-category="sdvizhnye-bioklimaticheskie-pergoly"] .card-photo img{width:106%;height:106%;max-width:none;margin-left:-3%}/* Catalogue: groups first (UX-08/D-01), then "О каталоге" (one column, --measure wide, the label-left layout comes free from .catalog-group) below them, before the fine print. */.catalog-intro{max-width:var(--measure)}.catalog-intro p{font-size:var(--fs-body);color:var(--muted)}.catalog-intro p+p{margin-top:var(--gap-tile)}.catalog-group+.catalog-group{margin-top:var(--space-block);padding-top:var(--space-heading);border-top:1px solid var(--line)}.catalog-group-heading h2{margin-bottom:16px}.catalog-group-heading p{font-size:var(--fs-body);color:var(--muted);max-width:360px;margin:0}.catalog-group+.fine-print{margin-top:var(--space-heading)}
@media(min-width:1001px){.catalog-group{display:grid;grid-template-columns:var(--label-cols);gap:var(--label-gap);align-items:start}.catalog-group-heading{position:sticky;top:130px}.catalog-group .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-group .product-card:only-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-col);align-items:start}.catalog-group .product-card:only-child .card-content{padding-top:0}}
@media(max-width:1000px){.catalog-group-heading{margin-bottom:28px}}/* Product page: scope note, flagship section with small portrait media (never upscaled), summary, types, pairing (desktop columns follow the option grid, sized by data-pairs), terms, measurement checks, reading. */.scope-note{margin:24px 0 0;padding:16px 20px;border-left:3px solid var(--accent);background:var(--tint);font-size:var(--fs-small)}.scope-note strong{font-weight:600}.sliding-section{background:var(--band)}.sliding-copy>.eyebrow{margin-bottom:24px}.sliding-copy>p{font-size:var(--fs-body);color:var(--muted);max-width:var(--measure)}.sliding-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-col);margin:32px 0;max-width:var(--measure)}.sliding-modes>div{border-top:1px solid var(--line-strong);padding-top:24px}.sliding-modes strong{display:block;font-weight:600;font-size:var(--fs-body);margin-bottom:8px}.sliding-modes p{font-size:var(--fs-small);color:var(--muted);margin:0}.sliding-media{display:grid;grid-template-columns:repeat(2,minmax(0,200px));gap:24px;align-items:start}.sliding-tile{display:flex;flex-direction:column;gap:8px;color:var(--ink)}.sliding-thumb{position:relative;display:block;aspect-ratio:9/16;overflow:hidden;background:var(--media-dark);margin-bottom:6px}.sliding-thumb img{width:100%;height:100%;object-fit:cover}.sliding-tile strong{font-size:var(--fs-small);font-weight:600;line-height:1.5}.sliding-tile-note{font-size:var(--fs-caption);color:var(--muted)}.sliding-tile:hover strong{color:var(--accent)}
@media(min-width:1001px){.sliding-layout{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--gap-split);align-items:center}}@media(max-width:1000px){.sliding-media{margin-top:40px}}.product-summary{display:grid;grid-template-columns:1fr 1.3fr;gap:var(--gap-split);margin-top:var(--space-block);padding-top:var(--space-heading);border-top:1px solid var(--line)}.product-summary h3{font-size:var(--fs-h4);margin-bottom:16px}.product-summary .use-cases{margin-top:0}.product-summary .fine-print{margin-top:14px}.type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-row) var(--gap-col)}.type-grid article{border-top:1px solid var(--line);padding-top:24px}.type-grid h2{font-size:var(--fs-h4);line-height:var(--lh-title);margin-bottom:12px;letter-spacing:var(--ls-title)}.type-grid p{font-size:var(--fs-small);color:var(--muted)}.option-links{display:flex;flex-wrap:wrap;gap:4px var(--gap-col);margin:4px 0 0}.section-heading+.product-pairing{margin-top:0;padding-top:0;border-top:0}.product-pairing{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--gap-split);margin-top:var(--space-block);padding-top:var(--space-heading);border-top:1px solid var(--line)}.product-pairing h3{font-size:var(--fs-h4);margin-bottom:16px}.pair-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-col)}.pair-card{display:flex;flex-direction:column;gap:6px;color:var(--ink)}.pair-photo{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:var(--tint-photo);margin-bottom:8px}.pair-photo img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-standard)}.pair-card:hover img{transform:scale(1.035)}.pair-photo .card-badge{left:10px;bottom:10px;padding:4px 7px}.pair-card strong{font-weight:600;font-size:var(--fs-small)}.pair-card small{font-size:var(--fs-caption);color:var(--muted)}.pair-card:hover strong{color:var(--accent)}.alt-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.alt-list li{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:16px 0;border-bottom:1px solid var(--line)}.alt-list span{font-size:var(--fs-small);color:var(--muted)}.alt-list .text-link{border-bottom:0;padding:4px 0}.terms-strip{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--gap-split);margin-top:var(--space-block);padding-top:var(--space-heading);border-top:1px solid var(--line-strong)}.terms-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-col);margin:0}.terms-list dt{font-size:var(--fs-caption);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--accent);margin-bottom:8px}.terms-list dd{margin:0;font-size:var(--fs-body)}.calendar-note{font-size:var(--fs-caption);color:var(--muted)}.calendar-note strong{color:var(--ink);font-weight:600}.measure-checks{padding:32px;background:var(--band);font-size:var(--fs-small)}.measure-checks h3{font-size:var(--fs-h4);margin-bottom:16px}.measure-checks p{color:var(--muted);margin-bottom:14px}.measure-checks ul{margin:0;padding-left:1.1rem}.measure-checks li+li{margin-top:10px}.measure-checks strong{font-weight:600}.reading-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--gap-row) var(--gap-col)}.reading-grid article{display:flex;flex-direction:column;align-items:flex-start;border-top:1px solid var(--line);padding-top:24px}.reading-grid h3{margin:12px 0}.reading-grid p{font-size:var(--fs-small);color:var(--muted)}.reading-grid .text-link{margin-top:auto}.cta-actions{display:flex;flex-direction:column;align-items:flex-end;gap:16px;flex-shrink:0}
@media(min-width:1001px){.product-pairing{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-col)}.product-pairing>div:first-child{grid-column:span 2}.product-pairing>div:only-child{grid-column:1/-1}.product-pairing[data-pairs="1"]>div:first-child:not(:only-child){grid-column:span 1}.product-pairing[data-pairs="1"]>div+div{grid-column:span 2}.product-pairing[data-pairs="2"] .pair-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-col)}.product-pairing[data-pairs="1"] .pair-grid{grid-template-columns:minmax(0,1fr)}.product-pairing[data-pairs="1"] .alt-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gap-col)}.product-steps .steps{grid-template-columns:repeat(3,minmax(0,1fr))}.faq-layout{display:grid;grid-template-columns:var(--label-cols);gap:var(--label-gap);align-items:start}.faq-layout>.faq-list{margin-left:0}}
@media(max-width:1000px){.product-summary,.product-pairing,.terms-strip{grid-template-columns:1fr;gap:36px}.type-grid{grid-template-columns:1fr;gap:24px}.measure-checks{margin-bottom:36px}}
@media(max-width:700px){.pair-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.terms-list{grid-template-columns:1fr;gap:20px}.cta-actions{align-items:stretch;width:100%}.cta-actions .button{width:100%}}/* == projects == *//* Case page: the Instagram source is a quiet link under the closing CTA button. */
.cta-actions .case-source{color:var(--muted);border-bottom-color:transparent;font-weight:500}.cta-actions .case-source:hover{color:var(--accent);border-color:var(--accent)}
@media(min-width:701px){.project-image{aspect-ratio:4/5}}.project-card>p{font-size:var(--fs-small);color:var(--muted);margin:0;max-width:34em}.portfolio-object a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.portfolio-object a:hover{color:var(--accent)}.portfolio-card:target .portfolio-cover:not(:focus-visible){outline:2px solid var(--accent);outline-offset:6px}/* Case page: hero with the lead frame, story steps with the systems panel, then the object's video and frames. The lead frame is a 4:3 window above the video watermark (--case-lead-ratio, M003 T007); --case-lead-width keeps it inside the first screen. */.case-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap-split);align-items:center}.case-hero h1{margin-top:24px;overflow-wrap:anywhere}.case-nobr,.nobr{white-space:nowrap}.case-hero .hero-actions{gap:16px var(--gap-col)}.case-lead{justify-self:end;width:min(100%,var(--case-lead-width))}.case-lead img,.case-frame img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}.case-lead img{aspect-ratio:var(--case-lead-ratio)}.case-lead figcaption,.case-frame figcaption{font-size:var(--fs-caption);color:var(--muted);margin-top:12px}.case-story{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:var(--gap-split);align-items:start}.case-steps>div{display:grid;grid-template-columns:190px minmax(0,1fr);gap:var(--gap-col);border-top:1px solid var(--line);padding:32px 0}.case-steps h2{font-size:var(--fs-h4);line-height:var(--lh-title);margin:0;display:flex;align-items:baseline;gap:14px;letter-spacing:var(--ls-title)}.case-steps h2 span{font:600 var(--fs-caption)/1.6 var(--body);letter-spacing:var(--ls-caps);color:var(--muted)}.case-steps p{font-size:var(--fs-body);margin:0;max-width:var(--measure)}.case-details{margin:0;display:grid}.case-details>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:20px;padding:12px 0;border-top:1px solid var(--line);align-items:baseline}.case-details>div:first-child{border-top:0;padding-top:4px}.case-details dt{font-size:var(--fs-caption);color:var(--muted)}.case-details dd{margin:0;font-size:var(--fs-small)}.case-systems{position:sticky;top:130px;background:var(--tint);padding:32px}.case-systems h2{font-size:var(--fs-h4);margin-bottom:16px;line-height:var(--lh-title);letter-spacing:var(--ls-title)}.case-systems ul{list-style:none;padding:0;margin:0 0 18px}.case-systems a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 18px;align-items:center;padding:16px 0;border-top:1px solid var(--line-strong)}.case-systems strong{font-size:var(--fs-body);font-weight:600}.case-systems a span{grid-column:1;font-size:var(--fs-small);color:var(--muted)}.case-systems a svg{grid-column:2;grid-row:1/3}.case-systems .fine-print{margin:0}.case-draft-frames{display:grid;grid-template-columns:repeat(4,minmax(0,160px));gap:12px}.case-draft-frames img{width:100%;height:auto}
@media(max-width:1000px){.case-hero,.case-story{grid-template-columns:1fr;gap:40px}.case-lead{justify-self:start;width:min(100%,520px)}.case-systems{position:static}}@media(min-width:1001px){.portfolio-grid.case-media-2{grid-template-columns:repeat(2,minmax(0,1fr));width:calc((200% - 26px) / 3);margin-left:auto}}@media(max-width:700px){.case-steps>div{grid-template-columns:1fr;gap:14px}.case-details>div{grid-template-columns:1fr;gap:2px}}/* == solutions == *//* Scenario pages: hero with the first video (4:5, never upscaled), systems with reasons, practical topics, the plan under the steps; hub cards follow .project-grid. */
/* == video pages (/projects/video/<id>/, web/pages/videos.mjs) == *//* The player keeps the file's 720×1280 ratio (width/height attributes of <video>) at --video-width, which fits the window height: nothing shifts when it loads. Previous/next links and the counter sit under it. */.video-frame{width:min(100%,var(--video-width));background:var(--media-dark)}.video-frame video{display:block;width:100%;height:auto}.video-watch .fine-print{margin-top:var(--gap-tile)}.video-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--gap-tile) var(--gap-col);margin-top:var(--space-heading)}.video-pager-count{margin:0}.video-pager-links{display:flex;flex-wrap:wrap;gap:var(--gap-tile) var(--gap-col)}
.solution-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap-split);align-items:center}.solution-hero h1{margin-top:24px;overflow-wrap:anywhere}.solution-lead-more{font-size:var(--fs-body);color:var(--muted);max-width:var(--measure);margin:16px 0 0}.solution-hero .hero-actions{gap:16px var(--gap-col)}.solution-media{justify-self:end;width:min(100%,480px,calc((100svh - 240px) * .8));margin:0}.solution-media>img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}.solution-media figcaption{font-size:var(--fs-caption);color:var(--muted);margin-top:12px}.solution-systems,.solution-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-row) var(--gap-col)}.solution-systems article,.solution-topics article{display:flex;flex-direction:column;align-items:flex-start;border-top:1px solid var(--line);padding-top:24px}.solution-systems .eyebrow{margin-bottom:12px}.solution-systems p,.solution-topics p{font-size:var(--fs-small);color:var(--muted)}.solution-systems .text-link{margin-top:auto}.solution-alternatives{margin-top:var(--space-block);padding-top:var(--space-heading);border-top:1px solid var(--line)}.solution-alternatives h3{font-size:var(--fs-h4);margin-bottom:16px}.solution-alternatives .alt-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gap-col);border-top:0}.solution-alternatives .alt-list li{border-bottom:0;padding-top:0}.solution-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-col);margin-top:32px}.solution-cases article{background:var(--tint);padding:24px}.solution-cases .eyebrow{margin-bottom:12px}.solution-cases p{font-size:var(--fs-small);color:var(--muted);margin:0}.solution-plan{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--gap-split);margin-top:var(--space-block);padding-top:var(--space-heading);border-top:1px solid var(--line-strong)}.solution-plan>p{font-size:var(--fs-body);margin:0;max-width:var(--measure)}.solution-plan h3{font-size:var(--fs-h4);margin-bottom:16px}.solution-plan ul{margin:0;padding-left:1.1rem;font-size:var(--fs-small);color:var(--muted)}.solution-plan li+li{margin-top:10px}.solution-drafts .solution-draft h2{font-size:var(--fs-h3);margin-bottom:16px;line-height:var(--lh-title);letter-spacing:var(--ls-title)}.solution-draft>p{font-size:var(--fs-body);max-width:var(--measure)}.solution-faq{margin:0 0 12px}.solution-faq>div{border-top:1px solid var(--line);padding:16px 0}.solution-faq dt{font-size:var(--fs-small);font-weight:600}.solution-faq dd{margin:4px 0 0;font-size:var(--fs-small);color:var(--muted)}.solution-hub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-row) var(--gap-col)}.solution-card{display:flex;flex-direction:column;align-items:flex-start}.solution-card-image{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;margin-bottom:24px;background:var(--band)}.solution-card-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-medium) var(--ease-standard)}.solution-card-image:hover img{transform:scale(1.035)}.solution-card .eyebrow{margin-bottom:12px}.solution-card h2{font-size:var(--fs-h4);line-height:var(--lh-title);margin-bottom:12px;letter-spacing:var(--ls-title)}.solution-card>p{font-size:var(--fs-small);color:var(--muted)}.solution-card-systems{list-style:none;padding:0;margin:4px 0 24px;display:flex;flex-wrap:wrap;gap:8px}.solution-card-systems li{border:1px solid var(--line);padding:7px 11px;font-size:var(--fs-caption)}.solution-card .text-link{margin-top:auto}/* Visualization sections link to the real objects; a hidden frame in a local preview keeps its grid cell. */.visualization-section .section-description a{text-decoration:underline;text-underline-offset:3px}.visualization-grid>.draft-block{margin:0}
@media(max-width:1000px){.solution-hero{grid-template-columns:1fr;gap:40px}.solution-media{justify-self:start;width:min(100%,480px)}.solution-systems,.solution-topics,.solution-cases,.solution-hub{grid-template-columns:repeat(2,minmax(0,1fr))}.solution-alternatives .alt-list{grid-template-columns:repeat(2,minmax(0,1fr))}.solution-plan{grid-template-columns:1fr;gap:24px}}
@media(max-width:700px){.solution-systems,.solution-topics,.solution-cases,.solution-hub,.solution-alternatives .alt-list{grid-template-columns:1fr}}/* == company == *//* About: own video frame (4:5, never stretched to the copy's height) beside the copy, directions list, legal line under the terms. */
.about-intro{align-items:center}.about-cover{margin:0}.about-cover img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}.about-cover figcaption{font-size:var(--fs-caption);color:var(--muted);margin-top:12px}.about-copy{max-width:var(--measure)}.about-directions{list-style:none;padding:0;margin:32px 0 0;columns:2;column-gap:var(--gap-col);border-top:1px solid var(--line)}.about-directions li{break-inside:avoid;border-bottom:1px solid var(--line)}.about-directions a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;font-size:var(--fs-small);line-height:1.5}.about-directions a:hover{color:var(--accent)}.legal-line{margin:32px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:var(--fs-caption);color:var(--muted)}.about-links{justify-content:flex-start;gap:var(--gap-col)}
@media(max-width:700px){.about-directions{columns:1}
}@media(min-width:701px){.about-links{margin-left:var(--label-offset)}}
/* Contacts: channel rows beside the measurement panel on desktop; tablet and phone keep the shared .contact-grid rules. */
@media(min-width:1001px){.contacts-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--gap-split);align-items:start}.contact-rows{grid-template-columns:1fr;gap:0}.contact-rows>a{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr) 20px;align-items:center;gap:24px;padding:28px 6px;border:0;border-top:1px solid var(--line)}.contact-rows>a:last-child{border-bottom:1px solid var(--line)}.contact-rows .eyebrow{margin:0}.contact-rows svg{align-self:center}}.contact-rows>a:hover strong{color:var(--accent)}.contact-measure{display:flex;flex-direction:column;align-items:flex-start;background:var(--tint);padding:32px}.contact-measure h2{font-size:var(--fs-h3);line-height:var(--lh-title);margin:16px 0;letter-spacing:var(--ls-title)}.contact-measure p{font-size:var(--fs-small);color:var(--muted);margin:0}.contact-measure .button{margin-top:32px}.contact-measure .text-link{margin-top:16px}.contact-pending{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap-col);margin:0}.contact-pending dt{font-size:var(--fs-caption);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--accent);margin-bottom:8px}.contact-pending dd{margin:0;font-size:var(--fs-small)}
@media(max-width:1000px){.contact-measure{margin-top:32px}.contact-pending{grid-template-columns:repeat(2,minmax(0,1fr))}}/* Architects: systems as two columns of link rows, what to send beside where to send it. */.arch-actions{margin-top:32px;gap:12px 32px}.arch-systems{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gap-col);border-top:1px solid var(--line)}.arch-systems a{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:4px 18px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.arch-systems strong{font-size:var(--fs-body);font-weight:600}.arch-systems span{grid-column:1;font-size:var(--fs-small);color:var(--muted)}.arch-systems svg{grid-column:2;grid-row:1/3}.arch-systems a:hover strong{color:var(--accent)}.arch-send{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-split)}.arch-send h3{font-size:var(--fs-h4);margin-bottom:16px}.arch-list{margin:0;padding-left:1.1rem;font-size:var(--fs-small);color:var(--muted)}.arch-list li+li{margin-top:10px}.arch-contacts{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.arch-contacts a{display:grid;grid-template-columns:110px minmax(0,1fr) 20px;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.arch-contacts span{font-size:var(--fs-caption);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted)}.arch-contacts strong{font-family:var(--display);font-weight:400;font-size:var(--fs-contact);letter-spacing:var(--ls-title);line-height:var(--lh-title)}.arch-contacts a:hover strong{color:var(--accent)}#send .editorial-note{margin-bottom:0}
@media(max-width:1000px){.arch-send{grid-template-columns:1fr;gap:36px}}@media(max-width:700px){.arch-systems{grid-template-columns:1fr}.arch-contacts a{grid-template-columns:minmax(0,1fr) auto;gap:var(--gap-field) var(--gap-tile)}.arch-contacts span,.arch-contacts strong{grid-column:1}.arch-contacts svg{grid-column:2;grid-row:1/3}}/* 404 (scripts/build.mjs): catalogue button, then directions, projects and contacts in three lists. */.not-found>.button{margin-top:32px}.not-found-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-col);margin-top:var(--space-block);max-width:1000px}.not-found-links ul{list-style:none;padding:0;margin:14px 0 0;border-top:1px solid var(--line)}.not-found-links li{border-bottom:1px solid var(--line)}.not-found-links a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;font-size:var(--fs-small);line-height:1.5}.not-found-links a:hover{color:var(--accent)}
@media(max-width:700px){.not-found-links{grid-template-columns:1fr;gap:32px;margin-top:44px}}/* == compare == *//* Compare: how-to beside the answer legend, ready-made pairs with the status line, then one table per question group (content/compare.json). */
.compare-howto{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--gap-split);align-items:start}.compare-howto .lead{margin-top:0}.compare-steps{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px;max-width:var(--measure);counter-reset:step}.compare-steps li{counter-increment:step;display:grid;grid-template-columns:36px minmax(0,1fr);font-size:var(--fs-small)}.compare-steps li:before{content:counter(step,decimal-leading-zero);font-size:var(--fs-caption);font-weight:600;letter-spacing:var(--ls-caps);color:var(--muted);padding-top:3px}.compare-legend{margin:0;background:var(--tint);padding:32px;display:grid;gap:16px}.compare-legend>div{display:grid;grid-template-columns:168px minmax(0,1fr);gap:16px;align-items:baseline}.compare-legend dt,.compare-legend dd{margin:0}.compare-legend dd{font-size:var(--fs-small);color:var(--muted)}.answer{display:flex;align-items:center;gap:9px;font-size:var(--fs-small);font-weight:600;line-height:1.4;color:var(--ink)}.answer:before{content:'';width:10px;height:10px;border-radius:var(--radius-round);flex-shrink:0;border:1.5px solid var(--dark)}.answer-yes:before{background:var(--dark)}.answer-partly:before{background:linear-gradient(90deg,var(--dark) 50%,transparent 50%)}.answer-no{color:var(--muted)}.answer-no:before{border-color:var(--line-mid)}.answer-check{color:var(--accent)}.answer-check:before{border-style:dotted;border-color:var(--accent)}.compare-pairs-section{padding-bottom:var(--space-section)}.compare-subtitle{font-size:var(--fs-h3);line-height:var(--lh-title);margin:0 0 24px;letter-spacing:var(--ls-title)}.compare-pairs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,.6fr);gap:var(--gap-tile)}.compare-pair{display:grid;grid-template-rows:auto auto 1fr auto;gap:12px;padding:var(--gap-col);border:1px solid var(--line);background:var(--white);transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.compare-pair strong{font-family:var(--display);font-weight:400;font-size:var(--fs-h4);line-height:var(--lh-title);letter-spacing:var(--ls-title)}.compare-pair>span:not(.eyebrow){font-size:var(--fs-small);color:var(--muted)}.compare-pair svg{justify-self:end;align-self:end}.compare-pair:hover{border-color:var(--dark);color:inherit}.compare-pair-all{background:transparent}.compare-pair[aria-current],.compare-pair[aria-current]:hover{background:var(--dark);border-color:var(--dark);color:var(--paper)}.compare-pair[aria-current] .eyebrow,.compare-pair[aria-current]>span:not(.eyebrow){color:var(--muted-dark)}.compare-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}.compare-toolbar .compare-hint{margin:0;font-size:var(--fs-caption);color:var(--ink)}.compare-hint input{display:block;width:min(100%,520px);margin-top:10px;padding:8px 10px;border:1px solid var(--line);font-size:var(--fs-caption)}.compare-actions{display:flex;align-items:center;gap:var(--gap-col);flex-shrink:0}.compare-actions .text-button{font-size:var(--fs-caption)}.compare-section+.compare-section{padding-top:0}.compare-picker{align-items:center;margin-bottom:24px}.compare-picker-title{font-size:var(--fs-caption);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted);margin-right:8px}.compare-picker label{background:var(--white)}.compare-picker label:has(input:checked),.compare-check:has(input:checked){border-color:var(--dark)}.compare-off{margin:0;padding:24px;border:1px dashed var(--line-soft);font-size:var(--fs-small);color:var(--muted)}.compare-matrix{table-layout:fixed;min-width:980px}.compare-matrix th,.compare-matrix td{min-width:0;padding:var(--gap-tile);font-size:var(--fs-small);line-height:1.6}.compare-matrix thead th{vertical-align:bottom;font-size:var(--fs-body);font-weight:600;line-height:1.45}.compare-matrix thead th:first-child{width:27%;font-size:var(--fs-caption);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted)}.compare-matrix tbody th{width:auto;min-width:0;font-size:var(--fs-small);font-weight:500;line-height:1.6;color:var(--ink)}.compare-tag{display:block;width:fit-content;margin-bottom:10px;padding:3px 8px;background:var(--dark);color:var(--paper);font-size:var(--fs-caption);letter-spacing:var(--ls-caps);text-transform:uppercase}.answer-note{display:block;margin-top:6px;color:var(--muted)}.answer-links,.row-links{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:10px;font-size:var(--fs-caption);font-weight:600}.row-links{font-weight:500}.answer-links a,.row-links a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line-soft)}.compare-matrix tbody tr:hover>*{background:var(--tint-hover)}.compare-matrix td.is-picked{background:var(--white)}.compare-matrix thead th.is-picked{background:var(--dark);color:var(--paper)}.compare-matrix thead th.is-picked a:hover{color:var(--hover-dark)}.compare-matrix thead th.is-picked .compare-tag{background:var(--paper);color:var(--dark)}.compare-next .text-link{padding:4px 0}.compare-matrix tr.compare-draft>*{background:var(--draft-bg);border-style:dashed;border-color:var(--draft-line)}.compare-notes{padding-bottom:24px}.compare-outside-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-tile)}.compare-outside-card{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:12px 24px;padding:var(--gap-col);border:1px solid var(--line);background:var(--white)}.compare-outside-card>*{grid-column:1}.compare-outside-card strong{font-family:var(--display);font-weight:400;font-size:var(--fs-h4);letter-spacing:var(--ls-title);line-height:var(--lh-title)}.compare-outside-card>span:not(.eyebrow){font-size:var(--fs-small);color:var(--muted)}.compare-outside-card svg{grid-column:2;grid-row:1/4;align-self:center}.compare-outside-card:hover{border-color:var(--dark);color:inherit}.compare-outside-card.is-picked{border-color:var(--dark)}.compare-outside-card.is-picked:not(:focus-visible){box-shadow:var(--shadow-picked)}.compare-systems{display:grid;grid-template-columns:var(--label-cols);gap:var(--label-gap);align-items:center;margin-top:var(--space-block)}
@media(max-width:1000px){.compare-howto{grid-template-columns:1fr;gap:36px}.compare-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}.compare-systems{grid-template-columns:1fr;gap:18px}}@media(max-width:700px){.compare-pairs,.compare-outside-grid{grid-template-columns:1fr}.compare-toolbar{flex-direction:column;align-items:flex-start}.compare-legend>div{grid-template-columns:1fr;gap:4px}.compare-matrix{min-width:760px}.compare-matrix th,.compare-matrix td{padding:var(--gap-tile)}.answer-links,.row-links{gap:8px 16px}}/* == guides == */.guide-meta{margin:16px 0 0;font-size:var(--fs-caption);color:var(--muted)}.guide-grid .guide-promise{color:var(--ink);font-size:var(--fs-small)}.guide-grid .guide-updated{font-size:var(--fs-caption);margin:0 0 16px}.guide-hub-links{display:grid;grid-template-columns:var(--label-cols);gap:var(--label-gap);align-items:center;margin-top:var(--space-block);padding-top:var(--space-heading);border-top:1px solid var(--line)}.guide-table-wrap{margin:8px 0 32px}.guide-table{width:100%;border-collapse:collapse;font-size:var(--fs-small);line-height:1.6;text-align:left}.guide-table th,.guide-table td{padding:var(--gap-tile);border:1px solid var(--line);vertical-align:top}.guide-table thead th{background:var(--tint);font-weight:600}.guide-table tbody th{width:21%;font-weight:600}.guide-table td{color:var(--muted)}.prose .guide-table a{text-underline-offset:3px}.guide-next,.guide-more{margin-top:var(--space-block);padding-top:var(--space-heading);border-top:1px solid var(--line)}.guide-next h2,.guide-more h2{font-size:var(--fs-h3);margin-bottom:24px;line-height:var(--lh-title);letter-spacing:var(--ls-title)}.guide-links{display:grid;gap:24px}.guide-links>div{display:grid;grid-template-columns:130px 1fr;gap:24px;align-items:center}
@media(min-width:1001px){.prose,.guide-next,.guide-more{margin-left:var(--label-offset)}
}
@media(max-width:700px){.guide-hub-links{grid-template-columns:1fr;gap:14px}.guide-table{min-width:640px}.guide-links>div{grid-template-columns:1fr;gap:10px}}/* estimate (/estimate/): the price estimate (web/pricing.js) on top of the aside, then «Что будет дальше», the owner-pending scope block; the aside is taller than a laptop screen, so it sticks only on tall ones */.estimate-summary{position:static}@media(min-width:1001px) and (min-height:1180px){.estimate-summary{position:sticky}}.estimate-summary h2{margin:16px 0 24px}.estimate-next{list-style:none;counter-reset:next;margin:0;padding:0;display:grid;gap:16px}.estimate-next li{counter-increment:next;display:grid;grid-template-columns:24px 1fr;column-gap:10px}.estimate-next li::before{content:counter(next);grid-row:span 2;font-size:var(--fs-caption);font-weight:600;color:var(--accent);padding-top:1px}.estimate-next h3{font-family:var(--body);font-size:var(--fs-body);font-weight:600;letter-spacing:0;line-height:1.5;margin:0 0 4px}.estimate-next p{font-size:var(--fs-small);color:var(--muted);margin:0}.estimate-next-links{display:grid;justify-items:start;gap:2px;margin-top:16px}.estimate-choice{margin:0 0 32px;padding-bottom:24px;border-bottom:1px solid var(--line-strong)}.estimate-choice-product{font-family:var(--display);font-size:var(--fs-h4);line-height:var(--lh-title);letter-spacing:var(--ls-title);margin:12px 0 8px}.estimate-choice .estimate-area{font-size:var(--fs-caption);margin:0}.estimate-choice .estimate-area small{display:inline;font-size:var(--fs-caption)}.estimate-cost{font-family:var(--display);font-size:var(--fs-h3);line-height:var(--lh-title);letter-spacing:var(--ls-title);margin:12px 0}.estimate-summary .estimate-lines{list-style:none;padding:0;margin:0 0 10px;font-size:var(--fs-caption);color:var(--muted)}.estimate-note{font-size:var(--fs-small);margin:0 0 12px}.estimate-scope-note{font-size:var(--fs-small);color:var(--muted);margin:0 0 12px}.estimate-choice .summary-actions{margin:14px 0 4px}.estimate-scope h2{font-size:var(--fs-h3);margin-bottom:24px;line-height:var(--lh-title);letter-spacing:var(--ls-title)}.estimate-scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-col)}.estimate-scope h3{font-size:var(--fs-h4);margin-bottom:16px}.estimate-scope ul{font-size:var(--fs-small);color:var(--muted);padding-left:18px;margin:0}
@media(max-width:1000px){.estimate-summary{grid-row:auto}.estimate-summary .estimate-choice .estimate-area{float:none;font-size:var(--fs-caption);margin:0}}@media(max-width:700px){.estimate-scope-grid{grid-template-columns:1fr;gap:20px}}/* UX-07: up to three published facts under the price (web/pages/estimate.mjs) */.estimate-summary .estimate-facts{display:flex;flex-wrap:wrap;gap:var(--gap-field);list-style:none;padding:0;margin:0 0 var(--gap-tile);font-size:var(--fs-caption)}.estimate-facts li{border:1px solid var(--line-strong);background:var(--paper);padding:calc(var(--gap-field) / 2) var(--gap-field)}/* DF-03: up to 1000 px the calculator stands between «Ваш проект» and the contact fields. The wrappers step aside (display:contents) and the grid orders the blocks; the DOM keeps its order and no script moves anything */@media screen and (max-width:1000px){.estimate-layout>div,#estimate-form,.estimate-summary{display:contents}.estimate-layout .form-panel{margin:0}.estimate-choice{order:1;margin:0;padding:var(--gap-col);border:0;background:var(--tint)}#estimate-form>.form-panel~.form-panel{order:2}.estimate-after{order:3;padding:var(--gap-col);background:var(--tint)}}@media screen and (max-width:700px){.estimate-choice,.estimate-after{padding:var(--gap-tile)}}/* service (/servis-i-garantiya/) */.service-warranty{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap-row) var(--gap-col)}.service-warranty>div{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:24px}.service-warranty strong{font-family:var(--display);font-size:var(--fs-h1);font-weight:400;line-height:1.1;letter-spacing:var(--ls-heading)}.service-warranty span{font-size:var(--fs-small);color:var(--muted)}.service-panel{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--gap-split);align-items:center;background:var(--tint);padding:32px}.service-panel h2{font-size:var(--fs-h3);margin:16px 0 12px;line-height:var(--lh-title);letter-spacing:var(--ls-title)}.service-panel p{font-size:var(--fs-small);color:var(--muted);margin:0}.service-contacts{display:flex;flex-wrap:wrap;gap:12px}.service-links{display:flex;flex-wrap:wrap;gap:var(--gap-col);margin-top:24px}.service-draft-title{font-size:var(--fs-h3);margin:8px 0 24px;line-height:var(--lh-title);letter-spacing:var(--ls-title)}
@media(max-width:1000px){.service-panel{grid-template-columns:1fr;gap:26px;padding:30px}}@media(max-width:700px){.service-warranty,.service-draft{grid-template-columns:1fr}.service-panel{padding:24px}}/* == chrome == *//* Header: menu centred between the logo and the contacts; phone, WhatsApp (icon + short label) and the filled «Бесплатный замер» on the right. */
.topline{line-height:1.5}.desktop-nav{flex:1;justify-content:center;gap:clamp(18px,1.55vw,30px);margin-left:0}.header-contacts{display:flex;align-items:center;gap:20px}.header-phone{margin-left:0}.header-whatsapp{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-caption);font-weight:500;white-space:nowrap;min-height:24px;min-width:24px;justify-content:center}@media(min-width:1400px){.desktop-nav a,.header-whatsapp{font-size:14px}}.header-whatsapp svg{color:var(--accent)}.header-whatsapp:hover svg{color:inherit}.header-cta{white-space:nowrap;font-weight:600;background:var(--dark);color:var(--white);border-color:var(--dark)}.header-cta:hover{background:var(--accent);border-color:var(--accent);color:var(--white)}@media(min-width:1201px){.header-cta{gap:14px;padding:12px 18px}}
@media(max-width:1200px){.header-whatsapp span{display:none}.header-contacts{gap:16px}}.desktop-nav a{white-space:nowrap}@media(min-width:1001px) and (max-width:1120px){.desktop-nav{gap:14px}.header-cta svg{display:none}}@media(max-width:1000px){.header-contacts{margin-left:auto}}@media(max-width:700px){.header-contacts{display:none}}
/* Footer: brand and tagline, then Каталог, Решения, Полезное and Контакты; © and the executor line above the policy links. */
@media(min-width:1001px){.footer-top{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) repeat(3,minmax(0,1fr))}}@media(min-width:1201px){.footer-top{gap:32px}}.footer-brand{display:block;letter-spacing:-.04em}@media(min-width:701px){.footer-brand{font-size:24px}}.footer-about p{max-width:280px;line-height:1.75}.footer-top>div>a{line-height:1.5;display:inline-flex;align-items:center;min-height:24px}.footer-top>div>a:has(svg){gap:10px}.footer-top>div>a svg{width:16px;height:16px}
@media(min-width:701px){.footer-bottom{flex-wrap:wrap;justify-content:flex-start;gap:10px 28px;line-height:1.6}.footer-legal{margin-right:auto}}.footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px}.footer-links a{display:inline-flex;align-items:center;min-height:24px}.footer-bottom .text-button{display:inline-flex;align-items:center;min-height:24px}/* RESP-04 (D-15): цели ≥ 24×24 по рендеру, проверяет tests/e2e/layout.spec.mjs */@media(min-width:701px){.topline a,.header-phone{display:inline-flex;align-items:center;min-height:24px}}.breadcrumbs a,.answer-links a,.row-links a{display:inline-flex;align-items:center;min-height:24px}h2>a:not([class]),h3>a:not([class]),th>a:not([class]),p>a:not([class]),.consent-label a{padding-block:5px}.footer-links a:hover,.footer-bottom .text-button:hover{color:var(--white)}
@media(max-width:1000px){.footer-about{grid-column:1/-1}}@media(max-width:700px){.footer-top>div:last-child{grid-column:auto}.footer-legal,.footer-links{grid-column:1/-1}.footer-links{gap:15px 24px}}/* Visualization dialog (web/visualizations.mjs, web/app.js): the frame on a dark stage, its label, title and the request beside it. */.viz-dialog{padding:0;border:0;width:min(1280px,calc(100vw - 64px));max-height:calc(100dvh - 64px);overflow:auto;background:var(--paper);color:var(--ink)}.viz-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr) 360px}.viz-dialog::backdrop{background:var(--backdrop-media);backdrop-filter:blur(5px)}.viz-dialog-stage{background:var(--dark);display:grid;place-items:center;min-height:420px}.viz-dialog-stage img{width:100%;height:auto;max-height:calc(100dvh - 64px);object-fit:contain}.viz-dialog-details{padding:75px 34px 40px;align-self:center}.viz-dialog-details h2{font-size:var(--fs-h3);line-height:var(--lh-title);margin-top:16px;letter-spacing:var(--ls-title)}.viz-dialog-details>p{font-size:var(--fs-small);color:var(--muted)}.viz-dialog-details .button{margin-top:8px;white-space:nowrap}
@media(max-width:1000px){.viz-dialog[open]{display:block}.viz-dialog-stage{min-height:0}.viz-dialog-details{padding:28px 24px}}@media(max-width:700px){.viz-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.viz-dialog .video-dialog-close{position:fixed;right:22px;top:22px}}@media print{.viz-dialog{display:none!important}}/* == drafts == */.draft-block{margin:24px 0;padding:16px;border:2px dashed var(--draft-line);background:var(--draft-bg)}.draft-label{margin:0 0 8px;font-size:var(--fs-caption);font-weight:700;line-height:1.5;text-transform:none;letter-spacing:0;color:var(--draft-ink)}
/* reduced motion (D-19): последним — при равной специфичности с :hover{transform:scale} решает порядок */
@media(prefers-reduced-motion:reduce){.portfolio-cover img{transition:none}.portfolio-cover:hover img{transform:none}.card-photo:hover img{transform:none}.pair-card:hover img{transform:none}.solution-card-image:hover img{transform:none}}
/* нажатие :active (D-18): последним — при равной специфичности иначе побеждает более поздний :hover */
.button:not(.button-secondary):active,.header-cta:active,.mobile-actions a:first-child:active,.compare-pair[aria-current]:active,.portfolio-filter[aria-pressed=true]:active,.compare-launcher:active{background:var(--muted);border-color:var(--muted)}.button-secondary:active,.product-hero .hero-actions>.button:active,.not-found>.button:active,.text-link:active,button.text-button:active,.mobile-actions a:last-child:active,.portfolio-filter:active,.compare-pair:active,.compare-picker label:active,.compare-check:active,.menu-toggle:active,.video-dialog-close:active{background:var(--tint)}.button-secondary:active,.product-hero .hero-actions>.button:active,.not-found>.button:active{color:var(--ink)}.budget-section .button:active{background:var(--line-strong);border-color:var(--line-strong)}.budget-section .text-link:active,.footer-bottom .text-button:active{background:var(--media-dark)}.compare-pair[aria-current]:active .eyebrow,.compare-pair[aria-current]:active>span:not(.eyebrow){color:var(--white)}
/* UX-05 (D-09, D-10, D-11): закреплённые заголовки таблиц сравнения — гибрид только на CSS, без JS и без
   дублирующей строки заголовков. От 1001px таблица помещается в контейнер: .table-scroll не создаёт свой
   контейнер прокрутки (overflow:visible), а thead th прилипает к окну под шапкой (top:var(--header-height),
   тот же токен, что задаёт scroll-padding-top, D-15). До 1000px таблица не помещается: .table-scroll — коробка
   ограниченной высоты (max-height — видимая высота минус шапка и нижняя панель) со своей прокруткой в обе
   стороны, thead th прилипает к её верху (top:0 относительно коробки). min-width:900px (вместо 980px) —
   именно на этом токене таблица помещается в .container на 1001px (Pitfall 1 из 03-RESEARCH.md: 1001-64=937px
   > 900px). Правила ограничены .compare-section/.compare-matrix — .table-scroll статей (guides.mjs, D-10) не
   меняется. Фон thead th уже непрозрачен (.compare-table th{background:var(--tint)}, у выбранной — var(--dark)),
   этой правкой закреплено дополнительным правилом ниже (D-11). */
@media(min-width:1001px){.compare-matrix{min-width:900px}.compare-section .table-scroll{overflow:visible}.compare-matrix thead th{position:sticky;top:var(--header-height);z-index:var(--z-table-head)}}.compare-matrix tbody a{scroll-margin-top:var(--thead-height)}
@media(max-width:1000px){.compare-section .table-scroll{overflow:auto;max-height:calc(100svh - var(--header-height) - var(--bar-height))}.compare-matrix thead th{position:sticky;top:0;z-index:var(--z-table-head)}}
/* D-12: подсказка «таблица шире экрана» — видна только в режиме коробки прокрутки (та же точка переключения,
   1000/1001px), чистым CSS, без JS и без условного рендеринга в шаблоне. Отступ — токеном (--gap-tile), не
   литералом (CLAUDE.md: новые стили берут размеры из токенов). Скрыта у таблицы в состоянии .compare-off —
   без своей таблицы подсказка не нужна. */
.table-scroll-hint{display:none;margin:0 0 var(--gap-tile);font-size:var(--fs-caption);color:var(--muted)}
@media(max-width:1000px){.table-scroll-hint{display:block}}
.compare-off:not([hidden])+.table-scroll-hint{display:none}
