/* =============================================================================
 * NFC Digital Profile — Elementor Widget Stylesheet
 *
 * All selectors are scoped under .nfc-profile so the widget never bleeds into
 * the surrounding page or theme. CSS custom properties drive theme + palette
 * + corner radius; the widget renderer can override them inline per-instance.
 * ========================================================================== */

.nfc-profile {
	/* Type stacks (overridable via Elementor TYPOGRAPHY controls) */
	--nfc-font-sans:    "Calibri", "Carlito", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
	--nfc-font-display: "Fraunces", "Calibri", "Carlito", Georgia, serif;
	--nfc-font-mono:    "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

	/* Radius scale — overridden by inline <style> from the slider */
	--r-sm: 10px;
	--r-md: 16px;
	--r-lg: 22px;
	--r-xl: 30px;
	--r-pill: 999px;

	/* DARK / Ocean (default) */
	--bg-0: #04081a;
	--bg-1: #081230;
	--bg-2: #0d1c46;
	--grad-from: #0a1738;
	--grad-via:  #11296a;
	--grad-to:   #060d24;

	--surface:        rgba(255,255,255,0.045);
	--surface-2:      rgba(255,255,255,0.075);
	--surface-strong: rgba(255,255,255,0.11);
	--hairline:        rgba(255,255,255,0.10);
	--hairline-strong: rgba(255,255,255,0.20);

	--ink:       #f1f5ff;
	--ink-soft:  rgba(241,245,255,0.74);
	--ink-faint: rgba(241,245,255,0.48);
	--ink-dim:   rgba(241,245,255,0.30);

	--accent:     #f6cb86;
	--accent-2:   #7ddcca;
	--accent-ink: #1a1208;

	--action-bg:       rgba(255,255,255,0.06);
	--action-bg-hover: rgba(255,255,255,0.12);

	color: var(--ink);
	font-family: var(--nfc-font-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: "kern" 1, "liga" 1, "ss01" 1;
	display: flex;
	justify-content: center;
	padding: 28px 16px 72px;
	background:
		radial-gradient(1100px 750px at 18% -8%, color-mix(in oklab, var(--grad-via) 55%, transparent), transparent 60%),
		radial-gradient(900px 700px at 110% 35%, color-mix(in oklab, var(--grad-from) 45%, transparent), transparent 60%),
		radial-gradient(700px 500px at 50% 110%, color-mix(in oklab, var(--accent-2) 8%, transparent), transparent 60%),
		var(--bg-0);
}

.nfc-profile[data-theme="light"] {
	--bg-0: #eef2fa;
	--bg-1: #ffffff;
	--bg-2: #f1f5fc;
	--grad-from: #ffffff;
	--grad-via:  #eef3fc;
	--grad-to:   #e2eaf6;

	--surface:        rgba(13,35,88,0.04);
	--surface-2:      rgba(13,35,88,0.07);
	--surface-strong: rgba(13,35,88,0.10);
	--hairline:        rgba(13,35,88,0.10);
	--hairline-strong: rgba(13,35,88,0.20);

	--ink:       #0a1a3a;
	--ink-soft:  rgba(10,26,58,0.72);
	--ink-faint: rgba(10,26,58,0.48);
	--ink-dim:   rgba(10,26,58,0.28);

	--accent:   #b08230;
	--accent-2: #14887a;

	--action-bg:       rgba(13,35,88,0.05);
	--action-bg-hover: rgba(13,35,88,0.10);
}

/* Reset only inside the widget so we never break theme defaults outside. */
.nfc-profile *,
.nfc-profile *::before,
.nfc-profile *::after {
	box-sizing: border-box;
	-webkit-tap-highlight-color: transparent;
}

/* ---------- Card frame ---------- */
.nfc-profile__frame {
	width: 100%;
	max-width: 440px;
	border-radius: var(--r-xl);
	overflow: hidden;
	position: relative;
	background:
		radial-gradient(120% 60% at 50% 0%, color-mix(in oklab, var(--grad-via) 75%, transparent), transparent 70%),
		linear-gradient(180deg, var(--grad-from) 0%, var(--grad-to) 100%);
	box-shadow:
		0 1px 0 rgba(255,255,255,0.06) inset,
		0 -1px 0 rgba(0,0,0,0.4) inset,
		0 50px 130px -50px rgba(0,8,40,0.95),
		0 0 0 0.5px var(--hairline);
	isolation: isolate;
}
.nfc-profile[data-theme="light"] .nfc-profile__frame {
	box-shadow:
		0 1px 0 rgba(255,255,255,0.7) inset,
		0 30px 100px -40px rgba(13,35,88,0.35),
		0 0 0 0.5px var(--hairline);
}

.nfc-profile__frame::before {
	content: "";
	position: absolute; inset: 0;
	pointer-events: none;
	background:
		radial-gradient(700px 320px at 50% -160px, color-mix(in oklab, var(--accent) 22%, transparent), transparent 70%),
		radial-gradient(550px 450px at 100% 110%, color-mix(in oklab, var(--accent-2) 16%, transparent), transparent 70%);
	z-index: 0;
	mix-blend-mode: screen;
	opacity: 0.85;
}
.nfc-profile[data-theme="light"] .nfc-profile__frame::before { mix-blend-mode: multiply; opacity: 0.45; }

.nfc-profile__frame::after {
	content: "";
	position: absolute; inset: 0;
	pointer-events: none;
	z-index: 0;
	opacity: 0.4;
	mix-blend-mode: overlay;
	background-image: repeating-linear-gradient(0deg, rgba(255,255,255,0.015) 0 1px, transparent 1px 3px);
}
.nfc-profile__frame > * { position: relative; z-index: 1; }

/* ---------- Status bar ---------- */
.nfc-profile__statusbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 22px 0;
	font-family: var(--nfc-font-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	color: var(--ink-faint);
	text-transform: uppercase;
}
.nfc-profile__id-tag,
.nfc-profile__nfc-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 10px;
	border-radius: var(--r-pill);
	background: var(--surface);
	border: 1px solid var(--hairline);
	color: var(--ink-soft);
}
.nfc-profile__nfc-chip { font-weight: 500; }
.nfc-profile__nfc-chip svg { width: 12px; height: 12px; }
.nfc-profile__led {
	width: 5px; height: 5px;
	border-radius: 50%;
	background: var(--accent-2);
	box-shadow: 0 0 0 3px color-mix(in oklab, var(--accent-2) 22%, transparent);
	animation: nfc-blink 2.4s ease-in-out infinite;
}
@keyframes nfc-blink {
	0%, 60%, 100% { opacity: 1; }
	70% { opacity: 0.35; }
	80% { opacity: 1; }
}

/* ---------- Hero ---------- */
.nfc-profile__hero {
	padding: 28px 28px 22px;
	text-align: center;
	position: relative;
}
.nfc-profile__hero-orbit {
	position: relative;
	width: 168px;
	height: 168px;
	margin: 8px auto 18px;
}
.nfc-profile__hero-orbit::before,
.nfc-profile__hero-orbit::after {
	content: "";
	position: absolute;
	inset: -10px;
	border-radius: 50%;
	border: 1px dashed var(--hairline);
	animation: nfc-spin 40s linear infinite;
}
.nfc-profile__hero-orbit::after {
	inset: -22px;
	border-style: solid;
	border-color: transparent;
	border-top-color: color-mix(in oklab, var(--accent) 70%, transparent);
	animation: nfc-spin 14s linear infinite reverse;
	opacity: 0.5;
}
@keyframes nfc-spin { to { transform: rotate(360deg); } }

.nfc-profile__avatar-wrap {
	position: absolute;
	inset: 18px;
	border-radius: 50%;
	padding: 3px;
	background: conic-gradient(from 220deg,
		color-mix(in oklab, var(--accent) 80%, transparent),
		color-mix(in oklab, var(--accent-2) 70%, transparent),
		color-mix(in oklab, var(--accent) 50%, transparent),
		color-mix(in oklab, var(--accent) 80%, transparent));
}
.nfc-profile__avatar-wrap::after {
	content: "";
	position: absolute;
	inset: -16px;
	border-radius: 50%;
	background: radial-gradient(closest-side, color-mix(in oklab, var(--accent) 35%, transparent), transparent 70%);
	filter: blur(16px);
	z-index: -1;
}
.nfc-profile__avatar {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: var(--surface-strong);
	border: 2px solid var(--bg-1);
	object-fit: cover;
}
.nfc-profile__avatar-placeholder {
	display: grid;
	place-items: center;
	width: 100%; height: 100%;
	border-radius: 50%;
	background: var(--surface-strong);
	border: 2px solid var(--bg-1);
	font-family: var(--nfc-font-display);
	font-style: italic;
	font-size: 64px;
	color: var(--accent);
}
.nfc-profile__badge {
	position: absolute;
	bottom: 4px; right: 4px;
	width: 36px; height: 36px;
	border-radius: 50%;
	background: linear-gradient(140deg, var(--accent), color-mix(in oklab, var(--accent) 60%, var(--accent-2)));
	display: grid; place-items: center;
	color: var(--accent-ink);
	border: 3px solid var(--bg-1);
	z-index: 2;
	box-shadow: 0 6px 16px -4px color-mix(in oklab, var(--accent) 80%, transparent);
}
.nfc-profile__badge svg { width: 16px; height: 16px; }

.nfc-profile__eyebrow {
	font-family: var(--nfc-font-mono);
	font-size: 10.5px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 0 0 8px;
}
.nfc-profile__eyebrow span { color: var(--ink-dim); }

.nfc-profile__name {
	font-family: var(--nfc-font-display);
	font-weight: 300;
	font-size: 40px;
	letter-spacing: -0.015em;
	line-height: 1.05;
	margin: 0 0 12px;
	color: var(--ink);
}
.nfc-profile__name em {
	font-style: italic;
	font-weight: 300;
	background: linear-gradient(180deg, var(--accent), color-mix(in oklab, var(--accent) 70%, var(--accent-2)));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.nfc-profile__role-line {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	color: var(--ink-soft);
	margin: 0 0 6px;
	flex-wrap: wrap;
	justify-content: center;
}
.nfc-profile__role-line .sep {
	width: 4px; height: 4px; border-radius: 50%;
	background: var(--ink-dim);
}
.nfc-profile__role-line .role {
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-size: 11.5px;
	color: var(--ink);
}

.nfc-profile__firm {
	font-family: var(--nfc-font-display);
	font-style: italic;
	font-weight: 300;
	font-size: 16px;
	color: var(--ink-soft);
	margin: 0 0 14px;
}

.nfc-profile__location {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 12px;
	border-radius: var(--r-pill);
	background: var(--surface);
	border: 1px solid var(--hairline);
	font-size: 13px;
	color: var(--ink-soft);
}
.nfc-profile__location svg { width: 13px; height: 13px; opacity: 0.85; color: var(--accent); }

/* ---------- Action row ---------- */
.nfc-profile__actions {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	padding: 22px 22px 8px;
}
.nfc-profile__action {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 18px 10px 14px;
	border-radius: var(--r-md);
	background: var(--action-bg);
	border: 1px solid var(--hairline);
	color: var(--ink);
	text-decoration: none;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
	position: relative;
	overflow: hidden;
}
.nfc-profile__action::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--hairline-strong), transparent);
}
.nfc-profile__action:hover,
.nfc-profile__action:focus-visible {
	background: var(--action-bg-hover);
	border-color: var(--hairline-strong);
	transform: translateY(-2px);
	outline: none;
}
.nfc-profile__action svg,
.nfc-profile__action i {
	width: 20px; height: 20px;
	font-size: 20px;
	display: inline-block;
}
.nfc-profile__action--primary {
	background: linear-gradient(180deg, color-mix(in oklab, var(--accent) 95%, transparent), color-mix(in oklab, var(--accent) 70%, black));
	color: var(--accent-ink);
	border-color: transparent;
	box-shadow: 0 10px 24px -10px color-mix(in oklab, var(--accent) 70%, transparent);
}
.nfc-profile__action--primary::before { display: none; }
.nfc-profile__action--primary:hover { filter: brightness(1.05); }

/* Focus ring for accessibility */
.nfc-profile a:focus-visible,
.nfc-profile button:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* ---------- Contact card ---------- */
.nfc-profile__contact {
	margin: 18px 22px 4px;
	padding: 14px;
	background: var(--surface);
	border: 1px solid var(--hairline);
	border-radius: var(--r-lg);
	display: flex;
	flex-direction: column;
}
.nfc-profile__contact-row {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 10px;
	border-radius: var(--r-md);
	color: var(--ink);
	text-decoration: none;
	transition: background .15s;
	position: relative;
}
.nfc-profile__contact-row + .nfc-profile__contact-row {
	border-top: 1px solid var(--hairline);
}
.nfc-profile__contact-row:hover { background: var(--surface-2); }
.nfc-profile__contact-icon {
	width: 42px; height: 42px;
	border-radius: 12px;
	background: linear-gradient(160deg, var(--surface-strong), var(--surface));
	border: 1px solid var(--hairline);
	display: grid; place-items: center;
	flex: 0 0 42px;
	color: var(--accent);
}
.nfc-profile__contact-icon svg,
.nfc-profile__contact-icon i { width: 18px; height: 18px; font-size: 18px; }
.nfc-profile__contact-text { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.nfc-profile__contact-label {
	font-family: var(--nfc-font-mono);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--ink-faint);
	margin-bottom: 2px;
}
.nfc-profile__contact-value {
	font-size: 15px;
	font-weight: 600;
	color: var(--ink);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.nfc-profile__contact-arrow { color: var(--ink-dim); }

/* ---------- Socials ---------- */
.nfc-profile__socials {
	display: flex;
	justify-content: center;
	gap: 10px;
	padding: 22px 0 4px;
	flex-wrap: wrap;
}
.nfc-profile__social {
	width: 46px; height: 46px;
	border-radius: 14px;
	background: var(--surface);
	border: 1px solid var(--hairline);
	display: grid; place-items: center;
	color: var(--ink);
	text-decoration: none;
	transition: transform .18s, background .18s, color .18s;
}
.nfc-profile__social:hover { background: var(--surface-2); transform: translateY(-2px); color: var(--accent); }
.nfc-profile__social svg,
.nfc-profile__social i { width: 18px; height: 18px; font-size: 18px; }

/* ---------- Generic section ---------- */
.nfc-profile__section { padding: 32px 28px 4px; }
.nfc-profile__sec-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 20px;
}
.nfc-profile__sec-num {
	font-family: var(--nfc-font-mono);
	font-size: 11px;
	font-weight: 500;
	color: var(--accent);
	letter-spacing: 0.12em;
	font-variant-numeric: tabular-nums;
	padding: 4px 8px;
	border-radius: 4px;
	background: color-mix(in oklab, var(--accent) 12%, transparent);
}
.nfc-profile__sec-title {
	font-family: var(--nfc-font-display);
	font-size: 22px;
	font-weight: 400;
	color: var(--ink);
	letter-spacing: -0.01em;
	margin: 0;
}
.nfc-profile__sec-rule {
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, var(--hairline-strong), transparent);
}

/* About */
.nfc-profile__about p {
	font-size: 15px;
	line-height: 1.65;
	color: var(--ink-soft);
	margin: 0 0 12px;
	text-wrap: pretty;
}
.nfc-profile__about p:last-child { margin-bottom: 0; }
.nfc-profile__about strong {
	color: var(--ink);
	font-weight: 700;
	background: linear-gradient(180deg, transparent 65%, color-mix(in oklab, var(--accent) 25%, transparent) 65%);
	padding: 0 2px;
}

/* Services */
.nfc-profile__services { display: flex; flex-direction: column; gap: 8px; }
.nfc-profile__service {
	position: relative;
	padding: 16px 18px;
	border-radius: var(--r-md);
	background: var(--surface);
	border: 1px solid var(--hairline);
	transition: background .18s, border-color .18s, transform .18s;
	display: flex;
	align-items: center;
	gap: 14px;
	color: inherit;
	text-decoration: none;
}
.nfc-profile__service:hover {
	background: var(--surface-2);
	border-color: var(--hairline-strong);
}
.nfc-profile__service-num {
	font-family: var(--nfc-font-mono);
	font-size: 11px;
	color: var(--accent);
	font-variant-numeric: tabular-nums;
	min-width: 24px;
	letter-spacing: 0.04em;
}
.nfc-profile__service-body { flex: 1; min-width: 0; }
.nfc-profile__service-title {
	font-size: 15px;
	font-weight: 700;
	color: var(--ink);
	margin: 0 0 3px;
	letter-spacing: -0.005em;
}
.nfc-profile__service-desc {
	font-size: 13px;
	color: var(--ink-soft);
	line-height: 1.45;
	margin: 0;
}
.nfc-profile__service-arrow {
	width: 30px; height: 30px;
	border-radius: 50%;
	background: var(--surface);
	border: 1px solid var(--hairline);
	display: grid; place-items: center;
	color: var(--ink-faint);
	transition: transform .2s, color .2s, background .2s, border-color .2s;
	flex: 0 0 30px;
}
.nfc-profile__service-arrow svg { width: 14px; height: 14px; }
.nfc-profile__service:hover .nfc-profile__service-arrow {
	color: var(--accent-ink);
	background: var(--accent);
	border-color: var(--accent);
	transform: rotate(-45deg);
}

/* Stats */
.nfc-profile__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
}
.nfc-profile__stat {
	padding: 22px 14px 18px;
	border-radius: var(--r-md);
	background: var(--surface);
	border: 1px solid var(--hairline);
	text-align: center;
	position: relative;
	overflow: hidden;
}
.nfc-profile__stat::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, color-mix(in oklab, var(--accent) 50%, transparent), transparent);
}
.nfc-profile__stat-value {
	font-family: var(--nfc-font-display);
	font-size: 38px;
	font-weight: 300;
	letter-spacing: -0.03em;
	color: var(--ink);
	line-height: 1;
	margin: 0 0 8px;
}
.nfc-profile__stat-value em { color: var(--accent); font-style: normal; font-weight: 400; }
.nfc-profile__stat-label {
	font-family: var(--nfc-font-mono);
	font-size: 9.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--ink-faint);
	line-height: 1.4;
}

/* Pricing */
.nfc-profile__price-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 16px 18px;
	border-radius: var(--r-md);
	background: var(--surface);
	border: 1px solid var(--hairline);
	transition: background .18s;
	color: inherit;
	text-decoration: none;
}
.nfc-profile__price-row:hover { background: var(--surface-2); }
.nfc-profile__price-info { min-width: 0; flex: 1; }
.nfc-profile__price-title { font-size: 15px; font-weight: 700; color: var(--ink); margin: 0 0 3px; }
.nfc-profile__price-desc { font-size: 13px; color: var(--ink-soft); margin: 0; }
.nfc-profile__price-tag {
	flex: 0 0 auto;
	padding: 8px 14px;
	border-radius: var(--r-pill);
	background: linear-gradient(180deg, color-mix(in oklab, var(--accent) 28%, transparent), color-mix(in oklab, var(--accent) 14%, transparent));
	color: var(--accent);
	font-weight: 700;
	font-size: 14px;
	border: 1px solid color-mix(in oklab, var(--accent) 35%, transparent);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.nfc-profile__price-row--booking .nfc-profile__price-tag {
	background: linear-gradient(180deg, var(--accent), color-mix(in oklab, var(--accent) 70%, black));
	color: var(--accent-ink);
	border-color: transparent;
}

/* Languages */
.nfc-profile__langs { display: flex; flex-direction: column; gap: 10px; }
.nfc-profile__lang {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	border-radius: var(--r-md);
	background: var(--surface);
	border: 1px solid var(--hairline);
}
.nfc-profile__lang-flag {
	width: 32px; height: 32px;
	border-radius: 50%;
	background: linear-gradient(160deg, var(--surface-strong), var(--surface));
	border: 1px solid var(--hairline);
	display: grid; place-items: center;
	font-family: var(--nfc-font-mono);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--accent);
	flex: 0 0 32px;
	text-transform: uppercase;
}
.nfc-profile__lang-name { font-size: 14px; font-weight: 700; color: var(--ink); flex: 1; }
.nfc-profile__lang-level { display: flex; gap: 4px; }
.nfc-profile__lang-level i {
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--surface-strong);
}
.nfc-profile__lang-level i.is-on { background: var(--accent); }

/* Location */
.nfc-profile__location-card {
	padding: 14px;
	border-radius: var(--r-lg);
	background: var(--surface);
	border: 1px solid var(--hairline);
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.nfc-profile__loc-head {
	display: flex; align-items: center; gap: 12px;
	padding: 4px 6px;
}
.nfc-profile__loc-icon {
	width: 42px; height: 42px;
	border-radius: 12px;
	background: linear-gradient(160deg, var(--surface-strong), var(--surface));
	border: 1px solid var(--hairline);
	display: grid; place-items: center;
}
.nfc-profile__loc-icon svg { width: 18px; height: 18px; color: var(--accent); }
.nfc-profile__loc-title { font-size: 15px; font-weight: 700; color: var(--ink); margin: 0 0 2px; }
.nfc-profile__loc-sub {
	font-size: 12.5px;
	color: var(--ink-soft);
	margin: 0;
	font-family: var(--nfc-font-mono);
	letter-spacing: 0.02em;
}
.nfc-profile__map {
	position: relative;
	width: 100%;
	height: 220px;
	border-radius: var(--r-md);
	overflow: hidden;
	border: 1px solid var(--hairline);
	background: var(--bg-2);
}
.nfc-profile__map iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
	filter: saturate(0.9);
}
.nfc-profile__map-overlay {
	position: absolute;
	inset: auto 0 0 0;
	height: 60%;
	background: linear-gradient(180deg, transparent, color-mix(in oklab, var(--bg-1) 50%, transparent));
	pointer-events: none;
}

/* QR card */
.nfc-profile__qr-card {
	margin: 32px 22px 0;
	padding: 28px 22px 24px;
	border-radius: var(--r-lg);
	background:
		radial-gradient(80% 70% at 50% 0%, color-mix(in oklab, var(--accent-2) 22%, transparent), transparent 70%),
		var(--surface);
	border: 1px solid var(--hairline);
	text-align: center;
	position: relative;
	overflow: hidden;
}
.nfc-profile__qr-card::before {
	content: "";
	position: absolute; inset: 0;
	background-image:
		radial-gradient(circle at 20% 30%, color-mix(in oklab, var(--accent) 8%, transparent) 0%, transparent 25%),
		radial-gradient(circle at 80% 70%, color-mix(in oklab, var(--accent-2) 8%, transparent) 0%, transparent 25%);
	pointer-events: none;
}
.nfc-profile__qr-eyebrow {
	font-family: var(--nfc-font-mono);
	font-size: 10.5px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--accent-2);
	font-weight: 600;
	margin: 0 0 6px;
	position: relative;
}
.nfc-profile__qr-headline {
	font-family: var(--nfc-font-display);
	font-weight: 300;
	font-style: italic;
	font-size: 20px;
	margin: 0 0 18px;
	color: var(--ink);
	position: relative;
}
.nfc-profile__qr-frame {
	width: 200px;
	height: 200px;
	margin: 0 auto;
	padding: 14px;
	border-radius: var(--r-md);
	background: #fff;
	position: relative;
}
.nfc-profile__qr-frame::before,
.nfc-profile__qr-frame::after,
.nfc-profile__qr-frame > i:first-child,
.nfc-profile__qr-frame > i:nth-child(2) {
	content: "";
	position: absolute;
	width: 22px; height: 22px;
	border: 2px solid var(--accent);
	border-radius: 4px;
}
.nfc-profile__qr-frame::before { top: -6px; left: -6px; border-right: 0; border-bottom: 0; }
.nfc-profile__qr-frame::after  { top: -6px; right: -6px; border-left: 0; border-bottom: 0; }
.nfc-profile__qr-frame > i:first-child  { bottom: -6px; left: -6px; border-right: 0; border-top: 0; }
.nfc-profile__qr-frame > i:nth-child(2) { bottom: -6px; right: -6px; border-left: 0; border-top: 0; }
.nfc-profile__qr-frame img { width: 100%; height: 100%; object-fit: contain; display: block; }
.nfc-profile__qr-caption {
	font-size: 13px;
	color: var(--ink-soft);
	margin: 18px 0 0;
	line-height: 1.5;
	position: relative;
}
.nfc-profile__qr-tap {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 14px auto 0;
	padding: 8px 14px;
	border-radius: var(--r-pill);
	background: var(--surface-2);
	border: 1px solid var(--hairline);
	font-size: 12px;
	font-weight: 600;
	color: var(--ink);
	letter-spacing: 0.02em;
	position: relative;
}
.nfc-profile__qr-tap svg { width: 14px; height: 14px; color: var(--accent); }

/* Footer */
.nfc-profile__footer {
	padding: 36px 28px 24px;
	text-align: center;
}
.nfc-profile__footer-mark {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--nfc-font-display);
	font-size: 16px;
	font-weight: 400;
	color: var(--ink);
	margin-bottom: 8px;
}
.nfc-profile__nfc-glyph {
	width: 26px; height: 26px;
	border-radius: 8px;
	background: linear-gradient(135deg, var(--accent), color-mix(in oklab, var(--accent) 50%, var(--accent-2)));
	display: grid; place-items: center;
	color: var(--accent-ink);
	font-family: var(--nfc-font-mono);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.04em;
}
.nfc-profile__footer-tag {
	font-family: var(--nfc-font-mono);
	font-size: 10.5px;
	letter-spacing: 0.16em;
	color: var(--ink-faint);
	text-transform: uppercase;
	margin: 4px 0 14px;
}
.nfc-profile__footer-links {
	display: flex;
	justify-content: center;
	gap: 22px;
	flex-wrap: wrap;
}
.nfc-profile__footer-links a {
	font-size: 12px;
	color: var(--ink-soft);
	text-decoration: none;
	letter-spacing: 0.04em;
}
.nfc-profile__footer-links a:hover { color: var(--ink); }

/* Reduced-motion respect */
@media (prefers-reduced-motion: reduce) {
	.nfc-profile *,
	.nfc-profile *::before,
	.nfc-profile *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Mobile tightening */
@media (max-width: 480px) {
	.nfc-profile { padding: 14px 8px 60px; }
	.nfc-profile__name { font-size: 34px; }
	.nfc-profile__hero { padding: 22px 20px 18px; }
	.nfc-profile__actions { padding: 18px 16px 6px; }
	.nfc-profile__contact { margin: 14px 16px 4px; }
	.nfc-profile__section { padding: 26px 20px 4px; }
	.nfc-profile__qr-card { margin: 26px 16px 0; padding: 22px 16px 20px; }
	.nfc-profile__footer { padding: 28px 20px 20px; }
}
