/*
Theme Name: Union Baptist Church
Theme URI: https://church.sleekwebhost.com/
Author: Union Baptist Church
Description: A responsive, Elementor-ready theme inspired by the approved Union Baptist Church website.
Version: 1.0.1
Text Domain: union-baptist
*/

/* Keep imported legacy page sections centered inside Elementor's content area. */
.elementor-widget-html .elementor-widget-container { width: 100%; }
.elementor-widget-html .elementor-widget-container { margin: 0; padding: 0; }
.elementor > .e-con { gap: 0 !important; padding: 0 !important; }
.skip-link { position: absolute !important; top: -100px; left: 1rem; z-index: 10000; padding: .65rem 1rem; border-radius: 8px; background: #fff; color: var(--brand); box-shadow: var(--shadow); }
.skip-link:focus { top: 1rem; }
.elementor-widget-html .container { width: min(100%, 1180px); margin-inline: auto; }
.elementor-widget-html .section { scroll-margin-top: 6rem; }
.site-content { min-height: 55vh; }
.site-header { position: sticky; top: 0; z-index: 1000; }
.ubc-announcement-bar { color: var(--on-accent); background: var(--accent); font-size: .88rem; font-weight: 600; }
.ubc-announcement-bar.ticker { overflow: hidden; padding: .5rem 0; text-align: left; white-space: nowrap; }
.ubc-announcement-bar .ticker-track { display: inline-flex; align-items: center; animation: ubc-marquee 38s linear infinite; will-change: transform; }
.ubc-announcement-bar:hover .ticker-track { animation-play-state: paused; }
.ubc-announcement-bar .ticker-item { display: inline-flex; align-items: center; flex: none; margin-right: 2.6rem; }
.ubc-announcement-bar .ticker-item .tsep { margin-left: 2.6rem; opacity: .7; }
@keyframes ubc-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ubc-announcement-bar.ticker { white-space: normal; } .ubc-announcement-bar .ticker-track { animation: none; flex-wrap: wrap; justify-content: center; transform: none; } .ubc-announcement-bar .ticker-item { margin-right: 0; } }
.ubc-announcement-bar a { color: inherit; text-decoration: underline; }
.site-footer .footer-grid ul { list-style: none; padding: 0; margin: 0; }
.site-footer a.btn.btn-primary, .site-footer a.btn.btn-primary:hover { color: #241A00; }
/* Keep the contact details and message form together on wide screens. */
.page-id-13 .elementor-widget-html .section.contact-layout > .container.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.page-id-13 .elementor-widget-html .section.contact-layout > .container.split > div:nth-child(2), .page-id-13 .elementor-widget-html .section.contact-layout > .container.split > .elementor-widget-html { display: none; }
.page-id-13 .elementor-widget-html .section.contact-layout > .container.split > .elementor-widget-shortcode { grid-column: 2; grid-row: 1; width: auto; margin: 0; padding: 0; }
.page-id-13 .elementor-widget-html .section.contact-layout .ubc-public-form { max-width: none; margin: 0; }
@media (max-width: 820px) { .page-id-13 .elementor-widget-html .section.contact-layout > .container.split { grid-template-columns: 1fr; gap: 1.5rem; } .page-id-13 .elementor-widget-html .section.contact-layout > .container.split > .elementor-widget-shortcode { grid-column: auto; grid-row: auto; } }
.ubc-public-form { max-width: 760px; margin: 2rem auto; padding: clamp(1.25rem, 3vw, 2rem); background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.ubc-public-form label { display: block; margin: .8rem 0 .25rem; font-weight: 600; }
.ubc-public-form input, .ubc-public-form textarea, .ubc-public-form select { width: 100%; padding: .8rem; border: 1px solid var(--border); border-radius: 8px; font: inherit; color: var(--fg); background: #fff; }
.ubc-public-form textarea { min-height: 140px; }
.ubc-public-form button, .ubc-button { display: inline-flex; align-items: center; justify-content: center; padding: .8rem 1.35rem; margin-top: 1rem; border: 0; border-radius: 999px; background: var(--brand); color: #fff; font: 600 1rem var(--font-body); cursor: pointer; }
.ubc-form-notice { margin: 1rem 0; padding: .8rem 1rem; border-radius: 8px; background: var(--bg-alt); }
.ubc-entry-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,270px),1fr)); gap: 1.25rem; margin: 1.5rem 0; }
/* Imported directory pages place their managed shortcode after the section heading.
   Keep that shared content aligned with the 1180px page container. */
.elementor-widget-html .section > .elementor-widget-shortcode { width: min(100%, var(--container)); margin-inline: auto; padding-inline: 24px; }
.ubc-entry-card { display: flex; flex-direction: column; gap: .5rem; padding: 1.4rem; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.ubc-entry-card h3 { margin-bottom: .1rem; }
.ubc-entry-card .ubc-entry-meta { color: var(--muted); font-size: .92rem; }
.ubc-member-panel { max-width: 820px; margin: 2rem auto; padding: 2rem; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.ubc-staff-grid .ubc-entry-card { padding: 0; overflow: hidden; }
.ubc-staff-grid .ubc-entry-card > :not(img) { margin-inline: 1.3rem; }
.ubc-staff-grid .ubc-entry-card > div { margin-bottom: 1.3rem; }
.ubc-staff-grid .ubc-entry-card > img { width: 100%; max-height: 310px; object-fit: cover; }
.ubc-member-panel ul { padding-left: 1.25rem; }
.ubc-detail-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 2.25rem; align-items: start; }
.ubc-detail-layout img, .ubc-sermon-image img { width: 100%; height: auto; border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.ubc-sermon-detail { max-width: 900px; }
.ubc-sermon-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
@media(max-width:760px) { .ubc-detail-layout { grid-template-columns: 1fr; } }
.ubc-status { color: var(--muted); }
@media(max-width:760px) { .site-header .header-inner { flex-wrap: wrap; } .site-header .nav { display: none; width: 100%; flex-direction: column; align-items: stretch; padding: .8rem 0 1rem; } .site-header .nav.is-open { display: flex; } .site-header .menu-toggle { display: inline-flex; } }
