.cctv-package-filter{display:flex;align-items:end;gap:12px;padding:18px;margin-bottom:28px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}.cctv-package-filter label{flex:1}.cctv-package-filter span,.cctv-package-builder label>span,.cctv-requirement-wizard label>span,.cctv-package-request label>span{display:block;margin-bottom:6px;font-size:.84rem;font-weight:750}.cctv-package-filter select,.cctv-package-builder select,.cctv-package-builder input,.cctv-requirement-wizard select,.cctv-requirement-wizard input,.cctv-package-request input{box-sizing:border-box;width:100%;min-height:46px;padding:10px 12px;border:1px solid #d7deea;border-radius:9px;background:#fff}.cctv-packages{display:grid;gap:24px}.cctv-package-columns-1{grid-template-columns:1fr}.cctv-package-columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cctv-package-columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cctv-package-columns-4{grid-template-columns:repeat(4,minmax(0,1fr))}.cctv-package-card{position:relative;overflow:hidden;border:1px solid #e2e8f0;border-radius:18px;background:#fff;box-shadow:0 10px 32px rgba(11,31,58,.08);transition:transform .25s ease,box-shadow .25s ease}.cctv-package-card:hover{transform:translateY(-5px);box-shadow:0 18px 42px rgba(11,31,58,.16)}.cctv-package-card.is-featured{border:2px solid var(--cctv-secondary,#155eef)}.cctv-package-ribbon{position:absolute;z-index:2;top:14px;right:14px;padding:6px 10px;border-radius:99px;background:#ffb800;color:#332300;font-size:.75rem;font-weight:800}.cctv-package-image{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;background:linear-gradient(135deg,var(--cctv-primary,#0b1f3a),var(--cctv-secondary,#155eef));color:#fff;font-size:56px;overflow:hidden}.cctv-package-image img{width:100%;height:100%;object-fit:cover}.cctv-package-body{padding:22px}.cctv-package-body h3{margin:0 0 9px}.cctv-package-body h3 a{color:#0b1f3a;text-decoration:none}.cctv-package-items{padding:0;margin:18px 0;list-style:none}.cctv-package-items li{padding:8px 0;border-bottom:1px solid #edf1f5}.cctv-package-items li:before{content:"✓";margin-right:8px;color:#087a45;font-weight:900}.cctv-package-price{display:flex;align-items:baseline;gap:9px;margin:18px 0;color:#0b1f3a;font-size:1.25rem;font-weight:850}.cctv-package-price del{color:#98a2b3;font-size:.9rem;font-weight:500}.cctv-package-price ins{color:#087a45;text-decoration:none}.cctv-package-price-large{font-size:1.6rem}.cctv-package-builder,.cctv-requirement-wizard,.cctv-package-request{padding:26px;border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 12px 36px rgba(11,31,58,.08)}.cctv-builder-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.cctv-builder-heading span{font-size:1.4rem;font-weight:850}.cctv-builder-heading strong{padding:10px 14px;border-radius:10px;background:#eaf1ff;color:#174ea6}.cctv-builder-grid,.cctv-wizard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.cctv-builder-contact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:24px;margin-top:24px;border-top:1px solid #e2e8f0}.cctv-builder-contact h3,.cctv-builder-consent,.cctv-builder-contact button{grid-column:1/-1}.cctv-requirement-wizard button{margin-top:18px}.cctv-wizard-results{margin-top:34px}.cctv-package-request{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px}.cctv-package-request h2,.cctv-package-request .cctv-builder-consent,.cctv-package-request button{grid-column:1/-1}
@media(max-width:980px){.cctv-package-columns-4,.cctv-package-columns-3{grid-template-columns:repeat(2,minmax(0,1fr))}.cctv-builder-grid,.cctv-wizard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.cctv-package-filter,.cctv-builder-heading{display:block}.cctv-package-filter button{width:100%;margin-top:12px}.cctv-package-columns-4,.cctv-package-columns-3,.cctv-package-columns-2,.cctv-builder-grid,.cctv-wizard-grid,.cctv-builder-contact,.cctv-package-request{grid-template-columns:1fr}.cctv-builder-heading strong{display:block;margin-top:10px}.cctv-builder-contact h3,.cctv-builder-consent,.cctv-builder-contact button,.cctv-package-request h2,.cctv-package-request .cctv-builder-consent,.cctv-package-request button{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.cctv-package-card{transition:none}}