/* Visually grouped text block — used to separate thematically distinct
   paragraphs in the intro area. */
.text-block {
    background: rgba(128, 128, 128, 0.08);
    border: 1px solid rgba(128, 128, 128, 0.2);
    border-radius: 0.5rem;             /* 8px — matches .button radius */
    padding: 1rem 1.25rem;
    margin-bottom: var(--spacing-l);   /* 2rem — matches .container p rhythm */
}

/* Drop the trailing paragraph margin so the card padding stays even. */
.text-block p:last-child {
    margin-bottom: 0;
}

/* CV-specific styling
–––––––––––––––––––––––––––––––––––––––––––––––––– */

/* Sub-line under the header (location, relocation note) and under each
   role/project h3 (location · dates). Theme-agnostic via opacity. */
.meta {
    opacity: 0.7;
    font-size: var(--scale-0);
    margin: -0.25rem 0 var(--spacing-s) 0;
}

/* Experience bullets: re-enable disc markers because reset.css and the
   global ul rule in style.css both zero list-style for the privacy page. */
.experience ul {
    list-style: disc;
    padding-left: 1.25rem;
    margin-bottom: var(--spacing-l);
}
.experience ul li {
    margin-bottom: var(--spacing-xs);
}

/* Each project: heading on its own line, short blurb below. */
.project {
    margin-bottom: var(--spacing-m);
}
.project p {
    margin: 0;
}

/* Filter-chip / tag pill list used for Core technologies. Theme-agnostic
   via neutral rgba — same trick the .text-block uses. */
.tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-m) 0;
}
.tags li {
    font-size: 0.875rem;
    line-height: 1.2;
    padding: 0.35rem 0.7rem;
    border: 1px solid rgba(128, 128, 128, 0.25);
    border-radius: 999px;
    background: rgba(128, 128, 128, 0.1);
}

/* Visible placeholder for content the user still needs to provide. */
.tbd {
    opacity: 0.55;
    font-style: italic;
}