@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

html,
body,
address,
blockquote,
div,
form,
fieldset,
caption,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
ul,
li,
ol,
ul,
table,
tr,
td,
th,
p,
img {
    margin: 0;
    padding: 0;
}

img,
fieldset {
    border: none;
}
@media (max-width: 480px) {
    * {
        -webkit-text-size-adjust: none;
        -ms-text-size-adjust: none;
    }
}
html,
body {
    width: 100%;
    height: 100%;
}

header {
    overflow: hidden; /* wrap floats and margins */
    zoom: 1; /* trip haslayout, wrap floats and margins legacy IE */
    max-width: 64em;
    margin: 0 auto;
}

* html .widthWrapper {
    /*
		legacy IE can't do min/max-width, so shove a fixed width at them.
		OH WELL, they should be thankful we bother even thinking about the folks
		still using it!
	*/
    width: 48em;
}

a:link,
a:visited,
a:hover,
a:active {
    color: inherit;
    text-decoration: none !important;
}

body {
    font-size: 1.894rem;
    font-family: 'Roboto', sans-serif;
    max-width: 1920px;
    margin: 0 auto;
    text-size-adjust: none;
}

header {
    font-size: 1.894rem;
    min-width: 100%;
    background-color: black;
}

.header {
    margin: 0 auto;
    padding: 4em 8em 4em 8em;
}

main {
    font-size: 1.894rem;
    padding: 2em 8em 2em 8em;
}

.blog-post-title {
    font-weight: 700;
    font-size: 2.841rem;
    line-height: 2.841rem;
    text-box: trim-both ex alphabetic;
    color: white;
}

.blog-post-subtitle {
    font-weight: 500;
    font-size: 1.894rem;
    line-height: 1.894rem;
    text-box: trim-both ex alphabetic;
    color: white;
}

.blog-post {
    width: 100%;
}

.text-box {
    font-size: 1.894rem;
    margin: 0 auto;
}

.text-title {
    font-size: 2.841rem;
    line-height: 2.841rem;
    text-box: trim-both ex alphabetic;
    width: 50%;
}

.blog-text {
    font-size: 1.894rem;
    line-height: 2.841rem;
    text-box: trim-both ex alphabetic;
    max-width: 65ch;
    overflow-wrap: break-word;
}

.text-list {
    font-weight: 500;
    font-size: 1.894rem;
    line-height: 2.841rem;
    text-box: trim-both ex alphabetic;
}

.quote {
    width: 100%;
    background-color: black;
}

.quote-box {
    font-size: 1.894rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    max-width: 62em;
    width: 80%; 
    color: white;
    padding-top: 2em;
    padding-bottom: 0.5em;
}

.qtm1 {
    font-size: 4.261rem;
    line-height: 4.261rem;
    text-box: trim-both ex alphabetic;
    text-align: center;
    color: white;
    opacity: 50%;
}

.qtm2 {
    font-size: 4.261rem;
    line-height: 4.261rem;
    text-box: trim-both ex alphabetic;
    color: white;
    opacity: 75%;
}

.qtm2-2 {
    font-size: 4.261rem;
    line-height: 4.261rem;
    text-box: trim-both ex alphabetic;
    color: white;
    opacity: 75%;
}

.quote-text {
    font-size: 1.894rem;
    line-height: 1.894rem;
    text-box: trim-both ex alphabetic;
    margin-bottom: 1.5em;
}

.quote-text2 {
    font-size: 1.894rem;
    line-height: 1.894rem;
    text-box: trim-both ex alphabetic;
    margin-bottom: 1.5em;
}

.image {
    margin: 0 auto;
}

.image img {
    display: block;
    max-width: 75%;
    padding: 4em 0 0 0;
}

.email {
    font-size: 1.894rem;
    font-weight: 700;
    line-height: 1.894rem;
}

.contact-link {
    font-size: 1.894rem;
    line-height: 1.894rem;
    font-weight: 700;
    text-box: trim-both ex alphabetic;
}

.contact-link:hover {
    opacity: 50%;
}

footer {
    font-size: 1.894rem;
    width: 100%;
    background-color: black;
}

.footer {
    padding: 2em 8em 2em 8em;
}

.footer span {
    font-weight: 700;
    font-size: 2.841rem;
    line-height: 2.841rem;
    text-box: trim-both cap alphabetic;
    color: white;
    line-height: 100%;
}

@media (max-width: 62em) {

    .header {
        padding: 2em 1em 2em 1em;
    }

    main {
        padding: 2em 1em 2em 1em;
    }

    .link-box {
        padding: 2em 1em 2em 1em;
        width: 100%;
    }

    .footer {
        padding: 2em 1em 2em 1em;
    }
}

@media (max-width: 32em) {
    .email {
        font-size: 75%;
    }
}

/* ════════════════════════════════════════════════════════════════
   CMS additions below — same visual language as the design above
   (Roboto, black & white, solid borders, no shadows/rounding)
   ════════════════════════════════════════════════════════════════ */

.header-home-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.spacer-sm {
    height: 1em;
    width: 100%;
}

.spacer-md {
    height: 2em;
    width: 100%;
}

.article-meta {
    font-size: 1.263rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5em;
    color: white;
    opacity: 0.75;
}

.meta-sep {
    opacity: 0.5;
}

.cat-pill {
    display: inline-block;
    font-size: 1.263rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.2em 0.75em;
    background-color: black;
    color: white;
}

.cat-pill--light {
    background-color: rgba(255, 255, 255, 0.15);
    color: white;
    border: 2px solid rgba(255, 255, 255, 0.4);
}

/* ── Header w/ optional hero image ──────────────────────────────── */

.hero-img-wrap {
    position: relative;
    width: 100%;
    max-height: 28em;
    overflow: hidden;
}

.hero-img {
    width: 100%;
    max-height: 28em;
    object-fit: cover;
    display: block;
    opacity: 0.55;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 40%, black 100%);
}

.header-content {
    display: flex;
    flex-direction: column;
    gap: 0.6em;
    padding: 4em 8em 4em 8em;
}

.hero-img-wrap + .header-content {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding-top: 0;
}

/* ── Subtitle heading inside a section ──────────────────────────── */

.text-subtitle {
    font-weight: 700;
    font-size: 2.13rem;
    line-height: 130%;
}

/* ── Quote attribution ───────────────────────────────────────────── */

.quote-attr {
    font-size: 1.263rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: rgba(255, 255, 255, 0.6);
    margin-top: 0.5em;
}

/* ── Image caption / credit ──────────────────────────────────────── */

.image-caption {
    font-size: 1.263rem;
    opacity: 0.65;
    padding: 0.75em 0 0 0;
    max-width: 75%;
    margin: 0 auto;
}

.image-credit {
    text-decoration: underline !important;
}

/* ── Inline article links ────────────────────────────────────────── */

.article-link {
    font-weight: 700;
    text-decoration: underline !important;
}

.article-link:hover {
    opacity: 50%;
}

.article-link.ext i {
    font-size: 0.85em;
    vertical-align: middle;
}

/* ── Read more callout ───────────────────────────────────────────── */

.read-more-box {
    max-width: 62em;
    margin: 2em auto;
    padding: 1.5em 2em;
    border-style: solid;
    border-width: 4px;
    border-color: black;
    display: flex;
    flex-direction: column;
    gap: 0.5em;
}

.read-more-label {
    font-size: 1.263rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    opacity: 0.6;
}

.read-more-link {
    font-size: 1.894rem;
    font-weight: 700;
    text-decoration: underline !important;
}

.read-more-link:hover {
    opacity: 50%;
}

/* ── Divider ──────────────────────────────────────────────────────── */

.article-divider {
    max-width: 62em;
    margin: 3em auto;
    border-top-style: solid;
    border-top-width: 4px;
    border-top-color: black;
}

/* ── FAQ ──────────────────────────────────────────────────────────── */

.faq-section {
    max-width: 62em;
    margin: 0 auto;
}

.faq-item {
    border-top-style: solid;
    border-top-width: 2px;
    border-top-color: rgba(0, 0, 0, 0.2);
    padding: 1em 0;
}

.faq-question {
    font-size: 1.894rem;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1em;
}

.faq-question::-webkit-details-marker {
    display: none;
}

.faq-question::after {
    content: '+';
    font-size: 2rem;
    font-weight: 400;
    flex-shrink: 0;
}

details[open] .faq-question::after {
    content: '–';
}

.faq-answer {
    padding-top: 0.75em;
}

/* ── Related links ────────────────────────────────────────────────── */

.related-section {
    max-width: 62em;
    margin: 0 auto;
}

.related-link {
    display: flex;
    align-items: center;
    gap: 0.75em;
    padding: 1em 0;
    border-top-style: solid;
    border-top-width: 2px;
    border-top-color: rgba(0, 0, 0, 0.2);
    font-weight: 700;
    font-size: 1.894rem;
}

.related-link:hover {
    opacity: 50%;
}

.related-link i {
    margin-left: auto;
    font-size: 1.4em;
    opacity: 0.5;
}

/* ── Tags ──────────────────────────────────────────────────────────── */

.article-tags {
    max-width: 62em;
    margin: 2em auto 0 auto;
    padding-top: 2em;
    border-top-style: solid;
    border-top-width: 4px;
    border-top-color: black;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6em;
}

/* ── About section ─────────────────────────────────────────────────── */

.about-sres {
    max-width: 62em;
    margin: 0 auto;
}

@media (max-width: 62em) {
    .header-content {
        padding: 2em 1em 2em 1em;
    }

    .text-subtitle {
        font-size: 1.7rem;
    }
}