/* NFCbusinessCARD Site Kit: brand tokens and components.
   Colours, type and radii follow the NFCbusinessCARD brand guidelines v1.0. */

:root {
	--nfcbc-purple: #3E007D;
	--nfcbc-deep: #2A0057;
	--nfcbc-midnight: #150030;
	--nfcbc-ink: #21172C;
	--nfcbc-text: #2E2538;
	--nfcbc-grey: #685F72;
	--nfcbc-lilac: #D2B4F3;
	--nfcbc-soft: #F2EAFA;
	--nfcbc-violet: #6E2EB8;
	--nfcbc-page: #F8F5FC;
	--nfcbc-white: #FFFFFF;
	--nfcbc-line: #E6DDF0;
	--nfcbc-wa: #0B7A3E; /* WhatsApp green, darkened for AA contrast with white text */
	--nfcbc-gradient: linear-gradient(90deg, #3E007D, #150030);
	--nfcbc-font: "Jost", "Jost Fallback", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--nfcbc-r-btn: 6px;
	--nfcbc-r-card: 10px;
	--nfcbc-r-panel: 16px;
	--nfcbc-shadow: 0 1px 2px rgba(33, 23, 44, .06), 0 8px 24px rgba(33, 23, 44, .06);
	--nfcbc-wrap: 1200px;
	--nfcbc-gutter: clamp(16px, 4vw, 32px);
	--nfcbc-section: clamp(56px, 8vw, 104px);
}

/* ---------- Base typography (Jost stands in for Futura on the web) ---------- */
body {
	font-family: var(--nfcbc-font);
	color: var(--nfcbc-text);
	background: var(--nfcbc-page);
	-webkit-font-smoothing: antialiased;
}
body,
button,
input,
select,
textarea,
.elementor-widget-text-editor,
.elementor-heading-title,
.elementor-button {
	font-family: var(--nfcbc-font);
}
h1, h2, h3, h4,
.elementor-heading-title {
	color: var(--nfcbc-ink);
	font-weight: 700;
	letter-spacing: -0.01em;
	text-wrap: balance;
}
.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--nfcbc-violet);
	outline-offset: 2px;
}

/* ---------- Buttons ---------- */
.nfcbc-btn,
.nfcbc-el-btn.elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 12px 22px;
	border-radius: var(--nfcbc-r-btn);
	border: 1.5px solid transparent;
	font-family: var(--nfcbc-font);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
}
.nfcbc-btn .nfcbc-icon { width: 20px; height: 20px; flex: none; }
.nfcbc-btn--primary,
.nfcbc-el-btn--primary.elementor-widget-button .elementor-button { background: var(--nfcbc-purple); color: #fff !important; }
.nfcbc-btn--primary:hover,
.nfcbc-el-btn--primary.elementor-widget-button .elementor-button:hover { background: var(--nfcbc-deep); color: #fff !important; }
.nfcbc-btn--wa { background: var(--nfcbc-wa); color: #fff !important; }
.nfcbc-btn--wa:hover { background: #07602f; color: #fff !important; }
.nfcbc-btn--outline,
.nfcbc-el-btn--outline.elementor-widget-button .elementor-button { background: transparent; color: var(--nfcbc-ink) !important; border-color: var(--nfcbc-ink); }
.nfcbc-btn--outline:hover,
.nfcbc-el-btn--outline.elementor-widget-button .elementor-button:hover { background: var(--nfcbc-ink); color: #fff !important; }
.nfcbc-btn--light,
.nfcbc-el-btn--light.elementor-widget-button .elementor-button { background: #fff; color: var(--nfcbc-purple) !important; }
.nfcbc-btn--light:hover,
.nfcbc-el-btn--light.elementor-widget-button .elementor-button:hover { background: var(--nfcbc-soft); }
.nfcbc-btn--ghost { background: transparent; color: var(--nfcbc-wa) !important; border-color: transparent; padding-left: 4px; padding-right: 4px; }
.nfcbc-btn--ghost:hover { text-decoration: underline !important; }
.nfcbc-btn--ghost-light,
.nfcbc-el-btn--ghost-light.elementor-widget-button .elementor-button { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.6); }
.nfcbc-btn--ghost-light:hover,
.nfcbc-el-btn--ghost-light.elementor-widget-button .elementor-button:hover { background: rgba(255,255,255,.1); border-color: #fff; }
.nfcbc-btn--block { width: 100%; }
.nfcbc-link { color: var(--nfcbc-wa); font-weight: 600; display: inline-flex; gap: 4px; align-items: center; }
.nfcbc-link .nfcbc-icon { width: 16px; height: 16px; }
.nfcbc-center { text-align: center; margin-top: 32px; }

/* ---------- Section system used by the Elementor templates ---------- */
.nfcbc-section { padding-top: var(--nfcbc-section) !important; padding-bottom: var(--nfcbc-section) !important; }
.nfcbc-section--tight { padding-top: clamp(32px, 5vw, 56px) !important; padding-bottom: clamp(32px, 5vw, 56px) !important; }
.nfcbc-section--white { background: #fff; }
.nfcbc-section--soft { background: var(--nfcbc-soft); }
.nfcbc-section--page { background: var(--nfcbc-page); }
.nfcbc-section--dark { background: var(--nfcbc-midnight); color: #E9E1F3; }
.nfcbc-section--brand { background: var(--nfcbc-gradient); color: #fff; position: relative; overflow: hidden; }
.nfcbc-section--dark :is(h1, h2, h3, .elementor-heading-title),
.nfcbc-section--brand :is(h1, h2, h3, .elementor-heading-title) { color: #fff; }
.nfcbc-section--dark p, .nfcbc-section--brand p { color: #E9E1F3; }
.nfcbc-section--dark a:not(.nfcbc-btn):not(.elementor-button), .nfcbc-section--brand a:not(.nfcbc-btn):not(.elementor-button) { color: var(--nfcbc-lilac); }

/* The brand wave: four arcs from the badge, large and cropped, always curving right. */
.nfcbc-waves { position: relative; overflow: hidden; }
.nfcbc-waves::after {
	content: "";
	position: absolute;
	right: -6%;
	top: 50%;
	width: min(560px, 60vw);
	aspect-ratio: 1;
	transform: translateY(-50%);
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.12' stroke-width='14' stroke-linecap='round'%3E%3Cpath d='M40 70a40 40 0 0 1 0 60'/%3E%3Cpath d='M75 45a75 75 0 0 1 0 110'/%3E%3Cpath d='M110 20a110 110 0 0 1 0 160'/%3E%3Cpath d='M145 0a140 140 0 0 1 0 200'/%3E%3C/g%3E%3C/svg%3E");
	pointer-events: none;
	z-index: 0;
}
.nfcbc-waves > * { position: relative; z-index: 1; }

.nfcbc-eyebrow,
.nfcbc-eyebrow .elementor-heading-title {
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase;
	color: var(--nfcbc-purple) !important;
}
.nfcbc-section--dark .nfcbc-eyebrow .elementor-heading-title,
.nfcbc-section--brand .nfcbc-eyebrow .elementor-heading-title { color: var(--nfcbc-lilac) !important; }

.nfcbc-h1 .elementor-heading-title { font-size: clamp(34px, 5vw, 52px); line-height: 1.12; }
.nfcbc-h2 .elementor-heading-title,
.nfcbc-section__title { font-size: clamp(28px, 3.4vw, 38px); line-height: 1.2; margin: 0; }
.nfcbc-h3 .elementor-heading-title { font-size: clamp(20px, 2vw, 24px); line-height: 1.3; }
.nfcbc-lead, .nfcbc-lead p { font-size: clamp(17px, 1.6vw, 19px); line-height: 1.6; color: var(--nfcbc-grey); }
.nfcbc-section--brand .nfcbc-lead p, .nfcbc-section--dark .nfcbc-lead p { color: #E9E1F3; }
.nfcbc-section__head { max-width: 720px; margin: 0 0 32px; }
.nfcbc-section__intro { color: var(--nfcbc-grey); font-size: 18px; margin: 12px 0 0; }
.nfcbc-measure { max-width: 720px; }

/* Cards */
.nfcbc-card {
	background: #fff;
	border: 1px solid var(--nfcbc-line);
	border-radius: var(--nfcbc-r-card);
	padding: 28px !important;
	height: 100%;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.nfcbc-card:hover { border-color: #CDB8E6; box-shadow: var(--nfcbc-shadow); }
.nfcbc-card .elementor-heading-title { margin-bottom: 4px; }
.nfcbc-card p { margin-bottom: 0; color: var(--nfcbc-grey); }
.nfcbc-card--soft { background: var(--nfcbc-soft); border-color: transparent; }
.nfcbc-card--link a { color: var(--nfcbc-purple); font-weight: 600; text-decoration: none; }
.nfcbc-card--link a:hover { text-decoration: underline; }
.nfcbc-panel { border-radius: var(--nfcbc-r-panel); overflow: hidden; }

.nfcbc-step-num .elementor-heading-title {
	display: inline-grid; place-items: center;
	width: 44px; height: 44px; border-radius: 50%;
	background: var(--nfcbc-soft); color: var(--nfcbc-purple);
	font-size: 18px; font-weight: 700;
}

.nfcbc-price-tag { font-weight: 700; color: var(--nfcbc-ink); }
.nfcbc-badge {
	display: inline-block; padding: 4px 10px; border-radius: 999px;
	background: var(--nfcbc-soft); color: var(--nfcbc-purple);
	font-size: 13px; font-weight: 600;
}

/* Tick lists */
.nfcbc-ticks ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.nfcbc-ticks li { position: relative; padding-left: 30px; }
.nfcbc-ticks li::before {
	content: ""; position: absolute; left: 0; top: .3em; width: 18px; height: 18px; border-radius: 50%;
	background: var(--nfcbc-soft) no-repeat center / 12px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%233E007D' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12l5 5L20 7'/%3E%3C/svg%3E");
}
.nfcbc-section--brand .nfcbc-ticks li::before, .nfcbc-section--dark .nfcbc-ticks li::before { background-color: rgba(255,255,255,.14); 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='%23D2B4F3' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12l5 5L20 7'/%3E%3C/svg%3E"); }

/* Product image frames in templates */
.nfcbc-media img { border-radius: var(--nfcbc-r-panel); display: block; width: 100%; height: auto; }
.nfcbc-tile img { aspect-ratio: 1; object-fit: cover; border-radius: var(--nfcbc-r-card); background: var(--nfcbc-page); }

/* FAQ (details/summary inside an HTML widget) */
.nfcbc-faq { display: grid; gap: 12px; }
.nfcbc-faq details { background: #fff; border: 1px solid var(--nfcbc-line); border-radius: var(--nfcbc-r-card); }
.nfcbc-faq summary {
	cursor: pointer; list-style: none; padding: 18px 52px 18px 20px; position: relative;
	font-weight: 600; color: var(--nfcbc-ink); font-size: 17px;
}
.nfcbc-faq summary::-webkit-details-marker { display: none; }
.nfcbc-faq summary::after {
	content: ""; position: absolute; right: 20px; top: 50%; width: 12px; height: 12px; margin-top: -8px;
	border-right: 2px solid var(--nfcbc-purple); border-bottom: 2px solid var(--nfcbc-purple); transform: rotate(45deg);
	transition: transform .15s ease;
}
.nfcbc-faq details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.nfcbc-faq details > div { padding: 0 20px 18px; color: var(--nfcbc-grey); }
.nfcbc-faq details > div p:last-child { margin-bottom: 0; }

/* ---------- Client logos ---------- */
.nfcbc-logos__row { display: flex; align-items: center; gap: 12px; }
.nfcbc-logos__viewport { overflow: hidden; flex: 1; min-width: 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.nfcbc-logos__track { display: flex; gap: 24px; margin: 0; padding: 4px 0; list-style: none; width: max-content; will-change: transform; }
.nfcbc-logos__item {
	flex: none; width: 260px; height: 148px; display: grid; place-items: center;
	background: #fff; border: 1px solid var(--nfcbc-line); border-radius: var(--nfcbc-r-card); padding: 18px 24px;
}
.nfcbc-logos__img { max-width: 100%; max-height: 104px; width: auto; height: auto; object-fit: contain; }
.nfcbc-logos__toggle {
	flex: none; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--nfcbc-line); background: #fff; color: var(--nfcbc-ink);
	display: grid; place-items: center; cursor: pointer; padding: 0;
}
.nfcbc-logos__toggle .nfcbc-icon { width: 16px; height: 16px; }
.nfcbc-logos__toggle .nfcbc-logos__play { display: none; }
.nfcbc-logos__toggle[aria-pressed="true"] .nfcbc-logos__play { display: inline; }
.nfcbc-logos__toggle[aria-pressed="true"] .nfcbc-logos__pause { display: none; }
.nfcbc-logos.is-static .nfcbc-logos__viewport { overflow-x: auto; scroll-snap-type: x proximity; -webkit-mask-image: none; mask-image: none; }
.nfcbc-logos.is-static .nfcbc-logos__item { scroll-snap-align: start; }
.nfcbc-logos.is-marquee .nfcbc-logos__track { animation: nfcbc-marquee var(--nfcbc-marquee-duration, 40s) linear infinite; }
.nfcbc-logos.is-marquee.is-paused .nfcbc-logos__track { animation-play-state: paused; }
@keyframes nfcbc-marquee { to { transform: translateX(-50%); } }
.nfcbc-logos__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; list-style: none; margin: 0; padding: 0; }
.nfcbc-logos__grid .nfcbc-logos__item { width: auto; }
@media (max-width: 600px) {
	.nfcbc-logos__item { width: 180px; height: 104px; padding: 12px 16px; }
	.nfcbc-logos__img { max-height: 68px; }
}
@media (prefers-reduced-motion: reduce) {
	.nfcbc-logos__track { transition: none !important; animation: none !important; }
}

/* ---------- Testimonials ---------- */
.nfcbc-quotes__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.nfcbc-quote { margin: 0; background: #fff; border: 1px solid var(--nfcbc-line); border-radius: var(--nfcbc-r-card); padding: 28px; display: flex; flex-direction: column; gap: 20px; }
.nfcbc-quote blockquote { margin: 0; padding: 0; border: 0; font-size: 17px; line-height: 1.6; color: var(--nfcbc-text); font-style: normal; }
.nfcbc-quote blockquote p { margin: 0 0 .6em; }
.nfcbc-quote figcaption { margin-top: auto; display: flex; gap: 12px; align-items: center; }
.nfcbc-quote figcaption > span { display: grid; gap: 2px; }
.nfcbc-quote figcaption strong { color: var(--nfcbc-ink); }
.nfcbc-quote figcaption span span { color: var(--nfcbc-grey); font-size: 14px; }
.nfcbc-quote__photo { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.nfcbc-quote__meta a { color: var(--nfcbc-purple); }

/* ---------- Gallery ---------- */
.nfcbc-gallery__filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.nfcbc-chip {
	min-height: 40px; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--nfcbc-line);
	background: #fff; color: var(--nfcbc-ink); font: 600 15px/1 var(--nfcbc-font); cursor: pointer;
}
.nfcbc-chip:hover { border-color: var(--nfcbc-purple); }
.nfcbc-chip[aria-pressed="true"] { background: var(--nfcbc-purple); border-color: var(--nfcbc-purple); color: #fff; }
.nfcbc-gallery__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(260px, 46%), 1fr)); gap: 16px; }
.nfcbc-gallery__item { margin: 0; }
.nfcbc-gallery__item[hidden] { display: none; }
.nfcbc-gallery__open { display: block; width: 100%; padding: 0; border: 0; background: var(--nfcbc-soft); border-radius: var(--nfcbc-r-card); overflow: hidden; cursor: zoom-in; }
.nfcbc-gallery__open img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .25s ease; }
.nfcbc-gallery__open:hover img { transform: scale(1.03); }
.nfcbc-gallery__item figcaption { font-size: 14px; color: var(--nfcbc-grey); padding: 10px 2px 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.nfcbc-gallery__badge { font-size: 12px; font-weight: 600; color: var(--nfcbc-purple); background: var(--nfcbc-soft); border-radius: 999px; padding: 2px 8px; }
.nfcbc-lightbox { border: 0; padding: 0; background: transparent; max-width: min(1100px, 94vw); max-height: 94vh; }
.nfcbc-lightbox::backdrop { background: rgba(21, 0, 48, .88); }
.nfcbc-lightbox__inner { position: relative; display: flex; align-items: center; gap: 8px; }
.nfcbc-lightbox figure { margin: 0; text-align: center; }
.nfcbc-lightbox img { max-width: 100%; max-height: 82vh; border-radius: var(--nfcbc-r-card); background: #fff; }
.nfcbc-lightbox figcaption { color: #fff; padding-top: 10px; }
.nfcbc-lightbox button { width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.14); color: #fff; display: grid; place-items: center; cursor: pointer; flex: none; padding: 0; }
.nfcbc-lightbox button:hover { background: rgba(255,255,255,.28); }
.nfcbc-lightbox button .nfcbc-icon { width: 22px; height: 22px; }
.nfcbc-lightbox__close { position: absolute; top: -52px; right: 0; }

/* ---------- Videos ---------- */
.nfcbc-videos__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 46%), 1fr)); gap: 20px; }
.nfcbc-video { display: flex; flex-direction: column; gap: 8px; }
.nfcbc-video__frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--nfcbc-r-card); overflow: hidden; background: var(--nfcbc-midnight); }
.nfcbc-video--vertical .nfcbc-video__frame { aspect-ratio: 9 / 16; }
.nfcbc-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.nfcbc-video__play { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; cursor: pointer; background: transparent; }
.nfcbc-video__play img { width: 100%; height: 100%; object-fit: cover; opacity: .92; }
.nfcbc-video__icon { position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; background: rgba(62, 0, 125, .92); color: #fff; display: grid; place-items: center; transition: transform .15s ease; }
.nfcbc-video__icon .nfcbc-icon { width: 28px; height: 28px; margin-left: 3px; }
.nfcbc-video__play:hover .nfcbc-video__icon { transform: scale(1.08); }
.nfcbc-video__title { font-size: 17px !important; line-height: 1.35; margin: 4px 0 0; }
.nfcbc-video__desc { font-size: 15px; color: var(--nfcbc-grey); margin: 0; }
.nfcbc-videos__privacy { font-size: 13px; color: var(--nfcbc-grey); text-align: center; margin-top: 8px; }

/* ---------- Contact, social, map ---------- */
.nfcbc-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.nfcbc-contact li { display: flex; gap: 14px; align-items: flex-start; }
.nfcbc-contact .nfcbc-icon { width: 22px; height: 22px; color: var(--nfcbc-purple); flex: none; margin-top: 2px; }
.nfcbc-contact li > span { display: grid; gap: 2px; }
.nfcbc-contact__label { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--nfcbc-grey); }
.nfcbc-contact a { color: var(--nfcbc-ink); font-weight: 600; text-decoration: none; }
.nfcbc-contact a:hover { color: var(--nfcbc-purple); text-decoration: underline; }
.nfcbc-contact address { font-style: normal; }
.nfcbc-social ul { display: flex; gap: 10px; list-style: none; padding: 0; margin: 0; flex-wrap: wrap; }
.nfcbc-social a { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--nfcbc-line); color: var(--nfcbc-ink); background: #fff; }
.nfcbc-social a:hover { background: var(--nfcbc-purple); border-color: var(--nfcbc-purple); color: #fff; }
.nfcbc-social .nfcbc-icon { width: 20px; height: 20px; }
.nfcbc-social__label { font-weight: 600; margin: 0 0 10px; }
.nfcbc-map { position: relative; border-radius: var(--nfcbc-r-panel); overflow: hidden; background: var(--nfcbc-soft); min-height: 320px; }
.nfcbc-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.nfcbc-map.is-loaded .nfcbc-map__placeholder { display: none; }
.nfcbc-map__placeholder { min-height: 320px; display: grid; place-content: center; justify-items: center; text-align: center; gap: 12px; padding: 32px; }
.nfcbc-map__placeholder > .nfcbc-icon { width: 36px; height: 36px; color: var(--nfcbc-purple); }
.nfcbc-map__address { font-weight: 600; color: var(--nfcbc-ink); margin: 0; }
.nfcbc-map__actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.nfcbc-map__note { font-size: 13px; color: var(--nfcbc-grey); margin: 0; }

/* ---------- Forms ---------- */
.nfcbc-form-wrap { background: #fff; border: 1px solid var(--nfcbc-line); border-radius: var(--nfcbc-r-panel); padding: clamp(20px, 4vw, 36px); }
.nfcbc-form__title { margin-top: 0; }
.nfcbc-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 18px; }
.nfcbc-field { margin: 0 0 12px; display: grid; gap: 6px; }
.nfcbc-field--full { grid-column: 1 / -1; }
.nfcbc-field label { font-weight: 600; font-size: 15px; color: var(--nfcbc-ink); }
.nfcbc-field input, .nfcbc-field select, .nfcbc-field textarea {
	width: 100%; min-height: 48px; padding: 10px 14px; border: 1.5px solid #CFC6D9; border-radius: var(--nfcbc-r-btn);
	background: #fff; color: var(--nfcbc-ink); font: 400 16px/1.4 var(--nfcbc-font);
}
.nfcbc-field input:focus, .nfcbc-field select:focus, .nfcbc-field textarea:focus { border-color: var(--nfcbc-purple); outline: 3px solid rgba(110, 46, 184, .25); outline-offset: 0; }
.nfcbc-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.nfcbc-form__privacy { font-size: 14px; color: var(--nfcbc-grey); }
.nfcbc-form__actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 0; }
.nfcbc-form__notice { padding: 14px 16px; border-radius: var(--nfcbc-r-btn); margin-bottom: 18px; }
.nfcbc-form__notice--ok { background: #E8F5EC; color: #0B4F29; }
.nfcbc-form__notice--error { background: #FDECEC; color: #8A1C1C; }
@media (max-width: 640px) {
	.nfcbc-form__grid { grid-template-columns: 1fr; }
}

/* ---------- WooCommerce ---------- */
.nfcbc-product-wa { margin: 14px 0 6px; }
.nfcbc-order-note { margin-top: 18px; padding: 16px 18px; background: var(--nfcbc-soft); border-radius: var(--nfcbc-r-card); font-size: 15px; }
.nfcbc-order-note p { margin: 0 0 6px; }
.nfcbc-order-note p:last-child { margin: 0; }
.nfcbc-order-note a { color: var(--nfcbc-purple); font-weight: 600; }
.woocommerce ul.products li.product,
.wc-block-grid__product {
	background: #fff;
	border: 1px solid var(--nfcbc-line);
	border-radius: var(--nfcbc-r-card);
	overflow: hidden;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.woocommerce ul.products li.product:hover { border-color: #CDB8E6; box-shadow: var(--nfcbc-shadow); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 17px !important; color: var(--nfcbc-ink); font-weight: 600; }
.woocommerce ul.products li.product .price { color: var(--nfcbc-ink) !important; font-weight: 700; font-size: 18px; }
.woocommerce ul.products li.product .price del, .woocommerce div.product p.price del { color: var(--nfcbc-grey) !important; opacity: 1 !important; font-weight: 400; font-size: 15px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce span.onsale { background: var(--nfcbc-midnight) !important; color: #fff !important; border-radius: 999px !important; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--nfcbc-ink) !important; font-weight: 700; }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button { border-radius: var(--nfcbc-r-btn) !important; font-weight: 600 !important; }

/* ---------- Blog post call to action ---------- */
.nfcbc-post-cta { margin: 48px 0 16px; padding: 28px; border-radius: var(--nfcbc-r-panel); background: var(--nfcbc-soft); }
.nfcbc-post-cta__eyebrow { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--nfcbc-purple); margin: 0 0 6px; }
.nfcbc-post-cta__title { margin: 0 0 8px; font-size: 24px; }
.nfcbc-post-cta__actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 16px 0 0; }
.nfcbc-post-meta { font-size: 14px; color: var(--nfcbc-grey); }

/* ---------- Floating WhatsApp (small, above Kadence scroll-to-top, clear of the iOS home bar) ---------- */
.nfcbc-float-wa {
	position: fixed; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 90;
	width: 68px; height: 68px; border-radius: 50%; display: grid; place-items: center;
	background: var(--nfcbc-wa); color: #fff !important; box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.nfcbc-float-wa .nfcbc-icon { width: 38px; height: 38px; }
.nfcbc-float-wa:hover { background: #07602f; }
#kt-scroll-up, .scroll-up-wrap { bottom: 104px !important; }

/* ---------- Header and footer helpers ---------- */
.nfcbc-footer { color: #CFC3DE; font-size: 15px; }
.nfcbc-footer a { color: #E9E1F3; text-decoration: none; }
.nfcbc-footer a:hover { color: #fff; text-decoration: underline; }
.nfcbc-footer h2, .nfcbc-footer .widget-title { color: #fff; font-size: 16px; letter-spacing: .04em; margin-bottom: 14px; }
.nfcbc-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.nfcbc-footer .nfcbc-social ul { display: flex; flex-wrap: wrap; gap: 10px; }
.nfcbc-footer .nfcbc-contact .nfcbc-icon { color: var(--nfcbc-lilac); }
.nfcbc-footer .nfcbc-contact__label { color: #B9ABCB; }
.nfcbc-footer .nfcbc-contact a { color: #fff; }
.nfcbc-footer .nfcbc-social a { background: transparent; border-color: rgba(255,255,255,.25); color: #fff; }
.nfcbc-footer .nfcbc-social a:hover { background: #fff; color: var(--nfcbc-purple); }
.nfcbc-logo img { display: block; height: auto; max-width: 100%; }

/* Editor-only notice for empty sections */
.nfcbc-admin-notice { border: 1px dashed var(--nfcbc-violet); background: var(--nfcbc-soft); color: var(--nfcbc-ink); padding: 14px 16px; border-radius: var(--nfcbc-r-btn); font-size: 14px; }

/* Placeholder marker for content waiting on approval (editors only see these in drafts) */
.nfcbc-placeholder { outline: 2px dashed #C2410C; outline-offset: 4px; }

/* ---------- Guide cards ---------- */
.nfcbc-posts__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.nfcbc-post-card { background: #fff; border: 1px solid var(--nfcbc-line); border-radius: var(--nfcbc-r-card); overflow: hidden; display: flex; flex-direction: column; }
.nfcbc-post-card__img img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.nfcbc-post-card__body { padding: 20px 22px 24px; }
.nfcbc-post-card h3 { font-size: 19px; line-height: 1.35; margin: 0 0 8px; }
.nfcbc-post-card h3 a { color: var(--nfcbc-ink); text-decoration: none; }
.nfcbc-post-card h3 a:hover { color: var(--nfcbc-purple); text-decoration: underline; }
.nfcbc-post-card p { color: var(--nfcbc-grey); font-size: 15px; margin: 0; }

/* Hero product image sits on a calm white panel so the logo-coloured cards read on the gradient. */
.nfcbc-hero-img img { aspect-ratio: 1 / 1; background: #fff; padding: clamp(12px, 3vw, 28px); box-shadow: 0 24px 60px rgba(0, 0, 0, .25); }
.nfcbc-section--brand .nfcbc-ticks ul { gap: 6px; font-size: 15px; }
.nfcbc-section--brand .nfcbc-h1 .elementor-heading-title { color: #fff; }

/* Sections that hold only a Site Kit list (logos, testimonials, gallery, videos, guides)
   disappear when that list has nothing cleared to show, so no empty band is left behind. */
.nfcbc-section--autohide:not(:has(.nfcbc-logos, .nfcbc-quotes, .nfcbc-reviews, .nfcbc-gallery, .nfcbc-videos, .nfcbc-posts, .nfcbc-admin-notice)) { display: none !important; }
.nfcbc-video__play img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
@media (max-width: 767px) {
	/* Keep the last footer line clear of the floating WhatsApp button. */
	.site-bottom-footer-wrap { padding-bottom: 96px; }
}

/* Links inside running text are underlined so they do not rely on colour alone (WCAG 1.4.1). */
.elementor-widget-text-editor p a,
.elementor-widget-text-editor li a,
.nfcbc-faq a,
.entry-content p a,
.entry-content li a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.nfcbc-card--link .elementor-heading-title a { color: inherit; text-decoration: none; }
.nfcbc-card--link .elementor-heading-title a:hover { color: var(--nfcbc-purple); text-decoration: underline; }
/* Whole-card click target for linked cards, keeping one real link per card. */
.nfcbc-card--link { position: relative; }
.nfcbc-card--link .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; }

/* ---------- Comparison table (NFC visiting card page) ---------- */
.nfcbc-table-wrap { overflow-x: auto; border: 1px solid var(--nfcbc-line); border-radius: var(--nfcbc-r-card); background: #fff; }
.nfcbc-table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 16px; margin: 0; }
.nfcbc-table th, .nfcbc-table td { padding: 14px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--nfcbc-line); border-left: 0; border-right: 0; }
.nfcbc-table thead th { background: var(--nfcbc-soft); color: var(--nfcbc-ink); font-weight: 700; }
.nfcbc-table tbody th { color: var(--nfcbc-ink); font-weight: 600; width: 18%; }
.nfcbc-table tr:last-child th, .nfcbc-table tr:last-child td { border-bottom: 0; }
.nfcbc-table a { font-weight: 600; }

/* Elementor's own Site Settings can set a different heading colour on an existing site; keep the brand ink on light bands. */
body .elementor .nfcbc-section:not(.nfcbc-section--brand):not(.nfcbc-section--dark) .elementor-heading-title { color: var(--nfcbc-ink); }
body .elementor .nfcbc-section:not(.nfcbc-section--brand):not(.nfcbc-section--dark) .nfcbc-eyebrow .elementor-heading-title { color: var(--nfcbc-purple) !important; }
body .elementor .nfcbc-section--brand .elementor-heading-title,
body .elementor .nfcbc-section--dark .elementor-heading-title { color: #fff; }
body .elementor .nfcbc-card--link .elementor-heading-title a { color: inherit; }

/* ---------- Single post: "Recent Posts" sidebar (Elementor posts widget) ---------- */
.single-post .elementor-widget-heading .elementor-heading-title { font-family: var(--nfcbc-font); }
.single-post .elementor-widget-posts .elementor-posts-container { display: grid; grid-template-columns: 1fr; gap: 20px; }
.single-post .elementor-widget-posts .elementor-post { margin: 0; padding: 0; }
.single-post .elementor-widget-posts .elementor-post__card {
	display: flex; flex-direction: column; height: 100%; overflow: hidden;
	background: #fff; border: 1px solid var(--nfcbc-line); border-radius: var(--nfcbc-r-card);
	box-shadow: none; transition: border-color .15s ease, box-shadow .15s ease;
}
.single-post .elementor-widget-posts .elementor-post__card:hover { border-color: #CDB8E6; box-shadow: var(--nfcbc-shadow); }
.single-post .elementor-widget-posts .elementor-post__thumbnail__link { display: block; margin: 0; }
.single-post .elementor-widget-posts .elementor-post__thumbnail { padding-bottom: 0 !important; height: auto; aspect-ratio: 16 / 9; overflow: hidden; background: var(--nfcbc-page); }
.single-post .elementor-widget-posts .elementor-post__thumbnail img { width: 100%; height: 100%; object-fit: cover; position: static; transform: none; }
.single-post .elementor-widget-posts .elementor-post__text { padding: 16px 18px 6px !important; margin: 0 !important; }
.single-post .elementor-widget-posts .elementor-post__title { margin: 0 0 10px; font-family: var(--nfcbc-font); font-size: 17px; line-height: 1.35; font-weight: 700; }
.single-post .elementor-widget-posts .elementor-post__title a { color: var(--nfcbc-ink); text-decoration: none; }
.single-post .elementor-widget-posts .elementor-post__title a:hover { color: var(--nfcbc-purple); text-decoration: underline; }
.single-post .elementor-widget-posts .elementor-post__read-more { display: inline-block; margin: 0; color: var(--nfcbc-purple) !important; font-family: var(--nfcbc-font); font-size: 14px; font-weight: 600; text-transform: none; text-decoration: none; }
.single-post .elementor-widget-posts .elementor-post__read-more:hover { text-decoration: underline; }
.single-post .elementor-widget-posts .elementor-post__meta-data { margin: 0; padding: 4px 18px 16px !important; border: 0 !important; font-family: var(--nfcbc-font); font-size: 13px; color: var(--nfcbc-grey); text-transform: none; }

.single-post .elementor-widget-heading:has(+ .elementor-widget-posts) .elementor-heading-title { color: var(--nfcbc-ink); font-size: 22px; margin-bottom: 4px; }
.single-post .elementor-widget-posts .elementor-post-date { text-transform: none; letter-spacing: 0; }

/* ---------- Readable text: Elementor Site Settings on an existing site can force mid-grey body text ---------- */
body .elementor .nfcbc-section .elementor-widget-text-editor,
body .elementor .nfcbc-section .elementor-widget-text-editor p,
body .elementor .nfcbc-section .elementor-widget-text-editor li { color: #3F3649; }
body .elementor .nfcbc-section .nfcbc-lead,
body .elementor .nfcbc-section .nfcbc-lead p { color: #4A4154; }
body .elementor .nfcbc-card p,
body .elementor .nfcbc-card .elementor-widget-text-editor p { color: #4A4154; }
body .elementor .nfcbc-section--brand .elementor-widget-text-editor,
body .elementor .nfcbc-section--brand .elementor-widget-text-editor p,
body .elementor .nfcbc-section--brand .elementor-widget-text-editor li,
body .elementor .nfcbc-section--brand .nfcbc-lead p,
body .elementor .nfcbc-section--dark .elementor-widget-text-editor,
body .elementor .nfcbc-section--dark .elementor-widget-text-editor p,
body .elementor .nfcbc-section--dark .elementor-widget-text-editor li,
body .elementor .nfcbc-section--dark .nfcbc-lead p { color: #F3ECFA; opacity: 1; }
body .elementor .nfcbc-section--brand .nfcbc-ticks li,
body .elementor .nfcbc-section--dark .nfcbc-ticks li { color: #F3ECFA; opacity: 1; }
body .elementor .nfcbc-section--brand a:not(.nfcbc-btn):not(.elementor-button),
body .elementor .nfcbc-section--dark a:not(.nfcbc-btn):not(.elementor-button) { color: var(--nfcbc-lilac); }
body .elementor .nfcbc-section .woocommerce-loop-product__title,
body .elementor .nfcbc-section ul.products li.product a.woocommerce-LoopProduct-link { color: var(--nfcbc-ink); }
body .elementor .nfcbc-section ul.products li.product .woocommerce-loop-product__title { font-size: 17px; font-weight: 600; }
body .elementor .nfcbc-section ul.products li.product .price,
body .elementor .nfcbc-section ul.products li.product .price .amount { color: var(--nfcbc-ink); }
body .elementor .nfcbc-section ul.products li.product .price del,
body .elementor .nfcbc-section ul.products li.product .price del .amount { color: #6B6275; }
.nfcbc-faq details > div, .nfcbc-faq details > div p { color: #4A4154; }
.nfcbc-section__intro, .nfcbc-gallery__item figcaption, .nfcbc-video__desc { color: #4A4154; }

/* ---------- Star ratings and reviews carousel ---------- */
.nfcbc-stars { display: inline-flex; gap: 2px; line-height: 0; }
.nfcbc-star svg { width: 20px; height: 20px; fill: #D8D2E0; }
.nfcbc-star.is-on svg { fill: #F5B50A; }
.nfcbc-quote .nfcbc-stars { margin-bottom: -6px; }
.nfcbc-reviews__summary { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 0 0 24px; font-size: 18px; color: var(--nfcbc-ink); }
.nfcbc-reviews__summary .nfcbc-star svg { width: 24px; height: 24px; }
.nfcbc-reviews__summary a { color: var(--nfcbc-purple); font-weight: 600; }
.nfcbc-reviews__wrap { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.nfcbc-reviews__viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; padding: 4px 2px 8px; }
.nfcbc-reviews__viewport::-webkit-scrollbar { display: none; }
.nfcbc-reviews__track { display: flex; gap: 20px; margin: 0; padding: 0; list-style: none; }
.nfcbc-reviews__slide { flex: 0 0 calc((100% - 40px) / 3); scroll-snap-align: start; display: flex; }
.nfcbc-reviews__slide .nfcbc-quote { width: 100%; }
.nfcbc-reviews .nfcbc-quote blockquote { font-size: 16px; line-height: 1.6; color: #3F3649; }
.nfcbc-quote__avatar { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid !important; place-items: center; background: var(--nfcbc-soft); color: var(--nfcbc-purple); font-weight: 700; font-size: 18px; }
.nfcbc-reviews__nav { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--nfcbc-line); background: #fff; color: var(--nfcbc-ink); display: grid; place-items: center; cursor: pointer; padding: 0; }
.nfcbc-reviews__nav:hover:not(:disabled) { background: var(--nfcbc-purple); border-color: var(--nfcbc-purple); color: #fff; }
.nfcbc-reviews__nav:disabled { opacity: .35; cursor: default; }
.nfcbc-reviews__nav .nfcbc-icon { width: 22px; height: 22px; }
@media (max-width: 1024px) { .nfcbc-reviews__slide { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 640px) {
	.nfcbc-reviews__wrap { grid-template-columns: minmax(0, 1fr); }
	.nfcbc-reviews__nav { display: none; }
	.nfcbc-reviews__slide { flex-basis: 88%; }
}

/* ---------- Blog page (posts page) ---------- */
.nfcbc-blog-hero { background: var(--nfcbc-gradient); color: #fff; position: relative; overflow: hidden; padding: clamp(40px, 6vw, 72px) var(--nfcbc-gutter); }
.nfcbc-blog-hero::after { content: ""; position: absolute; right: -60px; top: 50%; width: 420px; height: 420px; transform: translateY(-50%); pointer-events: none; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.12' stroke-width='14' stroke-linecap='round'%3E%3Cpath d='M40 70a40 40 0 0 1 0 60'/%3E%3Cpath d='M75 45a75 75 0 0 1 0 110'/%3E%3Cpath d='M110 20a110 110 0 0 1 0 160'/%3E%3Cpath d='M145 0a140 140 0 0 1 0 200'/%3E%3C/g%3E%3C/svg%3E"); }
.nfcbc-blog-hero__inner { max-width: var(--nfcbc-wrap); margin: 0 auto; position: relative; z-index: 1; }
.nfcbc-blog-hero .nfcbc-eyebrow { color: var(--nfcbc-lilac) !important; margin: 0 0 10px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.nfcbc-blog-hero h1 { color: #fff; font-size: clamp(32px, 4.6vw, 48px); line-height: 1.12; margin: 0 0 14px; max-width: 720px; }
.nfcbc-blog-hero .nfcbc-lead { color: #F3ECFA; max-width: 640px; margin: 0 0 24px; font-size: clamp(17px, 1.6vw, 19px); }
.nfcbc-blog-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
body.blog .site-main { padding-block: clamp(32px, 5vw, 56px); }
body.blog .content-container.site-container,
body.blog .site-container { max-width: calc(var(--nfcbc-wrap) + 2 * var(--nfcbc-gutter)); padding-inline: var(--nfcbc-gutter); margin-inline: auto; }
body.blog #archive-container { gap: 28px; }
body.blog #archive-container .entry-list-item { margin: 0; }
body.blog #archive-container .entry { background: #fff; border: 1px solid var(--nfcbc-line); border-radius: var(--nfcbc-r-card); overflow: hidden; box-shadow: none; height: 100%; display: flex; flex-direction: column; transition: border-color .15s ease, box-shadow .15s ease; }
body.blog #archive-container .entry:hover { border-color: #CDB8E6; box-shadow: var(--nfcbc-shadow); }
body.blog #archive-container .post-thumbnail { margin: 0; }
body.blog #archive-container .post-thumbnail-inner img { width: 100%; height: 100%; object-fit: cover; }
body.blog #archive-container .entry-content-wrap { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
body.blog #archive-container .entry-title { font-size: 20px; line-height: 1.3; margin: 6px 0 10px; }
body.blog #archive-container .entry-title a { color: var(--nfcbc-ink); text-decoration: none; }
body.blog #archive-container .entry-title a:hover { color: var(--nfcbc-purple); text-decoration: underline; }
body.blog #archive-container .entry-taxonomies { font-size: 13px; letter-spacing: .08em; }
body.blog #archive-container .entry-meta { font-size: 14px; color: #5A5164; margin-bottom: 10px; }
body.blog #archive-container .entry-summary p { color: #4A4154; font-size: 16px; margin-bottom: 14px; }
body.blog #archive-container .entry-actions { margin-top: auto; }
body.blog #archive-container .post-more-link { color: var(--nfcbc-purple); font-weight: 600; text-decoration: none; }
body.blog .pagination { margin-top: 40px; }
@media (max-width: 767px) { body.blog #archive-container { gap: 20px; } }

body .elementor ul.products li.product .woocommerce-loop-product__title,
body .elementor ul.products li.product a.woocommerce-LoopProduct-link,
body .elementor ul.products li.product a { color: var(--nfcbc-ink) !important; }
.nfcbc-reviews__summary .nfcbc-stars { margin-right: 6px; margin-bottom: 0; }

/* Footer link tap targets (mobile) */
@media (max-width: 767px) {
	.nfcbc-footer li a { display: inline-block; padding: 7px 0; }
}

/* Breadcrumbs above post titles */
.kadence-breadcrumbs .rank-math-breadcrumb p { margin: 0 0 12px; font-size: 14px; color: #6B5F7A; }
.kadence-breadcrumbs .rank-math-breadcrumb a { color: #4A0E8F; text-decoration: none; }
.kadence-breadcrumbs .rank-math-breadcrumb a:hover { text-decoration: underline; }
.kadence-breadcrumbs .rank-math-breadcrumb .separator { margin: 0 6px; }

/* Single-post hero: the featured image is a branded title card, so use the brand gradient behind the title instead of repeating it */
body.single-post .elementor-location-single .elementor-element-27d9b80 { background-image: linear-gradient(135deg, #3D007D 0%, #150030 100%) !important; }
body.single-post .elementor-location-single .elementor-element-27d9b80::before { background: transparent !important; opacity: 0 !important; }
