/* ==========================================================================
   Blog post, closing, the lists (Recent News, Recent Closings, category, tag, author, search) and 404.
   Values measured from the Elementor site (theme-redo/audit/measure-el, templates #3211 #3232 #989 #987 #3358).
   The table of contents, FAQs, call to action and per-post disclaimer bring their own CSS from the
   nelson-blog-render plugin (printed after this file); rules here are written so that cascade stays as it was.
   ========================================================================== */

.site-main--dark { background: var(--c-charcoal); }

/* ---------- Blog post: white card and author box on charcoal ---------- */
.post-single { padding: 75px 0 35px; }
.post-single__layout { display: grid; grid-template-columns: minmax(0, 68.929fr) minmax(0, 29.5fr); gap: 20px; align-items: start; }
.post-card { display: flex; flex-direction: column; gap: 20px; min-width: 0; padding: 20px; background: var(--c-white); border-radius: 8px; font-weight: 600; color: var(--c-heading); }
.post-card > * { min-width: 0; }
.post-card__title { margin: 0; font-family: var(--f-body); font-size: 39px; line-height: 1; font-weight: 600; color: var(--c-heading); overflow-wrap: break-word; }

.post-card__crumbs { padding: 10px 0; border-block: 1px solid var(--c-charcoal); }
.post-card .breadcrumb { font-size: 16px; line-height: 28px; font-weight: 600; color: var(--c-text); }
.post-card .breadcrumb a { font-family: var(--f-head); font-size: 18px; line-height: 1; font-weight: 400; color: var(--c-heading); text-decoration: none; }
.post-card .breadcrumb a:hover { text-decoration: underline; }

.post-card__bar { display: flex; align-items: stretch; }
.post-meta { flex: 1 1 50%; display: flex; min-height: 40px; flex-wrap: wrap; align-items: center; gap: 0 16px; margin: 0; padding: 0; list-style: none; font-family: var(--f-head); font-size: 16px; line-height: 24px; font-weight: 400; color: var(--c-heading); }
.post-meta li, .post-meta a { display: flex; align-items: center; gap: 5px; }
.post-meta a { color: inherit; text-decoration: none; }
.post-meta a:hover { text-decoration: underline; }
.post-meta__avatar { display: block; flex: 0 0 35px; height: 35px; }
.post-meta__avatar picture { display: contents; }
.post-meta__avatar img { width: 35px; height: 35px; object-fit: cover; }
.post-meta i { width: 14px; font-size: 14px; text-align: center; color: var(--c-green); }

.share { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.post-card__bar .share { flex: 1 1 50%; justify-content: flex-end; padding: 10px; }
.share__label { margin: 0 0 14px; font-size: 16px; line-height: 14px; font-weight: 900; color: var(--c-text); }
.share__list { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.share__btn { display: grid; place-items: center; width: 45px; height: 45px; padding: 0; border: 0; color: var(--c-white); font-size: 17px; text-decoration: none; transition: filter .3s; }
.share__btn:hover, .share__btn:focus-visible { filter: brightness(.88); }
.share__btn[hidden] { display: none; }
.share__btn--facebook { background: #3B5998; }
.share__btn--twitter { background: #1A8CD8; }   /* official #1DA1F2 leaves the white icon under 3:1 */
.share__btn--linkedin { background: #0077B5; }
.share__btn--email { background: #EA4335; }
.share__btn--print { background: #767676; }     /* was #AAA: white icon at 2.3:1 */
.post-card__share-end { padding: 20px; }

.post-card__image { text-align: center; }
.post-card__image picture { display: contents; }
.post-card__image img { display: inline-block; max-width: 100%; height: auto; }

/* Headings and text inside the card. Sizes carry the weight the Elementor kit rules had (one class + one element),
   so the render plugin's own rules still win or lose exactly where they did. Margins are zero-specificity. */
.post-card h2 { font-size: 32px; line-height: 1.2; font-weight: 500; color: var(--c-heading); }
.post-card h3 { font-size: 28px; line-height: 1.2; font-weight: 700; color: var(--c-heading); }
.post-card h4, .post-card h5, .post-card h6 { color: var(--c-heading); }
:where(.post-card) :is(h2, h3, h4, h5, h6) { margin: 8px 0 16px; }
:where(.post-card) p { margin: 0 0 14.4px; }
:where(.post-card) :is(ul, ol) { margin: 0 0 15px; padding-left: 40px; }
:where(.post-card) ol { margin-bottom: 0; }
:where(.post-card) blockquote { margin: 16px 40px; }
.post-card strong, .post-card b { font-weight: 900; }
.post-card__content { overflow-wrap: break-word; }
.post-card__content::after { content: ""; display: block; clear: both; }
.post-card__content a, .post-card__cta a { font-family: var(--f-head); font-size: 18px; font-weight: 400; color: #666; text-decoration: none; }
.post-card__content a:hover, .post-card__cta a:hover { text-decoration: underline; }
.post-card__content img { height: auto; }
.post-card__content :is(iframe, video, table) { max-width: 100%; }
.post-card__content .alignleft { float: left; margin: 0 20px 14px 0; }
.post-card__content .alignright { float: right; margin: 0 0 14px 20px; }
.post-card__content .aligncenter { display: block; margin-inline: auto; }
.post-card__content .wp-caption { max-width: 100%; }
.post-card__content figure { max-width: 100%; margin: 0 0 15px; }
/* Tables in post and closing content, as the old theme drew them. */
:is(.post-card__content, .closing-single__content) table { margin: 0 0 15px; font-size: .9em; }
:is(.post-card__content, .closing-single__content) :is(td, th) { padding: 15px; border: 1px solid rgba(128, 128, 128, .5); line-height: 1.5; vertical-align: top; text-align: left; }
:is(.post-card__content, .closing-single__content) tbody > tr:nth-child(odd) > :is(td, th) { background: rgba(128, 128, 128, .07); }
@media (max-width: 767px) {
  :is(.post-card__content, .closing-single__content) :is(td, th) { padding: 7px; line-height: 1.3; }
}
.post-card__content :is(td, th) { overflow-wrap: anywhere; }   /* lets a four-column table fit a phone instead of pushing the page sideways */
/* The render plugin's wrappers add their own top margin; the first block in each slot starts flush as before. */
.post-card__toc .nf-intro-text { color: var(--c-text); }

.post-card__apply { display: flex; flex-direction: column; align-items: center; padding: 10px; }
.post-card__email { margin: 0 0 14px; font-size: 11px; line-height: 16.5px; font-style: italic; color: var(--c-heading); }
.post-card__email a { font-family: var(--f-head); font-weight: 400; color: inherit; }

.post-card__compliance { padding: 10px; background: #EEE; border-radius: 8px; color: var(--c-text); }
.post-card__compliance p { font-style: italic; }
.post-card .post-card__compliance-heading { font-size: 28px; line-height: 1.2; font-weight: 700; }

.post-single__side { height: 100%; }
.author-box { position: sticky; top: calc(var(--header-h) + 20px); padding: 20px; background: var(--c-white); border-radius: 8px; text-align: center; }
.author-box__avatar { display: inline-block; margin-bottom: 15px; }
.author-box__avatar picture { display: contents; }
.author-box__avatar img { width: 200px; height: 200px; border-radius: 50%; object-fit: cover; }
.author-box__name { margin: 8px 0 5px; font-size: 32px; line-height: 1.2; font-weight: 700; color: var(--c-heading); }
.author-box__bio { margin: 0 0 14px; font-size: 17px; line-height: 35px; font-weight: 600; color: var(--c-heading); }

@media (max-width: 1024px) {
  .post-single__layout { grid-template-columns: minmax(0, 1fr); }
  .author-box { position: static; }
}
@media (max-width: 767px) {
  .post-single { padding: 35px 0; }
  .post-single .container { padding-inline: 16px; }
  .post-card__bar { flex-direction: column; }
  .post-card__bar .share { justify-content: center; }
  .post-card__bar .share__label { flex: 0 0 100%; text-align: center; }
  .post-card__share-end .share__label { flex: 0 0 100%; }
  .post-card__share-end { padding: 10px 20px; }
  :where(.post-card) blockquote { margin-inline: 20px; }
}

/* ---------- Closing: white on charcoal ---------- */
.closing-single { padding: 45px 0 10px; color: var(--c-white); }
.closing-single__inner { display: flex; flex-direction: column; gap: 20px; }
.closing-single__inner > * { min-width: 0; }
.closing-single__title { margin: 0; font-size: 42px; line-height: 40px; font-weight: 500; color: var(--c-white); overflow-wrap: break-word; }
.closing-single__updated { margin: 0; font-weight: 600; }
.closing-single__content { font-weight: 600; overflow-wrap: break-word; }
.closing-single__content::after { content: ""; display: block; clear: both; }
.closing-single__content :is(h1, h2, h3, h4, h5, h6) { margin: 8px 0 16px; color: var(--c-white); }
.closing-single__content :is(h1, h2, h3, h4, h5) { line-height: 40px; }
.closing-single__content h2 { font-size: 32px; font-weight: 500; }
.closing-single__content h3 { font-size: 28px; font-weight: 700; }
.closing-single__content p { margin: 0 0 14.4px; }
.closing-single__content :is(ul, ol) { margin: 0; padding-left: 40px; }
.closing-single__content blockquote { margin: 16px 40px; }
.closing-single__content strong, .closing-single__content b { font-weight: 900; }
.closing-single__content hr { height: 0; margin: 0; border: 0; border-top: 2px solid var(--c-white); }
.closing-single__content a { color: var(--c-white); }
.closing-single__content img { height: auto; }
.closing-single__content .alignleft { float: left; margin: 0 20px 14px 0; }
.closing-single__content .alignright { float: right; margin: 0 0 14px 20px; }
.closing-single__content .aligncenter { display: block; margin-inline: auto; }
.closing-single__content .wp-caption { max-width: 100%; }
@media (max-width: 767px) {
  .closing-single .container { padding-inline: 10px; }
  .closing-single__content blockquote { margin-inline: 20px; }
}

/* ---------- Lists: intro ---------- */
.archive-intro { padding: 10px 0; color: var(--c-white); }
.archive-intro__inner { display: flex; flex-direction: column; gap: 20px; padding: 10px; }
.archive-intro--flush .archive-intro__inner { padding: 0; }
.archive-intro__title { margin: 0; font-size: 45px; line-height: 105px; font-weight: 500; letter-spacing: -.28px; text-transform: uppercase; color: var(--c-white); overflow-wrap: break-word; }
.archive-intro__subheading { margin: 0 0 14px; font-size: 25px; line-height: 25px; letter-spacing: 1px; }
.archive-intro__text { font-size: 18px; line-height: 30px; }
.archive-intro__text p { margin: 0 0 14.4px; }
.archive-intro__search { display: flex; justify-content: flex-end; padding: 20px; }

.search-form { display: flex; width: 383px; max-width: 100%; min-height: 50px; background: #F1F2F3; border-radius: 3px; overflow: hidden; }
.search-form__input { flex: 1 1 auto; min-width: 0; padding: 0 16.67px; border: 0; background: transparent; font-family: var(--f-body); font-size: 15px; color: #3F444B; }
.search-form__input::placeholder { color: #5F656D; opacity: 1; }
.search-form__input:focus-visible { outline-offset: -3px; }
.search-form__submit { flex: 0 0 50px; display: grid; place-items: center; border: 0; background: #69727D; color: var(--c-white); font-size: 16px; transition: background-color .3s; }
.search-form__submit:hover, .search-form__submit:focus-visible { background: #545B64; }
.search-form__submit:focus-visible { outline-offset: -3px; }

/* ---------- Lists: card grid and pagination ---------- */
.archive-list { padding: 75px 0; background: var(--c-panel-2); }
.archive-list__none { margin: 0; font-size: 18px; line-height: 30px; color: var(--c-text); }
.pagination { margin-top: 28px; }
.pagination .page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 10px; margin: 0; padding: 0; list-style: none; }
.pagination .page-numbers li { display: block; }
.pagination .page-numbers li > * { display: block; min-width: 24px; padding: 0 4px; text-align: center; line-height: 28px; color: #1B1B1B; }
.pagination a.page-numbers { font-family: var(--f-head); font-size: 18px; font-weight: 400; text-decoration: none; }
.pagination a.page-numbers:hover { color: var(--c-green); text-decoration: underline; }
.pagination span.current { font-size: 16px; font-weight: 600; }
.post-type-archive-recent-closings .pagination { margin-top: 30px; }
.post-type-archive-recent-closings .pagination span.current { color: var(--c-green); }

@media (max-width: 1024px) {
  .archive-intro__title { font-size: 59px; line-height: 60px; }
  .archive-intro__subheading { font-size: 15px; line-height: 17px; }
  .archive-list { padding: 35px 0; }
  .archive-list .container { padding-inline: 16px; }
}
@media (max-width: 767px) {
  .archive-intro .container { padding-inline: 10px; }
  .archive-intro__title { font-size: 36px; line-height: 40px; }
  .archive-intro__subheading { font-size: 16px; line-height: 20px; }
  .archive-intro__search { padding: 60px 20px 20px; }
  .archive-intro__search .search-form { width: 100%; }
}

/* ---------- 404 ---------- */
.error-404 { position: relative; display: flex; align-items: center; min-height: 90vh; padding: 10px 0; background: var(--c-charcoal); overflow: hidden; isolation: isolate; }
.error-404__media { position: absolute; inset: 0; z-index: -1; }
.error-404__media picture { display: contents; }
.error-404__media img, .error-404__video { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.error-404__card { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 75%; margin-inline: auto; padding: 75px 150px; background: rgba(255, 255, 255, .8); border-radius: 10px; text-align: center; }
.error-404__code { margin: 0; font-size: 150px; line-height: 1; font-weight: 500; color: var(--c-navy); }
.error-404__heading, .error-404__text { margin: 0; font-family: var(--f-head); font-weight: 700; color: var(--c-heading); }
.error-404__heading { font-size: 32px; line-height: 1; }
.error-404__text { font-size: 28px; line-height: 1; }
.error-404__toggle {
  position: absolute; right: 24px; bottom: 24px; z-index: 3; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(255, 255, 255, .6); border-radius: 50%;
  background: rgba(46, 46, 46, .7); color: var(--c-white); font-size: 15px; transition: background-color .3s;
}
.error-404__toggle:hover { background: var(--c-charcoal); }
.error-404__toggle[hidden] { display: none; }
@media (max-width: 1024px) {
  .error-404__card { padding-inline: 60px; }
}
@media (max-width: 767px) {
  .error-404 .container { padding-inline: 20px; }
  .error-404__card { width: 100%; padding: 10px; }
  .error-404__video, .error-404__toggle { display: none; }
}

@media print {
  .site-header, .site-footer, .drawer, .share, .post-single__side, .post-card__apply, .assess { display: none !important; }
  .post-single { padding: 0; }
  .site-main--dark { background: none; }
}
