/* Babylon Elements: page sections and addon widgets, matching the HTML design (Claude/design).
   Classes are set on Elementor elements in Advanced > CSS Classes. */

/* ---------- Shared ---------- */

/* Gold-highlighted words inside a heading: <span>…</span>. */
.bs-hl .elementor-heading-title span { color: #F4B400; }

/* Small blue label with a short gold line before it ("— OUR SERVICES"). */
.bs-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; }
.bs-eyebrow .elementor-heading-title::before { content: ""; width: 28px; height: 3px; border-radius: 2px; background: #F4B400; flex: none; }

/* Pill label with an icon ("LOS ANGELES SECURITY SERVICES"). */
.elementor-widget.bs-pill .elementor-icon-list-items { display: inline-flex !important; padding: 7px 16px 7px 12px !important; border: 1px solid rgba(244,180,0,.4); border-radius: 40px; background: rgba(244,180,0,.08); }
.bs-pill .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }

/* Buttons: the icon sits in its own small circle. */
.bs-btn .elementor-button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; }
.bs-btn .elementor-button-content-wrapper { align-items: center; }
.bs-btn .elementor-button-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #0B1830; color: #F4B400; fill: #F4B400; transition: transform .25s; }
.bs-btn .elementor-button-icon svg { width: 16px; height: 16px; fill: currentColor; }
.bs-btn .elementor-button-icon i { font-size: 15px; }
.bs-btn .elementor-button:hover .elementor-button-icon { transform: translateX(2px); }
.bs-btn.bs-btn-ghost .elementor-button { backdrop-filter: blur(4px); }
.bs-btn.bs-btn-ghost .elementor-button-icon,
.bs-btn.bs-btn-navy .elementor-button-icon { background: #F4B400; color: #0B1830; fill: #0B1830; }

/* ---------- Home hero ---------- */

/* Blue glow and the faint blueprint grid on top of the photo and its dark fade. */
.bs-hm-hero { isolation: isolate; overflow: hidden; }
.bs-hm-hero::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background:
		linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px) 0 0 / 56px 56px,
		linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px) 0 0 / 56px 56px,
		radial-gradient(60% 70% at 85% 40%, rgba(30,157,230,.28) 0%, transparent 60%);
	-webkit-mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.6) 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, rgba(0,0,0,.6) 70%, transparent 100%); }
.bs-hm-hero > .e-con-inner { position: relative; z-index: 1; }

/* Facts under the buttons: one line on computers, a column on phones. */
@media (max-width: 767px) {
	.bs-facts .elementor-icon-list-items { flex-direction: column; align-items: flex-start; gap: 12px; margin: 0 !important; }
	.bs-facts .elementor-icon-list-item { margin: 0 !important; }
}

/* Glass frame around the video, with a gold corner line. */
.bs-hm-media { backdrop-filter: blur(6px); }
.bs-hm-media::after { content: ""; position: absolute; right: -16px; bottom: -16px; width: 120px; height: 120px; border-right: 4px solid #F4B400; border-bottom: 4px solid #F4B400; border-radius: 0 0 20px 0; pointer-events: none; }
@media (max-width: 767px) {
	.bs-hm-media::after { right: -10px; bottom: -10px; width: 70px; height: 70px; }
}

/* ---------- Video Cover widget ---------- */

.bs-video { position: relative; border-radius: 12px; overflow: hidden; background: #0B1830; aspect-ratio: 16 / 9; box-shadow: 0 30px 70px -30px rgba(0,0,0,.8); }
.bs-video video { display: block; width: 100%; height: 100%; object-fit: cover; }
.bs-video-cover { position: absolute; inset: 0; display: grid; place-items: center; width: 100%; border: 0; border-radius: 0; padding: 0; margin: 0; cursor: pointer; background: linear-gradient(180deg, rgba(11,24,48,.08) 0%, rgba(11,24,48,.18) 45%, rgba(11,24,48,.88) 100%); transition: background-color .3s; }
.bs-video-cover:hover, .bs-video-cover:focus { background-color: rgba(11,24,48,.12); }
.bs-video.is-playing .bs-video-cover { display: none; }
.bs-play { position: relative; width: 92px; height: 92px; border-radius: 50%; display: grid; place-items: center; background: #F4B400; color: #0B1830; box-shadow: 0 14px 30px -8px rgba(244,180,0,.65); transition: transform .25s; }
.bs-play::before, .bs-play::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid #F4B400; animation: bs-pulse 2.4s ease-out infinite; }
.bs-play::after { animation-delay: 1.2s; }
.bs-play svg { width: 36px; height: 36px; margin-left: 5px; }
.bs-video-cover:hover .bs-play { transform: scale(1.08); }
@keyframes bs-pulse { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.6); opacity: 0; } }
.bs-video-label { position: absolute; left: 24px; bottom: 20px; text-align: left; color: #FFFFFF; font-family: "Barlow", sans-serif; }
.bs-video-label b { display: block; font-family: "Barlow Condensed", sans-serif; font-size: 24px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; line-height: 1.1; }
.bs-video-label span { font-size: 14.5px; color: rgba(255,255,255,.78); }
@media (max-width: 767px) {
	.bs-play { width: 72px; height: 72px; }
	.bs-play svg { width: 28px; height: 28px; }
	.bs-video-label { left: 16px; bottom: 14px; }
	.bs-video-label b { font-size: 18px; }
	.bs-video-label span { font-size: 13px; }
}

/* ---------- Years Seal widget ---------- */

.bs-seal { display: block; height: auto; max-width: none; filter: drop-shadow(0 16px 30px rgba(0,0,0,.55)); }

/* ---------- Service Cards widget ---------- */

.bs-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.bs-card { position: relative; display: block; min-height: 480px; border-radius: 14px; overflow: hidden; text-decoration: none; color: #FFFFFF; background: #0B1830; box-shadow: 0 24px 50px -30px rgba(11,24,48,.7); isolation: isolate; }
.bs-card:hover, .bs-card:focus { color: #FFFFFF; }
.bs-card .bs-card-img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; z-index: -2; transition: transform .6s ease; }
.bs-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11,24,48,.05) 0%, rgba(11,24,48,.55) 38%, rgba(7,16,31,.96) 72%); }
.bs-card::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: #F4B400; transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.bs-card:hover .bs-card-img { transform: scale(1.07); }
.bs-card:hover::after { transform: scaleX(1); }
.bs-card-body { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; padding: 26px 24px; }
.bs-card-num { font-family: "Barlow Condensed", sans-serif; font-weight: 800; font-size: 44px; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px rgba(244,180,0,.85); margin-bottom: 12px; }
.bs-card .bs-card-title { margin: 0 0 12px; font-family: "Barlow Condensed", sans-serif; font-weight: 700; font-size: 24px; line-height: 1.1; text-transform: uppercase; letter-spacing: .3px; color: #FFFFFF; }
.bs-card-text { font-family: "Barlow", sans-serif; font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.78); margin-bottom: 18px; }
.bs-card-more { display: inline-flex; align-items: center; gap: 8px; font-family: "Barlow Condensed", sans-serif; font-weight: 700; font-size: 16px; letter-spacing: 1px; text-transform: uppercase; color: #F4B400; }
.bs-card-more svg { width: 16px; height: 16px; transition: transform .25s; }
.bs-card:hover .bs-card-more svg { transform: translateX(4px); }

/* ---------- Call band (phone | location | button) ---------- */

.bs-call-box { backdrop-filter: blur(8px); }
.bs-call-phone .elementor-icon { box-shadow: 0 0 0 8px rgba(244,180,0,.14); }
.bs-call-phone .elementor-icon-box-description { white-space: nowrap; transition: color .2s; }
.bs-call-phone a:hover .elementor-icon-box-description,
.bs-call-phone .elementor-icon-box-wrapper:hover .elementor-icon-box-description { color: #F4B400; }
/* Tablet: phone and button on the first row, location below with a line between. */
@media (min-width: 768px) and (max-width: 1024px) {
	.bs-call-box.e-con { display: grid !important; grid-template-columns: 1fr auto; grid-template-areas: "phone btn" "loc loc"; }
	.bs-call-box .bs-call-phone { grid-area: phone; }
	.bs-call-box .bs-call-btn { grid-area: btn; }
	.bs-call-box .bs-call-loc { grid-area: loc; }
}
/* Phone: phone, location, then a full-width button. */
@media (max-width: 767px) {
	.bs-call-box .bs-call-btn, .bs-call-box .bs-call-btn .elementor-button { width: 100%; }
}

/* Text Editor: no gap under the last paragraph. */
.bs-lead p:last-child { margin-bottom: 0; }

/* Facts list: room between the rows when it wraps. */
.bs-facts .elementor-icon-list-items { row-gap: 14px; }

/* Call band: the location part may shrink so the button keeps its place. */
.bs-call-loc, .bs-call-loc > .e-con { min-width: 0; }

/* ---------- Inner pages ---------- */

/* Page hero: breadcrumb pill and the gold line under the title (grid/glow from .bs-hm-hero). */
.bs-crumbs p { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; padding: 7px 16px; border: 1px solid rgba(244,180,0,.4); border-radius: 40px; background: rgba(244,180,0,.08); font-family: "Barlow Condensed", sans-serif; font-weight: 600; font-size: 14px; line-height: 1.3; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,.7); }
.bs-crumbs a { color: #FFC933; text-decoration: none; }
.bs-crumbs a:hover { color: #FFFFFF; }
.bs-crumbs .sep { color: rgba(255,255,255,.35); }
.bs-in-title .elementor-heading-title::after { content: ""; display: block; width: 72px; height: 4px; margin-top: 22px; border-radius: 2px; background: #F4B400; }
@media (max-width: 767px) {
	.bs-crumbs p { border-radius: 14px; font-size: 12.5px; letter-spacing: 1px; }
}

/* Photo in a white frame with a gold corner line (bs-frame-left: corner on the left). */
.bs-frame img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
.bs-frame::after { content: ""; position: absolute; right: -14px; bottom: -14px; width: 110px; height: 110px; border-right: 4px solid #F4B400; border-bottom: 4px solid #F4B400; border-radius: 0 0 18px 0; pointer-events: none; }
.bs-frame.bs-frame-left::after { right: auto; left: -14px; border-right: 0; border-left: 4px solid #F4B400; border-radius: 0 0 0 18px; }
@media (max-width: 767px) {
	.bs-frame::after { width: 70px; height: 70px; right: -10px; bottom: -10px; }
	.bs-frame.bs-frame-left::after { left: -10px; }
}

/* Big outlined number ("01"). */
.bs-num .elementor-heading-title { color: transparent !important; -webkit-text-stroke: 1.5px #1E9DE6; }

/* Navy note box with a faint gold ring. */
.bs-note { isolation: isolate; }
.bs-note::after { content: ""; position: absolute; right: -40px; top: -40px; width: 160px; height: 160px; border-radius: 50%; border: 22px solid rgba(244,180,0,.08); z-index: -1; pointer-events: none; }
.bs-note b, .bs-note strong { color: #FFFFFF; }
.bs-note a { color: #F4B400; }
.bs-note p { margin: 0 0 8px; }
.bs-note p:last-child { margin: 0; }

/* Chip List widget. */
.bs-chips { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.bs-chips li { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 10px; background: #FFFFFF; border: 1px solid #E3E8EF; font-family: "Barlow", sans-serif; font-weight: 600; font-size: 16px; line-height: 1.35; color: #0F172A; box-shadow: 0 8px 20px -18px rgba(11,24,48,.5); transition: border-color .2s, transform .2s; }
.bs-chips li:hover { border-color: #F4B400; transform: translateY(-2px); }
.bs-chips svg { width: 14px; height: 14px; padding: 6px; box-sizing: content-box; border-radius: 50%; background: #0B1830; color: #F4B400; flex: none; }
@media (max-width: 767px) {
	.bs-chips { gap: 8px; }
	.bs-chips li { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px; font-size: 14.5px; }
}

/* Numbered Cards widget. */
.bs-qs { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; counter-reset: bsq; }
.bs-qs li { position: relative; padding: 26px 26px 24px 84px; border-radius: 14px; background: #FFFFFF; border: 1px solid #E3E8EF; font-family: "Barlow", sans-serif; font-size: 16.5px; line-height: 1.6; color: #2B3445; box-shadow: 0 14px 30px -26px rgba(11,24,48,.6); }
.bs-qs li::before { counter-increment: bsq; content: "0" counter(bsq); position: absolute; left: 24px; top: 22px; font-family: "Barlow Condensed", sans-serif; font-weight: 800; font-size: 38px; line-height: 1; color: transparent; -webkit-text-stroke: 1.3px #1E9DE6; }
.bs-qs li::after { content: ""; position: absolute; left: 0; top: 24px; bottom: 24px; width: 3px; border-radius: 0 3px 3px 0; background: #F4B400; }
@media (max-width: 767px) {
	.bs-qs li { padding: 22px 20px 20px 70px; }
	.bs-qs li::before { left: 18px; font-size: 32px; }
}

/* Contact: map link pills on a white tile; the form's fields and gold pill button. */
.bs-tile-light .bs-maplink .elementor-button { color: #0B1830 !important; border-color: #E3E8EF !important; background: #F3F6FA !important; }
.bs-tile-light .bs-maplink .elementor-button:hover { border-color: #F4B400 !important; background: #FFF8E1 !important; }
.bs-form .elementor-field-group .elementor-field:focus { background: #FFFFFF; border-color: #1E9DE6 !important; box-shadow: 0 0 0 3px rgba(30,157,230,.18); }
.bs-form .elementor-button[type="submit"] { background-image: linear-gradient(180deg, #FFC933 0%, #F4B400 100%); box-shadow: 0 12px 28px -12px rgba(244,180,0,.75); }

/* Jobs: the Google Form. */
.bs-embed iframe { display: block; width: 100%; height: 1400px; border: 0; border-radius: 10px; }
@media (max-width: 767px) { .bs-embed iframe { height: 1700px; } }

/* Terms: numbered contents list that stays in view, and headings with a gold dash. */
.bs-toc-box { position: sticky !important; top: 120px; }
.bs-toc .elementor-icon-list-items { counter-reset: bst; }
.bs-toc .elementor-icon-list-item > a { display: flex; padding: 10px 12px; border-radius: 8px; transition: background-color .2s; }
.bs-toc .elementor-icon-list-item > a:hover { background: rgba(255,255,255,.07); }
.bs-toc .elementor-icon-list-icon { display: none; }
.bs-toc .elementor-icon-list-text::before { counter-increment: bst; content: "0" counter(bst); color: #F4B400; margin-right: 12px; }
.bs-doc-h .elementor-heading-title { display: flex; align-items: center; gap: 14px; }
.bs-doc-h .elementor-heading-title::before { content: ""; width: 26px; height: 4px; border-radius: 2px; background: #F4B400; flex: none; }
.bs-doc-h { scroll-margin-top: 120px; }
@media (max-width: 1024px) {
	.bs-toc-box { position: relative !important; top: 0; }
}

/* Privacy: the badge icon with a soft ring. */
.bs-license-ico .elementor-icon { box-shadow: 0 0 0 10px rgba(11,24,48,.06); }

/* Body text blocks on inner pages. */
.bs-body p { margin: 0 0 20px; }
.bs-body p:last-child { margin-bottom: 0; }
.bs-body a { color: #0E78B8; font-weight: 600; }

/* Check list with gold round icons (patrol page). */
.bs-checks .elementor-icon-list-item { align-items: flex-start !important; }
.bs-checks .elementor-icon-list-icon { display: grid !important; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #F4B400; flex: none; margin-top: 1px; }
.bs-checks .elementor-icon-list-icon svg { width: 12px !important; height: 12px !important; fill: #0B1830 !important; }
.bs-checks .elementor-icon-list-icon i { font-size: 12px !important; color: #0B1830 !important; }

/* Contact form fields: roomy, soft grey, rounded. */
.bs-form .elementor-field-textual { padding: 15px 16px; min-height: 52px; }

/* Terms contents list: two columns on tablets, one on phones. */
@media (max-width: 1024px) {
	.bs-toc .elementor-icon-list-items { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
}
@media (max-width: 767px) {
	.bs-toc .elementor-icon-list-items { grid-template-columns: 1fr; }
}

/* Contact form: gold arrow in the navy circle of the Send button. */
.bs-form .elementor-button-icon svg, .bs-form .elementor-button-icon svg path { fill: #F4B400 !important; }
.bs-form .elementor-button-icon i { color: #F4B400 !important; }

/* Tablets: photos go full width there, so a wider shape keeps them from getting too tall. */
@media (min-width: 768px) and (max-width: 1024px) {
	.bs-frame img { aspect-ratio: 16 / 9; }
}

/* Check list: Elementor puts the text gap inside the icon box, which pushes the tick off
   center. Keep the circle clean and put the gap outside it. */
.bs-checks .elementor-icon-list-icon { padding: 0 !important; margin-inline-end: 14px; box-sizing: border-box; }
.bs-checks .elementor-icon-list-icon svg { margin: 0 !important; }
.bs-checks .elementor-icon-list-text { padding-inline-start: 0 !important; }

/* Chip List: a bolder tick in a gold circle, the same as the check list above it. */
.bs-chips svg { width: 13px; height: 13px; padding: 8.5px; background: #F4B400; color: #0B1830; }
.bs-chips li:hover svg { background: #0B1830; color: #F4B400; transition: background-color .2s, color .2s; }

/* Phone block: (866) 4-BABYLON big, the plain numbers on a small line under it. */
.bs-call-phone .elementor-icon-box-description a,
.elementor-icon-box-description a[href^="tel:"] { color: inherit; text-decoration: none; transition: color .2s; }
.elementor-icon-box-description a[href^="tel:"]:hover { color: #F4B400; }
.bs-phone-alt { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 10px; font-family: "Barlow", sans-serif; font-size: 15px; font-weight: 600; line-height: 1.3; letter-spacing: .2px; white-space: normal; }
.bs-phone-alt a { color: rgba(255,255,255,.72) !important; }
.bs-phone-alt a:hover { color: #F4B400 !important; }
.bs-phone-alt a + a { position: relative; }
.bs-phone-alt a + a::before { content: ""; position: absolute; left: -9px; top: 50%; width: 3px; height: 3px; margin-top: -1px; border-radius: 50%; background: rgba(255,255,255,.4); }
/* Small phones (360-400px): the big number must stay inside the call card. */
@media (max-width: 400px) {
	.bs-call-phone .elementor-icon-box-description { font-size: 29px !important; }
	.bs-phone-alt { flex-direction: column; gap: 2px; }
	.bs-phone-alt a + a::before { display: none; }
}

/* Chip List on a navy panel (Home service list). */
.bs-chips-dark .bs-chips li { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); color: #FFFFFF; box-shadow: none; }
.bs-chips-dark .bs-chips li:hover { border-color: #F4B400; }
.bs-chips-dark .bs-chips li:hover svg { background: #F4B400; color: #0B1830; }
.bs-svc-panel { isolation: isolate; }
.bs-svc-panel::after { content: ""; position: absolute; right: -50px; top: -50px; width: 180px; height: 180px; border-radius: 50%; border: 24px solid rgba(244,180,0,.07); z-index: -1; pointer-events: none; }
@media (max-width: 767px) {
	.bs-chips-dark .bs-chips li { flex-direction: row; align-items: center; }
}

/* Blog: post cards and the single post. */
.bs-blog-grid .elementor-post__card { box-shadow: 0 18px 40px -30px rgba(11,24,48,.55); transition: transform .25s, box-shadow .25s; }
.bs-blog-grid .elementor-post__card:hover { transform: translateY(-3px); box-shadow: 0 26px 50px -30px rgba(11,24,48,.7); }
.bs-blog-grid .elementor-posts-nothing-found { font-family: "Barlow", sans-serif; font-size: 18px; color: #5B6578; text-align: center; }
.bs-blog-grid .elementor-pagination { margin-top: 40px; font-family: "Barlow Condensed", sans-serif; font-weight: 700; font-size: 18px; }
.bs-blog-grid .elementor-pagination .page-numbers.current { color: #F4B400; }
.bs-in-hero .elementor-post-info__item { color: rgba(255,255,255,.8); }
.bs-post-content h2, .bs-post-content h3 { font-family: "Barlow Condensed", sans-serif; text-transform: uppercase; color: #0F172A; margin: 32px 0 14px; }
.bs-post-content img { border-radius: 10px; }
.bs-post-content a { color: #0E78B8; font-weight: 600; }

/* Contact form (Fluent Forms, bs-contact-form): the same look as the design's form. */
.bs-contact-form .fluentform .ff-el-group { margin-bottom: 18px; }
.bs-contact-form .fluentform .ff-t-container { gap: 14px; }
.bs-contact-form .fluentform .ff-t-cell { padding: 0 !important; }
.bs-contact-form .fluentform .ff-el-input--label { margin-bottom: 8px; }
.bs-contact-form .fluentform .ff-el-input--label label { font-family: "Barlow Condensed", sans-serif; font-weight: 600; font-size: 16px; letter-spacing: .8px; text-transform: uppercase; line-height: 1.2; color: #0F172A; }
.bs-contact-form .fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label::after { color: #D7261E; }
.bs-contact-form .fluentform .ff-el-form-control { min-height: 52px; padding: 15px 16px; border: 1px solid transparent; border-radius: 10px; background: #F3F6FA; font-family: "Barlow", sans-serif; font-size: 16px; line-height: 1.4; color: #2B3445; box-shadow: none; transition: background-color .2s, border-color .2s, box-shadow .2s; }
.bs-contact-form .fluentform .ff-el-form-control:focus { background: #FFFFFF; border-color: #1E9DE6; outline: none; box-shadow: 0 0 0 3px rgba(30,157,230,.18); }
.bs-contact-form .fluentform textarea.ff-el-form-control { min-height: 150px; }
.bs-contact-form .fluentform .ff_submit_btn_wrapper { margin: 4px 0 0; }
.bs-contact-form .fluentform .ff-btn-submit { position: relative; display: inline-flex; align-items: center; gap: 12px; min-height: 54px; padding: 8px 8px 8px 28px; border: 0; border-radius: 60px; background: linear-gradient(180deg, #FFC933 0%, #F4B400 100%) !important; color: #0B1830 !important; font-family: "Barlow Condensed", sans-serif; font-weight: 700; font-size: 17px; line-height: 1; letter-spacing: 1.2px; text-transform: uppercase; box-shadow: 0 12px 28px -12px rgba(244,180,0,.75); transition: transform .25s, box-shadow .25s; }
.bs-contact-form .fluentform .ff-btn-submit::after { content: ""; width: 36px; height: 36px; border-radius: 50%; background: #0B1830 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23F4B400' d='M13.3 5.3a1 1 0 0 1 1.4 0l6 6a1 1 0 0 1 0 1.4l-6 6a1 1 0 0 1-1.4-1.4l4.3-4.3H4a1 1 0 1 1 0-2h13.6l-4.3-4.3a1 1 0 0 1 0-1.4z'/%3E%3C/svg%3E") center / 16px no-repeat; flex: none; }
.bs-contact-form .fluentform .ff-btn-submit:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -12px rgba(244,180,0,.9); opacity: 1; }
.bs-contact-form .fluentform .error { font-size: 14px; color: #D7261E; }
.bs-contact-form .ff-message-success { padding: 20px 22px; border: 0; border-left: 4px solid #F4B400; border-radius: 0 10px 10px 0; background: #FFF8E1; font-family: "Barlow", sans-serif; font-size: 17px; color: #0F172A; box-shadow: none; }
/* "Do you want to be contacted by: Phone / Email" checkboxes: boxes in the field colour, gold with a navy tick when chosen. */
.bs-contact-form .fluentform .ff-el-group:has(.ff-el-form-check) .ff-el-input--content { display: flex; flex-wrap: wrap; gap: 10px 14px; }
.bs-contact-form .fluentform .ff-el-form-check { margin: 0 !important; }
.bs-contact-form .fluentform .ff-el-form-check-label { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; margin: 0; padding: 10px 18px 10px 12px; border: 1px solid transparent; border-radius: 10px; background: #F3F6FA; font-family: "Barlow", sans-serif; font-size: 16px; font-weight: 500; line-height: 1.2; color: #2B3445; cursor: pointer; transition: background-color .2s, border-color .2s; }
.bs-contact-form .fluentform .ff-el-form-check-label:hover { border-color: #F4B400; }
.bs-contact-form .fluentform .ff-el-form-check-label:has(:checked) { border-color: #F4B400; background: #FFF8E1; color: #0F172A; }
.bs-contact-form .fluentform .ff-el-form-check-input { -webkit-appearance: none; appearance: none; flex: none; width: 22px; height: 22px; margin: 0 !important; border: 2px solid #C5CFDC; border-radius: 6px; background: #FFFFFF center / 14px no-repeat; cursor: pointer; transition: background-color .2s, border-color .2s; }
.bs-contact-form .fluentform .ff-el-form-check-input:checked { border-color: #F4B400; background-color: #F4B400; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%230B1830' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }
.bs-contact-form .fluentform .ff-el-form-check-input:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(30,157,230,.25); }
@media (max-width: 767px) {
	.bs-contact-form .fluentform .ff-t-container { display: block; }
	.bs-contact-form .fluentform .ff-t-cell { width: 100% !important; }
	.bs-contact-form .fluentform .ff-btn-submit { width: 100%; justify-content: center; }
}
