/* Fonts */
@font-face {
  font-family: 'Aporetic Sans';
  src: url('/static/fonts/aporetic-sans-normalregularupright_basiclatin.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Aporetic Sans';
  src: url('/static/fonts/aporetic-sans-normalregularitalic_basiclatin.woff2') format('woff2');
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: 'Aporetic Sans';
  src: url('/static/fonts/aporetic-sans-normalboldupright_basiclatin.woff2') format('woff2');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'Aporetic Sans';
  src: url('/static/fonts/aporetic-sans-normalbolditalic_basiclatin.woff2') format('woff2');
  font-weight: bold;
  font-style: italic;
}

@font-face {
  font-family: 'Aporetic Serif';
  src: url('/static/fonts/aporetic-serif-normalregularupright_basiclatin.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Aporetic Serif';
  src: url('/static/fonts/aporetic-serif-normalregularitalic_basiclatin.woff2') format('woff2');
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: 'Aporetic Serif';
  src: url('/static/fonts/aporetic-serif-normalboldupright_basiclatin.woff2') format('woff2');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'Aporetic Serif';
  src: url('/static/fonts/aporetic-serif-normalbolditalic_basiclatin.woff2') format('woff2');
  font-weight: bold;
  font-style: italic;
}

@font-face {
  font-family: 'Aporetic Sans Mono';
  src: url('/static/fonts/aporetic-sans-mono-normalregularupright_basiclatin.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Aporetic Sans Mono';
  src: url('/static/fonts/aporetic-sans-mono-normalregularitalic_basiclatin.woff2') format('woff2');
  font-weight: normal;
  font-style: italic;
}

@font-face {
  font-family: 'Aporetic Sans Mono';
  src: url('/static/fonts/aporetic-sans-mono-normalboldupright_basiclatin.woff2') format('woff2');
  font-weight: bold;
  font-style: normal;
}

@font-face {
  font-family: 'Aporetic Sans Mono';
  src: url('/static/fonts/aporetic-sans-mono-normalbolditalic_basiclatin.woff2') format('woff2');
  font-weight: bold;
  font-style: italic;
}

/* General Body Styles */
body {
    margin: 2em auto; /* Increased top/bottom margin for better spacing */
    max-width: 45em;  /* Slightly increased max-width for readability */
    padding: 0 1em;   /* Added horizontal padding */
    font-family: 'Aporetic Sans', sans-serif; /* Modern, clean sans-serif font */
    line-height: 1.6; /* Improved line height for readability */
    color: #333; /* Softer black for body text */
    background-color: #fdfdfd; /* Very light gray background for a subtle touch */
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
    line-height: 1.3; /* Adjusted line height for headings */
    margin-top: 1.5em;
    margin-bottom: 0.5em;
    color: #111; /* Darker color for headings for contrast */
    font-family: 'Aporetic Serif', serif;
}

h1 {
    font-size: 2.2em;
    padding-bottom: 0.3em;
}

h1:first-child {
    margin-top: 0;
}

h2 {
    font-size: 1.8em;
}

h3 {
    font-size: 1.4em;
}

/* Links */
a {
    color: #007bff; /* A more vibrant blue for links */
    text-decoration: none;
    transition: color 0.2s ease-in-out; /* Smooth transition for hover effect */
}

a:visited {
    color: #0056b3; /* Slightly darker blue for visited links */
}

a:hover, a:focus {
    color: #004085;
    text-decoration: underline;
    text-decoration-thickness: 0.08em; /* Thinner underline */
}

/* Paragraphs */
p {
    color: #333; /* Consistent with body text color */
    margin-bottom: 1em;
}

blockquote {
    border-left: 4px solid #F1E9DA; /* A prominent left border */
    margin: 1.5em 0; /* Vertical spacing */
    padding: 0.5em 1.2em; /* Padding inside the blockquote */
    color: #555; /* Slightly muted text color for quotes */
    font-style: italic; /* Italicize the quote text */
    line-height: 1.6;
}

blockquote p {
    margin-bottom: 0.5em; /* Reduce space between paragraphs within a blockquote */
}

blockquote p:last-child {
    margin-bottom: 0; /* No bottom margin for the last paragraph */
}

/* Lists */
ul, ol aporetic-serif-normalbolditalic.woff2   aporetic-serif-normalregularitalic.ttf
aporetic-serif-normalboldupright.woff2  aporetic-serif-normalregularupright.ttf
{
    padding-left: 1.5em; /* Indent lists slightly more */
    margin-bottom: 1em;
}

li {
    margin-bottom: 0.3em; /* Space out list items a bit */
}

code {
    font-family: 'Aporetic Sans Mono';
    font-size: 0.9em;
}

/* Horizontal Rule */
hr {
    height: 1px;
    border: none;
    background-color: #e0e0e0; /* Lighter HR */
    margin: 2em 0; /* More vertical space around HR */
}

/* Header */
.header {
    font-size: 0.95em; /* Slightly adjusted font size */
    display: flex;
    justify-content: center;
    padding: 0.8em 0; /* Added padding */
    margin-bottom: 2em; /* Space below header */
    border-bottom: 1px solid #eee; /* Subtle separator */
    text-transform: lowercase;
    flex-wrap: wrap;
}

.header div {
    margin: 0 0.75em; /* Adjusted margin between header links */
}

.header a, .header a:visited { /* Keep link color consistent, remove default visited style */
    color: #555; /* Slightly muted color for header links */
    font-weight: 500; /* Medium font weight */
}

.header a:hover, .header a:focus {
    color: #007bff; /* Highlight on hover */
    text-decoration: none; /* No underline for header links */
}


/* Footer */
.footer {
    font-size: 0.9em;
    display: flex;
    justify-content: space-around;
    padding: 1.5em 0;
    margin-top: 3em; /* More space above footer */
    border-top: 1px solid #eee; /* Subtle separator */
    color: #777;
}

.footer .item { /* Ensure items are spaced if you have multiple */
    margin: 0 1em;
    width: 100%;
}

.footer a, .footer a:visited {
    color: #555; /* Consistent with header link color */
}

.footer a:hover, .footer a:focus {
    color: #007bff;
    text-decoration: underline;
}

/* Images */
img {
    max-width: 100%; /* Make images responsive */
    height: auto;    /* Maintain aspect ratio */
    margin: 1.5em auto; /* Center images and add vertical margin */
    display: block; /* Ensure margin auto works for centering */
    border-radius: 6px; /* Slightly rounded corners for images */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08); /* Softer shadow */
}

/* Tables */
table {
    border-collapse: collapse;
    width: 100%;
    margin-bottom: 1.5em;
    font-size: 0.95em; /* Slightly smaller table text */
}

th, td {
    padding: 0.75em 1em; /* Adjust padding in table cells */
    text-align: left;
    border: 1px solid #e0e0e0; /* Lighter borders for table cells */
}

th {
    background-color: #f9f9f9; /* Light background for table headers */
    font-weight: 600; /* Bolder table headers */
    color: #333;
}
