/* =========================================================================
   STEPHENSON BRIAN HEAD LLC — TELEGRAPH OFFICE THEME
   Palette: body parchment #F5EDDD | ink-navy text #2E2A24
   Accent DISPATCH-RUST #B05C34 | LEDGER-PANEL #FBF6EA | NIGHT-DEEP #241F19
   WIRE-NAVY #2C3A50 | HAIRLINE #E6DBC4
   All colors are solid hex, pre-blended. No rgba, no opacity decimals,
   no text gradients, no translucent text, no fixed bottom bars.
   ========================================================================= */

body { font-size:16px; margin:0; padding:0; background:#F5EDDD; color:#2E2A24; font-family:Georgia,"Times New Roman",serif; line-height:1.7; overflow-x:hidden; }

* { box-sizing:border-box; }
p { color:#3B362E; }
a { color:#B05C34; text-decoration:none; }
a:hover { color:#2C3A50; text-decoration:underline; }
h1,h2,h3,h4 { color:#2E2A24; font-weight:800; line-height:1.2; }
ul,ol { padding-left:22px; }
img { max-width:100%; }

/* noscript-safe reveal handling (reveal stays visible without JS) */
noscript .reveal-item, noscript .fade-up { opacity:1; transform:none; }
.reveal-item { opacity:0; transform:translateY(20px); transition:opacity .7s ease,transform .7s ease; }
.reveal-item.visible { opacity:1; transform:none; }
/* hidden-by-default things only through classes, never inline styles */

/* ============================= WIRE NAV ============================= */
.wireinsnav { width:100%; background:#FBF6EA; border-bottom:1px solid #E6DBC4; position:relative; z-index:20; }
.wireframebox { max-width:1240px; margin:0 auto; padding:26px 24px 14px 24px; }
.brandrail { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.brandpatch { display:inline-flex; align-items:center; gap:10px; font-weight:800; letter-spacing:2px; font-size:15px; color:#FBF6EA; background:#2C3A50; border:1px solid #241F19; padding:9px 15px; text-transform:uppercase; border-radius:3px; box-shadow:0 0 0 3px #F5EDDD inset,0 0 0 4px #B05C34; }
.brandpatch .bpstar { color:#D98E63; font-size:18px; line-height:1; }
.navwireband { position:relative; margin-top:6px; }
/* sagging mainline: two iron posts at the ends of the header run, with a
   copper run that dips gently toward the center; glass bells mark the sag. */
.sagrun { position:relative; overflow:visible; height:52px; }
.sagpole { position:absolute; top:0; width:12px; height:84px; background:#2C3A50; border:1px solid #241F19; border-radius:4px; }
.sagpole.pl { left:0; } .sagpole.pr { right:0; }
.sagwire { position:absolute; top:0; height:40px; }
.sagwire .spill { position:absolute; top:0; height:5px; width:0; }
.swleft { left:12px; width:calc(50% - 12px); }
.swright { left:50%; width:calc(50% - 12px); }
.swleft .spill { right:0; left:auto; width:100%; height:6px; border-radius:0 0 12px 8px / 0 0 20px 12px; }
.swright .spill { left:0; width:100%; height:6px; border-radius:0 0 8px 12px / 0 0 12px 20px; }
.swleft .spill, .swright .spill { background:#B05C34; }
.glassknob { position:absolute; top:-2px; width:14px; height:16px; background:#B05C34; border:1px solid #8a4526; border-radius:6px 6px 8px 8px; }
.sagknot { position:absolute; top:9px; left:calc(50% - 7px); width:14px; height:14px; background:#B05C34; border:1px solid #8a4526; border-radius:7px 7px 4px 4px; }
.glassknob.gkL { left:calc(50% - 5px); }
.glassknob.gkR { left:calc(50% + 5px); }
.bellhanger { position:absolute; top:14px; }
.wiretogrow { list-style:none; margin:8px 0 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px 18px; justify-content:center; }
.manutoggle { display:none; font-family:Georgia,serif; font-weight:800; font-size:15px; background:#2C3A50; color:#FBF6EA; border:1px solid #241F19; padding:9px 16px; cursor:pointer; border-radius:3px; }
.manutoggle span { margin-left:6px; }
.wiretogrow li { }
.wiretogrow li a { position:relative; display:inline-block; background:#F5EDDD; border:1px solid #B05C34; color:#2E2A24; padding:8px 16px 9px 16px; font-weight:700; letter-spacing:1px; font-size:14px; text-transform:uppercase; }
.wiretogrow li a::before { content:""; position:absolute; left:0; top:0; width:18px; height:18px; background:#8a4526; clip-path:polygon(0 0,100% 0,0 100%); }
.wiretogrow li a:hover { background:#2C3A50; color:#FBF6EA; border-color:#241F19; text-decoration:none; }
.wiretogrow li a.ishere { background:#B05C34; color:#FBF6EA; }
/* navigation styling uses classes only */

/* ============================= shared shells ============================= */
.shelfwidth { max-width:1240px; margin:0 auto; padding:0 24px; }
.posthead { padding:76px 0 52px 0; text-align:center; }
.posthead .dated { font-size:14px; letter-spacing:3px; color:#B05C34; text-transform:uppercase; }
h1.pagebig { font-size:50px; margin:14px 0 8px 0; }
.posthead p.intro { max-width:50em; margin:16px auto 0 auto; font-size:18px; color:#4A4338; }
.hairrule { width:120px; height:3px; background:#B05C34; margin:20px auto 6px auto; }

.wireoffice { background:#B05C34; color:#FBF6EA; }
.wireofficebox { max-width:1240px; margin:0 auto; padding:46px 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; }
.wireoffice .wobtn { background:#241F19; color:#FBF6EA; padding:12px 22px; font-weight:800; letter-spacing:1px; text-transform:uppercase; border-radius:2px; }
.wireoffice .wobtn:hover { background:#2E2A24; text-decoration:none; }
.wireoffice h2 { font-size:30px; margin:0 0 8px 0; color:#FBF6EA; }
.wireoffice p { margin:0; color:#F6D7C2; max-width:44em; }
.wireoffice .wostar { color:#241F19; letter-spacing:2px; }

/* ============================= DEPOT SIGNBOARD FOOTER ============================= */
.depotsign { width:100%; margin-top:0; background:#241F19; }
.depshell { max-width:1240px; margin:0 auto; padding:60px 24px 40px 24px; position:relative; }
.signrail { text-align:center; font-size:13px; letter-spacing:4px; color:#B05C34; text-transform:uppercase; }
.deptitle { text-align:center; font-size:42px; color:#FBF6EA; letter-spacing:3px; font-weight:800; margin:8px 0 30px 0; }
.deprow { display:flex; flex-wrap:wrap; gap:30px; justify-content:space-between; }
.signpanel { flex:1 1 220px; border-top:1px solid #B05C34; padding-top:18px; }
.signpanel .sphead { color:#B05C34; font-weight:800; text-transform:uppercase; letter-spacing:2px; font-size:14px; margin-bottom:12px; }
.signpanel ul { list-style:none; margin:0; padding:0; }
.signpanel li { margin:7px 0; }
.signpanel a { color:#E8DFC8; }
.signpanel a:hover { color:#D98E63; text-decoration:none; }
.depbot { margin-top:40px; border-top:1px solid #4a3f30; padding-top:20px; color:#B7A88C; display:flex; flex-wrap:wrap; gap:10px 26px; align-items:center; justify-content:space-between; }
.depbot .phonebig { color:#D98E63; letter-spacing:1px; font-weight:700; }
.cornerbracket { position:absolute; width:90px; height:90px; }
.cornerbracket.tl { top:0; left:8px; border-top:3px solid #B05C34; border-left:3px solid #B05C34; }
.cornerbracket.tr { top:0; right:8px; border-top:3px solid #B05C34; border-right:3px solid #B05C34; }
.cornerbracket.bl { bottom:0; left:8px; border-bottom:3px solid #B05C34; border-left:3px solid #B05C34; }
.cornerbracket.br { bottom:0; right:8px; border-bottom:3px solid #B05C34; border-right:3px solid #B05C34; }

/* ============================= hero telegraph desk ============================= */
.telegraphdesk { background:#FBF6EA; border-bottom:1px solid #E6DBC4; position:relative; }
.deskgrid { display:flex; flex-wrap:wrap; align-items:center; gap:44px; }
.deskcopy { flex:1 1 54%; padding:84px 0 74px 0; }
.deskcopy h1 { font-size:54px; line-height:1.1; margin:14px 0 18px 0; }
.xrust { color:#B05C34; }
.deskcopy .lede { font-size:20px; color:#4A4338; max-width:30em; margin:0 0 8px 0; }
.deskcopy .orgline { font-size:15px; letter-spacing:1px; color:#6B6150; text-transform:uppercase; margin:0 0 26px 0; }
.deskctas { margin:10px 0 0 0; }
.inkcta { display:inline-block; margin:4px 12px 4px 0; font-weight:800; letter-spacing:1px; text-transform:uppercase; padding:12px 24px; cursor:pointer; }
.ctaflash { background:#B05C34; color:#FBF6EA; border:1px solid #8a4526; box-shadow:0 4px 0 #241F19; }
.ctaflash:hover { background:#8a4526; color:#FBF6EA; box-shadow:0 4px 0 #241F19; text-decoration:none; }
.ctaplain { background:#F5EDDD; color:#2C3A50; border:1px solid #2C3A50; box-shadow:0 4px 0 #C9BB9E; }
.ctaplain:hover { background:#2C3A50; color:#FBF6EA; box-shadow:0 4px 0 #241F19; text-decoration:none; }
.deskappl { flex:1 1 40%; min-width:300px; background:#F5EDDD; border:1px solid #E6DBC4; padding:34px 24px 30px 24px; position:relative; }
.deskappl::before { content:""; position:absolute; left:0; top:0; width:26px; height:30px; background:#C9BB9E; border-bottom-right-radius:6px; }
.deskappl .mixer { display:flex; justify-content:center; gap:6px; align-items:flex-end; height:46px; margin-bottom:2px; }
.keycol { margin-top:16px; display:flex; justify-content:center; }
.telegraphkey { width:210px; background:#2C3A50; border:1px solid #241F19; border-radius:6px; padding:10px 12px 8px 12px; box-shadow:0 6px 0 #241F19; }
.keyid { color:#B7A88C; font-size:11px; letter-spacing:2px; text-transform:uppercase; text-align:left; margin-bottom:2px; }
.keybar { position:relative; height:26px; margin:6px 0; }
.keylever { position:absolute; left:8px; right:14px; top:50%; height:5px; background:#F5EDDD; border-radius:3px; box-shadow:0 2px 0 #FBF6EA inset; transform-origin:left center; }
.keylever::after { content:""; position:absolute; right:-6px; top:-5px; width:15px; height:15px; background:#B05C34; border-radius:50%; box-shadow:2px 2px 0 #8a4526 inset; }
.keycontacts { display:flex; justify-content:space-between; }
.keypost { width:6px; height:20px; background:#B05C34; }
.tapefan { margin-top:22px; text-align:center; }
.diagramstrip { background:#FBF6EA; border:1px solid #2C3A50; display:inline-block; font-family:monospace; font-size:18px; color:#2C3A50; padding:6px 16px; }
.diagramstrip .on { color:#B05C34; }
.stripcap { font-family:Georgia,serif; font-size:12px; letter-spacing:2px; color:#6B6150; text-transform:uppercase; margin-top:8px; }
.oillamp { display:none; }

/* ============================= DISPATCH CARDS ON THE WIRE ============================= */
.dispatchoffis { background:#F5EDDD; padding:0; }
.dispatchtrunk { max-width:1360px; margin:0 auto; padding:72px 24px 90px 24px; position:relative; }
.dispatchtruffle { position:absolute; top:60px; left:0; right:0; height:8px; background:transparent; border-top:6px solid #2C3A50; }
.dispatchwash { display:flex; flex-wrap:wrap; justify-content:center; gap:40px; position:relative; }
.clipnest { position:relative; flex:1 1 360px; max-width:430px; }
.cliphanger { position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:8px; height:44px; background:#2C3A50; }
.dispatchpad { position:relative; background:#FBF6EA; border:1px solid #E6DBC4; box-shadow:6px 6px 0 #E4D7BE; padding:22px 20px 20px 20px; margin-top:18px; }
.dispatchpad .foldcorner { position:absolute; right:0; top:0; width:0; height:0; border-left:22px solid transparent; border-bottom:22px solid #C9BB9E; }
.dispatchpad .stampdate { font-size:12px; letter-spacing:2px; text-transform:uppercase; color:#B05C34; display:inline-block; border:1px dashed #B05C34; padding:2px 8px; margin-bottom:8px; }
.dispatchpad h3 { font-size:23px; margin:4px 0 8px 0; }
.dispatchpad p { color:#3B362E; margin:0; }
.dispatchpad .servlink { display:inline-block; margin-top:10px; font-weight:800; font-size:13px; letter-spacing:1px; text-transform:uppercase; color:#B05C34; }
.dispatchpad.qleft { transform:rotate(-0.6deg); }
.dispatchpad.qright { transform:rotate(0.6deg); }
.tapeedge { display:block; height:6px; background:#B05C34; margin:14px 0 0 0; }

/* dot-dash leader on card */
.dotdash { font-family:monospace; color:#B05C34; letter-spacing:-1px; margin-top:10px; font-size:15px; }

/* ============================= sitewide extras ============================= */
.twocols { display:flex; flex-wrap:wrap; gap:30px; }
.twocols > .coltext { flex:1 1 55%; }
.twocols > .colside { flex:1 1 34%; }
.sidecard { background:#FBF6EA; border:1px solid #E6DBC4; border-top:4px solid #B05C34; padding:20px; margin-bottom:18px; }
.sidecard h3 { margin-top:0; font-size:18px; }
.checked { list-style:none; padding:0; margin:0; }
.checked li { position:relative; padding-left:26px; margin:9px 0; color:#3B362E; }
.checked li::before { content:""; position:absolute; left:2px; top:8px; width:12px; height:6px; border-left:2px solid #B05C34; border-bottom:2px solid #B05C34; transform:rotate(-45deg); }

.servicesband { max-width:860px; margin:0 auto; }

/* broad copy pages */
.prosepage { background:#FBF6EA; border-top:6px solid #B05C34; border-bottom:1px solid #E6DBC4; padding:60px 0; }
.prosecols { display:flex; flex-wrap:wrap; gap:46px; }
.prosecols .maincol { flex:1 1 60%; }
.prosecols .asidecol { flex:1 1 30%; }

/* contact form */
.dispatchform { background:#FBF6EA; border:1px solid #E6DBC4; box-shadow:6px 6px 0 #E4D7BE; padding:30px; }
.dispatchform .formgrid { display:flex; flex-wrap:wrap; gap:18px; }
.dispatchform .fgrow { flex:1 1 42%; }
.dispatchform .fgrow.btnrow { flex:1 1 100%; }
.dispatchform label { display:block; font-weight:800; font-size:13px; letter-spacing:1px; text-transform:uppercase; color:#2E2A24; margin:0 0 6px 0; }
.dispatchform input, .dispatchform select, .dispatchform textarea { width:100%; background:#F5EDDD; border:1px solid #C9BB9E; color:#2E2A24; font-family:Georgia,serif; font-size:16px; padding:11px 12px; }
.dispatchform input:focus, .dispatchform textarea:focus { outline:none; border-color:#B05C34; }
.dispatchform textarea { min-height:150px; resize:vertical; }
.formnote { font-size:13px; color:#6B6150; margin-top:12px; }
.formok { background:#241F19; color:#FBF6EA; padding:18px; margin-top:16px; border-left:6px solid #B05C34; display:none; }

/* FAQ */
.accq { border:1px solid #E6DBC4; background:#FBF6EA; margin-bottom:12px; }
.accq .accbh { display:flex; justify-content:space-between; align-items:center; padding:15px 18px; cursor:pointer; font-weight:800; color:#2E2A24; }
.accq .accbh .sm { color:#B05C34; font-weight:800; }
.accq .accbody { padding:0 18px 16px 18px; display:none; color:#3B362E; }
.accq.open .accbody { display:block; }
.accq.open .accbh .sm { transform:rotate(45deg); }
.noscript-fallback-ok noscript .accbody { display:block; }
noscript .accbody { display:block !important; }
.faqband { margin-top:6px; }

.hourslist { list-style:none; padding:0; margin:0; }
.hourslist li { padding:7px 0; border-bottom:1px dotted #E6DBC4; color:#3B362E; display:flex; justify-content:space-between; }
.hourslist li span { font-weight:800; color:#2E2A24; }

.datelinefoot { color:#6B6150; }
.legalhor { height:1px; background:#E6DBC4; border:0; margin:26px 0; }
.noticechip { display:inline-block; background:#2C3A50; color:#FBF6EA; padding:2px 10px; font-size:12px; letter-spacing:1px; text-transform:uppercase; }

/* service ledger articles */
.firm { background:#FBF6EA; border:1px solid #E6DBC4; border-left:6px solid #B05C34; padding:24px 26px; margin:0 0 22px 0; }
.firm p { margin:0 0 12px 0; }
.firm .tlead { font-weight:800; color:#2E2A24; }
.processcount { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:22px; justify-content:center; }
.processcount li { position:relative; flex:1 1 180px; max-width:230px; background:#FBF6EA; border:1px solid #E6DBC4; padding:34px 18px 18px 18px; margin-top:20px; }
.processcount li:before { content:""; position:absolute; left:14px; top:-16px; width:9px; height:34px; background:#B05C34; border-radius:4px; }
.processcount h3 { margin:0 0 6px 0; font-size:18px; }
.processcount p { font-size:15px; color:#3B362E; margin:0; }
.prosepage .firm h3 { margin-top:0; }

/* responsive */
@media (max-width:820px) {
  .wiretogrow { display:none; width:100%; flex-direction:column; }
  .wiretogrow.show { display:flex; }
  .manutoggle { display:inline-block; }
  .deskcopy { padding:50px 0 30px 0; }
  .deskcopy h1 { font-size:38px; }
  h1.pagebig { font-size:36px; }
}
@media (prefers-reduced-motion:reduce) {
  .reveal-item { opacity:1; transform:none; }
}
