/* ===========================================================
   VIRDEN INDUSTRIAL LANDFILL — design system
   Palette:  charcoal #1C1E1B / liner #0C0D0B / safety-orange #E35205
             concrete #9C9A91 / caution-yellow #F2B705 / bone #EFEEE7
   Type:     Barlow Condensed (display, signage) / Inter (body)
             JetBrains Mono (data / manifest figures)
   =========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700;800;900&family=Open+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap');

:root{
  --liner:        #0C0D0B;
  --charcoal:     #1C1E1B;
  --charcoal-2:   #262924;
  --concrete:     #9C9A91;
  --concrete-lt:  #C9C7BC;
  --bone:         #EFEEE7;
  --bone-dim:     #DFDCD0;
  --orange:       #E35205;
  --orange-dk:    #B84304;
  --yellow:       #F2B705;
  --green-cap:    #4C6A45;

  /* theme-aware surface tokens: light mode = page default */
  --surface-page:    var(--bone);
  --surface-card:    #ffffff;
  --surface-sunken:  var(--bone-dim);
  --text-primary:    var(--charcoal);
  --text-muted:      rgba(28,30,27,.7);
  --line-soft:       rgba(28,30,27,.12);
  --line-soft-2:     rgba(28,30,27,.18);

  --display: 'Montserrat', sans-serif;
  --body: 'Open Sans', sans-serif;
  --mono: 'JetBrains Mono', monospace;

  --max: 1240px;
  --pad: clamp(1.25rem, 4vw, 3rem);

  --ease: cubic-bezier(.22,.68,0,1);

  color-scheme: light;
}

html[data-theme="dark"]{
  --surface-page:    var(--liner);
  --surface-card:    var(--charcoal-2);
  --surface-sunken:  var(--charcoal);
  --text-primary:    var(--bone);
  --text-muted:      rgba(239,238,231,.72);
  --line-soft:       rgba(239,238,231,.12);
  --line-soft-2:     rgba(239,238,231,.18);
  color-scheme: dark;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family: var(--body);
  background: var(--surface-page);
  color: var(--text-primary);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition: background .25s var(--ease), color .25s var(--ease);
}
img,video{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
button{ font-family:inherit; border:none; background:none; cursor:pointer; }

.wrap{ max-width:var(--max); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

:focus-visible{ outline:3px solid var(--orange); outline-offset:2px; }

/* ---------- eyebrow / labels ---------- */
.eyebrow{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--orange);
  display:flex;
  align-items:center;
  gap:.55em;
}
.eyebrow::before{
  content:"";
  width:7px; height:7px;
  background:var(--orange);
  display:inline-block;
  flex-shrink:0;
}

/* ---------- HEADER / NAV ---------- */
.site-header{
  position:sticky; top:0; z-index:200;
  background:rgba(12,13,11,.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(239,238,231,.1);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:72px;
}
.brand{
  display:flex; align-items:center; gap:.65rem;
  font-family:var(--display);
  color:var(--bone);
  font-weight:800;
  font-size:1.05rem;
  letter-spacing:.02em;
  text-transform:uppercase;
  white-space:nowrap;
}
.brand .mark{
  width:34px; height:34px;
  background:var(--orange);
  display:grid; place-items:center;
  flex-shrink:0;
  position:relative;
}
.brand .mark svg{ width:20px; height:20px; }
.brand small{
  display:block;
  font-family:var(--mono);
  font-weight:500;
  font-size:.6rem;
  letter-spacing:.1em;
  color:var(--concrete-lt);
  text-transform:none;
}

.main-nav{ display:flex; align-items:center; gap:1.3rem; }
.main-nav ul{ display:flex; gap:1.15rem; white-space:nowrap; }
.main-nav a{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--concrete-lt);
  position:relative;
  padding:.4rem 0;
  transition:color .2s var(--ease);
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:0;
  width:0; height:2px; background:var(--orange);
  transition:width .25s var(--ease);
}
.main-nav a:hover, .main-nav a.active{ color:var(--bone); }
.main-nav a:hover::after, .main-nav a.active::after{ width:100%; }

.header-cta{
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--liner);
  background:var(--orange);
  padding:.65rem 1.15rem;
  display:inline-flex; align-items:center; gap:.5rem;
  transition:background .2s var(--ease);
}
.header-cta:hover{ background:var(--yellow); }

/* ---------- theme toggle ---------- */
.theme-toggle{
  width:42px; height:42px;
  display:grid; place-items:center;
  flex-shrink:0;
  border:1px solid rgba(239,238,231,.18);
  color:var(--bone);
  border-radius:2px;
  transition:border-color .2s var(--ease), color .2s var(--ease);
}
.theme-toggle:hover{ border-color:var(--orange); color:var(--orange); }
.theme-toggle svg{ width:19px; height:19px; }
.theme-toggle .icon-sun{ display:none; }
.theme-toggle .icon-moon{ display:block; }
html[data-theme="dark"] .theme-toggle .icon-sun{ display:block; }
html[data-theme="dark"] .theme-toggle .icon-moon{ display:none; }

.drawer-theme-row{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:1.75rem;
  padding:1rem 1.1rem;
  border:1px solid rgba(239,238,231,.14);
}
.drawer-theme-row span{
  font-family:var(--mono); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--concrete-lt);
}
.drawer-theme-toggle{
  width:52px; height:30px;
  background:rgba(239,238,231,.12);
  border-radius:30px;
  position:relative;
  flex-shrink:0;
}
.drawer-theme-toggle::after{
  content:"";
  position:absolute; top:3px; left:3px;
  width:24px; height:24px;
  border-radius:50%;
  background:var(--orange);
  transition:transform .25s var(--ease);
}
html[data-theme="dark"] .drawer-theme-toggle::after{ transform:translateX(22px); }

/* =============================================================
   BLOG — index listing
   ============================================================= */
.blog-hero-meta{
  display:flex; gap:2.5rem; margin-top:1.75rem; flex-wrap:wrap;
}
.blog-hero-meta .stat .num{ font-family:var(--display); font-weight:800; font-size:2rem; color:var(--orange); display:block; line-height:1; }
.blog-hero-meta .stat .lbl{ font-family:var(--mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--concrete); margin-top:.35rem; }

.author-banner{
  display:flex; align-items:center; gap:1.25rem;
  background:var(--surface-card);
  border:1px solid var(--line-soft);
  padding:1.5rem 1.75rem;
  margin-bottom:3rem;
}
.author-banner img{
  width:88px; height:88px; border-radius:50%;
  object-fit:cover; flex-shrink:0;
  border:3px solid var(--orange);
}
.author-banner .name{ font-family:var(--display); font-weight:800; font-size:1.15rem; text-transform:uppercase; color:var(--text-primary); }
.author-banner .role{ font-family:var(--mono); font-size:.78rem; color:var(--text-muted); margin-top:.2rem; }

.blog-filter-row{
  display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:2.5rem;
}
.filter-pill{
  font-family:var(--mono); font-size:.74rem; letter-spacing:.05em; text-transform:uppercase;
  padding:.5rem 1rem;
  border:1px solid var(--line-soft-2);
  color:var(--text-muted);
  background:transparent;
  cursor:pointer;
  transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);
}
.filter-pill:hover{ border-color:var(--orange); color:var(--orange); }
.filter-pill.active{ background:var(--orange); border-color:var(--orange); color:var(--liner); }

.post-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.75rem;
}
.post-card{
  background:var(--surface-card);
  border:1px solid var(--line-soft);
  display:flex; flex-direction:column;
  transition:border-color .2s var(--ease), transform .2s var(--ease);
}
.post-card:hover{ border-color:var(--orange); transform:translateY(-3px); }
.post-card-body{ padding:1.5rem 1.5rem 1.75rem; display:flex; flex-direction:column; flex-grow:1; }
.post-tag{
  font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--orange); margin-bottom:.85rem; display:block;
}
.post-card h3{
  font-family:var(--display); font-weight:700; text-transform:uppercase;
  font-size:1.35rem; line-height:1.12; margin-bottom:.85rem;
  color:var(--text-primary);
}
.post-card p{ font-size:.92rem; color:var(--text-muted); flex-grow:1; margin-bottom:1.25rem; }
.post-card-footer{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:1rem; border-top:1px solid var(--line-soft);
  font-family:var(--mono); font-size:.74rem; color:var(--text-muted);
}
.post-card-footer .read-link{ color:var(--orange); font-weight:600; }
.post-card a.post-card-link{ display:block; height:100%; color:inherit; }

@media (max-width:980px){ .post-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:640px){ .post-grid{ grid-template-columns:1fr; } }

/* =============================================================
   BLOG — single article
   ============================================================= */
.article-hero{
  background:var(--liner);
  color:var(--bone);
  padding:7rem 0 3rem;
  position:relative;
  overflow:hidden;
}
.article-hero::before{
  content:"";
  position:absolute; inset:0;
  background:repeating-linear-gradient(135deg, transparent 0 38px, rgba(227,82,5,.06) 38px 39px);
  pointer-events:none;
}
.article-hero .crumb{ font-family:var(--mono); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--concrete); margin-bottom:1.2rem; position:relative; z-index:1; }
.article-hero .crumb a:hover{ color:var(--orange); }
.article-tag{
  font-family:var(--mono); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--orange); display:inline-block; margin-bottom:1rem; position:relative; z-index:1;
}
.article-hero h1{
  font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(2.1rem, 4.6vw, 3.4rem); line-height:1.03; max-width:22ch;
  position:relative; z-index:1;
}
.article-hero .dek{ margin-top:1.2rem; font-size:1.1rem; color:var(--concrete-lt); max-width:58ch; position:relative; z-index:1; }

.article-byline{
  display:flex; align-items:center; gap:1rem;
  margin-top:2rem; position:relative; z-index:1;
}
.article-byline img{ width:64px; height:64px; border-radius:50%; object-fit:cover; border:2px solid var(--orange); }
.article-byline .by-name{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:.95rem; color:var(--bone); }
.article-byline .by-meta{ font-family:var(--mono); font-size:.74rem; color:var(--concrete); margin-top:.15rem; }

.article-body{
  max-width:720px;
  margin:0 auto;
  padding:4rem var(--pad) 2rem;
}
.article-body h2{
  font-family:var(--display); font-weight:800; text-transform:uppercase;
  font-size:1.65rem; line-height:1.12; margin:2.5rem 0 1.1rem;
  color:var(--text-primary);
}
.article-body h3{
  font-family:var(--display); font-weight:700; text-transform:uppercase;
  font-size:1.25rem; margin:2rem 0 .9rem;
  color:var(--text-primary);
}
.article-body p{ font-size:1.05rem; line-height:1.7; color:var(--text-primary); margin-bottom:1.3rem; }
.article-body p.lead{ font-size:1.18rem; color:var(--text-muted); }
.article-body ul, .article-body ol{ margin:0 0 1.3rem 1.4rem; }
.article-body li{ font-size:1.02rem; line-height:1.65; color:var(--text-primary); margin-bottom:.6rem; }
.article-body strong{ color:var(--text-primary); font-weight:700; }
.article-body a{ color:var(--orange-dk); text-decoration:underline; text-decoration-color:rgba(227,82,5,.4); }
html[data-theme="dark"] .article-body a{ color:var(--yellow); }

.pull-quote{
  border-left:3px solid var(--orange);
  padding:.3rem 0 .3rem 1.5rem;
  margin:2.25rem 0;
  font-family:var(--display);
  font-size:1.4rem;
  font-weight:600;
  line-height:1.3;
  color:var(--text-primary);
}
.pull-quote cite{
  display:block;
  font-family:var(--mono);
  font-size:.74rem;
  font-style:normal;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--text-muted);
  margin-top:.6rem;
}

.info-box{
  background:var(--surface-sunken);
  border-left:3px solid var(--yellow);
  padding:1.4rem 1.6rem;
  margin:2.25rem 0;
}
.info-box .info-label{ font-family:var(--mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--yellow); margin-bottom:.6rem; display:block; }
.info-box p{ margin-bottom:.6rem; font-size:.96rem; }
.info-box p:last-child{ margin-bottom:0; }

.article-table-wrap{ overflow-x:auto; margin:2rem 0; border:1px solid var(--line-soft); }
.article-table{ width:100%; border-collapse:collapse; font-size:.92rem; min-width:480px; }
.article-table th{
  text-align:left; font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--orange); padding:.8rem 1rem; border-bottom:2px solid var(--orange); background:var(--surface-sunken);
}
.article-table td{ padding:.8rem 1rem; border-bottom:1px solid var(--line-soft); color:var(--text-primary); }

.article-footer{
  max-width:720px; margin:0 auto; padding:2rem var(--pad) 5rem;
}
.article-source-note{
  font-size:.85rem; color:var(--text-muted); border-top:1px solid var(--line-soft); padding-top:1.5rem; margin-top:1rem;
}
.author-card{
  display:flex; gap:1.5rem; align-items:center;
  background:var(--surface-card); border:1px solid var(--line-soft);
  padding:1.75rem; margin-top:2.5rem;
}
.author-card img{ width:136px; height:136px; border-radius:50%; object-fit:cover; border:3px solid var(--orange); flex-shrink:0; }
.author-card .name-row{ display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; }
.author-card .name{ font-family:var(--display); font-weight:800; text-transform:uppercase; font-size:1.1rem; color:var(--text-primary); }
.author-card .role{ font-family:var(--mono); font-size:.76rem; color:var(--orange); margin:.2rem 0 .7rem; text-transform:uppercase; letter-spacing:.04em; }
.author-card p{ font-size:.9rem; color:var(--text-muted); margin:0; }
.author-card .linkedin-link{
  display:inline-flex; align-items:center; gap:.35rem;
  font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; text-transform:uppercase;
  color:var(--text-muted); text-decoration:none; border:1px solid var(--line-soft-2);
  padding:.25rem .6rem; border-radius:2px; transition:border-color .2s var(--ease), color .2s var(--ease);
}
.author-card .linkedin-link:hover{ border-color:var(--orange); color:var(--orange); }
.author-card .linkedin-link svg{ width:13px; height:13px; flex-shrink:0; }
@media (max-width:480px){
  .author-card{ flex-direction:column; text-align:center; align-items:center; }
  .author-card .name-row{ justify-content:center; }
}

.related-posts{ max-width:920px; margin:0 auto; padding:0 var(--pad) 5rem; }
.related-posts h3{
  font-family:var(--mono); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--orange);
  margin-bottom:1.5rem;
}
.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
@media (max-width:780px){ .related-grid{ grid-template-columns:1fr; } }

/* =============================================================
   BLOG — featured article image
   ============================================================= */
.article-feature-img{
  max-width:920px;
  margin:0 auto;
  padding:0 var(--pad);
  margin-top:3rem;
  position:relative;
  z-index:2;
}
.article-feature-img figure{ margin:0; }
.article-feature-img img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  object-position:center;
  display:block;
  border:1px solid var(--line-soft);
}
.article-feature-img figcaption{
  font-family:var(--mono);
  font-size:.78rem;
  color:var(--text-muted);
  padding:.85rem .2rem 0;
}

/* blog card thumbnail */
.post-card-thumb{
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--charcoal);
}
.post-card-thumb img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .4s var(--ease);
}
.post-card:hover .post-card-thumb img{ transform:scale(1.05); }

@media (max-width:640px){
  .article-feature-img{ margin-top:2rem; }
}

.hamburger{
  display:none;
  width:42px; height:42px;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  background:transparent;
  flex-shrink:0;
}
.hamburger span{
  width:24px; height:2px;
  background:var(--bone);
  transition:transform .25s var(--ease), opacity .2s var(--ease);
}
.hamburger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger.is-open span:nth-child(2){ opacity:0; }
.hamburger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- mobile drawer ---------- */
.mobile-drawer{
  position:fixed; inset:72px 0 0 0;
  background:var(--liner);
  z-index:190;
  padding:2rem var(--pad) 2.5rem;
  transform:translateX(100%);
  transition:transform .35s var(--ease);
  overflow-y:auto;
}
.mobile-drawer.is-open{ transform:translateX(0); }
.mobile-drawer ul{ display:flex; flex-direction:column; gap:0; }
.mobile-drawer li{ border-bottom:1px solid rgba(239,238,231,.1); }
.mobile-drawer a{
  display:block;
  font-family:var(--display);
  font-weight:700;
  font-size:1.45rem;
  text-transform:uppercase;
  letter-spacing:.01em;
  color:var(--bone);
  padding:1.05rem 0;
}
.mobile-drawer a.active{ color:var(--orange); }
.mobile-drawer .drawer-cta{
  margin-top:1.75rem;
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--mono);
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--liner);
  background:var(--orange);
  padding:.9rem 1.4rem;
}
.mobile-drawer .drawer-meta{
  margin-top:2.25rem;
  font-family:var(--mono);
  font-size:.78rem;
  color:var(--concrete-lt);
  line-height:1.9;
}
.mobile-drawer .drawer-meta a:hover{ color:var(--orange); }

@media (max-width: 1080px){
  .main-nav{ display:none; }
  .hamburger{ display:flex; }
}

/* ---------- ticket strip (manifest data bar) ---------- */
.ticket-strip{
  background:var(--charcoal);
  border-bottom:1px solid rgba(239,238,231,.08);
  border-top:1px solid rgba(239,238,231,.08);
}
.ticket-inner{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  font-family:var(--mono);
}
.ticket-item{
  padding:.85rem var(--pad);
  border-right:1px solid rgba(239,238,231,.08);
}
.ticket-item:last-child{ border-right:none; }
.ticket-item .k{
  font-size:.62rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--concrete);
  display:block;
  margin-bottom:.2rem;
}
.ticket-item .v{
  font-size:.85rem;
  color:var(--bone);
  font-weight:600;
}
.ticket-item .v.live{ color:var(--orange); }
@media (max-width:880px){
  .ticket-inner{ grid-template-columns:repeat(2,1fr); }
  .ticket-item{ padding:.7rem 1.1rem; }
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--mono);
  font-size:.82rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  padding:.95rem 1.6rem;
  transition:transform .2s var(--ease), background .2s var(--ease), color .2s var(--ease);
}
.btn-primary{ background:var(--orange); color:var(--liner); }
.btn-primary:hover{ background:var(--yellow); transform:translateY(-2px); }
.btn-outline{ border:1px solid var(--concrete); color:var(--bone); }
.btn-outline:hover{ border-color:var(--orange); color:var(--orange); transform:translateY(-2px); }
.btn-outline-dark{ border:1px solid var(--line-soft-2); color:var(--text-primary); }
.btn-outline-dark:hover{ border-color:var(--orange); color:var(--orange-dk); transform:translateY(-2px); }
.btn-dark{ background:var(--liner); color:var(--bone); }
.btn-dark:hover{ background:var(--orange); color:var(--liner); transform:translateY(-2px); }

/* ---------- footer ---------- */
.site-footer{
  background:var(--liner);
  color:var(--concrete-lt);
  padding:4.5rem 0 0;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1fr;
  gap:2.5rem;
  padding-bottom:3rem;
  border-bottom:1px solid rgba(239,238,231,.1);
}
.footer-brand .brand{ margin-bottom:1rem; }
.footer-brand p{ font-size:.92rem; max-width:30ch; color:var(--concrete); }
.footer-col h4{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--orange);
  margin-bottom:1.1rem;
}
.footer-col ul{ display:flex; flex-direction:column; gap:.65rem; }
.footer-col a{ font-size:.92rem; color:var(--concrete-lt); transition:color .2s var(--ease); }
.footer-col a:hover{ color:var(--orange); }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding:1.6rem 0; font-family:var(--mono); font-size:.74rem; color:var(--concrete);
  flex-wrap:wrap; gap:.75rem;
}
.footer-bottom a:hover{ color:var(--orange); }
@media (max-width:880px){
  .footer-grid{ grid-template-columns:1fr 1fr; gap:2.25rem; }
}
@media (max-width:560px){
  .footer-grid{ grid-template-columns:1fr; }
}

/* ---------- section helpers ---------- */
section{ position:relative; }
.section-pad{ padding:5.5rem 0; }
.section-head{ max-width:640px; margin-bottom:2.75rem; }
.section-head h2{
  font-family:var(--display);
  font-weight:800;
  font-size:clamp(2rem, 4vw, 3rem);
  text-transform:uppercase;
  line-height:1.05;
  margin-top:.6rem;
  letter-spacing:.005em;
}
.section-head p:not(.eyebrow){ margin-top:1rem; color:var(--text-muted); font-size:1.05rem; max-width:54ch; }
.on-dark .section-head p:not(.eyebrow), .on-charcoal .section-head p:not(.eyebrow){ color:var(--concrete-lt); opacity:1; }
.on-dark{ background:var(--liner); color:var(--bone); }
.on-charcoal{ background:var(--charcoal); color:var(--bone); }

hr.rule{ border:none; height:1px; background:var(--line-soft); }
.on-dark hr.rule, .on-charcoal hr.rule{ background:rgba(239,238,231,.12); }

/* ---------- page hero (sub-pages) ---------- */
.page-hero{
  background:var(--liner);
  color:var(--bone);
  padding:7.5rem 0 3.5rem;
  position:relative;
  overflow:hidden;
}
.page-hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(135deg, transparent 0 38px, rgba(227,82,5,.06) 38px 39px);
  pointer-events:none;
}
.page-hero .crumb{
  font-family:var(--mono); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--concrete); margin-bottom:1.2rem;
}
.page-hero .crumb a:hover{ color:var(--orange); }
.page-hero h1{
  font-family:var(--display);
  font-weight:900;
  text-transform:uppercase;
  font-size:clamp(2.4rem, 6vw, 4.2rem);
  line-height:.98;
  max-width:16ch;
}
.page-hero .lede{
  margin-top:1.4rem;
  font-size:1.12rem;
  color:var(--concrete-lt);
  max-width:54ch;
}

/* ---------- utility data table (rates) ---------- */
.rate-table{ width:100%; border-collapse:collapse; font-family:var(--mono); }
.rate-table th{
  text-align:left;
  font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--orange);
  padding:.9rem 1rem;
  border-bottom:2px solid var(--orange);
}
.rate-table td{
  padding:1rem 1rem;
  border-bottom:1px solid var(--line-soft);
  font-size:.92rem;
}
.rate-table tr:hover td{ background:rgba(227,82,5,.05); }
.rate-table td.num{ text-align:right; font-weight:600; }
.rate-table tr.total td{ font-weight:700; color:var(--orange); border-top:1px solid var(--text-primary); }
.on-dark .rate-table td{ border-bottom:1px solid rgba(239,238,231,.12); }
.on-dark .rate-table tr:hover td{ background:rgba(227,82,5,.08); }

.rate-card{
  background:var(--charcoal);
  color:var(--bone);
  padding:1.6rem;
}
.rate-card .rate-table th{ color:var(--yellow); border-bottom:2px solid var(--yellow); }
.rate-card .rate-table tr.total td{ color:var(--yellow); }

/* fade-up reveal: JS adds .js-reveal-ready to <html> once IO is confirmed working;
   content is visible by default so it never gets stuck hidden if JS is slow/blocked. */
.reveal{ opacity:1; transform:none; }
.js-reveal-ready .reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.js-reveal-ready .reveal.in{ opacity:1; transform:translateY(0); }

/* =============================================================
   HOME — hero
   ============================================================= */
.hero{
  position:relative;
  min-height:92vh;
  display:flex; align-items:flex-end;
  overflow:hidden;
  background:var(--liner);
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media video{
  width:100%; height:100%; object-fit:cover;
  object-position:center 30%;
}
.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(12,13,11,.55) 0%, rgba(12,13,11,.35) 35%, rgba(12,13,11,.92) 92%),
    linear-gradient(90deg, rgba(12,13,11,.55) 0%, transparent 45%);
}
.hero-content{
  position:relative; z-index:1;
  padding-top:9rem;
  padding-bottom:3.5rem;
  color:var(--bone);
}
.hero h1{
  font-family:var(--display);
  font-weight:900;
  text-transform:uppercase;
  font-size:clamp(3rem, 9vw, 6.5rem);
  line-height:.94;
  margin-top:.7rem;
  max-width:14ch;
}
.hero-lede{
  margin-top:1.4rem;
  font-size:1.15rem;
  max-width:46ch;
  color:var(--concrete-lt);
}
.hero-actions{ display:flex; gap:1rem; margin-top:2.25rem; flex-wrap:wrap; }
.hero-coords{
  margin-top:2.75rem;
  font-family:var(--mono);
  font-size:.78rem;
  letter-spacing:.06em;
  color:var(--concrete);
  border-top:1px solid rgba(239,238,231,.18);
  padding-top:1rem;
  max-width:46ch;
}
@media (max-width:880px){
  .hero{ min-height:88vh; align-items:flex-end; }
  .hero-content{ padding-top:7rem; padding-bottom:2.5rem; }
}

/* =============================================================
   HOME — operator strip
   ============================================================= */
.operator-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:3.5rem;
  align-items:start;
}
.operator-copy h2{
  font-family:var(--display);
  font-weight:800;
  text-transform:uppercase;
  font-size:clamp(1.8rem, 3.4vw, 2.6rem);
  line-height:1.08;
  margin:.6rem 0 1.25rem;
}
.operator-copy p:not(.eyebrow){ color:var(--concrete-lt); max-width:52ch; margin-bottom:0; }
.operator-card{
  background:var(--charcoal-2);
  padding:2rem;
  border-left:3px solid var(--orange);
}
.operator-list{ display:flex; flex-direction:column; gap:1.1rem; }
.operator-list li{ font-size:.95rem; color:var(--concrete-lt); line-height:1.5; }
.operator-list strong{ color:var(--bone); display:block; font-family:var(--display); font-weight:700; font-size:1.02rem; text-transform:uppercase; margin-bottom:.15rem; }
@media (max-width:880px){
  .operator-grid{ grid-template-columns:1fr; gap:2.25rem; }
}

/* =============================================================
   HOME — gallery
   ============================================================= */
.gallery-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:1.25rem;
}
.gallery-card{ position:relative; overflow:hidden; background:var(--charcoal); }
.gallery-card img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.gallery-card:hover img{ transform:scale(1.04); }
.gallery-card.large{ aspect-ratio:16/10; }
.gallery-card:not(.large){ aspect-ratio:4/5; }
.gallery-card figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding:1.1rem 1.25rem;
  background:linear-gradient(180deg, transparent, rgba(12,13,11,.88));
  color:var(--bone);
  font-size:.85rem;
}
.gallery-card figcaption span{
  display:block;
  font-family:var(--display);
  font-weight:700;
  text-transform:uppercase;
  font-size:1.05rem;
  color:var(--orange);
  margin-bottom:.15rem;
}
@media (max-width:740px){
  .gallery-grid{ grid-template-columns:1fr; }
  .gallery-card.large{ aspect-ratio:4/3; }
  .gallery-card:not(.large){ aspect-ratio:4/3; }
}

/* =============================================================
   HOME — rates preview
   ============================================================= */
.rates-preview-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3.5rem;
  align-items:center;
}
@media (max-width:880px){
  .rates-preview-grid{ grid-template-columns:1fr; gap:2.5rem; }
}

/* =============================================================
   HOME — waste streams
   ============================================================= */
.streams-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--line-soft);
  border:1px solid var(--line-soft);
}
.stream-card{
  background:var(--surface-page);
  padding:1.6rem 1.4rem;
  min-height:96px;
  display:flex; align-items:center;
  transition:background .2s var(--ease);
}
.stream-card:hover{ background:var(--charcoal); }
.stream-card:hover .stream-no{ color:var(--orange); }
.stream-no{
  font-family:var(--display);
  font-weight:700;
  text-transform:uppercase;
  font-size:1.1rem;
  letter-spacing:.01em;
  transition:color .2s var(--ease);
}
@media (max-width:740px){
  .streams-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:480px){
  .streams-grid{ grid-template-columns:1fr; }
}

/* =============================================================
   HOME — location CTA
   ============================================================= */
.location-cta-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:3.5rem;
  align-items:start;
}
.location-cta-grid h2{
  font-family:var(--display);
  font-weight:800;
  text-transform:uppercase;
  font-size:clamp(1.8rem, 3.4vw, 2.6rem);
  line-height:1.08;
  margin:.6rem 0 1.25rem;
}
.location-cta-grid > div:first-child p:not(.eyebrow){ color:var(--concrete-lt); max-width:54ch; }
.location-cta-meta{ background:var(--charcoal-2); padding:2rem; border-left:3px solid var(--orange); }
.meta-row{ padding:.85rem 0; border-bottom:1px solid rgba(239,238,231,.1); }
.meta-row:last-child{ border-bottom:none; }
.meta-row .k{ display:block; font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--concrete); margin-bottom:.3rem; }
.meta-row .v{ font-family:var(--display); font-weight:700; font-size:1.15rem; color:var(--bone); }
.meta-row .v a:hover{ color:var(--orange); }
@media (max-width:880px){
  .location-cta-grid{ grid-template-columns:1fr; gap:2.25rem; }
}

/* =============================================================
   FACILITY page
   ============================================================= */
.facility-feature-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.5rem;
  margin-top:2.5rem;
}
.feature-block{ border-top:2px solid var(--orange); padding-top:1.1rem; }
.feature-tag{
  display:block;
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--yellow);
  margin-bottom:.6rem;
}
.feature-block p{ font-size:.92rem; color:var(--concrete-lt); }
@media (max-width:880px){
  .facility-feature-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .facility-feature-grid{ grid-template-columns:1fr; }
}

.process-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.5rem;
}
.process-step{
  background:var(--charcoal);
  color:var(--bone);
  padding:1.75rem 1.5rem;
  position:relative;
}
.process-step::before{
  content:"";
  position:absolute; top:0; left:0;
  width:28px; height:3px;
  background:var(--orange);
}
.step-label{
  display:block;
  font-family:var(--display);
  font-weight:800;
  text-transform:uppercase;
  font-size:1.2rem;
  margin-bottom:.6rem;
}
.process-step p{ font-size:.9rem; color:var(--concrete-lt); }
@media (max-width:880px){
  .process-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .process-grid{ grid-template-columns:1fr; }
}

.cta-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  flex-wrap:wrap;
}
.cta-banner h2{
  font-family:var(--display);
  font-weight:800;
  text-transform:uppercase;
  font-size:clamp(1.6rem, 3vw, 2.2rem);
  line-height:1.1;
  margin-top:.5rem;
  max-width:28ch;
}

/* =============================================================
   RATES page
   ============================================================= */
.rate-table-wrap{ overflow-x:auto; border:1px solid var(--line-soft); -webkit-overflow-scrolling:touch; }
.rate-table.full{ min-width:640px; }
.rate-table.full th:not(:first-child), .rate-table.full td:not(:first-child){ width:20%; }
@media (max-width:680px){
  .rate-table-wrap{
    background:
      linear-gradient(to right, var(--bone) 0%, rgba(239,238,231,0) 6%) 0 0,
      linear-gradient(to left, var(--bone) 0%, rgba(239,238,231,0) 10%) 100% 0,
      var(--bone);
    background-repeat:no-repeat;
    background-size:24px 100%, 36px 100%, 100% 100%;
    background-attachment:local, scroll, local;
  }
}
.total-cell{ color:var(--orange); font-weight:700; }
.rate-note{
  margin-top:1.75rem;
  padding:1.25rem 1.5rem;
  background:var(--charcoal);
  color:var(--bone);
  border-left:3px solid var(--yellow);
  font-size:.92rem;
}
.rate-note p{ margin-bottom:.5rem; }
.rate-note p:last-child{ margin-bottom:0; color:var(--concrete-lt); }
.rate-note strong{ color:var(--yellow); }

.payment-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
  margin-top:1rem;
}
.payment-card{ border-top:2px solid var(--orange); padding-top:1.1rem; }
.payment-card p{ font-size:.92rem; opacity:.78; }
@media (max-width:880px){
  .payment-grid{ grid-template-columns:1fr; }
}
.cta-inline{ display:flex; gap:1rem; margin-top:2.5rem; flex-wrap:wrap; }

/* =============================================================
   LOCATION page
   ============================================================= */
.location-layout{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:3.5rem;
  align-items:start;
}
.location-map{
  position:sticky; top:140px;
  aspect-ratio:4/5;
  overflow:hidden;
  border:1px solid var(--line-soft-2);
  background:var(--charcoal);
}
.location-map iframe{ width:100%; height:100%; }

.hours-table{ width:100%; border-collapse:collapse; font-family:var(--mono); font-size:.92rem; margin-top:1rem; }
.hours-table td{ padding:.65rem 0; border-bottom:1px solid var(--line-soft); }
.hours-table td:first-child{ font-weight:600; }
.hours-table td:last-child{ text-align:right; }
.hours-table td.closed{ color:var(--concrete); }
.hours-footnote{ margin-top:1rem; font-size:.85rem; color:var(--text-muted); }

.directions-list{ margin-top:1rem; padding-left:1.4rem; display:flex; flex-direction:column; gap:.85rem; }
.directions-list li{ font-size:.95rem; line-height:1.55; }
.directions-list strong{ color:var(--orange-dk); }

.detail-rows{ margin-top:1rem; }
.detail-row{ display:flex; justify-content:space-between; gap:1rem; padding:.75rem 0; border-bottom:1px solid var(--line-soft); font-size:.92rem; }
.detail-row .k{ color:var(--text-muted); font-family:var(--mono); font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; }
.detail-row .v{ font-weight:600; text-align:right; }
.detail-row .v a:hover{ color:var(--orange); }

@media (max-width:980px){
  .location-layout{ grid-template-columns:1fr; gap:2.5rem; }
  .location-map{ position:static; aspect-ratio:16/10; }
}

/* =============================================================
   ABOUT page
   ============================================================= */
.operator-about-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:3.5rem;
  align-items:start;
}
.operator-about-grid h2{
  font-family:var(--display);
  font-weight:800;
  text-transform:uppercase;
  font-size:clamp(1.9rem, 3.6vw, 2.7rem);
  margin:.6rem 0 1.25rem;
  line-height:1.05;
}
.operator-about-grid > div:first-child p:not(.eyebrow){ color:var(--text-muted); max-width:58ch; margin-bottom:1.1rem; }
.operator-about-grid > div:first-child .btn{ margin-top:.5rem; }

.values-card{ background:var(--liner); color:var(--bone); padding:2rem; border-left:3px solid var(--orange); }
.values-list{ display:flex; flex-direction:column; gap:1.1rem; }
.values-list li{ font-size:.95rem; color:var(--concrete-lt); line-height:1.5; }
.values-list strong{ color:var(--bone); display:block; font-family:var(--display); font-weight:700; font-size:1.05rem; text-transform:uppercase; margin-bottom:.15rem; }

.partner-meta-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
  margin-top:2.5rem;
}
.partner-meta{ border-top:2px solid var(--orange); padding-top:1.1rem; }
.partner-meta p{ font-size:.92rem; color:var(--concrete-lt); }

@media (max-width:880px){
  .operator-about-grid{ grid-template-columns:1fr; gap:2.25rem; }
  .partner-meta-grid{ grid-template-columns:1fr; }
}

/* =============================================================
   CONTACT page
   ============================================================= */
.contact-layout{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:3.5rem;
  align-items:start;
}
.contact-form h2{
  font-family:var(--display);
  font-weight:800;
  text-transform:uppercase;
  font-size:clamp(1.8rem, 3.2vw, 2.4rem);
  margin:.6rem 0 2rem;
  line-height:1.08;
}
.form-row{ margin-bottom:1.4rem; }
.form-row.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; margin-bottom:0; }
.form-row.two-col > div{ margin-bottom:1.4rem; }
label{
  display:block;
  font-family:var(--mono);
  font-size:.74rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--charcoal);
  opacity:.7;
  margin-bottom:.5rem;
}
input, select, textarea{
  width:100%;
  font-family:var(--body);
  font-size:.98rem;
  padding:.85rem 1rem;
  background:var(--surface-sunken);
  border:1px solid var(--line-soft-2);
  color:var(--text-primary);
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
input:focus, select:focus, textarea:focus{
  outline:none;
  border-color:var(--orange);
  background:#fff;
}
textarea{ resize:vertical; }
.form-note{ margin-top:1rem; font-size:.82rem; color:var(--text-muted); }

.contact-side{ display:flex; flex-direction:column; gap:1.5rem; }
.contact-card{ background:var(--charcoal); color:var(--bone); padding:1.85rem; border-left:3px solid var(--orange); }
.contact-card .detail-row .k{ color:var(--concrete); opacity:1; }
.contact-card .detail-row .v{ color:var(--bone); }
.contact-card .detail-row{ border-bottom:1px solid rgba(239,238,231,.1); }

@media (max-width:880px){
  .contact-layout{ grid-template-columns:1fr; gap:2.5rem; }
  .form-row.two-col{ grid-template-columns:1fr; }
}
