/* ===========================================================
   Cromwell Consulting, LLC — v2 design tokens
   Direction: executive, warm, polished, global — not a
   hard-hats/caution-tape safety-consultant site.

   Palette
     --deep     #1F3B36  primary dark — deep forest/teal, gravitas
     --sand     #EFE6D1  warm background, not stark white
     --brass    #A87F3F  brass/gold accent — warmth + global travel
     --brass-dk #8A6830  brass, darker (hover/pressed)
     --charcoal #2B2B26  body text
     --white    #FFFFFF  card surfaces

   Type
     Display : 'Fraunces'   — warm, characterful serif, used at low-medium weight
     Body    : 'Inter'      — clean, executive-readable
     Utility : 'IBM Plex Mono' — stamp codes, dates, locations

   Signature element
     The "stamp" — a circular passport/travel-stamp badge marking
     each place her work has shown up: a jobsite, a stage, Kenya.
   =========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500&display=swap');

:root{
  --deep:#1F3B36;
  --deep-soft:#28453f;
  --sand:#EFE6D1;
  --sand-deep:#e4d8bd;
  --brass:#A87F3F;
  --brass-dk:#8A6830;
  --charcoal:#2B2B26;
  --stone:#6b6a5f;
  --white:#FFFFFF;
  --radius:4px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--sand);
  color:var(--charcoal);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{
  font-family:'Fraunces',serif;
  font-weight:500;
  color:var(--deep);
  margin:0 0 .4em;
  letter-spacing:-.01em;
}
h1{font-size:clamp(2.4rem,5vw,3.8rem);line-height:1.06;font-weight:500;}
h2{font-size:clamp(1.7rem,3vw,2.4rem);}
h3{font-size:1.15rem;font-weight:600;}
p{margin:0 0 1em;color:var(--stone);}
a{color:inherit;}

.eyebrow{
  display:flex;align-items:center;gap:.6em;
  font-family:'IBM Plex Mono',monospace;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brass-dk);margin-bottom:1em;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--brass);display:inline-block;}

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

.wrap{max-width:1100px;margin:0 auto;padding:0 28px;}

/* ---------- nav ---------- */
.topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(239,230,209,.92);backdrop-filter:blur(6px);
  border-bottom:1px solid var(--sand-deep);
}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;}
.brand{
  font-family:'Fraunces',serif;font-weight:600;font-size:1.15rem;color:var(--deep);
  text-decoration:none;display:flex;flex-direction:column;line-height:1.15;
}
.brand span{font-family:'Inter',sans-serif;font-weight:500;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-dk);margin-top:3px;}
nav{display:flex;gap:6px;}
nav a{
  color:var(--deep);text-decoration:none;font-size:.85rem;font-weight:500;
  padding:9px 14px;border-radius:var(--radius);transition:background .15s,color .15s;
}
nav a:hover{background:var(--sand-deep);}
.nav-toggle{display:none;background:none;border:0;color:var(--deep);font-size:1.6rem;cursor:pointer;}
@media (max-width:760px){
  nav{position:absolute;top:78px;left:0;right:0;background:var(--sand);flex-direction:column;padding:10px;display:none;border-bottom:1px solid var(--sand-deep);}
  nav.open{display:flex;}
  .nav-toggle{display:block;}
}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-size:.85rem;font-weight:600;text-decoration:none;padding:14px 28px;border-radius:var(--radius);border:1.5px solid transparent;cursor:pointer;transition:transform .12s,background .15s,color .15s;}
.btn-primary{background:var(--deep);color:var(--white);}
.btn-primary:hover{background:var(--deep-soft);transform:translateY(-1px);}
.btn-brass{background:var(--brass);color:var(--white);}
.btn-brass:hover{background:var(--brass-dk);transform:translateY(-1px);}
.btn-ghost{border-color:var(--deep);color:var(--deep);}
.btn-ghost:hover{background:var(--deep);color:var(--white);}

/* ---------- hero ---------- */
.hero{padding:90px 0 70px;position:relative;}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;}
@media (max-width:820px){.hero-grid{grid-template-columns:1fr;}}
.hero p.lead{max-width:50ch;font-size:1.08rem;color:var(--charcoal);}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:1.6em;}

.portrait-frame{
  aspect-ratio:4/5;border-radius:6px;background:var(--white);
  border:1px solid var(--sand-deep);outline:1px solid var(--sand-deep);outline-offset:-10px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:var(--stone);font-family:'IBM Plex Mono',monospace;font-size:.75rem;padding:24px;
  position:relative;
}
.portrait-frame::after{
  content:"";position:absolute;bottom:16px;right:16px;width:64px;height:64px;
  border:1.5px solid var(--brass);border-radius:50%;opacity:.5;
}
.portrait-frame-photo{padding:0;overflow:hidden;}
.portrait-frame-photo img{width:100%;height:100%;object-fit:cover;display:block;}

/* ---------- sections ---------- */
section{padding:80px 0;}
.section-deep{background:var(--deep);color:var(--white);}
.section-deep p{color:#c9d4d0;}
.section-deep h2,.section-deep h3{color:var(--white);}
.section-head{max-width:60ch;margin-bottom:2.4em;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head.center .eyebrow{justify-content:center;}

/* ---------- service cards ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:26px;}
.card{background:var(--white);border-radius:6px;padding:32px 28px;border:1px solid var(--sand-deep);}
.card .num{font-family:'IBM Plex Mono',monospace;color:var(--brass);font-size:.75rem;letter-spacing:.08em;display:block;margin-bottom:14px;}
.card p{font-size:.94rem;}

/* ---------- stamps (signature element) ---------- */
.stamp-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:30px;margin-top:10px;}
.stamp{
  border:1.5px solid rgba(255,255,255,.4);border-radius:50%;
  aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:18px;position:relative;
}
.stamp:nth-child(1){transform:rotate(-4deg);}
.stamp:nth-child(2){transform:rotate(3deg);}
.stamp:nth-child(3){transform:rotate(-2deg);}
.stamp .loc{font-family:'Fraunces',serif;font-size:1.05rem;color:var(--white);margin-bottom:6px;}
.stamp .code{font-family:'IBM Plex Mono',monospace;font-size:.65rem;letter-spacing:.08em;color:var(--brass);text-transform:uppercase;}

.stamp-photo{overflow:hidden;border-color:var(--brass);}
.stamp-photo img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 35%;border-radius:50%;
}
.stamp-photo::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:linear-gradient(to top, rgba(0,0,0,.72) 0%, rgba(0,0,0,.15) 45%, rgba(0,0,0,0) 65%);
}
.stamp-photo .loc,.stamp-photo .code{position:relative;z-index:1;text-shadow:0 1px 4px rgba(0,0,0,.6);}

/* ---------- about split ---------- */
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start;}
@media (max-width:820px){.split{grid-template-columns:1fr;}}

.check-list{list-style:none;margin:0;padding:0;}
.check-list li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--sand-deep);font-size:.95rem;}
.check-list li::before{content:"—";color:var(--brass);font-weight:700;flex-shrink:0;}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;}}
.form-field{margin-bottom:18px;display:flex;flex-direction:column;gap:6px;}
.form-field label{font-size:.78rem;font-weight:600;color:var(--deep);text-transform:uppercase;letter-spacing:.05em;}
.form-field input,.form-field select,.form-field textarea{
  border:1.5px solid var(--sand-deep);border-radius:var(--radius);padding:12px 14px;
  font-family:'Inter',sans-serif;font-size:.95rem;background:var(--white);color:var(--charcoal);
}
.form-field textarea{resize:vertical;min-height:120px;}
.form-note{font-size:.8rem;color:var(--stone);margin-top:10px;}

.info-card{background:var(--white);border:1px solid var(--sand-deep);border-radius:6px;padding:30px;}
.info-card .row{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--sand-deep);font-size:.92rem;}
.info-card .row:last-child{border-bottom:none;}
.info-card .label{font-family:'IBM Plex Mono',monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--brass-dk);width:96px;flex-shrink:0;}

/* ---------- footer ---------- */
footer{background:var(--deep);color:#9fb0ab;padding:40px 0;font-size:.85rem;}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;align-items:center;}
footer a{color:#cdd9d5;text-decoration:none;}
footer a:hover{color:var(--white);}
