/* ============================================================
   Haynes Infrastructure Group, LLC — Site Stylesheet
   Palette:  Ink #0B0C0E   Charcoal #17181B   Paper #F6F4EF
             Steel #565A5F  Gold #C9A344 -> #F1D98B (metallic)
   Display:  "Cormorant SC" / "Cormorant" (echoes wordmark serif)
   Body:     "Inter"
   Utility:  "Inter" uppercase, tracked
   ============================================================ */

:root{
  --ink:#0B0C0E;
  --charcoal:#17181B;
  --paper:#F6F4EF;
  --paper-dim:#EFEBE2;
  --steel:#565A5F;
  --steel-light:#8A8E93;
  --line:#E4DFD3;
  --gold-1:#B98F2E;
  --gold-2:#E8C766;
  --gold-3:#8C6A1F;
  --white:#FFFFFF;
  --radius:2px;
  --max:1240px;
  --gutter:clamp(1.5rem, 5vw, 4rem);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--charcoal);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
/* fluid root scale so rem-based type & spacing track viewport at the extremes */
html{font-size:16px;}
@media (min-width:1601px){ html{font-size:17.5px;} }
@media (max-width:1200px){ html{font-size:15.5px;} }
@media (max-width:900px){ html{font-size:15px;} }
@media (max-width:600px){ html{font-size:14.5px;} }
@media (max-width:400px){ html{font-size:14px;} }

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{
  font-family:'Cormorant SC','Cormorant',serif;
  font-weight:600;
  letter-spacing:.02em;
  margin:0 0 .5em;
  color:var(--ink);
  line-height:1.2;
}
p{margin:0 0 1em;color:var(--steel);line-height:1.55;}
.container{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);}
.gold-text{
  background:linear-gradient(120deg,var(--gold-3),var(--gold-2) 45%, var(--gold-1));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.eyebrow{
  font-family:'Inter',sans-serif;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold-1);
  display:flex;
  align-items:center;
  gap:.75em;
  margin-bottom:1em;
}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--gold-1);display:inline-block;}

/* focus visibility */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--gold-1);
  outline-offset:3px;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* ---------------- Header / Nav ---------------- */
.site-header{
  position:sticky;top:0;z-index:1000;
  background:rgba(11,12,14,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(232,199,102,.15);
  box-shadow:0 12px 30px -22px rgba(0,0,0,.7);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:.85rem var(--gutter);
  max-width:var(--max);margin:0 auto;
}
.brand{display:flex;align-items:center;gap:.65rem;}
.brand img{height:38px;width:auto;}
.brand-word{
  font-family:'Cormorant SC',serif;
  color:var(--white);
  font-size:1.3rem;
  letter-spacing:.12em;
  line-height:1.1;
}
.brand-word span{
  display:block;
  font-family:'Inter',sans-serif;
  font-size:.55rem;
  letter-spacing:.2em;
  color:var(--gold-2);
  font-weight:600;
  margin-top:.15em;
}
.nav-links{display:flex;align-items:center;gap:2.25rem;}
.nav-links a{
  color:var(--paper);
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:500;
  position:relative;
  padding:.3rem 0;
  transition:color .25s ease;
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:linear-gradient(90deg,var(--gold-1),var(--gold-2));
  transition:width .3s ease;
}
.nav-links a:not(.nav-cta):hover,.nav-links a.active:not(.nav-cta){color:var(--gold-2);}
.nav-links a:not(.nav-cta):hover::after,.nav-links a.active:not(.nav-cta)::after{width:100%;}
.nav-links a.nav-cta{
  border:1px solid var(--gold-2);
  border-radius:3px;
  padding:.75rem 1.75rem;
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--gold-2) !important;
  font-weight:600;
  background:rgba(232,199,102,.08);
  transition:background .25s ease,color .25s ease,transform .25s ease,box-shadow .25s ease;
}
.nav-links a.nav-cta::after{content:none;}
.nav-links a.nav-cta:hover{
  background:var(--gold-2);color:var(--ink) !important;
  transform:translateY(-1px);
  box-shadow:0 10px 24px -10px rgba(232,199,102,.55);
}
.nav-links a.nav-cta.active{background:var(--gold-2);color:var(--ink) !important;}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:.4rem;}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--paper);margin:5px 0;}

@media (max-width:860px){
  .site-header{
    backdrop-filter:none !important;
    background:#000000 !important;
  }
  .nav-links{
    position:fixed;inset:64px 0 0 0;background:#000000 !important;
    flex-direction:column;justify-content:flex-start;padding:2.5rem var(--gutter);
    gap:1.75rem;transform:translateX(100%);transition:transform .35s ease;
    z-index:1000;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-toggle{display:block;}
}
@media (max-width:400px){
  .brand{gap:.5rem;}
  .brand img{height:30px;}
  .brand-word{font-size:1.05rem;}
  .brand-word span{font-size:.5rem;letter-spacing:.16em;}
}

/* ---------------- Hero ---------------- */
.hero{
  position:relative;
  min-height:min(94vh,860px);
  display:flex;align-items:center;
  background-color:var(--ink);
  color:var(--white);
  overflow:hidden;
}
@supports (height:100dvh){
  .hero{min-height:min(94dvh,860px);}
}
@media (max-width:700px){
  .hero{min-height:auto;}
}
.hero-bg{
  position:absolute;inset:0;z-index:0;
 background-image: url('img/hero-bg.jpg');
  background-position:center 30%;
  background-size:cover;
  background-repeat:no-repeat;
  animation:heroZoom 26s ease-in-out infinite alternate;
  will-change:transform;
}
.hero-bg::before{
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(180deg,rgba(8,9,10,.62),rgba(8,9,10,.86) 65%,var(--ink) 100%),
    linear-gradient(100deg,rgba(8,9,10,.55) 0%,rgba(8,9,10,.1) 45%,transparent 60%),
    repeating-linear-gradient(0deg,rgba(232,199,102,.06) 0 1px,transparent 1px 64px),
    repeating-linear-gradient(90deg,rgba(232,199,102,.06) 0 1px,transparent 1px 64px);
}
@keyframes heroZoom{
  from{transform:scale(1);}
  to{transform:scale(1.1);}
}
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:120px;z-index:1;
  background:linear-gradient(180deg,transparent,var(--ink));
}
.hero::before{
  content:"";position:absolute;z-index:2;pointer-events:none;
  inset:clamp(1.1rem,3vw,2.25rem);
  background-repeat:no-repeat;
  background-image:
    linear-gradient(rgba(232,199,102,.55),rgba(232,199,102,.55)),
    linear-gradient(rgba(232,199,102,.55),rgba(232,199,102,.55)),
    linear-gradient(rgba(232,199,102,.55),rgba(232,199,102,.55)),
    linear-gradient(rgba(232,199,102,.55),rgba(232,199,102,.55)),
    linear-gradient(rgba(232,199,102,.55),rgba(232,199,102,.55)),
    linear-gradient(rgba(232,199,102,.55),rgba(232,199,102,.55)),
    linear-gradient(rgba(232,199,102,.55),rgba(232,199,102,.55)),
    linear-gradient(rgba(232,199,102,.55),rgba(232,199,102,.55));
  background-size:
    1px 34px, 34px 1px,
    1px 34px, 34px 1px,
    1px 34px, 34px 1px,
    1px 34px, 34px 1px;
  background-position:
    top left, top left,
    top right, top right,
    bottom left, bottom left,
    bottom right, bottom right;
}
@media (max-width:600px){
  .hero::before{display:none;}
}
.hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:clamp(5rem,16vw,7.5rem) var(--gutter) clamp(3.5rem,10vw,5rem);width:100%;}
.hero-inner>*{animation:heroFadeUp .9s cubic-bezier(.2,.7,.2,1) both;}
.hero .eyebrow{
  border:1px solid rgba(232,199,102,.35);
  border-radius:4px;
  padding:.5em 1.15em;
  width:fit-content;
  background:rgba(232,199,102,.07);
  margin-bottom:1.6rem;
}
.hero .eyebrow::before{content:none;}
.hero-inner>.eyebrow{animation-delay:.1s;}
.hero-inner>h1{animation-delay:.25s;}
.hero-inner>p.lead{animation-delay:.4s;}
.hero-inner>.hero-actions{animation-delay:.55s;}
.hero-inner>.hero-strip{animation-delay:.7s;}
@keyframes heroFadeUp{
  from{opacity:0;transform:translateY(22px);}
  to{opacity:1;transform:translateY(0);}
}
.hero h1{
  font-size:clamp(2.2rem,5vw,3.9rem);
  color:var(--white);
  max-width:19ch;
  line-height:1.15;
  margin-bottom:.4em;
}
.hero h1 .gold-text{
  white-space:nowrap;
  background-size:200% auto;
  animation:goldShimmer 5s ease-in-out infinite alternate;
}
@keyframes goldShimmer{
  from{background-position:0% 50%;}
  to{background-position:100% 50%;}
}
@media (max-width:520px){
  .hero h1 .gold-text{white-space:normal;}
}
.hero p.lead{
  color:#D8D4C8;
  font-size:clamp(1rem, 1.8vw, 1.1rem);
  line-height:1.5;
  max-width:46ch;
  margin-bottom:2.2rem;
}
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  padding:.95rem 2.1rem;
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  border:1px solid transparent;cursor:pointer;
  transition:transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}
.btn-gold{
  background:linear-gradient(120deg,var(--gold-1),var(--gold-2));color:var(--ink);
  box-shadow:0 10px 28px -10px rgba(185,143,46,.6);
}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 14px 34px -10px rgba(185,143,46,.7);}
.btn-outline{border-color:rgba(255,255,255,.4);color:var(--white);}
.btn-outline:hover{border-color:var(--gold-2);color:var(--gold-2);}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;}

.hero-strip{
  position:relative;z-index:2;
  border-top:1px solid rgba(232,199,102,.2);
  margin-top:clamp(2rem,6vw,3.5rem);padding-top:1.75rem;
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;
  max-width:var(--max);margin-left:auto;margin-right:auto;
}
.hero-strip div{position:relative;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#B9B4A6;}
.hero-strip strong{display:block;font-family:'Cormorant SC',serif;font-size:1.5rem;color:var(--gold-2);font-weight:600;letter-spacing:.03em;}
.hero-strip div:not(:last-child)::after{
  content:"";position:absolute;top:.15em;bottom:.15em;right:calc(-.75rem - 1px);width:1px;
  background:rgba(232,199,102,.18);
}

@media (max-width:700px){
  .hero-strip{grid-template-columns:repeat(2,1fr);gap:1.25rem 1rem;}
  .hero-strip div::after{content:none;}
}
@media (max-width:400px){
  .hero-strip{grid-template-columns:1fr 1fr;gap:1rem;}
  .hero-strip strong{font-size:1.25rem;}
}

.scroll-cue{
  position:absolute;left:50%;bottom:1.75rem;z-index:2;
  transform:translateX(-50%);
  width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(232,199,102,.35);
  color:var(--gold-2);
  animation:scrollCueBob 2.2s ease-in-out infinite;
  transition:border-color .25s ease,color .25s ease;
}
.scroll-cue:hover{border-color:var(--gold-2);color:var(--gold-2);}
.scroll-cue svg{width:16px;height:16px;stroke:currentColor;}
@keyframes scrollCueBob{
  0%,100%{transform:translate(-50%,0);}
  50%{transform:translate(-50%,8px);}
}
@media (max-width:520px){
  .scroll-cue{display:none;}
}

/* ---------------- Split sections ---------------- */
.split{
  background:var(--paper);
  padding:clamp(3.5rem,9vw,6.5rem) 0;
  border-bottom:1px solid var(--line);
}
.split.on-dark{background:var(--ink);border-color:#232427;}
.split.on-dim{background:var(--paper-dim);}
.split-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center;
}
.split-grid.reverse .split-media{order:2;}
.split-grid.reverse .split-copy{order:1;}
.split-media{position:relative;}
.split-media .frame{
  position:relative;border:1px solid var(--line);padding:10px;background:var(--white);
  overflow:hidden;
  box-shadow:0 25px 50px -30px rgba(11,12,14,.4);
}
.on-dark .split-media .frame{border-color:#2A2B2F;background:#101113;box-shadow:0 25px 50px -22px rgba(0,0,0,.65);}
.split-media img{width:100%;height:auto;display:block;transition:transform .6s ease;}
.split-media .frame:hover img{transform:scale(1.035);}

@media (max-width:900px){
  .split-grid{grid-template-columns:1fr;gap:2.5rem;}
  .split-grid .split-copy{order:0;}
  .split-grid .split-media{order:1;}
  .split-copy .desc{max-width:none;}
}
.split-media .tag{
  position:absolute;bottom:-14px;left:24px;background:var(--ink);color:var(--gold-2);
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;padding:.55em 1.1em;font-weight:600;
}
.split-copy h2{font-size:clamp(1.8rem,3.2vw,2.6rem);}
.on-dark h2,.on-dark h3{color:var(--white);}
.on-dark p{color:#AFAFAF;}
.split-copy .desc{max-width:52ch;}
.feature-list{list-style:none;margin:1.6rem 0 2rem;padding:0;display:grid;gap:.85rem;}
.feature-list li{
  display:flex;align-items:flex-start;gap:.75rem;
  font-size:.92rem;color:var(--charcoal);
}
.on-dark .feature-list li{color:#D8D6CF;}
.feature-list li::before{
  content:"";flex:0 0 6px;width:6px;height:6px;margin-top:.55em;
  background:linear-gradient(120deg,var(--gold-1),var(--gold-2));
}
.link-arrow{
  display:inline-flex;align-items:center;gap:.5em;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:600;color:var(--gold-1);border-bottom:1px solid transparent;
}
.link-arrow:hover{border-color:var(--gold-1);}
.on-dark .link-arrow{color:var(--gold-2);}

/* ---------------- Services strip ---------------- */
.services{background:var(--ink);padding:clamp(2.25rem,5vw,3.5rem) 0;border-bottom:1px solid #232427;}
.services-grid{
  display:grid;grid-template-columns:repeat(6,1fr);gap:1.5rem;
}
.service-item{text-align:center;color:#CFCBC0;}
.service-item svg{width:38px;height:38px;margin:0 auto .9rem;stroke:var(--gold-2);}
.service-item span{
  display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;
}
@media (max-width:920px){.services-grid{grid-template-columns:repeat(3,1fr);row-gap:2.2rem;}}
@media (max-width:520px){.services-grid{grid-template-columns:repeat(2,1fr);}}

/* ---------------- Section headings (centered) ---------------- */
.section-head{text-align:center;max-width:640px;margin:0 auto 3.2rem;}
.section-head .eyebrow{justify-content:center;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.7rem);}

/* ---------------- Carousel ---------------- */
.showcase{background:var(--paper-dim);padding:clamp(3.5rem,9vw,6.5rem) 0;}
.carousel{position:relative;max-width:980px;margin:0 auto;}
.carousel-viewport{transition:height 0.3s ease;
  overflow:hidden;border:1px solid var(--line);background:var(--white);
  box-shadow:0 30px 60px -35px rgba(11,12,14,.45);
}
.carousel-track{display:flex;align-items:flex-start;transition:transform .55s cubic-bezier(.65,0,.35,1);}
.slide{flex:0 0 100%;}
.slide figure{margin:0;display:grid;grid-template-columns:1.3fr 1fr;}
.slide img{width:100%;height:420px;object-fit:cover;}
.slide figure img:only-child { grid-column: 1 / -1; }
.slide figcaption{padding:2.5rem;display:flex;flex-direction:column;justify-content:center;}
.slide figcaption .tag{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-1);font-weight:700;margin-bottom:.6rem;}
.slide figcaption h3{font-size:clamp(1.2rem, 2.2vw, 1.5rem);line-height:1.25;margin-bottom:.5rem;}
.slide figcaption p{font-size:.9rem;line-height:1.5;margin-bottom:0;}
@media (max-width:760px){
  .slide figure{grid-template-columns:1fr;}
  .slide img{height:260px;}
  
}
.carousel-controls{
  display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:1.75rem;
}
.car-btn{flex-shrink:0;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--white);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s ease,transform .2s ease;
}
.car-btn:hover{border-color:var(--gold-1);transform:translateY(-1px);}
.car-btn svg{width:18px;height:18px;stroke:var(--charcoal);}
.car-dots{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:center;max-width:50vw;}
.car-dots button{
  width:8px;height:8px;border-radius:50%;background:#D8D2C1;border:0;padding:0;cursor:pointer;
}
.car-dots button.active{background:linear-gradient(120deg,var(--gold-1),var(--gold-2));width:22px;border-radius:5px;transition:width .3s ease;}

/* ---------------- CTA band ---------------- */
.cta-band{
  background:var(--ink);color:var(--white);padding:clamp(2.5rem,5vw,3.5rem) 0;text-align:center;position:relative;
  background-image:radial-gradient(ellipse at 50% 0%,rgba(232,199,102,.08),transparent 60%);
}
.cta-band .eyebrow{margin-bottom:.75em;}
.cta-band h2{color:var(--white);font-size:clamp(1.6rem,2.8vw,2.2rem);max-width:26ch;line-height:1.2;margin:0 auto .4em;}
.cta-band p{color:#B9B4A6;max-width:52ch;margin:0 auto 1.6rem;}

/* ---------------- Footer ---------------- */
.site-footer{
  background:#0B0C0E; /* Solid dark theme background */
  color:#B9B4A6; /* High contrast readable light grey */
  padding:clamp(3.5rem,7vw,4.5rem) 0 2.5rem;
  border-top:1px solid rgba(232,199,102,.15);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  gap:clamp(2rem,5vw,4rem);
  margin-bottom:3rem;
}
.footer-brand img{height:38px;margin-bottom:1.2rem;}
.footer-brand p{
  max-width:36ch;
  font-size:.85rem;
  line-height:1.6;
  color:#AFAFAF; /* High visibility text */
}
.site-footer h4{
  color:var(--gold-2); /* Gold title */
  font-family:'Inter',sans-serif;
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  margin-bottom:1.4rem;
}
.site-footer ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.75rem;
  font-size:.88rem;
}
.site-footer a{
  color:#B9B4A6;
  transition:color .25s ease, transform .25s ease;
  display:inline-block;
}
.site-footer a:hover{
  color:var(--white);
  transform:translateX(4px);
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.05);
  padding-top:1.8rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1.25rem;
  font-size:.78rem;
  color:#8A8E93;
}
.footer-bottom span:last-child{
  color:#AFAFAF;
  letter-spacing:0.05em;
}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr;}}

/* ---------------- Contact page ---------------- */
.page-hero{
  position: relative;
  background-color: var(--ink);
  background-image:
    radial-gradient(circle at 85% 15%, rgba(232, 199, 102, 0.12), transparent 45%),
    radial-gradient(circle at 15% 85%, rgba(232, 199, 102, 0.06), transparent 50%),
    linear-gradient(135deg, rgba(232, 199, 102, 0.02), transparent);
  color: var(--white);
  padding: clamp(5rem, 13vw, 7.5rem) 0 clamp(3.5rem, 8vw, 5rem);
  text-align: left;
  border-bottom: 1px solid rgba(232, 199, 102, 0.15);
  overflow: hidden;
}

.page-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.4;
  pointer-events: none;
}

.hero-pattern {
  width: 100%;
  height: 100%;
}

.page-hero-accent {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}

.page-hero-accent.top-left {
  top: -40px;
  left: -80px;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(232, 199, 102, 0.08) 0%, transparent 70%);
  border-radius: 50%;
}

.page-hero-accent.top-right {
  top: 20px;
  right: -120px;
  width: 400px;
  height: 250px;
  background: radial-gradient(ellipse at center, rgba(232, 199, 102, 0.05) 0%, transparent 65%);
  border-radius: 50%;
}

.page-hero-content {
  position: relative;
  z-index: 2;
  max-width: var(--max);
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.75em;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  animation: badgeFadeIn 0.8s ease-out 0.1s both;
}

.badge-line {
  width: 28px;
  height: 2px;
  background: linear-gradient(90deg, var(--gold-1), var(--gold-2));
  display: block;
}

.badge-text {
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-2);
}

@keyframes badgeFadeIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero-title {
  font-size: clamp(2.2rem, 5.2vw, 3.6rem);
  font-family: 'Cormorant SC', serif;
  font-weight: 700;
  color: var(--white);
  line-height: 1.15;
  max-width: 16ch;
  margin: 0 0 clamp(2rem, 4vw, 2.8rem);
  animation: titleFadeIn 0.9s ease-out 0.2s both;
  letter-spacing: -0.02em;
}

.hero-title strong {
  background: linear-gradient(120deg, var(--gold-2), var(--gold-1));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

@keyframes titleFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero-decorative {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  animation: decorativeFadeIn 0.9s ease-out 0.35s both;
}

.decoration-line {
  width: 2px;
  height: 48px;
  background: linear-gradient(180deg, var(--gold-2), transparent);
}

.decoration-icon {
  width: 42px;
  height: 42px;
  border: 2px solid rgba(232, 199, 102, 0.35);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gold-2);
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  cursor: pointer;
}

.decoration-icon:hover {
  border-color: var(--gold-1);
  background: rgba(232, 199, 102, 0.08);
  transform: scale(1.1) translateY(-4px);
}

.decoration-icon svg {
  width: 20px;
  height: 20px;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@keyframes decorativeFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 768px) {
  .page-hero-accent.top-left {
    width: 200px;
    height: 200px;
    left: -60px;
  }
  
  .page-hero-accent.top-right {
    width: 250px;
    height: 180px;
    right: -100px;
  }
  
  .hero-title {
    max-width: 14ch;
  }
  
  .hero-decorative {
    margin-top: 1rem;
  }
}

@media (max-width: 520px) {
  .hero-title {
    max-width: 12ch;
  }
  
  .decoration-icon {
    width: 36px;
    height: 36px;
    border-width: 1.5px;
  }
  
  .decoration-line {
    height: 36px;
  }
}

/* Styling for pages still using old page-hero structure (about.html, etc.) */
.page-hero .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.75em;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  justify-content: flex-start;
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-2);
}

.page-hero .eyebrow::before {
  content: "";
  width: 28px;
  height: 2px;
  background: linear-gradient(90deg, var(--gold-1), var(--gold-2));
  display: inline-block;
}

.page-hero h1 {
  color: var(--white);
  font-size: clamp(2.2rem, 5.2vw, 3.6rem);
  line-height: 1.15;
  max-width: 28ch;
  font-family: 'Cormorant SC', serif;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
}

.contact-wrap{padding:clamp(3.5rem,9vw,6rem) 0;background:var(--paper-dim);}
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4.5rem);align-items:start;}
.info-card{
  border:1px solid rgba(0,0,0,.06);
  background:var(--white);
  padding:clamp(1.75rem,4vw,2.5rem);
  margin-bottom:1.75rem;
  border-radius:6px;
  box-shadow:0 30px 60px -25px rgba(11,12,14,.06);
}
.info-card h3{font-size:clamp(1.05rem, 1.8vw, 1.15rem);line-height:1.25;margin-bottom:.35rem;}
.info-card p{margin-bottom:0;font-size:.92rem;line-height:1.5;}
.info-card a{color:var(--gold-1);font-weight:600;}
.info-card.brand-card {
  background:linear-gradient(135deg, var(--ink), var(--charcoal));
  color:var(--white);
  border:1px solid rgba(232, 199, 102, 0.15);
  box-shadow:0 30px 60px -25px rgba(0,0,0,.25);
}
.info-card.brand-card h3 {
  color:var(--white);
  font-family:'Cormorant SC',serif;
  font-size:1.3rem;
  letter-spacing:0.06em;
  margin-bottom:0.25em;
}
.info-card.brand-card p {
  color:#AFAFAF;
  margin-top:1rem;
  font-size:0.88rem;
  line-height:1.5;
}
.info-row{display:flex;gap:1.25rem;align-items:center;margin-bottom:1.8rem;}
.info-row:last-child{margin-bottom:0;}
.info-row .icon-box{
  background:rgba(185,143,46,.08);
  border-radius:50%;
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.info-row svg{width:18px;height:18px;stroke:var(--gold-1);display:block;}
.info-row h4{font-family:'Inter',sans-serif;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--ink);margin-bottom:.25em;}
.info-row p{font-size:.92rem;margin:0;}

.form-card{
  border:1px solid rgba(0,0,0,.06);
  background:var(--white);
  padding:clamp(2rem,5vw,3.5rem);
  border-radius:6px;
  box-shadow:0 35px 70px -30px rgba(11,12,14,.07);
}
.form-card h2{font-size:clamp(1.3rem, 2.5vw, 1.6rem);line-height:1.2;margin-bottom:.3em;}
.form-card > p{margin-bottom:2rem;line-height:1.5;}
.field{margin-bottom:1.4rem;}
.field label{
  display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;
  color:var(--steel);margin-bottom:.55em;
}
.field input,.field textarea,.field select{
  width:100%;
  border:1px solid var(--line);
  background:var(--paper);
  padding:0.95rem 1.1rem;
  font-family:'Inter',sans-serif;
  font-size:0.9rem;
  color:var(--charcoal);
  border-radius:4px;
  transition:border-color .25s ease, background-color .25s ease, box-shadow .25s ease;
}
.field select {
  cursor: pointer;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23565A5F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 1.1rem;
  padding-right: 2.5rem !important;
  appearance: none;
}
.field input:focus,.field textarea:focus,.field select:focus{
  border-color:var(--gold-1);
  background-color:var(--white);
  box-shadow:0 0 0 4px rgba(185, 143, 46, 0.08);
  outline:none;
}
.field textarea{resize:vertical;min-height:140px;}

/* Two column field grid */
.field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
@media (max-width: 600px) {
  .field-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
}
.form-status{font-size:.85rem;margin-top:1rem;min-height:1.2em;}
.form-status.success{color:#4B7B4E;}
.form-status.error{color:#B14343;}
.map-frame{border:1px solid var(--line);margin-top:2rem;height:280px;overflow:hidden;}
.map-frame iframe{width:100%;height:100%;border:0;filter:grayscale(35%) contrast(1.05);}

@media (max-width:900px){.contact-grid{grid-template-columns:1fr;}}

/* Construction cards grid */
.construction-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin: 1.75rem 0 2.25rem;
}
.c-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 1.25rem;
  border-radius: 4px;
  transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}
.c-card:hover {
  background: rgba(232, 199, 102, 0.07);
  border-color: rgba(232, 199, 102, 0.4);
  box-shadow: 0 10px 30px -15px rgba(232, 199, 102, 0.25);
  transform: translateY(-2px);
}
.c-card:hover h4 {
  color: var(--gold-2);
}
.c-card h4 {
  font-family: 'Inter', sans-serif;
  color: var(--white);
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 0.4em;
  letter-spacing: 0.02em;
  transition: color 0.25s ease;
}
.c-card p {
  color: #AFAFAF;
  font-size: 0.8rem;
  line-height: 1.45;
  margin-bottom: 0;
}
.c-card ul {
  color: #AFAFAF;
  font-size: 0.8rem;
  line-height: 1.45;
  margin-bottom: 0;
  padding-left: 1.25rem;
  list-style-type: disc;
}
.c-card li {
  margin-bottom: 0.25rem;
}
.c-card li:last-child {
  margin-bottom: 0;
}

/* Floating badge on media frame */
.split-media .frame {
  position: relative;
}
.floating-badge {
  position: absolute;
  bottom: 2rem;
  right: 2rem;
  background: rgba(11, 12, 14, 0.85);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(232, 199, 102, 0.25);
  padding: 0.85rem 1.25rem;
  border-radius: 2px;
  color: var(--white);
  text-align: center;
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.5);
  animation: badgeFloat 4s ease-in-out infinite alternate;
}
.floating-badge strong {
  text-transform: none !important;
  display: block;
  font-family: 'Cormorant', serif;
  font-size: 1.6rem;
  color: var(--gold-2);
  line-height: 1;
}
.floating-badge span {
  font-family: 'Inter', sans-serif;
  font-size: 0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--paper-dim);
}

@keyframes badgeFloat {
  from { transform: translateY(0); }
  to { transform: translateY(-6px); }
}

@media (max-width: 600px) {
  .construction-cards,
  .solutions-timeline {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}

/* Solutions timeline style */
.solutions-timeline {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin: 2rem 0 2.25rem;
}
.timeline-step {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  align-items: flex-start;
  background: var(--white);
  padding: 1.5rem;
  border-radius: 6px;
  border: 1px solid var(--line);
  box-shadow: 0 2px 4px rgba(11, 12, 14, 0.02);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.timeline-step:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(11, 12, 14, 0.05);
}
.step-num {
  font-family: 'Cormorant SC', serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--gold-1);
  line-height: 1;
  background: var(--paper);
  padding: 0.4rem 0.6rem;
  border-radius: 4px;
  border: 1px solid var(--line);
  min-width: 44px;
  text-align: center;
}
.step-header {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.step-header h4 {
  font-family: 'Inter', sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: 0.01em;
  margin: 0;
}
.step-text p {
  color: var(--steel);
  font-size: 0.85rem;
  line-height: 1.5;
  margin-bottom: 0;
}
.step-text ul {
  color: var(--steel);
  font-size: 0.85rem;
  line-height: 1.5;
  margin-bottom: 0;
  padding-left: 1.25rem;
  list-style-type: disc;
}
.step-text li {
  margin-bottom: 0.35rem;
}
.step-text li:last-child {
  margin-bottom: 0;
}

/* Custom styling for solutions badge */
.solutions-badge {
  border-color: rgba(232, 199, 102, 0.3);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
}
.solutions-badge strong {
  color: var(--gold-1);
}

/* ---------------- Sub-page intro block ---------------- */
.page-intro{padding:clamp(3rem,7vw,4.5rem) 0 clamp(1rem,3vw,1.5rem);background:var(--paper);}
.page-intro .container{max-width:820px;}
.page-intro p{font-size:1.02rem;color:var(--steel);}
.page-intro .section-head h2{max-width:26ch;margin-left:auto;margin-right:auto;}
.page-intro .section-head p{font-size:clamp(1rem,1.6vw,1.12rem);}

/* ---------------- Services detail (services.html) ---------------- */
.services-detail{background:var(--paper-dim);padding:clamp(2.5rem,6vw,4rem) 0 clamp(3.5rem,9vw,6.5rem);}
.sd-grid{display:grid;grid-template-columns:1fr;gap:1.75rem;align-items:start;}
@media (min-width:720px){
  .sd-grid{grid-template-columns:repeat(2,1fr);}
}
.sd-card{
  position:relative;overflow:hidden;
  background:var(--white);border:1px solid var(--line);border-radius:10px;
  padding:clamp(2rem,4vw,2.5rem) clamp(1.75rem,3vw,2.5rem);
  box-shadow:0 25px 50px -35px rgba(11,12,14,.28);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  min-height:550px;display:flex;flex-direction:column;
}
.sd-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold-1),var(--gold-2));
  transform:scaleX(0);transform-origin:left;
  transition:transform .45s ease;
}
.sd-card:hover{transform:translateY(-5px);box-shadow:0 32px 60px -28px rgba(11,12,14,.35);border-color:rgba(185,143,46,.35);}
.sd-card:hover::before{transform:scaleX(1);}
.sd-num{
  position:absolute;top:1.6rem;right:1.75rem;z-index:0;
  font-family:'Cormorant SC',serif;font-size:3.2rem;font-weight:600;line-height:1;
  color:rgba(185,143,46,.14);
  user-select:none;
}
.sd-head{position:relative;z-index:1;display:flex;align-items:center;gap:1.1rem;margin-bottom:1.4rem;}
.sd-icon{
  width:58px;height:58px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--ink),var(--charcoal));
  display:flex;align-items:center;justify-content:center;
  transition:background .35s ease, transform .35s ease;
}
.sd-icon svg{width:26px;height:26px;stroke:var(--gold-2);transition:stroke .35s ease;}
.sd-card:hover .sd-icon{background:linear-gradient(135deg,var(--gold-1),var(--gold-2));transform:scale(1.08) rotate(-4deg);}
.sd-card:hover .sd-icon svg{stroke:var(--ink);}
.sd-head h2{margin:0;font-size:1.28rem;line-height:1.25;}
.sd-content{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;}
.sd-content .desc{margin-bottom:0;padding-bottom:1.25rem;border-bottom:1px solid var(--line);}
.sd-content .feature-list{margin:1.25rem 0 0;flex:1;}

/* ---------------- Projects grid (projects.html) ---------------- */
.projects-section{background:var(--paper-dim);padding:clamp(2.5rem,6vw,4rem) 0 clamp(3.5rem,9vw,6.5rem);}
.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.5rem,3vw,2.25rem);}
.project-card{
  background:var(--white);border:1px solid var(--line);border-radius:6px;overflow:hidden;
  box-shadow:0 25px 50px -35px rgba(11,12,14,.3);
  display:flex;flex-direction:column;
  transition:transform .3s ease, box-shadow .3s ease;
}
.project-card:hover{transform:translateY(-3px);box-shadow:0 30px 55px -28px rgba(11,12,14,.35);}
.project-media{overflow:hidden;}
.project-media img{width:100%;height:230px;object-fit:cover;transition:transform .6s ease;}
.project-card:hover .project-media img{transform:scale(1.05);}
.project-body{padding:1.75rem;display:flex;flex-direction:column;flex:1;}
.project-body .tag{
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-1);
  font-weight:700;margin-bottom:.6rem;
}
.project-body h3{font-size:1.15rem;line-height:1.3;margin-bottom:.5rem;}
.project-body p{font-size:.88rem;margin-bottom:1rem;}
.project-meta{
  margin-top:auto;padding-top:1rem;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;font-size:.78rem;color:var(--steel);
}
.project-meta strong{color:var(--charcoal);font-weight:600;}
@media (max-width:760px){
  .projects-grid{grid-template-columns:1fr;}
}

/* ---------------- About page / Stats Band ---------------- */
.stats-band {
  background: linear-gradient(135deg, var(--paper-dim) 0%, var(--paper) 100%);
  padding: clamp(3.5rem, 7vw, 5rem) 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}

.stats-band::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image:
    radial-gradient(circle at 20% 50%, rgba(232, 199, 102, 0.04), transparent 50%),
    radial-gradient(circle at 80% 50%, rgba(232, 199, 102, 0.03), transparent 50%);
  pointer-events: none;
  z-index: 0;
}

.stats-band .container {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
}

.stat-card {
  position: relative;
  text-align: center;
  padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.25rem, 2.5vw, 2rem);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 8px;
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 8px 24px -8px rgba(11, 12, 14, 0.12);
}

.stat-card:hover {
  transform: translateY(-8px);
  border-color: var(--gold-1);
  box-shadow: 0 16px 40px -12px rgba(185, 143, 46, 0.25);
  background: linear-gradient(135deg, var(--white) 0%, rgba(232, 199, 102, 0.02) 100%);
}

.stat-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold-1), var(--gold-2));
  border-radius: 8px 8px 0 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.stat-card:hover::before {
  transform: scaleX(1);
}

.stat-top {
  position: relative;
  margin-bottom: 1.25rem;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.stat-number {
  font-family: 'Cormorant SC', serif;
  font-size: 3.5rem;
  font-weight: 700;
  color: var(--gold-1);
  line-height: 1;
  letter-spacing: -0.02em;
  animation: numberScale 0.8s ease-out 0.2s both;
}

.stat-icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(185, 143, 46, 0.08), rgba(232, 199, 102, 0.04));
  border: 2px solid var(--gold-2);
  border-radius: 50%;
  color: var(--gold-1);
  transition: all 0.4s ease;
}

.stat-card:hover .stat-icon {
  background: linear-gradient(135deg, var(--gold-1), var(--gold-2));
  color: var(--white);
  transform: scale(1.12) rotate(8deg);
  box-shadow: 0 8px 20px rgba(185, 143, 46, 0.3);
}

.stat-icon svg {
  width: 24px;
  height: 24px;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.stat-accent {
  position: absolute;
  width: 6px;
  height: 6px;
  background: linear-gradient(120deg, var(--gold-1), var(--gold-2));
  border-radius: 50%;
  top: 0;
  right: clamp(0.5rem, 2vw, 1.5rem);
  animation: accentFloat 3s ease-in-out infinite;
  animation-delay: calc(var(--card-index, 0) * 0.2s);
}

@keyframes accentFloat {
  0%, 100% {
    transform: translateY(0);
    opacity: 0.6;
  }
  50% {
    transform: translateY(-12px);
    opacity: 1;
  }
}

@keyframes numberScale {
  from {
    opacity: 0;
    transform: scale(0.5);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.stat-label {
  font-family: 'Inter', sans-serif;
  font-size: clamp(0.75rem, 1.2vw, 0.95rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--charcoal);
  line-height: 1.4;
  word-spacing: 9999px;
}

.stat-card:hover .stat-label {
  color: var(--gold-1);
}

@media (max-width: 1024px) {
  .stats-band .container {
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(1.25rem, 2.5vw, 2rem);
  }
  
  .stat-card {
    padding: clamp(1.5rem, 2.5vw, 2rem);
  }
  
  .stat-number {
    font-size: 3rem;
  }
  
  .stat-icon {
    width: 48px;
    height: 48px;
  }
}

@media (max-width: 700px) {
  .stats-band .container {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  
  .stat-card {
    padding: 1.5rem 1rem;
  }
  
  .stat-number {
    font-size: 2.5rem;
  }
  
  .stat-label {
    font-size: 0.75rem;
    letter-spacing: 0.06em;
  }
}

/* ---------------- Scroll reveal ---------------- */
[data-reveal].reveal{
  opacity:0;transform:translateY(30px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
}
[data-reveal].reveal.revealed{opacity:1;transform:translateY(0);}

/* ---------------- Projects: filter bar ---------------- */
.projects-toolbar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.65rem;
  margin:0 0 2.5rem;
}
.filter-btn{
  font-family:'Inter',sans-serif;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;
  color:var(--steel);background:var(--white);border:1px solid var(--line);border-radius:30px;
  padding:.6em 1.35em;cursor:pointer;
  transition:color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.filter-btn:hover{border-color:var(--gold-1);color:var(--charcoal);transform:translateY(-1px);}
.filter-btn.active{
  background:linear-gradient(120deg,var(--gold-1),var(--gold-2));
  border-color:transparent;color:var(--ink);
  box-shadow:0 10px 24px -10px rgba(185,143,46,.55);
}
.projects-count{
  text-align:center;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--steel);margin:-1.25rem 0 2.25rem;
}
.projects-count strong{color:var(--gold-1);}

/* ---------------- Projects: card enhancements ---------------- */
.project-card{position:relative;}
.project-card,
.project-card.reveal{
  transition:opacity .35s ease, transform .35s ease, box-shadow .3s ease, border-color .3s ease;
}
.project-card.is-hidden{opacity:0 !important;transform:scale(.94) !important;pointer-events:none;}
.project-media{position:relative;}
.project-media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg, transparent 42%, rgba(255,255,255,.28) 50%, transparent 58%);
  transform:translateX(-140%);
  transition:transform .85s ease;
}
.project-card:hover .project-media::after{transform:translateX(140%);}
.media-badge{
  position:absolute;top:14px;left:14px;z-index:2;
  font-family:'Cormorant SC',serif;font-size:1.05rem;color:var(--gold-2);
  background:rgba(11,12,14,.72);backdrop-filter:blur(4px);
  border:1px solid rgba(232,199,102,.35);border-radius:3px;
  padding:.3em .65em;letter-spacing:.03em;
}
.project-body h3{position:relative;}
.project-card:hover{border-color:rgba(185,143,46,.4);}

.chip-list{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.5rem 0 0;padding:0;list-style:none;}
.chip-list li{
  border:1px solid var(--line);background:var(--white);color:var(--charcoal);
  font-size:.8rem;letter-spacing:.03em;padding:.55em 1.1em;border-radius:30px;
}
.on-dark .chip-list li{background:rgba(255,255,255,.04);border-color:rgba(232,199,102,.25);color:var(--paper);}

.cert-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:2rem;}
@media (max-width:700px){.cert-grid{grid-template-columns:1fr;}}
/* ---------------- Project Media Sliders ---------------- */
.multi-slider { position: relative; }
.multi-slider .slider-track { display: flex; transition: transform 0.5s ease; width: 100%; height: 100%; }
.multi-slider .slider-track img { flex: 0 0 100%; width: 100%; height: 230px; object-fit: cover; transition: none; }
.project-card:hover .multi-slider .slider-track img { transform: none; }
.slider-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(11,12,14,0.6); color: var(--white); border: 1px solid rgba(232,199,102,0.3); padding: 5px 10px; cursor: pointer; z-index: 10; font-size: 18px; border-radius: 4px; transition: all 0.2s ease; display:flex; align-items:center; justify-content:center; }
.slider-btn:hover { background: var(--ink); border-color: var(--gold-2); color: var(--gold-2); }
.slider-btn.prev { left: 10px; }
.slider-btn.next { right: 10px; }

@media (max-width: 600px) {
  .construction-cards,
  .solutions-timeline {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}
