/* Post-specific layout and typography tokens */
.post-page {
    --post-bg: var(--fga-bg-subtle);
    --post-column-width: 800px;
    --post-pad-x: clamp(1.5rem, 4vw, 2.5rem);
    --post-body-size: clamp(1.05rem, 0.97rem + 0.24vw, 1.2rem);
    --post-meta-size: 0.95rem;
    --post-copy-gap: 1.5rem;
    --post-section-gap: clamp(3.9rem, 5.8vw, 4.5rem);
    --post-heading-gap: 1.9rem;
}

body.post-page {
    background: var(--post-bg);
    padding: 0 var(--post-pad-x);
}

/* Site header */
.post-page .site-header {
    background: var(--fga-bg);
    border-bottom: 1px solid var(--fga-border);
    margin: 0 calc(var(--post-pad-x) * -1);
    padding: 1.65rem var(--post-pad-x);
}

.post-page .header-inner {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin: 0 auto;
    max-width: var(--post-column-width);
    width: 100%;
}

.post-page .social-nav {
    align-items: center;
    display: inline-flex;
    gap: 0.7rem;
}

.post-page .social-link {
    align-items: center;
    color: var(--fga-gray-medium);
    display: inline-flex;
    justify-content: center;
    padding: 0.15rem;
    text-decoration: none;
    transition: color 0.18s ease;
}

.post-page .social-link:hover {
    color: var(--fga-blue-dark);
}

.post-page .social-icon {
    fill: currentColor;
    height: 1.7rem;
    width: 1.7rem;
}

/* Logo */
.post-page .logo {
    color: var(--fga-gray-dark);
    display: inline-flex;
    font-family: var(--fga-font-display), sans-serif;
    font-size: 2rem;
    font-style: italic;
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
}

.post-page .logo-accent {
    color: var(--fga-blue-dark);
}

/* Post layout */
.post-page main {
    margin: 0 auto;
    max-width: var(--post-column-width);
    padding: clamp(5rem, 12vw, 7rem) 0 0;
}

/* Post header */
.post-page .post-header {
    display: grid;
    gap: 1rem;
    margin-bottom: clamp(3rem, 7vw, 4rem);
}

.post-page .post-header::after {
    background: linear-gradient(90deg, var(--fga-blue-dark), var(--fga-blue-medium));
    border-radius: 999px;
    content: "";
    height: 4px;
    margin-top: 0.25rem;
    width: 6.1rem;
}

.post-page .post-header h1 {
    color: var(--fga-gray-dark);
    font-family: var(--fga-font-display), sans-serif;
    font-size: clamp(2rem, 5vw, 3.1rem);
    font-style: italic;
    font-weight: 800;
    letter-spacing: -0.025em;
    line-height: 1.02;
    margin: 0;
}

.post-page .post-date {
    align-items: center;
    color: var(--fga-blue-dark);
    display: inline-flex;
    font-size: var(--post-meta-size);
    font-weight: 800;
    letter-spacing: 0.03em;
    line-height: 1.5;
    text-transform: uppercase;
}

/* Post body */
.post-page :where(article, .post-section) > p {
    color: var(--fga-gray-medium);
    font-size: var(--post-body-size);
    letter-spacing: 0.01em;
    line-height: 1.75;
    margin: 0 0 var(--post-copy-gap);
    max-width: 68ch;
}

.post-page :where(article, .post-section) > p :is(strong, a) {
    color: var(--fga-blue-dark);
}

/* Sections */
.post-page .post-section {
    margin-top: var(--post-section-gap);
}

.post-page .post-section > h2 {
    color: var(--fga-gray-dark);
    font-family: var(--fga-font-display), sans-serif;
    font-size: clamp(1.28rem, 1.18rem + 0.28vw, 1.42rem);
    font-style: italic;
    font-weight: 800;
    letter-spacing: -0.015em;
    line-height: 1.12;
    margin: 0 0 var(--post-heading-gap);
    position: relative;
}

.post-page .post-section > h2::before {
    background: var(--fga-blue-light);
    border-radius: 999px;
    content: "";
    height: 0.98em;
    left: -0.9rem;
    position: absolute;
    top: 50%;
    transform: translateY(-48%);
    width: 4px;
}

/* Post thanks */
.post-page .post-thanks {
    margin-top: 4.25rem;
}

.post-page .post-thanks p {
    color: var(--fga-gray-medium);
    font-style: italic;
    line-height: 1.55;
    margin: 0;
    text-align: right;
}

.post-page .post-thanks p strong {
    color: inherit;
    font-weight: 600;
}

/* Site footer */
.post-page .site-footer {
    margin: 3rem calc(var(--post-pad-x) * -1) 0;
    padding: 1.75rem var(--post-pad-x) 2.25rem;
}

.post-page .footer-inner {
    max-width: var(--post-column-width);
}

@media (max-width: 760px) {
    .post-page .logo {
        font-size: 1.6rem;
    }
}
