@font-face{font-family:'Usuzi Condensed';src:url('../../FONT/usuzicond.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}:root{--font-heading:'Montserrat',sans-serif;--font-body:'Open Sans',sans-serif;--ct-blue:#173345;--brand-blue:#006097;--ct-blue-deep:#0d3c55;--ct-green:#76B72A;--ct-green-deep:#5f9822;--ct-border:#d8e1e7;--ct-border-strong:#a8c0d0;--ct-surface:#f4f8fb;--ct-shadow:0 18px 40px rgba(13, 60, 85, 0.12);--ct-shadow-strong:0 24px 52px rgba(13, 60, 85, 0.18);--teal:#5f9822;--teal-hover:#4c7b1b;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--status-completed:#3E4A59;--status-construction:var(--ct-green-deep);--status-commissioning:var(--brand-blue);--section-padding-top:80px;--section-padding-bottom:60px;--grid-gap:24px;--card-radius:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.header{background:#fff;border-bottom:1px solid var(--gray-200);padding:20px 0;position:sticky;top:0;z-index:100}.header-container{max-width:1400px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center}.logo{font-family:var(--font-heading);font-size:24px;font-weight:700;color:var(--brand-blue)}.nav{display:flex;gap:32px;align-items:center}.nav a{color:var(--gray-700);text-decoration:none;font-size:15px;font-weight:500;transition:color .2s}.nav a:hover{color:var(--teal)}.locations-label{color:var(--gray-700);font-size:14px;padding:8px 16px;background:var(--gray-50);border-radius:6px}.breadcrumbs{max-width:1400px;margin:0 auto;padding:16px 24px;font-size:14px;color:var(--gray-700)}.breadcrumbs a{color:var(--gray-700);text-decoration:none}.breadcrumbs a:hover{color:var(--teal)}.hero{position:relative;background:linear-gradient(135deg,var(--brand-blue) 0,rgba(0,0,0,.18) 100%);padding:60px 0;overflow:hidden}.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><rect fill="%23007D7C" opacity="0.1" width="100" height="100"/></svg>');opacity:.3}.hero-container{position:relative;max-width:1400px;margin:0 auto;padding:0 24px}.hero-top{text-align:center;margin-bottom:48px}.hero h1{color:#fff;margin-bottom:16px}.hero-subhead{font-size:20px;color:rgba(255,255,255,.9);margin-bottom:32px;max-width:800px;margin-left:auto;margin-right:auto}.timeline-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:32px}.timeline-stat{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:12px;padding:24px;text-align:center;transition:all .3s;cursor:pointer}.timeline-stat:hover{background:rgba(255,255,255,.15);transform:translateY(-2px)}.timeline-stat-number{font-family:var(--font-heading);font-size:36px;font-weight:800;color:#fff;margin-bottom:8px}.timeline-stat-label{font-size:14px;color:rgba(255,255,255,.8);text-transform:uppercase;letter-spacing:.5px}.hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.btn{display:inline-block;padding:14px 28px;border-radius:8px;font-family:var(--font-heading);font-size:15px;font-weight:600;text-decoration:none;transition:all .2s;cursor:pointer;border:none}.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover{background:var(--teal-hover);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,125,124,.3)}.btn-secondary{background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.3)}.btn-secondary:hover{background:rgba(255,255,255,.25)}.btn-tertiary{background:#fff;color:var(--teal);border:1px solid var(--gray-200)}.btn-tertiary:hover{background:var(--gray-50)}.filter-section{padding:20px 0 8px}.filter-container{max-width:1400px;margin:0 auto;padding:0 24px}.browse-module{background:linear-gradient(180deg,rgba(244,248,251,.98) 0,#fff 100%);border:1px solid var(--ct-border);border-radius:20px;box-shadow:0 18px 36px rgba(13,60,85,.08);overflow:hidden}.browse-module-head{padding:28px 32px 18px;border-bottom:1px solid #dde8ee;background:radial-gradient(circle at right top,rgba(118,183,42,.12) 0,transparent 34%),linear-gradient(135deg,rgba(0,96,151,.05) 0,rgba(255,255,255,.94) 64%)}.browse-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-blue);margin-bottom:10px}.browse-kicker::before{content:'';width:34px;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--brand-blue) 0,var(--ct-green) 100%)}.browse-module-head h2{margin-bottom:10px}.browse-module-head p{max-width:760px;color:var(--gray-700);font-size:16px}.filter-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:24px 32px 16px;align-items:stretch}.filter-field{display:flex;flex-direction:column;gap:8px}.filter-label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#476273}.filter-select{width:100%;padding:14px 44px 14px 16px;border:1px solid var(--ct-border-strong);border-radius:12px;font-family:var(--font-body);font-size:15px;color:var(--gray-900);cursor:pointer;min-width:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(180deg,#fff 0,#f6fafc 100%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath fill='none' stroke='%23006097' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.6' d='M3 5.5 7 9l4-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat,no-repeat;background-position:0 0,calc(100% - 16px) 50%;transition:border-color .22s ease,box-shadow .22s ease}.filter-select:focus,.filter-select:hover{outline:0;border-color:var(--brand-blue);box-shadow:0 0 0 4px rgba(0,96,151,.08)}.filter-utility-row{display:flex;align-items:center;gap:12px;padding:0 32px 20px;flex-wrap:wrap}.search-shell{flex:1 1 320px;position:relative;min-width:260px}.search-shell i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--brand-blue);font-size:14px;pointer-events:none}.search-input{width:100%;padding:13px 16px 13px 42px;border:1px solid var(--ct-border-strong);border-radius:12px;font-family:var(--font-body);font-size:15px;background:linear-gradient(180deg,#fff 0,#f6fafc 100%)}.search-input:focus{outline:0;border-color:var(--brand-blue);box-shadow:0 0 0 4px rgba(0,96,151,.08)}.btn-reset{padding:12px 18px;background:0 0;border:none;font-family:var(--font-heading);font-size:14px;font-weight:600;cursor:pointer;color:var(--brand-blue);transition:color .2s ease}.btn-reset:hover{color:var(--ct-blue-deep)}.btn-compare{padding:10px 20px;background:var(--teal);color:#fff;border:none;border-radius:8px;font-family:var(--font-heading);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;min-height:46px}.btn-compare.active{display:inline-flex}.btn-compare:hover{background:var(--teal-hover)}.compare-dock{position:fixed;right:24px;bottom:24px;z-index:45;display:flex;align-items:center;gap:16px;padding:14px 16px 14px 18px;border-radius:18px;background:rgba(16,24,30,.94);border:1px solid rgba(255,255,255,.12);box-shadow:0 22px 40px rgba(0,0,0,.22);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;visibility:hidden;transform:translateY(18px);transition:opacity .24s ease,transform .24s ease,visibility .24s ease}.compare-dock.active{opacity:1;visibility:visible;transform:translateY(0)}.compare-dock-copy{display:grid;gap:4px}.compare-dock-label{font-family:var(--font-heading);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:rgba(185,236,123,.92)}.compare-dock-meta{font-size:14px;font-weight:600;color:rgba(255,255,255,.82)}.compare-dock .btn-compare{padding:12px 18px;white-space:nowrap;box-shadow:0 12px 24px rgba(118,183,42,.18)}.results-count{padding:11px 16px;background:#edf5f9;border-radius:999px;font-size:14px;font-weight:700;color:#27485b;border:1px solid #d8e5eb}.active-filter-chips{display:flex;flex-wrap:wrap;gap:10px;padding:0 32px 28px;min-height:24px}.active-filter-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid rgba(118,183,42,.32);background:rgba(118,183,42,.1);color:#355426;font-size:13px;font-weight:600}.active-filter-chip strong{color:var(--ct-blue-deep);font-weight:700}.projects-section{padding:var(--section-padding-top) 0 var(--section-padding-bottom)}.projects-container{max-width:1400px;margin:0 auto;padding:0 24px}.section-header{margin-bottom:40px}.section-header h2{margin-bottom:8px}.section-subhead{color:var(--gray-700);font-size:16px}.mega-projects-grid{display:grid;gap:var(--grid-gap);margin-bottom:40px}.mega-project-card{background:#fff;border-radius:var(--card-radius);overflow:hidden;border:1px solid var(--ct-border-strong);cursor:pointer;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;display:grid;grid-template-columns:1fr 1fr;min-height:400px;position:relative;box-shadow:0 10px 24px rgba(13,60,85,.08)}.mega-project-card::before{content:'';position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(180deg,var(--brand-blue) 0,var(--ct-green) 100%);z-index:2}.mega-project-card:hover{transform:translateY(-4px);box-shadow:var(--ct-shadow-strong);border-color:var(--brand-blue)}.mega-card-image{background:linear-gradient(160deg,rgba(0,96,151,.16) 0,rgba(255,255,255,0) 45%),linear-gradient(135deg,#d9e4ec 0,#eef3f6 100%);position:relative;overflow:hidden}.mega-card-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.mega-card-content{padding:40px;display:flex;flex-direction:column}.mega-card-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.badge{padding:6px 12px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.badge-mega{background:linear-gradient(135deg,var(--brand-blue) 0,var(--ct-blue-deep) 100%);color:#fff}.badge-featured{background:linear-gradient(135deg,#215e81 0,var(--brand-blue) 100%);color:#fff}.badge-complexity{background:#233643;color:#fff}.badge-status-active{background:linear-gradient(135deg,var(--ct-green) 0,var(--ct-green-deep) 100%);color:#fff}.badge-status-commissioning{background:var(--status-commissioning);color:#fff}.badge-status-completed{background:var(--status-completed);color:#fff}.mega-card-title{font-size:28px;font-weight:700;margin-bottom:12px;color:var(--gray-900);line-height:1.25}.mega-card-client-quote{font-size:16px;color:var(--brand-blue);margin:4px 0 18px;padding-left:16px;border-left:3px solid var(--ct-green);font-weight:600;line-height:1.65;letter-spacing:.01em}.mega-card-location{font-size:14px;color:var(--gray-700);margin-bottom:16px}.mega-card-description{font-size:15px;color:var(--gray-700);margin-bottom:20px;line-height:1.6}.mega-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-top:20px;border-top:1px solid #dce6ec;margin-top:auto}.mega-stat{text-align:center;background:linear-gradient(180deg,var(--ct-surface) 0,#fff 100%);border:1px solid #dbe5eb;border-radius:12px;padding:16px 12px 14px}.mega-stat-value{font-family:var(--font-heading);font-size:24px;font-weight:700;color:var(--brand-blue);margin-bottom:4px}.mega-stat-label{font-size:12px;color:var(--gray-700);text-transform:uppercase;letter-spacing:.5px}.projects-grid-featured{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--grid-gap)}.projects-grid-selected{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gap)}.project-card{background:#fff;border-radius:var(--card-radius);overflow:hidden;border:1px solid var(--ct-border);cursor:pointer;transition:transform .26s ease,box-shadow .26s ease,border-color .26s ease,background-color .26s ease;display:flex;flex-direction:column;position:relative;box-shadow:0 10px 24px rgba(13,60,85,.05)}.project-card::before{content:'';position:absolute;top:0;left:18px;right:18px;height:3px;border-radius:999px;background:linear-gradient(90deg,rgba(0,96,151,.15) 0,rgba(118,183,42,.78) 100%);transform:scaleX(.26);transform-origin:left center;transition:transform .26s ease,opacity .26s ease;opacity:.7;z-index:2}.project-card:hover{transform:translateY(-4px);box-shadow:var(--ct-shadow);border-color:var(--brand-blue);background:linear-gradient(180deg,#fff 0,#fbfdff 100%)}.project-card:hover::before{transform:scaleX(1);opacity:1}.project-card.selected-for-compare{border:2px solid var(--brand-blue);background:linear-gradient(180deg,var(--ct-surface) 0,#fff 100%);box-shadow:0 16px 34px rgba(0,96,151,.12)}.compare-checkbox{position:absolute;top:12px;right:12px;width:24px;height:24px;cursor:pointer;z-index:10}.card-image{width:100%;aspect-ratio:4/3;background:linear-gradient(160deg,rgba(0,96,151,.14) 0,rgba(255,255,255,0) 46%),linear-gradient(135deg,#e1e8ed 0,#f0f4f7 100%);position:relative;overflow:hidden;border-bottom:1px solid #dbe5eb}.card-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.card-badges{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:6px}.card-content{padding:24px;flex:1;display:flex;flex-direction:column}.card-title{font-size:18px;font-weight:700;margin-bottom:8px;color:var(--gray-900);line-height:1.4}.card-tagline{font-size:13px;color:var(--brand-blue);font-weight:600;line-height:1.6;letter-spacing:.01em;margin:2px 0 12px}.card-location{font-size:13px;color:var(--gray-700);margin-bottom:12px}.card-description{font-size:14px;color:var(--gray-700);margin-bottom:16px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.card-meta-item{font-size:12px;color:#365062;background:#f3f8fb;padding:5px 10px;border-radius:999px;border:1px solid #dae5eb}.card-stats{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:16px;border-top:1px solid #dce6ec}.card-stat{font-size:13px;color:var(--gray-700);display:flex;align-items:flex-start;gap:8px}.card-stat::before{content:'';width:8px;height:8px;margin-top:6px;border-radius:999px;background:linear-gradient(135deg,var(--brand-blue) 0,var(--ct-green) 100%);flex-shrink:0}.card-footer{padding:16px 24px;border-top:1px solid #dce6ec;background:linear-gradient(180deg,#fbfdff 0,#f5f9fc 100%)}.btn-view-details{width:100%;padding:10px;background:linear-gradient(135deg,var(--brand-blue) 0,var(--ct-blue-deep) 100%);color:#fff;border:none;border-radius:6px;font-family:var(--font-heading);font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.btn-view-details:hover{background:linear-gradient(135deg,var(--ct-blue-deep) 0,#092e42 100%);transform:translateY(-1px);box-shadow:0 10px 20px rgba(0,96,151,.2)}.drawer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:3000;opacity:0;visibility:hidden;transition:all .3s}.drawer-overlay.active{opacity:1;visibility:visible}.drawer{position:fixed;top:0;right:0;bottom:0;width:900px;max-width:100%;background:#fff;z-index:3100;transform:translateX(100%);transition:transform .3s;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.15)}.drawer.active{transform:translateX(0)}.drawer-header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--gray-200);padding:20px 32px;display:flex;justify-content:space-between;align-items:center;z-index:10}.drawer-title{font-size:20px;font-weight:600;color:var(--gray-900)}.btn-close-drawer{background:0 0;border:none;font-size:28px;color:var(--gray-700);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.btn-close-drawer:hover{background:var(--gray-100);color:var(--gray-900)}.drawer-content{padding:32px}.drawer-hero-image{width:100%;aspect-ratio:16/9;background:linear-gradient(135deg,var(--gray-200) 0,var(--gray-300) 100%);border-radius:8px;margin-bottom:24px;position:relative}.drawer-hero-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:8px}.drawer-section{margin-bottom:32px}.drawer-section h3{font-size:24px;margin-bottom:16px}.drawer-section h4{font-size:18px;margin-bottom:12px;margin-top:24px}.drawer-section p{color:var(--gray-700);line-height:1.7;margin-bottom:16px}.drawer-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.drawer-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;padding:24px;background:var(--gray-50);border-radius:8px;margin-bottom:24px}.drawer-meta-item{display:flex;flex-direction:column}.drawer-meta-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-700);font-weight:600;margin-bottom:4px}.drawer-meta-value{font-size:15px;color:var(--gray-900);font-weight:500}.drawer-title{font-size:32px;line-height:1.25;margin:0 0 10px;color:var(--gray-900)}.drawer-tagline{font-size:16px;color:var(--brand-blue);font-weight:600;line-height:1.7;letter-spacing:.01em;margin:0 0 26px}.challenge-solution-outcome{background:linear-gradient(to right,var(--gray-50),#fff);border-left:4px solid var(--teal);padding:24px;border-radius:8px;margin-bottom:24px}.cso-item{margin-bottom:20px}.cso-item:last-child{margin-bottom:0}.cso-label{font-family:var(--font-heading);font-size:14px;font-weight:700;color:var(--teal);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.cso-text{font-size:15px;color:var(--gray-700);line-height:1.6}.key-facts{list-style:none;padding:0}.key-facts li{padding:12px 0;border-bottom:1px solid var(--gray-200);display:flex;align-items:flex-start;gap:12px}.key-facts li:last-child{border-bottom:none}.key-facts li::before{content:'✓';color:var(--teal);font-weight:700;font-size:16px;flex-shrink:0}.scope-list{list-style:none;padding:0}.scope-list li{padding:10px 0 10px 24px;position:relative;color:var(--gray-700)}.scope-list li::before{content:'•';position:absolute;left:8px;color:var(--teal);font-size:20px;line-height:1}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.gallery-item{aspect-ratio:4/3;border-radius:6px;position:relative;overflow:hidden;cursor:pointer;transition:all .2s}.gallery-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:6px}.gallery-item:hover{transform:scale(1.02)}.related-projects{background:var(--gray-50);padding:24px;border-radius:8px;margin-bottom:24px}.related-projects h4{margin-bottom:16px}.related-project-link{display:block;width:100%;padding:12px;background:#fff;border:1px solid var(--gray-200);border-radius:6px;margin-bottom:8px;text-decoration:none;color:var(--gray-900);transition:all .2s;text-align:left;cursor:pointer}.related-project-link:hover{border-color:var(--teal);background:var(--gray-50)}.drawer-cta{margin-top:32px;padding-top:24px;border-top:1px solid var(--gray-200);display:flex;gap:12px}.drawer-cta .btn{flex:1;text-align:center}.comparison-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);z-index:3200;opacity:0;visibility:hidden;transition:all .3s;display:flex;align-items:center;justify-content:center;padding:40px}.comparison-modal.active{opacity:1;visibility:visible}.comparison-content{background:#fff;border-radius:12px;max-width:1200px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.comparison-header{padding:24px 32px;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;z-index:10}.comparison-body{padding:32px}.comparison-table{width:100%;border-collapse:collapse}.comparison-table td,.comparison-table th{padding:16px;text-align:left;border-bottom:1px solid var(--gray-200)}.comparison-table th{background:var(--gray-50);font-weight:600;font-size:14px;color:var(--gray-900)}.comparison-table td{font-size:14px;color:var(--gray-700)}.hidden{display:none!important}@media (max-width:1200px){.drawer{width:700px}.timeline-stats{grid-template-columns:repeat(2,1fr)}.mega-project-card{grid-template-columns:1fr}}@media (max-width:1024px){.projects-grid-selected{grid-template-columns:repeat(2,1fr)}.drawer{width:100%}.mega-card-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){h1{font-size:36px}h2{font-size:28px}h3{font-size:24px}.hero{padding:40px 0}.projects-section{padding:60px 0 50px}.timeline-stats{grid-template-columns:repeat(2,1fr)}.timeline-stat-number{font-size:28px}.projects-grid-featured,.projects-grid-selected{grid-template-columns:1fr}.filter-controls{grid-template-columns:repeat(2,minmax(0,1fr));padding:22px 24px 14px}.active-filter-chips,.browse-module-head,.filter-utility-row{padding-left:24px;padding-right:24px}.compare-dock{left:16px;right:16px;bottom:16px;gap:12px;padding:14px;justify-content:space-between}.compare-dock .btn-compare{min-width:142px;padding-left:16px;padding-right:16px}.btn-reset,.results-count,.search-shell{width:100%}.drawer-meta{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr}.nav{display:none}.mega-project-card{grid-template-columns:1fr;min-height:auto}.mega-card-content{padding:24px}.mega-card-title{font-size:22px}.mega-card-stats{grid-template-columns:1fr}.drawer-content{padding:24px}.comparison-modal{padding:20px}.comparison-body{padding:20px}}@media (max-width:640px){.filter-controls{grid-template-columns:1fr}.filter-utility-row{flex-direction:column;align-items:stretch}}

/* Full project directory grid */
#project-index .project-directory{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;margin-top:8px}
#project-index .project-directory-item{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 46px 18px 22px;background:#fff;border:1px solid rgba(16,24,30,.09);border-radius:14px;box-shadow:0 10px 22px rgba(16,24,30,.05);text-decoration:none;color:#10181e;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
#project-index .project-directory-item:hover,#project-index .project-directory-item:focus-visible{transform:translateY(-2px);border-color:rgba(0,96,151,.35);box-shadow:0 16px 30px rgba(16,24,30,.1);outline:none}
#project-index .project-directory-item::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,#006097,#76b72a);opacity:0;transition:opacity .2s ease}
#project-index .project-directory-item:hover::before,#project-index .project-directory-item:focus-visible::before{opacity:1}
#project-index .project-directory-item::after{content:'→';position:absolute;right:18px;top:50%;transform:translateY(-50%);font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;color:#006097;opacity:.35;transition:opacity .2s ease,transform .2s ease}
#project-index .project-directory-item:hover::after,#project-index .project-directory-item:focus-visible::after{opacity:1;transform:translate(3px,-50%)}
#project-index .project-directory-name{font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;line-height:1.35;color:#10181e}
#project-index .project-directory-loc{font-size:12.5px;font-weight:600;color:#5f9822}
@media(max-width:640px){#project-index .project-directory{grid-template-columns:1fr}}

.browse-directory-link{display:inline-flex;align-items:center;gap:9px;margin-top:18px;min-height:44px;padding:10px 16px;border:1px solid rgba(0,96,151,.22);border-radius:10px;background:#fff;color:#006097;font-family:var(--font-heading);font-size:14px;font-weight:700;text-decoration:none;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.browse-directory-link:hover,.browse-directory-link:focus-visible{border-color:rgba(0,96,151,.45);box-shadow:0 10px 22px rgba(0,96,151,.1);outline:none;transform:translateY(-1px)}
.browse-directory-link span{color:#5f9822;font-size:17px;transition:transform .2s ease}
.browse-directory-link:hover span,.browse-directory-link:focus-visible span{transform:translateX(3px)}

/* Accessible touch targets for project browsing and drawer controls. */
.btn-reset,.btn-view-details{min-height:44px}
.btn-close-drawer{width:44px;height:44px;min-width:44px;min-height:44px}
.mega-project-card.selected-for-compare{border:2px solid var(--brand-blue);box-shadow:0 18px 40px rgba(0,96,151,.18)}

/* Clear, full-width feedback when a project search has no matches. */
.project-empty-state{grid-column:1/-1;text-align:center;padding:48px 24px;border:1px solid var(--ct-border);border-radius:16px;background:linear-gradient(180deg,#fff 0,var(--ct-surface) 100%)}
.project-empty-state h3{font-size:22px;color:var(--ct-blue);margin:0 0 10px}
.project-empty-state p{color:var(--gray-700);margin:0 auto 18px;max-width:560px}
.project-empty-state .btn-reset{border:1px solid var(--ct-border-strong);border-radius:10px;background:#fff;padding:12px 20px}

/* Drawer photographs use the same lightbox presentation as full project pages. */
.gallery-item{appearance:none;width:100%;border:0;padding:0;background:#e9eef1;cursor:zoom-in}
.gallery-item:focus-visible{outline:3px solid var(--brand-blue);outline-offset:3px}
#drawerLightbox{position:fixed;inset:0;margin:0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:rgba(5,14,20,.96);padding:74px 64px 28px;overflow:auto;color:#fff}
#drawerLightbox[open]{display:flex;align-items:center;justify-content:center}
#drawerLightbox::backdrop{background:rgba(5,14,20,.93)}
#drawerLightbox figure{margin:0;width:100%;max-width:1200px;text-align:center}
#drawerLightbox img{display:block;max-width:100%;max-height:calc(100dvh - 176px);object-fit:contain;margin:auto;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
#drawerLightbox figcaption{color:#e6eef3;font:600 14px/1.5 'Montserrat',sans-serif;margin-top:12px;overflow-wrap:anywhere}
#drawerLightbox button{position:fixed;border:1px solid rgba(255,255,255,.65);background:#0f2432;color:#fff;border-radius:50%;width:46px;height:46px;font:400 26px/1 sans-serif;cursor:pointer}
#drawerLightbox button:focus-visible{outline:3px solid #fff;outline-offset:3px}
#drawerLightbox .project-lightbox-close{right:22px;top:22px}
#drawerLightbox .project-lightbox-prev{left:10px;top:50%}
#drawerLightbox .project-lightbox-next{right:10px;top:50%}
@media(max-width:620px){#drawerLightbox{padding:76px 12px 86px}#drawerLightbox img{max-height:calc(100dvh - 240px)}#drawerLightbox .project-lightbox-prev{top:auto;bottom:20px;left:calc(50% - 58px)}#drawerLightbox .project-lightbox-next{top:auto;bottom:20px;right:calc(50% - 58px)}}

/* Accessible green for status text and white-lettered controls. */
.badge-status-active{background:linear-gradient(135deg,var(--green-action,#4c7b1b),var(--green-ink,#3f6817))}
#project-index .project-directory-loc,.browse-directory-link span,.cso-label,.key-facts li::before,.scope-list li::before{color:var(--green-ink,#3f6817)}
.btn-compare{background:var(--green-action,#4c7b1b)}
.btn-compare:hover{background:var(--green-ink,#3f6817)}
.drawer-cta .btn-secondary{background:#fff;color:var(--brand-blue);border-color:var(--brand-blue)}
.drawer-cta .btn-secondary:hover{background:#edf5f9;color:var(--ct-blue-deep)}
