/*
 * Bubble Church landing page (/bubble)
 * Loaded only on the "Bubble Church" page template.
 * Brand: Bubble Church Blue #00C2CB, white text on blue, Raleway.
 */

.bubble-page {
	font-family: 'Raleway', 'Open Sans', sans-serif;
	color: #17383a;
	background: #fff;
	overflow-x: hidden;
}
.bubble-page h2,
.bubble-page h3,
.bubble-page legend {
	font-family: 'Raleway', 'Open Sans', sans-serif;
	font-weight: 700;
}

/* Full-bleed fix. The theme wraps content in a Bootstrap .row (-15px side
   margins) and column (+15px padding). The full-width template zeroes the
   container padding, so the row's negative margins are no longer absorbed and
   stick 15px past the viewport, causing a horizontal scroll. Zero them on the
   bubble page only; the bubble sections manage their own spacing. */
.page-template-page-bubble .row { margin-left: 0; margin-right: 0; }
.page-template-page-bubble .content-area { padding-left: 0; padding-right: 0; }

/* ---------- banners (no-JS fallback messages) ---------- */
.bubble-banner {
	padding: 14px 20px;
	text-align: center;
	font-size: 16px;
	color: #fff;
}
.bubble-banner-success { background: #3a9d23; }
.bubble-banner-error   { background: #d0453a; }

/* ---------- buttons ---------- */
.bubble-btn {
	display: inline-block;
	border: 0;
	border-radius: 999px;
	padding: 12px 26px;
	font-family: 'Raleway', sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	text-decoration: none !important;
	transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
	box-shadow: 0 3px 0 rgba(0, 0, 0, .12);
}
.bubble-btn:hover,
.bubble-btn:focus {
	transform: translateY(-2px);
	box-shadow: 0 5px 0 rgba(0, 0, 0, .12);
}
.bubble-btn-blue   { background: #00C2CB; color: #fff !important; }
.bubble-btn-blue:hover,
.bubble-btn-blue:focus { background: #00aab2; color: #fff !important; }
.bubble-btn-yellow { background: #FFDF6B; color: #7a5a00 !important; }
.bubble-btn-yellow:hover,
.bubble-btn-yellow:focus { background: #ffd84d; color: #7a5a00 !important; }
.bubble-btn-pink   { background: #F9AEDF; color: #8c2a68 !important; }
.bubble-btn-pink:hover,
.bubble-btn-pink:focus { background: #f79cd8; color: #8c2a68 !important; }
.bubble-btn-ghost  {
	background: transparent;
	color: #fff !important;
	border: 2px solid rgba(255, 255, 255, .85);
	box-shadow: none;
}
.bubble-btn-ghost:hover,
.bubble-btn-ghost:focus { background: rgba(255, 255, 255, .15); }

/* ---------- splashes ---------- */
.bubble-splash {
	position: absolute;
	width: 260px;
	height: 260px;
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none;
	opacity: .9;
	z-index: 0;
}
.bubble-splash-yellow {
	top: -40px; right: -60px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%23F8E17B' d='M50 8c8 0 10 9 17 10s13-6 18 0-2 12 1 19 12 7 11 15-11 7-15 13 2 14-5 18-12-4-20-3-12 8-19 4-3-12-8-18-14-3-15-11 8-10 10-17-5-14 1-19 12 2 18-1 6-10 6-10z'/%3E%3Ccircle fill='%23F8E17B' cx='88' cy='22' r='4'/%3E%3Ccircle fill='%23F8E17B' cx='14' cy='78' r='3'/%3E%3C/svg%3E");
}
.bubble-splash-purple {
	bottom: -60px; left: -70px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%23A88BE3' d='M50 8c8 0 10 9 17 10s13-6 18 0-2 12 1 19 12 7 11 15-11 7-15 13 2 14-5 18-12-4-20-3-12 8-19 4-3-12-8-18-14-3-15-11 8-10 10-17-5-14 1-19 12 2 18-1 6-10 6-10z'/%3E%3Ccircle fill='%23A88BE3' cx='90' cy='30' r='4'/%3E%3C/svg%3E");
}
.bubble-splash-green {
	top: -50px; right: -50px;
	width: 220px; height: 220px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='%23BCD64B' d='M50 8c8 0 10 9 17 10s13-6 18 0-2 12 1 19 12 7 11 15-11 7-15 13 2 14-5 18-12-4-20-3-12 8-19 4-3-12-8-18-14-3-15-11 8-10 10-17-5-14 1-19 12 2 18-1 6-10 6-10z'/%3E%3C/svg%3E");
}

/* ---------- hero ---------- */
.bubble-hero {
	position: relative;
	background-color: #00C2CB;
	background-size: cover;
	background-position: center;
	color: #fff;
	text-align: center;
	padding: 56px 20px 64px;
	overflow: hidden; /* clip puppets that poke past the edges */
}
.bubble-hero-inner {
	position: relative;
	max-width: 760px;
	margin: 0 auto;
	z-index: 1;
}

/* Brand puppets: boy pokes in from the left, girl from the right, anchored to
   the bottom and sitting behind the content. Desktop only (the phone layout
   is already full and stays untouched). */
.bubble-puppet {
	display: none;
	position: absolute;
	bottom: 0;
	z-index: 0;
	height: auto;
	pointer-events: none;
	user-select: none;
}
.bubble-puppet-left  { left: -20px; width: 270px; }
.bubble-puppet-right {
	right: 140px;
    width: 320px;
    bottom: -40px;
    transform: rotate(47deg);
    transform-origin: center bottom;
}
@media (min-width: 992px) {
	.bubble-puppet { display: block; }
}
@media (min-width: 1280px) {
	.bubble-puppet-left  { width: 400px; }
	.bubble-puppet-right { width: 430px; }
}
.bubble-logo {
	width: 420px;
	max-width: 85%;
	height: auto;
}
.bubble-strapline {
	font-size: 28px;
	font-weight: 800;
	margin: 18px 0 8px;
	color: #fff;
}
.bubble-lead {
	font-size: 18px;
	font-weight: 400;
	max-width: 560px;
	margin: 0 auto 18px;
	color: #fff;
}
.bubble-hero-when {
	font-size: 16px;
	margin-bottom: 26px;
	color: #fff;
}
.bubble-hero-when span {
	display: block;
	margin: 3px 0;
}
.bubble-hero-cta .bubble-btn { margin: 6px 8px; }

/* ---------- sections ---------- */
.bubble-section {
	position: relative;
	padding: 56px 20px;
	max-width: 1080px;
	margin: 0 auto;
}
.bubble-h2 {
	font-size: 34px;
	font-weight: 800;
	color: #009aa2;
	margin: 0 0 10px;
	text-align: center;
}
.bubble-sub {
	text-align: center;
	font-size: 17px;
	max-width: 620px;
	margin: 0 auto 34px;
}

/* ---------- event cards ---------- */
.bubble-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 22px;
	margin-bottom: 34px;
}
.bubble-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	background: #fff;
	border: 1px solid #e2eeef;
	border-radius: 16px;
	padding: 20px;
	box-shadow: 0 6px 18px rgba(0, 60, 64, .1);
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.bubble-card:hover {
	transform: translateY(-4px);
	border-color: #9fdfe3;
	box-shadow: 0 12px 26px rgba(0, 60, 64, .16);
}
/* Compact date badge: replaces the old full-height teal column */
.bubble-card-date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	width: 58px;
	height: 58px;
	border-radius: 16px;
	background: #00C2CB;
	color: #fff;
	margin-bottom: 14px;
	box-shadow: 0 3px 0 rgba(0, 60, 64, .12);
}
.bubble-card-day {
	font-size: 24px;
	font-weight: 800;
	line-height: 1;
}
.bubble-card-month {
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: 1.5px;
}
.bubble-card-title {
	font-size: 18px;
	font-weight: 800;
	line-height: 1.3;
	margin: 0 0 4px;
	color: #17383a;
}
.bubble-card-meta {
	font-size: 14px;
	color: #4d6b6d;
	margin: 0 0 18px;
}
/* Action row pinned to a shared baseline across cards */
.bubble-card-actions {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: auto 0 0;
}
.bubble-card-actions .bubble-btn {
	font-size: 14px;
	padding: 10px 20px;
	white-space: nowrap;
}
.bubble-card-link {
	font-size: 14px;
	font-weight: 600;
	color: #009aa2;
	white-space: nowrap;
}
.bubble-card-link:hover,
.bubble-card-link:focus {
	color: #007a80;
	text-decoration: underline;
}

/* ---------- series (book everything) panel ---------- */
.bubble-series-row {
	display: flex;
	justify-content: center;
}
.bubble-series-box {
	position: relative;
	width: 100%;
	max-width: 760px;
	background: #00C2CB;
	background-image: linear-gradient(150deg, #00C2CB 0%, #00b0b9 100%);
	border-radius: 20px;
	padding: 30px 32px 32px;
	box-shadow: 0 12px 30px rgba(0, 60, 64, .22);
	color: #fff;
	text-align: center;
}
.bubble-series-tag {
	display: inline-block;
	background: #FFDF6B;
	color: #7a5a00;
	font-size: 12px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	border-radius: 999px;
	padding: 5px 14px;
	margin-bottom: 12px;
}
.bubble-series-box h3 {
	margin: 0 0 8px;
	font-size: 24px;
	font-weight: 800;
	color: #fff;
}
.bubble-series-intro p {
	margin: 0 auto 24px;
	max-width: 520px;
	font-size: 16px;
	color: rgba(255, 255, 255, .95);
}
/* Two-up option sub-cards: shared radius/shadow language with the date cards */
.bubble-series-options {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}
.bubble-series-option {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #fff;
	border-radius: 16px;
	padding: 20px 18px;
	box-shadow: 0 6px 16px rgba(0, 40, 42, .18);
}
.bubble-series-church {
	font-size: 16px;
	font-weight: 800;
	line-height: 1.3;
	color: #17383a;
}
.bubble-series-when {
	font-size: 13px;
	color: #4d6b6d;
	margin: 2px 0 16px;
}
.bubble-series-option .bubble-btn {
	margin-top: auto;
	font-size: 14px;
	padding: 10px 22px;
	white-space: nowrap;
}
.bubble-all-events {
	text-align: center;
	margin-top: 30px;
	font-size: 15px;
}

/* ---------- about ---------- */
.bubble-about {
	background: #00C2CB;
	color: #fff;
	max-width: none;
}
.bubble-about .bubble-h2 {
	color: #fff;
	text-align: left;
}
.bubble-about-grid {
	position: relative;
	max-width: 1080px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 44px;
	align-items: start;
	z-index: 1;
}
.bubble-about-text p {
	font-size: 17px;
	color: #fff;
}
.bubble-ticks {
	list-style: none;
	padding: 0;
	margin: 0 0 22px;
}
.bubble-ticks li {
	padding-left: 30px;
	position: relative;
	margin-bottom: 9px;
	font-size: 16px;
}
.bubble-ticks li:before {
	content: "\2713";
	position: absolute;
	left: 0;
	top: 0;
	font-weight: 800;
	color: #FFDF6B;
}
.bubble-about-video video,
.bubble-about-video img {
	width: 100%;
	border-radius: 14px;
	box-shadow: 0 10px 24px rgba(0, 40, 42, .3);
	display: block;
	background: #003c40;
}
.bubble-caption {
	font-size: 13px;
	margin: 8px 0 20px;
	color: rgba(255, 255, 255, .85);
}

/* ---------- gallery ---------- */
.bubble-gallery {
	max-width: none;
	padding: 40px 0;
}
.bubble-gallery-strip {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 8px;
	padding: 0 8px;
}
.bubble-gallery-strip img {
	width: 100%;
	height: 150px;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}

/* ---------- footer info ---------- */
.bubble-footer-info {
	background: #f4fbfc;
	max-width: none;
}
.bubble-footer-cols {
	max-width: 1080px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 44px;
}
.bubble-footer-cols h3 {
	color: #009aa2;
	font-size: 20px;
	margin-top: 0;
}

/* ---------- modal ---------- */
.bubble-modal {
	border: 0;
	border-radius: 18px;
	padding: 0;
	width: min(560px, calc(100vw - 32px));
	max-height: calc(100vh - 48px);
	box-shadow: 0 24px 60px rgba(0, 30, 32, .35);
	font-family: 'Raleway', 'Open Sans', sans-serif;
	color: #17383a;
}
.bubble-modal::backdrop {
	background: rgba(0, 45, 48, .65);
}
.bubble-modal-head {
	background: #00C2CB;
	padding: 14px 18px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: sticky;
	top: 0;
	z-index: 2;
}
.bubble-modal-logo { height: 26px; width: auto; }
.bubble-modal-head .bubble-modal-close {
	background: transparent;
	border: 0;
	color: #fff;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
	padding: 0 4px;
}
.bubble-modal-body { padding: 22px 26px 30px; }
.bubble-modal-body h2 {
	font-size: 24px;
	margin: 0 0 8px;
	color: #009aa2;
}
.bubble-free-tag {
	font-size: 14px;
	margin-bottom: 18px;
}
.bubble-free-tag span {
	background: #BCD64B;
	color: #33470a;
	font-weight: 800;
	font-size: 12px;
	border-radius: 6px;
	padding: 2px 8px;
	margin-right: 6px;
}

/* ---------- form ---------- */
#bubble-form fieldset {
	border: 0;
	padding: 0;
	margin: 0 0 8px;
}
#bubble-form legend {
	font-size: 15px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .6px;
	color: #009aa2;
	margin: 14px 0 10px;
	padding: 0;
	border: 0;
}
.bubble-field { margin-bottom: 14px; }
.bubble-field-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
.bubble-field label,
.bubble-radio-label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 5px;
	color: #17383a;
}
.bubble-field input[type="text"],
.bubble-field input[type="email"],
.bubble-field select,
.bubble-field textarea {
	width: 100%;
	border: 1.5px solid #c7dfe1;
	border-radius: 10px;
	padding: 10px 12px;
	font-size: 15px;
	font-family: inherit;
	color: #17383a;
	background: #fff;
	height: auto;
}
.bubble-field input:focus,
.bubble-field select:focus,
.bubble-field textarea:focus {
	outline: none;
	border-color: #00C2CB;
	box-shadow: 0 0 0 3px rgba(0, 194, 203, .2);
}
.bubble-field-small select { width: 110px; }
.bubble-radios label {
	display: inline-block;
	margin: 0 8px 6px 0;
	cursor: pointer;
	font-weight: 400;
}
.bubble-radios input { position: absolute; opacity: 0; }
.bubble-radios span {
	display: inline-block;
	border: 1.5px solid #c7dfe1;
	border-radius: 999px;
	padding: 7px 16px;
	font-size: 14px;
	transition: all .12s ease;
}
.bubble-radios input:checked + span {
	background: #00C2CB;
	border-color: #00C2CB;
	color: #fff;
	font-weight: 700;
}
.bubble-radios input:focus-visible + span {
	box-shadow: 0 0 0 3px rgba(0, 194, 203, .35);
}
.bubble-hp { display: none !important; }
.bubble-form-error {
	background: #fdecea;
	color: #b3261e;
	border-radius: 10px;
	padding: 10px 14px;
	font-size: 14px;
}
.bubble-submit {
	width: 100%;
	font-size: 17px;
	padding: 14px;
}
.bubble-submit[disabled] {
	opacity: .6;
	cursor: wait;
	transform: none;
}

/* ---------- success state ---------- */
.bubble-success { text-align: center; padding: 20px 0 8px; }
.bubble-success-tick {
	width: 74px;
	height: 74px;
	margin: 0 auto 14px;
	border-radius: 50%;
	background: #BCD64B;
	color: #33470a;
	font-size: 40px;
	font-weight: 800;
	line-height: 74px;
}
.bubble-success h2 { color: #009aa2; }
#bubble-success-what { font-weight: 700; }

/* ---------- responsive ---------- */
@media (max-width: 860px) {
	.bubble-about-grid,
	.bubble-footer-cols { grid-template-columns: 1fr; }
	.bubble-gallery-strip { grid-template-columns: repeat(3, 1fr); }
	.bubble-h2 { font-size: 28px; }
}
@media (max-width: 520px) {
	.bubble-strapline { font-size: 22px; }
	.bubble-field-row { grid-template-columns: 1fr; }
	.bubble-series-options { grid-template-columns: 1fr; }
	.bubble-gallery-strip { grid-template-columns: repeat(2, 1fr); }
	.bubble-gallery-strip img { height: 120px; }
	.bubble-splash { display: none; }
}
