:root{
	--jig:#EDEDE9;
	--navy:#2B3A4A;
	--lift:#C2762B;
	--pad:#6B6E4E;
	--steel:#757B82;
	--bay:#FBFBF8;
	--conc:#DDD9CC;
	--dusk:#262B31;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

html{scroll-behavior:smooth;}
body{
	font-family:"Segoe UI",Helvetica,Arial,sans-serif;
	font-size:16px;
	color:var(--navy);
	background-color:var(--jig);
	line-height:1.6;
	overflow-x:hidden;
}
a{color:var(--lift);text-decoration:none;}
a:hover{text-decoration:underline;color:var(--navy);}
img{max-width:100%;display:block;}
ul{list-style:none;}

/* ==================== REVEAL SYSTEM ==================== */
.reveal{opacity:1;}
html.no-js .reveal{opacity:1;}
.reveal-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;}
.reveal-ready .reveal.visible{opacity:1;transform:translateY(0);}

/* ==================== BAY-WHITE MASTHEAD WRAPPER ==================== */
.baywrap{overflow-x:hidden;}

/* ==================== NAV: CHALK-BAY NAV (.chalkbay) ==================== */
.chalkbay{position:sticky;top:0;z-index:50;background:var(--bay);}
.jigrail{background:var(--dusk);padding:7px 0;border-bottom:2px solid var(--steel);}
.jigrail .railbox{
	max-width:1180px;margin:0 auto;padding:0 24px;
	display:flex;align-items:center;gap:12px;overflow:hidden;position:relative;
}
.railline{flex:1;height:6px;background:var(--steel);border-radius:3px;position:relative;overflow:hidden;}
.railline::after{content:"";position:absolute;top:1px;bottom:1px;width:6px;background:var(--lift);box-shadow:24px 0 0 var(--lift),48px 0 0 var(--lift),72px 0 0 var(--lift),96px 0 0 var(--lift),120px 0 0 var(--lift),144px 0 0 var(--lift),168px 0 0 var(--lift),192px 0 0 var(--lift),216px 0 0 var(--lift),240px 0 0 var(--lift),264px 0 0 var(--lift),288px 0 0 var(--lift),312px 0 0 var(--lift);}
.baydots{display:flex;gap:8px;}
.baydots span{width:9px;height:9px;background:#fff;color:var(--dusk);font-weight:700;font-size:9px;line-height:9px;text-align:center;overflow:hidden;}

.chalkbar .barin{
	max-width:1180px;margin:0 auto;padding:12px 24px;
	display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
	border-bottom:3px solid var(--steel);
}
.brandlink{display:flex;align-items:center;gap:12px;}
.hookglyph{
	width:44px;height:44px;border-radius:8px;background:var(--navy);
	display:flex;align-items:center;justify-content:center;flex:none;
}
.hooksvg{width:30px;height:30px;}
.hoist{stroke:var(--steel);stroke-width:3;fill:none;}
.hookarm{stroke:var(--lift);stroke-width:4;fill:none;stroke-linecap:round;}
.brandname{font-weight:800;font-size:20px;letter-spacing:.08em;color:var(--navy);line-height:1.1;}
.brandsub{font-size:11px;letter-spacing:.3em;color:var(--pad);text-transform:uppercase;}

.navtabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.navtab{
	display:block;padding:9px 16px 8px;
	background:var(--bay);color:var(--navy);
	font-weight:700;font-size:14px;letter-spacing:.05em;position:relative;
	border:1px solid var(--conc);border-bottom:3px solid var(--steel);
}
.navtab:hover{text-decoration:none;background:var(--conc);}
.navtab .chalk{display:block;height:4px;background:var(--pad);margin-top:6px;}
.haulchip{
	display:block;padding:8px 14px 7px;border:0;
	background:var(--pad);color:var(--bay);
	font-weight:800;font-size:13px;letter-spacing:.1em;position:relative;
}
.haulchip .chalk{display:block;height:4px;background:var(--lift);margin-top:6px;}
.haulflag{color:var(--bay);}

.navtoggle{
	display:none;margin-left:auto;
	background:var(--navy);color:var(--bay);border:0;
	font-size:13px;font-weight:700;letter-spacing:.08em;padding:10px 14px;cursor:pointer;
}
@media(max-width:820px){
	.baydots{display:none;}
	.navtoggle{display:block;}
	.navtabs{
		display:none;width:100%;flex-direction:column;align-items:stretch;
		border-top:2px solid var(--steel);padding-top:8px;margin-top:4px;
	}
	.navtabs.open{display:flex;}
	.navtab,.haulchip{text-align:left;}
}

/* ==================== HERO: BAY-LIFT HERO (.baylift) ==================== */
.baylift{background:var(--jig);}
.stage{
	max-width:1180px;margin:0 auto;padding:72px 24px 0;text-align:center;
}
.eyebrow{
	display:inline-block;font-size:13px;letter-spacing:.4em;text-transform:uppercase;
	color:var(--pad);font-weight:700;border-top:2px solid var(--pad);border-bottom:2px solid var(--pad);
	padding:6px 10px;margin-bottom:22px;
}
.baylift h1{font-size:56px;line-height:1.06;font-weight:800;color:var(--navy);letter-spacing:-.01em;margin-bottom:18px;}
.lead{max-width:820px;margin:0 auto;font-size:18px;color:var(--navy);}
.lead strong{color:var(--lift);}

.workline{color:var(--steel);font-size:15px;padding:18px 0 4px;}

/* yard band drawn in CSS */
.yardband{
	max-width:1180px;margin:0 auto;padding:40px 24px 0;
	display:flex;align-items:flex-end;gap:18px;justify-content:space-between;
}
.yardfig{flex:1;min-width:0;border-radius:10px;overflow:hidden;}
.yardfig .cap{background:var(--dusk);color:var(--bay);font-size:12px;letter-spacing:.12em;padding:8px 12px;text-align:center;}
.ybplate{
	background:var(--conc);border:2px solid var(--steel);border-bottom:6px solid var(--steel);
	height:150px;position:relative;border-radius:6px 6px 0 0;overflow:hidden;
}
/* hall with module on steel jig */
.hall .ybbase{position:absolute;inset:0;background:var(--jig);}
.hallfig{position:absolute;left:10%;bottom:16px;width:42%;}
.hjig{height:6px;background:var(--steel);border-radius:3px;box-shadow:8px -12px 0 0 var(--steel),76px -12px 0 0 var(--steel);}
.hmod{height:70px;background:var(--bay);border:3px solid var(--steel);border-bottom:8px solid var(--steel);margin:0 auto;position:relative;top:-2px;}
.window{position:absolute;width:16px;height:18px;background:var(--conc);top:8px;border:2px solid var(--steel);}
.hmod .w1{left:8px;}
.hmod .w2{left:auto;right:34px;}
.doorout{position:absolute;right:6px;bottom:0;width:20px;height:34px;background:var(--pad);}
/* crane + hook lowering onto pad in center */
.craneyard .ybplate{background:var(--skygrad,#DFE6EC);}
.hoistline{position:absolute;left:50%;top:-18px;width:2px;height:44px;background:var(--steel);transform:translateX(-50%);}
.thehook{position:absolute;left:50%;top:0;transform:translateX(-50%);width:34px;height:34px;margin-top:22px;}
.padslab{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);width:64%;height:26px;background:var(--conc);border:2px solid var(--steel);}
.stub{position:absolute;bottom:-2px;width:5px;height:46px;background:var(--steel);}
.craneyard .s1{left:22%;}
.craneyard .s2{left:36%;}
.craneyard .s3{right:36%;}
.craneyard .s4{right:22%;}
.readybay{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);width:52%;height:52px;background:var(--bay);border:3px solid var(--steel);border-bottom:8px solid var(--steel);}
.readybay .window{left:8px;top:6px;}
.readybay .w2{left:auto;right:8px;}
/* escort post with permit flags on right */
.escort .ybplate{background:var(--conc);}
.finmod{position:absolute;right:8%;bottom:8px;width:40%;height:64px;background:var(--bay);border:3px solid var(--steel);border-bottom:8px solid var(--steel);}
.finmod .doorout{top:auto;}
.post{position:absolute;left:14%;bottom:8px;width:6px;height:92px;background:var(--steel);border-radius:3px;}
.flagwrap{position:absolute;left:10%;bottom:86px;width:44px;display:flex;flex-direction:column;gap:3px;}
.pflag{width:44px;height:12px;background:var(--lift);border-radius:2px;}
.pflag.olive{background:var(--pad);}
.flagpole{position:absolute;left:calc(10% + 44px);bottom:14px;width:3px;height:100px;background:var(--steel);}
.chalknum{
	position:absolute;right:10px;bottom:8px;
	font-family:Consolas,"Courier New",monospace;font-size:30px;font-weight:700;
	color:var(--jig);letter-spacing:.05em;transform:rotate(-4deg);
}
.escort .chalknum{color:var(--navy) !important;}

/* kick strip with stats */
.kickstrip{
	background:var(--dusk);margin-top:44px;
	border-top:4px solid var(--lift);
}
.kickin{max-width:1180px;margin:0 auto;padding:20px 24px;display:flex;gap:0;align-items:stretch;flex-wrap:wrap;}
.statcard{flex:1;min-width:190px;padding:6px 22px;border-left:2px solid var(--lift);}
.statcard:first-child{border-left:0;padding-left:0;}
.statnum{font-size:30px;font-weight:800;color:var(--bay);}
.statlab{color:var(--conc);font-size:12px;letter-spacing:.2em;text-transform:uppercase;}

/* ==================== SECTIONS (.moduletag) ==================== */
.bands{padding:64px 0 20px;}
.wrapcol{max-width:1100px;margin:0 auto;padding:0 24px;}

.secttag{margin-bottom:10px;display:flex;align-items:center;gap:10px;}
.secttag .tlab{background:var(--navy);color:var(--bay);font-size:11px;letter-spacing:.28em;padding:5px 10px;font-weight:700;}
.secttag .ttrail{flex:1;height:3px;background:var(--steel);}
.eyeline{font-size:13px;letter-spacing:.3em;color:var(--pad);text-transform:uppercase;font-weight:700;margin-bottom:6px;}
.pagetitle{font-size:34px;color:var(--navy);font-weight:800;line-height:1.15;}
.sectlead{color:var(--navy);font-size:17px;margin-top:10px;max-width:820px;}

/* bay ledger rows */
.ledger{margin-top:44px;display:flex;flex-direction:column;gap:22px;}
.brrow{width:100%;}
.brrow.nudged{margin-left:44px;width:calc(100% - 44px);}
.brrow.inner{margin-right:44px;width:calc(100% - 44px);}
.brplate{
	display:flex;background:var(--bay);border:1px solid var(--steel);
	border-left:0;position:relative;box-shadow:0 2px 0 var(--conc);
}
.brrow.nudged .brplate{border-left:6px solid var(--lift);}
.tagcol{
	flex:none;width:150px;background:var(--navy);color:var(--bay);
	display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;
	padding:22px 18px;border-right:3px solid var(--lift);
}
.tagmono{font-family:Consolas,"Courier New",monospace;font-size:22px;font-weight:700;letter-spacing:.06em;color:var(--bay);}
.phasechip{display:inline-block;margin-top:10px;background:var(--lift);color:#FFFFFF;font-size:11px;letter-spacing:.18em;padding:3px 8px;font-weight:800;}
.tagmeta{margin-top:auto;padding-top:14px;font-family:Consolas,monospace;font-size:11px;color:var(--conc);letter-spacing:.1em;text-transform:uppercase;}
.brbody{flex:1;padding:22px 26px;border-bottom:4px solid var(--conc);}
.brrow .brbody,.brrow .tagcol{background:var(--bay);}
.brbody h3{font-size:18px;color:var(--navy);margin-bottom:8px;letter-spacing:.02em;}
.brbody p{color:var(--navy);font-size:15px;}
.brlink{display:inline-block;margin-top:12px;color:var(--lift);font-weight:700;font-size:14px;}
.brunderline{height:4px;background:var(--pad);margin-top:8px;width:100%;}
.corner{position:absolute;top:-3px;right:0;width:22px;height:22px;background:var(--lift);}
.corner::before{content:"";position:absolute;left:0;bottom:0;border-bottom:22px solid var(--bay);border-left:22px solid transparent;}
@media(max-width:760px){
	.brrow.nudged,.brrow.inner{margin-left:0;margin-right:0;width:100%;}
	.brplate{flex-direction:column;border-left:6px solid var(--lift);}
	.tagcol{width:100%;border-right:0;border-bottom:3px solid var(--lift);}
}

/* statement row on pad-olive */
.statement{background:var(--pad);margin:40px 0;box-shadow:8px 8px 0 var(--conc);}
.statbox{max-width:1100px;margin:0 auto;padding:52px 24px;display:flex;align-items:center;gap:36px;flex-wrap:wrap;}
.bigfig{font-size:64px;font-weight:800;color:var(--bay);line-height:1;flex:none;}
.bigfig small{display:block;font-size:15px;letter-spacing:.2em;font-weight:600;color:var(--conc);margin-top:8px;text-align:left;}
.pledge{flex:1;min-width:260px;color:var(--bay);font-size:19px;font-weight:600;line-height:1.5;}
.pledge .pledgeband{display:block;width:70px;height:4px;background:var(--lift);margin-bottom:14px;}

/* pad-day flow rail */
.padflow{margin-top:46px;}
.flowbox{max-width:1180px;margin:0 auto;padding:40px 24px;background:var(--bay);border:1px solid var(--steel);position:relative;}
.flowhead{text-align:center;margin-bottom:14px;}
.flowhead span{background:var(--dusk);color:var(--bay);padding:4px 12px;font-size:11px;letter-spacing:.3em;font-weight:700;}
.rail{position:relative;height:84px;border-bottom:4px solid var(--steel);margin:30px 6px 0;}
.railbase{position:absolute;left:0;right:0;top:44px;height:6px;background:var(--conc);border-radius:3px;}
.dashlane{position:absolute;left:4%;right:4%;top:22px;border-top:2px dashed var(--steel);}
.statmark{position:absolute;left:50%;top:14px;transform:translateX(-50%);width:26px;height:34px;background:var(--steel);border-radius:3px;}
.statmark::after{content:"";position:absolute;left:2px;right:2px;bottom:10px;height:8px;background:var(--lift);border-radius:2px;}
.statmark::before{content:"";position:absolute;top:-12px;left:50%;margin-left:-1px;width:2px;height:14px;background:var(--steel);}
.statdays span{display:inline-block;padding:4px 8px;font-family:Consolas,monospace;font-size:15px;color:var(--bay);}
.padstops{display:flex;margin-top:0;position:relative;}
.padstop{
	flex:1;text-align:center;position:relative;padding:34px 10px 12px;
}
.padstop::before{
	content:"";
	position:absolute;top:2px;left:50%;transform:translateX(-50%);
	width:26px;height:26px;background:var(--bay);border:3px solid var(--steel);border-radius:50%;
	z-index:2;
}
.padstop:nth-child(odd)::before{background:var(--lift);border-color:var(--dusk);}
.stopnum{font-weight:800;color:var(--navy);letter-spacing:.1em;}
.stopname{font-weight:700;color:var(--navy);}
.stopphase{display:block;font-size:11px;letter-spacing:.18em;color:var(--pad);text-transform:uppercase;margin-top:4px;}
.stopcap{margin-top:8px;font-size:14px;color:var(--navy);}
.announce{text-align:center;color:var(--steel);font-size:13px;letter-spacing:.2em;text-transform:uppercase;margin-top:8px;}

/* ==================== ACCENT STRIP (.yardnote) ==================== */
.yardnote{background:var(--lift);margin-top:56px;}
.ynbox{max-width:1180px;margin:0 auto;padding:34px 24px;display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.stampmark{
	flex:none;transform:rotate(-2deg);border:3px double var(--dusk);color:var(--dusk);
	font-weight:800;font-size:14px;letter-spacing:.12em;padding:10px 14px;text-align:center;line-height:1.4;
}
.yncopy{flex:1;min-width:250px;}
.yncopy h3{color:var(--dusk);font-size:20px;font-weight:800;}
.yncopy p{color:var(--dusk);margin-top:6px;font-size:15px;font-weight:500;}
.yncopy a{color:var(--dusk);font-weight:800;text-decoration:underline;}

/* ==================== FOOTER: STUB-LINE FOOTER (.stubline) ==================== */
.stubline{background:var(--dusk);position:relative;z-index:1;margin-top:0;}
.stubrail{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:0 24px;top:-8px;}
.stubtrack{display:flex;align-items:flex-end;justify-content:space-between;}
.stub{width:70px;height:12px;background:var(--conc);border-radius:2px 2px 0 0;position:relative;}
.stubcap{position:absolute;top:-5px;left:50%;transform:translateX(-50%);width:16px;height:8px;background:var(--lift);border-radius:2px;}
.stubsock{width:34px;height:8px;background:var(--steel);border-radius:2px;}
.footcols{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:28px 24px 34px;display:flex;gap:34px;flex-wrap:wrap;border-bottom:2px solid var(--dusk);}
.footcol{flex:1;min-width:180px;}
.footcol .colname{color:var(--lift);font-size:12px;letter-spacing:.26em;text-transform:uppercase;font-weight:800;margin-bottom:14px;display:block;}
.footcol a{display:block;color:var(--bay);padding:5px 0;font-size:15px;}
.footcol a:hover{color:var(--lift);text-decoration:none;}
.brandfoot{flex:1.5;min-width:240px;}
.brandfoot .fname{font-size:20px;font-weight:800;color:var(--bay);letter-spacing:.06em;}
.brandfoot .fsub{color:var(--pad);font-size:12px;letter-spacing:.25em;text-transform:uppercase;margin-top:4px;}
.brandfoot p{color:var(--conc);font-size:14px;margin-top:10px;}
.baseplate{position:relative;z-index:1;background:var(--pad);}
.basewalk{max-width:1120px;margin:0 auto;padding:16px 24px;display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;}
.plateid{color:#FFFFFF;font-size:13px;font-weight:600;letter-spacing:.03em;}
.plateid em{font-style:normal;font-weight:800;}
.copystrip{background:var(--dusk);}
.copywalk{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:16px 24px 20px;display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;font-size:13px;color:var(--conc);}
.copywalk a{color:var(--conc);text-decoration:underline;}

/* ==================== SUBPAGE SHARED (.pagekicker area) ==================== */
.pagelead{background:var(--bay);border-bottom:4px solid var(--steel);}
.pageleadwrap{max-width:1100px;margin:0 auto;padding:52px 24px 44px;text-align:center;}
.pageleadwrap .eyebrow{color:var(--pad);}
.pageleadwrap h1{font-size:44px;font-weight:800;color:var(--navy);line-height:1.08;margin-bottom:16px;}
.pageleadwrap .sublead{max-width:820px;margin:0 auto;color:var(--navy);font-size:18px;}

.brickrule{height:6px;background:repeating-linear-gradient(90deg,var(--lift) 0 40px,var(--steel) 40px 48px);}
.crumb{max-width:1100px;margin:18px auto 0;padding:0 24px;font-size:13px;color:var(--steel);text-transform:uppercase;letter-spacing:.14em;}
.crumb a{color:var(--lift);font-weight:700;}

/* service pages: numbered full rows */
.svchunk{max-width:1100px;margin:40px auto 0;padding:0;}
.svplate{background:var(--bay);border:1px solid var(--steel);border-left:6px solid var(--lift);display:flex;gap:18px;padding:26px 26px;position:relative;margin:18px 8px;box-shadow:0 2px 0 var(--conc);}
.svplate:nth-child(even){margin-left:44px;}
.svplate:nth-child(odd){margin-right:44px;flex-direction:row-reverse;}
.svnum{
	flex:none;width:120px;background:var(--navy);color:var(--bay);padding:14px;display:flex;flex-direction:column;gap:8px;align-self:stretch;
}
.svplate:nth-child(odd) .svnum{order:2;}
.svcode{font-family:Consolas,monospace;font-size:20px;font-weight:700;}
.svchip{background:var(--lift);color:#fff;font-size:10px;letter-spacing:.16em;padding:3px 6px;font-weight:800;align-self:flex-start;}
.svbody{flex:1;}
.svbody h2{font-size:22px;color:var(--navy);margin-bottom:8px;border-bottom:2px solid var(--conc);padding-bottom:6px;}
.svbody p{color:var(--navy);margin-top:8px;}
@media(max-width:760px){
	.svplate,.svplate:nth-child(even),.svplate:nth-child(odd){margin-left:0;margin-right:0;flex-direction:column;}
	.svplate:nth-child(odd) .svnum{order:0;}
	.svplate .svnum{width:auto;align-self:stretch;}
}

/* contact columns */
.contactgrid{max-width:1100px;margin:40px auto 0;padding:0 24px 10px;display:grid;grid-template-columns:1.2fr 1fr;gap:26px;}
@media(max-width:820px){.contactgrid{grid-template-columns:1fr;}}
.formpanel{background:var(--bay);border:1px solid var(--steel);border-top:6px solid var(--lift);padding:26px;box-shadow:6px 6px 0 var(--conc);}
.formpanel h2{font-size:24px;color:var(--navy);margin-bottom:16px;}
.frow{margin-bottom:16px;}
.frow label{display:block;font-size:13px;letter-spacing:.08em;font-weight:700;color:var(--navy);margin-bottom:6px;}
.frow input,.frow textarea,.frow select{
	width:100%;padding:12px;border:2px solid var(--steel);background:var(--bay);
	font-size:15px;color:var(--navy);font-family:inherit;
}
.frow input:focus,.frow textarea:focus,.frow select:focus{outline:none;border-color:var(--lift);}
.frow textarea{min-height:140px;resize:vertical;}
.btnpil{
	display:inline-block;background:var(--navy);color:var(--bay);border:0;
	padding:13px 22px;font-size:14px;font-weight:800;letter-spacing:.1em;cursor:pointer;text-transform:uppercase;
}
.btnpil:hover{background:var(--lift);color:#fff;text-decoration:none;}
.mailfail{display:none;background:var(--lift);color:#fff;font-size:13px;padding:10px;margin-top:14px;}
.sidepanel{display:flex;flex-direction:column;gap:16px;}
.infocard{background:var(--conc);border:1px solid var(--steel);padding:18px 20px;}
.infocard h3{font-size:15px;color:var(--navy);letter-spacing:.14em;text-transform:uppercase;border-bottom:2px solid var(--steel);padding-bottom:8px;margin-bottom:10px;}
.infocard p{color:var(--navy);margin:6px 0;}
.infocard a{color:var(--navy);font-weight:700;}
.faqbox{background:var(--conc);border:1px solid var(--steel);padding:18px 20px;}
.faqbox h3{font-size:15px;color:var(--navy);letter-spacing:.14em;text-transform:uppercase;border-bottom:2px solid var(--steel);padding-bottom:8px;margin-bottom:10px;}
.qq{margin-top:14px;}
.qq strong{display:block;color:var(--navy);}
.qq p{color:var(--navy);font-size:14px;margin-top:4px;}
.mapnote{background:var(--dusk);color:var(--bay);padding:16px 18px;font-size:14px;}
.mapnote strong{color:var(--lift);}
