/* Shared portfolio components; tokens and fonts stay in design-system.css. */
[hidden] { display:none!important; }
.portfolio-page { display:flex; flex-direction:column; min-height:100vh; }
.page-main { flex:1; padding-block:24px 64px; }
.public-nav { display:flex; gap:4px; margin-left:auto; }
.public-nav a { text-decoration:none; padding:8px 12px; border-radius:var(--ui-radius-md); font-size:14px; min-height:44px; display:flex; align-items:center; }
.public-nav a:is(:hover,[aria-current]) { background:var(--ui-muted); }
.ds-public .header-inner { flex-wrap:wrap; gap:12px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; font-size:12px; color:var(--ui-muted-foreground); margin-block:0 32px; }
.breadcrumbs a { text-decoration:none; }
.breadcrumbs [aria-current] { color:var(--ui-foreground); }
.page-heading,.case-hero { padding-block:16px 24px; max-width:820px; }
.page-heading h1,.case-hero h1 { font-size:clamp(32px,4vw,48px); margin-bottom:20px; overflow-wrap:anywhere; }
.lead { font-size:18px; }
.muted { color:var(--ui-muted-foreground); }
.small { font-size:12px; line-height:1.6; }
.card { border:1px solid var(--ui-border); padding:24px; }
.section-heading-inline { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; margin-bottom:20px; }
.section-heading-inline h2 { margin:0; }
.section-heading-inline a { font-size:14px; }
.ds-public .stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ds-public .hero { grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr); }
.ds-public .stat-card dt { font-size:24px; }
.ds-public .stat-card > svg { margin-bottom:auto; flex-shrink:0; }
.ds-public .stat-card dt { margin-top:20px; }
.ds-public .specializations li { gap:28px; }
.header-spacer { height:0; flex-shrink:0; }
.ds-public .site-header.is-floating { position:fixed; top:0; left:0; right:0; z-index:40; background:var(--ui-background); transform:translateY(calc(-100% - 2px)); opacity:0; pointer-events:none; transition:transform .38s cubic-bezier(.22,1,.36,1),opacity .26s ease-out; box-shadow:var(--ui-shadow-sm); will-change:transform; }
.ds-public .site-header.is-floating.is-visible { transform:translateY(0); opacity:1; pointer-events:auto; }
.ds-public .site-header.is-floating.is-priming { transition:none; }
.ds-public:not(.ds-guide) :is(section,[id]) { scroll-margin-top:calc(var(--site-header-height,120px) + 16px); }
.cta-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.calculator-cta .cta-actions { flex:0 1 auto; }
.testimonial { margin-block:24px; }
.testimonial details { margin-block:16px; }
.testimonial summary { padding-block:12px; cursor:pointer; min-height:44px; }
.testimonial img { display:block; width:100%; max-width:540px; height:auto; border:1px solid var(--ui-border); margin-block:16px; }
.seo-group { margin-block:24px; }
.seo-group h3 { font-size:16px; margin-bottom:12px; }
.service-option { padding-block:12px; border-top:1px solid var(--ui-border); }
.service-option:first-of-type { border-top:0; }
.calculator-form .service-choice { align-items:flex-start!important; margin:0; padding-block:0; }
body.ds .calculator-component .service-choice input[type=checkbox] { margin-top:3px; }
.service-choice strong { font-weight:500; }
.service-price { display:block; margin-top:4px; }
.service-description { margin:4px 0 0 28px; }
.service-quantity { margin:8px 0 0 28px; max-width:180px; }
.seo-recurring-option { border-top:1px solid var(--ui-border); padding-top:16px; }
.fields.related-fields { margin:8px 0 16px 28px; }
@media(prefers-reduced-motion:reduce) { .ds-public .site-header.is-floating { transition:none; } }
.ds-public .skill-group span { display:inline-flex; align-items:center; gap:6px; min-height:32px; }
.skill-icon { width:16px; height:16px; flex:none; object-fit:contain; filter:grayscale(1); }
.line-icon { fill:none; stroke:currentColor; stroke-width:1.7; filter:none; }
.flag { width:18px; height:18px; border-radius:50%; object-fit:cover; border:1px solid var(--ui-border); flex:none; }
.work-list { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.work-card { position:relative; display:grid; grid-template-columns:72px minmax(0,1fr) auto; gap:20px; padding:20px; border:1px solid var(--ui-border); border-radius:var(--ui-radius-xl); background:var(--ui-card); }
@media(hover:hover) and (pointer:fine) { .work-card:hover { background:var(--ui-muted); } }
.client-logo { width:72px; height:64px; display:flex; align-items:center; justify-content:center; padding:6px; border:1px solid var(--ui-border); border-radius:var(--ui-radius-lg); background:white; flex:none; overflow:hidden; }
.client-logo img { max-width:100%; max-height:100%; width:64px; height:48px; object-fit:contain; }
.logo-fallback { font-family:var(--ui-font-mono); font-size:20px; color:var(--ui-muted-foreground); }
.work-copy h3 { margin:0 0 4px; font-size:16px; line-height:1.45; }
.work-title { text-decoration:none; display:inline; }
.work-title::after { content:""; position:absolute; inset:0; border-radius:var(--ui-radius-xl); }
.work-title:focus-visible::after { outline:2px solid var(--ui-ring); outline-offset:3px; }
.work-title:hover { text-decoration:underline; }
.work-domain { position:relative; z-index:2; display:inline-flex; align-items:center; gap:4px; color:var(--ui-muted-foreground); font-size:13px; overflow-wrap:anywhere; padding-block:6px; }
.work-copy p { margin:6px 0 10px; font-size:14px; color:var(--ui-muted-foreground); }
.work-tags { display:flex; gap:6px; flex-wrap:wrap; }
.work-period { font:12px/1.5 var(--ui-font-mono); color:var(--ui-muted-foreground); white-space:nowrap; padding-top:4px; }
.work-chart { margin-block:24px; }
.work-chart h2 { margin-bottom:6px; }
.work-chart p { margin-bottom:16px; }
.work-chart > p:last-child { margin:16px 0 0; }
.chart-bars { display:flex; gap:20px; max-width:640px; height:164px; margin:24px 0; }
.chart-column { flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; gap:6px; text-decoration:none; font:12px/1.5 var(--ui-font-mono); }
.chart-track { height:110px; width:100%; display:flex; align-items:flex-end; background:var(--ui-muted); border-radius:6px; overflow:hidden; }
.chart-bar { display:block; width:100%; background:var(--ui-primary); border-radius:6px 6px 0 0; opacity:.75; transition:opacity .26s ease-out; }
.chart-column:hover .chart-bar { opacity:1; }
.chart-value { font-weight:600; }
.work-filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; align-items:end; gap:16px; }
#work-results { margin-block:16px; }
.chart-ongoing { margin-top:8px; text-decoration:none; }
.inline-icon { width:14px; height:14px; display:inline-block; vertical-align:-2px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
html[data-input-mode=pointer] body.ds :is(input,select,textarea):focus { outline:none; box-shadow:var(--ui-shadow-sm); border-color:var(--ui-input); }
.field { display:flex; flex-direction:column; gap:6px; font-size:14px; min-width:0; }
.field :is(input,select) { width:100%; }
.work-filters :is(input,select) { min-height:44px; }
.case-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:24px; margin-block:24px; }
.case-meta { align-self:start; }
.case-meta dl { margin:20px 0; }
.case-meta dt { font-size:12px; color:var(--ui-muted-foreground); margin-top:16px; }
.case-meta dd { margin:4px 0; font-size:14px; }
.case-sections { display:grid; gap:16px; }
.case-sections h2 { margin-bottom:12px; }
.case-sections p:last-child { margin:0; }
.delivery-list { padding-left:20px; margin:0; }
.delivery-list li+li { margin-top:12px; }
.workspace-card,.calculator-cta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; margin-block:24px; }
.workspace-card>div,.calculator-cta>div { flex:1 1 280px; }
.workspace-card h2 { margin-top:12px; }
.workspace-card p,.calculator-cta p { margin:0; }
.calculator-cta h2 { margin-bottom:8px; }
.notice { padding:20px; margin-bottom:24px; border:1px solid var(--ui-border); border-left:3px solid var(--ui-primary); border-radius:var(--ui-radius-lg); background:var(--ui-muted); font-size:14px; }
.notice p { margin:8px 0 0; }
.calculator-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; align-items:start; gap:24px; }
.calculator-form { display:grid; gap:20px; min-width:0; }
.calculator-form fieldset { margin:0; min-width:0; }
.calc-section legend { padding-inline:6px; font-size:20px; font-weight:600; }
.calc-section legend label { display:flex; align-items:center; gap:10px; }
.calc-section legend { min-height:44px; }
.calc-section:has(legend input:not(:checked)) > :not(legend) { display:none; }
.rate-details { margin-top:12px; }
.rate-details summary { cursor:pointer; min-height:44px; display:flex; align-items:center; font-weight:500; }
.mobile-estimate { display:none; }
body.ds.ds-public input[type=checkbox] { width:18px; height:18px; min-height:18px; padding:0; margin:0; accent-color:var(--ui-primary); flex:none; box-shadow:none; }
.checkbox-line { display:flex; gap:10px; align-items:center; padding-block:8px; font-size:14px; min-height:44px; }
.fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-block:20px; }
.calc-summary { position:sticky; top:calc(var(--site-header-height,72px) + 16px); }
.calc-summary>.button { width:100%; margin-block:16px; }
.calc-summary h2 { margin:0 0 20px; }
.summary-total { margin:20px 0; padding-top:16px; border-top:1px solid var(--ui-border); }
.summary-total strong { display:block; font:600 24px/1.4 var(--ui-font-sans); overflow-wrap:anywhere; }
.estimate-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; border-top:1px solid var(--ui-border); padding:12px 0; font-size:13px; }
.estimate-row button { border:1px solid var(--ui-border); background:white; border-radius:var(--ui-radius-sm); width:28px; min-height:28px; align-self:start; cursor:pointer; }
.estimate-row span { display:block; }
.estimate-row .muted { font-size:12px; }
.extras table td { vertical-align:top; }
.extras table td>span { display:block; margin-top:8px; }
.quantity { margin-top:12px; max-width:100px; }
.calc-section>p:last-child { margin-bottom:0; }
.estimate-warning { color:var(--ui-muted-foreground); font-size:12px; }
.legal-content { max-width:780px; }
.legal-content section { margin-block:32px; }
.legal-content h2 { margin-bottom:12px; }
.legal-content p { color:var(--ui-muted-foreground); }
.privacy-link { font-size:12px; }
.lead-dialog { width:min(620px,calc(100% - 32px)); max-height:calc(100dvh - 32px); margin:auto; overflow-y:auto; color:var(--ui-foreground); padding:24px; }
.lead-dialog::backdrop { background:rgb(0 0 0 / .45); }
.dialog-header { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; }
.dialog-header h2 { margin:0; }
.dialog-close { min-width:44px; min-height:44px; border:1px solid var(--ui-border); border-radius:var(--ui-radius-md); font-size:24px; cursor:pointer; background:white; }
#lead-form { display:grid; gap:16px; margin-top:20px; }
#lead-quote { border:1px solid var(--ui-border); border-radius:var(--ui-radius-lg); padding:16px; background:var(--ui-background); }
#lead-quote .quote-items { margin:0; }
#lead-quote .quote-item { padding-block:14px; border-bottom:1px solid var(--ui-border); }
#lead-quote .quote-item:first-child { padding-top:0; }
#lead-quote .quote-item:last-child { border-bottom:0; padding-bottom:0; }
#lead-quote .quote-item dt { font-size:14px; font-weight:500; line-height:1.5; overflow-wrap:break-word; }
#lead-quote .quote-item dd { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:4px 16px; margin:8px 0 0; font-size:14px; }
#lead-quote .quote-item-price { min-width:0; overflow-wrap:normal; word-break:normal; }
#lead-quote .quote-item-period { flex:none; color:var(--ui-muted-foreground); font-size:12px; white-space:nowrap; }
#lead-quote .estimate-row:first-child { border:0; padding-top:0; }
.consent-line { display:flex; gap:12px; align-items:flex-start; font-size:13px; line-height:1.6; }
.consent-line input { margin-top:4px; }
#lead-status { margin:0; font-size:14px; }
.honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
body:has(.lead-dialog[open]) { overflow:hidden; }
@media(max-width:1180px) { .ds-public .hero { grid-template-columns:1fr; } .ds-public .stats { max-width:520px; } }
@media(max-width:900px) { .calculator-layout { grid-template-columns:1fr; } .calc-summary { position:static; } .case-layout { grid-template-columns:220px minmax(0,1fr); } .work-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
 .public-nav { order:3; width:100%; margin:0; border-top:1px solid var(--ui-border); padding-top:6px; }
 .lead-dialog { padding:20px; }
 .public-nav a { flex:1; justify-content:center; }
 .ds-public .header-inner>.button { margin-left:auto; }
 .ds-public .header-inner { padding-block:12px 6px; }
 .work-card { grid-template-columns:56px minmax(0,1fr); padding:16px; gap:12px; }
 .work-period { grid-column:2; padding:0; }
 .client-logo { width:56px; height:56px; }
 .work-copy h3 { font-size:15px; }
 .work-chart,.card { padding:20px; }
 .chart-bars { gap:12px; }
 .case-layout { grid-template-columns:1fr; }
 .case-meta { display:grid; grid-template-columns:56px minmax(0,1fr); gap:20px; }
 .case-meta dl { margin:0; }
 .case-meta dt:first-child { margin-top:0; }
 .case-meta>p { grid-column:1/-1; margin:0; }
 .work-filters { gap:12px; }
 .work-filters>button { grid-column:1/-1; }
 .extras table :is(table,tbody,tr,td) { display:block; }
 .extras table thead { display:none; }
 .extras table tr { display:block; border-top:1px solid var(--ui-border); padding-block:12px; }
 .extras table td { display:block; border:0; padding:6px 0; }
 .extras table td[data-label="Оценка"]::before { content:"Оценка: "; color:var(--ui-muted-foreground); }
 .fields { grid-template-columns:1fr; }
 .portfolio-page .footer-inner { gap:12px; padding-block:20px; }
 .portfolio-page .footer-inner a:not(.brand) { font-size:12px; }
 .workspace-card>.button,.calculator-cta>.button { width:100%; }
 .calculator-cta .cta-actions { display:grid; grid-template-columns:1fr; width:100%; }
 .calculator-cta .cta-actions .button { width:100%; }
 .mobile-estimate.has-summary { position:fixed; bottom:12px; left:16px; right:16px; z-index:20; display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; padding:12px 16px; background:var(--ui-primary); color:var(--ui-primary-foreground); border-radius:var(--ui-radius-lg); text-decoration:none; box-shadow:0 4px 16px rgb(0 0 0 / .15); font-size:14px; }
 body:has(.mobile-estimate.has-summary) { padding-bottom:80px; }
}

/* Public service system: one shared calculator and a light, complete footer. */
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.work-card,.wire-card,.package-card { transition:background-color .26s ease-out,border-color .26s ease-out,box-shadow .26s ease-out; }
.promo-banner { background:var(--ui-primary); color:var(--ui-primary-foreground); font-size:13px; }
.promo-banner>.container { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:4px 12px; min-height:48px; padding-block:6px; text-align:center; }
.promo-banner a { color:inherit; min-height:32px; display:inline-flex; align-items:center; }
.promo-client-short,.promo-link-icon { display:none; }
.promo-banner [data-promo-feedback]:empty { display:none; }
.promo-banner button { border:0; border-bottom:1px solid currentColor; color:inherit; background:transparent; font:600 13px/1.4 var(--ui-font-sans); padding:6px; cursor:pointer; min-height:32px; }
.promo-banner[data-copied=true] .promo-offer { display:none; }
html[data-promo-suppressed=true] .promo-banner { display:none; }
.expanded-footer { background:var(--ui-muted); border-top:1px solid var(--ui-border); margin-top:auto; padding-block:48px 24px; }
.footer-top { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-bottom:28px; border-bottom:1px solid var(--ui-border); }
.footer-top p { margin:0; font-size:14px; }
.footer-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) auto; gap:36px; padding-block:32px; }
.footer-grid section { display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.footer-grid .footer-contact { align-items:flex-end; justify-self:end; text-align:right; }
body.ds .footer-grid h2 { font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; line-height:1.4; margin:0 0 16px; }
.footer-grid a:not(.button) { font-size:14px; line-height:1.55; padding-block:6px; text-decoration-line:underline; text-decoration-color:transparent; overflow-wrap:anywhere; }
.footer-contact .button { margin-bottom:14px; }
.footer-phone { font-variant-numeric:tabular-nums; white-space:nowrap; }
.footer-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:24px; border-top:1px solid var(--ui-border); font-size:12px; }
.footer-bottom p { margin:0; }
.home-rebuilt .page-main { padding-top:0; padding-bottom:48px; }
.home-intro { text-align:center; padding:80px 0 64px; max-width:900px; margin:auto; }
.home-intro .eyebrow { margin-inline:auto; }
.home-intro h1 { font-size:clamp(38px,5vw,64px); line-height:1.07; letter-spacing:-.05em; margin-block:24px; }
.home-intro .lead { max-width:760px; margin:0 auto; }
.home-intro .home-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:28px; }
.wire-board { position:relative; padding:24px 24px 64px; background:var(--ui-muted); border-radius:var(--ui-radius-xl); overflow:hidden; }
.wire-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.wire-card { display:flex; flex-direction:column; text-decoration:none; color:var(--ui-foreground); background:var(--ui-background); border:1px solid var(--ui-border); border-radius:var(--ui-radius-xl); padding:20px; min-width:0; }
.wire-visual { height:230px; overflow:hidden; display:flex; flex-direction:column; gap:16px; padding:4px; opacity:.9; }
.wire-visual :is(span,b,i) { display:block; background:var(--ui-border); border-radius:4px; }
.wire-caption { padding-top:20px; }
body.ds .wire-caption h2 { font-size:17px; line-height:1.4; margin:0; }
.wire-caption>span { color:var(--ui-muted-foreground); font-size:12px; }
.wire-fade { position:absolute; height:96px; bottom:0; left:0; right:0; background:linear-gradient(transparent,var(--ui-background)); pointer-events:none; }
.wire-toolbar { display:flex; align-items:center; gap:5px; padding:8px; border-bottom:1px solid var(--ui-border); }
.wire-toolbar i { width:5px; height:5px; border-radius:50%; background:var(--ui-muted-foreground); }
.wire-toolbar b { width:50px; height:5px; margin-left:auto; }
.wire-hero { display:grid; grid-template-columns:1.1fr 1fr; gap:12px; padding:16px 8px; }
.wire-hero b { height:9px; width:90%; margin-bottom:12px; background:var(--ui-muted-foreground); }
.wire-hero span { height:4px; margin-top:5px; }
.wire-hero i { height:14px; width:45px; margin-top:16px; background:var(--ui-foreground); }
.wire-image { min-height:80px; background:var(--ui-muted); border-radius:8px; border:1px solid var(--ui-border); }
.wire-tiles { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.wire-tiles>div { border:1px solid var(--ui-border); border-radius:6px; padding:8px; }
.wire-tiles i { width:16px; height:16px; margin-bottom:10px; }
.wire-tiles span { height:3px; margin-top:4px; }
.wire-search { padding:10px; border:1px solid var(--ui-border); border-radius:7px; display:flex; gap:8px; align-items:center; }
.wire-search i { width:10px; height:10px; border-radius:50%; background:var(--ui-muted-foreground); }
.wire-search span { width:70%; height:4px; }
.wire-chart { display:flex; align-items:flex-end; height:95px; gap:10px; padding:12px; border-bottom:1px solid var(--ui-border); }
.wire-chart span { flex:1; height:30%; background:var(--ui-muted-foreground); }
.wire-chart span:nth-child(2) { height:50%; }.wire-chart span:nth-child(3) { height:42%; }.wire-chart span:nth-child(4) { height:75%; }.wire-chart span:nth-child(5) { height:90%; background:var(--ui-foreground); }
.wire-results>div { margin-bottom:10px; }.wire-results b { height:5px; width:60%; margin-bottom:6px; }.wire-results span { height:3px; margin-top:4px; }
.wire-columns { display:grid; grid-template-columns:42px 1fr; gap:12px; height:180px; }
.wire-sidebar { background:var(--ui-muted); padding:10px 6px; border-radius:6px; }
.wire-sidebar span { height:4px; margin-bottom:14px; }
.wire-tasks>div { border:1px solid var(--ui-border); padding:10px; margin-bottom:8px; border-radius:6px; display:flex; align-items:center; gap:8px; }
.wire-tasks i { width:8px; height:8px; }.wire-tasks span { width:65%; height:4px; }.wire-tasks b { width:16px; height:5px; margin-left:auto; }
.wire-progress { height:5px; background:var(--ui-muted); }.wire-progress span { width:70%; height:100%; background:var(--ui-muted-foreground); }
.wire-palette { display:flex; gap:10px; }.wire-palette i { width:26px; height:26px; border-radius:50%; }.wire-palette i:nth-child(2) { background:#aaa; }.wire-palette i:nth-child(3) { background:#555; }.wire-palette i:nth-child(4) { background:#111; }
.wire-components { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-block:20px; }.wire-components>div { border:1px solid var(--ui-border); border-radius:7px; padding:12px; }
.wire-components b { height:6px; margin-bottom:8px; }.wire-components span { height:4px; margin-block:6px; }.wire-components i { width:40px; height:14px; background:var(--ui-foreground); margin-top:12px; }
.wire-slide { padding:20px; border:1px solid var(--ui-border); border-radius:8px; }.wire-slide b { width:70%; height:8px; margin-bottom:12px; }.wire-slide span { height:4px; margin-top:6px; }.wire-slide i { width:25px; height:4px; margin-top:18px; }
.contact-section,.calculator-cta { display:block; padding:40px 32px; text-align:center; background:var(--ui-muted); border:1px solid var(--ui-border); border-radius:var(--ui-radius-xl); margin-block:40px 0; }
body.ds .calculator-cta { background:var(--ui-muted); }
.contact-section h2,.calculator-cta h2 { font-size:clamp(24px,3vw,28px); margin:0 auto 12px; max-width:760px; }
.contact-section p,.calculator-cta p { max-width:680px; margin:0 auto 24px; }
.calculator-cta>.button { margin-inline:auto; }
.calculator-cta .cta-actions { justify-content:center; margin-top:24px; }
.contact-section .cta-actions { justify-content:center; }
@media(max-width:520px) { .contact-section,.calculator-cta { padding:28px 20px; margin-top:28px; } }
.service-hub-grid,.service-content-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-block:24px 40px; }
.service-hub-card h2 { font-size:24px; }.service-hub-card h2 a { text-decoration:none; }
.service-hub-card .button { margin-top:12px; }.service-format { margin-block:32px; }
.service-format dl { display:grid; gap:20px; margin-block:24px; }.service-format dt { font-weight:500; }.service-format dd { margin:6px 0 0; color:var(--ui-muted-foreground); }
.service-result,.platform-section,.service-examples { margin-block:40px; max-width:100%; }
.load-more-work { margin-top:20px; }
.preview-status { margin:12px 0 0; }
.service-result p,.platform-section p { max-width:860px; }.service-examples h2 { margin-bottom:20px; }
.calculator-component { margin-block:48px; }.calculator-component>h2 { margin-bottom:20px; }
.calculator-component .calculator-layout { display:block; }.calculator-component .calc-summary { position:static; margin-top:28px; }
.calc-group-header h3 { margin:0 0 24px; font-size:22px; }
.package-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.package-card { display:flex; flex-direction:column; border:2px solid var(--ui-border); border-radius:var(--ui-radius-lg); padding:20px; min-width:0; }
.package-card:has([aria-pressed=true]) { border-color:var(--ui-primary); background:var(--ui-muted); }
.package-card h4 { font-size:18px; line-height:1.4; margin:0 0 8px; }.package-card p { margin:0 0 16px; }
.package-card ul { padding-left:18px; font-size:13px; margin:0 0 20px; }.package-card li+li { margin-top:8px; }
.package-card .package-price { margin-top:auto; font-size:20px; line-height:1.5; font-weight:600; min-height:60px; overflow-wrap:anywhere; }
.package-card .button { width:100%; min-height:44px; }
.flexible-details { margin-top:20px; border-top:1px solid var(--ui-border); padding-top:8px; }
.flexible-details>summary { min-height:48px; cursor:pointer; padding-block:12px; font-size:14px; font-weight:500; }
.flexible-content { padding-top:8px; }
.flexible-content .seo-group { display:flow-root; margin:24px 0 0; }
.flexible-content .seo-group h4 { font-size:16px; line-height:1.5; margin:0 0 4px; }
.flexible-content>.fields { margin-block:12px; }
.flexible-content>p:last-child,.seo-recurring-option>p:last-child { margin-bottom:0; }
.calculator-form .extras>h3 { font-size:22px; line-height:1.4; margin:0 0 8px; }
.service-option .overlap-inline { margin:8px 0 0 28px; }
.overlap-inline,.overlap-summary { background:var(--ui-muted); border:1px solid var(--ui-border); border-radius:var(--ui-radius-md); padding:12px; font-size:13px; line-height:1.6; }
.overlap-inline { margin-block:10px 0; }.overlap-summary { margin-top:20px; }.overlap-summary h3 { font-size:15px; margin:0 0 12px; }.overlap-summary p:last-child { margin:0; }
.text-action { background:transparent; border:0; padding:6px 0; color:var(--ui-foreground); font:500 13px/1.5 var(--ui-font-sans); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.promo-input-row { display:flex; align-items:end; gap:12px; max-width:560px; }.promo-input-row .field { flex:1; }
.promo-control h3 { margin-bottom:12px; }.promo-control .button { min-height:40px; }
.estimate-table th:first-child { color:var(--ui-foreground); width:50%; }.estimate-table th span { display:block; margin-top:6px; }
body.ds .estimate-table :is(th,td) { vertical-align:top; overflow-wrap:break-word; word-break:normal; }.estimate-table td:last-child { width:44px; }
body.ds .estimate-table tbody :is(tr,th,td) { background:transparent; }
.estimate-table td:nth-child(3) { white-space:nowrap; }
.estimate-table button { min-height:36px; width:36px; border:1px solid var(--ui-border); border-radius:var(--ui-radius-sm); background:var(--ui-background); cursor:pointer; }
.summary-discount { border-top:1px solid var(--ui-border); padding-top:20px; margin-top:20px; }.summary-discount strong { display:block; margin-top:6px; }.summary-discount p { margin-top:6px; }
.calc-summary>.button { width:auto; min-width:220px; }
@media(max-width:1000px) { .wire-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.footer-grid { gap:24px; } }
@media(max-width:959px) { .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.footer-grid .footer-contact { align-items:flex-start; justify-self:stretch; text-align:left; } }
@media(max-width:700px) { .package-grid { grid-template-columns:1fr; }.package-card .package-price { min-height:0; }.service-hub-grid,.service-content-grid { grid-template-columns:1fr; }.footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
 .promo-banner>.container { display:grid; grid-template-columns:minmax(0,1fr) auto auto; font-size:12px; line-height:1.3; min-height:48px; padding-block:0; gap:4px; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
 .promo-offer { display:contents; }
 .promo-message { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:0 4px; min-width:0; }
 .promo-message>span { flex:none; max-width:100%; overflow-wrap:anywhere; }
 .promo-banner .promo-client-long,.promo-banner .promo-link-text { display:none; }
 .promo-client-short { display:inline; }.promo-link-icon { display:block; }
 .promo-banner button { min-height:44px; min-width:44px; padding:4px; font-size:12px; flex:none; }
 .promo-banner [data-promo-link] { min-height:44px; min-width:44px; justify-content:center; border-radius:var(--ui-radius-md); flex:none; }
 .promo-banner[data-copied=true]>.container { grid-template-columns:minmax(0,1fr) auto; }
 .promo-banner:has([data-promo-feedback]:not(:empty)):not([data-copied=true])>.container { padding-block:6px; }
 .promo-banner:not([data-copied=true]) [data-promo-feedback]:not(:empty) { grid-column:1/-1; grid-row:2; white-space:normal; }
 .home-intro { padding-block:44px 36px; }.home-intro .lead { font-size:16px; }.home-intro .home-actions { display:grid; grid-template-columns:1fr; }
 .wire-grid { grid-template-columns:1fr; }.wire-board { padding:16px 16px 48px; }.wire-visual { height:210px; }
 .expanded-footer { padding-block:32px 24px; }.footer-top { display:block; }.footer-top p { margin-top:12px; }.footer-grid { gap:28px 20px; }
 .footer-grid a { min-height:44px; display:flex; align-items:center; }.footer-bottom { display:block; }.footer-bottom p+p { margin-top:12px; }
 .calc-summary>.button { width:100%; }.estimate-table thead { display:none; }.estimate-table,.estimate-table tbody { display:block; }
 .estimate-table tr { display:grid; grid-template-columns:1fr auto; position:relative; border-top:1px solid var(--ui-border); padding-block:16px; }
 .estimate-table th:first-child { width:auto; grid-column:1/-1; padding:0 44px 12px 0; }.estimate-table td { border:0; padding:0; }.estimate-table td:nth-child(3) { color:var(--ui-muted-foreground); font-size:12px; padding-left:12px; }
 .estimate-table td:last-child { position:absolute; top:12px; right:0; }.estimate-table button { width:36px; min-height:36px; }
 .promo-input-row { align-items:stretch; }.promo-input-row .button { align-self:end; }.promo-input-row input { min-height:44px; }
}
@media(prefers-reduced-motion:reduce) { .work-card,.wire-card,.package-card { transition:none; } }
.lead-dialog .dialog-header { position:sticky; top:-24px; z-index:3; margin:-24px -24px 16px; padding:16px 24px; border-bottom:1px solid var(--ui-border); background:var(--ui-background); }
.lead-dialog .summary-total { margin-block:12px; }.lead-dialog .overlap-summary { margin-top:12px; padding:10px; }
@media(max-width:600px) { .lead-dialog .dialog-header { top:-20px; margin:-20px -20px 16px; padding:12px 20px; } }
@media(pointer:coarse) { .promo-banner :is(button,a),.text-action { min-height:44px; } }
@media(min-width:601px) { .mobile-estimate.has-summary { position:fixed; bottom:24px; right:24px; z-index:20; display:flex; gap:24px; justify-content:space-between; max-width:calc(100% - 48px); padding:12px 20px; border-radius:var(--ui-radius-lg); background:var(--ui-primary); color:var(--ui-primary-foreground); font-size:14px; text-decoration:none; box-shadow:0 4px 16px rgb(0 0 0 / .15); } body:has(.mobile-estimate.has-summary) { padding-bottom:72px; } }
