/*
Theme Name: A Sleeky Theme
Author: Sleeky
Author URI: https://sleeky.co.uk
Description: Just another Sleeky theme.
Version: 1.0
License: (c) Copyright of Sleeky. All Rights Reserved.
Text Domain: sleeky
*/

/* Default Styles */
/*a {
	color: xxxx;
	text-decoration: none;
  	transition: .5s;
}
a:hover {
	color: xxxx;
}
blockquote {
	border-left: 5px solid 000000!important;
	margin: 0px;
	padding: 20px;
}
blockquote, table, table thead {
	background-color: #dfdfdf;
	border: 2px solid #dfdfdf;
}
blockquote h1, blockquote h2, blockquote h3, blockquote h4, blockquote h5, blockquote h6, blockquote p {
	padding: 0px;
}
blockquote cite {
	font-style: italic;
	font-weight: bold;
}
body {
	font-family: xxxx;
	margin: 0px;
	padding: 0px;
}
.clearfix {
	display: block;
}
.clearfix:after {
	clear: both;
	content: ' ';
	display: block;
	font-size: 0px;
	height: 0px;
	visibility: hidden;
}
.column {
	float: left;
	width: 50%;
}
.container {
	margin: 0px auto;
	padding: 0px;
	width: xxxx;
}
@media (max-width: xxxxpx) {
.container {
	width: 90%;
}
}
footer, header, section {
	float: left;
	margin: 0px;
	padding: 0px;
	width: 100%;
}
em {
	font-style: italic;
}
h1, h2, h3, h4, h5, h6 {
	font-style: normal;
	font-weight: normal;
	margin: 0px;
	padding: 0px;
}
img {
	height: auto;
	max-width: 100%;
}
nav .column.left {
	width: 25%;
}
nav .column.right {
	width: 75%;
}
nav .menu-item-has-children {
	position: relative;
}
nav .menu-item-has-children:focus .sub-menu, nav .menu-item-has-children:focus-within .sub-menu, nav .menu-item-has-children:hover .sub-menu {
	opacity: 1;
	transform: translateY(0%);
	transition-delay: 0s, 0s, 0.25s;
	visibility: visible;
	z-index: 1;
}
nav .sub-menu { 
	background-color: #ffffff;
	left: 0px;
	opacity: 0;
	padding: 10px;
	position: absolute;
	top: 100%;
	transform: translateY(-10px);
	transition: all 0.25s ease-in-out 0s, visibility 0s linear 0.25s, z-index 0s linear 0.01s;
	visibility: hidden;
	z-index: 1;
}
nav ul {
	float: right;
	list-style-type: none;
	margin: 0px;
	padding: 0px;
}
nav ul li {
	display: inline-block;
	line-height: 20px;
	margin: 0px;
	padding: 0px 10px 0px 10px;
}
nav ul li:first-child {
	padding-left: 0px;
}
nav ul li:last-child {
	padding-right: 0px;
}
nav ul li a {
	color: xxxx;
}
nav ul li a:hover {
	color: xxxx;
}
nav ul li ul li, nav ul li ul li:first-child, nav ul li ul li:last-child {
	padding: 10px;
}
@media (max-width: 1000px) {
nav {
	display: none;
}
}
ol li, ul li {
	padding: 10px 0px 0px 0px;
}
.outer {
	display: table;
	height: 100%;
	position: relative;
	width: 100%;
}
.outer .inner {
	display: table-cell;
	vertical-align: middle;
}
p {
	padding: 20px 0px 0px 0px;
}
p, blockquote cite, ol li, ul li, table {
	margin: 0px;
}
@media (min-width: 1001px) {
.side-nav {
	display: none;
}
}
.side-nav a {
	cursor: pointer;
	position: absolute;
	right: 5%;
}
.slick-next:before {
    content: "\f0da";
}
.slick-prev:before {
    content: "\f0d9";
}
.slick-next:before, .slick-prev:before {
    color: #000000;
	font-family: 'FontAwesome';
	font-size: 60px;
}
.slick-next {
    right: -30px;
	z-index: 1;
}
.slick-prev {
    left: -30px;
	z-index: 1;
}
.slick-slider {
	margin-bottom: 0px;
}
@media (max-width: 1450px) {
.slick-next:before, .slick-prev:before {
	font-size: 40px;
}
.slick-next {
    right: -20px;
}
.slick-prev {
    left: -20px;
}
}
@media (max-width: 600px) {
.slick-next:before, .slick-prev:before {
	font-size: 20px;
}
.slick-next {
    right: 0px;
}
.slick-prev {
    left: 0px;
}
}
.slide-close a {
	color: #ffffff;
	cursor: pointer;
	position: absolute;
	right: 5%;
	z-index: 5003;
}
.slide-in-menu {
	background-color: #000000;
	height: 100%;
	left: 0px;
	opacity: 0;
	overflow: scroll;
	position: absolute;
	top: -100%;
	transition: 0.5s;
	width: 100%;
	z-index: 5001;
}
.slide-in-menu.active {
	position: fixed;
	opacity: 1;
	top: 0px;
}
.slide-in-menu li.active > ul {
	display: block;
}
.slide-in-menu ul {
	list-style-type: none;
	margin: 0px;
	padding: 0px;
}
.slide-in-menu ul li {
	margin: 0px;
	padding: 0px;
	text-align: center;
}
.slide-in-menu ul li a {
	color: #ffffff;
	opacity: 0;
	position: relative;
    transform: translateY(20px);
	transition: opacity .25s linear, color .5s linear, transform .3s cubic-bezier(.25,.46,.45,.94);
}
.slide-in-menu.active ul li a {
	opacity: 1;
	transform: translateY(0);
}
.slide-in-menu.active ul li:nth-of-type(1) a {
	transition: color .5s linear, opacity .25s linear .5s, transform .3s cubic-bezier(.25,.46,.45,.94) .5s;
}
.slide-in-menu.active ul li:nth-of-type(2) a {
	transition: color .5s linear, opacity .25s linear .6s, transform .3s cubic-bezier(.25,.46,.45,.94) .6s;
}
.slide-in-menu.active ul li:nth-of-type(3) a {
	transition: color .5s linear, opacity .25s linear .7s, transform .3s cubic-bezier(.25,.46,.45,.94) .7s;
}
.slide-in-menu.active ul li:nth-of-type(4) a {
	transition: color .5s linear, opacity .25s linear .8s, transform .3s cubic-bezier(.25,.46,.45,.94) .8s;
}
.slide-in-menu.active ul li:nth-of-type(5) a {
	transition: color .5s linear, opacity .25s linear .9s, transform .3s cubic-bezier(.25,.46,.45,.94) .9s;
}
.slide-in-menu.active ul li:nth-of-type(6) a {
	transition: color .5s linear, opacity .25s linear 1s, transform .3s cubic-bezier(.25,.46,.45,.94) 1s;
}
.slide-in-menu.active ul li:nth-of-type(7) a {
	transition: color .5s linear, opacity .25s linear 1.1s, transform .3s cubic-bezier(.25,.46,.45,.94) 1.1s;
}
.slide-in-menu.active ul li:nth-of-type(8) a {
	transition: color .5s linear, opacity .25s linear 1.2s, transform .3s cubic-bezier(.25,.46,.45,.94) 1.2s;
}
.slide-in-menu.active ul li:nth-of-type(9) a {
	transition: color .5s linear, opacity .25s linear 1.3s, transform .3s cubic-bezier(.25,.46,.45,.94) 1.3s;
}
.slide-in-menu.active ul li:nth-of-type(10) a {
	transition: color .5s linear, opacity .25s linear 1.4s, transform .3s cubic-bezier(.25,.46,.45,.94) 1.4s;
}
.slide-in-menu ul ul {
	display: none;
}
strong, table thead th {
	font-weight: bold;
}
table {
	background-color: #ffffff;
	padding: 10px;
	text-align: left;
}
table th {
	padding: 10px;
}
.wp-block-table {
	margin: 0px;
}*/

/* Theme Styles */

/* ==========================================================================
   Acorn Engineering & Fabrications — shared site stylesheet
   ========================================================================== */
:root{
  --navy-900:#061642;
  --navy-800:#0B226D;
  --navy-600:#1c3f9c;
  --spark:#f0952c;
  --spark-dark:#d97a15;
  --paper:#f4f6fb;
  --paper-dark:#e8ecf5;
  --white:#ffffff;
  --ink:#0d1430;
  --steel:#5b6478;
  --steel-light:#8890a3;
  --line:#e1e5ef;
  --radius:2px;
  --shadow:0 20px 50px -20px rgba(6,22,66,.35);
  --shadow-sm:0 8px 24px -12px rgba(6,22,66,.25);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  color:var(--ink);
  background:var(--white);
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{text-decoration:none; color:inherit;}
ul{list-style:none;}
.container{max-width:1220px; margin:0 auto; padding:0 28px;}
h1,h2,h3,h4{
  font-family:'Big Shoulders Display',sans-serif;
  font-weight:800;
  line-height:1.03;
  letter-spacing:.005em;
  text-transform:uppercase;
}
.mono{font-family:'Montserrat',sans-serif;}

/* eyebrow — plain label, no dash/rule per brand spec */
.eyebrow{
  font-family:'Montserrat',sans-serif;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--spark-dark);
  margin-bottom:16px;
}
.eyebrow.on-dark{color:#ffc98a;}
.eyebrow.center{text-align:center;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Montserrat',sans-serif;
  font-weight:600; font-size:13.5px;
  letter-spacing:.06em; text-transform:uppercase;
  padding:16px 26px;
  border-radius:var(--radius);
  border:1.5px solid transparent;
  cursor:pointer;
  transition:all .2s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--spark); color:#221000;}
.btn-primary:hover{background:var(--spark-dark); transform:translateY(-2px); box-shadow:var(--shadow-sm);}
.btn-outline-dark{border-color:rgba(255,255,255,.35); color:#fff;}
.btn-outline-dark:hover{background:rgba(255,255,255,.1); border-color:#fff;}
.btn-outline-navy{border-color:var(--navy-800); color:var(--navy-800);}
.btn-outline-navy:hover{background:var(--navy-800); color:#fff;}
.btn-navy{background:var(--navy-800); color:#fff;}
.btn-navy:hover{background:var(--navy-900); transform:translateY(-2px); box-shadow:var(--shadow-sm);}
.btn svg{width:15px; height:15px;}
.btn-sm{padding:11px 18px; font-size:12px;}

/* ---------- Top bar & header ---------- */
.topbar{background:var(--navy-900); color:#c9d3ee; font-family:'Montserrat',sans-serif; font-size:12.5px;}
.topbar .container{display:flex; justify-content:space-between; align-items:center; padding-top:8px; padding-bottom:8px;}
.topbar a{color:#c9d3ee;}
.topbar .tb-left{display:flex; gap:22px;}
.topbar .tb-left span{display:inline-flex; align-items:center; gap:6px;}

header.site-header{
  position:sticky; top:0; z-index:300;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav-wrap{display:flex; align-items:center; justify-content:space-between; padding:14px 0;}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{max-height:70px; width:auto;}
nav.main-nav > ul{display:flex; gap:30px; align-items:center;}
nav.main-nav > ul > li{position:relative;}
nav.main-nav a{
  font-family:'Montserrat',sans-serif;
  font-size:12.5px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink);
  position:relative;
  padding:10px 0;
  display:inline-flex; align-items:center; gap:6px;
}
nav.main-nav > ul > li > a::after{
  content:""; position:absolute; left:0; bottom:6px;
  width:0; height:2px; background:var(--spark);
  transition:width .2s ease;
}
nav.main-nav > ul > li > a:hover::after,
nav.main-nav > ul > li.active > a::after{width:100%;}
nav.main-nav > ul > li.active > a{color:var(--navy-800);}
nav.main-nav .caret{width:9px; height:9px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-top:-3px;}

.dropdown{
  position:absolute; top:100%; left:-18px;
  background:#fff; border:1px solid var(--line); box-shadow:var(--shadow);
  min-width:240px; padding:10px; opacity:0; visibility:hidden; transform:translateY(6px);
  transition:all .18s ease; z-index:50;
}
nav.main-nav > ul > li:hover .dropdown,
nav.main-nav > ul > li.dropdown-open .dropdown{opacity:1; visibility:visible; transform:translateY(0);}
.dropdown li a{
  display:block; padding:10px 14px; font-size:12px; letter-spacing:.05em;
  color:var(--ink); border-radius:2px;
}
.dropdown li a:hover{background:var(--paper); color:var(--spark-dark);}
.dropdown li a::after{display:none;}

.nav-cta{display:flex; align-items:center; gap:20px;}
.nav-cta .phone{
  font-family:'Montserrat',sans-serif; font-weight:600; font-size:14px;
  color:var(--navy-800); display:flex; align-items:center; gap:8px;
}
.nav-cta .phone svg{width:16px; height:16px; color:var(--spark-dark);}
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:6px;}
.burger span{width:24px; height:2px; background:var(--navy-800); display:block;}

/* ---------- Page header (interior banner) ---------- */
.page-header{
  position:relative; color:#fff; padding:150px 0 70px;
  background:linear-gradient(120deg, var(--navy-900) 0%, var(--navy-800) 60%, var(--navy-600) 100%);
  overflow:hidden;
}
.page-header.with-photo{background-size:cover; background-position:center;}
.page-header .container{position:relative; z-index:2;}
.breadcrumb{
  font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.05em;
  color:#b9c3e0; margin-bottom:22px; display:flex; gap:8px; flex-wrap:wrap;
}
.breadcrumb a{color:#b9c3e0;}
.breadcrumb a:hover{color:var(--spark);}
.breadcrumb .sep{color:#5c6a9c;}
.breadcrumb .current{color:var(--spark);}
.page-header h1{font-size:clamp(38px,5.4vw,66px); color:#fff; max-width:820px;}
.page-header p.lead{color:#cfd7ee; max-width:600px; margin-top:18px; font-size:16.5px; font-weight:400;}

/* cut line signature */
.cutline{width:100%; height:34px; display:block; margin:6px 0 26px;}
.cutline path{fill:none; stroke:var(--spark); stroke-width:2; stroke-dasharray:6 7; stroke-linecap:round;}

/* ---------- Home hero ---------- */
.hero{
  position:relative;
  background-size:cover; background-position:center;
  color:#fff; overflow:hidden; padding:96px 0 0;
}
.hero-grid{position:relative; z-index:2; display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:end; padding-bottom:64px;}
.hero-copy h1{font-size:clamp(44px,6.4vw,86px); color:#fff;}
.hero-copy h1 .cut{color:var(--spark);}
.hero-copy p.lead{font-size:18px; color:#cfd7ee; max-width:520px; margin:22px 0 34px; font-weight:400;}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:48px;}
.hero-stats{position:relative; z-index:2; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.18);}
.hero-stats div{padding:22px 26px; border-right:1px solid rgba(255,255,255,.18);}
.hero-stats div:last-child{border-right:none;}
.hero-stats .num{font-family:'Big Shoulders Display',sans-serif; font-weight:800; font-size:30px; color:var(--spark); display:block;}
.hero-stats .label{font-family:'Montserrat',sans-serif; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:#b9c3e0;}
.hero-card{position:relative; z-index:2; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:var(--radius); padding:26px; backdrop-filter:blur(6px);}
.hero-card img{width:100%; height:230px; object-fit:cover; border-radius:2px; margin-bottom:18px;}
.hero-card .tag{font-family:'Montserrat',sans-serif; font-size:11.5px; color:var(--spark); letter-spacing:.08em; text-transform:uppercase; margin-bottom:8px; display:block;}
.hero-card h4{color:#fff; font-size:20px; margin-bottom:8px;}
.hero-card p{color:#c9d3ee; font-size:14.5px;}
@media (max-width:1080px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-card{max-width:420px;}
  .hero-stats{grid-template-columns:repeat(2,1fr);}
}

/* ---------- Sections generic ---------- */
section{padding:104px 0;}
.section-paper{background:var(--paper);}
.section-head{max-width:680px; margin-bottom:56px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head.wide{max-width:780px;}
h2.h-lg{font-size:clamp(32px,4vw,50px); color:var(--ink);}
h2.h-lg .accent{color:var(--spark-dark);}
.section-head p{color:var(--steel); font-size:16.5px; margin-top:16px;}
.pad-sm{padding:64px 0;}

/* ---------- About / split content ---------- */
.about-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:center;}
.about-grid.reverse{grid-template-columns:1.1fr .9fr;}
.about-grid.reverse .about-media{order:2;}
.about-media{position:relative;}
.about-media img{width:100%; height:460px; object-fit:cover; border-radius:2px;}
.about-media.short img{height:340px;}
.about-media .badge-card{
  position:absolute; left:-30px; bottom:-30px;
  background:var(--navy-800); color:#fff;
  padding:26px 28px; width:240px;
  border-radius:2px; box-shadow:var(--shadow);
}
.about-media .badge-card.right{left:auto; right:-30px;}
.about-media .badge-card .num{font-family:'Big Shoulders Display',sans-serif; font-size:44px; font-weight:800; color:var(--spark); line-height:1;}
.about-media .badge-card .num.sm{font-size:28px; line-height:1.15; white-space:nowrap;}
.about-media .badge-card .txt{font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.05em; margin-top:6px; color:#c9d3ee; text-transform:uppercase;}
.about-copy p{color:var(--steel); margin-bottom:18px; font-size:16px;}
.about-copy h4{font-size:19px; color:var(--ink); margin:22px 0 8px; letter-spacing:.01em;}

.check-list{display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; margin:28px 0 34px;}
.check-list li{display:flex; gap:10px; align-items:flex-start; font-size:14.5px; color:var(--ink); font-weight:500;}
.check-list li svg{width:18px; height:18px; flex:none; color:var(--spark-dark); margin-top:2px;}

.call-card{
  display:flex; align-items:center; gap:18px;
  border:1.5px solid var(--line); padding:20px 24px;
  border-left:4px solid var(--spark);
  background:#fff;
}
.call-card .icon-circle{
  width:48px; height:48px; border-radius:50%;
  background:var(--navy-800); display:flex; align-items:center; justify-content:center; flex:none;
}
.call-card .icon-circle svg{width:22px; height:22px; color:var(--spark);}
.call-card .phone-big{font-family:'Big Shoulders Display',sans-serif; font-size:22px; font-weight:700; color:var(--navy-800);}
.call-card .phone-sub{font-size:12.5px; color:var(--steel); font-family:'Montserrat',sans-serif; text-transform:uppercase; letter-spacing:.05em;}

/* ---------- Industry / service grid ---------- */
.ind-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line);}
.ind-card{background:#fff; padding:40px 34px; transition:background .2s ease; position:relative;}
.ind-card:hover{background:var(--navy-800);}
.ind-card:hover *{color:#fff !important;}
.ind-card:hover .ind-icon{background:var(--spark);}
.ind-card:hover .ind-icon svg{color:#221000;}
.ind-icon{width:52px; height:52px; background:var(--paper-dark); display:flex; align-items:center; justify-content:center; margin-bottom:22px; border-radius:2px; transition:.2s ease;}
.ind-icon svg{width:26px; height:26px; color:var(--navy-800); transition:.2s ease;}
.ind-card h3{font-size:22px; margin-bottom:10px; color:var(--ink); letter-spacing:.01em;}
.ind-card p{font-size:14.5px; color:var(--steel); margin-bottom:16px;}
.ind-card .more{font-family:'Montserrat',sans-serif; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--spark-dark); display:inline-flex; align-items:center; gap:6px; white-space:nowrap;}
.ind-card:hover .more{color:var(--spark);}

/* ---------- CTA dark banner ---------- */
.cta-banner{position:relative; color:#fff; padding:120px 0; text-align:center; background-size:cover; background-position:center;}
.cta-banner h2{font-size:clamp(30px,5vw,58px); max-width:900px; margin:0 auto 20px;}
.cta-banner p{color:#c9d3ee; max-width:560px; margin:0 auto 36px; font-size:16.5px;}

/* ---------- Why us cards ---------- */
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-bottom:64px;}
.why-card{background:#fff; border:1px solid var(--line); padding:36px 30px; border-top:3px solid var(--spark);}
.why-card .idx{font-family:'Montserrat',sans-serif; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--steel-light); font-size:13px; margin-bottom:18px;}
.why-card h3{font-size:24px; color:var(--ink); margin-bottom:12px;}
.why-card p{font-size:14.5px; color:var(--steel);}

.people-split{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.people-split img{width:100%; height:420px; object-fit:cover; border-radius:2px;}
.people-split h4{font-size:20px; color:var(--ink); margin:0 0 10px; letter-spacing:.01em;}
.people-split p{color:var(--steel); font-size:15px; margin-bottom:26px;}

/* ---------- Process ---------- */
.process-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
.process-step{position:relative; padding:0 30px 0 0;}
.process-step:not(:last-child)::after{content:""; position:absolute; top:34px; right:-2px; width:calc(100% - 60px); border-top:2px dashed var(--line);}
.process-step .pnum{font-family:'Big Shoulders Display',sans-serif; font-size:52px; font-weight:800; color:transparent; -webkit-text-stroke:1.5px var(--navy-800); line-height:1; margin-bottom:20px;}
.process-step h4{font-size:19px; color:var(--ink); margin-bottom:10px; letter-spacing:.01em;}
.process-step p{font-size:14px; color:var(--steel);}

/* ---------- Stats dark ---------- */
.stats-band{background:var(--navy-900); color:#fff; padding:64px 0;}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr);}
.stats-grid div{text-align:center; border-right:1px solid rgba(255,255,255,.14); padding:0 20px;}
.stats-grid div:last-child{border-right:none;}
.stats-grid .num{font-family:'Big Shoulders Display',sans-serif; font-weight:800; font-size:clamp(34px,4vw,52px); color:var(--spark); line-height:1;}
.stats-grid .label{font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:#b9c3e0; margin-top:10px;}

/* ---------- Work / gallery grid ---------- */
.work-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.work-grid.tight{gap:14px;}
.work-card{position:relative; overflow:hidden; border-radius:2px; height:320px;}
.work-card.short{height:250px;}
.work-card img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.work-card:hover img{transform:scale(1.08);}
.work-card .overlay{position:absolute; inset:0; background:linear-gradient(0deg, rgba(6,22,66,.9) 0%, rgba(6,22,66,.05) 55%); display:flex; flex-direction:column; justify-content:flex-end; padding:22px;}
.work-card .tag{font-family:'Montserrat',sans-serif; font-size:11px; color:var(--spark); letter-spacing:.08em; text-transform:uppercase; margin-bottom:6px;}
.work-card h4{color:#fff; font-size:19px; letter-spacing:.01em;}
.work-more{text-align:center; margin-top:48px;}

/* ---------- Carousel (horizontal scroll-snap slider) ---------- */
.carousel-wrap{position:relative;}
.carousel-track{
  display:flex; overflow-x:auto; scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch; scrollbar-width:none; scroll-padding-left:2px;
}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:44px; height:44px; border-radius:50%; border:1.5px solid var(--line);
  background:#fff; display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:var(--shadow-sm); color:var(--navy-800);
  transition:.2s ease; padding:0;
}
.carousel-arrow:hover{background:var(--navy-800); color:#fff; border-color:var(--navy-800);}
.carousel-arrow svg{width:18px; height:18px;}
.carousel-arrow.prev{left:-8px;}
.carousel-arrow.next{right:-8px;}
@media (max-width:680px){
  .carousel-arrow{display:none;}
}

.work-grid.carousel{display:flex; gap:22px; margin:0;}
.work-grid.carousel .work-card{flex:0 0 300px; scroll-snap-align:start;}
@media (max-width:680px){
  .work-grid.carousel .work-card{flex-basis:78vw;}
}

/* gallery filter tabs */
.filter-bar{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:48px;}
.filter-break{flex-basis:100%; width:0; height:0;}
.filter-btn{
  font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  padding:11px 20px; border:1.5px solid var(--line); background:#fff; color:var(--steel);
  cursor:pointer; border-radius:2px; transition:.2s ease;
}
.filter-btn:hover{border-color:var(--navy-800); color:var(--navy-800);}
.filter-btn.active{background:var(--navy-800); border-color:var(--navy-800); color:#fff;}
.gallery-main{
  width:100%; max-height:640px; border-radius:2px; overflow:hidden; margin-bottom:16px; cursor:pointer;
  background:var(--paper-dark); display:flex; align-items:center; justify-content:center;
}
.gallery-main img{width:100%; height:100%; max-height:640px; object-fit:contain; display:block;}
@media (max-width:680px){
  .gallery-main{max-height:400px;}
  .gallery-main img{max-height:400px;}
}
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.gallery-grid.carousel-track{display:flex; gap:12px;}
.gallery-grid.carousel-track .gallery-item{flex:0 0 130px;}
@media (max-width:680px){
  .gallery-main{height:280px;}
  .gallery-grid.carousel-track .gallery-item{flex-basis:96px;}
}
.gallery-item{position:relative; overflow:hidden; border-radius:2px; height:90px; cursor:pointer; scroll-snap-align:start; opacity:.65; transition:opacity .2s ease, outline-color .2s ease; outline:2px solid transparent; outline-offset:-2px;}
.gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.gallery-item:hover{opacity:1;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item.active{opacity:1; outline-color:var(--spark);}
.gallery-item.hide{display:none;}

/* lightbox */
.lightbox{position:fixed; inset:0; background:rgba(6,22,66,.94); z-index:1000; display:none; align-items:center; justify-content:center; padding:40px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:90vw; max-height:85vh; object-fit:contain; border-radius:2px;}
.lightbox-close{position:absolute; top:26px; right:32px; width:44px; height:44px; border-radius:50%; border:1.5px solid rgba(255,255,255,.4); background:none; color:#fff; font-size:22px; cursor:pointer;}
.lightbox-close:hover{background:rgba(255,255,255,.12);}

/* ---------- Testimonials ---------- */
.test-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.test-card{background:#fff; border:1px solid var(--line); padding:32px; position:relative;}
.test-card .quote-mark{font-family:'Big Shoulders Display',sans-serif; font-size:52px; color:var(--paper-dark); line-height:0; position:absolute; top:24px; right:26px;}
.test-card p.qt{font-size:15px; color:var(--ink); margin-bottom:26px; position:relative; z-index:1;}
.test-person{display:flex; align-items:center; gap:14px;}
.avatar{width:44px; height:44px; border-radius:50%; background:var(--navy-800); color:var(--spark); display:flex; align-items:center; justify-content:center; font-family:'Big Shoulders Display',sans-serif; font-weight:700; font-size:15px;}
.test-person .name{font-weight:700; font-size:14px;}
.test-person .role{font-size:12.5px; color:var(--steel);}
.stars{color:var(--spark-dark); font-size:13px; margin-bottom:14px; letter-spacing:2px;}

/* ---------- Accreditations ---------- */
.accred-strip{background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:44px 0;}
.accred-grid{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:30px;}
.accred-item{display:flex; align-items:center; gap:14px; flex:1; min-width:220px;}
.accred-item svg{width:34px; height:34px; color:var(--navy-800); flex:none;}
.accred-item .t1{font-weight:700; font-size:14.5px; color:var(--ink);}
.accred-item .t2{font-size:12.5px; color:var(--steel);}

/* ---------- FAQ ---------- */
.faq-wrap{max-width:820px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; text-align:left; background:none; border:none; padding:26px 0; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-family:'Inter',sans-serif; font-weight:700; font-size:16.5px; color:var(--ink);}
.faq-q .plus{width:26px; height:26px; border:1.5px solid var(--navy-800); border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; position:relative;}
.faq-q .plus::before, .faq-q .plus::after{content:""; position:absolute; background:var(--navy-800);}
.faq-q .plus::before{width:11px; height:1.6px;}
.faq-q .plus::after{width:1.6px; height:11px; transition:opacity .2s ease;}
.faq-item.open .faq-q .plus::after{opacity:0;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.faq-a p{padding-bottom:26px; color:var(--steel); font-size:15px; max-width:680px;}

/* ---------- Examples / list panel (what-we-do subpages) ---------- */
.examples-panel{background:#fff; border:1px solid var(--line); padding:44px; border-top:3px solid var(--spark);}
.examples-panel h3{font-size:22px; color:var(--ink); margin-bottom:22px;}
.examples-list li{display:flex; gap:12px; align-items:flex-start; font-size:15px; color:var(--ink); padding:12px 0; border-bottom:1px solid var(--line);}
.examples-list li:last-child{border-bottom:none;}
.examples-list li svg{width:16px; height:16px; flex:none; color:var(--spark-dark); margin-top:4px;}
.quote-block{
  background:var(--navy-800); color:#fff; padding:44px; margin-top:40px; position:relative; border-radius:2px;
}
.quote-block .qmark{font-family:'Big Shoulders Display',sans-serif; font-size:60px; color:var(--spark); line-height:0; display:block; margin-bottom:10px;}
.quote-block p{font-size:19px; font-style:italic; color:#eef1fb; max-width:640px;}

/* related industries strip */
.related-strip{background:var(--paper); border-top:1px solid var(--line);}
.related-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:2px; background:var(--line); border:1px solid var(--line); margin-top:20px;}
.related-grid a{background:#fff; padding:20px 16px; text-align:center; font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink); transition:.2s ease;}
.related-grid a:hover{background:var(--navy-800); color:#fff;}
.related-grid a.current{background:var(--navy-800); color:var(--spark);}

/* ---------- News / blog ---------- */
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:30px;}
.news-card{background:#fff; border:1px solid var(--line); overflow:hidden; transition:box-shadow .2s ease, transform .2s ease;}
.news-card:hover{box-shadow:var(--shadow-sm); transform:translateY(-4px);}
.news-card .thumb{height:200px; overflow:hidden;}
.news-card .thumb img{width:100%; height:100%; object-fit:cover;}
.news-card .body{padding:26px;}
.news-card .meta{font-family:'Montserrat',sans-serif; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--spark-dark); margin-bottom:10px;}
.news-card h3{font-size:20px; color:var(--ink); margin-bottom:12px; letter-spacing:.01em;}
.news-card p{font-size:14px; color:var(--steel); margin-bottom:16px;}
.news-card .readmore{font-family:'Montserrat',sans-serif; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--navy-800); display:inline-flex; align-items:center; gap:6px; white-space:nowrap;}
.news-card:hover .readmore{color:var(--spark-dark);}
/* ---------- Instagram feed ---------- */
.insta-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:4px;}
.insta-item{position:relative; display:block; aspect-ratio:1; overflow:hidden;}
.insta-item img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.insta-item:hover img{transform:scale(1.08);}
.insta-item .insta-icon{
  position:absolute; inset:0; background:rgba(6,22,66,.55);
  display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .2s ease;
}
.insta-item:hover .insta-icon{opacity:1;}
.insta-item .insta-icon svg{width:26px; height:26px; color:#fff;}

/* ---------- Contact page ---------- */
.contact-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:60px;}
.contact-info-card{background:var(--navy-800); color:#fff; padding:44px; border-radius:2px;}
.contact-info-card h3{font-size:22px; margin-bottom:26px; color:#fff;}
.contact-row{display:flex; gap:16px; margin-bottom:24px; align-items:flex-start;}
.contact-row .ic{width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; flex:none;}
.contact-row .ic svg{width:19px; height:19px; color:var(--spark);}
.contact-row .lbl{font-family:'Montserrat',sans-serif; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#9fb0e0; margin-bottom:4px;}
.contact-row .val{font-size:15.5px; color:#fff; font-weight:500;}
.contact-social{display:flex; gap:10px; margin-top:30px;}
.contact-social a{width:38px; height:38px; border:1px solid rgba(255,255,255,.25); border-radius:50%; display:flex; align-items:center; justify-content:center;}
.contact-social a svg{width:16px; height:16px;}
.contact-social a:hover{background:var(--spark); border-color:var(--spark);}
.contact-social a:hover svg{color:#221000;}

.contact-form{background:#fff; border:1px solid var(--line); padding:44px;}
.contact-form h3{font-size:22px; color:var(--ink); margin-bottom:8px;}
.contact-form > p{color:var(--steel); font-size:14.5px; margin-bottom:28px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px;}
.form-group{margin-bottom:20px;}
.form-group label{display:block; font-family:'Montserrat',sans-serif; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--steel); margin-bottom:8px;}
.form-group input, .form-group textarea{
  width:100%; border:1.5px solid var(--line); padding:13px 14px; font-family:'Inter',sans-serif; font-size:14.5px;
  border-radius:2px; color:var(--ink); background:var(--paper);
}
.form-group input:focus, .form-group textarea:focus{outline:none; border-color:var(--navy-800); background:#fff;}
.form-group textarea{resize:vertical; min-height:130px;}
.form-note{font-size:12px; color:var(--steel-light); margin-top:14px;}
.map-placeholder{
  height:260px; background:var(--paper) url('../img/civil-post-bridge.jpg') center/cover;
  position:relative; border:1px solid var(--line); margin-bottom:26px; border-radius:2px; overflow:hidden;
}
.map-placeholder::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(6,22,66,.85), rgba(6,22,66,.35));}
.map-placeholder .map-pin{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-60%); z-index:2; text-align:center; color:#fff;
}
.map-placeholder .map-pin svg{width:30px; height:30px; color:var(--spark);}
.map-placeholder .map-pin .addr{font-family:'Montserrat',sans-serif; font-size:12px; margin-top:8px; letter-spacing:.03em;}

/* ---------- Final CTA ---------- */
.final-cta{background:linear-gradient(120deg, var(--navy-900), var(--navy-800)); color:#fff; padding:90px 0; text-align:center;}
.final-cta h2{font-size:clamp(30px,4.5vw,52px); margin-bottom:18px;}
.final-cta p{color:#c9d3ee; margin-bottom:36px;}
.final-actions{display:flex; gap:18px; justify-content:center; flex-wrap:wrap;}

/* ---------- Footer ---------- */
footer{background:var(--navy-900); color:#c9d3ee; padding:80px 0 0;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:50px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,.12);}
.foot-logo-badge{display:inline-block; margin-bottom:20px;}
.foot-logo-badge img{height:70px;}
.foot-about p{font-size:14px; color:#a9b4d6; max-width:280px; margin-bottom:20px;}
.social-row{display:flex; gap:10px;}
.social-row a{width:36px; height:36px; border:1px solid rgba(255,255,255,.2); border-radius:50%; display:flex; align-items:center; justify-content:center;}
.social-row a svg{width:15px; height:15px;}
.social-row a:hover{background:var(--spark); border-color:var(--spark);}
.social-row a:hover svg{color:#221000;}
.foot-col h5{font-family:'Montserrat',sans-serif; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:#fff; margin-bottom:22px;}
.foot-col ul li{margin-bottom:13px;}
.foot-col ul a{font-size:14.5px; color:#a9b4d6;}
.foot-col ul a:hover{color:var(--spark);}
.foot-contact li{display:flex; gap:12px; margin-bottom:18px; font-size:14.5px; color:#a9b4d6;}
.foot-contact li svg{width:17px; height:17px; color:var(--spark); flex:none; margin-top:2px;}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; padding:26px 0; font-size:13px; color:#8894b8;}
.foot-bottom a{color:#8894b8;}
.foot-bottom a:hover{color:var(--spark);}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  nav.main-nav{display:none;}
  .burger{display:flex;}
  .about-grid, .about-grid.reverse{grid-template-columns:1fr; gap:80px 0;}
  .about-grid.reverse .about-media{order:0;}
  .about-media .badge-card{left:16px; right:auto;}
  .ind-grid{grid-template-columns:repeat(2,1fr);}
  .why-grid{grid-template-columns:1fr 1fr;}
  .process-grid{grid-template-columns:repeat(2,1fr); row-gap:50px;}
  .process-step:nth-child(2)::after{display:none;}
  .stats-grid{grid-template-columns:repeat(2,1fr); row-gap:30px;}
  .stats-grid div:nth-child(2){border-right:none;}
  .work-grid{grid-template-columns:repeat(2,1fr);}
  .test-grid{grid-template-columns:1fr 1fr;}
  .people-split{grid-template-columns:1fr; gap:40px;}
  .foot-grid{grid-template-columns:1fr 1fr; gap:40px;}
  .topbar .tb-left span:nth-child(3){display:none;}
  .contact-grid{grid-template-columns:1fr; gap:40px;}
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
  .news-grid{grid-template-columns:1fr 1fr;}
  .related-grid{grid-template-columns:repeat(3,1fr);}
  .insta-grid{grid-template-columns:repeat(4,1fr);}
}
@media (max-width:680px){
  section{padding:72px 0;}
  .container{padding:0 20px;}
  .page-header{padding:130px 0 56px;}
  .ind-grid{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
  .process-grid{grid-template-columns:1fr;}
  .process-step::after{display:none !important;}
  .stats-grid{grid-template-columns:1fr 1fr;}
  .work-grid{grid-template-columns:1fr;}
  .test-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr;}
  .check-list{grid-template-columns:1fr;}
  .accred-grid{flex-direction:column; align-items:flex-start;}
  .nav-cta .phone span{display:none;}
  .topbar{display:none;}
  .final-actions{flex-direction:column;}
  .final-actions .btn{justify-content:center;}
  .hero-actions{flex-direction:column;}
  .hero-actions .btn{width:100%; justify-content:center;}
  .hero{background-position:75% center;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .news-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .related-grid{grid-template-columns:repeat(2,1fr);}
  .insta-grid{grid-template-columns:repeat(3,1fr);}
  .examples-panel{padding:30px 24px;}
  .contact-info-card, .contact-form{padding:30px 24px;}
}

.form-row {
	margin-bottom: 0px;
}

/* ---------- Pagination ---------- */
.news-pagination{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:56px;
}
.news-pagination .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:44px;
  padding:0 14px;
  font-family:'Montserrat',sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--navy-800);
  background:#fff;
  border:1.5px solid var(--line);
  border-radius:var(--radius);
  transition:all .2s ease;
}
.news-pagination a.page-numbers:hover{
  border-color:var(--navy-800);
  background:var(--navy-800);
  color:#fff;
}
.news-pagination .page-numbers.current{
  background:var(--spark);
  border-color:var(--spark);
  color:#221000;
}
.news-pagination .page-numbers.dots{
  border:none;
  background:none;
  color:var(--steel-light);
  min-width:auto;
  padding:0 4px;
}
.news-pagination .page-numbers.prev,
.news-pagination .page-numbers.next{
  padding:0 20px;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:12px;
}
/*@media (max-width:680px){
  .news-pagination{gap:6px;}
  .news-pagination .page-numbers{min-width:38px; height:38px; padding:0 10px; font-size:12px;}
  .news-pagination .page-numbers.prev,
  .news-pagination*/

.footer-logo {
	height: 100px;
	margin-top: 20px;
	width: auto;
}

h1 .cut{color:var(--spark);}