:root {
    --color-primary:       #552b15;
    --color-primary-light: #7a4025;
    --color-bg-warm:       #eeddca;
    --color-bg-neutral:    #f0f0f0;
    --color-interactive:   #1565C0;
    --color-text:          #2a2a2a;
    --color-text-muted:    #666666;
    --color-white:         #ffffff;

    --space-sm:  8px;
    --space-md:  16px;
    --space-lg:  24px;
    --space-xl:  40px;
    --space-2xl: 64px;

    --font-ui:    'Montserrat', Tahoma, Verdana, sans-serif;
    --font-prose: 'Libre Baskerville', Georgia, serif;
}

body {
    font-family: var(--font-ui);
    font-weight: 400;
    font-size: 1rem;
    background-color: var(--color-bg-neutral);
    color: var(--color-text);
    line-height: 1.5;
}

h1, h2, h3 {
    font-family: var(--font-ui);
    color: var(--color-primary);
    line-height: 1.3;
}
h1 { font-size: 2rem;     font-weight: 700; }
h2 { font-size: 1.5rem;   font-weight: 600; }
h3 { font-size: 1.125rem; font-weight: 600; }

a {
    color: var(--color-interactive);
}
a:hover {
    color: var(--color-interactive);
    text-decoration: underline;
}

.container-navbar {
    display: flex;
    justify-content: space-between;
    background: var(--color-primary);
}

.logo p {
    color: var(--color-bg-warm);
    padding: 1em;
    margin: 0;
}

.navigation {
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-end;
    list-style: none;
    margin: 0;
}

.navigation a {
    text-decoration: none;
    display: block;
    padding: 1em;
    color: var(--color-white);
}

.navigation a:hover {
    background: var(--color-interactive);
}

.navigation a.active {
    background-color: var(--color-primary-light);
    border-bottom: 3px solid var(--color-white);
}

.hero-section {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    align-items: center;
    text-align: justify;
    gap: 10px;
    padding: 20px;
    background-color: var(--color-bg-warm);
}

img {
    margin: 50px;
    border-radius: 75px;
    box-shadow: 0 4px 8px rgba(55, 0, 0, 0.2);
}

.icon-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    justify-content: space-around;
    justify-items: center;
    gap: var(--space-xl);
    padding: 20px;
}

.attribute-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    justify-items: center;
    gap: var(--space-xl);
    padding: 20px;
}

.grid-item {
    text-align: justify;
}

.icon-square {
    width: 3rem;
    height: 3rem;
    fill: var(--color-primary);
}

footer {
    text-align: center;
    padding: var(--space-lg) var(--space-md);
    background-color: var(--color-primary);
    color: var(--color-white);
    font-size: 0.875rem;
    margin-top: var(--space-2xl);
}

/* --- h4 (resource card titles) --- */
h4 {
    font-family: var(--font-ui);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-primary);
    line-height: 1.3;
    margin: 0 0 var(--space-sm) 0;
}

/* --- Resource cards --- */
.resource-card {
    background-color: var(--color-white);
    border-left: 4px solid var(--color-primary);
    border-radius: 4px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    padding: var(--space-lg);
    margin-bottom: var(--space-lg);
}

.resource-meta {
    font-size: 0.875rem;
    color: var(--color-text-muted);
    margin: 0 0 var(--space-sm) 0;
}

.resource-description {
    font-family: var(--font-prose);
    font-size: 1rem;
    line-height: 1.7;
    margin: 0;
}

/* --- Content sections (inner pages) --- */
.content-section {
    margin-bottom: var(--space-2xl);
}

.content-section h3 {
    margin: var(--space-xl) 0 var(--space-md) 0;
    padding-bottom: var(--space-sm);
    border-bottom: 2px solid var(--color-bg-warm);
}

/* --- Coming Soon list --- */
.coming-soon-list {
    list-style: none;
    padding: 0;
    margin: var(--space-md) 0 0 0;
}

.coming-soon-list li {
    padding: var(--space-sm) 0;
    border-bottom: 1px solid var(--color-bg-neutral);
    font-size: 0.9375rem;
    line-height: 1.5;
}

.coming-soon-list li:last-child {
    border-bottom: none;
}

/* --- Inner page header --- */
.page-header {
    background-color: var(--color-bg-warm);
    padding: var(--space-xl) var(--space-lg);
    border-bottom: 3px solid var(--color-primary);
    text-align: center;
}

.page-header h1 {
    margin: 0;
}

/* --- Bio page content container --- */
.bio-content {
    max-width: 900px;
    margin: var(--space-2xl) auto;
    padding: 0 var(--space-lg);
}

.bio-content section {
    margin-bottom: var(--space-2xl);
}

/* --- Prose sections (Libre Baskerville body text) --- */
.prose {
    font-family: var(--font-prose);
    font-size: 1.0625rem;
    line-height: 1.7;
}

.prose ul {
    padding-left: var(--space-lg);
    margin: var(--space-md) 0;
}

.prose ul li {
    margin-bottom: var(--space-sm);
}

/* --- Skills grid --- */
.skills-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-xl);
    margin-top: var(--space-lg);
}

.skill-group h3 {
    margin-bottom: var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 2px solid var(--color-bg-warm);
}

.skill-group ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.skill-group ul li {
    padding: var(--space-sm) 0;
    border-bottom: 1px solid var(--color-bg-neutral);
    font-size: 0.9375rem;
    line-height: 1.5;
}

.skill-group ul li:last-child {
    border-bottom: none;
}

/* --- CTA block --- */
.cta-block {
    background-color: var(--color-bg-warm);
    border-left: 4px solid var(--color-primary);
    border-radius: 4px;
    padding: var(--space-lg) var(--space-xl);
    margin-top: var(--space-2xl);
    font-size: 1.0625rem;
    line-height: 1.7;
}

@media (max-width: 768px) {
    .hero-section  { grid-template-columns: 1fr; }
    .icon-row      { grid-template-columns: repeat(2, 1fr); }
    .attribute-row { grid-template-columns: 1fr; }
    img            { margin: var(--space-md) auto; display: block; }
    .skills-grid   { grid-template-columns: 1fr; }
    .bio-content   { margin: var(--space-xl) auto; padding: 0 var(--space-md); }
}
