/* Constructor public UX layer: lightweight overrides over the legacy inline CSS. */
.cn-page .cn-ico,.cn-page .cn-hero-icon,.cn-page .cn-state-icon{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","EmojiOne Color",system-ui,sans-serif;line-height:1}
.cn-page{--cn-gap:clamp(14px,2.4vw,22px);--cn-soft-shadow:0 18px 44px rgba(15,23,42,.06)}
.cn-page .cn-hero-card{box-shadow:var(--cn-soft-shadow);border-color:color-mix(in srgb,var(--border),transparent 18%)}
.cn-page .cn-hero-aside{box-shadow:none}
.cn-howstrip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--cn-gap);margin:0 0 clamp(18px,3vw,26px)}
.cn-howstrip>div{display:grid;grid-template-columns:38px 1fr;gap:4px 12px;align-items:start;padding:16px;border:1px solid var(--border);border-radius:22px;background:var(--bg-secondary)}
.cn-howstrip i{grid-row:1/3;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:14px;background:var(--accent-soft);color:var(--accent);font-style:normal;font-weight:950}
.cn-howstrip b{display:block;color:var(--text-primary);font-size:.92rem;line-height:1.2}
.cn-howstrip span{display:block;color:var(--text-tertiary);font-size:.82rem;line-height:1.45}
.cn-card-sales{box-shadow:none}.cn-card-sales:hover{box-shadow:var(--cn-soft-shadow)}
.cn-card-what,.cn-card-preview{border-radius:18px}.cn-card-preview{background:color-mix(in srgb,var(--bg-tertiary),transparent 12%)}
.cn-builder{gap:var(--cn-gap)}
.cn-form-flow{min-width:0}.cn-summary{min-width:0}.cn-panel{box-shadow:none}.cn-step-card,.cn-summary-card{box-shadow:var(--cn-soft-shadow)}
.cn-stepbar{position:relative;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.cn-stepbar::-webkit-scrollbar{display:none}.cn-step-pill{white-space:nowrap}
.cn-panel-head{align-items:flex-start}.cn-panel-body{min-width:0}
.cn-fg label{letter-spacing:-.01em}.cn-input,.cn-select,.cn-textarea{min-height:46px}.cn-check{border:1px solid var(--border);border-radius:16px;padding:12px;background:var(--bg-tertiary)}
.cn-form-actions{align-items:center}.cn-action-note{max-width:360px}
.cn-summary-commercial{overflow:hidden}.cn-summary-main{border-radius:22px}.cn-summary-cta{width:100%;justify-content:center}.cn-breakdown-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.cn-breakdown-title span{color:var(--text-tertiary);font-size:.76rem;font-weight:800}.cn-empty-calc{border:1px dashed var(--border);border-radius:16px;padding:12px;background:var(--bg-tertiary);color:var(--text-tertiary);font-size:.84rem;line-height:1.45}
.cn-advanced-panel{padding:0;overflow:hidden}.cn-advanced-panel[open]{padding:0}.cn-panel-summary{display:flex;align-items:center;gap:10px;min-height:68px;padding:clamp(15px,2.4vw,20px);cursor:pointer;color:var(--text-primary);font-weight:950;list-style:none}.cn-panel-summary::-webkit-details-marker{display:none}.cn-panel-summary span:nth-child(2){min-width:0}.cn-panel-summary em{margin-left:auto;border:1px solid var(--border);border-radius:999px;padding:5px 9px;background:var(--bg-tertiary);color:var(--text-tertiary);font-size:.72rem;font-style:normal;font-weight:850}.cn-panel-summary:after{content:"⌄";display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:950;transition:transform var(--transition)}.cn-advanced-panel[open] .cn-panel-summary:after{transform:rotate(180deg)}.cn-panel-open{padding:0 clamp(17px,3vw,24px) clamp(17px,3vw,24px)}
.cn-state-card{box-shadow:var(--cn-soft-shadow)}
@media(max-width:980px){.cn-builder{grid-template-columns:1fr}.cn-summary{position:relative;top:auto}.cn-howstrip{grid-template-columns:1fr}.cn-hero-detail .cn-hero-card{display:grid;grid-template-columns:auto 1fr}.cn-hero-detail .cn-hero-aside{grid-column:1/-1;width:auto;min-width:0}.cn-card-preview{display:none}}
@media(max-width:640px){.cn-page .cn-hero-card{border-radius:24px}.cn-hero-list .cn-hero-card{display:block}.cn-hero-aside{width:auto;min-width:0;margin-top:14px}.cn-row{grid-template-columns:1fr}.cn-howstrip>div{padding:14px;border-radius:20px}.cn-stepbar{margin-left:-2px;margin-right:-2px}.cn-step-pill{min-width:max-content}.cn-panel-summary{min-height:62px}.cn-panel-summary em{display:none}.cn-mobile-total{left:10px;right:10px;bottom:10px;border-radius:20px}.cn-card-head{gap:12px}.cn-ico{width:48px;height:48px;min-width:48px;border-radius:16px}.cn-form-actions{display:grid;grid-template-columns:1fr}.cn-form-actions .cn-btn{width:100%;justify-content:center}}
.cn-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:clamp(18px,4vw,30px) 0 clamp(14px,3vw,20px)}
.cn-section-head>div{min-width:0}.cn-section-head span{display:block;color:var(--accent);font-size:.74rem;font-weight:950;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.cn-section-head h2{margin:0;color:var(--text-primary);font-size:clamp(1.24rem,3vw,1.72rem);font-weight:950;letter-spacing:-.035em}.cn-section-head p{max-width:430px;margin:0;color:var(--text-tertiary);font-size:.88rem;line-height:1.55}.cn-services-grid{margin-bottom:clamp(12px,3vw,20px)}.cn-card-home{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;background:var(--bg-tertiary);color:var(--text-tertiary);font-size:.7rem;font-weight:900;padding:5px 8px}.cn-empty-index{display:grid;gap:8px;border-style:dashed;text-align:center;padding:clamp(20px,5vw,34px)}.cn-empty-index b{color:var(--text-primary);font-size:1.05rem}.cn-empty-index span{color:var(--text-tertiary);line-height:1.55}
@media(max-width:760px){.cn-section-head{display:block}.cn-section-head p{max-width:none;margin-top:8px}.cn-page-index .cn-hero-tags{margin-top:12px}}
.cn-preview-banner{display:flex;align-items:flex-start;gap:10px;margin:0 0 clamp(14px,3vw,20px);padding:13px 15px;border:1px dashed var(--accent);border-radius:20px;background:var(--accent-soft);color:var(--text-secondary);line-height:1.45}.cn-preview-banner b{color:var(--accent);white-space:nowrap}.cn-preview-banner span{font-size:.86rem}.cn-page-index .cn-services-grid,.cn-page-index .cn-cards{align-items:stretch}.cn-page-index .cn-card-sales{height:100%}.cn-mobile-total{z-index:40}@media(max-width:640px){.cn-preview-banner{display:block}.cn-preview-banner b{display:block;margin-bottom:4px}.cn-page{padding-left:0;padding-right:0}.cn-input,.cn-select,.cn-textarea{font-size:16px}.cn-builder{gap:12px}.cn-panel{border-radius:20px}.cn-summary-card{border-radius:20px}.cn-total{font-size:clamp(1.65rem,12vw,2.15rem)}.cn-summary-main{padding:16px}.cn-card-sales{border-radius:22px}.cn-card-sales .cn-card-head{align-items:flex-start}.cn-contact-grid{grid-template-columns:1fr}.cn-form-flow,.cn-summary{min-width:0}.cn-mobile-total strong{font-size:1.1rem}}
/* Phase 09 final UX pass */
.cn-page .cn-card-topline{justify-content:flex-start;flex-wrap:wrap}.cn-page-index .cn-hero-aside b{font-weight:850}.cn-page .cn-card p:empty,.cnt-card p:empty{display:none}.cn-page .cn-btn{min-height:42px}.cn-page .cn-form-actions .cn-btn{min-height:46px}@media(max-width:640px){.cn-hero-detail .cn-hero-card{grid-template-columns:1fr}.cn-hero-icon{width:56px;height:56px;min-width:56px;border-radius:20px}.cn-card-topline{gap:7px}.cn-mobile-total{box-shadow:0 16px 44px rgba(15,23,42,.14)}.cn-step{box-shadow:0 0 0 4px var(--accent-soft)}}
/* Phase constructor AJAX leads + attachments */
.cn-attach-field{border:1px dashed var(--border);border-radius:18px;background:var(--bg-tertiary);padding:13px 14px}.cn-file-input{padding:10px;background:var(--bg-secondary)}.cn-file-list{display:grid;gap:6px;margin-top:10px}.cn-file-list div{border:1px solid var(--border);border-radius:12px;background:var(--bg-secondary);padding:7px 9px;color:var(--text-secondary);font-size:.78rem;font-weight:800;line-height:1.3}.cn-inline-state-success{background:var(--accent-soft);border:1px solid var(--border);color:var(--text-secondary)}.cn-state-files,.cn-state-warn{display:inline-flex;align-items:center;margin:10px 8px 0 0;border-radius:999px;border:1px solid var(--border);background:var(--bg-tertiary);padding:7px 11px;color:var(--text-secondary);font-size:.78rem;font-weight:900}.cn-state-warn{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.24);color:#a16207}
