/* Prevent horizontal scroll from 100vw/95vw elements (viewport includes scrollbar) */
html, body {
    overflow-x: hidden !important;
}

/* Page Loading - override opacity/transition so content doesn't flash */
body {
    opacity: 1 !important;
    transition: none !important;
}

body.loaded {
    opacity: 1 !important;
}

/* Root: block when it has section children, contents when empty; full width so sections don't collapse */
[data-framer-root]:has([data-section-name]) {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
[data-framer-root]:not(:has([data-section-name])) {
    display: contents !important;
}
/* 95% width: grid, double-text (.framer-6tbga3), rich-text, section-intro, team-grid, projects-and-filters - defined first so full-bleed rule doesn't override */
/* Divider is NOT here: section stays full width, inner .divider-line is 95% and centered in divider rules below */
[data-framer-root] > .framer-6tbga3[data-section-name],
[data-framer-root] > .framer-15iimmz[data-section-name^="rich-text-"],
[data-framer-root] > [data-section-name^="section-intro-"],
[data-framer-root] > [data-section-name^="team-grid-"],
[data-framer-root] > [data-section-name^="projects-and-filters-"] {
    width: 95% !important;
    max-width: 95% !important;
    box-sizing: border-box !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
/* Full-width only for full-bleed sections (hero, image_text, full_image, cta, company_details, blog, vertical_text) */
[data-framer-root] > .framer-znq905[data-section-name],
[data-framer-root] > .framer-1ypbfqw[data-section-name],
[data-framer-root] > .framer-z48mt2[data-section-name],
[data-framer-root] > #my-slideshow,
[data-framer-root] > [data-section-name^="image-text-"],
[data-framer-root] > [data-section-name^="full-image-"],
[data-framer-root] > [data-section-name^="cta-"],
[data-framer-root] > [data-section-name^="blog-posts-"],
[data-framer-root] > [data-section-name^="vertical-text-"] {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Hide sections by default - block system will show only sections with blocks */
.framer-znq905:not(.block-system-visible):not([style*="display:"]),
.framer-6tbga3:not(.block-system-visible):not([style*="display:"]),
.framer-tds3fk:not(.block-system-visible):not([style*="display:"]),
.framer-15iimmz:not(.block-system-visible):not([style*="display:"]),
#my-slideshow:not(.block-system-visible):not([style*="display:"]) {
    display: none !important;
}

/* Prevent layout shifts during reordering */
.framer-znq905,
.framer-6tbga3,
.framer-tds3fk,
.framer-15iimmz,
#my-slideshow {
    contain: layout style paint;
    will-change: transform;
}

/* Block fade: any section with .block-fade-item starts hidden, .visible shows it (generic, no section-specific logic) */
.block-fade-item {
    opacity: 0 !important;
    transition: opacity 0.9s ease-out !important;
}
.block-fade-item.visible {
    opacity: 1 !important;
    transition: opacity 0.9s ease-out !important;
}

/* Collection grid sections - ALL have same spacing, no differentiation */
/* Exclude double-text and section-intro from this rule */
.framer-6tbga3[data-section-name]:not([data-section-name^="double-text-"]):not([data-section-name^="section-intro-"]),
.framer-tds3fk[data-section-name] {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 72px !important;
    margin-bottom: 0 !important;
    gap: 0 !important;
}

/* Double text sections - no top margin when following divider */
[data-section-name^="divider-"] + .framer-6tbga3[data-section-name^="double-text-"] {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Double text sections - independent spacing */
.framer-6tbga3[data-section-name^="double-text-"] {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Fix slideshow container overflow */
#my-slideshow {
    overflow: hidden !important;
    max-width: 100vw !important;
    width: 100% !important;
    min-height: 60vh !important;
    background-color: transparent !important;
}

/* Move projects_and_filters block up by reducing top margin */
[data-section-name^="projects-and-filters-"],
[data-section-name="projects-and-filters-static"] {
    padding-top: 20px !important;
    margin-top: 40px !important;
}

.framer-14fp4ch[data-section-name^="projects-and-filters-"],
.framer-14fp4ch[data-section-name="projects-and-filters-static"] {
    padding-top: 20px !important;
}

/* Reduce space between separator and title */
/* Ensure all framer separator classes use light gray - override style.css */
.framer-rxmzK .framer-ir9ufh,
.framer-rxmzK .framer-19kj24y,
.framer-ir9ufh,
.framer-19kj24y {
    background-color: #e0e0e0 !important;
}

[data-section-name="projects-and-filters-static"] .framer-ir9ufh {
    margin-bottom: 10px !important;
    background-color: #e0e0e0 !important;
}

[data-section-name="projects-and-filters-static"] .framer-1eckw44 {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Hide border on wrapper that might create duplicate separator */
/* Use maximum specificity to override any parent CSS rules */
[data-section-name="projects-and-filters-static"] .framer-1emtt5n[data-border="true"]:before,
[data-section-name="projects-and-filters-static"] .framer-1emtt5n[data-border="true"]:after,
[data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"]:before,
[data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"]:after,
body [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"]:before,
body [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"]:after,
html body [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"]:before,
html body [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"]:after,
.framer-c88x2 [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"]:before,
.framer-c88x2 [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"]:after,
.framer-rxmzK [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"]:before,
.framer-rxmzK [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"]:after {
    display: none !important;
    content: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    width: 0 !important;
    border: none !important;
}

/* Remove border-top from wrapper - maximum specificity */
[data-section-name="projects-and-filters-static"] .framer-1emtt5n[data-border="true"],
[data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"],
body [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"],
html body [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"],
.framer-c88x2 [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"],
.framer-rxmzK [data-section-name^="projects-and-filters-"] .framer-1emtt5n[data-border="true"] {
    border-top: none !important;
    border-bottom: none !important;
    border-left: none !important;
    border-right: none !important;
    --border-top-width: 0 !important;
    --border-bottom-width: 0 !important;
    --border-left-width: 0 !important;
    --border-right-width: 0 !important;
}

/* Hide separator in static section completely - maximum specificity */
[data-section-name="projects-and-filters-static"] .framer-ir9ufh,
[data-section-name="projects-and-filters-static"] .framer-ir9ufh[data-framer-name="Line"],
body [data-section-name="projects-and-filters-static"] .framer-ir9ufh,
html body [data-section-name="projects-and-filters-static"] .framer-ir9ufh {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    line-height: 0 !important;
    border: none !important;
    background-color: transparent !important;
    background: none !important;
}

/* Also hide the static section itself completely */
[data-section-name="projects-and-filters-static"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Ensure only one separator - hide any additional ones in dynamic sections */
[data-section-name^="projects-and-filters-"] .framer-ir9ufh:not(:first-of-type) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Ensure the FIRST separator in projects_and_filters is visible */
[data-section-name^="projects-and-filters-"] .framer-ir9ufh:first-of-type {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: 1px !important;
}

[data-section-name="projects-and-filters-static"] .section-intro-separator,
[data-section-name^="projects-and-filters-"] .section-intro-separator {
    display: none !important;
}

/* Blog Posts Section Styles - Match main page: 95% width of 1480px container (like .framer-6tbga3) */
/* Ensure parent container is properly sized - override inline styles */
.framer-rxmzK.framer-8yzvys,
.framer-rxmzK.framer-8yzvys[style*="width"],
body .framer-rxmzK.framer-8yzvys,
html body .framer-rxmzK.framer-8yzvys {
    width: 1480px !important;
    max-width: 1480px !important;
    margin: 0 auto !important;
}

/* Target sections directly by their data-section-name - use 100% width */
[data-section-name^="blog-posts-"].framer-lergrr,
[data-section-name^="blog-posts-"].framer-5n75he,
body [data-section-name^="blog-posts-"].framer-lergrr,
body [data-section-name^="blog-posts-"].framer-5n75he,
html body [data-section-name^="blog-posts-"].framer-lergrr,
html body [data-section-name^="blog-posts-"].framer-5n75he,
.framer-rxmzK [data-section-name^="blog-posts-"].framer-lergrr,
.framer-rxmzK [data-section-name^="blog-posts-"].framer-5n75he,
[data-framer-root] [data-section-name^="blog-posts-"].framer-lergrr,
[data-framer-root] [data-section-name^="blog-posts-"].framer-5n75he,
[data-section-name^="blog-posts-"].framer-lergrr[style],
[data-section-name^="blog-posts-"].framer-5n75he[style] {
    align-content: center;
    align-items: center;
    display: flex;
    flex: none;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 40px;
    height: min-content;
    justify-content: center;
    overflow: visible;
    position: relative;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    margin: 0 auto !important;
    will-change: var(--framer-will-change-effect-override, transform);
}

[data-section-name^="blog-posts-"].framer-lergrr {
    padding: 100px 40px 0px !important; /* Minimal bottom padding to reduce gap */
}

[data-section-name^="blog-posts-"].framer-5n75he {
    padding: 20px 40px 40px !important; /* Minimal top padding to reduce gap */
}

/* Blog sections inner elements */
[data-section-name^="blog-posts-"] .framer-o11kr1,
[data-section-name^="blog-posts-"] .framer-10kz21h {
    --border-bottom-width: 0px;
    --border-color: #e0e0e0 !important; /* Match work page divider color */
    --border-left-width: 0px;
    --border-right-width: 0px;
    --border-style: solid;
    --border-top-width: .5px;
    align-content: flex-start;
    align-items: flex-start;
    display: flex;
    flex: none;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 30px;
    height: min-content;
    justify-content: flex-start;
    overflow: visible;
    padding: 30px 0;
    position: relative;
    width: 100%;
}

[data-section-name^="blog-posts-"] .framer-1dhvlon,
[data-section-name^="blog-posts-"] .framer-jkwrkr {
    --framer-link-text-color: #0099ff;
    --framer-link-text-decoration: underline;
    flex: none;
    height: auto;
    position: relative;
    white-space: pre-wrap;
    width: 65%;
    word-break: break-word;
    word-wrap: break-word;
}

[data-section-name^="blog-posts-"] .framer-kh4yx7 {
    display: grid;
    flex: none;
    gap: 24px;
    grid-auto-rows: min-content;
    grid-template-columns: repeat(3, minmax(50px, 1fr)); /* 3 columns same as other news */
    height: min-content;
    justify-content: center;
    padding: 0;
    position: relative;
    width: 100%;
}

[data-section-name^="blog-posts-"] .framer-1xae5sn {
    display: grid;
    flex: none;
    gap: 24px;
    grid-auto-rows: min-content;
    grid-template-columns: repeat(3, minmax(50px, 1fr));
    height: min-content;
    justify-content: center;
    padding: 0;
    position: relative;
    width: 100%;
}

@media (min-width: 810px) and (max-width: 1479px) {
    [data-section-name^="blog-posts-"].framer-lergrr,
    [data-section-name^="blog-posts-"].framer-5n75he {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
    }
    
    [data-section-name^="blog-posts-"].framer-lergrr {
        padding: 100px 30px 0px !important;
    }
    
    [data-section-name^="blog-posts-"].framer-5n75he {
        padding: 20px 30px 30px !important;
    }
    
    [data-section-name^="blog-posts-"] .framer-o11kr1,
    [data-section-name^="blog-posts-"] .framer-10kz21h {
        padding: 20px 0;
    }
    
    [data-section-name^="blog-posts-"] .framer-kh4yx7,
    [data-section-name^="blog-posts-"] .framer-1xae5sn {
        grid-template-columns: repeat(2, minmax(50px, 1fr));
    }
}

@media (max-width: 809px) {
    [data-section-name^="blog-posts-"].framer-lergrr,
    [data-section-name^="blog-posts-"].framer-5n75he {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
    }
    
    [data-section-name^="blog-posts-"].framer-lergrr {
        padding: 102px 15px 0px !important;
    }
    
    [data-section-name^="blog-posts-"].framer-5n75he {
        padding: 20px 15px 30px !important;
    }
    
    [data-section-name^="blog-posts-"] .framer-o11kr1,
    [data-section-name^="blog-posts-"] .framer-10kz21h {
        padding: 20px 0;
    }
    
    [data-section-name^="blog-posts-"] .framer-1dhvlon,
    [data-section-name^="blog-posts-"] .framer-jkwrkr {
        width: 85%;
    }
    
    [data-section-name^="blog-posts-"] .framer-kh4yx7,
    [data-section-name^="blog-posts-"] .framer-1xae5sn {
        grid-template-columns: repeat(1, minmax(50px, 1fr));
    }
}

/* Ensure blog cards are properly styled */
[data-section-name^="blog-posts-"] .blog-card-wrapper,
[data-section-name^="blog-posts-"] .blog-card-link {
    width: 100%;
    text-decoration: none;
    color: inherit;
}


/* Hide divider blocks that appear immediately before projects_and_filters sections */
[data-section-name^="divider-"]:has(+ [data-section-name^="projects-and-filters-"]),
[data-section-name^="divider-"] + [data-section-name^="projects-and-filters-"] {
    /* Target the divider itself */
}

/* Hide divider sections that come before projects_and_filters */
[data-section-name^="divider-"]:has(+ [data-section-name^="projects-and-filters-"]),
[data-framer-root] > [data-section-name^="divider-"]:has(+ [data-section-name^="projects-and-filters-"]) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* Loading state - show while blocks are loading */
.block-system-loading {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 1;
    transition: opacity 0.3s ease-out;
}

.block-system-loading.hidden {
    opacity: 0;
    pointer-events: none;
}

.block-system-loading-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid #333;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Hide sections by default - block system will show only sections with blocks */
.framer-znq905:not(.block-system-visible):not([style*="display:"]),
.framer-6tbga3:not(.block-system-visible):not([style*="display:"]),
.framer-tds3fk:not(.block-system-visible):not([style*="display:"]),
.framer-15iimmz:not(.block-system-visible):not([style*="display:"]),
#my-slideshow:not(.block-system-visible):not([style*="display:"]) {
    display: none !important;
}

/* Force visible sections to show */
.block-system-visible {
    display: block !important;
    visibility: visible !important;
}

#my-slideshow.block-system-visible {
    display: block !important;
    visibility: visible !important;
}

/* Prevent layout shifts during reordering */
.framer-znq905,
.framer-6tbga3,
.framer-tds3fk,
.framer-15iimmz,
#my-slideshow {
    contain: layout style paint;
    will-change: transform;
}

/* Hide grid containers by default - will be shown by JS - GENERIC for ALL */
[id^="dynamic-"][id$="-desktop"]:not([style*="display:"]),
[id^="dynamic-"][id$="-tablet"]:not([style*="display:"]),
[id^="dynamic-"][id$="-mobile"]:not([style*="display:"]),
[id^="dynamic-"][id$="-list"]:not([style*="display:"]) {
    display: none !important;
}

/* Add extra space to bottom of any grid - GENERIC for ALL */
[id^="dynamic-"][id$="-desktop"],
[id^="dynamic-"][id$="-tablet"],
[id^="dynamic-"][id$="-mobile"],
[id^="dynamic-"][id$="-list"] {
    margin-bottom: 60px !important;
    padding-bottom: 0 !important;
}

/* Ensure grids are visible when explicitly shown - GENERIC for ALL */
[id^="dynamic-"][id$="-desktop"][style*="display:"]:not([style*="display: none"]),
[id^="dynamic-"][id$="-tablet"][style*="display:"]:not([style*="display: none"]),
[id^="dynamic-"][id$="-mobile"][style*="display:"]:not([style*="display: none"]),
[id^="dynamic-"][id$="-list"][style*="display:"]:not([style*="display: none"]) {
    display: grid !important;
}

/* Collection grid sections - ALL have same spacing, no differentiation */
.framer-6tbga3[data-section-name],
.framer-tds3fk[data-section-name] {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 72px !important;
    margin-bottom: 0 !important;
    gap: 0 !important;
}

/* Add controlled spacing to section_intro blocks - MATCH HOME PAGE */
[data-section-name^="section-intro-"] {
    padding-top: 1220px !important;
    padding-bottom: 0 !important;
    margin-top: 160px !important;
    margin-bottom: 50px !important;
    height: auto !important;
    min-height: auto !important;
}

/* Override margin when section_intro is first/last or adjacent to other sections */
[data-framer-root] > [data-section-name^="section-intro-"]:first-child {
    margin-top: 0 !important;
}

/* Override top margin when section_intro comes after another section */
* + [data-section-name^="section-intro-"] {
    margin-top: 120px !important;
}

/* Remove excessive internal spacing but allow controlled gaps - EXCLUDE separator */
[data-section-name^="section-intro-"] > *:not(.section-intro-separator) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Remove spacing from structural containers only (not text elements h1, h2, h3, p) */
[data-section-name^="section-intro-"] [class*="framer-"],
[data-section-name^="section-intro-"] section,
[data-section-name^="section-intro-"] div {
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
}

/* But allow text elements to have spacing */
[data-section-name^="section-intro-"] h1,
[data-section-name^="section-intro-"] h2,
[data-section-name^="section-intro-"] h3 {
    margin: 0 !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
}

/* Paragraphs in section_intro - default no margin, but we'll add margin-top for first paragraph */
[data-section-name^="section-intro-"] p {
    margin: 0 !important;
    padding: 0 !important;
}

/* Add gap between title and description - MULTIPLE SELECTORS to catch all cases */
/* Direct sibling (h1/h2/h3 immediately followed by p) */
[data-section-name^="section-intro-"] h1 + p,
[data-section-name^="section-intro-"] h2 + p,
[data-section-name^="section-intro-"] h3 + p {
    margin-top: 40px !important;
}

/* General sibling (p anywhere after h1/h2/h3) */
[data-section-name^="section-intro-"] h1 ~ p:first-of-type,
[data-section-name^="section-intro-"] h2 ~ p:first-of-type,
[data-section-name^="section-intro-"] h3 ~ p:first-of-type {
    margin-top: 40px !important;
}

/* First paragraph in section_intro (if heading is first element) */
[data-section-name^="section-intro-"] p:first-of-type {
    margin-top: 40px !important;
}

/* Paragraph that comes after any heading, regardless of nesting */
[data-section-name^="section-intro-"] h1 ~ p,
[data-section-name^="section-intro-"] h2 ~ p,
[data-section-name^="section-intro-"] h3 ~ p {
    margin-top: 40px !important;
}

/* Alternative: Add margin-bottom to heading instead */
[data-section-name^="section-intro-"] h1:not(:last-child),
[data-section-name^="section-intro-"] h2:not(:last-child),
[data-section-name^="section-intro-"] h3:not(:last-child) {
    margin-bottom: 40px !important;
}

/* Preserve text styling */
[data-section-name^="section-intro-"] p {
    line-height: 1.5 !important;
}

/* Collection grid text sections - ALL have same spacing */
.framer-6tbga3[data-section-name] #works,
.framer-tds3fk[data-section-name] #works,
.framer-6tbga3[data-section-name] #works-1,
.framer-tds3fk[data-section-name] #works-1 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Reduce spacing between text and grid - ALL collection grids */
.framer-6tbga3[data-section-name] #works + *,
.framer-tds3fk[data-section-name] #works + *,
.framer-6tbga3[data-section-name] .framer-ir9ufh,
.framer-tds3fk[data-section-name] .framer-19kj24y {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Hide separator lines in collection grid sections - ALL */
.framer-6tbga3[data-section-name] .framer-ir9ufh,
.framer-tds3fk[data-section-name] .framer-19kj24y,
[data-section-name^="section-intro-"] .framer-ir9ufh,
[data-section-name^="section-intro-"] .framer-19kj24y {
    display: none !important;
}


/* Override top margin when section_intro comes after another section - but keep more gap */
* + [data-section-name^="section-intro-"] {
    margin-top: 120px !important;
}

/* Keep bottom margin on section_intro - this creates the gap to next section */
/* Don't override margin-bottom, let the 50px from line 393 create the gap */

/* Remove all spacing from collection grid section containers - ALL grids */
.framer-6tbga3[data-section-name] .framer-4h3e48,
.framer-tds3fk[data-section-name] .framer-4h3e48,
.framer-tds3fk[data-section-name] .framer-1xbh225,
[data-section-name^="section-intro-"] .framer-4h3e48,
[data-section-name^="section-intro-"] .framer-1xbh225,
[data-section-name^="section-intro-"] > *:not(.section-intro-separator),
[data-section-name^="section-intro-"] .framer-1xbh225 > *,
[data-section-name^="section-intro-"] .framer-4h3e48 > * {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Remove spacing from heading and description containers - ALL grids */
.framer-6tbga3[data-section-name] .framer-1ljm8j4,
.framer-6tbga3[data-section-name] .framer-j8w4zv,
.framer-tds3fk[data-section-name] .framer-1ljm8j4,
.framer-tds3fk[data-section-name] .framer-j8w4zv,
.framer-tds3fk[data-section-name] .framer-swxaw7,
.framer-tds3fk[data-section-name] .framer-1xuthiq,
[data-section-name^="section-intro-"] .framer-1ljm8j4,
[data-section-name^="section-intro-"] .framer-j8w4zv,
[data-section-name^="section-intro-"] .framer-swxaw7,
[data-section-name^="section-intro-"] .framer-1xuthiq,
[data-section-name^="section-intro-"] h1,
[data-section-name^="section-intro-"] h2,
[data-section-name^="section-intro-"] h3,
[data-section-name^="section-intro-"] p {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Remove min-height that might create gaps - ALL grids */
.framer-6tbga3[data-section-name],
.framer-tds3fk[data-section-name],
[data-section-name^="section-intro-"] {
    min-height: auto !important;
    height: auto !important;
}

/* Add extra space to bottom of collection grid sections - ALL grids same spacing */
.framer-6tbga3[data-section-name],
.framer-tds3fk[data-section-name] {
    margin-bottom: 0px !important;
    padding-bottom: 0 !important;
}

/* Remove all spacing from collection grid children that might create gaps */
.framer-6tbga3[data-section-name] > *:last-child,
.framer-tds3fk[data-section-name] > *:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* CTA sections - add bottom spacing */
[data-section-name^="cta-"] {
    margin-top: 0 !important;
    margin-bottom: 80px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Divider sections - layout only; opacity from .block-fade-item.visible (block-order fade) */
/* Section full width; inner line centered at 95% so centering works with display:contents (studio) */
[data-section-name^="divider-"],
.divider-section,
[data-section-name^="divider-"].block-system-visible,
.divider-section.block-system-visible {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    visibility: visible !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    min-height: 1px !important;
    height: auto !important;
    max-height: none !important;
    position: relative !important;
    border: none !important;
    --border-color: #e0e0e0 !important;
    border-color: #e0e0e0 !important;
    box-sizing: border-box !important;
}

/* Ensure divider-line uses light gray */
[data-section-name^="divider-"] .divider-line,
.divider-section .divider-line {
    background-color: #e0e0e0 !important;
    border: none !important;
    border-color: #e0e0e0 !important;
    --border-color: #e0e0e0 !important;
    z-index: 1 !important;
}

/* Override ANY rule that might hide dividers - layout only; opacity from .block-fade-item.visible */
[data-framer-root] [data-section-name^="divider-"],
[data-framer-root] .divider-section,
body [data-section-name^="divider-"],
body .divider-section {
    display: flex !important;
    visibility: visible !important;
}

/* Divider section: always full width so flex centering of inner line works (overrides any 95% on section) */
[data-framer-root] > [data-section-name^="divider-"],
[data-framer-root] > .divider-section {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Break divider section out to full viewport so line (95vw + 2.5vw) is truly centered */
[data-framer-root] > [data-section-name^="divider-"],
[data-framer-root] > .divider-section {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    box-sizing: border-box !important;
}


/* ========== TOP SPACING: home = 0, other pages (studio, blog, work, contact) = 100px ========== */
/* Wrapper: only source of gap below nav – high specificity so nothing overrides */
body [data-framer-generated-page] .framer-t8Kpa.framer-155tqgx,
body [data-framer-generated-page] .framer-t8Kpa:has(> [data-framer-root]) {
    padding-top: 100px !important;
}
body.page-home [data-framer-generated-page] .framer-t8Kpa.framer-155tqgx,
body.page-home [data-framer-generated-page] .framer-t8Kpa:has(> [data-framer-root]) {
    padding-top: 0 !important;
}
/* First section must add ZERO top space – overrides blog-posts 100px, section_intro 160px, etc. */
body [data-framer-generated-page] [data-framer-root] > *:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Divider line - always use light gray to match main page separator; width 100% default */
.divider-section .divider-line {
    width: 100% !important;
    height: 1px !important;
    min-height: 1px !important;
    max-height: 1px !important;
    background-color: #e0e0e0 !important;
    border: none !important;
    margin: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    z-index: 1 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
}

/* Override: center line in viewport (95vw + 2.5vw each side) so it works when root has display:contents */
[data-framer-root] [data-section-name^="divider-"] .divider-line,
[data-framer-root] .divider-section .divider-line {
    width: 95vw !important;
    max-width: 95vw !important;
    margin-left: 2.5vw !important;
    margin-right: 2.5vw !important;
}

/* Ensure first divider is visible */
[data-section-name^="divider-"]:first-child,
[data-framer-root] > [data-section-name^="divider-"]:first-child {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Full Image sections - 100vh image */
[data-section-name^="full-image-"],
.full-image-section {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 100vh !important;
    overflow: hidden !important;
}

.full-image-section .full-image-container {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
}

.full-image-section .full-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Add spacing top and bottom for rich_text blocks (quote sections) */
.framer-15iimmz[data-section-name="bottom-quote"],
.framer-15iimmz[data-section-name="quote-hero"],
.framer-15iimmz[data-section-name^="rich-text-"] {
    margin-top: 25px !important;
    margin-bottom: 25px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Hide and remove spacing from #works in collection grid sections ONLY */
/* #works should be visible in section_intro, but hidden in collection grids */
.framer-6tbga3[data-section-name]:not([data-section-name^="section-intro-"]):not([data-section-name^="double-text-"]) #works {
    display: none !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
}

/* Reduce spacing between text and grid - GENERIC for ALL sections */
.framer-6tbga3[data-section-name] #works + *,
.framer-6tbga3[data-section-name] .framer-ir9ufh {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Hide separator lines in collection grid sections ONLY - NOT in section_intro */
.framer-6tbga3[data-section-name]:not([data-section-name^="section-intro-"]) .framer-ir9ufh {
    display: none !important;
}




/* Remove all spacing from collection grid section containers ONLY - NOT section_intro */
.framer-6tbga3[data-section-name]:not([data-section-name^="section-intro-"]) .framer-4h3e48 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Remove spacing from heading and description containers - BUT NOT section_intro */
/* Let section_intro use natural typography spacing from style.css */
.framer-6tbga3[data-section-name]:not([data-section-name^="section-intro-"]) .framer-1ljm8j4,
.framer-6tbga3[data-section-name]:not([data-section-name^="section-intro-"]) .framer-j8w4zv {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Remove min-height that might create gaps - GENERIC for ALL */
.framer-6tbga3[data-section-name]:not([data-section-name^="section-intro-"]) {
    min-height: auto !important;
    height: auto !important;
}

/* Ensure section_intro has proper dimensions and spacing - match home page */
[data-section-name^="section-intro-"] {
    min-height: auto !important;
    height: auto !important;
    width: 100% !important;
    padding-bottom: 0 !important;
    margin-top: 160px !important;
    margin-bottom: 50px !important;
}

/* Override margin when section_intro is first child */
[data-framer-root] > [data-section-name^="section-intro-"]:first-child {
    margin-top: 0 !important;
}

/* Override top margin when section_intro comes after another section */
* + [data-section-name^="section-intro-"] {
    margin-top: 120px !important;
}

/* Ensure section_intro inner containers are visible */
[data-section-name^="section-intro-"] #works,
[data-section-name^="section-intro-"] .framer-4h3e48 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    min-height: auto !important;
    height: auto !important;
}

/* Ensure section_intro text elements are visible - but don't override typography */
[data-section-name^="section-intro-"] h1,
[data-section-name^="section-intro-"] p {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Center section intro description - target all containers - MORE SPECIFIC */
[data-section-name^="section-intro-"] p,
[data-section-name^="section-intro-"] p *,
[data-section-name^="section-intro-"] .framer-j8w4zv,
[data-section-name^="section-intro-"] .framer-j8w4zv *,
[data-section-name^="section-intro-"] .framer-j8w4zv p,
[data-section-name^="section-intro-"] .framer-j8w4zv p * {
    text-align: center !important;
    --framer-text-alignment: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Center section intro heading - target all containers */
[data-section-name^="section-intro-"] h1,
[data-section-name^="section-intro-"] h2,
[data-section-name^="section-intro-"] h3,
[data-section-name^="section-intro-"] .framer-1ljm8j4,
[data-section-name^="section-intro-"] .framer-4pa2al,
[data-section-name^="section-intro-"] .framer-4pa2al h1,
[data-section-name^="section-intro-"] .framer-4pa2al h2,
[data-section-name^="section-intro-"] .framer-4pa2al h3 {
    text-align: center !important;
    --framer-text-alignment: center !important;
}

/* Center section intro containers - FORCE CENTER */
[data-section-name^="section-intro-"] .framer-j8w4zv,
[data-section-name^="section-intro-"] .framer-1ljm8j4,
[data-section-name^="section-intro-"] .framer-4h3e48,
[data-section-name^="section-intro-"] .framer-4h3e48 * {
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    --framer-text-alignment: center !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Force center all text elements in section_intro */
[data-section-name^="section-intro-"] * {
    text-align: center !important;
    --framer-text-alignment: center !important;
}

/* Override any left alignment */
[data-section-name^="section-intro-"] [style*="text-align: left"],
[data-section-name^="section-intro-"] [style*="text-align:left"],
[data-section-name^="section-intro-"] [style*="text-align: left;"],
[data-section-name^="section-intro-"] [style*="text-align:left;"] {
    text-align: center !important;
    --framer-text-alignment: center !important;
}

/* Force center description container and its children */
[data-section-name^="section-intro-"] .framer-j8w4zv {
    text-align: center !important;
    --framer-text-alignment: center !important;
    align-items: center !important;
    justify-content: center !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}

[data-section-name^="section-intro-"] .framer-j8w4zv p {
    text-align: center !important;
    --framer-text-alignment: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
}

/* Add gap between title and description in section_intro - match home page */
[data-section-name^="section-intro-"] h1 + p,
[data-section-name^="section-intro-"] h2 + p,
[data-section-name^="section-intro-"] h3 + p {
    margin-top: 40px !important;
}

/* General sibling spacing */
[data-section-name^="section-intro-"] h1 ~ p:first-of-type,
[data-section-name^="section-intro-"] h2 ~ p:first-of-type,
[data-section-name^="section-intro-"] h3 ~ p:first-of-type {
    margin-top: 40px !important;
}

/* Rich text sections - add proper spacing - MATCH HOME PAGE */
.framer-15iimmz[data-section-name="bottom-quote"],
.framer-15iimmz[data-section-name="quote-hero"],
.framer-15iimmz[data-section-name^="rich-text-"] {
    margin-top: 100px !important;
    margin-bottom: 100px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Ensure rich_text sections are visible and styled properly */

/* Prevent text truncation in double_text sections */
.framer-6tbga3[data-section-name^="double-text-"] .framer-173rxxqss,
.framer-6tbga3[data-section-name^="double-text-"] .framer-173rxxqss p,
.framer-6tbga3[data-section-name^="double-text-"] .framer-6u7vlus {
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    line-height: normal !important;
}

/* Prevent text truncation in rich_text sections and tighten line height */
.framer-15iimmz[data-section-name^="rich-text-"] h3,
.framer-15iimmz[data-section-name^="rich-text-"] .framer-173rxxq {
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    /* slightly tighter than default for nicer rhythm */
    line-height: 1.25 !important;
}
.framer-15iimmz[data-section-name^="rich-text-"] {
    display: block !important;
    visibility: visible !important;
    min-height: 1em !important;
    height: auto !important;
}

/* Force visibility for company_details sections (opacity from .block-fade-item.visible) */
.framer-z48mt2[data-section-name^="company-details-"] {
    display: block !important;
    visibility: visible !important;
}

/* Layout only; opacity controlled by .block-fade-item / .block-fade-item.visible */
[data-section-name^="rich-text-"],
[data-section-name^="company-details-"],
[data-section-name^="divider-"] {
    display: block !important;
    visibility: visible !important;
}

/* Ensure image_text image wrapper is visible */
.framer-znq905[data-section-name^="image-text-"] .quote-hero-img-wrapper,
.framer-znq905[data-section-name^="image-text-"] .framer-tr6r6k,
.framer-znq905[data-section-name^="image-text-"] .ssr-variant {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Override hidden-br12dx class for image_text sections */
.framer-znq905[data-section-name^="image-text-"] .ssr-variant.hidden-br12dx {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Ensure image_text images are visible */
.framer-znq905[data-section-name^="image-text-"] .quote-hero-img-wrapper img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    height: auto !important;
}

/* When text_animation is off: no sticky, no extra height – section fits content only */
.framer-znq905[data-section-name^="image-text-"][data-image-text-animation="false"] {
    min-height: 0 !important;
}
.framer-znq905[data-section-name^="image-text-"][data-image-text-animation="false"] .framer-2qrqbu {
    position: relative !important;
    top: auto !important;
    min-height: 0 !important;
}

/* Image-text section: top/bottom spacing only, no side padding/gap */
.framer-znq905[data-section-name^="image-text-"] {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* Remove any side padding from image_text inner wrappers */
.framer-znq905[data-section-name^="image-text-"] .framer-2qrqbu,
.framer-znq905[data-section-name^="image-text-"] .framer-6u7vlu {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Limit image_text section to 50% width for text and image */
.framer-znq905[data-section-name^="image-text-"] .framer-6u7vlu {
    width: 100% !important;
    max-width: 100% !important;
}

/* Text container - 50% width, text left-aligned */
.framer-znq905[data-section-name^="image-text-"] .framer-173rxxq {
    width: 50% !important;
    max-width: 50% !important;
    flex: 0 0 50% !important;
    text-align: left !important;
}
.framer-znq905[data-section-name^="image-text-"] .framer-173rxxq .quote-hero-animated-text,
.framer-znq905[data-section-name^="image-text-"] .framer-173rxxq h3,
.framer-znq905[data-section-name^="image-text-"] .framer-173rxxq .framer-text {
    text-align: left !important;
}

/* Image-text text_regular: align text to top (not center) and use vertical text body font */
.framer-znq905[data-section-name^="image-text-"][data-image-text-style="regular"] .framer-173rxxq {
    justify-content: flex-start !important;
    align-items: flex-start !important;
}
.framer-znq905[data-section-name^="image-text-"][data-image-text-style="regular"] .quote-hero-animated-text,
.framer-znq905[data-section-name^="image-text-"][data-image-text-style="regular"] .framer-173rxxq h3,
.framer-znq905[data-section-name^="image-text-"][data-image-text-style="regular"] .framer-173rxxq .framer-text {
    white-space: pre-wrap !important;
    line-height: 1.55 !important;
    font-family: "Geist", "Geist Placeholder", sans-serif !important;
    font-size: calc(var(--framer-root-font-size, 1rem) * 1) !important;
    font-weight: 400 !important;
    color: #1a1a1a !important;
    letter-spacing: 0.01em !important;
    margin: 0 !important;
    max-width: 100% !important;
}

/* Image container - 50% width - ALLOW FLEX TO GROW */
.framer-znq905[data-section-name^="image-text-"] .framer-tr6r6k,
.framer-znq905[data-section-name^="image-text-"] .ssr-variant {
    width: 50% !important;
    max-width: none !important;
    flex: 1 1 auto !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Ensure image wrapper takes full width of its container */
.framer-znq905[data-section-name^="image-text-"] .quote-hero-img-wrapper {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    position: relative !important;
}

/* Image fills container properly - match reference design */
.framer-znq905[data-section-name^="image-text-"] .quote-hero-img-wrapper img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    object-position: center !important;
}

/* Image container – stretch to match text column (adaptive height) */
.framer-znq905[data-section-name^="image-text-"] .framer-tr6r6k {
    min-height: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    position: relative !important;
    width: 50% !important;
    max-width: none !important;
    flex: 1 1 auto !important;
}

/* Ensure image container wrapper is visible and stretches with row */
.framer-znq905[data-section-name^="image-text-"] .ssr-variant {
    min-height: 0 !important;
    display: flex !important;
    width: 50% !important;
    max-width: none !important;
    flex: 1 1 auto !important;
    align-items: stretch !important;
}

/* Ensure image wrapper fills container height */
.framer-znq905[data-section-name^="image-text-"] .quote-hero-img-wrapper {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
}

/* Universal block: row height adapts to content (text drives height) */
.framer-znq905[data-section-name^="image-text-"] .framer-6u7vlu {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    height: auto !important;
    min-height: 0 !important;
}

/* Text section: height adapts to content; image column stretches to match */
.framer-znq905[data-section-name^="image-text-"] .framer-173rxxq {
    height: auto !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: flex-start !important;
}

/* Image-text: mobile – single column, image on top, text below */
@media (max-width: 809px) {
    .framer-znq905[data-section-name^="image-text-"] {
        display: block !important;
        width: 100% !important;
    }
    .framer-znq905[data-section-name^="image-text-"] .framer-2qrqbu,
    .framer-znq905[data-section-name^="image-text-"] .framer-6u7vlu {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
    }
    .framer-znq905[data-section-name^="image-text-"] .framer-6u7vlu {
        align-items: stretch !important;
    }
    /* Image – first (on top), full width, one column */
    .framer-znq905[data-section-name^="image-text-"] .framer-tr6r6k,
    .framer-znq905[data-section-name^="image-text-"] .ssr-variant {
        order: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
        height: 50vh !important;
        min-height: 280px !important;
    }
    .framer-znq905[data-section-name^="image-text-"] .quote-hero-img-wrapper {
        position: relative !important;
    }
    /* Text – second (below image), full width, same left spacing as image (no extra horizontal padding) */
    .framer-znq905[data-section-name^="image-text-"] .framer-173rxxq {
        order: 2 !important;
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 2rem 0 !important;
        text-align: left !important;
    }
    .framer-znq905[data-section-name^="image-text-"] .framer-173rxxq .quote-hero-animated-text,
    .framer-znq905[data-section-name^="image-text-"] .framer-173rxxq h3,
    .framer-znq905[data-section-name^="image-text-"] .framer-173rxxq .framer-text {
        text-align: left !important;
    }
}

.framer-15iimmz[data-section-name^="rich-text-"] .framer-173rxxq {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
}

.framer-15iimmz[data-section-name^="rich-text-"] h3 {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Override projects page container spacing to match home page */
/* The .framer-c88x2.framer-3f1h8z has gap: 160px and padding: 160px 20px which creates huge gaps */
/* Match .framer-rxmzK.framer-8yzvys container properties exactly */
.framer-c88x2.framer-3f1h8z {
    align-content: center !important;
    align-items: center !important;
    background-color: var(--token-faea5151-ce58-4ac1-8969-d4f9af520c14, #000000) !important;
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 0px !important;
    height: min-content !important;
    justify-content: flex-start !important;
    overflow: visible !important;
    padding: 0 !important;
    position: relative !important;
    width: 1480px !important;
}

/* Ensure sections inside projects page container are visible (opacity from .block-fade-item.visible) */
.framer-c88x2.framer-3f1h8z > [data-section-name],
.framer-c88x2.framer-3f1h8z > #my-slideshow[data-section-name] {
    display: block !important;
    visibility: visible !important;
}

/* Override any flexbox gap that might be applied */
.framer-c88x2.framer-3f1h8z[data-framer-root],
[data-framer-root].framer-c88x2.framer-3f1h8z {
    gap: 0 !important;
}

/* Match home page container behavior - display: contents */
[data-framer-root].framer-c88x2.framer-3f1h8z {
    display: contents !important;
}

/* COPY ALL SECTION STYLES FROM HOME PAGE (.framer-rxmzK) TO PROJECTS PAGE (.framer-c88x2) */
/* This ensures sections look identical on both pages */

/* Section intro (.framer-6tbga3) - match home page styling */
.framer-c88x2 .framer-6tbga3 {
    align-content: center !important;
    align-items: center !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 72px !important;
    height: min-content !important;
    justify-content: center !important;
    max-width: 100% !important;
    overflow: hidden !important;
    padding: 80px 0 !important;
    position: relative !important;
    width: 95% !important;
    z-index: 1 !important;
}

/* Rich text (.framer-15iimmz) - 95% width outer container */
.framer-rxmzK .framer-15iimmz[data-section-name^="rich-text-"] {
    width: 95% !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 160px 0 !important;
    align-content: flex-start !important;
    align-items: flex-start !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 15px !important;
    height: auto !important;
    justify-content: flex-start !important;
    overflow: visible !important;
    position: relative !important;
    z-index: 1 !important;
}

/* Reduce padding-top for rich-text sections that come after dividers - MUST override the 160px rule */
[data-section-name^="divider-"] + .framer-15iimmz[data-section-name^="rich-text-"],
[data-section-name^="divider-"] + .framer-rxmzK .framer-15iimmz[data-section-name^="rich-text-"] {
    padding: 40px 0 !important;
    padding-top: 40px !important;
}

/* Rich text container (.framer-173rxxq) - FULL WIDTH, left aligned */
.framer-rxmzK .framer-15iimmz[data-section-name^="rich-text-"] .framer-173rxxq,
.framer-c88x2 .framer-15iimmz[data-section-name^="rich-text-"] .framer-173rxxq {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    --framer-link-text-color: #0099ff !important;
    --framer-link-text-decoration: none !important;
    --framer-text-wrap-override: balance !important;
    flex: none !important;
    height: auto !important;
    position: relative !important;
}

/* Rich text content - ensure full width, no max-width constraints */
.framer-rxmzK .framer-15iimmz[data-section-name^="rich-text-"] h3,
.framer-rxmzK .framer-15iimmz[data-section-name^="rich-text-"] p,
.framer-rxmzK .framer-15iimmz[data-section-name^="rich-text-"] .framer-text,
.framer-rxmzK .framer-15iimmz[data-section-name^="rich-text-"] .framer-173rxxq h3,
.framer-rxmzK .framer-15iimmz[data-section-name^="rich-text-"] .framer-173rxxq p,
.framer-rxmzK .framer-15iimmz[data-section-name^="rich-text-"] .framer-173rxxq .framer-text {
    text-align: left !important;
    width: 100% !important;
    max-width: none !important;
}

/* Image text (.framer-znq905) - match home page styling */
.framer-c88x2 .framer-znq905 {
    align-content: center !important;
    align-items: center !important;
    display: flex !important;
    flex: none !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 0px !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: visible !important;
    padding: 0 !important;
    position: relative !important;
    width: 100% !important;
}

/* Collection grid (.framer-tds3fk) - match home page styling */
.framer-c88x2 .framer-tds3fk {
    align-content: flex-start !important;
    align-items: flex-start !important;
    display: grid !important;
    flex: none !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 20px 20px !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: visible !important;
    padding: 0 !important;
    position: relative !important;
    width: 100% !important;
}

/* Ensure sections have same width and layout on both pages */
.framer-c88x2 .framer-6tbga3[data-section-name],
.framer-c88x2 .framer-15iimmz[data-section-name],
.framer-c88x2 .framer-znq905[data-section-name],
.framer-c88x2 .framer-tds3fk[data-section-name] {
    width: 100% !important;
    max-width: 100% !important;
}

/* Ensure projects-and-filters section uses 95% width - both static and dynamic */
.framer-rxmzK [data-section-name="projects-and-filters-static"],
.framer-rxmzK [data-section-name^="projects-and-filters-"] {
    width: 95% !important;
    max-width: 95% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Override .framer-c88x2 styles for projects section containers */
.framer-rxmzK [data-section-name="projects-and-filters-static"] .framer-14fp4ch,
.framer-rxmzK [data-section-name^="projects-and-filters-"] .framer-14fp4ch {
    align-content: center !important;
    align-items: center !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 40px !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: visible !important;
    padding: 107px 30px 40px !important;
    position: relative !important;
    width: 100% !important;
}

.framer-rxmzK [data-section-name="projects-and-filters-static"] .framer-1emtt5n,
.framer-rxmzK [data-section-name^="projects-and-filters-"] .framer-1emtt5n {
    --border-bottom-width: 0px !important;
    --border-color: var(--token-5c45dc6d-20c4-42dd-b89b-92183ad9c130, #333333) !important;
    --border-left-width: 0px !important;
    --border-right-width: 0px !important;
    --border-style: solid !important;
    --border-top-width: .5px !important;
    align-content: flex-start !important;
    align-items: flex-start !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 30px !important;
    height: min-content !important;
    justify-content: flex-start !important;
    overflow: visible !important;
    padding: 40px 0 !important;
    position: relative !important;
    width: 100% !important;
}

.framer-rxmzK [data-section-name="projects-and-filters-static"] .framer-1eckw44,
.framer-rxmzK [data-section-name^="projects-and-filters-"] .framer-1eckw44 {
    --framer-link-text-color: #0099ff !important;
    --framer-link-text-decoration: underline !important;
    flex: none !important;
    height: auto !important;
    max-width: 1400px !important;
    position: relative !important;
    white-space: pre-wrap !important;
    width: 65% !important;
    word-break: break-word !important;
    word-wrap: break-word !important;
}

.framer-rxmzK [data-section-name="projects-and-filters-static"] .framer-u0q6sm-container,
.framer-rxmzK [data-section-name^="projects-and-filters-"] .framer-u0q6sm-container {
    flex: none !important;
    height: auto !important;
    position: relative !important;
    width: 100% !important;
}


/* Match home page responsive breakpoints */
@media (min-width: 810px) and (max-width: 1479px) {
    .framer-c88x2.framer-3f1h8z {
        width: 810px !important;
    }
}

@media (max-width: 809px) {
    .framer-c88x2.framer-3f1h8z {
        width: 100% !important;
    }
}

/* Add extra space to bottom of collection grid sections - GENERIC for ALL */
.framer-6tbga3[data-section-name] {
    margin-bottom: 0px !important;
    padding-bottom: 0 !important;
}

/* Double text sections - NO bottom spacing - MUST override general rule above */
.framer-6tbga3[data-section-name^="double-text-"] {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Extra specificity to ensure double-text override wins */
[data-framer-root] .framer-6tbga3[data-section-name^="double-text-"] {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* CTA sections - independent spacing */
[data-section-name^="cta-"] {
    margin-top: 72px !important;
    margin-bottom: 80px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}


/* Remove any padding/margin from CTA internal containers */
[data-section-name^="cta-"] .framer-4h3e48,
[data-section-name^="cta-"] > *,
[data-section-name^="cta-"] .reusable-btn-container {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* CTA sections - full width containers */
[data-section-name^="cta-"],
[data-section-name^="cta-"] .framer-4h3e48 {
    width: 100% !important;
    max-width: none !important;
}

/* CTA button container - centered */
[data-section-name^="cta-"] .reusable-btn-container {
    width: 100% !important;
    max-width: none !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
}

/* Rich text section - full width (exclude rich-text sections which have their own rule) */
.framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 150px !important;
    margin-bottom: 150px !important;
    padding: 0 !important;
    text-align: left !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    background-color: transparent !important;
    min-height: auto !important;
    height: auto !important;
    overflow: visible !important;
}

/* Force quote text to be left-aligned with proper padding (exclude rich-text) */
.framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) .framer-text,
.framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) h3,
.framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) .framer-text.framer-styles-preset-1hvahxx {
    text-align: left !important;
    --framer-text-alignment: left !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    width: 100% !important;
    margin: 0 !important;
    padding-right: 80px !important;
    padding-bottom: 20px !important;
    color: black !important;
    overflow: visible !important;
}

@media (min-width: 810px) and (max-width: 1199px) {
    .framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) {
        width: 95% !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-top: 150px !important;
        margin-bottom: 150px !important;
        padding: 0 !important;
        text-align: left !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        background-color: transparent !important;
        min-height: auto !important;
        height: auto !important;
        overflow: visible !important;
    }
    
    .framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) .framer-text,
    .framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) h3,
    .framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) .framer-text.framer-styles-preset-1hvahxx {
        text-align: left !important;
        --framer-text-alignment: left !important;
        justify-content: flex-start !important;
        align-items: flex-start !important;
        width: 100% !important;
        margin: 0 !important;
        padding-right: 80px !important;
        padding-bottom: 20px !important;
        color: black !important;
        overflow: visible !important;
    }
}

@media (max-width: 809px) {
    .framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) {
        width: 95% !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        margin-top: 150px !important;
        margin-bottom: 150px !important;
        padding: 0 !important;
        text-align: left !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        background-color: transparent !important;
        min-height: auto !important;
        height: auto !important;
        overflow: visible !important;
    }
    
    .framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) .framer-text,
    .framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) h3,
    .framer-15iimmz[data-section-name]:not([data-section-name^="rich-text-"]) .framer-text.framer-styles-preset-1hvahxx {
        text-align: left !important;
        --framer-text-alignment: left !important;
        justify-content: flex-start !important;
        align-items: flex-start !important;
        width: 100% !important;
        margin: 0 !important;
        padding-right: 0 !important;
        padding-bottom: 20px !important;
        color: black !important;
        overflow: visible !important;
    }
}

/* Style separators */
.section-intro-separator,
.double-text-separator {
    width: 100% !important;
    height: 1px !important;
    background-color: #e0e0e0 !important;
    border: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    display: block !important;
}

/* Show separator after description in section intro */
[data-section-name^="section-intro-"] .section-intro-separator {
    margin-top: 50px !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: block !important;
}


/* Hide any duplicate separators */
[data-section-name^="section-intro-"] .section-intro-separator:not(:first-of-type) {
    display: none !important;
}

/* Separator styling - independent, no dependencies */
[data-section-name^="section-intro-"] .section-intro-separator {
    margin-top: 30px !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    display: block !important;
}

/* Remove margin-bottom from internal elements in double-text sections */
.framer-6tbga3[data-section-name^="double-text-"] .framer-6u7vlus,
.framer-6tbga3[data-section-name^="double-text-"] > *,
.framer-6tbga3[data-section-name^="double-text-"] .framer-4h3e48,
.framer-6tbga3[data-section-name^="double-text-"] .framer-4h3e48 > *,
.framer-6tbga3[data-section-name^="double-text-"] .framer-173rxxqs,
.framer-6tbga3[data-section-name^="double-text-"] .framer-173rxxqss {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Preserve line breaks and proper spacing in double-text body paragraphs */
/* Match original studio page styling for description - different from heading */
.framer-6tbga3[data-section-name^="double-text-"] .framer-173rxxqss p,
.framer-6tbga3[data-section-name^="double-text-"] .framer-styles-preset-10lrsv3 {
    white-space: normal !important;
    line-height: 1.2em !important;
    font-family: "Geist", "Geist Placeholder", sans-serif !important;
    font-size: calc(var(--framer-root-font-size, 1rem) * 1) !important;
    font-weight: 400 !important;
    color: #000000 !important;
    letter-spacing: 0em !important;
}


/* Separator above double text sections */
.double-text-separator {
    margin-top: 50px !important;
    margin-bottom: 0 !important;
}

/* Remove spacing from all direct children - GENERIC for ALL - EXCLUDE separator */
.framer-6tbga3[data-section-name] > *,
[data-section-name^="section-intro-"] > *:not(.section-intro-separator) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Remove spacing from grid wrapper containers - GENERIC for ALL */
.framer-6tbga3[data-section-name] .framer-rn54xn,
.framer-6tbga3[data-section-name] [id^="dynamic-"][id$="-desktop"],
.framer-6tbga3[data-section-name] [id^="dynamic-"][id$="-tablet"],
.framer-6tbga3[data-section-name] [id^="dynamic-"][id$="-mobile"],
.framer-6tbga3[data-section-name] [id^="dynamic-"][id$="-list"] {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Force visual order to match DOM order */
[data-section-name],
#my-slideshow[data-section-name],
[data-framer-root] > [data-section-name],
[data-framer-root] > #my-slideshow[data-section-name] {
    order: 0 !important;
    position: relative !important;
    float: none !important;
}

/* Ensure sections are block-level and flow in document order */
[data-framer-root] > [data-section-name],
[data-framer-root] > #my-slideshow[data-section-name] {
    display: block !important;
}

/* Override any parent flexbox/grid that might reorder children */
[data-framer-root] {
    display: contents !important;
}

/* Force all direct children to respect DOM order */
[data-framer-root] > * {
    order: 0 !important;
}

/* (Top spacing is on .framer-t8Kpa only – do not add margin here or spacing will differ by page) */

/* Quote Hero Animated Text Styles */
.framer-znq905 .quote-hero-animated-text {
    white-space: pre-wrap;
    word-break: break-word;
}

.framer-znq905 .quote-hero-animated-text span {
    display: inline-block;
    filter: blur(8px);
    opacity: 0;
    transition: filter 0.5s, opacity 0.5s;
}

.framer-znq905 .quote-hero-animated-text span.visible {
    filter: blur(0px);
    opacity: 1;
}

.framer-znq905 .quote-hero-img-wrapper {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.framer-znq905 .quote-hero-img-wrapper.visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
}

/* Slideshow Overlay Heading Styles (if not already in slideshow.js) */
.slideshow-overlay-heading {
    position: absolute;
    left: 3vw;
    bottom: 3vw;
    margin: 0;
    padding: 0;
    text-align: left;
    background: none;
    user-select: none;
    color: white;
    font-family: 'Geist', 'Switzer', 'Arial', sans-serif;
    font-size: clamp(24px, 4vw, 72px);
    font-weight: 400;
    line-height: 1.2;
    z-index: 2;
    white-space: normal;
}

/* Newlines in body/title always show as line breaks at every viewport size */
.slideshow-overlay-heading br {
    display: block !important;
}

.slideshow-overlay-heading .mobile-break {
    display: none;
}

@media (max-width: 900px) {
    .slideshow-overlay-heading {
        left: 4vw;
        bottom: 4vw;
        font-size: clamp(36px, 6vw, 48px) !important;
        line-height: 1.15 !important;
    }
    .slideshow-overlay-heading br {
        display: block !important;
    }
    .slideshow-overlay-heading .mobile-break {
        display: inline;
    }
}

@media (max-width: 600px) {
    .slideshow-overlay-heading {
        left: 5vw;
        bottom: 5vw;
        font-size: clamp(32px, 6vw, 44px) !important;
        line-height: 1.15 !important;
    }
    .slideshow-overlay-heading br {
        display: block !important;
    }
}

/* FINAL RULE: Ensure CTA has top spacing - maximum specificity, placed at end to override */
body [data-framer-root] [data-section-name^="cta-"],
html body [data-framer-root] > [data-section-name^="cta-"] {
    margin-top: 72px !important;
}

/* Responsive breakpoint classes for team section - hide/show based on screen size */
@media(min-width: 1200px) {
    .hidden-1msgk64 {
        display: none !important;
    }
}

@media(min-width: 810px) and (max-width: 1199px) {
    .hidden-1rd982o {
        display: none !important;
    }
}

@media(max-width: 809px) {
    .hidden-yuxs5t {
        display: none !important;
    }
}

/* Allow dividers before team grid sections - they should be visible */
/* Removed the rule that was hiding dividers before team_grid */

/* AGGRESSIVE OVERRIDE: Force team grid to full width regardless of parent container */
.framer-rxmzK [data-section-name^="team-grid-"],
.framer-rxmzK .framer-1km5kr4[data-section-name^="team-grid-"],
[data-framer-root] [data-section-name^="team-grid-"],
[data-framer-root] .framer-1km5kr4[data-section-name^="team-grid-"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

.framer-rxmzK [data-section-name^="team-grid-"] .framer-1ty6efh,
.framer-rxmzK .framer-1km5kr4[data-section-name^="team-grid-"] .framer-1ty6efh,
[data-framer-root] [data-section-name^="team-grid-"] .framer-1ty6efh,
[data-framer-root] .framer-1km5kr4[data-section-name^="team-grid-"] .framer-1ty6efh {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    box-sizing: border-box !important;
}

/* Team Grid Section Styles - EXACT copy from original studio page - FORCE FULL WIDTH */
.framer-1km5kr4[data-section-name^="team-grid-"],
[data-section-name^="team-grid-"].framer-1km5kr4 {
    align-content: center !important;
    align-items: center !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 30px !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 40px !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    will-change: var(--framer-will-change-effect-override, transform) !important;
}

/* Team Grid Container - EXACT copy from original studio page - FORCE FULL WIDTH */
.framer-1km5kr4[data-section-name^="team-grid-"] .framer-qhwfei-container,
[data-section-name^="team-grid-"] .framer-qhwfei-container {
    flex: none !important;
    height: auto !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    box-sizing: border-box !important;
}

/* Team Grid Grid - EXACT copy from original studio page - FORCE FULL WIDTH */
.framer-1km5kr4[data-section-name^="team-grid-"] .framer-1ty6efh,
[data-section-name^="team-grid-"] .framer-1ty6efh {
    display: grid !important;
    flex: none !important;
    gap: 0px 20px !important;
    grid-auto-rows: min-content !important;
    grid-template-columns: repeat(4, minmax(50px, 1fr)) !important;
    grid-template-rows: repeat(2, min-content) !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    box-sizing: border-box !important;
}

/* Responsive grid columns - EXACT copy from original studio page */
@media (min-width: 810px) and (max-width: 1199px) {
    .framer-1km5kr4[data-section-name^="team-grid-"] .framer-1ty6efh,
    [data-section-name^="team-grid-"] .framer-1ty6efh {
        grid-template-columns: repeat(3, minmax(50px, 1fr)) !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 809px) {
    .framer-1km5kr4[data-section-name^="team-grid-"],
    [data-section-name^="team-grid-"].framer-1km5kr4 {
        padding: 30px 15px !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    
    .framer-1km5kr4[data-section-name^="team-grid-"] .framer-1ty6efh,
    [data-section-name^="team-grid-"] .framer-1ty6efh {
        grid-template-columns: repeat(1, minmax(50px, 1fr)) !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* Team Member Cards - EXACT match from original studio page */
[data-section-name^="team-grid-"] .framer-1mba8ur,
[data-section-name^="team-grid-"] .framer-zgaa7j,
[data-section-name^="team-grid-"] .framer-119jcj5,
[data-section-name^="team-grid-"] .framer-kn27bf,
[data-section-name^="team-grid-"] .framer-irxdqq,
[data-section-name^="team-grid-"] .framer-r3edv2 {
    align-content: flex-start !important;
    align-items: flex-start !important;
    align-self: start !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    height: min-content !important;
    justify-content: flex-end !important;
    justify-self: start !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: relative !important;
    text-decoration: none !important;
    width: 100% !important;
}

/* Team card button overlay - EXACT match from original studio page */
[data-section-name^="team-grid-"] .framer-7ffmep,
[data-section-name^="team-grid-"] .framer-1ughjl8,
[data-section-name^="team-grid-"] .framer-h9spjb,
[data-section-name^="team-grid-"] .framer-1llvt9m,
[data-section-name^="team-grid-"] .framer-1ygz01 {
    align-content: center !important;
    align-items: center !important;
    background-color: #22242600 !important;
    bottom: 0 !important;
    cursor: pointer !important;
    display: flex !important;
    flex: none !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 0px !important;
    justify-content: flex-start !important;
    left: 0 !important;
    padding: 0 !important;
    position: absolute !important;
    top: 0 !important;
    width: 100% !important;
    z-index: 10 !important;
}

/* Team card images - EXACT match from original studio page */
[data-section-name^="team-grid-"] .framer-1hlnrw1,
[data-section-name^="team-grid-"] .framer-1ytwjoe,
[data-section-name^="team-grid-"] .framer-1ju3nda,
[data-section-name^="team-grid-"] .framer-3jq0mo,
[data-section-name^="team-grid-"] .framer-12fo9ym,
[data-section-name^="team-grid-"] .framer-8cesvb,
[data-section-name^="team-grid-"] .framer-guygrb,
[data-section-name^="team-grid-"] .framer-olvi0v,
[data-section-name^="team-grid-"] .framer-5ixeyf,
[data-section-name^="team-grid-"] .framer-18onibw,
[data-section-name^="team-grid-"] .framer-rmau2w {
    flex: none !important;
    height: 420px !important;
    overflow: hidden !important;
    position: relative !important;
    width: 100% !important;
    z-index: 1 !important;
}

/* Team card text container - EXACT match from original studio page */
[data-section-name^="team-grid-"] .framer-f53f7y,
[data-section-name^="team-grid-"] .framer-n6yibg,
[data-section-name^="team-grid-"] .framer-9lcr6o,
[data-section-name^="team-grid-"] .framer-1kxvt7q,
[data-section-name^="team-grid-"] .framer-1yh7i4c,
[data-section-name^="team-grid-"] .framer-1nbfxuy {
    align-content: flex-start !important;
    align-items: flex-start !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 5px !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 0 0 20px !important;
    position: relative !important;
    width: min-content !important;
    z-index: 1 !important;
}

/* Team card name text - EXACT match from original studio page */
[data-section-name^="team-grid-"] .framer-1iognz2,
[data-section-name^="team-grid-"] .framer-65r2w7,
[data-section-name^="team-grid-"] .framer-1irch6g,
[data-section-name^="team-grid-"] .framer-3j75o2,
[data-section-name^="team-grid-"] .framer-19rx5fg,
[data-section-name^="team-grid-"] .framer-1er84x1 {
    --framer-link-text-color: #0099ff !important;
    --framer-link-text-decoration: underline !important;
    flex: none !important;
    height: auto !important;
    position: relative !important;
    white-space: pre !important;
    width: auto !important;
}

/* Team card job title text - EXACT match from original studio page */
[data-section-name^="team-grid-"] .framer-iekeix {
    --framer-link-text-color: #0099ff !important;
    --framer-link-text-decoration: underline !important;
    flex: none !important;
    height: auto !important;
    position: relative !important;
    white-space: pre-wrap !important;
    width: 165px !important;
    word-break: break-word !important;
    word-wrap: break-word !important;
}

/* Vertical Text Section - Contact page design */
.framer-1ypbfqw[data-section-name^="vertical-text-"] {
    align-content: flex-start !important;
    align-items: flex-start !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 30px !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 100px 40px 40px !important;
    position: relative !important;
    width: 100% !important;
}

.framer-1ypbfqw[data-section-name^="vertical-text-"] .framer-stz59q {
    --border-bottom-width: 0px !important;
    --border-color: #e0e0e0 !important; /* Match work page divider color */
    --border-left-width: 0px !important;
    --border-right-width: 0px !important;
    --border-style: solid !important;
    --border-top-width: .5px !important;
    align-content: flex-start !important;
    align-items: flex-start !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 30px !important;
    height: min-content !important;
    justify-content: flex-start !important;
    overflow: visible !important;
    padding: 30px 0 !important;
    position: relative !important;
    width: 100% !important;
}

/* Vertical text: dark text on white background (contact page) */
.framer-1ypbfqw[data-section-name^="vertical-text-"] .framer-699052 .framer-text,
.framer-1ypbfqw[data-section-name^="vertical-text-"] .framer-1vd6610 .framer-text {
    color: rgb(0, 0, 0) !important;
}
.framer-1ypbfqw[data-section-name^="vertical-text-"] .framer-699052,
.framer-1ypbfqw[data-section-name^="vertical-text-"] .framer-1vd6610 {
    --framer-link-text-color: #0099ff !important;
    --framer-link-text-decoration: underline !important;
    flex: none !important;
    height: auto !important;
    max-width: 45% !important;
    position: relative !important;
    white-space: pre-wrap !important;
    width: 65% !important;
    word-break: break-word !important;
    word-wrap: break-word !important;
}

@media (min-width: 810px) and (max-width: 1199px) {
    .framer-1ypbfqw[data-section-name^="vertical-text-"] {
        padding: 100px 30px 30px !important;
    }
    .framer-1ypbfqw[data-section-name^="vertical-text-"] .framer-stz59q {
        padding: 20px 0 !important;
    }
}

@media (max-width: 809px) {
    .framer-1ypbfqw[data-section-name^="vertical-text-"] {
        padding: 100px 30px 30px !important;
    }
    .framer-1ypbfqw[data-section-name^="vertical-text-"] .framer-stz59q {
        padding: 20px 0 !important;
    }
    .framer-1ypbfqw[data-section-name^="vertical-text-"] .framer-699052,
    .framer-1ypbfqw[data-section-name^="vertical-text-"] .framer-1vd6610 {
        max-width: 100% !important;
        width: 100% !important;
    }
}

/* Company Details Section - Contact page design (opacity from .block-fade-item / .visible) */
.framer-z48mt2[data-section-name^="company-details-"] {
    align-content: flex-start !important;
    align-items: flex-start !important;
    display: flex !important;
    flex: none !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 20px !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 50px 0 !important;
    position: relative !important;
    width: 100% !important;
    visibility: visible !important;
}

.framer-z48mt2[data-section-name^="company-details-"] .framer-shrzd0 {
    align-content: flex-start !important;
    align-items: flex-start !important;
    display: flex !important;
    flex: none !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 0px !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: relative !important;
    width: 100% !important;
}

.framer-z48mt2[data-section-name^="company-details-"] .framer-hxjfi3 {
    align-content: center !important;
    align-items: center !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 40px !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: relative !important;
    width: 50% !important;
}

/* CONTACT: fix the 2x2 info grid spacing - use gap instead of margins */
.framer-z48mt2[data-section-name^="company-details-"] .framer-4yi6ag,
.framer-z48mt2[data-section-name^="company-details-"] .framer-1e0j6q8 {
    display: flex !important;
    justify-content: flex-start !important;
    gap: 32px !important;
}

/* Let items stretch to fill row in 2x2 grid */
.framer-z48mt2[data-section-name^="company-details-"] .framer-4yi6ag > div,
.framer-z48mt2[data-section-name^="company-details-"] .framer-1e0j6q8 > div,
.framer-z48mt2[data-section-name^="company-details-"] .framer-info-element-0,
.framer-z48mt2[data-section-name^="company-details-"] .framer-info-element-1,
.framer-z48mt2[data-section-name^="company-details-"] .framer-info-element-2,
.framer-z48mt2[data-section-name^="company-details-"] .framer-info-element-3 {
    flex: 1 1 0 !important; /* stretch to fill row */
    width: auto !important;
    min-width: 0 !important; /* critical for flex items */
    margin: 0 !important;
}

.framer-z48mt2[data-section-name^="company-details-"] .framer-c9dnrf {
    align-content: center !important;
    align-items: center !important;
    display: flex !important;
    flex: none !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 0px !important;
    height: min-content !important;
    justify-content: center !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: relative !important;
    width: 50% !important;
}

.framer-z48mt2[data-section-name^="company-details-"] .framer-q4pqv1-container {
    flex: none !important;
    height: 75vh !important;
    position: relative !important;
    width: 100% !important;
}

@media (min-width: 810px) and (max-width: 1199px) {
    .framer-z48mt2[data-section-name^="company-details-"] .framer-shrzd0 {
        flex-direction: column !important;
    }
}

@media (max-width: 809px) {
    .framer-z48mt2[data-section-name^="company-details-"] .framer-shrzd0 {
        flex-direction: column !important;
        gap: 40px !important;
    }
    .framer-z48mt2[data-section-name^="company-details-"] .framer-hxjfi3 {
        gap: 0px !important;
        order: 1 !important;
        width: 100% !important;
    }
    .framer-z48mt2[data-section-name^="company-details-"] .framer-4yi6ag,
    .framer-z48mt2[data-section-name^="company-details-"] .framer-1e0j6q8 {
        flex-direction: column !important;
    }
}

/* ========== ENSURE SAME TOP SPACING: home 0, other pages 100px (last in file so it wins) ========== */
body [data-framer-generated-page] .framer-t8Kpa:has(> [data-framer-root]) {
    padding-top: 100px !important;
}
body.page-home [data-framer-generated-page] .framer-t8Kpa:has(> [data-framer-root]) {
    padding-top: 0 !important;
}
body [data-framer-generated-page] [data-framer-root] > *:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
/* Studio (and any page) with vertical-text first: zero its 100px padding so gap = 100px like others */
body [data-framer-generated-page] [data-framer-root] > *:first-child.framer-1ypbfqw,
body [data-framer-generated-page] [data-framer-root] > *:first-child .framer-1ypbfqw[data-section-name^="vertical-text-"] {
    padding-top: 0 !important;
}
/* Work page: first child is hidden static section; zero first visible (projects-and-filters) so gap = 100px */
body [data-framer-generated-page] [data-framer-root] > [data-section-name="projects-and-filters-static"] + [data-section-name^="projects-and-filters-"] {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
body [data-framer-generated-page] [data-framer-root] > [data-section-name="projects-and-filters-static"] + [data-section-name^="projects-and-filters-"] > * {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
