/* ============================================================
   QUADRALUX CONSTRUCTIONS LIMITED - Corporate Design System
   Navy #1B222E  |  Gold #B58E4B  |  White #FFFFFF
   Sharp geometry, two-tone dividers, gold square bullets.
   ============================================================ */
:root{
  --navy:#1B222E;
  --navy-deep:#141A24;
  --navy-soft:#2A3342;
  --gold:#B58E4B;
  --gold-soft:#C9A45F;
  --gold-deep:#96733A;
  --white:#FFFFFF;
  --paper:#F6F7F9;
  --line:#E3E6EB;
  --muted:#5B6472;
  --muted-2:#8A8F98;
}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:#FFFFFF;color:var(--navy);font-family:'Barlow',ui-sans-serif,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
.font-display{font-family:'Oswald',sans-serif}
.font-body{font-family:'Barlow',ui-sans-serif,system-ui,sans-serif}
.font-mono{font-family:'Barlow Condensed',ui-sans-serif,sans-serif}

/* ---------- Scroll progress (gold) ---------- */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;background:linear-gradient(90deg,var(--gold),var(--gold-soft),var(--gold));transform-origin:left;transform:scaleX(0);will-change:transform}

/* ---------- Signature two-tone divider (navy + gold) ---------- */
.two-tone{display:flex;align-items:center;height:3px;width:100%}
.two-tone .tone-navy{height:3px;width:56px;background:var(--navy);flex:none}
.two-tone .tone-gold{height:3px;flex:1;background:var(--gold)}
.two-tone.tone-invert .tone-navy{background:var(--gold)}
.two-tone.tone-invert .tone-gold{background:rgba(255,255,255,0.25)}

/* ---------- Gold square bullets ---------- */
.sq-list{list-style:none;margin:0;padding:0}
.sq-list li{position:relative;padding-left:24px;margin-bottom:12px;line-height:1.6}
.sq-list li::before{content:'';position:absolute;left:0;top:7px;width:9px;height:9px;background:var(--gold)}

/* ---------- Reveal on scroll ---------- */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity 0.8s cubic-bezier(0.16,1,0.3,1),transform 0.8s cubic-bezier(0.16,1,0.3,1)}
[data-reveal].is-visible{opacity:1;transform:translateY(0)}

/* ---------- Micro float / magnetic ---------- */
.float-1{animation:floatY 6.5s ease-in-out infinite}
.float-2{animation:floatY 6.5s ease-in-out infinite 0.8s}
.float-3{animation:floatY 6.5s ease-in-out infinite 1.6s}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.magnetic{transition:transform 0.2s cubic-bezier(0.16,1,0.3,1);will-change:transform}

/* ---------- Fixed header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,0.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:transform 0.4s cubic-bezier(0.16,1,0.3,1),box-shadow 0.4s ease}
.site-header.scrolled{box-shadow:0 10px 30px -18px rgba(27,34,46,0.25)}
.site-header.hide{transform:translateY(-100%)}
.header-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 24px}
.nav-link{position:relative;font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:600;letter-spacing:0.16em;color:var(--muted);text-decoration:none;transition:color 0.25s ease}
.nav-link:hover{color:var(--navy)}
.nav-link.active{color:var(--navy)}
.nav-link.active::after,.nav-link:hover::after{content:'';position:absolute;left:0;right:0;bottom:-8px;height:2px;background:linear-gradient(90deg,var(--navy) 40%,var(--gold) 40%)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;padding:14px 30px;text-decoration:none;transition:all 0.25s ease;border:1px solid transparent;cursor:pointer}
.btn-gold{background:var(--gold);color:var(--white)}
.btn-gold:hover{background:var(--gold-soft);color:var(--white)}
.btn-navy{background:var(--navy);color:var(--white)}
.btn-navy:hover{background:var(--navy-soft);color:var(--gold)}
.btn-outline-white{border-color:rgba(255,255,255,0.55);color:#fff}
.btn-outline-white:hover{background:#fff;color:var(--navy)}
.btn-outline-navy{border-color:var(--navy);color:var(--navy)}
.btn-outline-navy:hover{background:var(--navy);color:var(--gold)}

/* ---------- Section scaffolding ---------- */
.section{position:relative}
.container{max-width:1280px;margin:0 auto;padding-left:24px;padding-right:24px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:var(--gold)}
.eyebrow::before{content:'';width:22px;height:2px;background:var(--navy)}
.headline{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;line-height:1.02;letter-spacing:0.01em;color:var(--navy)}
.headline .accent{color:var(--gold)}
.lede{color:var(--muted);font-size:16px;line-height:1.7;font-weight:400}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(105deg,rgba(20,26,36,0.94) 0%,rgba(20,26,36,0.82) 45%,rgba(20,26,36,0.45) 100%)}
.hero-grid{position:absolute;inset:0;opacity:0.07;background-image:repeating-linear-gradient(0deg,#fff 0 1px,transparent 1px 44px),repeating-linear-gradient(90deg,#fff 0 1px,transparent 1px 44px)}

/* ---------- Cards ---------- */
.card{background:#fff;border:1px solid var(--line);transition:transform 0.35s ease,box-shadow 0.35s ease,border-color 0.35s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 60px -30px rgba(27,34,46,0.35);border-color:var(--gold)}
.card-hover-line{height:3px;background:var(--navy);transition:background 0.35s ease}
.card:hover .card-hover-line{background:var(--gold)}

/* ---------- Stat band ---------- */
.stat-number{font-family:'Oswald',sans-serif;font-weight:600;font-size:52px;line-height:1;color:#fff}
.stat-number .plus{color:var(--gold)}
.stat-label{font-family:'Barlow Condensed',sans-serif;font-size:12px;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,0.62);margin-top:10px}

/* ---------- Project / portfolio tile ---------- */
.project-tile{position:relative;overflow:hidden;background:var(--navy)}
.project-tile img{transition:transform 0.8s cubic-bezier(0.16,1,0.3,1),opacity 0.8s ease}
.project-tile:hover img{transform:scale(1.07);opacity:0.75}
.project-tile .tile-tag{position:absolute;top:0;left:0;background:var(--gold);color:#fff;font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;padding:8px 14px}

/* ---------- Value index (01/02/03) ---------- */
.value-index{font-family:'Oswald',sans-serif;font-weight:600;font-size:40px;line-height:1;color:var(--gold)}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-deep);color:rgba(255,255,255,0.72)}
.site-footer a{color:rgba(255,255,255,0.72);text-decoration:none;transition:color 0.25s ease}
.site-footer a:hover{color:var(--gold)}
.footer-heading{font-family:'Oswald',sans-serif;font-weight:600;font-size:14px;letter-spacing:0.16em;text-transform:uppercase;color:#fff;margin:0 0 18px}

/* ---------- Forms ---------- */
.field{width:100%;background:#fff;border:1px solid var(--line);padding:13px 16px;font-family:'Barlow',sans-serif;font-size:14px;color:var(--navy);outline:none;transition:border-color 0.25s ease}
.field:focus{border-color:var(--gold)}
.field-dark{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.16);color:#fff}
.field-dark:focus{border-color:var(--gold)}
.field-dark::placeholder{color:rgba(255,255,255,0.4)}

/* ---------- Misc ---------- */
.text-outline{color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,0.85)}
.bg-grid-light{background-image:repeating-linear-gradient(0deg,rgba(27,34,46,0.03) 0 1px,transparent 1px 44px),repeating-linear-gradient(90deg,rgba(27,34,46,0.03) 0 1px,transparent 1px 44px)}
.hexagon{clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%)}

@media (max-width:1023px){
  .stat-number{font-size:40px}
}
