:root{--ink:#202522;--muted:#68716b;--paper:#f4f1e9;--surface:#fbfaf6;--nav-surface:#e3ebdf;--line:#d9ddd4;--sage:#526b56;--forest:#294c3d;--terracotta:#b86345;--gold:#d6a24a;--shadow:0 18px 50px #2025221f;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:"Avenir Next", Avenir, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);text-rendering:optimizelegibility;font-size:16px;line-height:1.65}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.container{width:min(1180px,100% - 3rem);margin:0 auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-shell{flex-direction:column;min-height:100vh;display:flex}.site-shell main{flex:1}.site-header{z-index:10;background:var(--nav-surface);border-bottom:1px solid #294c3d29;position:relative}.header-inner{justify-content:space-between;align-items:center;gap:2rem;min-height:86px;display:flex}.brand{color:var(--forest);align-items:center;gap:.75rem;line-height:1.1;text-decoration:none;display:inline-flex}.brand-mark{box-sizing:border-box;background:var(--surface);object-fit:contain;border:1px solid #294c3d40;border-radius:3px;width:49px;height:49px;padding:3px;display:block}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.03em;font-size:.92rem;font-weight:700}.brand small{color:var(--muted);margin-top:.2rem;font-size:.76rem}.main-nav{align-items:center;gap:.2rem;display:flex}.main-nav a{color:#294c3dbd;letter-spacing:.04em;text-transform:uppercase;padding:.65rem .75rem;font-size:.78rem;font-weight:700;text-decoration:none;position:relative}.main-nav a:after{background:var(--gold);content:"";transform-origin:0;height:2px;transition:transform .18s;position:absolute;bottom:.25rem;left:.75rem;right:.75rem;transform:scaleX(0)}.main-nav a:hover,.main-nav a.active{color:var(--forest)}.main-nav a:hover:after,.main-nav a.active:after{transform:scaleX(1)}.menu-button{color:var(--forest);cursor:pointer;background:0 0;border:0;padding:.5rem;display:none}.hero{background:var(--forest);color:#fff;height:clamp(360px,38vw,500px);position:relative;overflow:hidden}.hero-slides,.hero-slides img{width:100%;height:100%;position:absolute;inset:0}.hero-slides img{object-fit:cover;object-position:center bottom;opacity:0;transition:opacity .8s,transform 7s;transform:scale(1.02)}.hero-slides img.visible{opacity:1;transform:scale(1)}.hero:after{content:"";pointer-events:none;background:linear-gradient(90deg,#14221ccc,#14221c33 70%),linear-gradient(#0000 55%,#14221c8c);position:absolute;inset:0}.hero-overlay{z-index:1;align-items:center;min-height:100%;padding:4rem 0 6rem;display:flex;position:relative}.hero-overlay .container{max-width:1180px}.hero-overlay .container>*{max-width:650px}.hero h1{font-family:var(--serif);letter-spacing:0;margin:.75rem 0 1rem;font-size:clamp(2.7rem,5vw,4.8rem);font-weight:400;line-height:.98}.hero h1 em{color:#e8c479;font-style:italic}.hero-overlay>.container>p:not(.eyebrow){color:#ffffffdb;max-width:510px;font-size:1.1rem}.eyebrow{color:var(--terracotta);letter-spacing:.16em;text-transform:uppercase;font-size:.7rem;font-weight:800;line-height:1.4}.hero .eyebrow{color:#e8c479}.button{letter-spacing:.08em;text-transform:uppercase;border:1px solid #0000;justify-content:center;align-items:center;gap:.6rem;min-height:46px;margin-top:1.8rem;padding:.7rem 1.2rem;font-size:.78rem;font-weight:800;text-decoration:none;transition:background .18s,color .18s,transform .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-light{color:var(--forest);background:#fff}.button-light:hover{background:#e8c479}.button-dark{background:var(--forest);color:#fff}.button-dark:hover{background:var(--terracotta)}.hero-controls{z-index:2;align-items:center;gap:1rem;display:flex;position:absolute;bottom:2rem;right:max(1.5rem,50% - 590px)}.hero-controls>button,.hero-controls div button{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff8c;place-items:center;display:grid}.hero-controls>button{width:42px;height:42px}.hero-controls div{gap:.3rem;display:flex}.hero-controls div button{border-color:#0000;width:36px;height:36px;font-size:.75rem}.hero-controls div button.current,.hero-controls button:hover{color:#e8c479;border-color:#e8c479}.intro-band{background:var(--surface);padding:5rem 0}.intro-grid,.feature-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:clamp(3rem,9vw,10rem);display:grid}.intro-grid h2,.feature-grid h2{max-width:500px;font-family:var(--serif);margin-top:.9rem;font-size:clamp(2.2rem,4vw,4rem);font-weight:400;line-height:1.05}.intro-grid>p,.feature-grid>p{max-width:600px;color:var(--muted);font-size:1.05rem}.feature-band{background:var(--forest);color:#fff;padding:5rem 0 5.5rem}.feature-band .eyebrow{color:#e8c479}.feature-band>.container>p{color:#ffffffb8}.page{padding:clamp(3.5rem,7vw,6rem) 0}.section-heading{margin-bottom:2.25rem}.section-heading h2{max-width:760px;font-family:var(--serif);margin-top:.65rem;font-size:clamp(2.8rem,6vw,5.5rem);font-weight:400;line-height:.98}.section-heading+*{max-width:920px}.lead-statement{border-left:4px solid var(--terracotta);max-width:850px;color:var(--forest);font-family:var(--serif);margin-bottom:4.5rem;padding:1.8rem 0 1.8rem 2rem;font-size:clamp(1.7rem,3vw,2.8rem);line-height:1.18}.page-intro{max-width:680px;color:var(--muted);margin:-1rem 0 3rem;font-size:1.05rem}.numbered-list{counter-reset:item;max-width:820px;list-style:none}.numbered-list li{border-top:1px solid var(--line);counter-increment:item;grid-template-columns:3rem 1fr;gap:1rem;padding:1.15rem 0;display:grid}.numbered-list li:before{color:var(--terracotta);content:counter(item, decimal-leading-zero);font-family:var(--serif);font-size:1.35rem}.project-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:5rem;display:grid}.project-columns .section-heading{margin-bottom:1.5rem}.project-columns .section-heading h2{font-size:clamp(2rem,3vw,3rem)}.clean-list{list-style:none}.clean-list li{border-top:1px solid var(--line);color:var(--muted);padding:1.1rem 0 1.1rem 1.35rem;position:relative}.clean-list li:before{background:var(--terracotta);content:"";width:5px;height:5px;position:absolute;top:1.8rem;left:0}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-auto-rows:200px;gap:1.5rem;display:grid}.gallery-item{background:var(--ink);color:#fff;cursor:pointer;text-align:left;border:0;border-radius:12px;min-width:0;padding:0;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}.gallery-item:hover{transform:translateY(-4px);box-shadow:0 12px 28px #20252226}.gallery-item-small{grid-row:span 1}.gallery-item-medium{grid-row:span 2}.gallery-item-large{grid-row:span 3}.gallery-item img{object-fit:cover;opacity:1;width:100%;height:100%;transition:transform .4s;display:block}.gallery-item:hover img{opacity:.7;transform:scale(1.05)}.gallery-caption{color:#fff;background:linear-gradient(#0000 0%,#0009 60%,#000000d9 100%);justify-content:space-between;align-items:center;gap:.5rem;padding:1.25rem;font-size:.85rem;font-weight:600;transition:opacity .2s;display:flex;position:absolute;bottom:0;left:0;right:0}.gallery-item:hover .gallery-caption{background:linear-gradient(#0000 0%,#000000b3 50%,#000000f2 100%)}.lightbox{z-index:30;color:#fff;background:#141a17f0;place-items:center;padding:4rem 5rem;display:grid;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:min(100%,1000px);max-height:80vh}.lightbox p{color:#fffc;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}.close-button,.lightbox-nav{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff8c;place-items:center;width:46px;height:46px;display:grid;position:absolute}.close-button{top:1.5rem;right:1.5rem}.lightbox-nav.prev{left:1.5rem}.lightbox-nav.next{right:1.5rem}.contact-shell{grid-template-columns:minmax(300px,480px) minmax(0,1.3fr);align-items:stretch;gap:3rem;max-width:1320px;margin:0 auto;display:grid}.contact-sidebar,.contact-panel{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(#ffffffb3,#f4f1e9e6);border-radius:20px;padding:2rem}.contact-address,.contact-sidebar p{color:var(--ink)}.contact-lead{color:var(--forest);font-family:var(--serif);margin-bottom:1.25rem;font-size:clamp(2rem,3vw,3rem);line-height:1.08}.contact-address{color:var(--muted);margin-bottom:1.5rem;font-size:1.05rem}.contact-badges{gap:.75rem;margin:1.75rem 0;display:grid}.contact-badges a{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;align-items:center;gap:.75rem;padding:.8rem .9rem;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}.contact-badges a:hover{border-color:#294c3d47;transform:translateY(-2px);box-shadow:0 12px 28px #20252214}.contact-badges a svg{color:var(--terracotta);flex:none}.contact-socials{margin-top:1.25rem}.contact-socials>.eyebrow{margin-bottom:.8rem}.contact-social-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.contact-social-list a{border:1px solid var(--line);min-height:54px;color:var(--ink);background:#fff;border-radius:12px;align-items:center;gap:.75rem;padding:.75rem .8rem;text-decoration:none;transition:transform .18s,box-shadow .18s;display:flex}.contact-social-list a:hover{transform:translateY(-2px);box-shadow:0 10px 22px #2025220f}.contact-social-list a svg{color:var(--forest);flex:none}.contact-panel{flex-direction:column;display:flex}.contact-panel h3{color:var(--forest);font-family:var(--serif);margin:.25rem 0 1.5rem;font-size:clamp(2rem,3vw,2.8rem);font-weight:400;line-height:1.1}.contact-form{flex-direction:column;gap:1rem;display:flex}.contact-form label{color:var(--forest);letter-spacing:.05em;text-transform:uppercase;flex-direction:column;gap:.4rem;font-size:.75rem;font-weight:800;display:flex}.contact-form input,.contact-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:12px;padding:.8rem .9rem}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--forest);outline-offset:2px;outline:2px solid #294c3d33}.contact-form textarea{resize:vertical;min-height:180px}.contact-submit{width:fit-content;min-width:185px;margin-top:.25rem}.contact-status{margin-top:.25rem;padding:.75rem .9rem;font-size:.9rem}.contact-status.success{color:var(--forest);background:#e4eee5}.contact-status.error{color:#8f3e2a;background:#f4e3dd}@media (max-width:800px){.contact-shell{grid-template-columns:1fr}.contact-sidebar,.contact-panel{padding:1.25rem}.contact-social-list{grid-template-columns:1fr}}.tender-list{display:block}.tender-section-header{border-bottom:1px solid var(--line);margin:2.5rem 0 .5rem;padding-bottom:.5rem}.tender-section-header h2{color:var(--forest);font-family:var(--serif);margin:0;font-size:2rem;font-weight:400}.tender-section-header.archived{margin-top:3rem}.tender-group{border-top:1px solid var(--line);grid-template-columns:170px 1fr;gap:2rem;padding:2rem 0;display:grid}.tender-group h3{color:var(--forest);font-family:var(--serif);font-size:1.6rem;font-weight:400}.tender-items{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.tender-item{border:1px solid var(--line);background:var(--surface);align-items:stretch;gap:.9rem;min-width:0;padding:.85rem;text-decoration:none;transition:transform .18s,box-shadow .18s;display:flex}.tender-item:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.tender-item.active{background:linear-gradient(#2a7d480f,#2a7d4805);border-color:#256a3fb3;box-shadow:inset 0 0 0 1px #256a3f2e}.tender-item.active strong{color:var(--forest)}.tender-item.active small{color:#256a3f}.tender-item-graphic{background:#294c3d08;border:1px solid #294c3d1f;place-items:center;width:86px;min-width:86px;height:86px;display:grid;position:relative}.tender-item-graphic img{object-fit:contain;width:44px;height:44px;display:block}.tender-status-badge{color:var(--forest);letter-spacing:.06em;text-align:center;text-transform:uppercase;background:#294c3d14;padding:.2rem .3rem;font-size:.58rem;font-weight:800;position:absolute;inset:auto .35rem .35rem}.tender-item-details{flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex}.tender-item-details strong{color:var(--ink);font-size:.9rem;line-height:1.45;display:block}.tender-item-details small{color:var(--muted);align-items:center;gap:.35rem;margin-top:.5rem;font-size:.7rem;display:flex}.tender-download{color:var(--terracotta);margin:auto .2rem .2rem auto}.tender-item.active .tender-download{color:#2b8b57}.empty-tender-section{color:var(--muted);padding:2rem 0;font-size:.95rem}.site-footer{background:var(--ink);color:#fff;padding:4rem 0 2rem}.footer-inner{grid-template-columns:1.2fr 1fr 1fr;gap:2rem;display:grid;position:relative}.footer-inner>div>strong{font-family:var(--serif);font-size:1.5rem;font-weight:400}.footer-inner p{color:#ffffff9e;margin-top:.8rem;font-size:.85rem}.footer-inner a{color:#fffc;text-decoration:none}.footer-inner a:hover{color:#e8c479}.footer-inner a svg{vertical-align:middle;margin-right:.4rem}.footer-socials>p{color:#e8c479;letter-spacing:.12em;text-transform:uppercase;margin-top:0;font-size:.7rem;font-weight:800}.footer-socials>div{gap:.75rem;margin-top:.9rem;display:flex}.footer-socials>div a{border:1px solid #ffffff40;place-items:center;width:34px;height:34px;display:grid}.back-top{border:1px solid #ffffff59;place-items:center;width:40px;height:40px;display:grid;position:absolute;bottom:0;right:0}.tender-management{border:1px solid var(--line);background:var(--surface);max-width:920px;padding:1.5rem}.tender-management-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding-bottom:1.5rem;display:flex}.logged-in-user{color:var(--forest);margin-top:.35rem;font-size:.8rem;font-weight:700}.tender-management h2,.tender-management h3{font-family:var(--serif);font-weight:400}.tender-management h2{font-size:2rem}.tender-management h3{margin-bottom:1rem;font-size:1.6rem}.refresh-button,.view-button,.delete-button,.submit-upload-button{border:1px solid var(--forest);cursor:pointer;letter-spacing:.05em;text-transform:uppercase;justify-content:center;align-items:center;gap:.45rem;font-size:.75rem;font-weight:800;display:inline-flex}.refresh-button,.submit-upload-button{background:var(--forest);color:#fff;min-height:40px;padding:.5rem .8rem}.refresh-button:disabled,.delete-button:disabled,.submit-upload-button:disabled{cursor:not-allowed;opacity:.55}.upload-section{padding:1.5rem 0 2.5rem}.date-fields,.meta-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;margin-bottom:1rem;display:grid}.meta-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.date-field{flex-direction:column;gap:.35rem;display:flex}.date-field.full-width{grid-column:1/-1}.date-field label{color:var(--forest);letter-spacing:.05em;text-transform:uppercase;font-size:.75rem;font-weight:800}.date-fields input,.meta-fields input{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--ink);font:inherit;padding:.6rem .75rem}.date-fields input:focus,.meta-fields input:focus{border-color:var(--forest);outline-offset:2px;outline:2px solid #294c3d33}.upload-controls{flex-direction:column;gap:.9rem;display:flex}.files-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.file-meta strong{color:var(--forest);font-weight:700}.file-metadata-summary{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}.meta-chip{color:var(--forest);background:#526b560f;border:1px solid #294c3d2e;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .5rem;font-size:.7rem;display:inline-flex}.meta-chip strong{color:var(--forest);font-weight:700}.upload-area{border:1px dashed var(--sage);background:var(--paper);position:relative}.upload-area>input[type=file]{opacity:0;width:1px;height:1px;position:absolute}.upload-label{color:var(--forest);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:.35rem;padding:2rem;display:flex}.upload-label.selected{background:#294c3d0a;border:1px solid #294c3d59}.upload-label span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.upload-label small{color:var(--muted);font-size:.75rem}.status-message{align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.status-message.uploading{color:#76551c;background:#f5ecd8}.status-message.success{color:var(--forest);background:#e4eee5}.status-message.error{color:#8f3e2a;background:#f4e3dd}.files-list{border-top:1px solid var(--line)}.file-item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.file-info,.file-actions,.file-meta{align-items:center;display:flex}.file-info{gap:.75rem;min-width:0}.file-info>svg{color:var(--terracotta);flex:none}.file-details{min-width:0}.file-name{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:700;display:block;overflow:hidden}.file-meta{color:var(--muted);flex-wrap:wrap;gap:.45rem;font-size:.72rem;display:flex}.date-range-label{color:var(--forest);font-weight:700}.file-actions{flex:none;gap:.5rem}.view-button{min-height:34px;color:var(--forest);padding:.4rem .65rem;text-decoration:none}.delete-button{color:#9b432c;background:0 0;border-color:#bd775d;width:34px;height:34px}.loading-state,.empty-state{color:var(--muted);text-align:center;place-items:center;gap:.5rem;padding:3rem 1rem;display:grid}.empty-state svg{color:var(--sage)}.empty-state small{font-size:.75rem}.auth-card{border:1px solid var(--line);max-width:480px;box-shadow:var(--shadow);background:#ffffffc7;margin:3rem auto;padding:2rem}.auth-card h1{font-family:var(--serif);color:var(--forest);margin-top:.5rem;font-size:clamp(2.1rem,5vw,3.1rem);font-weight:400;line-height:1.08}.auth-subtitle{color:var(--muted);margin-top:.8rem}.auth-form{flex-direction:column;gap:1rem;margin-top:1.5rem;display:flex}.auth-form label{color:var(--forest);letter-spacing:.06em;text-transform:uppercase;flex-direction:column;gap:.45rem;font-size:.72rem;font-weight:800;display:flex}.auth-form input{border:1px solid var(--line);min-height:46px;color:var(--ink);font:inherit;background:#fff;padding:.7rem .8rem}.auth-form input:focus{border-color:var(--forest);outline-offset:2px;outline:2px solid #294c3d33}.auth-error{color:#8f3e2a;background:#f4e3dd;padding:.75rem .9rem;font-size:.9rem}.auth-submit{width:100%;margin-top:.5rem}.spinning{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:800px){.container{width:min(100% - 2rem,620px)}.header-inner{min-height:72px}.menu-button{display:block}.main-nav{border-bottom:1px solid var(--line);background:var(--nav-surface);box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:0;padding:.75rem 1rem 1rem;display:none;position:absolute;top:100%;left:0;right:0}.main-nav.open{display:flex}.main-nav a{padding:.8rem 0}.main-nav a:after{width:2rem;bottom:.45rem;left:0;right:auto}.hero{height:440px}.hero-slides img{transform:scale(1.08)}.hero-slides img.visible{transform:scale(1.04)}.hero-overlay{padding:4rem 0 7rem}.hero-controls{bottom:1.25rem;right:1rem}.intro-grid,.feature-grid,.contact-grid{grid-template-columns:1fr;gap:2rem}.intro-band,.feature-band{padding:4.5rem 0}.project-columns{grid-template-columns:1fr;gap:4rem}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:180px;gap:1rem}.gallery-item-small{grid-row:span 1}.gallery-item-medium,.gallery-item-large{grid-row:span 2}.tender-group{grid-template-columns:1fr;gap:1rem}.tender-items{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-inner{grid-template-columns:1fr 1fr}.footer-socials{grid-column:1/-1}}@media (max-width:480px){.brand strong{font-size:.8rem}.brand small{font-size:.68rem}.brand-mark{width:42px;height:42px}.hero h1{font-size:clamp(2.8rem,14vw,4.2rem)}.hero-controls>button{width:36px;height:36px}.hero-controls div button{width:30px;height:30px}.gallery-grid,.tender-items{grid-template-columns:1fr}.gallery-grid{grid-auto-rows:250px}.gallery-item-small,.gallery-item-medium,.gallery-item-large{grid-row:span 1}.lightbox{padding:3rem 1rem}.lightbox-nav.prev{left:.75rem}.lightbox-nav.next{right:.75rem}.footer-inner{grid-template-columns:1fr}.footer-socials{grid-column:auto}.back-top{margin-top:1rem;position:static}.tender-management{padding:1rem}.date-fields{grid-template-columns:1fr}.tender-management-header,.file-item{flex-direction:column;align-items:flex-start}.file-actions{width:100%}.view-button{flex:1}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
