

  /* ============================================================
     PROFESSIONAL SITEMAP — "SITE DIRECTORY" DESIGN
     Concept: the sitemap as a corporate building directory board —
     a wall-mounted ledger of departments and floors. Each category
     reads like a directory entry: an inlaid brass rule, a small
     lettered plate, and a listing of destinations beneath it.
     ============================================================ */

  :root{
    --sm-ink:        #10192B;   /* primary text / deep navy-ink */
    --sm-ink-soft:    #4B5566;  /* secondary text */
    --sm-paper:       #F6F5F1;  /* page background, warm paper */
    --sm-panel:       #FFFFFF;  /* card/panel background */
    --sm-line:        #E1DED4;  /* hairline borders */
    --sm-line-strong: #C9C4B4;  /* stronger dividers */
    --sm-brass:       #96702F;  /* accent — brushed brass */
    --sm-brass-dark:  #7A5A24;  /* accent hover / pressed */
    --sm-brass-tint:  #F1E9D7;  /* accent background tint */

    --sm-font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
    --sm-font-body: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --sm-font-mono: 'IBM Plex Mono', 'Courier New', monospace;

    --sm-radius-sm: 3px;
    --sm-radius-md: 6px;
  }

  .professional-sitemap *{
    box-sizing: border-box;
  }

  .professional-sitemap{
    background: var(--sm-paper);
    color: var(--sm-ink);
    font-family: var(--sm-font-body);
    padding: clamp(48px, 8vw, 96px) 0 clamp(64px, 10vw, 120px);
    width: 100%;
    -webkit-font-smoothing: antialiased;
  }

  .professional-sitemap__container{
    max-width: 1360px;
    margin: 0 auto;
    padding: 0 clamp(20px, 5vw, 56px);
  }

  /* ---------- Header block ---------- */

  .professional-sitemap__header{
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-bottom: clamp(40px, 6vw, 72px);
    padding-bottom: clamp(28px, 4vw, 40px);
    border-bottom: 1px solid var(--sm-line-strong);
  }

  .professional-sitemap__eyebrow{
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: var(--sm-font-mono);
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--sm-brass);
  }

  .professional-sitemap__eyebrow::before{
    content: "";
    display: inline-block;
    width: 28px;
    height: 1px;
    background: var(--sm-brass);
  }

  .professional-sitemap__heading{
    font-family: var(--sm-font-display);
    font-weight: 500;
    font-size: clamp(32px, 4.2vw, 52px);
    line-height: 1.08;
    letter-spacing: -0.01em;
    margin: 0;
    color: var(--sm-ink);
  }

  .professional-sitemap__subtext{
    font-size: 15.5px;
    line-height: 1.6;
    color: var(--sm-ink-soft);
    max-width: 620px;
    margin: 0;
  }

  /* ---------- Grid of directory groups ---------- */

  .professional-sitemap__grid{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: 1px solid var(--sm-line);
    border-left: 1px solid var(--sm-line);
  }

  .professional-sitemap__group{
    border-right: 1px solid var(--sm-line);
    border-bottom: 1px solid var(--sm-line);
    padding: clamp(28px, 2.4vw, 36px) clamp(22px, 2vw, 30px);
    background: var(--sm-panel);
    position: relative;
    transition: background-color 220ms ease;
  }

  .professional-sitemap__group:hover{
    background: #FCFBF8;
  }

  /* wide "featured" group spans two columns for visual rhythm */
  .professional-sitemap__group--wide{
    grid-column: span 2;
  }

  .professional-sitemap__plate{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--sm-brass);
    border-radius: var(--sm-radius-sm);
    font-family: var(--sm-font-mono);
    font-size: 12px;
    letter-spacing: 0.02em;
    color: var(--sm-brass);
    margin-bottom: 18px;
    background: var(--sm-brass-tint);
  }

  .professional-sitemap__title{
    font-family: var(--sm-font-display);
    font-weight: 500;
    font-size: 21px;
    letter-spacing: -0.005em;
    color: var(--sm-ink);
    margin: 0 0 6px;
  }

  .professional-sitemap__desc{
    font-size: 13px;
    line-height: 1.55;
    color: var(--sm-ink-soft);
    margin: 0 0 20px;
    max-width: 34ch;
  }

  .professional-sitemap__rule{
    display: block;
    width: 100%;
    height: 1px;
    background: var(--sm-line);
    margin: 0 0 18px;
  }

  .professional-sitemap__links{
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .professional-sitemap__link{
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    padding: 9px 4px;
    margin: 0 -4px;
    color: var(--sm-ink);
    text-decoration: none;
    font-size: 14.5px;
    font-weight: 400;
    line-height: 1.4;
    border-radius: var(--sm-radius-sm);
    position: relative;
    transition: color 180ms ease, transform 180ms ease, background-color 180ms ease;
  }

  .professional-sitemap__link-mark{
    flex: 0 0 auto;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--sm-line-strong);
    transition: background-color 180ms ease, transform 180ms ease;
  }

  .professional-sitemap__link-label{
    border-bottom: 1px solid transparent;
    transition: border-color 180ms ease;
    word-break: break-word;
  }

  .professional-sitemap__link:hover,
  .professional-sitemap__link:focus-visible{
    color: var(--sm-brass-dark);
    transform: translateX(3px);
    background: var(--sm-brass-tint);
  }

  .professional-sitemap__link:hover .professional-sitemap__link-mark,
  .professional-sitemap__link:focus-visible .professional-sitemap__link-mark{
    background: var(--sm-brass);
    transform: scale(1.3);
  }

  .professional-sitemap__link:hover .professional-sitemap__link-label,
  .professional-sitemap__link:focus-visible .professional-sitemap__link-label{
    border-color: currentColor;
  }

  .professional-sitemap__link:focus-visible{
    outline: 2px solid var(--sm-brass);
    outline-offset: 2px;
  }

  /* ---------- Footer strip ---------- */

  .professional-sitemap__footer{
    margin-top: clamp(32px, 4vw, 48px);
    padding-top: 22px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-family: var(--sm-font-mono);
    font-size: 11.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sm-ink-soft);
  }

  .professional-sitemap__footer a{
    color: var(--sm-ink-soft);
  }

  /* ============================================================
     RESPONSIVE BREAKPOINTS
     ============================================================ */

  /* Laptop / small desktop */
  @media (max-width: 1180px){
    .professional-sitemap__grid{
      grid-template-columns: repeat(3, 1fr);
    }
    .professional-sitemap__group--wide{
      grid-column: span 1;
    }
  }

  /* Tablet */
  @media (max-width: 860px){
    .professional-sitemap__grid{
      grid-template-columns: repeat(2, 1fr);
    }
  }

  /* Mobile landscape / large phones */
  @media (max-width: 620px){
    .professional-sitemap__grid{
      grid-template-columns: 1fr;
      border-left: none;
    }
    .professional-sitemap__group{
      border-left: 1px solid var(--sm-line);
    }
    .professional-sitemap__footer{
      flex-direction: column;
      align-items: flex-start;
    }
  }

  /* Mobile portrait */
  @media (max-width: 400px){
    .professional-sitemap__group{
      padding: 24px 18px;
    }
  }

  /* Reduced motion */
  @media (prefers-reduced-motion: reduce){
    .professional-sitemap__link,
    .professional-sitemap__link-mark,
    .professional-sitemap__group{
      transition: none !important;
    }
    .professional-sitemap__link:hover{
      transform: none;
    }
  }

