/**
 * Thingstian Custom Styles
 * 
 * Custom stylesheet for the Thingstian website.
 * Use this file for all Thingstian-specific overrides and additions.
 *
 * Color Palette Reference:
 * --------------------------------------------------
 * Primary Blue:      #004EE0  (buttons, accents, CTAs)
 * Primary Hover:     #003DB1  (button hover states)
 * Dark Base:         #1D1E1C  (text, dark sections, replaces old navy)
 * Dark Navy:         #0D1D4C  (header/footer dark backgrounds)
 * Light Blue/Grey:   #EDF1F3  (section backgrounds)
 * Neutral Light:     #F5F5F5  (alternate light backgrounds)
 * Neutral Warm:      #E5E3DF  (warm section backgrounds)
 * Neutral Mid:       #EFEFEF  (borders, subtle backgrounds)
 * Text Primary:      #1D1E1C  
 * Text Secondary:    #757575  
 * Text Tertiary:     #565656  
 * Link Accent:       #1A73E8  (lighter blue, links, borders)
 * White:             #FFFFFF
 * --------------------------------------------------
 */

/* ==========================================================================
   Padding Utilities (ACF toggle per section)
   ========================================================================== */

.no-padding-top {
    padding-top: 0 !important;
}

.no-padding-bottom {
    padding-bottom: 0 !important;
}

/* ==========================================================================
   What we Offer Section
   ========================================================================== */
.offer-section {
    background-color: #EDF1F3;
    padding: 7.5rem 0;
}

.offer-section .thingsdata-container {
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

/* Section heading */
.offer-section__header {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: center;
    text-align: center;
}

.offer-section__title {
    color: #1D1E1C;
    font-family: 'DM Sans', sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
    text-align: center;
}

.offer-section__subtitle {
    color: #1D1E1C;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
}

/* Footer text */
.offer-section__footer-text {
    color: #1D1E1C;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.2;
    margin: 0;
    text-align: center;
}

/* Card grid */
.offer-section__grid {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.offer-section__row {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1.5rem;
}

/* Highlight card (blue) */
.offer-card--highlight {
    background-color: #004EE0;
    border-radius: 0.625rem;
    border: 2px solid rgba(255, 255, 255, 0.2);
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    min-height: 13.75rem;
}

.offer-card--highlight__title {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
}

/* Standard card (white) */
.offer-card {
    background-color: #FFFFFF;
    border-radius: 0.625rem;
    border: 2px solid rgba(255, 255, 255, 0.2);
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    min-height: 13.75rem;
}

.offer-card__icon {
    width: 2.5rem;
    height: 2.5rem;
    flex-shrink: 0;
}

.offer-card__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.offer-card__text {
    color: #1D1E1C;
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.4;
    margin: 0;
}

/* --- Responsive --- */
@media (max-width:1024px) {
    .offer-section {
        padding: 6rem 0;
    }

    .offer-section .thingsdata-container {
        gap: 3rem;
    }

    .offer-section__title {
        font-size: 2rem;
    }

    .offer-section__row {
        grid-template-columns: repeat(3, 1fr);
    }

    .offer-card--highlight {
        grid-column: span 1;
    }

}

@media (max-width:768px) {
    .offer-section {
        padding: 4rem 0;
    }

    .offer-section__title {
        font-size: 1.75rem;
    }

    .offer-section__row {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media (max-width:480px) {
    .offer-section__row {
        grid-template-columns: 1fr;
    }

    .offer-card, .offer-card--highlight {
        min-height: auto;
    }

}

/* ==========================================================================
   Wave Divider
   ========================================================================== */
.wave-divider {
    display: none;
}

@media (min-width:1024px) {
    .wave-divider {
        display: block;
        position: relative;
        margin-top: -6.1vw;
        margin-bottom: -2px;
        z-index: 2;
        line-height: 0;
        pointer-events: none;
    }

    .wave-divider__fill {
        display: block;
        width: 100%;
        height: auto;
        margin-bottom: -1px;
    }

    .wave-divider__stroke {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: auto;
        z-index: 3;
    }

    .wave-divider--flipped {
        transform: scaleY(-1);
        margin-top: 0;
        margin-bottom: -6.1vw;
    }

    .wave-divider + section {
        padding-top: 0 !important;
    }

}

/* ==========================================================================
   Content Block (About / Text + Image)
   ========================================================================== */
.content-block {
    padding: 7.5rem 0;
}

.content-block__card {
    border-radius: 0.625rem;
    border: 2px solid rgba(255, 255, 255, 0.2);
    padding: 3rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
}

.content-block__card--img-right {
    flex-direction: row;
}

.content-block__card--img-left {
    flex-direction: row;
}

.content-block__image {
    flex-shrink: 0;
    width: 42%;
    align-self: stretch;
}

.content-block__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0.625rem;
}

.content-block__text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: 2.5rem 0;
}

.content-block__title {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
}

.content-block__description {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.5;
}

.content-block__description p {
    margin: 0 0 1.5rem 0;
}

.content-block__description p:last-child {
    margin-bottom: 0;
}

/* --- Open variant (no card, light bg) --- */
.content-block__open {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8.875rem;
}

.content-block__open .content-block__image {
    flex-shrink: 0;
    width: 35rem;
    height: 32.8rem;
}

.content-block__open .content-block__text {
    padding: 0;
}

.content-block--open .content-block__title {
    color: #1D1E1C;
}

.content-block--open .content-block__description {
    color: #1D1E1C;
}

/* Wysiwyg content styling (both variants) */
.content-block__description ul, .content-block__description ol {
    margin: 0.75rem 0;
    padding: 0 0 0 1.25rem;
}

.content-block__description ul:first-child, .content-block__description ol:first-child {
    margin-top: 0;
}

.content-block__description ul:last-child, .content-block__description ol:last-child {
    margin-bottom: 0;
}

.content-block__description p + ul, .content-block__description p + ol, .content-block__description ul + p, .content-block__description ol + p {
    margin-top: 1.5rem;
}

.content-block__description ul {
    list-style: disc;
}

.content-block__description li {
    line-height: 2.1;
}

.content-block__description strong, .content-block__description b {
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.4;
}

/* --- Responsive --- */
@media (max-width:1024px) {
    .content-block {
        padding: 5rem 0;
    }

    .content-block__card {
        flex-direction: column !important;
        padding: 2rem;
    }

    .content-block__open {
        flex-direction: column !important;
        gap: 3rem;
    }

    .content-block__image {
        width: 100%;
        max-height: 20rem;
    }

    .content-block__open .content-block__image {
        width: 100%;
        height: auto;
        max-height: 20rem;
    }

    .content-block__text {
        padding: 1rem 0;
    }

    .content-block__title {
        font-size: 2rem;
    }

}

@media (max-width:480px) {
    .content-block__card {
        padding: 1.5rem;
        gap: 2rem;
    }

    .content-block__title {
        font-size: 1.75rem;
    }

    .content-block__description {
        font-size: 1rem;
    }

}

/* ==========================================================================
   Comparison Table
   ========================================================================== */
.comparison-table {
    padding: 7.5rem 0;
}

.comparison-table .thingsdata-container {
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

.comparison-table__title {
    color: #1D1E1C;
    font-family: 'DM Sans', sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
    text-align: center;
}

.comparison-table__content {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Headers row */
.comparison-table__headers {
    display: flex;
    flex-direction: row;
    gap: 1rem;
}

.comparison-table__header {
    flex: 1;
    background-color: #004EE0;
    border-radius: 0.625rem;
    border: 2px solid rgba(255, 255, 255, 0.2);
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.comparison-table__header span {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
}

/* Rows area */
.comparison-table__rows {
    display: flex;
    flex-direction: row;
    gap: 1rem;
}

.comparison-table__column {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.comparison-table__cell {
    background-color: #FFFFFF;
    border-radius: 0.625rem;
    padding: 1rem 1.5rem;
    min-height: 3.75rem;
    display: flex;
    align-items: center;
}

.comparison-table__cell ul {
    margin: 0;
    padding: 0 0 0 1.25rem;
    list-style: disc;
}

.comparison-table__cell li {
    color: #1D1E1C;
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.4;
}

/* --- Responsive --- */
@media (max-width:768px) {
    .comparison-table {
        padding: 4rem 0;
    }

    .comparison-table .thingsdata-container {
        gap: 2rem;
    }

    .comparison-table__title {
        font-size: 1.75rem;
    }

    /* Use CSS grid to reorder: header1, column1, header2, column2 */
    .comparison-table__content {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }

    .comparison-table__headers {
        display: contents;
    }

    .comparison-table__rows {
        display: contents;
    }

    .comparison-table__header:first-child {
        order: 1;
    }

    .comparison-table__column:first-child {
        order: 2;
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
        margin-bottom: 1rem;
    }

    .comparison-table__header:last-child {
        order: 3;
    }

    .comparison-table__column:last-child {
        order: 4;
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }

    .comparison-table__header span {
        font-size: 1rem;
    }

}

/* ==========================================================================
   Use Cases Carousel
   ========================================================================== */
.use-cases {
    padding: 7.5rem 0;
}

.use-cases .thingsdata-container {
    display: flex;
    flex-direction: column;
    gap: 5rem;
}

.use-cases__header {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: center;
    text-align: center;
}

.use-cases__title {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
}

.use-cases__subtitle {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
}

/* Carousel cards */
.use-cases__carousel {
    position: relative;
}

.use-cases__card {
    position: relative;
    width: 24.25rem;
    height: 18.5rem;
    border-radius: 0.625rem;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #1D1E1C;
    margin-right: 1rem;
    display: block;
    overflow: hidden;
    text-decoration: none;
}

.use-cases__card:hover .use-cases__card-title {
    text-decoration: underline;
}

.use-cases__card-gradient {
    position: absolute;
    inset: 0;
    border-radius: 0.625rem;
    background: linear-gradient(180deg, rgba(31, 42, 78, 0) 0%, rgba(31, 42, 78, 1) 100%);
    pointer-events: none;
}

.use-cases__card-title {
    position: absolute;
    bottom: 2rem;
    left: 1.5rem;
    right: 1.5rem;
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
    z-index: 1;
}

/* Hide flickity built-in controls */
.use-cases__carousel .flickity-page-dots, .use-cases__carousel .flickity-prev-next-button {
    display: none;
}

/* Custom nav container: dots left, arrows right */
.use-cases__nav-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

/* Custom dots */
.use-cases__dots {
    display: flex;
    flex-direction: row;
    gap: 1.1rem;
    align-items: center;
}

.use-cases__dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    border: 2px solid #FFFFFF;
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: border-width 0.2s ease;
}

.use-cases__dot.is-active {
    border-width: 4px;
}

/* Custom nav arrows */
.use-cases__nav {
    display: flex;
    flex-direction: row;
    gap: 0.55rem;
    align-items: center;
}

.use-cases__nav-btn {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s ease;
    padding: 0;
    border: none;
    outline: none;
}

.use-cases__nav-btn--prev {
    background: transparent;
    border: 1px solid #FFFFFF;
}

.use-cases__nav-btn--prev:hover {
    background: rgba(255, 255, 255, 0.15);
}

.use-cases__nav-btn--next {
    background: #FFFFFF;
}

.use-cases__nav-btn--next:hover {
    background: rgba(255, 255, 255, 0.85);
}

.use-cases__nav-btn svg {
    width: 1rem;
    height: 0.75rem;
}

/* Footer */
.use-cases__footer {
    text-align: center;
}

.use-cases__footer-text {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.125rem;
    font-weight: 400;
    line-height: 1.2;
    margin: 0;
}

/* --- Responsive --- */
@media (max-width:768px) {
    .use-cases {
        padding: 4rem 0;
    }

    .use-cases .thingsdata-container {
        gap: 3rem;
    }

    .use-cases__title {
        font-size: 1.75rem;
    }

    .use-cases__card {
        width: 18rem;
        height: 14rem;
    }

}

/* ==========================================================================
   Partners
   ========================================================================== */
.partners {
    padding: 7.5rem 0;
}

.partners .thingsdata-container {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}

.partners__header {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: center;
    text-align: center;
}

.partners__title {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
}

.partners__subtitle {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    margin: 0;
}

.partners__cards {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}

.partners__card {
    border-radius: 0.625rem;
    border: 2px solid rgba(255, 255, 255, 0.2);
    display: flex;
    flex-direction: row;
    align-items: center;
    overflow: hidden;
}

.partners__card-image {
    flex-shrink: 0;
    width: 27.125rem;
    align-self: stretch;
}

.partners__card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.partners__card-content {
    padding: 2rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    flex: 1;
}

.partners__card-text {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.partners__card-title {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}

.partners__card-description {
    color: #FFFFFF;
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.6;
}

.partners__card-description p {
    margin: 0 0 1rem 0;
}

.partners__card-description p:last-child {
    margin-bottom: 0;
}

.partners__card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #FFFFFF;
    color: #1D1E1C;
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.6;
    text-decoration: none;
    padding: 0.875rem 2.075rem;
    border-radius: 1.875rem;
    border: 2px solid #FFFFFF;
    align-self: flex-start;
    transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}

.partners__card-btn:hover {
    background-color: transparent;
    border-color: #FFFFFF;
    color: #FFFFFF;
    text-decoration: none;
}

/* --- Responsive --- */
@media (max-width:1024px) {
    .partners__card {
        flex-direction: column;
    }

    .partners__card-image {
        width: 100%;
        max-height: 16rem;
    }

}

@media (max-width:768px) {
    .partners {
        padding: 4rem 0;
    }

    .partners .thingsdata-container {
        gap: 2rem;
    }

    .partners__title {
        font-size: 1.75rem;
    }

    .partners__card-content {
        padding: 1.5rem;
        gap: 0.938rem;
    }

    body .site .icon-col, body .site .contact-col {
        padding: 1.5rem;
    }

    .site-main .cpage-section .icon-container .icon-col a {
        word-wrap: break-word;
    }

    body .breadcrumbs {
        margin-bottom: 2rem;
    }

}

/* Partners card: button dark bg variant (Figma) */
body .site .partners__card-btn--dark {
    background-color: #1D1E1C;
    color: #FFFFFF;
    padding: 0.905rem 2.065rem;
    border-radius: 1.875rem;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.6;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    border: 2px solid #1D1E1C;
    transition: background-color 0.3s, border-color 0.3s, color 0.3s;
    pointer-events: initial;
    margin-top: 2rem;
}

body .site .partners__card-btn--dark:hover {
    background-color: transparent;
    border-color: #1D1E1C;
    color: #1D1E1C;
}

@media (max-width:768px) {
    body .site .partners__card-btn--dark {
        margin-top: 0.938rem;
    }

}

body .icon-col, body .contact-col {
    padding: 2.5rem;
}

body .icon-col p, body .contact-col p {
    font-size: 1rem;
}

.site-main .partners__cards .more-link {
    display: none;
}

body .nav-menu>li.menu-item-has-children.trp-language-switcher-container li>a {
    padding: 0.5rem 1rem;
}

.trp-menu-ls-label .trp-flag-image {
    min-width: 1rem;
}

body .col-blue {
    background-color: #004EE0;
}

.col-blue h3 span {
    color: #1D1E1C;
}

/* Zilver */
.offer-card__icon img {
  filter: brightness(0) saturate(100%) invert(75%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(95%) contrast(90%);
}

body .trp-language-switcher-container {

}

.offer-section__subtitle > p:first-child {
    margin-top: 0;
}

.offer-section__subtitle > p:last-child {
    margin-bottom: 0;
}

/* ==========================================================================
   Offer Section: Bold Toggles
   ========================================================================== */
.offer-card__text--bold {
    font-weight: 700;
}

.offer-section__subtitle--normal {
    font-weight: 400;
}

/* ==========================================================================
   Content Block: CTA Button
   ========================================================================== */
.content-block__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'DM Sans', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.6;
    text-decoration: none;
    padding: 0.875rem 2.075rem;
    border-radius: 1.875rem;
    align-self: flex-start;
    transition: background-color 0.3s, border-color 0.3s, color 0.3s;
    margin-top: 0.5rem;
}

/* Light variant (white button, dark text — for dark card backgrounds) */
.content-block__cta--light {
    background-color: #FFFFFF;
    color: #1D1E1C;
    border: 2px solid #FFFFFF;
}

.content-block__cta--light:hover {
    background-color: transparent;
    border-color: #FFFFFF;
    color: #FFFFFF;
    text-decoration: none;
}

/* Dark variant (dark button, white text — for light card backgrounds) */
.content-block__cta--dark {
    background-color: #1D1E1C;
    color: #FFFFFF;
    border: 2px solid #1D1E1C;
}

.content-block__cta--dark:hover {
    background-color: transparent;
    border-color: #1D1E1C;
    color: #1D1E1C;
    text-decoration: none;
}

/* Content Block: Text color override for description paragraphs */
.content-block__description[style*="color"] p,
.content-block__description[style*="color"] li,
.content-block__description[style*="color"] strong,
.content-block__description[style*="color"] b {
    color: inherit;
}

/* Statistics: close subpixel gap between sections */
body.custom-template .site .home-stats {
    margin-bottom: -2px;
}