/* Summary */
/* 01 — Fonts */
/* 02 — Variables */
/* 03 — General Styles */
/* 04 — Global Styles */
/* 05 — Gadgets */
/* 06 — Footer */

/*=================================================================
                            01 — Fonts
==================================================================*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap');


/*=================================================================
                            02 — Variables
==================================================================*/
:root {
    /* Custom Font */
    --lumx-custom-typography-font-family: "Montserrat", sans-serif;

    /* Custom Colors */
    --pco-color-primary: #D4231A;
    --pco-color-secondary: #333333;
    --pco-color-light-bleu: #D9E9ED;
    --pco-color-light-purple: #A30050;

    /* Custom Font Size */
    --pco-title-page: 36px;
    --lumx-typography-custom-title3-font-size: 18px !important;
    --lumx-typography-custom-title4-font-size: 18px !important;
    --lumx-typography-custom-body-font-size: 16px !important;
} 

/*=================================================================
                            03 — General
==================================================================*/
/*================== General Styles =================*/
body,
body.theme-lumapps,
body.front-office {
    font-family: var(--lumx-custom-typography-font-family); 
    background-color: #ffffff;
}

/*================== Fixed Images =================*/
.component-row--row-links,
.component-row--row-fixed{
    background-attachment: fixed !important; /* Makes the background fixed */
    background-repeat: no-repeat !important; /* Prevents repeating */   
    position: relative;
    overflow: hidden;    
}

/*================== Categories =================*/
.block-page-preview__tags {
    text-transform: uppercase !important;
}

/*================== Navigation Slideshow =================*/
.lumx-slideshow-controls--theme-light .lumx-slideshow-controls__pagination-item--is-active {
    background-color: #0009 !important;
}

/*================== Widget Footers =================*/
.widget-footer__icon {
    transition: transform 0.5s ease; /* Smooth transition for both hover and return */
}
.widget-footer__wrapper:hover .widget-footer__icon {
  transform: rotate(90deg); /* Adjust the value for desired rotation */
}

/*================== Fixed Background all pages =================*/
.component-row--fix-header,
.content-module {
    background-attachment: fixed!important; 
    background-position: center center!important;
    background-size: cover!important;
    background-image: url(https://sword-group.app.lumapps.com/serve/4793380979363727-4024479353529587/sword_homepage_background.svg?contentDisposition=inline)!important;  
}

/*================== Community List Thumbnails Larger =================*/
.block-community-preview--horizontal .block-community-preview__thumbnail-wrapper {
    flex: 0 0 72px !important;
}

/*================== Horizontal Line on titles =================*/ 
.widget-header__title {
  position: relative;
  font-size: 28px;
  font-weight: 700;
}
.widget--shared-sword-slideshow .widget-header__wrapper::before,
.widget--shared-sword-widget-white .widget-header__wrapper::before,
.widget--shared-sword-widget-only-title .widget-header__wrapper::before,
.widget--shared-sword-widget-white-400 .widget-header__wrapper::before {
  content: "";
  position: absolute;
  top: 12px; /* space above text */
  left: 64px;
  width: 50px; /* adjust length here */
  height: 4px;
  background-color: #FFC423; /* yellow line */
}
.widget--shared-sword-widget-white-no-icon .widget-header__wrapper::before {
  content: "";
  position: absolute;
  top: 0px; /* space above text */
  left: 24px;
  width: 50px; /* adjust length here */
  height: 4px;
  background-color: #FFC423; /* yellow line */
}

/*=================================================================
                        04 — Global Styles
==================================================================*/
/*================== Welcome Message =================*/
.widget--shared-sword-message-bienvenue .widget-welcome {
    color: #ffffff !important;
    font-size: 42px !important;
    font-weight: 700 !important;
    text-shadow: 2px 3px 2px rgba(0, 0, 0, 0.5);
}
.widget--shared-sword-message-bienvenue {
  position: relative;
}
/* Add the yellow line */
.widget--shared-sword-message-bienvenue::before {
  content: "";
  position: absolute;
  top: 8px; /* adjust to fit above the welcome text */
  left: 0px; /* aligns with welcome padding/margin */
  width: 50px;
  height: 4px;
  background-color: #FFC423;
}

/*================== Page Titles =================*/
.widget--shared-titre-page .block-title,
.widget--shared-titre-page-fonce .widget-title__title {
    font-size: 42px !important;
}

/*================== Section Title =================*/ 
.widget--shared-title-section .section-title {
  margin-bottom: 24px;
}
.widget--shared-title-section .section-line {
  width: 50px;
  height: 3px;
  background-color: #FFC423;
  margin-bottom: 8px;
}
.widget--shared-title-section .section-text {
  margin: 0;
  font-size: 28px;
  font-weight: bold;
  color: #4F4F4F;
}

/*=================================================================
                        05 — Gadgets
==================================================================*/

/*================== Buttons Spin Icons =============*/
.widget--spinIcon .widget-header__title::before {
    content: none !important;
}
.wdc-SpinIcon {
    width: 100%;
    height: 185px;
    background-size: 100%; /* Stretch the gradient */
    border-radius: 10px;
    padding: 20px !important;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: white;
    position: none;
    overflow: hidden;
    /*cursor: pointer;  Make the entire block clickable */
    transition: background-position 0.5s ease-in-out; /* Smooth transition for the background color change */
    margin-bottom: -28px !important;
    position: relative; /* Needed for absolute image positioning */
}
/* Image inside the card */
.wdc-SpinIcon img {
    position: absolute;
    width: 172px;
    top: 36px;
    right: -10%;
    object-fit: cover; /* Ensures the image covers the container */
    z-index: 1;
    transition: transform 0.3s ease; /* Smooth scaling and rotation transition */
    opacity: 0.25; /* Set opacity to 0.4 to make the image more transparent */
    transform: rotate(0deg);
    transition: transform 0.3s ease;
    opacity: 0.25;
    position: absolute;
    width: 172px;
    top: 36px;
    right: -10%;
    object-fit: cover;
    z-index: 1;    
}
/* Only rotate the image when footer wrapper is hovered */
.widget--spinIcon:has(.widget-footer__wrapper:hover) .wdc-SpinIcon img {
  transform: rotate(35deg);
}
.wdc-SpinIcon-content {
    flex-grow: 1;
    z-index: 2 !important;
    max-width: 50%; /* Limit text width to 50% of the parent container */
}
.wdc-SpinIcon-title {
    font-size: 24px !important;
    font-weight: bold;
    margin-bottom: 5px;
    line-height: 1.2 !important;
}
.widget--spinIcon .widget-footer {
    display: flex;
    align-items: center;
    z-index: 2 !important;
}
.widget--spinIcon .widget-footer__wrapper {
    margin-right: 8px;
    letter-spacing: 1px;
    font-weight: 700;
}
.widget--spinIcon .widget-footer__icon {
    width: 18px;
    height: 18px;
    transform: rotate(315deg) !important;
    transition: transform 0.3s ease; /* Smooth rotation effect */
}
/* Inverse the background gradient slowly on hover */
.wdc-SpinIcon:hover {
    background-position: 100%; /* Transition the background gradient */
}
.widget--spinIcon {
    transition: all 0.3s ease; /* Smooth rotation effect */
    overflow: hidden; /* optional extra safeguard */
}
/* Separate class for the background image */
.spinicon-bg {
  position: absolute;
  width: 172px;
  top: 36px;
  right: -10%; /* If this causes trouble, try right: 0 or right: -20px */
  object-fit: cover;
  z-index: 1;
  opacity: 0.25;
  transition: transform 0.3s ease;
}
.wdc-SpinIcon-content {
  flex-grow: 1;
  z-index: 2;
  max-width: 50%;
}
/* Hover effects */
.wdc-SpinIcon:hover .spinicon-bg {
  transform: scale(1.04) rotate(10deg);
}
.widget--spinIcon:hover {
  box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.2);
  transform: translate(2px, 2px);
}
/* Media Query for smaller screens */
@media (max-width: 1023px) {
  .wdc-SpinIcon {
        flex-direction: column; /* Stack image and text vertically */
        height: auto; /* Adjust height based on content */
  }
  .wdc-SpinIcon-content {
        max-width: 100%; /* Allow text to take full width */
        margin-bottom: 20px; /* Add space between text and image */
  }
  .wdc-SpinIcon img {
        width: 100%; /* Image takes full width */
        height: auto; /* Adjust image height based on width */
        right: 0; /* Reset the positioning */
  }
  .wdc-SpinIcon-title {
        font-size: 20px; /* Smaller title for mobile */
  }
  .spinicon-bg {
    width: 100%;
    height: auto;
    right: 0;
    position: relative;
  }  
}
.wdc-SpinIcon img {
  cursor: default !important;
}


/*================== Alert Message =================*/
.widget--shared-message-alerte .block-page-preview__title {
    white-space: nowrap;
    overflow: hidden;
    position: relative;
    height: 40px;
    padding: 10px 0;
}
.widget--shared-message-alerte .lumx-link__content {
    font-size: 14px !important;
    color: #4F4F4F !important;
}
.widget--shared-message-alerte .block-page-preview__link {
    position: absolute;
    display: flex;
    align-items: center;
    top: 50%;
    transform: translateY(-50%);
    gap: 8px;
    white-space: nowrap;
    animation: smooth-scroll 20s linear infinite;
    left: 0; /* Start aligned to left edge */
}
.widget--shared-message-alerte .block-page-preview__link:hover {
    text-decoration: underline;
    text-decoration-color: #225588;
    color: #225588 !important;
}
/* Text underline styling */
.block-page-preview--theme-light .block-page-preview__link a{
    color: #225588 !important;
}
/* Icon inside a perfectly centered circular background */
.widget--shared-alert-message .block-page-preview__link::before {
    content: "";
    display: inline-block;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-image: url("https://sword-group.app.lumapps.com/serve/4793380979363727-8106218214232289/circle_notifications_24dp_4F4F4F_FILL0_wght400_GRAD0_opsz24.svg?contentDisposition=inline");
    background-size: 70%;
    background-repeat: no-repeat;
    background-position: center;
}
/* Smooth scroll animation from right to left */
@keyframes smooth-scroll {
    0% {
        transform: translateX(100%) translateY(-50%);
    }
    100% {
        transform: translateX(-100%) translateY(-50%);
    }
}


/*================== Button Onboarding =================*/
.widget--shared-scroll-button {
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  background-color: #FFC423 !important;  
}
.widget--shared-scroll-button:hover {
  transform: translateY(-2px);
}
.widget--shared-scroll-button .lelab-marketplace-button .lumx-typography-title {
    color: #000000;
    text-transform: uppercase;
    font-size: 26px;
    font-weight: 500;
    line-height: 1.2;
    left: 0;
    width: 100%;
    transform: translateY(0);
    transition: transform 0.6s ease;
    white-space: nowrap;
}
.widget--shared-scroll-button {
  padding: 8px;
  border-radius: 0;
  color: #000000 !important;
}
.widget--shared-scroll-button .lelab-marketplace-button a.lumx-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 90px;
  padding: 0; /* Removed internal padding */
  text-decoration: none;
  cursor: pointer;
  color: #000000 !important;
  overflow: visible !important;
}
.widget--shared-scroll-button .lumx-typography-title {
  font-size: 26px;
  font-weight: 500;
  text-transform: uppercase;
  line-height: 1.2;
  white-space: nowrap;
  color: #000000 !important;
  user-select: none;
  position: relative;
  z-index: 1;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  transition: transform 0.6s ease;
}
.widget--shared-scroll-button .lelab-marketplace-button .lumx-flex-box--fill-space {
  flex: 0 0 auto;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  overflow: visible !important;
}
.widget--shared-scroll-button .lelab-marketplace-button .lumx-flex-box:last-child {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  overflow: visible !important;
}
.widget--shared-scroll-button .lelab-marketplace-button .lelab-marketplace-button-image {
  height: 16px;
  transition: transform 0.6s ease;
  margin: 0;
} 

/*================== Thumbnails Icons Lift =================*/
.widget--iconLiftButton {
    text-align: left; /* Align text and content to the left */
    transition: all ease 0.3s;
}
.widget--iconLiftButton .number {
    text-align: center;
    font-size: 30px;
    font-weight: 100;
}
.widget--iconLiftButton .number {
    display: block; /* Ensure proper layout for the image */
    transition: transform 0.5s cubic-bezier(0.4, 0.0, 0.2, 1); /* Smooth hover effect */
}

.widget--iconLiftButton:hover .number {
    transform: translateY(-8px); /* Moves the image slightly up */
}
.widget--iconLiftButton:hover {
    box-shadow: none !important;
}
.widget--iconLiftButton h4,
.widget--iconLiftButton p {
    margin: 0; /* Reset default margins */
    padding: 0; /* Reset default padding */
    font-family: "Noto Sans", sans-serif;
    color: #000000 !important; /* Set text color */
}
.widget--iconLiftButton h4 {
    margin-bottom: 8px !important; /* Ensure no extra margin below h2 */
}
.widget--iconLiftButton a {
    text-decoration: none !important; /* Remove default underline */
    color: #000000 !important; /* Set link color */
    font-size: 14px;
}
.widget--iconLiftButton h4 a {
    position: relative; /* Make the link a positioning context */
}
.widget--iconLiftButton h4 a::after {
    content: ''; /* Create a pseudo-element for the underline */
    position: absolute; /* Position the underline */
    left: 0; /* Start at the left edge of the link */
    bottom: -2px; /* Position the underline slightly below the text */
    width: 0; /* Initially hidden */
    height: 1px; /* Thickness of the underline */
    background-color: #000000; /* Underline color */
    transition: width 0.3s ease; /* Smooth animation for the underline */
}
.widget--iconLiftButton:hover h4 a::after {
    width: 45px; /* Expand underline to full width */
}

/*=================================================================
                            06 — Footer
==================================================================*/
.wdc-footer-container-v2 {
    background-color: #225588;
    width: 100%;
    padding: 40px 24px;
}
.wdc-footer-content-v2 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1128px;
    margin: 0 auto;
    color: white;
}
.wdc-footer-logo img {
    height: 36px;
    display: block;
}
.wdc-social-icons-v2 {
    display: flex;
    gap: 18px;
}
/* Hover effect */
.wdc-social-icon-v2 {
    position: relative;
    display: inline-block;
    overflow: hidden;
    border-radius: 50%;
    padding: 5px;
    transition: transform 0.4s ease-in-out, background-color 0.4s ease-in-out;
}
.wdc-social-icon-v2 img {
    width: 30px;
    height: 30px;
    display: block;
    transition: transform 0.3s ease, filter 0.3s ease;
}
.wdc-social-icon-v2::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120%;
    height: 120%;
    border-radius: 50%;
    background: linear-gradient(45deg, rgba(255,255,255,0.3), rgba(255,255,255,0.6));
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
    transform: translate(-50%, -50%) scale(0);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    z-index: -1;
}
.wdc-social-icon-v2:hover {
    background-color: rgba(255, 255, 255, 0.1);
    transform: rotate(10deg) scale(1.1);
}
.wdc-social-icon-v2:hover img {
    transform: scale(1.2);
    filter: brightness(1.3);
}
.wdc-social-icon-v2:hover::before {
    transform: translate(-50%, -50%) scale(1);
    box-shadow: 0 0 20px rgba(255, 255, 255, 0.8);
    animation: pulse 1.5s infinite;
}
@keyframes pulse {
    0%   { box-shadow: 0 0 10px rgba(255, 255, 255, 0.5); }
    50%  { box-shadow: 0 0 20px rgba(255, 255, 255, 0.8); }
    100% { box-shadow: 0 0 10px rgba(255, 255, 255, 0.5); }
}
/* Media Queries */
@media (min-width: 64em) and (max-width: 79.99em) {
    .wdc-footer-content-v2 {
        width: 955px;
    }
}

@media (max-width: 63.99em) {
    .wdc-footer-content-v2 {
        flex-direction: column;
        align-items: center;
        gap: 24px;
    }
}

@media (max-width: 440px) {
    .wdc-social-icons-v2 {
        gap: 8px;
    }
}