/* Shared navigation, matching footer rules, and box sizing. Page-specific differences remain in each page stylesheet. */
* {
box-sizing: border-box;
}

.footer {
padding: 40px 20px;
      text-align: center;
      background: #fff;
      color: #555;
      border-top: 1px solid rgba(0,0,0,0.06);
}

.footer-title {
margin: 0 0 10px;
      font-family: "Noto Serif", serif;
      font-style: italic;
      font-weight: 400;
      font-size: 28px;
      color: #111;
      letter-spacing: 0.04em;
      text-transform: none;
}

.footer-role {
margin: 0 0 14px;
      font-family: "Lato", sans-serif;
      font-size: 11px;
      font-weight: 400;
      text-transform: uppercase;
      letter-spacing: 0.16em;
      color: #666;
}

.footer-contact {
margin-bottom: 10px;
      font-size: 14px;
}

.footer-nav {
display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 0;
      margin-top: 20px;
      background-color: white;
}

.footer-nav a:hover,
.footer-nav a:focus {
text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: #60D2C2;
  text-underline-offset: 4px;
  color: #111;
  background-color: transparent;
}

.footer-bottom {
margin-top: 20px;
      padding-top: 18px;
      border-top: 1px solid rgba(0,0,0,0.06);
      font-size: 12px;
      color: #888;
      letter-spacing: 0.05em;
}

.cw-links {
display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 18px;
  padding: 16px 20px;
}

.cw-nav a {
color: #525151;
  font-family: "Lato", sans-serif;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
}

.cw-links a {
padding: 6px 2px;
}

.cw-links a::before {
content: "/ ";
}

.cw-nav a:hover,
.cw-nav a.active {
color: #111;
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: #60D2C2;
  text-underline-offset: 6px;
}

.cw-nav a:focus-visible,
.cw-menu-button:focus-visible {
outline: 2px solid #2A7A72;
  outline-offset: 4px;
}

.cw-mobile-header,
.cw-mobile-name {
display: none;
}

@media (max-width: 768px) {
.cw-mobile-header {
display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    min-height: 64px;
    padding: 10px 18px;
}
}

@media (max-width: 768px) {
.cw-nav .cw-brand {
font-size: 14px;
    color: #111;
    letter-spacing: 0.1em;
}
}

@media (max-width: 768px) {
.cw-menu-button {
display: none;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-width: 86px;
    min-height: 44px;
    padding: 8px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #333;
    font-family: "Lato", sans-serif;
    font-size: 15px;
    letter-spacing: 0.04em;
    cursor: pointer;
}
}

@media (max-width: 768px) {
.cw-nav-ready .cw-menu-button {
display: inline-flex;
}
}

@media (max-width: 768px) {
.cw-menu-icon {
font-size: 22px;
    line-height: 1;
}
}

@media (max-width: 768px) {
.cw-links {
flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0 20px 12px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}
}

@media (max-width: 768px) {
.cw-nav-ready .cw-links {
display: none;
}
}

@media (max-width: 768px) {
.cw-nav-ready.is-open .cw-links {
display: flex;
}
}

@media (max-width: 768px) {
.cw-links a {
display: flex;
    align-items: center;
    min-height: 52px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.07);
    font-size: 14px;
    letter-spacing: 0.08em;
    text-align: left;
}
}

@media (max-width: 768px) {
.cw-links a:last-child {
border-bottom: 0;
}
}

@media (max-width: 768px) {
.cw-links a::before {
content: none;
}
}

@media (max-width: 768px) {
.cw-desktop-name {
display: none;
}
}

@media (max-width: 768px) {
.cw-mobile-name {
display: inline;
}
}

/* Shared homepage footer; scoped rules override individual page footer settings. */
.footer.footer {font-family: "Lato", sans-serif; font-weight:300; font-size:16px; line-height:1.8; letter-spacing:0.03em;}
.footer p {margin:0 0 1.2em; font-size:14px;}
.footer img {display:inline-block; max-width:100%; height:auto;}
.footer a {color:#175151; text-decoration-line:underline; text-decoration-style:wavy; text-decoration-color:#60D2C2; text-underline-offset:4px;}
.footer.footer {
padding: 40px 20px;
      text-align: center;
      background: #fff;
      color: #555;
      border-top: 1px solid rgba(0,0,0,0.06);
}

.footer .footer-title {
margin: 0 0 10px;
      font-family: "Noto Serif", serif;
      font-style: italic;
      font-weight: 400;
      font-size: 28px;
      color: #111;
      letter-spacing: 0.04em;
      text-transform: none;
}

.footer .footer-role {
margin: 0 0 14px;
      font-family: "Lato", sans-serif;
      font-size: 11px;
      font-weight: 400;
      text-transform: uppercase;
      letter-spacing: 0.16em;
      color: #666;
}

.footer .footer-copy {
max-width: 700px;
      margin: 0 auto 18px;
      font-size: 15px;
      line-height: 1.4;
      color: #6b6b6b;
}

.footer .footer-contact {
margin-bottom: 10px;
      font-size: 14px;
}

.footer .footer-nav {
display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 0;
      margin-top: 20px;
      background-color: white;
}

.footer .footer-nav a {
padding: 5px 6px;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 12px;
  color: #525151;
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.footer .footer-nav a:hover,
.footer .footer-nav a:focus {
text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: #60D2C2;
  text-underline-offset: 4px;
  color: #111;
  background-color: transparent;
}

.footer .footer-bottom {
margin-top: 20px;
      padding-top: 18px;
      border-top: 1px solid rgba(0,0,0,0.06);
      font-size: 12px;
      color: #888;
      letter-spacing: 0.05em;
}

@media (max-width: 768px) {
@media (max-width: 768px) {
.footer .footer-nav a {
min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.footer .footer-contact p {
overflow-wrap: anywhere;
}
}
}

.footer .footer-crisis {
max-width: none;
  width: 100%;
  box-sizing: border-box;
  margin: 32px auto 0;
  padding-top: 24px;
  border-top: 1px solid #41CDC3;
  text-align: center;
}

.footer .footer-crisis h3 {
margin: 0 0 12px;
  font-size: 1rem;
}

.footer .footer-crisis p {
max-width: 680px;
  margin: 0 auto 12px;
  font-size: 0.9rem;
  text-align: center;
  line-height: 1.7;
}

.footer .footer-crisis a {
color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.footer .footer-links .cta-link {display:inline-block; text-decoration:none; text-transform:uppercase; letter-spacing:0.12em; font-size:12px; color:#525151; border-bottom:none; padding-bottom:4px; transition:color 0.2s ease;}
.footer .footer-links .cta-link:hover,
.footer .footer-links .cta-link:focus {color:#111; text-decoration:none; border-bottom:none;}
@media (max-width:768px) {
.footer.footer {font-size:15px; line-height:1.75; letter-spacing:0.02em;}
.footer .footer-links .cta-link {min-height:44px; display:flex; align-items:center; justify-content:center;}
}


.footer .footer-links .cta-link:hover,
.footer .footer-links .cta-link:focus-visible {
  text-decoration-line: underline;
  text-decoration-style: wavy;
  text-decoration-color: #60D2C2;
  text-underline-offset: 4px;
}

@media (max-width: 768px) {
  .footer .footer-nav {
    gap: 4px 8px;
    margin-top: 14px;
  }

  .footer .footer-nav a {
    min-height: 0;
    padding: 6px 4px;
    line-height: 1.4;
  }

  .footer .footer-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 16px;
  }

  .footer .footer-links .cta-link {
    min-height: 0;
    padding: 6px 0;
    line-height: 1.4;
  }
}

.cw-nav {
  position: fixed;
  top: 0;
  z-index: 1000;
  background-color: #fff;
}


@media (max-width: 768px) {
  .footer.footer {
    padding: 28px 16px;
  }

  .footer .footer-title {
    font-size: 22px;
    line-height: 1.3;
  }

  .footer .footer-title span {
    font-size: 12px !important;
  }

  .footer .footer-role {
    font-size: 9px;
    line-height: 1.5;
    letter-spacing: 0.08em;
  }

  .footer .footer-copy,
  .footer .footer-contact,
  .footer .footer-contact p {
    font-size: 12px;
    line-height: 1.5;
  }

  .footer .footer-nav {
    margin-top: 12px;
    gap: 0;
  }

  .footer .footer-nav a {
    font-size: 10px;
    padding: 8px 5px;
    min-height: 44px;
  }

  .footer .footer-links .cta-link {
    font-size: 10px;
    letter-spacing: 0.06em;
  }

  .footer img {
    max-width: 36px;
  }

  .footer .footer-crisis {
    margin-top: 20px;
    padding-top: 16px;
  }

  .footer .footer-crisis h3 {
    font-size: 13px;
  }

  .footer .footer-crisis p {
    font-size: 12px;
    line-height: 1.5;
  }

  .footer .footer-bottom {
    margin-top: 14px;
    padding-top: 12px;
  }

  .footer .footer-bottom p {
    font-size: 10px;
  }
}

.color-dots {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 600px;
  margin: 40px auto;
  padding: 0 16px;
}

.color-dots span {
  display: block;
  width: clamp(12px, 3vw, 23px);
  aspect-ratio: 1;
  border-radius: 50%;
  flex-shrink: 0;
}

.color-dots span:nth-child(1)  { background: #21d3bf; }
.color-dots span:nth-child(2)  { background: #aae4d8; }
.color-dots span:nth-child(3)  { background: #a5f8cf; }
.color-dots span:nth-child(4)  { background: #b9fc9c; }
.color-dots span:nth-child(5)  { background: #def89e; }
.color-dots span:nth-child(6)  { background: #d3d951; }
.color-dots span:nth-child(7)  { background: #a6c2ef; }
.color-dots span:nth-child(8)  { background: #4c85f5; }
.color-dots span:nth-child(9)  { background: #a694ef; }
.color-dots span:nth-child(10) { background: #d99bef; }
.color-dots span:nth-child(11) { background: #fac8f3; }


/* Keep navigation fixed on desktop and mobile */
nav.cw-nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: #fff;
}

/* Avoid a horizontal-overflow wrapper blocking sticky */
@supports (overflow: clip) {
  html,
  body {
    overflow-x: clip;
  }
}

/* Compact footer layout on mobile */
@media (max-width: 768px) {
  .footer.footer .footer-nav {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0 8px;
  }

  .footer.footer .footer-nav a {
    width: auto;
    font-size: 10px;
    padding: 5px 3px;
    min-height: 32px;
    line-height: 1.3;
  }

  .footer.footer .footer-links {
    gap: 2px;
    margin-top: 10px;
  }

  .footer.footer .footer-links .cta-link {
    min-height: 32px;
    padding: 5px 0;
    font-size: 10px;
    line-height: 1.3;
  }

  .footer .footer-copy br {
    display: none;
  }
}

.hero-kicker h2 {
    font-size: 20px;
}

/* SHARED TYPOGRAPHY — add these classes to pages as they are updated.
   cw-type cw-display: opening statement
   cw-type cw-section-title: large section heading
   cw-type cw-kicker: small uppercase label
   cw-type cw-copy: readable body copy
   cw-type cw-text-link: understated link
   cw-divider: dotted section divider */

:root {
  --cw-font-display: "Noto Serif", serif;
  --cw-font-body: "Lato", sans-serif;
  --cw-ink: #111;
  --cw-muted: #555;
  --cw-teal: #087e70;
  --cw-accent: #30c4ab;
}
.cw-type.cw-display,
.cw-type.cw-section-title {
  font-family: var(--cw-font-display);
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: none;
  text-align: left;
  color: var(--cw-ink);
  overflow-wrap: break-word;
  text-wrap: pretty;
}
.cw-type.cw-display {
  font-size: clamp(2.25rem, 4.5vw, 3rem);
  line-height: 1.5;
  margin: 12px 0 28px;
  max-width: 22ch;
}
.cw-type.cw-section-title {
  font-size: clamp(1.85rem, 4vw, 3rem);
  line-height: 1.5;
  margin: 0 0 24px;
}
.cw-type.cw-kicker {
  font-family: var(--cw-font-body);
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: left;
  color: #000;
  margin: 0 0 12px;
}
.cw-type.cw-copy {
  font-family: var(--cw-font-body);
  font-size: 1rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: 0.02em;
  color: var(--cw-muted);
  max-width: 68ch;
  margin: 0 0 1.3em;
}
.cw-type.cw-text-link {
  display: inline-block;
  font-family: var(--cw-font-body);
  font-size: 0.875rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: var(--cw-teal);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
  padding-block: 8px;
}
.cw-type.cw-text-link:hover { text-decoration-style: wavy; }
.cw-type.cw-text-link:focus-visible {
  outline: 2px solid var(--cw-teal);
  outline-offset: 4px;
}
.cw-divider {
  height: 0;
  border: 0;
  border-top: 3px dotted var(--cw-accent);
  margin: clamp(36px, 6vw, 64px) 0;
}
/* My Path layout: text measure and spacing around shared headings. */
.cw-path.section { padding: clamp(36px, 6vw, 72px) clamp(20px, 6vw, 80px); }
.cw-path .text-block { width: 100%; max-width: 980px; margin: 0 auto; }
.cw-path .cw-path-copy {
  max-width: 760px;
  font-family: var(--cw-font-body);
  font-size: 1rem;
  line-height: 1.85;
  letter-spacing: 0.02em;
  color: var(--cw-muted);
  overflow-wrap: break-word;
}
.cw-path .cw-path-copy > p { font-size: 1rem; line-height: 1.85; margin: 0 0 1.3em; }
.cw-path .cw-path-copy > .cw-section-title { margin-top: 0; }
.cw-path .cw-path-copy > .cw-path-reflection {
  font-family: var(--cw-font-display);
  font-style: italic;
  font-size: clamp(1.2rem, 2.5vw, 1.6rem);
  line-height: 1.8;
  color: var(--cw-ink);
  margin-top: 40px;
}
.cw-path .cw-path-download { margin: 24px 0 40px; }


/* Shared outlined pill button, matching the original Download Resume style. */
a.cw-type.cw-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 12px 24px;
  max-width: 100%;
  border: 1px solid #111;
  border-radius: 999px;
  background: transparent;
  color: #111;
  font-family: var(--cw-font-body);
  font-size: 0.9rem;
  font-style: normal;
  font-weight: 300;
  line-height: 1.8;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}
a.cw-type.cw-button:hover { background: #9fc5ff; color: #000; }
a.cw-type.cw-button:focus-visible { outline: 2px solid var(--cw-teal); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
  a.cw-type.cw-button { transition: none; }
}

body {
  background-color: none;
  background-image: radial-gradient(
    circle,
    rgba(0, 0, 0, 0.15) 1px,
    transparent 1px
  );
  background-size: 18px 18px;
  background-repeat: repeat;
}

/* Eyebrow text */
:root {
  --cw-muted: #000;
}

.cw-type.cw-kicker {
  color: #000;
}

/* Prevent the page from sliding sideways */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* Clip horizontal overflow in supporting browsers */
@supports (overflow-x: clip) {
  html,
  body {
    overflow-x: clip;
  }
}

@media (max-width: 768px) {
  .bgimg-1 .caption .color-dots {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 6px;
    width: 100%;
    max-width: 360px;
    margin: 24px auto;
    padding: 0 8px;
  }

  .bgimg-1 .caption .color-dots > span {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    border-radius: 50%;
    visibility: visible;
    opacity: 1;
  }
}

/* Keep images and videos within their containers */
img,
video {
  max-width: 100%;
  height: auto;
}

/* Include padding and borders within element widths */
*,
*::before,
*::after {
  box-sizing: border-box;
}

