/**
 * Base structure for the in-house widgets (city-card, link-card).
 * Every value here is also exposed as a widget control, so the generated
 * per-element CSS (higher specificity) overrides these defaults.
 */

/* -------------------------------------------------- City Card */

.elementor-widget-city-card .iqit-city-card {
    position: relative;
    display: block;
    width: 100%;
    min-height: 250px;
    overflow: hidden;
    border-radius: 10px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

.elementor-widget-city-card .iqit-city-card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    border-radius: inherit;
    background-image: linear-gradient(to top, rgba(0, 0, 0, .54) 0%, rgba(255, 255, 255, 0) 46%);
}

.elementor-widget-city-card .iqit-city-card-title {
    position: absolute;
    bottom: 10px;
    left: 20px;
    z-index: 2;
    margin: 0;
    color: #fff;
    font-size: 2rem;
}

.elementor-widget-city-card .iqit-city-card-arrow {
    position: absolute;
    right: 15px;
    bottom: 17px;
    z-index: 2;
    width: 30px;
    height: 30px;
    max-width: none;
    object-fit: contain;
}

.elementor-widget-city-card a.iqit-city-card:hover .iqit-city-card-title,
.elementor-widget-city-card a.iqit-city-card:focus .iqit-city-card-title {
    text-decoration: none;
}

/* -------------------------------------------------- Link Card */

.elementor-widget-link-card .iqit-link-card {
    position: relative;
    display: block;
    width: 100%;
    padding: 15px;
    border-radius: 10px;
    background-color: #f6f6f5;
    color: #000;
    text-decoration: none;
}

.elementor-widget-link-card a.iqit-link-card:hover,
.elementor-widget-link-card a.iqit-link-card:focus {
    color: #000;
    text-decoration: none;
}

.elementor-widget-link-card .iqit-link-card-title {
    margin: 0 0 8px 0;
}

.elementor-widget-link-card .iqit-link-card-subtitle {
    margin: 0;
}

.elementor-widget-link-card .iqit-link-card-arrow {
    position: absolute;
    right: 15px;
    bottom: 15px;
    width: 30px;
    height: 30px;
    max-width: none;
    object-fit: contain;
}

/* -------------------------------------------------- Category Card (Figma 2957:10038) */

.elementor-widget-category-card .iqit-category-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    width: 100%;
    min-height: 251px;
    padding: 0 16px 16px 16px;
    overflow: hidden;
    border-radius: 8px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    color: #fff;
    text-decoration: none;
}

.elementor-widget-category-card a.iqit-category-card:hover,
.elementor-widget-category-card a.iqit-category-card:focus {
    color: #fff;
    text-decoration: none;
}

.elementor-widget-category-card .iqit-category-card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    border-radius: inherit;
    background-image:
        linear-gradient(rgba(82, 0, 189, .04) 43%, rgba(49, 0, 112, .8) 100%),
        linear-gradient(90deg, rgba(0, 0, 0, .3) 0%, rgba(0, 0, 0, .3) 100%);
}

.elementor-widget-category-card .iqit-category-card-content {
    position: relative;
    z-index: 2;
    width: 100%;
    text-align: center;
    word-break: break-word;
}

.elementor-widget-category-card .iqit-category-card-title {
    margin: 0 0 4px 0;
    color: #fff;
    font-size: 20px;
    font-weight: 600;
    line-height: normal;
}

.elementor-widget-category-card .iqit-category-card-subtitle {
    font-size: 16px;
    font-weight: 400;
    line-height: normal;
}

.elementor-widget-category-card .iqit-category-card-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
}

.elementor-widget-category-card .iqit-category-card-cta-label {
    font-size: 16px;
    font-weight: 600;
}

.elementor-widget-category-card .iqit-category-card-arrow {
    flex: 0 0 auto;
    width: 28.8px;
    height: 28.8px;
    max-width: none;
    object-fit: contain;
}

/* -------------------------------------------------- Feature Card (Figma 2957:9586) */

.elementor-widget-feature-card .iqit-feature-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    width: 100%;
    min-height: 306px;
    padding: 32px;
    overflow: hidden;
    border: 1px solid #e7e7e6;
    border-radius: 16px;
    background-color: #fff;
    box-shadow: 0 0 28.7px 0 rgba(0, 0, 0, .05);
}

/* Decoration: two blurred halos and a giant ghost icon, all tinted by the
   accent color through the widget controls. */

.elementor-widget-feature-card .iqit-feature-card-halo {
    position: absolute;
    z-index: 0;
    border-radius: 50%;
    opacity: .35;
    -webkit-filter: blur(30px);
    filter: blur(30px);
    background-image: radial-gradient(#1ac6ac 0%, rgba(255, 255, 255, 0) 70%);
    pointer-events: none;
}

.elementor-widget-feature-card .iqit-feature-card-halo-1 {
    left: -30px;
    top: -70px;
    width: 187px;
    height: 176px;
}

.elementor-widget-feature-card .iqit-feature-card-halo-2 {
    left: 135px;
    top: -67px;
    width: 233px;
    height: 225px;
}

.elementor-widget-feature-card .iqit-feature-card-ghost {
    position: absolute;
    z-index: 0;
    left: -100px;
    top: -120px;
    color: #1ac6ac;
    font-size: 390px;
    line-height: 1;
    opacity: .08;
    pointer-events: none;
}

.elementor-widget-feature-card .iqit-feature-card-icon {
    position: relative;
    z-index: 1;
    color: #1ac6ac;
    font-size: 50.4px;
    line-height: 1;
}

.elementor-widget-feature-card .iqit-feature-card-content {
    position: relative;
    z-index: 1;
    width: 100%;
    word-break: break-word;
}

.elementor-widget-feature-card .iqit-feature-card-title {
    margin: 0;
    color: #3d3d3c;
    font-size: 24px;
    font-weight: 600;
    line-height: normal;
}

.elementor-widget-feature-card .iqit-feature-card-subtitle {
    color: #3d3d3c;
    font-size: 16px;
    font-weight: 400;
    line-height: normal;
}

/* -------------------------------------------------- Customer review (Figma 2999:904) */

.elementor-widget-customer-review .iqit-review {
    padding: 24px 32px;
    border-radius: 16px;
    background-color: rgba(255, 255, 255, .98);
    -webkit-backdrop-filter: blur(18.6px);
    backdrop-filter: blur(18.6px);
}

.elementor-widget-customer-review .iqit-review-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.elementor-widget-customer-review .iqit-review-title {
    margin: 0;
    color: #3d3d3d;
    font-size: 20px;
    font-weight: 600;
    line-height: normal;
}

.elementor-widget-customer-review .iqit-review-stars {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    color: #ffd900;
    font-size: 24.2px;
    line-height: 1;
}

.elementor-widget-customer-review .iqit-review-stars .material-icons {
    font-size: inherit;
    line-height: 1;
}

.elementor-widget-customer-review .iqit-review-body {
    margin-top: 16px;
    color: #3d3d3d;
    font-size: 16px;
    font-weight: 400;
    line-height: normal;
    word-break: break-word;
}

.elementor-widget-customer-review .iqit-review-body p {
    margin: 0;
}

.elementor-widget-customer-review .iqit-review-body p + p {
    margin-top: 8px;
}

.elementor-widget-customer-review .iqit-review-author {
    margin-top: 16px;
    font-size: 16px;
    line-height: normal;
}

.elementor-widget-customer-review .iqit-review-author-name {
    color: #3d3d3c;
    font-weight: 600;
}

.elementor-widget-customer-review .iqit-review-author-role {
    color: #4f504e;
    font-weight: 400;
}

/* -------------------------------------------------- Logo grid (Figma 2999:896) */

.elementor-widget-logo-grid .iqit-logo-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 24px;
    row-gap: 24px;
    align-items: center;
}

.elementor-widget-logo-grid .iqit-logo-grid-item {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 60px;
}

.elementor-widget-logo-grid .iqit-logo-grid-item img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* -------------------------------------------------- Devices API "show more" card */

.aitd-more-card {
    display: flex;
    flex-direction: column;
    gap: 24px;
    height: 100%;
    padding: 24px;
    border: 1px solid #faa8ff;
    border-radius: 8px;
    background-color: #fde7ff;
    color: #4f504e;
    text-decoration: none;
}

a.aitd-more-card:hover,
a.aitd-more-card:focus {
    border-color: #c618c5;
    color: #4f504e;
    text-decoration: none;
}

.aitd-more-content {
    display: flex;
    flex-direction: column;
    gap: 8px;
    word-break: break-word;
}

.aitd-more-title {
    display: block;
    color: #3d3d3c;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.2;
}

.aitd-more-text {
    display: block;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.35;
}

.aitd-more-text strong,
.aitd-more-text b {
    font-weight: 600;
}

.aitd-more-note {
    display: block;
    color: #d81fda;
    font-size: 16px;
    font-style: italic;
    line-height: 1.35;
}

.aitd-more-button {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: auto;
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 8px;
    background-color: #fff;
    color: #791676;
    font-size: 16px;
    font-weight: 600;
    text-align: center;
}

/* Illustration: layers keep the Figma positions, expressed in % so the whole
   group scales down when the card is narrower than its 182px design width. */

.aitd-more-illustration {
    position: relative;
    display: block;
    width: 100%;
    max-width: 182px;
    height: 58px;
}

@supports (aspect-ratio: 1 / 1) {
    .aitd-more-illustration {
        height: auto;
        aspect-ratio: 181.996 / 57.687;
    }
}

.aitd-more-illustration > img,
.aitd-more-illustration > .aitd-more-illustration-screen {
    position: absolute;
    display: block;
    max-width: none;
}

.aitd-more-illustration-video {
    z-index: 1;
    left: 79.36%;
    top: 17.46%;
    width: 20.64%;
    height: 65.1%;
}

.aitd-more-illustration-shop {
    z-index: 2;
    left: 0;
    top: 19.55%;
    width: 19.3%;
    height: 60.9%;
}

.aitd-more-illustration-poster {
    z-index: 3;
    left: 15.14%;
    top: 10.63%;
    width: 25.79%;
    height: 78.75%;
}

.aitd-more-illustration-totem {
    z-index: 4;
    left: 65.22%;
    top: 3.5%;
    width: 18.31%;
    height: 93.01%;
}

.aitd-more-illustration-screen {
    z-index: 5;
    left: 36.78%;
    top: 0;
    width: 32.6%;
    height: 100%;
}

.aitd-more-illustration-screen > span {
    position: absolute;
    display: block;
}

.aitd-more-screen-body {
    left: 0;
    top: 0;
    box-sizing: border-box;
    width: 100%;
    height: 71.43%;
    border: 3px solid #c618c5;
    border-bottom-width: 7px;
    border-radius: 5px;
    background-color: #faa8ff;
}

.aitd-more-screen-stand {
    left: 38.88%;
    top: 50%;
    width: 22.22%;
    height: 50%;
    background-color: #c618c5;
}

.aitd-more-screen-base {
    left: 34.72%;
    top: 95.71%;
    width: 30.55%;
    height: 4.28%;
    background-color: #c618c5;
}

.aitd-more-screen-outline {
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
}

/* Tile returned by the devices API: `.aitd-embed` is the documented width hook,
   the rest of the markup is styled by the stylesheet the API sends back. */

.aitd-embed-item > .aitd-embed {
    display: block;
    width: 100%;
}
