

.button .button_icon:not(.no-circle) {
    background-color: var(--_buttons---icon-bg-color);
    color: var(--_buttons---icon-color);
    transition: ease-in-out all .3s;
}

.button:hover .button_icon:not(.no-circle) {
    background-color: var(--_buttons---icon-bg-color-hover);
    color: var(--_buttons---icon-color-hover);
}
.button .button_icon:not(.no-circle) svg {
    transform: translateX(0);
    transition: ease-in-out all .3s;
}
.button:hover .button_icon:not(.no-circle) svg {
    transform: translateX(2px);
}
.fs-selectcustom_dropdown-toggle .fs-selectcustom_icon {
    transform: rotate(0);
    transition: ease-in-out all .3s;
}
.fs-selectcustom_dropdown-toggle.w--open .fs-selectcustom_icon {
    transform: rotate(180deg);
}

.project-slider { overflow: visible !important; }

/* Accordion Styles - BEM with single underscore */
.accordion_title {
    cursor: pointer;
}

.accordion_icon {
    transition: transform 0.3s ease;
}

.accordion_content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.3s ease-out, opacity 0.3s ease-out;
}

.accordion_item-active {
    border-color: var(--_colors---dark);
    border-bottom: 1px solid var(--_colors---dark);
}
.accordion_item-active + .accordion_item {
    margin-top: -1px;
}


.accordion_item-active .accordion_content {
    opacity: 1;
    transition: max-height 0.3s ease-in, opacity 0.3s ease-in;
}

/* Icon animation based on accordion state */
.accordion_item:not(.accordion_item-active) .accordion_plus {
    display: block;
}

.accordion_item:not(.accordion_item-active) .accordion_minus {
    display: none;
}

.accordion_item-active .accordion_plus {
    display: none;
}

.accordion_item-active .accordion_minus {
    display: block;
}

.is-list-pagination-disabled { 
    opacity: .6;
    cursor: not-allowed
}


.hamburger-line {
    fill: currentColor;
    transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
    transform-origin: 12px 12px;
}

/* Active state - transforms hamburger into X */
.w-nav-button.w--open .hamburger-line-1 {
    transform: translate(-4px, 4px) rotate(45deg);
}

.w-nav-button.w--open .hamburger-line-2 {
    opacity: 0;
}

.w-nav-button.w--open .hamburger-line-3 {
    transform: translate(-4px, -4px) rotate(-45deg);
}

/* Focus styles for accessibility */
.w-nav-button:focus {
    outline: 2px solid #ffffff;
    outline-offset: 4px;
    border-radius: 4px;
}
[data-wf--navbar--variant="dark-text"] .w-nav-button:focus {
    outline: 2px solid var(--_colors---dark);
}

.project-pagination {
    z-index: 30;
    position: absolute;
    top: 50% !important;
    right: 0;
    display: flex;
    flex-direction: column;
    transform: translate(0, -50%);
    justify-content: center;
    gap: 10px;
    width: auto !important;
    left: auto !important;
    bottom: auto !important;
    --swiper-pagination-bullet-inactive-color: #fff;
    --swiper-pagination-bullet-inactive-opacity: .2;
    --swiper-pagination-bullet-active-color: #fff;
    --swiper-pagination-bullet-active-opacity: 1;
    --swiper-pagination-bullet-size: 12px;
    --swiper-pagination-bullet-border-radius: 50%;
    --swiper-pagination-bullet-height: 12px;
    --swiper-pagination-bullet-width: 12px;
    --swiper-pagination-color: #fff;
}



/* Headings - Proportional spacing based on hierarchy with responsive font sizes */
.rich-text h1 {
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.1;
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}

.rich-text h2 {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    line-height: 1.2;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
}

.rich-text h3 {
    font-size: clamp(1.25rem, 3vw, 1.875rem);
    line-height: 1.3;
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
}

.rich-text h4 {
    font-size: clamp(1.125rem, 2.5vw, 1.5rem);
    line-height: 1.4;
    margin-top: 1.25rem;
    margin-bottom: 0.5rem;
}

.rich-text h5 {
    font-size: clamp(1rem, 2vw, 1.25rem);
    line-height: 1.4;
    margin-top: 1.25rem;
    margin-bottom: 0.5rem;
}

.rich-text h6 {
    font-size: clamp(0.875rem, 1.5vw, 1.125rem);
    line-height: 1.5;
    margin-top: 1.25rem;
    margin-bottom: 0.5rem;
}

/* Paragraphs - Consistent vertical rhythm */
.rich-text p {
    margin-top: 0;
    margin-bottom: 1.5rem;
}

/* First/last child resets to prevent double spacing */
.rich-text p:first-child {
    margin-top: 0;
}

.rich-text p:last-child {
    margin-bottom: 0;
}

/* Lists - Proper spacing and indentation */
.rich-text ul,
.rich-text ol {
    margin-top: 0;
    margin-bottom: 1.5rem;
    padding-left: 1.5rem;
}

.rich-text li {
    margin-bottom: 0.5rem;
}

.rich-text li:last-child {
    margin-bottom: 0;
}

/* Nested lists - Reduced spacing for visual hierarchy */
.rich-text ul ul,
.rich-text ol ol,
.rich-text ul ol,
.rich-text ol ul {
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
}

/* Blockquotes - Distinctive spacing to set apart quoted content */
.rich-text blockquote {
    margin: 1.5rem 0;
    padding-left: 1.5rem;
}

.rich-text blockquote:first-child {
    margin-top: 0;
}

.rich-text blockquote:last-child {
    margin-bottom: 0;
}

/* Pre and Code blocks - Consistent spacing */
.rich-text pre,
.rich-text code {
    margin: 1.5rem 0;
}

.rich-text pre:first-child,
.rich-text code:first-child {
    margin-top: 0;
}

.rich-text pre:last-child,
.rich-text code:last-child {
    margin-bottom: 0;
}

/* Horizontal rules - Clear separation */
.rich-text hr {
    margin: 2rem 0;
}

.rich-text hr:first-child {
    margin-top: 0;
}

.rich-text hr:last-child {
    margin-bottom: 0;
}

/* Figures and captions - Proper spacing for images */
.rich-text figure {
    margin: 1.5rem 0;
}

.rich-text figure:first-child {
    margin-top: 0;
}

.rich-text figure:last-child {
    margin-bottom: 0;
}

.rich-text figcaption {
    margin-top: 0.75rem;
}

/* Tables - Consistent spacing */
.rich-text table {
    margin: 1.5rem 0;
}

.rich-text table:first-child {
    margin-top: 0;
}

.rich-text table:last-child {
    margin-bottom: 0;
}

/* Address elements - Proper spacing */
.rich-text address {
    margin-bottom: 1.5rem;
}

.rich-text address:last-child {
    margin-bottom: 0;
}

/* Responsive adjustments for smaller screens */
@media (max-width: 768px) {
    .rich-text h1 {
        margin-top: 2rem;
        margin-bottom: 0.75rem;
    }
    
    .rich-text h2 {
        margin-top: 1.5rem;
        margin-bottom: 0.5rem;
    }
    
    .rich-text h3 {
        margin-top: 1.25rem;
        margin-bottom: 0.5rem;
    }
    
    .rich-text p,
    .rich-text ul,
    .rich-text ol,
    .rich-text blockquote,
    .rich-text pre,
    .rich-text code,
    .rich-text table {
        margin-bottom: 1.25rem;
    }
    
    .rich-text hr {
        margin: 1.5rem 0;
    }
    
    .rich-text figure {
        margin: 1.25rem 0;
    }
}