.fpbuddy-widget-row {
	margin-bottom: 1.5rem;
}

.fpbuddy-widget-row .fp-col {
	width: auto;
	margin-bottom: 1.5rem;
}

.fpbuddy-widget-row.has-2-fpcols {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
}

.fpbuddy-widget-row.has-2-fpcols .fp-col {
	width: 45%;
}

@media (max-width: 768px) {
	.fpbuddy-widget-row.has-2-fpcols {
		display: block;
	}

	.fpbuddy-widget-row.has-2-fpcols .fp-col {
		width: auto;
	}
}

/* Full width youtube video */
.youtube-video-container.fr-full-width {
	position: relative;
	overflow: hidden;
	width: 100%;
}
  
.youtube-video-container.fr-full-width::after {
	display: block;
	content: "";
	padding-top: 56.25%;/* 16:9 aspect ratio */
}
  
.youtube-video-container.fr-full-width iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* Prompts */
.frontpage-buddy-prompt {
	position: relative;
    padding: .75rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: .25rem;
}

.frontpage-buddy-prompt.prompt-info {
	color: #004085;
    background-color: #cce5ff;
    border-color: #b8daff;
}

.frontpage-buddy-prompt a {
	text-decoration: underline;
}

.fp-widget-mylinks .mylinks{
	display: block;
	margin: 0 0 1rem;
}

.fp-widget-mylinks .mylinks .link-details a{
	display: flex;
    border: 1px solid;
	border-color: color-mix(in srgb, currentColor 10%, transparent);
    overflow: hidden;
	border-radius: 5px;
}

.fp-widget-mylinks .mylinks .link-details a .link-label{
	padding: 0.375rem 0.7rem;
    background-color: color-mix(in srgb, currentColor 10%, transparent);
    font-weight: bold;
    border-right: 1px solid;
	border-right-color: color-mix(in srgb, currentColor 10%, transparent);
}

.fp-widget-mylinks .mylinks .link-details a .link-link{
	padding: 0.375rem 0.7rem;
}

/* ========================================
   Image Gallery Widget
   ======================================== */
.fpbuddy-gallery {
	display: grid;
	gap: 1rem;
}

.fpbuddy-gallery-cols-2 { grid-template-columns: repeat(2, 1fr); }
.fpbuddy-gallery-cols-3 { grid-template-columns: repeat(3, 1fr); }
.fpbuddy-gallery-cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 768px) {
	.fpbuddy-gallery-cols-3,
	.fpbuddy-gallery-cols-4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.fpbuddy-gallery {
		grid-template-columns: 1fr !important;
	}
}

.fpbuddy-gallery-item {
	position: relative;
	overflow: hidden;
	border-radius: 8px;
}

.fpbuddy-gallery-item img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.fpbuddy-gallery-item:hover img {
	transform: scale(1.05);
}

.fpbuddy-gallery-caption {
	margin: 0.5rem 0 0;
	font-size: 0.875rem;
	color: #666;
	text-align: center;
}

.fpbuddy-lightbox-link {
	display: block;
	cursor: zoom-in;
}

/* Masonry layout */
.fpbuddy-gallery-masonry {
	display: block;
	column-count: 3;
	column-gap: 1rem;
}

.fpbuddy-gallery-masonry .fpbuddy-gallery-item {
	break-inside: avoid;
	margin-bottom: 1rem;
}

.fpbuddy-gallery-masonry .fpbuddy-gallery-item img {
	height: auto;
}

/* ========================================
   Skill Bars Widget
   ======================================== */
.fpbuddy-skillbars {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.fpbuddy-skill-item {
	width: 100%;
}

.fpbuddy-skill-info {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0.5rem;
}

.fpbuddy-skill-name {
	font-weight: 600;
	color: #333;
}

.fpbuddy-skill-percent {
	font-size: 0.875rem;
	color: #666;
}

.fpbuddy-skill-bar {
	height: 10px;
	background-color: #e9ecef;
	border-radius: 5px;
	overflow: hidden;
}

.fpbuddy-skill-progress {
	height: 100%;
	background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);
	border-radius: 5px;
	transition: width 1s ease-in-out;
}

/* Rounded style */
.fpbuddy-skillbars-rounded .fpbuddy-skill-bar {
	height: 20px;
	border-radius: 10px;
}

.fpbuddy-skillbars-rounded .fpbuddy-skill-progress {
	border-radius: 10px;
}

/* Striped style */
.fpbuddy-skillbars-striped .fpbuddy-skill-progress {
	background-image: linear-gradient(
		45deg,
		rgba(255, 255, 255, 0.15) 25%,
		transparent 25%,
		transparent 50%,
		rgba(255, 255, 255, 0.15) 50%,
		rgba(255, 255, 255, 0.15) 75%,
		transparent 75%,
		transparent
	);
	background-size: 1rem 1rem;
}

/* Animated stripes */
.fpbuddy-skillbars-animated .fpbuddy-skill-progress {
	background-image: linear-gradient(
		45deg,
		rgba(255, 255, 255, 0.15) 25%,
		transparent 25%,
		transparent 50%,
		rgba(255, 255, 255, 0.15) 50%,
		rgba(255, 255, 255, 0.15) 75%,
		transparent 75%,
		transparent
	);
	background-size: 1rem 1rem;
	animation: fpbuddy-progress-stripes 1s linear infinite;
}

@keyframes fpbuddy-progress-stripes {
	from { background-position: 1rem 0; }
	to { background-position: 0 0; }
}

/* ========================================
   Call to Action Widget
   ======================================== */
.fpbuddy-cta {
	padding: 2rem;
	border-radius: 8px;
	background-color: #f8f9fa;
}

.fpbuddy-cta-align-left { text-align: left; }
.fpbuddy-cta-align-center { text-align: center; }
.fpbuddy-cta-align-right { text-align: right; }

.fpbuddy-cta-title {
	margin: 0 0 1rem;
	font-size: 1.5rem;
	font-weight: 700;
}

.fpbuddy-cta-description {
	margin: 0 0 1.5rem;
	font-size: 1rem;
	opacity: 0.9;
}

.fpbuddy-cta-button {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	transition: all 0.3s ease;
}

.fpbuddy-cta-button-solid {
	background-color: #667eea;
	color: #fff;
	border: 2px solid #667eea;
}

.fpbuddy-cta-button-solid:hover {
	background-color: #5a67d8;
	border-color: #5a67d8;
	color: #fff;
}

.fpbuddy-cta-button-outline {
	background-color: transparent;
	color: #667eea;
	border: 2px solid #667eea;
}

.fpbuddy-cta-button-outline:hover {
	background-color: #667eea;
	color: #fff;
}

.fpbuddy-cta-button-rounded {
	background-color: #667eea;
	color: #fff;
	border: 2px solid #667eea;
	border-radius: 50px;
}

.fpbuddy-cta-button-rounded:hover {
	background-color: #5a67d8;
	border-color: #5a67d8;
	color: #fff;
}

/* ========================================
   Testimonials Widget
   ======================================== */
.fpbuddy-testimonials {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
}

.fpbuddy-testimonials-cards .fpbuddy-testimonial-item {
	flex: 1 1 300px;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	padding: 1.5rem;
}

.fpbuddy-testimonials-simple .fpbuddy-testimonial-item {
	flex: 1 1 100%;
	border-left: 4px solid #667eea;
	padding-left: 1.5rem;
	margin-bottom: 1rem;
}

.fpbuddy-testimonial-quote-icon {
	display: block;
	font-size: 3rem;
	line-height: 1;
	color: #667eea;
	opacity: 0.3;
	font-family: Georgia, serif;
}

.fpbuddy-testimonial-quote {
	margin: 0.5rem 0 1rem;
	font-size: 1rem;
	line-height: 1.6;
	font-style: italic;
	color: #333;
}

.fpbuddy-testimonial-rating {
	margin-bottom: 0.75rem;
}

.fpbuddy-star {
	font-size: 1rem;
}

.fpbuddy-star-filled {
	color: #fbbf24;
}

.fpbuddy-star-empty {
	color: #d1d5db;
}

.fpbuddy-testimonial-author {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.fpbuddy-testimonial-author-name {
	font-weight: 600;
	color: #333;
}

.fpbuddy-testimonial-author-role {
	font-size: 0.875rem;
	color: #666;
}

/* ========================================
   Contact Info Widget
   ======================================== */
.fpbuddy-contact-info {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.fpbuddy-contact-info-inline {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 1.5rem;
}

.fpbuddy-contact-info-centered {
	align-items: center;
	text-align: center;
}

.fpbuddy-contact-info-cards .fpbuddy-contact-item {
	background: #f8f9fa;
	padding: 1rem;
	border-radius: 8px;
}

.fpbuddy-contact-item {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

.fpbuddy-contact-info-centered .fpbuddy-contact-item {
	flex-direction: column;
	align-items: center;
}

.fpbuddy-contact-icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	border-radius: 50%;
	color: #fff;
}

.fpbuddy-contact-icon i {
	font-size: 1.25rem;
}

.fpbuddy-contact-details {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.fpbuddy-contact-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #666;
	font-weight: 600;
}

.fpbuddy-contact-value {
	color: #333;
	text-decoration: none;
}

.fpbuddy-contact-value:hover {
	color: #667eea;
}

.fpbuddy-contact-map {
	width: 100%;
	border-radius: 8px;
	overflow: hidden;
}

.fpbuddy-contact-map iframe {
	display: block;
	width: 100%;
	min-height: 300px;
	border: none;
}
/* Photo Widget */
.fpbuddy-photo {
	margin: 0;
	padding: 0;
}

.fpbuddy-photo-img {
	max-width: 100%;
	height: auto;
	display: block;
}

.fpbuddy-photo-full .fpbuddy-photo-img {
	width: 100%;
}

.fpbuddy-photo-centered {
	text-align: center;
}

.fpbuddy-photo-centered .fpbuddy-photo-img {
	display: inline-block;
	max-width: 80%;
}

.fpbuddy-photo-rounded .fpbuddy-photo-img {
	border-radius: 12px;
}

.fpbuddy-photo-circle {
	text-align: center;
}

.fpbuddy-photo-circle .fpbuddy-photo-img {
	border-radius: 50%;
	width: 200px;
	height: 200px;
	object-fit: cover;
	display: inline-block;
}

.fpbuddy-photo-link {
	display: block;
	transition: opacity 0.2s ease;
}

.fpbuddy-photo-link:hover {
	opacity: 0.9;
}

.fpbuddy-photo-caption {
	margin: 10px 0 0;
	font-size: 0.9em;
	color: #666;
	font-style: italic;
	text-align: center;
}
