/*
Theme Name: RLC Exact Weebly
Theme URI: https://www.rlcok.org/
Description: Resurrection Lutheran Church — classic WordPress theme rebuilt to visually and functionally match the original Weebly site.
Version: 2.0
Author: Resurrection Lutheran Church
*/

/* ===== Design tokens ===== */
:root {
	--rlc-bg: #eae9e8;
	--rlc-card-bg: #ffffff;
	--rlc-header-bg: #17140f;
	--rlc-header-bg-2: #211c15;
	--rlc-title: #76cae9;
	--rlc-heading: #508d24;
	--rlc-headline: #5040ae;
	--rlc-link: #3387a2;
	--rlc-link-hover: #4fb3cf;
	--rlc-text: #4d4d4d;
	--rlc-text-light: #797979;
	--rlc-nav-link: #f2f2f2;
	--rlc-nav-link-hover: #ffffff;
	--rlc-accent: #508d24;
	--rlc-accent-2: #3387a2;
	--rlc-border: #d9d5c9;
	--rlc-max: 1000px;
	--rlc-font-body: "Karla", "Lucida Sans Unicode", "Lucida Grande", Arial, sans-serif;
	--rlc-font-heading: Georgia, "Times New Roman", Times, serif;
	--rlc-font-title: "Karla", Arial, Helvetica, sans-serif;
	--rlc-font-script: "Lobster Two", "Myriad Pro", Arial, Helvetica, sans-serif;
}

/* ===== Reset-ish basics ===== */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
ul, ol, li, h1, h2, h3, h4, h5, h6, p, form, fieldset, input, figure { margin: 0; padding: 0; }
img { max-width: 100%; height: auto; border: 0; }
a { color: var(--rlc-link); text-decoration: none; }
a:hover { color: var(--rlc-link-hover); }

body.rlc-body {
	background: var(--rlc-bg);
	font-family: var(--rlc-font-body);
	font-size: 15px;
	line-height: 1.6;
	color: var(--rlc-text);
}

.rlc-outer {
	max-width: var(--rlc-max);
	margin: 0 auto;
	background: var(--rlc-card-bg) url('assets/textures/floral.png') repeat;
	box-shadow: 0 0 30px rgba(0,0,0,0.08);
}

/* ===== Header ===== */
.rlc-header-wrap {
	background: var(--rlc-header-bg) url('assets/textures/dark.png') repeat;
}
.rlc-header-inner {
	max-width: var(--rlc-max);
	margin: 0 auto;
	padding: 28px 30px 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
}
.rlc-branding { flex: 1 1 auto; min-width: 0; }
.rlc-site-title,
.rlc-site-title.rlc-site-title { margin: 0; }
.rlc-site-title a {
	font-family: var(--rlc-font-title);
	font-weight: 800;
	font-size: 30px;
	line-height: 1.15;
	color: var(--rlc-title) !important;
	letter-spacing: 0.2px;
}
h1.rlc-site-title a { font-size: 34px; }

.rlc-header-right {
	display: flex;
	align-items: center;
	gap: 16px;
	flex: 0 0 auto;
}
.rlc-phone {
	font-family: Arial, Helvetica, sans-serif;
	color: #fefefe;
	font-size: 18px;
	line-height: 1.25;
	text-align: right;
	white-space: nowrap;
}
.rlc-social { display: flex; gap: 8px; }
.rlc-social-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(255,255,255,0.12);
	color: #f2f2f2 !important;
}
.rlc-social-icon:hover { background: var(--rlc-accent-2); color: #fff !important; }

.rlc-nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 34px;
	height: 34px;
	background: transparent;
	border: 0;
	cursor: pointer;
	margin-left: auto;
}
.rlc-nav-toggle span { display: block; height: 2px; background: #f2f2f2; border-radius: 2px; }

/* ===== Nav ===== */
.rlc-nav-wrap {
	background: var(--rlc-header-bg-2);
	border-top: 1px solid rgba(255,255,255,0.08);
}
.rlc-primary-nav { max-width: var(--rlc-max); margin: 0 auto; }
ul.rlc-menu {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0 20px;
}
ul.rlc-menu li { position: relative; }
ul.rlc-menu > li > a {
	display: block;
	padding: 14px 16px;
	font-family: var(--rlc-font-title);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--rlc-nav-link) !important;
}
ul.rlc-menu > li > a:hover,
ul.rlc-menu > li.current-menu-item > a,
ul.rlc-menu > li.current_page_item > a,
ul.rlc-menu > li.current-menu-ancestor > a {
	color: var(--rlc-nav-link-hover) !important;
	background: rgba(255,255,255,0.08);
}

/* dropdown submenus */
ul.rlc-menu ul.sub-menu {
	list-style: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 230px;
	background: #221d16;
	box-shadow: 0 10px 24px rgba(0,0,0,0.35);
	padding: 6px 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
	z-index: 40;
}
ul.rlc-menu li.menu-item-has-children:hover > ul.sub-menu,
ul.rlc-menu li.menu-item-has-children.is-open > ul.sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
ul.rlc-menu ul.sub-menu a {
	display: block;
	padding: 9px 18px;
	font-family: var(--rlc-font-body);
	font-weight: 700;
	font-size: 12.5px;
	letter-spacing: 0.03em;
	text-transform: none;
	color: #d1f4f7 !important;
	white-space: nowrap;
}
ul.rlc-menu ul.sub-menu a:hover { color: #fff !important; background: rgba(255,255,255,0.08); }

/* ===== Content ===== */
.rlc-content-wrap { padding: 30px; }
.rlc-content-inner { max-width: 900px; margin: 0 auto; }
.rlc-page-banner { margin: -30px -30px 24px; }
.rlc-page-banner img { width: 100%; display: block; }

h1.rlc-page-title {
	font-family: var(--rlc-font-heading);
	font-weight: normal;
	font-size: 2.1em;
	color: var(--rlc-heading);
	margin: 0 0 18px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--rlc-border);
}

.rlc-page-content h2 {
	font-family: var(--rlc-font-heading);
	font-weight: normal;
	font-size: 1.6em;
	line-height: 1.2;
	color: var(--rlc-heading);
	margin: 1em 0 0.5em;
}
.rlc-page-content h3 {
	font-family: var(--rlc-font-heading);
	color: var(--rlc-heading);
	font-size: 1.25em;
	margin: 1em 0 0.4em;
}
.rlc-page-content p,
.rlc-page-content .rlc-paragraph, .rlc-page-content .paragraph { margin: 0 0 1em; color: var(--rlc-text-light); }
.rlc-page-content a { color: var(--rlc-link); text-decoration: underline; }
.rlc-page-content a:hover { color: var(--rlc-link-hover); }
.rlc-page-content strong { color: var(--rlc-text); }
.rlc-page-content ul, .rlc-page-content ol { margin: 0 0 1em 1.4em; }
.rlc-page-content li { margin-bottom: 0.4em; }

.rlc-page-content .rlc-headline { color: var(--rlc-headline) !important; }

.rlc-page-content hr {
	border: 0;
	border-top: 1px solid var(--rlc-border);
	margin: 24px 0;
}

.rlc-page-content figure.rlc-image { margin: 10px 0; text-align: center; }
.rlc-page-content figure.rlc-image img { border-radius: 3px; }
.rlc-page-content figcaption { font-size: 0.85em; color: var(--rlc-text-light); margin-top: 6px; }

/* multi-column layout, ported from Weebly's wsite-multicol tables */
.rlc-cols {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin: 1em 0;
}
.rlc-col { flex: 1 1 260px; min-width: 0; }

/* buttons, ported from .wsite-button */
.rlc-btn,
.rlc-page-content a.rlc-btn {
	display: inline-block;
	background: var(--rlc-accent);
	color: #fff !important;
	font-family: var(--rlc-font-title);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none !important;
	padding: 11px 22px;
	border-radius: 3px;
	box-shadow: 0 2px 0 rgba(0,0,0,0.15);
}
.rlc-btn:hover { background: var(--rlc-accent-2); color: #fff !important; }
.rlc-btn.rlc-btn-large { padding: 14px 28px; font-size: 14px; }

/* iframes (map, calendar, video) stay responsive */
.rlc-page-content iframe { max-width: 100%; }

/* simple contact card used on the Contact Us page */
.rlc-contact-card {
	background: #f7f6f2;
	border: 1px solid var(--rlc-border);
	border-radius: 6px;
	padding: 20px 24px;
	margin: 1em 0;
}
.rlc-contact-card p { margin: 0 0 0.6em; }

/* ===== Footer ===== */
.rlc-footer-wrap {
	background: var(--rlc-header-bg) url('assets/textures/dark.png') repeat;
	color: #cfcfcf;
	margin-top: 20px;
}
.rlc-footer-inner {
	max-width: var(--rlc-max);
	margin: 0 auto;
	padding: 40px 30px 20px;
	display: flex;
	flex-wrap: wrap;
	gap: 30px;
}
.rlc-footer-col { flex: 1 1 220px; }
.rlc-footer-col h2 {
	font-family: var(--rlc-font-title);
	color: #fff;
	font-size: 1.05em;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 10px;
	padding-bottom: 6px;
	border-bottom: 1px solid rgba(255,255,255,0.15);
}
.rlc-footer-col p { color: #cfcfcf; font-size: 13.5px; margin-bottom: 0.6em; }
.rlc-footer-col a { color: #9fd6e6; }
.rlc-footer-col a:hover { color: #fff; }
.rlc-footer-bottom {
	max-width: var(--rlc-max);
	margin: 0 auto;
	padding: 14px 30px 26px;
	font-size: 12px;
	color: #9a9a9a;
	border-top: 1px solid rgba(255,255,255,0.08);
}

/* ===== Responsive ===== */
@media screen and (max-width: 880px) {
	.rlc-header-inner { padding: 18px 20px 14px; }
	.rlc-site-title a { font-size: 24px; }
	.rlc-header-right { display: none; }
	.rlc-nav-toggle { display: flex; }
	.rlc-nav-wrap { display: none; }
	.rlc-nav-wrap.is-open,
	body.nav-open .rlc-nav-wrap { display: block; }
	ul.rlc-menu { flex-direction: column; padding: 6px 0; }
	ul.rlc-menu ul.sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		background: rgba(0,0,0,0.25);
		display: none;
	}
	ul.rlc-menu li.menu-item-has-children.is-open > ul.sub-menu { display: block; }
	.rlc-content-wrap { padding: 20px; }
	.rlc-page-banner { margin: -20px -20px 20px; }
}

/* prevent long unbroken URLs/strings from overflowing on narrow screens */
.rlc-page-content, .rlc-page-content p, .rlc-page-content a, .rlc-page-content div {
	overflow-wrap: anywhere;
	word-break: break-word;
}
.rlc-outer { overflow-x: hidden; }

@media screen and (max-width: 700px) {
	.rlc-col { flex-basis: 100% !important; }
}
