/* ==========================================================================
   J. Edward Salzer Consulting
   Bearing brand system. Structure adapted from the ChatGPT prototype,
   re-skinned to our locked identity:
     - Palette: Ink #081725, Paper Ivory #F2EEE5, Olive #596348, Orange #FF4D2E
     - Display: Archivo at expanded width (125) for wordmark + headlines
     - Body: IBM Plex Sans   Editorial: Source Serif 4
     - Bearing lines are olive, objective points are orange, type is ink
   Mobile-first-friendly; full layout at wider breakpoints.
   ========================================================================== */

:root{
  --ink:#081725;
  --paper:#f2eee5;
  --olive:#596348;
  --orange:#ff4d2e;
  --line:rgba(8,23,37,.16);
  --line-light:rgba(242,238,229,.18);

  --display:"Archivo","Arial Narrow",Arial,sans-serif;
  --sans:"IBM Plex Sans",Arial,sans-serif;
  --serif:"Source Serif 4",Georgia,serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

/* Shared display treatment for headlines and wordmark */
h1,h2,h3,.brand-type strong{
  font-family:var(--display);
  font-stretch:125%;
  text-transform:uppercase;
  margin:0;
}

.skip-link{position:fixed;left:1rem;top:-5rem;z-index:99;background:var(--orange);color:#fff;padding:.8rem 1rem;}
.skip-link:focus{top:1rem;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}

/* ---------------- Bearing marks (shared) ---------------- */
.route,.origin{fill:none;stroke:var(--olive);stroke-width:2;}
.objective{fill:var(--orange);}
.checkpoint{fill:var(--paper);stroke:var(--olive);stroke-width:3;}

/* ============================ HEADER ============================ */
.site-header{
  position:absolute;z-index:10;width:100%;
  height:92px;padding:0 clamp(1.25rem,5vw,5rem);
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:.7rem;color:inherit;text-decoration:none;}
.brand-mark{width:42px;height:42px;}
.brand-mark .route{stroke-width:2.2;}
.brand-type{display:grid;text-transform:uppercase;line-height:.9;}
.brand-type small{font-size:.55rem;letter-spacing:.36em;}
.brand-type strong{font-size:1.5rem;letter-spacing:.06em;font-weight:800;}
.brand-type em{font-size:.46rem;letter-spacing:.5em;color:var(--olive);font-style:normal;}

.site-nav{display:flex;align-items:center;gap:2rem;}
.site-nav a{
  text-decoration:none;color:inherit;font-size:.72rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;
}
.site-nav a:hover{color:var(--orange);}
.nav-cta{border-left:2px solid var(--orange);padding-left:1rem;}

.menu-toggle{display:none;background:none;border:0;padding:.5rem;cursor:pointer;}
.menu-toggle span:not(.sr-only){display:block;width:25px;height:2px;background:var(--ink);margin:5px 0;}

/* ============================ HERO ============================ */
.hero{
  min-height:100vh;position:relative;overflow:hidden;
  padding:clamp(9rem,16vh,12rem) clamp(1.25rem,8vw,8rem) 7rem;
  background-image:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:48px 48px;
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 72% 38%,transparent 0 20%,var(--paper) 60%);
}
.hero-copy{position:relative;z-index:2;max-width:850px;}

.eyebrow,.section-number{
  font-family:var(--sans);
  text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:600;
}
.eyebrow b{color:var(--orange);margin:0 .55rem;}

.hero h1{
  font-size:clamp(3rem,8vw,6.4rem);line-height:.9;letter-spacing:-.01em;
  margin:1.4rem 0 1.9rem;
}
.hero h1 span{color:var(--olive);}
.hero-lede{font-size:clamp(1.05rem,1.5vw,1.3rem);max-width:640px;}

.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.5rem 2rem;margin-top:2.4rem;}
.button{
  display:inline-block;padding:1rem 1.35rem;text-decoration:none;
  text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:700;
}
.button-primary{background:var(--ink);color:var(--paper);border-bottom:4px solid var(--orange);transition:background .2s ease;}
.button-primary:hover{background:#0d2233;}
.text-link{color:inherit;text-decoration:none;font-weight:600;}
.text-link span{color:var(--orange);margin-left:.4rem;}

.bearing-field{position:absolute;z-index:1;right:2%;top:14%;width:min(43vw,600px);opacity:.72;}
.bearing-field svg{width:100%;}
.bearing-field pattern path{fill:none;stroke:rgba(89,99,72,.22);stroke-width:1;}

.hero-foot{
  position:absolute;z-index:2;bottom:0;left:0;right:0;
  background:var(--ink);color:var(--paper);
  display:flex;justify-content:center;gap:8vw;padding:1.35rem;
  text-transform:uppercase;letter-spacing:.18em;font-size:.65rem;
}

/* ============================ PROOF ============================ */
.proof{
  background:var(--ink);color:var(--paper);
  display:grid;grid-template-columns:repeat(4,1fr);gap:3rem;
  padding:4rem clamp(1.25rem,8vw,8rem);
  border-top:1px solid var(--line-light);
}
.proof div{display:grid;gap:.4rem;}
.proof strong{font-family:var(--display);font-stretch:125%;font-size:2.6rem;color:var(--orange);}
.proof span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;}

/* ============================ SECTIONS ============================ */
.section{padding:clamp(5rem,10vw,9rem) clamp(1.25rem,8vw,8rem);}
.section-intro{display:grid;grid-template-columns:1fr 2fr 1fr;gap:3rem;align-items:start;}
.section h2,.contact h2{font-size:clamp(2.1rem,4.6vw,4rem);line-height:.98;letter-spacing:-.01em;}
.section-intro > p:last-child{margin:0;}

/* Services */
.service-list{margin-top:5rem;border-top:1px solid var(--ink);}
.service-list article{
  display:grid;grid-template-columns:60px 1fr 1.4fr .8fr;gap:2rem;
  padding:2.1rem 0;border-bottom:1px solid var(--line);align-items:start;
}
.service-list article span{font-family:var(--display);font-stretch:125%;color:var(--olive);font-weight:700;}
.service-list h3{font-size:1.5rem;}
.service-list p{margin:0;}
.service-list a{
  color:var(--ink);font-size:.75rem;text-transform:uppercase;font-weight:700;
  text-decoration-color:var(--orange);text-underline-offset:5px;
}

/* Approach */
.approach{display:grid;grid-template-columns:1fr 1fr;background:var(--ink);color:var(--paper);padding:0;}
.approach-visual{
  min-height:720px;position:relative;overflow:hidden;
  background-image:
    linear-gradient(rgba(242,238,229,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(242,238,229,.07) 1px,transparent 1px);
  background-size:40px 40px;
}
.approach-visual svg{position:absolute;width:75%;right:8%;bottom:8%;}
.contour{position:absolute;border:1px solid rgba(242,238,229,.09);border-radius:48% 52% 43% 57%;}
.contour.c1{inset:17% 10% 20% 14%;}
.contour.c2{inset:24% 18% 29% 22%;}
.contour.c3{inset:34% 28% 38% 32%;}
.approach-copy{padding:clamp(5rem,8vw,8rem);}
.approach-lede{font-family:var(--serif);font-size:1.35rem;}
.approach ol{list-style:none;padding:0;margin:3rem 0 0;}
.approach li{display:grid;grid-template-columns:1fr 1.5fr;gap:2rem;padding:1.25rem 0;border-top:1px solid var(--line-light);}
.approach li b{text-transform:uppercase;letter-spacing:.02em;}
.approach li span{color:rgba(242,238,229,.72);}

/* Quote band */
.quote-band{
  padding:clamp(5rem,10vw,10rem) clamp(1.25rem,8vw,8rem);
  display:grid;grid-template-columns:2.5fr 1fr;gap:5rem;align-items:end;
  border-bottom:1px solid var(--line);
}
blockquote{font-family:var(--serif);font-size:clamp(2.6rem,6.5vw,6rem);line-height:.95;letter-spacing:-.02em;margin:0;}
blockquote::before{content:"\201C";color:var(--orange);}

/* Experience */
.experience-grid{display:grid;grid-template-columns:repeat(2,1fr);margin-top:4rem;border-top:1px solid var(--ink);}
.experience-grid article{padding:2.5rem 3rem 3rem 0;border-bottom:1px solid var(--line);}
.experience-grid article:nth-child(odd){border-right:1px solid var(--line);}
.experience-grid article:nth-child(even){padding-left:3rem;}
.experience-grid h3{font-size:1.4rem;margin-bottom:.6rem;}

/* Values */
.values-lede{
  display:grid;grid-template-columns:1fr 1fr;gap:3rem;
  margin-top:4rem;padding-bottom:3.5rem;border-bottom:1px solid var(--line);
}
.values-lede b{
  display:block;font-family:var(--sans);text-transform:uppercase;
  letter-spacing:.18em;font-size:.72rem;color:var(--olive);margin-bottom:.9rem;
}
.values-lede p{font-family:var(--serif);font-size:1.35rem;line-height:1.35;margin:0;}
.values-label{margin:3.5rem 0 0;color:var(--olive);}
.values-list{list-style:none;padding:0;margin:1.5rem 0 0;border-top:1px solid var(--ink);}
.values-list li{
  display:grid;grid-template-columns:1fr 2.4fr;gap:2rem;
  padding:1.7rem 0;border-bottom:1px solid var(--line);
}
.values-list b{
  font-family:var(--display);font-stretch:125%;text-transform:uppercase;
  font-size:1.15rem;letter-spacing:.02em;
}

/* About */
.about{background:var(--olive);color:var(--paper);display:grid;grid-template-columns:1.4fr 1fr;gap:8vw;}
.about p{font-size:1.12rem;}
.about .text-link span{color:var(--paper);}

/* Contact */
.contact{
  background:var(--ink);color:var(--paper);
  padding:clamp(5rem,10vw,9rem) clamp(1.25rem,8vw,8rem);
  display:grid;grid-template-columns:1.4fr 1fr;gap:8vw;align-items:end;
}
.contact-action{border-left:1px solid var(--line-light);padding-left:3rem;}
.contact .button-primary{background:var(--orange);border-color:var(--paper);}

/* Footer */
footer{
  background:var(--ink);color:var(--paper);border-top:1px solid var(--line-light);
  padding:2rem clamp(1.25rem,8vw,8rem);
  display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;
  font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;
}
.footer-brand{color:var(--paper);}

/* ============================ RESPONSIVE ============================ */
@media (max-width:900px){
  .site-header{height:76px;}
  .menu-toggle{display:block;z-index:12;}
  .site-nav{
    display:none;position:absolute;left:0;right:0;top:76px;
    background:var(--paper);padding:2rem;flex-direction:column;align-items:flex-start;
    border-bottom:1px solid var(--line);
  }
  .site-nav.open{display:flex;}
  .bearing-field{opacity:.26;right:-25%;top:22%;width:90vw;}
  .proof{grid-template-columns:repeat(2,1fr);}
  .section-intro{grid-template-columns:1fr;}
  .service-list article{grid-template-columns:40px 1fr;}
  .service-list article p,.service-list article a{grid-column:2;}
  .approach{grid-template-columns:1fr;}
  .approach-visual{min-height:420px;}
  .quote-band,.about,.contact{grid-template-columns:1fr;}
  .values-list li{grid-template-columns:1fr;gap:.4rem;}
  .values-lede{grid-template-columns:1fr;gap:2rem;}
  .quote-band{gap:2rem;}
  .contact-action{border-left:0;border-top:1px solid var(--line-light);padding:2rem 0 0;}
  footer{align-items:flex-start;flex-direction:column;}
}

@media (max-width:560px){
  .brand-mark{width:34px;height:34px;}
  .hero{padding-top:8rem;}
  .hero-actions{align-items:flex-start;flex-direction:column;}
  .hero-foot{justify-content:flex-start;gap:1.6rem;overflow:hidden;}
  .hero-foot span{white-space:nowrap;}
  .proof{grid-template-columns:1fr;}
  .experience-grid{grid-template-columns:1fr;}
  .experience-grid article:nth-child(odd){border-right:0;}
  .experience-grid article:nth-child(even){padding-left:0;}
  .approach-copy{padding:4rem 1.25rem;}
  .approach li{grid-template-columns:1fr;gap:.3rem;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
}
