/* =====================================================================
   Profile Box Widget — Frontend Styles v1.3.0
   Road Shield Solutions / CardBuzz UAE
   KEY FIX: pbw-card-hover gives micro-interaction WITHOUT touching
   background-color, so Elementor color controls always win.
   ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&family=Plus+Jakarta+Sans:wght@400;600&family=Roboto+Condensed:wght@700&display=swap');

* { -webkit-tap-highlight-color: transparent; }

/* ── RS Premium Global Transitions ────────────────────────────────── */
.rs-premium-image,
.rs-premium-btn,
.rs-premium-icon,
.pbw-card-hover {
	transition:
		transform .45s cubic-bezier(.19,1,.22,1),
		box-shadow .45s ease,
		border-color .45s ease,
		opacity .45s ease;
}

/* ================================================================= */
/* LOGO BAR                                                           */
/* ================================================================= */
.pbw-logo-bar {
	width: 100%;
	padding: 10px 0;
	box-sizing: border-box;
	text-align: left; /* Elementor responsive selector overrides this */
}
.pbw-logo {
	display: inline-block;
}
.pbw-logo img {
	width: 13%;
	display: block;
	height: auto;
}

/* ================================================================= */
/* CARD                                                               */
/* ================================================================= */
.pbw-card {
	background-color: #000000;
	padding: 50px 0;
	width: 100%;
	box-sizing: border-box;
}
.pbw-inner {
	display: flex;
	flex-direction: row;
	gap: 0;
	align-items: center;
}

/* ================================================================= */
/* PHOTO — rs-premium-image                                          */
/* ================================================================= */
.pbw-photo-wrap {
	width: 43%;
	flex-shrink: 0;
}
.pbw-photo-wrap img {
	width: 100%;
	display: block;
	object-fit: cover;
	border: 2px solid #F1D154;
	border-radius: 10px;
	height: auto;
}

.rs-premium-image {
	position: relative;
	overflow: hidden;
	border: 2px solid rgba(231,196,56,.85);
	border-radius: 10px;
	background: #000;
	transform: translateY(0px);
	box-shadow: 0 0 0 rgba(231,196,56,0), 0 20px 60px rgba(0,0,0,.45);
}
.rs-premium-image:before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(135deg, rgba(255,215,80,.95), rgba(255,215,80,.08), rgba(255,215,80,.65));
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	opacity: .65;
	pointer-events: none;
}
.rs-premium-image:after {
	content: "";
	position: absolute;
	top: -120%; left: -40%;
	width: 40%; height: 250%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
	transform: rotate(18deg);
	transition: all .9s ease;
}
.rs-premium-image:hover {
	transform: translateY(-8px) scale(1.01);
	box-shadow: 0 0 35px rgba(231,196,56,.12), 0 35px 80px rgba(0,0,0,.65);
}
.rs-premium-image:hover:after { left: 130%; }

/* ================================================================= */
/* CONTENT COLUMN                                                     */
/* ================================================================= */
.pbw-content {
	width: 50%;
	padding-left: 40px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 12px;
	box-sizing: border-box;
}

.pbw-company-name {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 16px;
	font-weight: 600;
	color: #FFFFFF;
}

.pbw-person-name {
	font-family: 'Montserrat', sans-serif;
	font-size: 48px;
	font-weight: 600;
	color: #FFFFFF;
	margin: 0;
	line-height: 1.1;
}

.pbw-title-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: #F1D154;
	color: #000000;
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-weight: 400;
	font-size: 14px;
	padding: 11px;
	border-radius: 5px;
	align-self: flex-start;
	max-width: 60%;
}

/* ================================================================= */
/* SOCIAL ICONS ROW                                                   */
/* ================================================================= */
.pbw-social-icons {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 10px;
	min-height: 60px;
	flex-wrap: wrap;
}
.pbw-social-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 100px;
	background-color: rgba(255,255,255,0.08);
	color: #F1D154;
	text-decoration: none !important;
	transition: background-color .2s, transform .2s;
	flex-shrink: 0;
}
.pbw-social-icon-btn i,
.pbw-social-icon-btn svg {
	font-size: 18px;
	width: 18px;
	height: 18px;
	pointer-events: none;
}
.pbw-social-icon-btn:hover {
	background-color: rgba(255,255,255,0.18);
	transform: scale(1.12);
}

/* ================================================================= */
/* pbw-card-hover — MICRO INTERACTIONS WITHOUT TOUCHING background   */
/*                                                                   */
/* This is the key fix. We do NOT set background here.               */
/* The element's own background-color (set via Elementor control     */
/* or the .pbw-about / .pbw-contact-item rule) always wins.          */
/* We only animate: transform, border-color, box-shadow.             */
/* ================================================================= */
.pbw-card-hover {
	position: relative;
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.04);
	/* NO background here — intentional */
	backdrop-filter: blur(8px);
	transform: translateY(0px);
	box-shadow: 0 10px 35px rgba(0,0,0,.28);
}

/* Top gold line sweep */
.pbw-card-hover:before {
	content: "";
	position: absolute;
	top: 0; left: 0;
	width: 0%;
	height: 2px;
	background: linear-gradient(90deg, #e7c438, #fff1a6);
	transition: width .5s ease;
	z-index: 2;
	pointer-events: none;
}

/* Inner gold glow overlay — uses mix-blend-mode so it tints
   whatever background-color the element has, not replace it */
.pbw-card-hover:after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at top left, rgba(231,196,56,.10), transparent 60%);
	opacity: 0;
	transition: opacity .45s ease;
	pointer-events: none;
	z-index: 1;
	border-radius: inherit;
}

.pbw-card-hover:hover {
	transform: translateY(-6px);
	border-color: rgba(231,196,56,.30);
	box-shadow: 0 18px 45px rgba(0,0,0,.45), 0 0 25px rgba(231,196,56,.08);
}
.pbw-card-hover:hover:before { width: 100%; }
.pbw-card-hover:hover:after  { opacity: 1; }

/* Icon scale on card hover */
.pbw-card-hover:hover .rs-premium-icon {
	transform: scale(1.08);
	box-shadow: 0 0 18px rgba(231,196,56,.28);
}

/* ================================================================= */
/* ABOUT BLOCK                                                        */
/* ================================================================= */
.pbw-about {
	background-color: rgba(255,255,255,0.10); /* Elementor control overrides this */
	border-radius: 11px;
	padding: 16px;
}
.pbw-about-title {
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	color: #FFFFFF;
	margin: 0 0 8px;
	font-size: 18px;
}
.pbw-about-text {
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: #FFFFFF;
}
.pbw-about-text p { margin: 4px 0; }

/* ================================================================= */
/* CONTACT ICON BOXES                                                 */
/* background-color is set here and overrideable by Elementor        */
/* rs-premium-card gradient is NOT applied here anymore              */
/* ================================================================= */
.pbw-contact-item {
	display: flex !important;
	flex-direction: row;
	align-items: center;
	gap: 14px;
	background-color: rgba(255,255,255,0.10); /* Elementor overrides this */
	border-radius: 10px;
	padding: 10px;
	text-decoration: none !important;
	color: inherit;
}

/* Icon circle — background-color overrideable by Elementor control */
.pbw-ci-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	min-width: 40px;
	background-color: #F1D154; /* Elementor contact_icon_bg overrides this */
	border-radius: 8px;
	position: relative;
	z-index: 3; /* above the pbw-card-hover pseudo overlays */
}
.pbw-ci-icon i {
	color: #000000; /* Elementor contact_icon_color overrides this */
	font-size: 18px;
	position: relative;
	z-index: 4;
}

.pbw-ci-body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
	position: relative;
	z-index: 3;
}
.pbw-ci-title {
	font-family: 'Montserrat', sans-serif;
	font-size: 17px;
	font-weight: 600;
	color: #F1D154 !important;
	-webkit-text-fill-color: #F1D154 !important;
	line-height: 1.2;
	display: block;
}
.pbw-ci-desc {
	font-family: 'Plus Jakarta Sans', sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #FFFFFF !important;
	-webkit-text-fill-color: #FFFFFF !important;
	word-break: break-word;
	display: block;
}

/* RS Premium icon */
.rs-premium-icon {
	position: relative;
	box-shadow: 0 0 0 rgba(231,196,56,0);
	transform: scale(1);
	transition: transform .45s cubic-bezier(.19,1,.22,1), box-shadow .45s ease;
}

/* ================================================================= */
/* MAPS                                                               */
/* ================================================================= */
.pbw-maps-wrap { border-radius: 10px; overflow: hidden; width: 100%; }
.pbw-maps-wrap iframe { display: block; width: 100%; height: 300px; border: 0; border-radius: 10px; }

/* ================================================================= */
/* BUTTONS — rs-premium-btn                                          */
/* ================================================================= */
.pbw-btn-row {
	display: flex;
	flex-direction: row;
	gap: 10px;
	flex-wrap: wrap;
}

.rs-premium-btn {
	position: relative;
	overflow: hidden;
	border: 2px solid rgba(231,196,56,.9);
	background: linear-gradient(135deg, #0d0d0d, #161616);
	border-radius: 16px;
	transform: translateY(0px);
	box-shadow: 0 10px 30px rgba(0,0,0,.35);
	transition: transform .45s cubic-bezier(.19,1,.22,1), box-shadow .45s ease, border-color .45s ease;
	z-index: 1;
	cursor: pointer !important;
	user-select: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.rs-premium-btn:before {
	content: "";
	position: absolute;
	top: 0; left: -120%;
	width: 60%; height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
	transform: skewX(-25deg);
	transition: left .8s ease;
	pointer-events: none;
}
.rs-premium-btn:after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle, rgba(231,196,56,.12), transparent 70%);
	opacity: 0;
	transition: opacity .4s ease;
	pointer-events: none;
}
.rs-premium-btn:hover {
	transform: translateY(-5px);
	border-color: #f6d94f;
	box-shadow: 0 18px 45px rgba(0,0,0,.5), 0 0 30px rgba(231,196,56,.22);
}
.rs-premium-btn:hover:before { left: 150%; }
.rs-premium-btn:hover:after  { opacity: 1; }

.pbw-btn {
	width: 48.77%;
	padding: 15px;
	font-family: 'Roboto Condensed', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: #F1D154;
	text-decoration: none;
	box-sizing: border-box;
	gap: 8px;
}

/* Safari / iOS link fixes */
a[href^="tel"], a[href^="mailto"] { text-decoration: none !important; }
.pbw-card-hover a { text-decoration: none !important; }

/* ================================================================= */
/* RESPONSIVE — TABLET (768px – 1023px)                             */
/* ================================================================= */
@media (max-width: 1023px) {
	.pbw-inner {
		justify-content: center;
		flex-wrap: wrap;
	}
	.pbw-person-name { font-size: 42px; }
}

/* ================================================================= */
/* RESPONSIVE — MOBILE (≤ 767px)                                    */
/* ================================================================= */
@media (max-width: 767px) {

	/* ── Logo ── */
	.pbw-logo-bar {
		text-align: center !important;
		padding: 12px 16px !important;
	}
	.pbw-logo {
		display: inline-block;
		width: 100%;
		text-align: center;
	}
	.pbw-logo img {
		width: 40% !important;
		margin: 0 auto;        /* center the img block itself */
		display: block;
	}

	/* ── Card outer padding ── */
	.pbw-card {
		padding: 20px 16px 30px !important;
	}

	/* ── Stack columns vertically ── */
	.pbw-inner {
		flex-direction: column !important;
		align-items: center !important;   /* center both columns */
		gap: 20px !important;
	}

	/* ── Photo column ── */
	.pbw-photo-wrap {
		width: 85% !important;            /* not edge-to-edge, looks better */
		max-width: 320px;
		margin: 0 auto;
	}
	.pbw-photo-wrap img {
		width: 100% !important;
		height: auto !important;
		object-fit: cover;
		object-position: top center;
		/* Reset the pill shape from rs-premium-image */
		border-radius: 14px !important;
	}
	/* Also reset rs-premium-image border-radius on mobile */
	.rs-premium-image {
		border-radius: 14px !important;
	}

	/* ── Content column ── */
	.pbw-content {
		width: 100% !important;
		padding: 0 4px !important;        /* small side breathing room */
		align-items: center;              /* center all children */
		text-align: center;
	}

	/* ── Name ── */
	.pbw-person-name {
		font-size: 36px !important;
		text-align: center !important;
	}
	.pbw-company-name {
		text-align: center !important;
	}

	/* ── Badge ── */
	.pbw-title-badge {
		align-self: center !important;
		max-width: 90%;
		text-align: center;
	}

	/* ── Social icons ── */
	.pbw-social-icons {
		justify-content: center !important;
		min-height: 0 !important;
		gap: 10px !important;
	}
	/* Fix icon color visibility on mobile */
	.pbw-social-icon-btn {
		color: #F1D154 !important;
		background-color: rgba(255,255,255,0.12) !important;
	}

	/* ── About block ── */
	.pbw-about {
		padding: 16px !important;
		text-align: center;
	}
	.pbw-about-title {
		text-align: center !important;
	}
	.pbw-about-text,
	.pbw-about-text p {
		text-align: center !important;
	}

	/* ── Contact items — keep left-aligned for readability ── */
	.pbw-contact-item {
		width: 100%;
		box-sizing: border-box;
		text-align: left;
	}
	.pbw-ci-title,
	.pbw-ci-desc {
		text-align: left !important;
	}

	/* ── Buttons ── */
	.pbw-btn-row {
		flex-direction: column !important;
		gap: 10px !important;
		width: 100%;
	}
	.pbw-btn {
		width: 100% !important;
		border-radius: 10px !important;
		border: 2px solid rgba(231,196,56,.9) !important;
		justify-content: center;
	}

	/* ── Disable lift effects on touch ── */
	.pbw-card-hover:hover,
	.rs-premium-image:hover,
	.rs-premium-btn:hover {
		transform: none !important;
		box-shadow: none;
	}
}
