/* Webserv SLR layouts: the Elementor templates that replaced the old theme's own layouts (older pages,
   staff profiles, blog and archives, search, 404). Colours and type follow the SLR design system.
   Hand-written; safe to edit. The templates are in Templates > Theme Builder, named "SLR :: ...". */

/* ---- Title band ------------------------------------------------------------------------------------
   Carries the header's hero class (slr-hero) so the floating menu sits over it like on every other page;
   the dark hero styles only apply inside .slr-hub sections, so this band stays light. */
.slr-title-band { background: #f5f8fb; padding-bottom: 38px !important; }
.slr-title-band > .elementor-container { max-width: 1140px; }
.slr-title-band > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 15px; }
.slr-title-band .slr-crumb { font-size: 12.5px; letter-spacing: .02em; color: #69707e; margin: 0 0 12px; }
.slr-title-band .slr-crumb a { color: #1b4f96 !important; text-decoration: none; border-bottom: 1px solid rgba(27,79,150,.3); }
.slr-title-band .slr-crumb a:hover { color: #163f78 !important; border-bottom-color: #163f78; }
.slr-title-band .slr-crumb span { opacity: .6; padding: 0 7px; }
.slr-title-band .slr-crumb em { font-style: normal; color: #444; }
.slr-title-band .elementor-heading-title { font-family: Nunito, "Nunito Fallback", sans-serif; font-weight: 700; font-size: 46px; line-height: 1.15; color: #464646 !important; margin: 0; }
.slr-title-band .slr-title-band-lede { color: #69707e; font-size: 17px; line-height: 1.6; margin: 12px 0 0; max-width: 62ch; }
@media (max-width: 767px) { .slr-title-band .elementor-heading-title { font-size: 32px; } .slr-title-band { padding-bottom: 28px !important; } }

/* ---- Page body: content, and the contact card beside it ------------------------------------------- */
.slr-page-main { padding: 46px 0 70px !important; }
.slr-page-main > .elementor-container { max-width: 1140px; }
.slr-page-main > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 15px; }
.slr-page-side > .elementor-widget-wrap { position: sticky; top: 124px; align-self: flex-start; }
@media (max-width: 1024px) { .slr-page-side > .elementor-widget-wrap { position: static; margin-top: 34px; } }

.slr-side-card { background: #fff; border: 1px solid #e3e8ef; border-radius: 14px; padding: 22px 22px 20px; box-shadow: 0 10px 28px rgba(31,45,61,.07); color: #444; font-size: 15px; line-height: 1.55; }
.slr-side-card .slr-side-title { font-family: Nunito, "Nunito Fallback", sans-serif; font-weight: 700; font-size: 20px; line-height: 1.25; color: #2b74b9; margin: 0 0 6px; }
.slr-side-card .slr-side-lede { color: #69707e; font-size: 14px; margin: 0 0 16px; }
.slr-side-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; box-sizing: border-box; padding: 12px 16px; border-radius: 999px; font-weight: 700; font-size: 15px; line-height: 1.2; text-decoration: none !important; margin: 0 0 10px; transition: background .16s ease, transform .16s ease; }
.slr-side-btn svg { width: 16px; height: 16px; flex: none; }
.slr-side-btn--call { background: #d9681e; color: #fff !important; }
.slr-side-btn--call:hover { background: #c25a17; transform: translateY(-1px); }
.slr-side-btn--verify { background: #1b4f96; color: #fff !important; }
.slr-side-btn--verify:hover { background: #163f78; transform: translateY(-1px); }
.slr-side-card dl { margin: 8px 0 0; }
.slr-side-card dt { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #69707e; margin: 14px 0 3px; }
.slr-side-card dd { margin: 0; }
.slr-side-card dd a { color: #1b4f96; }

/* ---- Staff profiles --------------------------------------------------------------------------------- */
.slr-staff-main > .elementor-container { max-width: 1140px; }
.slr-staff-main > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0; }   /* the profile content runs the full 1140px, as it did */

/* ---- Blog, categories, tags and search results ------------------------------------------------------ */
.slr-archive-main { padding: 46px 0 72px !important; }
.slr-archive-main > .elementor-container { max-width: 1140px; }
.slr-archive-main > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 15px; }
.slr-archive-main .elementor-post__card { border-radius: 14px !important; border: 1px solid #e3e8ef; box-shadow: 0 8px 22px rgba(31,45,61,.06) !important; overflow: hidden; }
.slr-archive-main .elementor-post__title, .slr-archive-main .elementor-post__title a { font-family: Nunito, "Nunito Fallback", sans-serif; font-weight: 700; font-size: 20px; line-height: 1.3; color: #2b74b9 !important; }
.slr-archive-main .elementor-post__excerpt p { color: #444; font-size: 15px; line-height: 1.6; }
.slr-archive-main .elementor-post__read-more { color: #1b4f96 !important; font-weight: 700; font-size: 14px; text-transform: none; }   /* blue: orange text on white is 3.5:1 */
.slr-archive-main .elementor-post__meta-data { color: #69707e; font-size: 13px; }
.slr-archive-main .elementor-pagination { margin-top: 40px; text-align: center; font-weight: 600; }
.slr-archive-main .elementor-pagination .page-numbers { display: inline-block; min-width: 38px; padding: 8px 10px; margin: 0 3px; border-radius: 999px; color: #1b4f96; }
.slr-archive-main .elementor-pagination .page-numbers.current { background: #1b4f96; color: #fff; }
.slr-archive-main .elementor-posts-nothing-found { font-size: 17px; color: #444; }

/* ---- Page not found ----------------------------------------------------------------------------------- */
/* ---- Page not found (redesigned 2026-09-28): brand hero, suggestions, popular pages, search, crisis line ---- */
.slr-404-hero { position: relative; overflow: hidden; background: linear-gradient(140deg, #123a6e 0%, #1b4f96 55%, #2c6cc0 100%) !important; padding-bottom: 64px !important; }
.slr-404-hero::after { content: "404"; position: absolute; right: max(20px, 6vw); bottom: -0.16em; pointer-events: none;
  font: 800 clamp(130px, 21vw, 300px)/1 Nunito, "Nunito Fallback", sans-serif; letter-spacing: -.02em; color: rgba(255, 255, 255, .07); }
.slr-404-hero > .elementor-container { position: relative; z-index: 1; max-width: 1000px; }
.slr-404-hero .elementor-widget-wrap { padding: 0 20px; }
.slr-404-hero .elementor-heading-title { color: #fff !important; font-family: Nunito, "Nunito Fallback", sans-serif; font-weight: 800;
  font-size: clamp(34px, 4.6vw, 52px); line-height: 1.1; margin: 0 0 14px; text-wrap: balance; }
.slr-404-lede { color: rgba(255, 255, 255, .88); font-size: 18px; line-height: 1.6; max-width: 620px; margin: 0 0 26px; }
.slr-404-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 14px; }
.slr-404-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 24px; border-radius: 999px; font-weight: 700; font-size: 16px;
  line-height: 1.2; text-decoration: none !important; transition: background .15s ease; }
.slr-404-btn svg { width: 18px; height: 18px; flex: none; }
.slr-404-btn--call { background: #d9681e; color: #fff !important; }
.slr-404-btn--call:hover { background: #c25a17; }
.slr-404-btn--verify { background: #fff; color: #1b4f96 !important; }
.slr-404-btn--verify:hover { background: #eef4fb; }
.slr-404-btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.slr-404-note { color: rgba(255, 255, 255, .8); font-size: 14px; margin: 0; }
.slr-404-guess { margin: 0 0 36px; padding: 22px 24px; border-radius: 16px; background: #f5f8fb; border: 1px solid #e3e8ef; }
.slr-404-guess h2 { font-size: 20px !important; margin: 0 0 12px; }
.slr-404-guess ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.slr-404-guess a { font-weight: 700; color: #1b4f96; }
.slr-404-kind { margin-left: 10px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #5f6770; }
.slr-404-h2 .elementor-heading-title { font-size: 22px !important; margin: 0 0 14px !important; }
.slr-404-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 38px; }
.slr-404-cards a { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border: 1px solid #e3e8ef; border-radius: 14px; background: #fff;
  text-decoration: none !important; transition: border-color .15s ease, box-shadow .15s ease; }
.slr-404-cards a:hover { border-color: #1b4f96; box-shadow: 0 10px 24px -18px rgba(15, 42, 74, .5); }
.slr-404-card-t { font-weight: 700; color: #1b4f96; }
.slr-404-card-d { font-size: 14px; line-height: 1.45; color: #5f6770; }
.slr-404-crisis { margin: 28px 0 0; font-size: 14px; color: #5f6770; }
@media (max-width: 860px) { .slr-404-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .slr-404-cards { grid-template-columns: 1fr; } .slr-404-btn { width: 100%; justify-content: center; } }
@media (prefers-reduced-motion: reduce) { .slr-404-btn, .slr-404-cards a { transition: none; } }
.slr-404-main { padding: 46px 0 80px !important; }
.slr-404-main > .elementor-container { max-width: 760px; }
.slr-404-main > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 15px; }
.slr-404-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 22px 0 28px; }
.slr-404-links a { display: block; padding: 14px 16px; border: 1px solid #e3e8ef; border-radius: 12px; color: #1b4f96; font-weight: 600; text-decoration: none; background: #fff; }
.slr-404-links a:hover { border-color: #1b4f96; }
@media (max-width: 560px) { .slr-404-links { grid-template-columns: 1fr; } }

/* ---- Older page content: styles the old theme scoped to its own content wrapper ------------------------ */
.slr-page-main span.normal, .slr-staff-main span.normal { font-weight: normal; }   /* "The <b>vision…</b>" headings */

/* ---- Blog browse row: categories and search (the old blog sidebar's two jobs) ---------------------------- */
.slr-archive-browse { padding: 26px 0 0 !important; }
.slr-archive-browse > .elementor-container { max-width: 1140px; align-items: center; }
.slr-archive-browse > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 15px; }
.slr-archive-browse .elementor-widget-wp-widget-categories h5 { display: none; }
.slr-archive-browse .elementor-widget-wp-widget-categories ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.slr-archive-browse .elementor-widget-wp-widget-categories li { margin: 0; padding: 0; }
.slr-archive-browse .elementor-widget-wp-widget-categories li::before { display: none; }
.slr-archive-browse .elementor-widget-wp-widget-categories a { display: inline-block; padding: 7px 13px; border: 1px solid #d6dde6; border-radius: 999px; background: #fff; color: #1b4f96; font-size: 13.5px; font-weight: 600; text-decoration: none; }
.slr-archive-browse .elementor-widget-wp-widget-categories a:hover, .slr-archive-browse .elementor-widget-wp-widget-categories .current-cat > a { background: #1b4f96; border-color: #1b4f96; color: #fff; }
@media (max-width: 1024px) { .slr-archive-browse .elementor-column { width: 100% !important; } .slr-archive-browse .slr-archive-search { margin-top: 14px; } }

/* ---- Search boxes (blog and 404) ------------------------------------------------------------------------- */
.elementor-widget-search-form .elementor-search-form__container { border: 1px solid #d6dde6 !important; border-radius: 999px !important; overflow: hidden; background: #fff; min-height: 46px; }
.elementor-widget-search-form .elementor-search-form__input, .elementor-widget-search-form .elementor-search-form__submit { border-radius: 0 !important; border: 0 !important; }
.elementor-widget-search-form .elementor-search-form__input { background: #fff !important; color: #1f2d3d; font-size: 15px; padding-left: 18px; }
.elementor-widget-search-form .elementor-search-form__input::placeholder { color: #6f7782; opacity: 1; }
.elementor-widget-search-form .elementor-search-form__submit { background: #1b4f96 !important; color: #fff !important; font-weight: 700; font-size: 14px; padding: 0 22px; min-width: 96px; }
.elementor-widget-search-form .elementor-search-form__submit:hover { background: #163f78 !important; }

/* ---- Read more: sentence case (the card skin uppercases it by default) ---------------------------------- */
.slr-archive-main .elementor-posts .elementor-post__card .elementor-post__read-more { text-transform: none; letter-spacing: 0; font-size: 14px; }

/* ---- Video widgets reserve their space from the first paint (Elementor's own sizing loads late, which moved
   About Us by 0.08 to 0.13 layout shift). Uses Elementor's ratio when set, 16:9 otherwise. ------------------- */
.elementor-widget-video .elementor-wrapper { aspect-ratio: var(--video-aspect-ratio, 16 / 9); }

/* ---- Older posts: text on the blue CTA boxes, and theme buttons inside post text --------------------------------
   Boxes that use the kit's Brand Blue get the class slr-on-dark (launch/legacy_contrast.php); the blog's purple
   link colour was landing on them at 1:1. Theme .btn buttons inside post text keep their white label. */
.slr-on-dark a:not(.elementor-button), .slr-on-dark a:not(.elementor-button):hover { color: #fff !important; text-decoration: underline; }
.slr-post-body a.btn, .slr-post-body a.btn:hover, .slr-post-body a.btn-primary { color: #fff !important; }
