/* --- Sifency Event Banner Widget --- */
.sifency-banner-widget {
    position: relative;
    overflow: hidden; /* Important for border-radius */
}

.sifency-banner-link,
.sifency-banner-image {
    display: block;
    width: 100%;
    height: 300px; /* A sensible default height */
}

.sifency-banner-image {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
}

.sifency-banner-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* --- Sifency Event Map Widget --- */
.sifency-map-wrapper {
    position: relative;
    overflow: hidden;
}

.sifency-map-container {
    position: relative;
    width: 100%;
    height: 0;
    overflow: hidden;
}

.sifency-map-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Aspect Ratio Classes */
.sifency-aspect-ratio-16_9 .sifency-map-container {
    padding-bottom: 56.25%; /* 9 / 16 = 0.5625 */
}
.sifency-aspect-ratio-21_9 .sifency-map-container {
    padding-bottom: 42.85%; /* 9 / 21 = 0.4285 */
}
.sifency-aspect-ratio-4_3 .sifency-map-container {
    padding-bottom: 75%; /* 3 / 4 = 0.75 */
}
.sifency-aspect-ratio-3_2 .sifency-map-container {
    padding-bottom: 66.66%; /* 2 / 3 = 0.6666 */
}
.sifency-aspect-ratio-1_1 .sifency-map-container {
    padding-bottom: 100%; /* 1 / 1 = 1 */
}

/* Custom Height (Overrides aspect ratio padding) */
.sifency-aspect-ratio-custom .sifency-map-container {
    padding-bottom: 0;
    height: 400px; /* Default custom height */
}

/* --- Sifency Event Button --- */
.sifency-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    color: #fff;
    background-color: var(--sifency-addons-themecolor);
    border: 1px solid transparent;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.2s ease-in-out;
}
.sifency-button:hover {
    background-color: var(--sifency-addons-themecolor);
    color: #fff;
}
.elementor-align-justify .sifency-button {
    width: 100%;
}

/* --- Sifency Event Status Badge --- */
.sifency-status-badge {
    display: inline-block;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: 0.25rem;
    text-transform: uppercase;
}
/* Default status colors */
.sifency-status-badge--upcoming { color: #0f5132; background-color: #d1e7dd; }
.sifency-status-badge--ongoing  { color: #055160; background-color: #cff4fc; }
.sifency-status-badge--past     { color: #495057; background-color: #e9ecef; }
.sifency-status-badge--canceled { color: #842029; background-color: #f8d7da; }


/* --- Sifency Portfolio Rating Widget --- */
.sifency-star-rating-wrapper {
    display: inline-flex;
    align-items: center;
}

.sifency-star-rating {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}

.sifency-star-rating-unfilled,
.sifency-star-rating-filled {
    display: inline-block;
}

.sifency-star-rating-filled {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    overflow: hidden;
    white-space: nowrap;
    color: #f2b01e; 
}

.sifency-star-rating-unfilled {
    color: #cccccc;
}

.sifency-star-rating .sifency-star {
    font-style: normal;
    display: inline;
}

.sifency-rating-text {
    vertical-align: middle;
    margin-left: 8px; 
}

.sifency-tech-list-wrapper ul,
.sifency-tech-list-wrapper li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.sifency-tech-list {
    display: flex;
}

.sifency-tech-list--horizontal {
    flex-wrap: wrap;
}
.sifency-tech-list--horizontal .sifency-tech-list-item {
    display: inline-flex;
    align-items: center;
    margin-right: 15px; 
    margin-bottom: 10px;
}

/* Vertical Layout */
.sifency-tech-list--vertical {
    flex-direction: column;
}
.sifency-tech-list--vertical .sifency-tech-list-item {
    display: flex;
    align-items: center;
    margin-bottom: 10px; 
}

.sifency-tech-list-icon {
    display: inline-flex;
    margin-right: 8px; 
}

.sifency-tech-list-divider {
    margin-left: 15px; 
}

/* Alignment Helpers */
.elementor-widget-sifency-portfolio-technologies.elementor-align-center .sifency-tech-list {
    justify-content: center;
}
.elementor-widget-sifency-portfolio-technologies.elementor-align-right .sifency-tech-list {
    justify-content: flex-end;
}
.sifency-tech-list-wrapper{
    display: flex;
    align-items: center;
}

.sifency-social-profiles-wrapper {
    width: 100%;
}
.sifency-social-profiles {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 15px;
}

.sifency-social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

.sifency-social-icon i {
    transition: transform 0.3s ease;
}

.sifency-social-icon:hover i {
    transform: scale(1.1);
}

.sifency-skill-item:not(:last-child) {
    margin-bottom: 20px;
}

.sifency-skill-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.sifency-skill-title {
    font-weight: 600;
}

.sifency-skill-percentage {
    font-weight: 600;
}

.sifency-skill-bar {
    width: 100%;
    height: 8px; /* Default height */
    background-color: #e9ecef;
    border-radius: 4px;
    overflow: hidden;
}

.sifency-skill-bar-fill {
    height: 100%;
    width: 0;
    background-color: var(--sifency-addons-themecolor);
    border-radius: 4px;
    transition: width 1.5s cubic-bezier(0.25, 1, 0.5, 1); 
}