/*
 * LBF Contact Page — contact-page.css
 * Scoped to .lbf-contact-page
 * v25.45 — two-layer containment matching sponsors page exactly
 *
 * Layer 1: .lbf-con-canvas      — full-width page canvas, header-offset padding
 * Layer 2: .lbf-con-outer-shell — rounded-[2.75rem] bordered shell containing all sections
 * Layer 3: .lbf-con-shell--*    — individual inner section shells (hero, form, cards, map, faq)
 */

/* ── TOKENS + FONT ── */
.lbf-contact-page {
	--con-blue:   #0037a7;
	--con-blue-dk:#002580;
	--con-gold:   #f3c303;
	--con-ink:    #0e1525;
	--con-txt:    #374151;
	--con-muted:  #6b7280;
	--con-bdr:    #d7e2fb;
	--con-bg:     #f8faff;
	--con-bg2:    #eef2fc;
	font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
	background: var(--con-bg);
	color: var(--con-ink);
	min-height: 100vh;
}

/* ── LAYER 1: CANVAS — mirrors .spn-page .spn-canvas exactly ── */
.lbf-con-canvas {
	max-width: 1480px; /* matches entertainment page canvas width */
	margin-inline: auto;
	padding-top: calc(var(--header-h, 82px) + 1.5rem);
	padding-bottom: 3rem;
	padding-left:  clamp(1rem, 2vw, 2rem);
	padding-right: clamp(1rem, 2vw, 2rem);
}
@media (min-width: 768px)  { .lbf-con-canvas { padding-left: 1.5rem; padding-right: 1.5rem; } }
@media (min-width: 1024px) { .lbf-con-canvas { padding-left: 2rem;   padding-right: 2rem;   } }

/* ── LAYER 2: OUTER SHELL — mirrors .spn-outer-shell exactly ── */
.lbf-con-outer-shell {
	border-radius: 2.75rem;
	border: 1px solid var(--con-bdr);
	background: linear-gradient(180deg,
		rgba(252,253,255,0.99) 0%,
		rgba(246,249,255,0.98) 42%,
		rgba(250,252,255,0.99) 100%);
	padding: 1rem;
	box-shadow: 0 30px 80px rgba(0,55,167,0.12);
}
@media (min-width: 768px)  { .lbf-con-outer-shell { padding: 1.25rem; } }
@media (min-width: 1024px) { .lbf-con-outer-shell { padding: 1.5rem;  } }

/* ── LAYER 3: INNER SHELLS — each section is a rounded inner shell ── */
.lbf-con-shell {
	position: relative;
	overflow: hidden;
	border-radius: 2.25rem;
	border: 1px solid var(--con-bdr);
}
.lbf-con-shell + .lbf-con-shell { margin-top: 1rem; }
@media (min-width: 768px)  { .lbf-con-shell + .lbf-con-shell { margin-top: 1.25rem; } }
@media (min-width: 1024px) { .lbf-con-shell + .lbf-con-shell { margin-top: 1.5rem;  } }

/* §1 Hero shell — bg image fills rounded wrapper */
.lbf-con-shell--hero {
	border-color: rgba(255,255,255,0.30);
	background-image:
		radial-gradient(circle at top left, rgba(111,88,201,0.14), transparent 28%),
		radial-gradient(circle at 80% 20%, rgba(0,55,167,0.18), transparent 32%),
		linear-gradient(135deg, rgba(6,18,46,0.68), rgba(0,37,128,0.50), rgba(255,255,255,0.05)),
		url('https://www.lexblueberryfest.com/wp-content/uploads/2026/04/Contact_Us_Hero_Background.webp');
	background-size: cover;
	background-position: center;
	box-shadow: 0 18px 46px rgba(8,29,84,0.10);
}

/* §2 Form shell */
.lbf-con-shell--form {
	background: rgba(255,255,255,0.70);
	backdrop-filter: blur(12px);
	padding: 1.5rem;
}
@media (min-width: 768px)  { .lbf-con-shell--form { padding: 1.75rem; } }
@media (min-width: 1024px) { .lbf-con-shell--form { padding: 2rem;    } }

/* §3 Cards shell */
.lbf-con-shell--cards {
	background: rgba(255,255,255,0.55);
	backdrop-filter: blur(8px);
	padding: 1.5rem;
}
@media (min-width: 768px)  { .lbf-con-shell--cards { padding: 1.75rem; } }
@media (min-width: 1024px) { .lbf-con-shell--cards { padding: 2rem;    } }

/* §4 Map shell */
.lbf-con-shell--map {
	background: rgba(255,255,255,0.65);
	padding: 1.5rem;
}
@media (min-width: 768px)  { .lbf-con-shell--map { padding: 1.75rem; } }
@media (min-width: 1024px) { .lbf-con-shell--map { padding: 2rem;    } }

/* §5 FAQ shell */
.lbf-con-shell--faq {
	background: rgba(255,255,255,0.60);
	backdrop-filter: blur(8px);
	padding: 1.5rem;
}
@media (min-width: 768px)  { .lbf-con-shell--faq { padding: 1.75rem; } }
@media (min-width: 1024px) { .lbf-con-shell--faq { padding: 2rem;    } }

/* ── SHARED UTILITIES ── */
.lbf-con-eyebrow {
	font-size: 10px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 0.18em;
	color: var(--con-blue); margin: 0 0 4px;
}
.lbf-con-h2 {
	font-family: 'Outfit', sans-serif;
	font-size: clamp(20px, 3vw, 26px); font-weight: 600; line-height: 1.2;
	color: var(--con-ink); margin: 6px 0 0;
}
.lbf-con-gold-bar {
	height: 3px; width: 48px; border-radius: 9999px;
	background: var(--con-gold); margin-top: 8px;
}
.lbf-con-body-sm { font-size: 13px; line-height: 1.7; color: var(--con-txt); }
.lbf-con-divider {
	height: 1px; background: linear-gradient(to right, transparent, #c8d6f5, transparent);
	margin-bottom: 20px; pointer-events: none;
}
.lbf-con-bg-dots {
	pointer-events: none; position: absolute; inset: 0; z-index: 0;
	opacity: 0.18;
	background-image: radial-gradient(circle, rgba(0,55,167,0.20) 1px, transparent 1.2px);
	background-size: 26px 26px;
}
.lbf-con-grid { display: grid; gap: 20px; }
.lbf-con-grid--form { grid-template-columns: 1fr; }
.lbf-con-grid--map  { grid-template-columns: 1fr; }
.lbf-con-grid--faq  { grid-template-columns: 1fr; }
@media (min-width: 1024px) {
	.lbf-con-grid--form { grid-template-columns: 1.06fr 0.94fr; }
	.lbf-con-grid--map  { grid-template-columns: 1.02fr 0.98fr; }
	.lbf-con-grid--faq  { grid-template-columns: 1.02fr 0.98fr; }
}

/* ── BUTTONS ── */
.lbf-con-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	border-radius: 9999px; font-size: 12px; font-weight: 700;
	text-decoration: none; cursor: pointer; border: none;
	transition: transform 0.3s, filter 0.3s, box-shadow 0.3s;
	position: relative; overflow: hidden;
}
.lbf-con-btn::before {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(120deg, transparent, rgba(255,255,255,0.30), transparent);
	transform: translateX(-100%); transition: transform 0.7s; pointer-events: none;
}
.lbf-con-btn:hover::before { transform: translateX(100%); }
.lbf-con-btn:hover { transform: translateY(-3px) scale(1.02); filter: brightness(1.10); }
.lbf-con-btn--hero-primary {
	background: linear-gradient(to right, #3b5bfd, #6f58c9);
	color: #fff; padding: 10px 20px; box-shadow: 0 14px 28px rgba(0,55,167,0.35);
}
.lbf-con-btn--hero-secondary {
	background: linear-gradient(to right, #4c6fff, #7a6cff);
	color: #fff; padding: 10px 20px; box-shadow: 0 14px 28px rgba(0,55,167,0.30);
}
.lbf-con-btn--card {
	background: linear-gradient(to right, #2452df, #5e63e8);
	color: #fff; padding: 8px 12px; font-size: 10px;
	letter-spacing: 0.10em; text-transform: uppercase; width: 100%;
	box-shadow: 0 12px 22px rgba(36,82,223,0.24);
}
.lbf-con-btn--primary {
	background: linear-gradient(to right, #2452df, #5e63e8);
	color: #fff; padding: 10px 20px; box-shadow: 0 12px 24px rgba(36,82,223,0.24);
}
.lbf-con-btn--outline {
	background: #fff; color: var(--con-blue); padding: 10px 20px;
	border: 1px solid #c8d6f5; box-shadow: 0 2px 6px rgba(0,55,167,0.06);
}
.lbf-con-btn--outline:hover { background: var(--con-bg2); }

/* ── CARDS (inner content cards inside shells) ── */
.lbf-con-card {
	position: relative; overflow: hidden;
	border-radius: 20px; padding: 20px;
}
@media (min-width: 768px) { .lbf-con-card { padding: 24px; } }
.lbf-con-card--glass {
	background: rgba(255,255,255,0.82); backdrop-filter: blur(24px);
	border: 1px solid rgba(255,255,255,0.50); box-shadow: 0 8px 24px rgba(31,38,135,0.08);
}
.lbf-con-card__glow-tr {
	pointer-events: none; position: absolute; top: 0; right: 0;
	width: 112px; height: 112px; border-radius: 50%;
	background: rgba(0,55,167,0.07); filter: blur(24px);
}
.lbf-con-card--glass-purple {
	background: linear-gradient(135deg, rgba(111,88,201,0.22), rgba(0,55,167,0.18));
	backdrop-filter: blur(24px); border: 1px solid rgba(255,255,255,0.30);
	box-shadow: 0 8px 24px rgba(8,29,84,0.06); border-radius: 20px; padding: 20px;
}
@media (min-width: 768px) { .lbf-con-card--glass-purple { padding: 24px; } }
.lbf-con-card--white {
	background: #fff; border: 1px solid rgba(200,214,245,0.60);
	box-shadow: 0 6px 18px rgba(8,29,84,0.04);
}
.lbf-con-card--dark-blue {
	background: linear-gradient(135deg, #0037a7, #002580);
	border: 1px solid rgba(255,255,255,0.15); box-shadow: 0 10px 26px rgba(8,29,84,0.12);
}
.lbf-con-card--dark-blue .lbf-con-h2 { color: #fff; }
.lbf-con-card--dark-blue__glow {
	pointer-events: none; position: absolute; top: -18px; right: -18px;
	width: 112px; height: 112px; border-radius: 50%;
	background: rgba(255,255,255,0.08); filter: blur(24px);
}
.lbf-con-card--map-wrap {
	background: #fff; border: 1px solid rgba(200,214,245,0.60);
	box-shadow: 0 6px 18px rgba(8,29,84,0.05); padding: 0; overflow: hidden;
}
.lbf-con-card__map-header { border-bottom: 1px solid #e7ecfa; padding: 20px 24px; }
.lbf-con-card__map-footer { border-top: 1px solid #e7ecfa; background: #fff; padding: 16px 24px; }

/* ── §1 HERO CONTENT ── */
.lbf-con-hero__inner {
	position: relative; z-index: 1; padding: 32px 20px; display: grid; gap: 24px;
}
@media (min-width: 768px)  { .lbf-con-hero__inner { padding: 36px 32px; } }
@media (min-width: 1024px) {
	.lbf-con-hero__inner { grid-template-columns: 1.12fr 0.88fr; align-items: end; }
}
.lbf-con-hero__pills { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.lbf-con-pill {
	font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.95);
	border: 1px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.12);
	padding: 6px 14px; border-radius: 9999px; backdrop-filter: blur(8px);
}
.lbf-con-hero__h1 {
	font-family: 'Outfit', system-ui, sans-serif; font-size: clamp(28px, 4vw, 42px);
	font-weight: 900; line-height: 1; letter-spacing: -.035em; color: #fff; margin: 0;
}
.lbf-con-hero__sub {
	font-size: 15px; line-height: 1.75; color: rgba(255,255,255,0.88);
	max-width: 540px; margin-top: 8px;
}
.lbf-con-hero__btns { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 12px; }
.lbf-con-hero__right { display: flex; justify-content: flex-end; }
.lbf-con-quickhelp-wrap {
	border: 1px solid rgba(255,255,255,0.20); background: rgba(255,255,255,0.12);
	backdrop-filter: blur(24px); border-radius: 24px; padding: 10px;
	box-shadow: 0 20px 50px rgba(0,0,0,0.20); width: 100%; max-width: 320px;
}
.lbf-con-quickhelp {
	background: rgba(255,255,255,0.96); border-radius: 20px; padding: 8px;
	color: var(--con-ink); box-shadow: 0 20px 50px rgba(7,22,59,0.18);
}
.lbf-con-quickhelp__header {
	display: flex; align-items: flex-start; justify-content: space-between; gap: 8px;
}
.lbf-con-quickhelp__h2 {
	font-family: 'Outfit', sans-serif; font-size: 13px; font-weight: 600;
	margin: 4px 0 0; color: var(--con-ink);
}
.lbf-con-quickhelp__icon-box {
	flex-shrink: 0; width: 32px; height: 32px; background: var(--con-bg2);
	color: var(--con-blue); border-radius: 10px;
	display: flex; align-items: center; justify-content: center;
}
.lbf-con-quickhelp__icon-box svg { width: 15px; height: 15px; }
.lbf-con-quickhelp__links { margin-top: 8px; display: grid; gap: 4px; }
.lbf-con-quicklink {
	position: relative; overflow: hidden;
	display: flex; align-items: center; justify-content: space-between;
	border: 1px solid #c8d6f5; background: var(--con-bg); border-radius: 10px;
	padding: 6px 10px; font-size: 10px; font-weight: 600; color: var(--con-ink);
	text-decoration: none; transition: border-color 0.2s, background 0.2s, color 0.2s;
}
.lbf-con-quicklink:hover { border-color: var(--con-blue); background: var(--con-bg2); color: var(--con-blue); }
.lbf-con-quicklink__left {
	display: flex; align-items: center; gap: 7px; position: relative; z-index: 1;
}
.lbf-con-quicklink__left svg { width: 13px; height: 13px; color: var(--con-blue); flex-shrink: 0; transition: transform 0.3s; }
.lbf-con-quicklink:hover .lbf-con-quicklink__left svg { transform: scale(1.15); }
/* shimmer sweep on hover */
.lbf-con-quicklink::before {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.55) 50%, transparent 100%);
	transform: translateX(-100%);
	transition: transform 0.6s ease;
	pointer-events: none; z-index: 0;
}
.lbf-con-quicklink:hover::before { transform: translateX(100%); }
.lbf-con-quicklink > svg { width: 12px; height: 12px; color: var(--con-blue); position: relative; z-index: 1; }
.lbf-con-quickhelp__tip {
	margin-top: 8px; background: linear-gradient(135deg, #0037a7, #002580);
	border-radius: 10px; padding: 8px; color: #fff; font-size: 10px; line-height: 1.6;
}
.lbf-con-quickhelp__tip p:last-child { color: rgba(255,255,255,0.92); }

/* ── §2 FORM ── */
.lbf-con-gf-wrap { margin-top: 20px; }
.lbf-con-gf-wrap .gform_wrapper { margin: 0; }
.lbf-con-gf-wrap .gfield label,
.lbf-con-gf-wrap .gfield_label {
	font-size: 11px !important; font-weight: 700 !important;
	text-transform: uppercase !important; letter-spacing: 0.14em !important;
	color: var(--con-ink) !important; margin-bottom: 8px !important;
}
.lbf-con-gf-wrap input[type="text"],
.lbf-con-gf-wrap input[type="email"],
.lbf-con-gf-wrap input[type="tel"],
.lbf-con-gf-wrap input[type="number"],
.lbf-con-gf-wrap select,
.lbf-con-gf-wrap textarea {
	width: 100% !important; border: 1px solid #c8d6f5 !important;
	background: var(--con-bg) !important; border-radius: 12px !important;
	padding: 10px 14px !important; font-size: 14px !important;
	color: var(--con-ink) !important; outline: none !important;
	box-shadow: none !important; transition: border-color 0.2s, background 0.2s !important;
}
.lbf-con-gf-wrap input:focus,
.lbf-con-gf-wrap select:focus,
.lbf-con-gf-wrap textarea:focus { border-color: var(--con-blue) !important; background: #fff !important; }
.lbf-con-gf-wrap textarea { border-radius: 16px !important; }
.lbf-con-gf-wrap .gform_footer input[type="submit"],
.lbf-con-gf-wrap .gform_footer button {
	background: linear-gradient(to right, #3b5bfd, #6f58c9) !important;
	color: #fff !important; border: none !important; border-radius: 9999px !important;
	padding: 10px 24px !important; font-size: 14px !important; font-weight: 700 !important;
	cursor: pointer !important; box-shadow: 0 14px 32px rgba(0,55,167,0.35) !important;
	transition: transform 0.3s, filter 0.3s, background-position 0.7s ease !important;
	background-image: linear-gradient(120deg, #3b5bfd 0%, #6f58c9 40%, rgba(255,255,255,0.25) 50%, #6f58c9 60%, #3b5bfd 100%) !important;
	background-size: 250% 100% !important;
	background-position: 100% 0 !important;
}
.lbf-con-gf-wrap .gform_footer input[type="submit"]:hover,
.lbf-con-gf-wrap .gform_footer button:hover {
	transform: translateY(-2px) scale(1.02) !important; filter: brightness(1.10) !important;
	background-position: 0% 0 !important;
}

/* ── 1. Field spacing ── */
.lbf-con-gf-wrap .gform_body .gform_fields { gap: 16px !important; }
.lbf-con-gf-wrap .gfield { margin-bottom: 0 !important; }

/* ── 2. Validation errors ── */
.lbf-con-gf-wrap .gfield_error .gfield_label,
.lbf-con-gf-wrap .gfield_error label { color: #c0392b !important; }
.lbf-con-gf-wrap .gfield_error input[type="text"],
.lbf-con-gf-wrap .gfield_error input[type="email"],
.lbf-con-gf-wrap .gfield_error input[type="tel"],
.lbf-con-gf-wrap .gfield_error input[type="number"],
.lbf-con-gf-wrap .gfield_error select,
.lbf-con-gf-wrap .gfield_error textarea {
	border-color: #e74c3c !important;
	background: #fff8f8 !important;
}
.lbf-con-gf-wrap .gfield_error input:focus,
.lbf-con-gf-wrap .gfield_error select:focus,
.lbf-con-gf-wrap .gfield_error textarea:focus {
	border-color: #c0392b !important;
}
.lbf-con-gf-wrap .validation_message,
.lbf-con-gf-wrap .gfield_description.validation_message {
	font-size: 11px !important; font-weight: 600 !important;
	color: #c0392b !important; margin-top: 6px !important;
	padding: 6px 10px !important; background: #fff0f0 !important;
	border-radius: 8px !important; border: 1px solid #fcd0cc !important;
	display: block !important;
}
.lbf-con-gf-wrap .gform_validation_errors,
.lbf-con-gf-wrap .validation_error {
	background: #fff0f0 !important; border: 1px solid #fcd0cc !important;
	border-radius: 12px !important; padding: 12px 16px !important;
	color: #c0392b !important; font-size: 13px !important;
	font-weight: 600 !important; margin-bottom: 16px !important;
}

/* ── 3. Required asterisk ── */
.lbf-con-gf-wrap .gfield_required {
	color: #e74c3c !important; font-size: 13px !important;
	font-weight: 700 !important; margin-left: 3px !important;
}

/* ── 4. Confirmation message ── */
.lbf-con-gf-wrap .gform_confirmation_wrapper,
.lbf-con-gf-wrap .gform_confirmation_message {
	background: linear-gradient(135deg, #f0fff4, #e8f8ee) !important;
	border: 1px solid #a8dbb4 !important; border-radius: 16px !important;
	padding: 28px 24px !important; text-align: center !important;
	color: #1a6b35 !important; font-size: 15px !important;
	line-height: 1.7 !important; margin-top: 16px !important;
}
.lbf-con-gf-wrap .gform_confirmation_message::before {
	content: '✓'; display: block !important;
	font-size: 32px !important; color: #27ae60 !important;
	margin-bottom: 10px !important; font-weight: 700 !important;
}

/* ── 5. Field descriptions ── */
.lbf-con-gf-wrap .gfield_description:not(.validation_message) {
	font-size: 11px !important; color: var(--con-muted) !important;
	margin-top: 6px !important; line-height: 1.5 !important;
}

/* ── 6. Select dropdown custom arrow ── */
.lbf-con-gf-wrap select {
	appearance: none !important; -webkit-appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230037a7' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	padding: 12px 36px 12px 14px !important;
	height: auto !important; min-height: 46px !important;
	line-height: 1.4 !important;
}

/* ── 7. Footer spacing ── */
.lbf-con-gf-wrap .gform_footer,
.lbf-con-gf-wrap .gform-footer {
	margin-top: 20px !important; padding-top: 0 !important;
}
.lbf-con-form-grid { margin-top: 20px; display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 768px) { .lbf-con-form-grid { grid-template-columns: 1fr 1fr; } }
.lbf-con-field { display: flex; flex-direction: column; }
.lbf-con-field--full { grid-column: 1 / -1; }
.lbf-con-label {
	font-size: 11px; font-weight: 700; text-transform: uppercase;
	letter-spacing: 0.14em; color: var(--con-ink); margin-bottom: 8px;
}
.lbf-con-input {
	border: 1px solid #c8d6f5; background: var(--con-bg); border-radius: 12px;
	padding: 10px 14px; font-size: 14px; color: var(--con-ink); outline: none;
	transition: border-color 0.2s, background 0.2s; font-family: inherit;
}
.lbf-con-input:focus { border-color: var(--con-blue); background: #fff; }
.lbf-con-textarea { border-radius: 16px; resize: vertical; }
.lbf-con-form-footer { margin-top: 20px; padding-top: 16px; border-top: 1px solid #e8eefc; }
.lbf-con-form-footer__note { font-size: 12px; line-height: 1.7; color: var(--con-muted); max-width: 480px; }
.lbf-con-notice {
	margin-top: 16px; background: var(--con-bg2); border: 1px solid #c8d6f5;
	border-radius: 8px; padding: 12px 16px; font-size: 13px; color: var(--con-txt);
}
.lbf-con-notice a { color: var(--con-blue); }
.lbf-con-tips { margin-top: 20px; display: grid; gap: 12px; }
.lbf-con-tip-row {
	display: flex; gap: 12px; align-items: flex-start;
	border: 1px solid rgba(255,255,255,0.60); background: rgba(255,255,255,0.92);
	border-radius: 15px; padding: 12px; box-shadow: 0 8px 18px rgba(8,29,84,0.05);
}
.lbf-con-tip-num {
	flex-shrink: 0; width: 32px; height: 32px; background: var(--con-blue);
	color: #fff; font-size: 12px; font-weight: 700; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
}
.lbf-con-helpful-note {
	margin-top: 20px; background: linear-gradient(135deg, rgba(0,55,167,0.98), rgba(0,37,128,0.98));
	border-radius: 18px; padding: 14px; color: #fff;
}
.lbf-con-helpful-note p:last-child { font-size: 13px; line-height: 1.6; color: rgba(255,255,255,0.92); margin-top: 6px; }

/* ── §3 CONTACT CARDS ── */
.lbf-con-cards-grid { display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 600px)  { .lbf-con-cards-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .lbf-con-cards-grid { grid-template-columns: repeat(5, 1fr); } }
.lbf-con-dcard {
	position: relative; overflow: hidden; border-radius: 20px;
	border: 1px solid #dbe5fb; background: rgba(255,255,255,0.82);
	backdrop-filter: blur(24px); box-shadow: 0 10px 24px rgba(8,29,84,0.06);
	transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s;
}
.lbf-con-dcard:hover { transform: translateY(-6px); border-color: #3b5bfd; box-shadow: 0 20px 42px rgba(0,55,167,0.14); }
.lbf-con-dcard__top-grad {
	pointer-events: none; position: absolute; inset-x: 0; top: 0; height: 64px;
	background: linear-gradient(to bottom, rgba(111,88,201,0.20), rgba(0,55,167,0.10), transparent);
}
.lbf-con-dcard__glow {
	pointer-events: none; position: absolute; right: -14px; top: -14px;
	width: 80px; height: 80px; border-radius: 50%;
	background: rgba(111,88,201,0.10); filter: blur(24px);
}
.lbf-con-dcard__dots {
	pointer-events: none; position: absolute; inset: 0; opacity: 0.10;
	background-image: radial-gradient(circle, rgba(0,55,167,0.30) 1px, transparent 1.3px);
	background-size: 16px 16px;
}
.lbf-con-dcard__body { position: relative; padding: 14px; }
.lbf-con-dcard__header { display: flex; align-items: flex-start; gap: 10px; }
.lbf-con-dcard__icon-wrap {
	flex-shrink: 0; width: 40px; height: 40px; border-radius: 14px;
	background: var(--con-bg2); color: var(--con-blue);
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 1px 3px rgba(0,0,0,0.05); outline: 1px solid #c8d6f5;
	transition: background 0.3s, color 0.3s, transform 0.3s;
}
.lbf-con-dcard:hover .lbf-con-dcard__icon-wrap {
	background: #3b5bfd; color: #fff; outline-color: rgba(59,91,253,0.40); transform: scale(1.10);
}
.lbf-con-dcard__icon-wrap svg { width: 18px; height: 18px; }
.lbf-con-dcard__meta { min-width: 0; flex: 1; }
.lbf-con-dcard__role { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: var(--con-muted); margin: 0; }
.lbf-con-dcard__title { font-family: 'Outfit', sans-serif; font-size: 16px; font-weight: 600; color: var(--con-ink); margin: 4px 0 0; line-height: 1.2; }
.lbf-con-dcard__email-box { margin-top: 12px; border: 1px solid #e7ecfa; background: rgba(248,250,255,0.95); border-radius: 14px; padding: 10px 12px; backdrop-filter: blur(8px); }
.lbf-con-dcard__email-label { font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: var(--con-muted); margin: 0; }
.lbf-con-dcard__email { font-size: 9px; font-weight: 600; letter-spacing: -0.02em; color: var(--con-blue); margin: 4px 0 0; word-break: break-all; line-height: 1.4; }
.lbf-con-dcard__desc { margin-top: 12px; font-size: 11px; line-height: 1.6; color: #4b5563; min-height: 60px; }

/* ── §4 MAP ── */
.lbf-con-glow-map {
	pointer-events: none; position: absolute; left: 8%; top: 8px;
	width: 80px; height: 80px; border-radius: 50%;
	background: rgba(111,88,201,0.10); filter: blur(48px);
}
.lbf-con-map-visual { position: relative; height: 280px; background: var(--con-bg2); }
@media (min-width: 768px) { .lbf-con-map-visual { height: 300px; } }
.lbf-con-map-visual__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,55,167,0.08), rgba(0,37,128,0.08)); pointer-events: none; }
.lbf-con-map-visual__inner {
	position: absolute; inset: 20px; border-radius: 20px; border: 3px solid #fff;
	background: radial-gradient(circle at 20% 25%, rgba(0,55,167,0.14), transparent 20%), radial-gradient(circle at 68% 50%, rgba(111,88,201,0.16), transparent 16%), linear-gradient(135deg, #f9fbff, #e9f0ff);
	box-shadow: inset 0 2px 8px rgba(0,0,0,0.05);
}
@media (min-width: 768px) { .lbf-con-map-visual__inner { inset: 24px; border-radius: 22px; } }
.lbf-con-map-block { position: absolute; border: 1px solid #c8d6f5; background: rgba(255,255,255,0.85); }
.lbf-con-map-block--a { left: 16%; top: 26%; width: 96px; height: 56px; border-radius: 16px; }
.lbf-con-map-block--b { left: 42%; top: 18%; width: 112px; height: 72px; border-radius: 18px; }
.lbf-con-map-block--c { right: 14%; top: 34%; width: 80px; height: 80px; border-radius: 50%; background: rgba(255,255,255,0.82); }
.lbf-con-map-block--d { bottom: 18%; left: 24%; width: 144px; height: 72px; border-radius: 18px; background: rgba(255,255,255,0.82); }
.lbf-con-map-block--e { bottom: 22%; right: 18%; width: 96px; height: 48px; border-radius: 14px; background: rgba(255,255,255,0.82); }
.lbf-con-map-pin { position: absolute; left: 50%; top: 48%; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; }
.lbf-con-map-pin__pulse { position: absolute; width: 64px; height: 64px; border-radius: 50%; background: rgba(59,91,253,0.15); filter: blur(8px); animation: lbf-map-pulse 2s ease-in-out infinite; }
@keyframes lbf-map-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.2); } }
.lbf-con-map-pin__dot { position: relative; width: 48px; height: 48px; border-radius: 50%; background: var(--con-blue); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 8px rgba(59,91,253,0.08), 0 12px 24px rgba(0,55,167,0.25); }
.lbf-con-map-pin__dot svg { width: 20px; height: 20px; }
.lbf-con-map-pin__badge { margin-top: 6px; background: #fff; border-radius: 9999px; padding: 4px 12px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; color: var(--con-blue); box-shadow: 0 4px 12px rgba(0,55,167,0.12); }
.lbf-con-visit-rows { margin-top: 20px; display: grid; gap: 12px; }
.lbf-con-visit-row { border: 1px solid #d8e2fa; background: #fff; border-radius: 16px; padding: 12px 16px; }
.lbf-con-visit-val { font-size: 13px; font-weight: 600; color: var(--con-ink); margin: 6px 0 0; }
.lbf-con-visit-btns { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 12px; }

/* ── §5 FAQ ── */
.lbf-con-faq-list { margin-top: 16px; display: grid; gap: 12px; }
.lbf-con-faq-item { border: 1px solid #c8d6f5; background: linear-gradient(180deg, #eef2fc, #f6f8ff); border-radius: 14px; padding: 10px 14px; box-shadow: 0 6px 14px rgba(8,29,84,0.03); transition: transform 0.2s, box-shadow 0.2s, background 0.2s; }
.lbf-con-faq-item:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0,55,167,0.06); }
.lbf-con-faq-item[open] { background: #fff; box-shadow: 0 4px 8px rgba(0,55,167,0.04); }
.lbf-con-faq-item__q { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; font-size: 12px; font-weight: 700; color: var(--con-ink); }
.lbf-con-faq-item__q::-webkit-details-marker { display: none; }
.lbf-con-faq-item__q::marker { display: none; }
.lbf-con-faq-item__toggle { flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%; background: rgba(0,55,167,0.10); color: var(--con-blue); display: flex; align-items: center; justify-content: center; font-size: 14px; line-height: 1; transition: transform 0.3s; }
.lbf-con-faq-item[open] .lbf-con-faq-item__toggle { transform: rotate(45deg); }
.lbf-con-faq-item__a { padding-top: 10px; font-size: 11px; line-height: 1.7; color: var(--con-txt); margin: 0; }

/* ── §5 SOCIAL ── */
.lbf-con-social-pill { display: inline-block; margin-top: 12px; border: 1px solid rgba(255,255,255,0.15); background: rgba(255,255,255,0.10); backdrop-filter: blur(8px); border-radius: 9999px; padding: 6px 12px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; color: rgba(255,255,255,0.82); }
.lbf-con-social-list { margin-top: 16px; display: grid; gap: 10px; }
.lbf-con-social-row { display: flex; align-items: center; justify-content: space-between; border: 1px solid rgba(255,255,255,0.15); background: linear-gradient(135deg, rgba(255,255,255,0.10), rgba(140,196,255,0.08)); border-radius: 14px; padding: 10px 14px; backdrop-filter: blur(8px); text-decoration: none; transition: transform 0.3s, border-color 0.3s, background 0.3s, box-shadow 0.3s; }
.lbf-con-social-row:hover { transform: translateY(-4px); border-color: rgba(255,255,255,0.30); background: rgba(255,255,255,0.16); box-shadow: 0 14px 30px rgba(0,0,0,0.16); }
.lbf-con-social-row__left { display: flex; align-items: center; gap: 12px; }
.lbf-con-social-row__icon { flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,0.12); color: #fff; display: flex; align-items: center; justify-content: center; transition: background 0.3s, transform 0.3s; }
.lbf-con-social-row:hover .lbf-con-social-row__icon { background: rgba(255,255,255,0.22); transform: scale(1.10) rotate(6deg); }
.lbf-con-social-row__icon svg { width: 16px; height: 16px; }
.lbf-con-social-row__name { font-size: 14px; font-weight: 600; color: #fff; margin: 0; }
.lbf-con-social-row__handle { font-size: 11px; color: rgba(255,255,255,0.76); margin: 2px 0 0; }
.lbf-con-social-row__cta { border: 1px solid rgba(255,255,255,0.30); background: linear-gradient(135deg, rgba(140,196,255,0.26), rgba(255,255,255,0.12)); padding: 6px 14px; border-radius: 9999px; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.16em; color: #fff; backdrop-filter: blur(8px); box-shadow: 0 12px 24px rgba(110,170,255,0.22); transition: border-color 0.3s, background 0.3s, box-shadow 0.3s, transform 0.3s; }
.lbf-con-social-row:hover .lbf-con-social-row__cta { border-color: rgba(255,255,255,0.45); background: linear-gradient(135deg, rgba(160,212,255,0.34), rgba(255,255,255,0.18)); box-shadow: 0 16px 30px rgba(110,170,255,0.30); transform: scale(1.05); }
.lbf-con-community-note { margin-top: 16px; background: rgba(255,255,255,0.10); border-radius: 14px; padding: 12px; backdrop-filter: blur(8px); }
.lbf-con-community-note p:last-child { font-size: 11px; line-height: 1.7; color: rgba(255,255,255,0.88); margin: 6px 0 0; }

/* ── REDUCED MOTION ── */
@media (prefers-reduced-motion: reduce) {
	.lbf-con-btn, .lbf-con-dcard, .lbf-con-social-row,
	.lbf-con-faq-item, .lbf-con-map-pin__pulse { transition: none !important; animation: none !important; }
}
