/*
Theme Name: Southshore Baptist
Theme URI: https://southshorebaptist.church
Author: Southshore Baptist Church
Description: Self-hosted rebuild of the Southshore Baptist Church website (visual match of the former Nucleus site). Colors, fonts, spacing, cards, header and footer reproduce the original's CSS variable values. Homepage hero supports a full-screen background video (YouTube or self-hosted MP4) with adjustable overlay and poster image.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: southshore
*/

/* =========================================================
   1. Theme variables — exact values pulled from the original
   ========================================================= */
:root {
  --theme-color-header-background: #5B7AA4;
  --theme-color-body-background: #FFFFFF;
  --theme-color-header-text: #FFFFFF;
  --theme-color-header-text-rgb: 255, 255, 255;
  --theme-color-navigation-1: #2268B0;
  --theme-color-navigation-1-rgb: 34, 104, 176;
  --theme-color-navigation-2: #2268B0;
  --theme-color-navigation-3: #2268B0;
  --theme-color-navigation-4: #2268B0;
  --theme-color-navigation-text: #FFFFFF;
  --theme-color-navigation-text-rgb: 255, 255, 255;
  --theme-color-footer-background: #2268B0;
  --theme-color-footer-text: #FFFFFF;
  --theme-color-footer-text-rgb: 255, 255, 255;
  --theme-color-page-header-background: #2268B0;
  --theme-color-page-header-text: #FFFFFF;
  --theme-color-page-header-text-rgb: 255, 255, 255;
  --theme-color-page-body-background: #F5F5F5;
  --theme-color-page-body-background-2: #FFFFFF;
  --theme-color-page-body-input-background: #FFFFFF;
  --theme-color-page-body-text: #000000;
  --theme-color-page-body-text-rgb: 0, 0, 0;
  --theme-color-page-body-heading: #000000;
  --theme-color-page-body-button-background: #2268B0;
  --theme-color-page-body-button-background-rgb: 34, 104, 176;
  --theme-color-page-body-button-text: #F5F5F5;
  --theme-color-card-body-background: #2268B0;
  --theme-color-card-body-text: #FFFFFF;
  --ssbc-announce-bg: #E6EDFF;
}

/* =========================================================
   2. Base
   ========================================================= */
*, *:before, *:after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: 'Ubuntu', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: var(--theme-color-page-body-text);
  background: var(--theme-color-body-background);
}
img { max-width: 100%; height: auto; border: 0; }
a { text-decoration: none; color: inherit; }
h1, h2, h3, h4, h5, h6 { font-family: 'Ubuntu', sans-serif; font-style: normal; }
h1 { font-weight: 500; }
h2, h3, h4, h5, h6 { font-weight: 400; }
p, li { font-family: 'Ubuntu', sans-serif; }
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}
.ql-align-center { text-align: center; }

/* =========================================================
   3. Announcement bar
   ========================================================= */
.ssbc-announce {
  background: var(--ssbc-announce-bg);
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 8px 46px;
  position: relative;
  z-index: 60;
  text-align: center;
}
.ssbc-announce__emoji { font-size: 20px; }
.ssbc-announce__text { font-size: 15px; font-weight: 700; color: #2268B0; }
.ssbc-announce__sub { font-size: 12px; color: #6D9EE0; }
.ssbc-announce__close {
  position: absolute; right: 14px; top: 50%;
  transform: translateY(-50%);
  background: none; border: 0; cursor: pointer;
  color: #6D9EE0; font-size: 18px; line-height: 1; padding: 6px;
}

/* =========================================================
   4. Hero (shared)
   ========================================================= */
.hero {
  padding: 25px;
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 750px;
  overflow: hidden;
}
.hero-background-container {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  overflow: hidden;
}
.hero-background,
.hero-background-image {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background-color: var(--theme-color-page-header-background);
  background-size: cover !important;
  background-position: 50% !important;
  background-repeat: no-repeat !important;
}
.hero-homepage .hero-background,
.hero-homepage .hero-background-image {
  background-color: var(--theme-color-header-background);
}
.color-overlay {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: var(--ssbc-overlay-color, #5B7AA4);
  opacity: var(--ssbc-overlay-opacity, 0.75);
}
.vignette {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at center, transparent 0, rgba(0, 0, 0, .64) 100%);
}
/* background video (YouTube iframe or MP4) sized to cover */
.ssbc-bgvideo {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 100vw; height: 56.25vw;       /* 16:9 cover */
  min-height: 100%; min-width: 177.78vh;
  pointer-events: none;
}
.ssbc-bgvideo iframe,
.ssbc-bgvideo video {
  width: 100%; height: 100%;
  object-fit: cover;
  border: 0;
}
.hero .pages-logo {
  padding: 20px 0 48px;
  text-align: center;
  position: relative; z-index: 5;
}
.hero .pages-logo a { display: inline-block; }
.hero .pages-logo img { max-height: 150px; width: auto; }
.hero .back {
  position: absolute; top: 25px; left: 30px; z-index: 5;
}
.hero .back a {
  transition: opacity .3s ease-in-out;
  opacity: .6;
  font-weight: 500; font-size: 16px; color: #fff;
  letter-spacing: 2.5px; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px;
}
.hero .back a:hover { opacity: 1; }
.hero .search-toggle {
  position: absolute; top: 27px; right: 30px; z-index: 200;
  color: var(--theme-color-page-header-text);
  background: none; border: 0; cursor: pointer; padding: 6px;
}
.hero .search-toggle svg { width: 20px; height: 20px; }
.pages-intro {
  flex: 1;
  display: flex; flex-direction: column;
  justify-content: center;
  text-align: center;
  position: relative; z-index: 5;
  padding: 0 30px 120px;
}
.pages-intro h1 {
  margin: 0;
  font-size: 70px;
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -.015625em;
  color: var(--theme-color-page-header-text);
}
.hero-homepage .pages-intro h1 { color: var(--theme-color-header-text); }
.pages-intro .hero-subtitle {
  margin: 25px auto 0;
  max-width: 768px;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--theme-color-page-header-text);
}
.pages-intro .button-outline {
  display: inline-block;
  margin: 40px auto 0;
  padding: 14px 2em;
  min-width: 250px;
  border: 2px solid #fff;
  border-radius: 4px;
  color: #fff;
  font-weight: 500; font-size: 18px;
  letter-spacing: .05em; text-transform: uppercase;
  transition: all .2s ease-out;
}
.pages-intro .button-outline:hover { background: #fff; color: var(--theme-color-page-header-background); }

/* =========================================================
   5. Navigation (desktop pill)
   ========================================================= */
.nucleus-navigation-wrap { position: relative; z-index: 6; }
.nucleus-navigation-wrap.desktop-menu.is-sticky {
  position: sticky; top: 0; z-index: 40;
}
.nucleus-navigation {
  display: inline-block;
  background: rgba(var(--theme-color-navigation-1-rgb), .75);
  border-radius: 200px;
  padding: 0 52px;
}
.desktop-menu { text-align: center; }
.hero-homepage .nucleus-navigation-wrap.desktop-menu,
.hero-sermons .nucleus-navigation-wrap.desktop-menu { margin-bottom: 80px; }
.desktop-menu .primary-level {
  list-style: none;
  margin: 0; padding: 0;
  text-align: center;
  white-space: nowrap;
}
.desktop-menu .primary-level > li {
  display: inline-block;
  padding: 10px 0; margin: 0;
  position: relative;
}
.desktop-menu .primary-level > li > a {
  display: block;
  font-weight: 300; font-size: 18px;
  letter-spacing: -.42px; line-height: 28px;
  border-radius: 100px;
  padding: 8px 27px 6px;
  white-space: nowrap;
  color: rgba(var(--theme-color-navigation-text-rgb), .5);
  position: relative; z-index: 55;
}
.desktop-menu .primary-level > li:hover > a,
.desktop-menu .primary-level > li.current-menu-item > a,
.desktop-menu .primary-level > li.current-menu-ancestor > a {
  color: rgba(var(--theme-color-navigation-text-rgb), 1);
}
.desktop-menu .primary-level > li .dropdown-menu {
  display: none;
  position: absolute; top: 99%; left: 0;
  width: 300px;
  padding: 30px 35px;
  z-index: 50;
  background: var(--theme-color-navigation-3);
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  text-align: left;
}
.desktop-menu .primary-level > li:hover .dropdown-menu { display: block; }
.desktop-menu .dropdown-menu ul { list-style: none; margin: 0; padding: 0; }
.desktop-menu .dropdown-menu li { display: block; padding: 3px 0; }
.desktop-menu .dropdown-menu a {
  font-weight: 300; font-size: 16px;
  letter-spacing: -.52px; line-height: 18px;
  display: inline-block;
  border-radius: 100px;
  padding: 8px 25px 6px;
  white-space: nowrap;
  color: var(--theme-color-navigation-text);
  opacity: .7;
}
.desktop-menu .dropdown-menu a:hover { opacity: 1; background: var(--theme-color-navigation-4); }
.desktop-menu .primary-level svg.caret { display: none; }

/* Hamburger + mobile menu */
.navigation-toggle {
  position: absolute; right: 15px; top: 15px;
  display: none;
  z-index: 210;
  padding: 12px;
}
.menu-bar {
  display: block;
  width: 26px; height: 2px;
  margin: 6px 0;
  background: rgba(var(--theme-color-page-header-text-rgb), .5);
  transition: background .2s;
}
.navigation-toggle:hover .menu-bar { background: rgba(var(--theme-color-page-header-text-rgb), 1); }
.mobile-menu {
  background: var(--theme-color-navigation-1);
  transition: all .3s ease-in-out;
  position: fixed; z-index: 250;
  top: 0; left: 0; right: 0; bottom: 0;
  opacity: 0; visibility: hidden;
  overflow-y: auto;
  display: flex; flex-direction: column;
}
.mobile-menu.nav-open { opacity: 1; visibility: visible; }
.mobile-menu .mobile-menu-head { text-align: center; padding: 25px 0 10vh; }
.mobile-menu .mobile-menu-head img { max-height: 50px; width: auto; }
.mobile-menu .mobile-close {
  position: absolute; top: 20px; right: 20px;
  background: none; border: 0;
  color: #fff; font-size: 32px; cursor: pointer; line-height: 1;
}
.mobile-menu ul { list-style: none; margin: 0; padding: 0; text-align: center; flex: 1; }
.mobile-menu ul li > a {
  display: inline-block;
  font-weight: 300; font-size: 28px;
  letter-spacing: -.021em; line-height: 1.4em;
  padding: .5em 1.5em;
  color: rgba(var(--theme-color-navigation-text-rgb), .68);
}
.mobile-menu ul li > a:hover { color: #fff; }
.mobile-menu ul li ul li > a { font-size: 18px; padding: .35em 1.5em; }

/* Search overlay */
.ssbc-search-overlay {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  z-index: 300;
  background: rgba(var(--theme-color-navigation-1-rgb), .97);
  display: none;
  align-items: center; justify-content: center;
}
.ssbc-search-overlay.open { display: flex; }
.ssbc-search-overlay form { width: min(700px, 90vw); }
.ssbc-search-overlay input[type=search] {
  width: 100%;
  font-size: 32px; font-family: 'Ubuntu', sans-serif;
  padding: 18px 30px;
  border: 0; border-radius: 6px;
}
.ssbc-search-overlay .ssbc-search-close {
  position: absolute; top: 25px; right: 30px;
  background: none; border: 0; color: #fff;
  font-size: 40px; cursor: pointer; line-height: 1;
}

/* =========================================================
   6. Homepage cards
   ========================================================= */
.homepage__place-cards-on-header .hero-homepage { padding-bottom: 200px; }
.pages-items { position: relative; z-index: 7; }
.pages-container {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 25px;
}
.homepage__place-cards-on-header .pages-items .pages-container { margin-top: -250px; }
.pages-items .row {
  display: flex; flex-wrap: wrap;
  margin: 0 -15px;
}
.pages-items .card-third {
  flex: 0 0 33.3333%;
  max-width: 33.3333%;
  padding: 0 30px;
}
.card.page-item {
  position: relative;
  display: block;
  height: 415px;
  margin-bottom: 50px;
  background: var(--theme-color-card-body-background);
  border-radius: 35px;
  overflow: hidden;
  box-shadow: 0 .4rem 1.8rem 0 rgba(0, 0, 0, .16);
  will-change: transform;
}
.cards-rollover-scale .card { transition: transform .15s ease-out, box-shadow .15s ease-out; }
.cards-rollover-scale .card:hover {
  transform: scale(1.01);
  box-shadow: 0 .6rem 2rem .5rem rgba(0, 0, 0, .14);
}
.card .hero-shot {
  height: 100%;
  background-position: 50%;
  background-size: cover !important;
  background-repeat: no-repeat;
}
.card .card-content {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%; z-index: 2;
}
.card .card-content h2 {
  font-weight: 300; font-size: 32px;
  color: var(--theme-color-page-header-text);
  letter-spacing: -.015625em; line-height: 1.2em;
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  text-align: center; width: 80%;
  margin: 0 0 0; margin-top: -50px;
}
.cards-hide-description .card .card-content h2 { margin-top: 0; }
.cards-hide-title .card .card-content h2 { opacity: 0; }
.card .card-ribbon {
  height: 95px;
  background: var(--theme-color-card-body-background);
  box-shadow: 0 -6px 17px 0 rgba(0, 0, 0, .12);
  position: absolute; z-index: 10;
  left: 0; right: 0; bottom: 17px;
}
.cards-hide-description .card .card-ribbon { display: none; }
.card .card-ribbon-content {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 85%; text-align: center;
}
.card .card-ribbon-content p {
  font-weight: 300; font-size: 16px;
  color: var(--theme-color-card-body-text);
  letter-spacing: -.016875em; line-height: 1.3125em;
  padding: 0; margin: 0; text-align: center;
}
.card .card-ribbon-content .more {
  transition: all .15s ease-out;
  background: var(--theme-color-card-body-background);
  opacity: 0; z-index: 5;
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
}
.card:hover .card-ribbon-content .more { opacity: 1; }
.card .card-ribbon-content .more > span {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  display: inline-block;
  font-weight: 500; font-size: 14px;
  letter-spacing: 1.59px; text-transform: uppercase;
  width: 100%; text-align: center;
  color: var(--theme-color-card-body-text);
}

/* =========================================================
   7. Page content
   ========================================================= */
.page-content {
  background: var(--theme-color-page-body-background);
  padding: 80px 0 160px;
}
.page-container {
  max-width: 700px;
  margin: 0 auto;
  padding: 0 25px;
}
.page-content h1 {
  font-size: 50px;
  font-weight: 500;
  line-height: 55px;
  color: var(--theme-color-page-body-heading);
  margin: 0 0 30px;
}
.page-container > h1:first-child { margin-top: 0; }
.page-content h2 { font-size: 28px; font-weight: 400; margin: 45px 0 15px; }
.page-content h3, .page-content h4 { font-weight: 400; }
.page-content p, .page-content li {
  font-size: 20px; font-weight: 400;
  line-height: 30px; letter-spacing: -.08px;
  margin: 0 0 0;
}
.page-content .rte p { margin: 0; }
.page-content .rte p:empty { min-height: 30px; }
.page-content .rte { margin: 30px 0 50px; }
.page-content ul, .page-content ol { padding-left: 1.2em; margin: 0 0 10px; }
.page-content .image { margin: 30px 0; }
.page-content .image img { border-radius: 4px; }
.page-content a { color: #2268B0; }
.page-content .small-heading,
.page-content h6 {
  font-weight: 500; font-size: 16px;
  letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--theme-color-page-body-heading);
  margin: 45px 0 10px;
}
.button-wrap { margin: 40px 0; }
.button-round,
.page-content .wpcf7 input[type=submit],
.page-content .button {
  display: inline-block; vertical-align: middle;
  font-weight: 500; font-size: 18px;
  text-align: center; text-transform: uppercase;
  letter-spacing: .05em;
  background: var(--theme-color-page-body-button-background);
  color: var(--theme-color-page-body-button-text) !important;
  min-width: 250px; max-width: 100%;
  padding: 14px 2em;
  border: 0; border-radius: 35px;
  cursor: pointer;
  transition: opacity .2s;
}
.button-round:hover, .page-content .button:hover,
.page-content .wpcf7 input[type=submit]:hover { opacity: .8; }

/* Forms (Contact Form 7 styled to match the original) */
.page-content .wpcf7 { margin-top: 10px; }
.page-content .wpcf7 label {
  display: block;
  font-weight: 500; font-size: 16px;
  letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--theme-color-page-body-text);
  margin: 35px 0 6px;
}
.page-content .wpcf7 label .req { color: #2268B0; }
.page-content .wpcf7 input[type=text],
.page-content .wpcf7 input[type=email],
.page-content .wpcf7 input[type=tel],
.page-content .wpcf7 input[type=date],
.page-content .wpcf7 textarea {
  display: block; width: 100%;
  font-family: 'Ubuntu', sans-serif;
  font-size: 20px;
  color: #2268B0;
  background: var(--theme-color-page-body-input-background);
  border: 0; border-radius: 6px;
  box-shadow: 0 2px 18px 0 rgba(0, 0, 0, .1);
  height: 55px;
  padding: 0 30px;
  outline: none;
}
.page-content .wpcf7 textarea { height: 240px; padding: 25px 30px; resize: vertical; }
.page-content .wpcf7 .wpcf7-radio { display: block; }
.page-content .wpcf7 .wpcf7-radio .wpcf7-list-item {
  display: inline-block; margin: 6px 30px 6px 0;
}
.page-content .wpcf7 .wpcf7-radio label {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0; font-size: 13px; letter-spacing: 1.6px;
}
.page-content .wpcf7 input[type=submit] { margin-top: 40px; }
.wpcf7 form .wpcf7-response-output {
  margin: 25px 0 0; padding: 12px 20px;
  border: 0; border-radius: 6px;
  background: #fff; font-size: 16px;
}
.wpcf7 form.sent .wpcf7-response-output { background: #E6EDFF; color: #2268B0; }

/* =========================================================
   8. Footer
   ========================================================= */
.pages-footer {
  padding: 75px 0 30px;
  text-align: center;
  background: var(--theme-color-footer-background);
}
.pages-footer .footer-logo img {
  max-height: 80px; max-width: 300px;
  width: auto;
  display: block; margin: 0 auto 50px;
}
.pages-footer h5 {
  font-weight: 500; font-size: 16px;
  color: var(--theme-color-footer-text);
  letter-spacing: 2.5px;
  margin: 0 0 15px;
  text-transform: uppercase;
}
.pages-footer h5.contact { margin-bottom: 5px; }
.pages-footer hr {
  width: 150px;
  margin: 35px auto 50px;
  border: 0; border-top: 1px solid rgba(var(--theme-color-footer-text-rgb), .2);
}
.pages-footer .footer-text,
.pages-footer .footer-text a {
  font-weight: 300; font-size: 18px;
  color: rgba(var(--theme-color-footer-text-rgb), .65);
  letter-spacing: -.1px; line-height: 21px;
  margin: 0 auto 15px; max-width: 530px;
  white-space: pre-line;
}
.pages-footer .footer-address a,
.pages-footer .footer-email a,
.pages-footer .footer-phone a {
  color: rgba(var(--theme-color-footer-text-rgb), .65);
  transition: color .3s ease-out;
}
.pages-footer .footer-address a:hover,
.pages-footer .footer-email a:hover,
.pages-footer .footer-phone a:hover { color: rgba(var(--theme-color-footer-text-rgb), 1); }
.pages-footer .footer-email { margin-bottom: 0; }
.pages-footer .social {
  margin: 75px 0 20px; padding: 0;
  list-style: none;
}
.pages-footer .social li { display: inline-block; margin: 0 10px; }
.pages-footer .social li a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px;
  border-radius: 100px;
  background: var(--theme-color-footer-text);
  color: var(--theme-color-footer-background);
  transition: opacity .3s ease-in-out;
}
.pages-footer .social li a:hover { opacity: .8; }
.pages-footer .social svg { width: 18px; height: 18px; fill: currentColor; }
.pages-footer .copyright {
  opacity: .75;
  font-weight: 300; font-size: 14px;
  color: rgba(var(--theme-color-footer-text-rgb), .65);
  letter-spacing: -.08px; line-height: 21px;
}

/* =========================================================
   9. Calendar widget (events page)
   ========================================================= */
.ssbc-calendar {
  max-width: 700px;
  margin: 30px auto 10px;
  padding: 0 25px;
}
.ssbc-calendar__card {
  background: #fff;
  border-radius: 4px;
  box-shadow: 0 2px 18px 0 rgba(0, 0, 0, .08);
  overflow: hidden;
}
.ssbc-calendar__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px;
}
.ssbc-calendar__month { font-size: 16px; font-weight: 400; }
.ssbc-calendar__nav {
  width: 30px; height: 30px;
  border: 1px solid #E4E7EB; border-radius: 100px;
  background: #fff; color: #2268B0;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 15px; line-height: 1;
}
.ssbc-calendar__row {
  display: flex;
  border-top: 1px solid #F0F0F2;
  padding: 14px 0;
}
.ssbc-calendar__date {
  flex: 0 0 90px;
  text-align: center;
  color: #9B9BA9;
}
.ssbc-calendar__date .m { display: block; font-size: 10px; letter-spacing: 1px; text-transform: uppercase; }
.ssbc-calendar__date .d { display: block; font-size: 22px; color: #63637a; line-height: 1.2; }
.ssbc-calendar__date .w { display: block; font-size: 10px; letter-spacing: 1px; text-transform: uppercase; }
.ssbc-calendar__events { flex: 1; padding-right: 18px; }
.ssbc-calendar__event { margin-bottom: 14px; }
.ssbc-calendar__event:last-child { margin-bottom: 0; }
.ssbc-calendar__event .t {
  display: block;
  font-size: 11px; font-weight: 500;
  letter-spacing: .06em;
  color: #2268B0;
}
.ssbc-calendar__event .n { font-size: 16px; color: #7B7B90; }
.ssbc-calendar__empty { padding: 30px; text-align: center; color: #9B9BA9; }

/* =========================================================
   10. Sermons (media page)
   ========================================================= */
.hero-sermons {
  min-height: 0;
  padding-bottom: 60px;
  background: var(--theme-color-header-background);
}
.featured-sermon {
  position: relative; z-index: 5;
  max-width: 1140px;
  margin: 30px auto 0;
  padding: 0 25px;
  display: flex; gap: 40px;
  align-items: center;
}
.featured-sermon__art {
  flex: 0 0 540px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 .4rem 1.8rem 0 rgba(0, 0, 0, .2);
}
.featured-sermon__art img { display: block; width: 100%; }
.featured-sermon__meta { flex: 1; color: var(--theme-color-header-text); }
.featured-sermon__badge {
  display: inline-block;
  font-size: 10px; font-weight: 500;
  letter-spacing: 1.6px; text-transform: uppercase;
  border: 1px solid rgba(var(--theme-color-header-text-rgb), .5);
  border-radius: 3px;
  padding: 3px 10px;
  margin-bottom: 14px;
  color: rgba(var(--theme-color-header-text-rgb), .8);
}
.featured-sermon__meta h2 { font-size: 26px; font-weight: 500; margin: 0 0 6px; }
.featured-sermon__date { font-size: 13px; opacity: .7; margin: 0 0 14px; }
.featured-sermon__desc { font-size: 14px; opacity: .85; margin: 0 0 24px; max-width: 420px; }
.featured-sermon .button-round,
.podcast-cta .button-round {
  background: var(--theme-color-header-text);
  color: var(--theme-color-header-background) !important;
  min-width: 0;
  font-size: 13px;
  padding: 12px 26px;
  letter-spacing: 1.2px;
}
.sermons-content { background: var(--theme-color-page-body-background); padding: 40px 0 90px; }
.sermons-container { max-width: 1140px; margin: 0 auto; padding: 0 25px; }
.sermons-toolbar {
  display: flex; justify-content: flex-end; align-items: center;
  gap: 10px;
  margin-bottom: 25px;
}
.sermons-toolbar label {
  font-size: 11px; font-weight: 500;
  letter-spacing: 1.2px; text-transform: uppercase;
  color: #63637a;
}
.sermons-toolbar select {
  font-family: 'Ubuntu', sans-serif; font-size: 13px;
  padding: 8px 12px;
  border: 1px solid #E4E7EB; border-radius: 4px;
  background: #fff; color: #333;
}
.sermon-grid {
  display: flex; flex-wrap: wrap;
  margin: 0 -12px;
}
.sermon-grid .sermon-cell {
  flex: 0 0 33.3333%; max-width: 33.3333%;
  padding: 0 12px;
  margin-bottom: 30px;
}
.sermon-item { display: block; }
.sermon-item__thumb {
  position: relative;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .12);
  aspect-ratio: 16 / 9;
  background: #dfe3e8 center / cover no-repeat;
  transition: transform .15s ease-out, box-shadow .15s ease-out;
}
.sermon-item:hover .sermon-item__thumb {
  transform: scale(1.01);
  box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
}
.sermon-item__title {
  font-size: 15px; font-weight: 500;
  color: #1a1a2e;
  margin: 12px 0 2px;
}
.sermon-item__date { font-size: 12px; color: #9B9BA9; }
.sermons-load-more {
  display: block; width: 100%;
  background: #fff; color: #63637a;
  border: 0; border-radius: 4px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
  font-family: 'Ubuntu', sans-serif; font-size: 14px;
  padding: 14px;
  cursor: pointer;
  margin: 10px 0 40px;
}
.sermons-load-more:hover { color: #2268B0; }
.sermon-playlist { margin-top: 45px; }
.sermon-playlist__head {
  display: flex; align-items: center; gap: 18px;
  margin-bottom: 18px;
}
.sermon-playlist__head h2 { font-size: 19px; font-weight: 700; margin: 0; }
.sermon-playlist__head .view {
  font-size: 10px; font-weight: 500;
  letter-spacing: 1.4px; text-transform: uppercase;
  color: #9B9BA9;
}
.sermon-playlist__head .view:hover { color: #2268B0; }
.sermon-playlist__head hr { flex: 1; border: 0; border-top: 1px solid #E4E7EB; }
.sermon-playlist__row {
  display: flex; gap: 24px;
  overflow-x: auto;
  scroll-behavior: smooth;
  padding-bottom: 6px;
}
.sermon-playlist__row .sermon-item { flex: 0 0 255px; }
.podcast-cta {
  background: var(--theme-color-header-background);
  color: var(--theme-color-header-text);
  text-align: center;
  padding: 110px 25px;
}
.podcast-cta h2 { font-size: 40px; font-weight: 400; margin: 0 0 25px; }
.podcast-cta p {
  max-width: 460px; margin: 0 auto 35px;
  font-size: 17px; line-height: 1.55;
  color: rgba(var(--theme-color-header-text-rgb), .85);
}

/* Single sermon */
.sermon-single .video-embed {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: 6px; overflow: hidden;
  box-shadow: 0 4px 18px rgba(0, 0, 0, .16);
  margin: 0 0 30px;
  background: #000;
}
.sermon-single .video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sermon-single .sermon-meta { color: #9B9BA9; font-size: 14px; margin-bottom: 25px; }

/* =========================================================
   11. Share page (easter)
   ========================================================= */
.share-card {
  max-width: 420px;
  margin: 0 auto;
  text-align: center;
}
.share-card__img { border-radius: 8px; overflow: hidden; margin-bottom: -18px; }
.share-card__date {
  display: inline-block;
  background: #1a1a2e; color: #fff;
  font-size: 11px; font-weight: 500; letter-spacing: 1.2px;
  border-radius: 100px;
  padding: 7px 16px;
  position: relative;
}
.share-card h2 { font-size: 26px; margin: 18px 0 8px; }
.share-card__sub { font-size: 15px; color: #7B7B90; margin: 0 0 22px; }
.share-card__msg {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 14px rgba(0, 0, 0, .07);
  font-size: 14px; line-height: 1.5; color: #63637a;
  text-align: left;
  padding: 18px 20px;
  margin-bottom: 20px;
  word-wrap: break-word;
}
.share-card__buttons { display: flex; flex-direction: column; gap: 12px; }
.share-card__buttons a, .share-card__buttons button {
  background: #fff;
  border: 0; border-radius: 8px;
  box-shadow: 0 2px 14px rgba(0, 0, 0, .07);
  font-family: 'Ubuntu', sans-serif;
  font-size: 12px; font-weight: 500;
  letter-spacing: 1.4px; text-transform: uppercase;
  color: #1a1a2e;
  padding: 15px;
  cursor: pointer;
}

/* =========================================================
   12. Responsive
   ========================================================= */
@media (max-width: 991px) {
  .desktop-menu { display: none; }
  .navigation-toggle { display: block; }
  .pages-intro h1 { font-size: 44px; }
  .pages-intro .hero-subtitle { font-size: 19px; }
  .hero { min-height: 560px; }
  .hero .pages-logo img { max-height: 100px; }
  .pages-items .card-third { flex: 0 0 50%; max-width: 50%; }
  .featured-sermon { flex-direction: column; }
  .featured-sermon__art { flex-basis: auto; }
  .sermon-grid .sermon-cell { flex: 0 0 50%; max-width: 50%; }
}
@media (max-width: 640px) {
  .pages-items .row { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; }
  .pages-items .card-third { flex: 0 0 82%; max-width: 82%; scroll-snap-align: center; }
  .card.page-item { height: 435px; }
  .homepage__place-cards-on-header .pages-items .pages-container { margin-top: -180px; }
  .homepage__place-cards-on-header .hero-homepage { padding-bottom: 140px; }
  .pages-intro h1 { font-size: 36px; }
  .page-content { padding: 55px 0 100px; }
  .page-content h1 { font-size: 28px; }
  .page-content p, .page-content li { font-size: 18px; line-height: 28px; }
  .sermon-grid .sermon-cell { flex: 0 0 100%; max-width: 100%; }
  .podcast-cta h2 { font-size: 30px; }
}

/* WordPress menu markup (.sub-menu) mapped to the dropdown styles */
.desktop-menu .primary-level > li > .sub-menu {
  display: none;
  position: absolute; top: 99%; left: 0;
  width: 300px;
  padding: 30px 35px;
  z-index: 50;
  background: var(--theme-color-navigation-3);
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  text-align: left;
  list-style: none;
  margin: 0;
}
.desktop-menu .primary-level > li:hover > .sub-menu { display: block; }
.desktop-menu .primary-level .sub-menu li { display: block; padding: 3px 0; }
.desktop-menu .primary-level .sub-menu a {
  font-weight: 300; font-size: 16px;
  letter-spacing: -.52px; line-height: 18px;
  display: inline-block;
  border-radius: 100px;
  padding: 8px 25px 6px;
  white-space: nowrap;
  color: var(--theme-color-navigation-text);
  opacity: .7;
}
.desktop-menu .primary-level .sub-menu a:hover { opacity: 1; background: var(--theme-color-navigation-4); }
.mobile-menu ul li .sub-menu { list-style: none; padding: 0; }
.mobile-menu ul li .sub-menu li > a { font-size: 18px; padding: .35em 1.5em; }

/* --- refinement pass 2 --- */
.pages-intro h1 { max-width: 950px; margin-left: auto; margin-right: auto; }
.ssbc-announce { min-height: 56px; padding: 12px 46px; }
.hero .back { display: none; }
@media (max-width: 991px) { .hero .back { display: block; } }
.page-content h3, .page-content h4, .page-content h5 {
  font-size: 16px; font-weight: 500;
  letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--theme-color-page-body-heading);
  margin: 45px 0 10px;
}
.hero-sermons .hero-background,
.hero-sermons .hero-background-image { background-color: var(--theme-color-header-background); }
.featured-sermon { width: 100%; }
.page-content .image .player-caption {
  display: block;
  margin: 18px auto 0;
  max-width: 480px;
  font-style: italic;
  font-size: 14px; line-height: 1.5;
  color: #9B9BA9;
  text-align: center;
}
.page-content .image { text-align: center; }
