:root {
        --headline-font: 'Playfair Display', serif;
        --body-font: 'Roboto', sans-serif;
        --max-width: 1140px;
        --gutter: 1.5rem;
        --border-color: #d1d1d1;
      }
      * {
        box-sizing: border-box;
      }
      body {
        margin: 0;
        font-family: var(--body-font);
        background: #FAF9F6;
        color: #222;
        line-height: 1.6;
      }
      header {
        background: #FAF9F6;
        border-bottom: 3px double var(--border-color);
        text-align: center;
      }
      header h1 {
        margin: 0;
        font-family: var(--headline-font);
        font-size: 3.75rem;
        letter-spacing: 0.05em;
        text-shadow: 1px 1px 0 #E6E2D3; /* Light paper-tone shadow */

      }
      nav {
        display: flex;
        justify-content: center;
        gap: 2rem;
        padding: 0.75rem 0;
        background: #F5F5DC;
        border-bottom: 1px solid var(--border-color);
        position: sticky;
        top: 0;
        z-index: 2000;


      }
      nav a {
        text-decoration: none;
        color: #333;
        font-weight: 500;
      }
      nav a:hover {
        text-decoration: underline;
      }
      .container {
        max-width: var(--max-width);
        margin: 0 auto;
        padding: 2rem var(--gutter);
        display: grid;
        grid-template-columns: 2fr 1fr;
        gap: var(--gutter);
      }
      .main-content article {
        margin-bottom: 2rem;
        padding-bottom: 2rem;
        border-bottom: 1px dotted var(--border-color);
      }
      .main-content h2 {
        font-family: var(--headline-font);
        font-size: 1.75rem;
        margin-top: 0;
      }
      .meta {
        font-size: 0.875rem;
        color: #666;
        margin-bottom: 0.75rem;
      }
      .sidebar {
        border-left: 2px solid var(--border-color);
        padding-left: var(--gutter);
      }
      .sidebar h3 {
        font-family: var(--headline-font);
        margin-top: 0;
        margin-bottom: 1rem;
      }
      footer {
        background: #fff;
        border-top: 3px double var(--border-color);
        text-align: center;
        padding: 1rem 0;
        margin-top: 3rem;
        font-size: 0.9rem;
        color: #555;
      }
        aside a {
          text-decoration: none;
          color: #8B0000;
      }
      aside a:hover {
        color: #660000; /* Slightly darker red for hover */
        border-bottom: 2px solid #8B0000; /* Underline accent */
          text-decoration: none;

      }

      article a {
          text-decoration: none;
          color: #8B0000;
      }
      article a:hover {
        color: #660000; /* Slightly darker red for hover */
        border-bottom: 2px solid #8B0000; /* Underline accent */
          text-decoration: none;

      }
      nav a:hover {
        color: #660000;
      }



    .map-container {
      background-color: #FAF9F6; /* Off-white paper tone */
      padding: 16px;
      border-radius: 8px;
      border: 3px solid #E6E2D3; /* Subtle beige border */
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
      margin-top: 16px;
      margin-bottom: 24px;
      transition: box-shadow 0.3s ease;
    }

    .map-container,
    {
      display: block;
      width: 100%;
      height: 100%; /* Adjust to taste */
      max-width: 100%;
      margin: 0 auto;
    }
    .map-container:hover {
      box-shadow: 0 8px 18px rgba(0, 0, 0, 0.15);
    }

    /* Map element itself */
    #map {
      height: 300px;
      width: 100%;
      border-radius: 6px;
      overflow: hidden;
    }

    /* Map element itself */
    .map {
      height: 300px;
      width: 100%;
      border-radius: 6px;
      overflow: hidden;
    }


    /* Section header styling */
    .location-header {
      font-family: 'Merriweather', serif;
      font-size: 1.5rem;
      color: #8B0000; /* Accent red */
      border-bottom: 2px solid #8B0000;
      padding-bottom: 4px;
      margin-bottom: 12px;
    }

    /* Optional: make zoom buttons match brand */
    .leaflet-control-zoom a {
      background-color: #8B0000 !important;
      color: white !important;
      border: none !important;
    }
    .leaflet-control-zoom a:hover {
      background-color: #660000 !important;
    }

    figcaption {
      font-family: 'Merriweather', serif; /* Match headlines for classic feel */
      font-size: 0.9rem; /* Slightly smaller than body text */
      color: #555; /* Medium grey for subtlety */
      background-color: #FAF9F6; /* Paper tone background */
      border-left: 4px solid #8B0000; /* Accent red bar */
      padding: 8px 12px;
      margin-top: 8px;
      line-height: 1.4;
    }


    /* Optional: italic style for photo credits */
    figcaption em {
      font-style: italic;
      color: #777;
    }

          /* Responsive tweaks */
          @media (max-width: 768px) {
            .container {
              grid-template-columns: 1fr;
            }
            .sidebar {
              border-left: none;
              padding-left: 0;
            }
          }