.redcat-floating-menu {
	--floating-menu-spacing: var(--wp--preset--spacing--20, 1rem);
	--floating-menu-radius: 8px;
	--floating-menu-transition: all 0.3s ease;
	--floating-menu-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
	--floating-menu-z-index: 9999;
}

.redcat-floating-menu {
   top: 100px!important;
   right: 0!important;
}

.floating-menu-items {
   display: flex;
   flex-direction: column;
   align-items: flex-end;
}
.floating-menu-item {
   display: flex;
   flex-direction: column;
   overflow: hidden;
   width: 46px;
   transition: all .30s ease-in-out;
}
.floating-menu-item:hover {
   width: 160px!important;
}
.floating-menu-button {
   border: 1px solid red;
   background: red;
   display: flex;
   align-items: center;
   padding: 0;
   height: 46px;
   cursor: pointer;
}
.floating-menu-icon {
   width: 46px;
   flex: 0 0 auto;
}
.floating-menu-icon img {
   width: 24px;
   height: 24px;
   display: block;
   margin: 0 auto;
}
.floating-menu-text {
   font-family: var(--wp--preset--font-family--body-font);
   font-size: 18px;
   white-space: nowrap;
   padding-right: 10px;
   transition: all .30s ease-in-out;
}
.floating-menu-text-content {
   font-family: inherit;
   font-size: inherit;
   color: inherit;
}





/* =====[TOP - LEFT]===== */
.redcat-floating-menu.floating-menu-position-top-left {
   right: unset!important;
   left: 0!important;
}
.redcat-floating-menu.floating-menu-position-top-left .floating-menu-items {
   align-items: flex-start;
}
.redcat-floating-menu.floating-menu-position-top-left .floating-menu-button {
   flex-direction: row-reverse;
}
.redcat-floating-menu.floating-menu-position-top-left .floating-menu-text {
   padding-right: 0;
   padding-left: 10px;
}


/* =====[BOTTOM - RIGHT]===== */
.redcat-floating-menu.floating-menu-position-bottom-right {
   right: 0!important;
   left: unset!important;
   top: unset!important;
   bottom: 20px!important;
}


/* =====[BOTTOM - LEFT]===== */
.redcat-floating-menu.floating-menu-position-bottom-left {
   right: unset!important;
   left: 0!important;
   top: unset!important;
   bottom: 20px!important;
}
.redcat-floating-menu.floating-menu-position-bottom-left .floating-menu-items {
   align-items: flex-start;
}
.redcat-floating-menu.floating-menu-position-bottom-left .floating-menu-button {
   flex-direction: row-reverse;
}
.redcat-floating-menu.floating-menu-position-bottom-left .floating-menu-text {
   padding-right: 0;
   padding-left: 10px;
}

/* =====[DEFAULT]===== */
.redcat-floating-menu.is-style-default {
	position: fixed;
}
.redcat-floating-menu.is-style-default .floating-menu-items {
   gap: 20px;
}
.redcat-floating-menu.is-style-default .floating-menu-item {
   width: 56px;
}
.redcat-floating-menu.is-style-default .floating-menu-button {
   border-color: var(--wp--preset--color--primary);
   background: var(--wp--preset--color--primary);
   border-radius: 25px 0px 0px 25px;
}
.redcat-floating-menu.is-style-default .floating-menu-icon {
   width: 56px;
}
.redcat-floating-menu.is-style-default .floating-menu-text {
   color: #FFFFFF;
}
.redcat-floating-menu.is-style-default.floating-menu-position-top-left .floating-menu-button {
   border-radius: 0 25px 25px 0;
}
.redcat-floating-menu.is-style-default.floating-menu-position-bottm-left .floating-menu-button,
.redcat-floating-menu.is-style-default.floating-menu-position-bottom-left .floating-menu-button {
   border-radius: 0 25px 25px 0;
}


/* =====[COMPACT]===== */
.redcat-floating-menu.is-style-compact .floating-menu-items {
   gap: 20px;
}
.redcat-floating-menu.is-style-compact .floating-menu-button {
   border-color: var(--wp--preset--color--primary);
   background: var(--wp--preset--color--primary);
   border-radius: 25px;
}
.redcat-floating-menu.is-style-compact .floating-menu-text {
   color: #FFFFFF;
}

.redcat-floating-menu.is-style-compact.floating-menu-position-top-right {
   right: 20px!important;
   left: unset!important;
}
.redcat-floating-menu.is-style-compact.floating-menu-position-top-left {
   left: 20px!important;
   right: unset!important;
}
.redcat-floating-menu.is-style-compact.floating-menu-position-bottom-right {
   left: 20px!important;
   right: unset!important;
}

.redcat-floating-menu.is-style-compact.floating-menu-position-bottom-left {
   left: 20px!important;
   right: unset!important;
}


/* =====[LARGE]===== */
.redcat-floating-menu.is-style-large .floating-menu-item:not(:last-child) {
   border-bottom: 1px solid #FFFFFF;
}
.redcat-floating-menu.is-style-large .floating-menu-button {
   border-color: var(--wp--preset--color--primary);
   background: var(--wp--preset--color--primary);
}
.redcat-floating-menu.is-style-large .floating-menu-text {
   color: #FFFFFF;
}


/* =====[POPUP/MODAL]===== */
.floating-menu-popup-overlay {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-color: rgba(0, 0, 0, 0.6);
   padding: 15px 15px;
   display: flex;
   align-items: center;
   justify-content: center;
   z-index: 1000;
   animation: floating-menu-fade-in 0.3s ease;
}
.floating-menu-popup-modal {
   background: #FFFFFF;
   border-radius: 4px;
   width: 100%;
   max-width: 640px;
   max-height: 90vh;
   overflow: hidden;
   animation: floating-menu-slide-up 0.3s ease;
}
.floating-menu-popup-header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: clamp(6px, 2vw, 8px) clamp(20px, 2vw, 30px);
   background: var(--wp--preset--color--primary);
}
.floating-menu-popup-title {
   font-family: var(--wp--preset--font-family--body-font);
   font-size: clamp(20px, 2vw, 24px);
   font-weight: 700;
   color: #FFFFFF;
   margin: 0;
}
.floating-menu-popup-close {
   font-size: clamp(26px, 2vw, 32px);
   background: transparent;
   border: none;
   color: #FFFFFF;
   width: 32px;
   height: 32px;
   min-width: 32px;
   min-height: 32px;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 0;
   line-height: 1;
   cursor: pointer;
   opacity: 0.8;
}
.floating-menu-popup-close:hover,
.floating-menu-popup-close:focus {
   background-color: transparent;
   outline: none;
   opacity: 1;
}
.floating-menu-popup-close span {
   display: inline-block;
   line-height: 1;
}
.floating-menu-popup-content {
   overflow-y: auto;
   max-height: calc(90vh - 100px);
   padding: clamp(20px, 2vw, 30px);
}

.floating-menu-popup-content h1,
.floating-menu-popup-content h2,
.floating-menu-popup-content h3,
.floating-menu-popup-content h4,
.floating-menu-popup-content h5,
.floating-menu-popup-content h6 {
   margin-top: 0;
   margin-bottom: 1rem;
}

.floating-menu-popup-content p:first-of-type {
   margin-top: 0;
}
.floating-menu-popup-content p:last-child {
   margin-bottom: 0;
}

/* Popup Animations */
@keyframes floating-menu-fade-in {
   from {
      opacity: 0;
   }
   to {
      opacity: 1;
   }
}

@keyframes floating-menu-slide-up {
   from {
      transform: translateY(30px);
      opacity: 0;
   }
   to {
      transform: translateY(0);
      opacity: 1;
   }
}

@media (max-width: 767px) {
   .floating-menu-popup-modal {
      max-height: 95vh;
   }
   .floating-menu-popup-content {
      max-height: calc(95vh - 80px);
   }
}

/* High z-index to ensure menu stays above other elements */
.floating-menu-global {
	z-index: 1000 !important;
}
.floating-menu-popup-overlay {
	z-index: 1000 !important;
} 