:root{
  --ink:#0b0c0a;
  --surface:#1e1f1c;
  --brand-green:#1e6b3c;
  --bins-green:#258048;
  --amber:#d4820a;
  --off-white:#f5f4ef;
  --pale-green:#e6f2eb;
  --mid-grey:#6b6b65;
  --border-grey:#d8d7d1;
  --border-dark:#33352f;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Figtree', sans-serif;
  background:var(--off-white);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
.wrap{max-width:1240px; margin:0 auto; padding:0 32px;}
h1,h2,h3,h4,.display{
  font-family:'Bebas Neue', sans-serif;
  font-weight:400;
  letter-spacing:0.01em;
  line-height:0.95;
  text-transform:uppercase;
}
.eyebrow{
  font-family:'Figtree', sans-serif;
  font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase;
  display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:""; width:22px; height:1px; background:currentColor; opacity:0.5;}
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Figtree', sans-serif; font-weight:600; font-size:14px; letter-spacing:0.03em;
  padding:15px 26px; border-radius:3px; border:1px solid transparent; cursor:pointer;
  transition:transform 0.25s cubic-bezier(.2,.8,.2,1), background 0.25s, border-color 0.25s, color .25s;
  white-space:nowrap;
}
.btn:active{transform:scale(0.97);}
.btn-primary{background:var(--brand-green); color:#fff;}
.btn-primary:hover{background:var(--bins-green); transform:translateY(-2px);}
.btn-amber{background:var(--amber); color:#1a1200;}
.btn-amber:hover{background:#e89412; transform:translateY(-2px);}
.btn-ghost-dark{border-color:rgba(255,255,255,0.28); color:#fff;}
.btn-ghost-dark:hover{border-color:#fff; background:rgba(255,255,255,0.08); transform:translateY(-2px);}
.btn-ghost-light{border-color:var(--ink); color:var(--ink);}
.btn-ghost-light:hover{background:var(--ink); color:#fff; transform:translateY(-2px);}
.btn svg{width:14px; height:14px; transition:transform .25s;}
.btn:hover svg{transform:translateX(3px);}

/* ---------- NAV ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:linear-gradient(180deg, rgba(11,12,10,0.55) 0%, rgba(11,12,10,0.0) 100%);
  border-bottom:1px solid transparent;
  transition:background .3s, border-color .3s, backdrop-filter .3s;
}
header.scrolled{background:rgba(11,12,10,0.92); backdrop-filter:blur(10px); border-color:var(--border-dark);}
nav.wrap{display:flex; align-items:center; justify-content:space-between; height:84px;}
.logo{font-family:'Bebas Neue', sans-serif; font-size:30px; letter-spacing:0.02em; display:flex; color:#fff;}
.logo .bins{color:var(--bins-green);}
.nav-links{display:flex; align-items:center; gap:32px;}
.nav-links a{color:#e9e8e2; font-size:13.5px; font-weight:500; letter-spacing:0.02em; position:relative; padding:6px 0;}
.nav-links a::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--bins-green); transform:scaleX(0); transform-origin:right; transition:transform .25s;}
.nav-links a:hover::after{transform:scaleX(1); transform-origin:left;}
.nav-links .has-dropdown{position:relative;}
.dropdown{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%);
  background:var(--surface); border:1px solid var(--border-dark); border-radius:6px;
  padding:10px; min-width:200px; opacity:0; pointer-events:none; transform-origin:top center;
  transition:opacity .2s, transform .2s; transform:translateX(-50%) translateY(6px);
}
.has-dropdown:hover .dropdown{opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0);}
.dropdown a{display:block; padding:9px 12px; font-size:13px; border-radius:4px;}
.dropdown a:hover{background:rgba(255,255,255,0.06); color:var(--bins-green);}
.dropdown a::after{display:none;}
.nav-right{display:flex; align-items:center; gap:24px;}
.nav-phone{color:#fff; font-size:13.5px; font-weight:600;}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px;}
.burger span{width:22px; height:2px; background:#fff; display:block;}

/* ---------- HERO ---------- */
.hero{background:var(--ink); color:#fff; position:relative; padding:168px 0 90px; overflow:hidden; isolation:isolate;}
.hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(ellipse 900px 500px at 82% 8%, rgba(37,128,72,0.28), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 90%, rgba(212,130,10,0.10), transparent 55%);
}
.hero-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:64px; align-items:center;}
.hero-content{max-width:640px;}
.hero-eyebrow{color:var(--bins-green); margin-bottom:22px;}
.hero h1{font-size:clamp(42px, 5.2vw, 74px); max-width:15ch; margin-bottom:26px;}
.hero h1 em{font-style:normal; color:var(--bins-green);}
.hero p.lead{font-size:18px; line-height:1.6; color:#c8c7c0; max-width:46ch; margin-bottom:38px; font-weight:300;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:56px;}
.hero-stats{display:flex; gap:0; border-top:1px solid var(--border-dark); padding-top:26px; max-width:560px; flex-wrap:wrap;}
.hero-stats div{padding-right:34px; margin-right:34px; border-right:1px solid var(--border-dark);}
.hero-stats div:last-child{border-right:none; margin-right:0; padding-right:0;}
.hero-stats .num{font-family:'Bebas Neue'; font-size:28px; color:#fff; line-height:1;}
.hero-stats .lbl{font-size:11.5px; color:var(--mid-grey); margin-top:6px; letter-spacing:0.02em;}

.gauge-card{background:var(--surface); border:1px solid var(--border-dark); border-radius:6px; padding:30px 28px 26px;}
.gauge-card .tag{display:inline-block; font-size:11px; font-weight:700; letter-spacing:0.1em; color:var(--amber); background:rgba(212,130,10,0.12); padding:5px 10px; border-radius:2px; margin-bottom:18px;}
.gauge-card h4{font-family:'Figtree'; font-size:15px; font-weight:600; text-transform:none; letter-spacing:0; color:#fff; margin-bottom:4px;}
.gauge-card .sub{font-size:12.5px; color:var(--mid-grey); margin-bottom:22px;}
.gauge-wrap{display:flex; justify-content:center; margin-bottom:14px;}
.gauge-legend{display:flex; justify-content:space-between; font-size:11px; color:var(--mid-grey); padding:0 6px;}
.gauge-legend b{color:#fff; font-weight:600;}
.gauge-summary{text-align:center; margin-top:20px; padding-top:20px; border-top:1px dashed var(--border-dark);}
.gauge-summary .amount{font-family:'Bebas Neue'; font-size:34px; color:#fff;}
.gauge-summary .amount span{font-family:'Figtree'; font-size:14px; color:var(--mid-grey); font-weight:400;}
.gauge-summary .cap{font-size:11.5px; color:var(--mid-grey); margin-top:2px;}

/* ---------- SECTION SCAFFOLD ---------- */
section{position:relative;}
.section-pad{padding:104px 0;}
.band-dark{background:var(--ink); color:#fff;}
.band-pale{background:var(--pale-green);}
.band-brand{background:var(--brand-green); color:#fff;}
.eyebrow-light{color:var(--brand-green);}
.eyebrow-dark{color:var(--bins-green);}
.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1; transform:none;}

/* ---------- BREADCRUMB ---------- */
.breadcrumb{padding:130px 0 0; font-size:12.5px; color:var(--mid-grey);}
.breadcrumb.on-dark{color:#a9a89f;}
.breadcrumb a{color:inherit; opacity:.85;}
.breadcrumb a:hover{color:var(--bins-green); opacity:1;}
.breadcrumb span.sep{margin:0 8px; opacity:.5;}
.breadcrumb span.current{color:#fff; font-weight:600;}

/* ---------- ABOUT ---------- */
.about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:80px; align-items:start;}
.about-grid h2{font-size:clamp(30px,3.4vw,44px); max-width:13ch; margin-bottom:20px;}
.about-copy p{font-size:16px; line-height:1.75; color:#3d3d38; margin-bottom:18px; max-width:56ch;}
.lang-pairs{margin-top:34px; display:flex; flex-direction:column; gap:14px;}
.lang-pair{display:flex; align-items:center; gap:14px; font-size:14.5px; flex-wrap:wrap;}
.lang-pair .no{color:var(--mid-grey); text-decoration:line-through; opacity:.7;}
.lang-pair .yes{color:var(--ink); font-weight:600;}
.lang-pair svg{width:16px; height:16px; color:var(--bins-green); flex-shrink:0;}

/* ---------- NATIONAL MAP / REGIONS ---------- */
.coverage{background:var(--ink); color:#fff; overflow:hidden;}
.coverage-inner{display:grid; grid-template-columns:0.85fr 1.15fr; gap:60px; align-items:center;}
.coverage h2{font-size:clamp(30px,3.4vw,44px); margin-bottom:18px; max-width:12ch;}
.coverage p{color:#c8c7c0; font-size:16px; line-height:1.7; max-width:44ch; margin-bottom:0; font-weight:300;}
.route-stops{list-style:none; margin-top:0;}
.route-stops li{display:grid; grid-template-columns:26px 1fr; align-items:center; gap:16px; padding:17px 0; border-bottom:1px solid var(--border-dark);}
.route-stops li:first-child{padding-top:0;}
.route-dot{width:9px; height:9px; border-radius:50%; background:var(--bins-green); justify-self:center;}
.route-stops .name{font-size:16px; font-weight:600;}
.route-stops .day{font-size:12px; color:var(--mid-grey); text-transform:uppercase; letter-spacing:0.06em;}

.region-head{max-width:640px; margin-bottom:50px;}
.region-head h2{font-size:clamp(30px,3.4vw,44px); margin-bottom:16px;}
.region-head p{font-size:16px; color:var(--mid-grey); line-height:1.7;}
.region-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--border-grey); border:1px solid var(--border-grey);}
.region-card{background:#fff; padding:32px 26px; display:flex; flex-direction:column; min-height:230px; transition:background .25s;}
.region-card:hover{background:var(--pale-green);}
.region-card .rn{font-family:'Bebas Neue'; font-size:13px; color:var(--brand-green); letter-spacing:0.06em; margin-bottom:18px;}
.region-card h3{font-family:'Figtree'; font-size:18px; font-weight:700; text-transform:none; letter-spacing:0; margin-bottom:8px;}
.region-card p{font-size:13px; color:var(--mid-grey); line-height:1.6; flex-grow:1;}
.region-card .rl{font-size:12px; font-weight:700; color:var(--brand-green); margin-top:16px;}

/* ---------- SERVICES ---------- */
.svc-head{display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:56px; flex-wrap:wrap;}
.svc-head h2{font-size:clamp(30px,3.4vw,44px); max-width:13ch;}
.svc-head p{color:var(--mid-grey); max-width:40ch; font-size:15px; line-height:1.6;}
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border-grey); border:1px solid var(--border-grey);}
.svc-card{
  position:relative; background-size:cover; background-position:center; color:#fff;
  min-height:300px; overflow:hidden; isolation:isolate;
}
.svc-card::after{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(11,12,10,0.05) 0%, rgba(11,12,10,0.35) 45%, rgba(11,12,10,0.92) 100%);
}
.svc-card-inner{position:relative; z-index:1; height:100%; padding:26px 26px 28px; display:flex; flex-direction:column; justify-content:flex-end;}
.svc-num{font-family:'Bebas Neue'; font-size:13px; color:var(--bins-green); letter-spacing:0.06em; margin-bottom:auto; padding-top:2px;}
.svc-card h3{font-family:'Figtree'; font-size:19px; font-weight:700; text-transform:none; letter-spacing:0; margin-bottom:8px; color:#fff;}
.svc-card p{font-size:13.5px; color:#d8d7d1; line-height:1.55;}
.svc-card .svc-link{font-size:12.5px; font-weight:700; color:var(--bins-green); margin-top:14px; letter-spacing:0.02em;}

/* ---------- PHOTO HERO / PHOTO CTA ---------- */
.hero.hero-photo{background-size:cover; background-position:center;}
.hero.hero-photo::before{
  content:"";
  background:
    linear-gradient(180deg, rgba(11,12,10,0.62) 0%, rgba(11,12,10,0.68) 45%, rgba(11,12,10,0.94) 100%),
    radial-gradient(ellipse 900px 500px at 82% 8%, rgba(37,128,72,0.18), transparent 60%);
}
.cta-photo{
  background-size:cover; background-position:center; position:relative; isolation:isolate;
}
.cta-photo::before{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(120deg, rgba(30,107,60,0.93) 0%, rgba(11,12,10,0.75) 100%);
}
.cta-photo .wrap{position:relative; z-index:1;}

/* ---------- WHY ---------- */
.why-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:70px;}
.why-grid h2{font-size:clamp(30px,3.4vw,44px); max-width:11ch;}
.why-list{display:flex; flex-direction:column;}
.why-item{display:grid; grid-template-columns:70px 1fr; gap:24px; padding:28px 0; border-bottom:1px solid var(--border-dark);}
.why-item:first-child{padding-top:0;}
.why-item:last-child{border-bottom:none; padding-bottom:0;}
.why-item .wn{font-family:'Bebas Neue'; font-size:15px; color:var(--bins-green);}
.why-item h3{font-family:'Figtree'; font-size:19px; font-weight:700; text-transform:none; letter-spacing:0; margin-bottom:8px; color:#fff;}
.why-item p{font-size:14.5px; color:#a9a89f; line-height:1.65; max-width:56ch;}

/* ---------- INDUSTRIES ---------- */
.ind-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--border-grey); border:1px solid var(--border-grey); margin-top:50px;}
.ind-card{background:#fff; padding:26px 18px; text-align:left; transition:background .25s;}
.ind-card:hover{background:var(--pale-green);}
.ind-card .n{font-family:'Bebas Neue'; font-size:26px; color:var(--border-grey); margin-bottom:14px;}
.ind-card h4{font-family:'Figtree'; font-size:14px; font-weight:700; text-transform:none; letter-spacing:0;}

/* ---------- TESTIMONIAL ---------- */
.testi{background:var(--off-white);}
.testi-wrap{max-width:800px;}
.testi blockquote{font-family:'Bebas Neue'; font-size:clamp(22px,2.8vw,32px); line-height:1.25; text-transform:none; letter-spacing:0; margin:26px 0 30px;}
.testi-who{display:flex; align-items:center; gap:14px;}
.testi-avatar{width:44px; height:44px; border-radius:50%; background:var(--brand-green); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Bebas Neue'; font-size:17px;}
.testi-who .nm{font-weight:700; font-size:14.5px;}
.testi-who .co{font-size:13px; color:var(--mid-grey);}

/* ---------- CTA ---------- */
.cta-band{padding:90px 0;}
.cta-inner{display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:start;}
.cta-inner h2{font-size:clamp(30px,3.6vw,46px); max-width:14ch; margin-bottom:16px;}
.cta-copy p{font-size:15px; line-height:1.7; color:rgba(255,255,255,0.85); max-width:40ch; margin-bottom:26px;}
.cta-actions{display:flex; gap:14px; flex-wrap:wrap;}

.quote-form-card{
  background:#fff; border-radius:8px; padding:34px 32px; color:var(--ink);
  box-shadow:0 20px 60px rgba(0,0,0,0.25);
}
.quote-form-card h3{font-family:'Figtree'; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:var(--brand-green); margin-bottom:20px;}
.qf-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.qf-field{margin-bottom:16px;}
.qf-field label{display:block; font-size:11.5px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--mid-grey); margin-bottom:6px;}
.qf-field input, .qf-field select, .qf-field textarea{
  width:100%; padding:12px 13px; border:1px solid var(--border-grey); border-radius:4px;
  font-family:'Figtree', sans-serif; font-size:14px; color:var(--ink); background:var(--off-white);
  transition:border-color .2s;
}
.qf-field input:focus, .qf-field select:focus, .qf-field textarea:focus{outline:none; border-color:var(--brand-green);}
.qf-field textarea{min-height:88px; resize:vertical; font-family:'Figtree', sans-serif;}
.qf-submit{width:100%; justify-content:center; margin-top:4px;}
.qf-note{font-size:12px; color:var(--mid-grey); margin-top:12px; line-height:1.5;}
.qf-status{font-size:13px; margin-top:12px; display:none; padding:10px 12px; border-radius:4px;}
.qf-status.show{display:block;}
.qf-status.ok{background:var(--pale-green); color:var(--brand-green);}
.qf-status.err{background:#fbe9e0; color:#a8420c;}
@media (max-width:640px){
  .qf-row{grid-template-columns:1fr;}
}

/* ---------- FOOTER ---------- */
footer{background:var(--ink); color:#fff; padding:80px 0 30px;}
.foot-top{display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:40px; padding-bottom:60px; border-bottom:1px solid var(--border-dark);}
.foot-brand .logo{margin-bottom:18px;}
.foot-brand p{font-size:14px; color:#a9a89f; max-width:32ch; line-height:1.6; margin-bottom:22px;}
.foot-brand .abn{font-size:12px; color:var(--mid-grey);}
.foot-col h5{font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--mid-grey); margin-bottom:18px; font-weight:600;}
.foot-col ul li{margin-bottom:11px;}
.foot-col a{font-size:14px; color:#e9e8e2;}
.foot-col a:hover{color:var(--bins-green);}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:28px; flex-wrap:wrap; gap:14px;}
.foot-bottom p{font-size:12.5px; color:var(--mid-grey);}
.foot-bottom .legal{display:flex; gap:22px;}
.foot-bottom .legal a{font-size:12.5px; color:var(--mid-grey);}
.foot-bottom .legal a:hover{color:#fff;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  .hero-grid, .about-grid, .coverage-inner, .why-grid{grid-template-columns:1fr;}
  .hero-grid{gap:50px;}
  .svc-grid{grid-template-columns:repeat(2,1fr);}
  .region-grid{grid-template-columns:repeat(2,1fr);}
  .ind-grid{grid-template-columns:repeat(3,1fr);}
  .foot-top{grid-template-columns:1fr 1fr; row-gap:40px;}
  .nav-links{display:none;}
  .burger{display:flex;}
  .nav-phone{display:none;}
}
@media (max-width:640px){
  .wrap{padding:0 20px;}
  .section-pad{padding:72px 0;}
  .hero{padding:140px 0 60px;}
  .breadcrumb{padding-top:110px;}
  .hero-stats{flex-wrap:wrap; row-gap:18px;}
  .hero-stats div{padding-right:20px; margin-right:20px;}
  .svc-grid, .ind-grid{grid-template-columns:1fr 1fr;}
  .region-grid{grid-template-columns:1fr;}
  .foot-top{grid-template-columns:1fr;}
  .cta-inner{grid-template-columns:1fr;}
}
:focus-visible{outline:2px solid var(--bins-green); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
  .reveal{transition:none; opacity:1; transform:none;}
  html{scroll-behavior:auto;}
}
