/*!
 * AJISOFT Design 1.0.0
 * Globální styly nového responzivního designu (Elementor).
 * Proměnné jsou deklarované na :root, aby platily na všech stránkách.
 */

:root{
    --ajs-navy: #001C38;
    --ajs-navy-2: #0A2C4D;
    --ajs-mist: #BDCDDB;
    --ajs-paper: #F4F8FB;
    --ajs-cyan: #45D7DD;
    --ajs-white: #FFFFFF;
    --ajs-text: #12283D;
    --ajs-text-soft: #4C6076;
    --ajs-line: rgba(0,28,56,.12);
    --ajs-line-dark: rgba(255,255,255,.16);

    --ajs-f-display: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
    --ajs-f-text: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* ---------- základní typografie ---------- */
body.ajs-design{
    font-family: var(--ajs-f-text);
    color: var(--ajs-text);
    background: var(--ajs-paper);
    font-size: clamp(1rem, .97rem + .15vw, 1.0625rem);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
body.ajs-design h1,
body.ajs-design h2,
body.ajs-design h3,
body.ajs-design h4{
    font-family: var(--ajs-f-display);
    line-height: 1.1;
    letter-spacing: -.015em;
    text-wrap: balance;
}
body.ajs-design a:focus-visible,
body.ajs-design button:focus-visible{
    outline: 3px solid var(--ajs-cyan);
    outline-offset: 3px;
}

/* ---------- HERO ---------- */
.ajs-hero{
    position: relative;
    overflow: hidden;
}
.ajs-hero::after{
    /* vedení datových tras – odkaz na strukturovanou kabeláž */
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .5;
    z-index: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' fill='none' stroke='%2345D7DD' stroke-width='1' stroke-opacity='.35'%3E%3Cpath d='M-20 60h160l60 60h240M-20 180h100l60-60h280M-20 300h200l60 60h200M60 -20v120l60 60v300M240 -20v200l60 60v180M360 -20v80l60 60'/%3E%3Ccircle cx='140' cy='60' r='3' fill='%2345D7DD' fill-opacity='.5' stroke='none'/%3E%3Ccircle cx='200' cy='120' r='3' fill='%2345D7DD' fill-opacity='.5' stroke='none'/%3E%3Ccircle cx='180' cy='300' r='3' fill='%2345D7DD' fill-opacity='.5' stroke='none'/%3E%3Ccircle cx='300' cy='180' r='3' fill='%2345D7DD' fill-opacity='.5' stroke='none'/%3E%3C/svg%3E");
    -webkit-mask-image: linear-gradient(105deg, transparent 30%, #000 100%);
    mask-image: linear-gradient(105deg, transparent 30%, #000 100%);
}
.ajs-hero > .elementor-container{
    position: relative;
    z-index: 1;
}
.ajs-hero .ajs-hero-title{
    font-size: clamp(2.1rem, 1.35rem + 3.4vw, 4rem);
    font-weight: 700;
    max-width: 16ch;
}
.ajs-hero .ajs-hero-lede{
    color: var(--ajs-mist);
    font-size: clamp(1.0625rem, 1rem + .3vw, 1.25rem);
    max-width: 52ch;
}
.ajs-hero-figure img{
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: 4px;
    border-left: 4px solid var(--ajs-cyan);
}
@media (min-width: 901px){
    .ajs-hero-figure img{ aspect-ratio: 4 / 3; }
}

/* ---------- tlačítka ---------- */
.ajs-btn .elementor-button{
    border-radius: 999px;
    font-family: var(--ajs-f-text);
    font-weight: 600;
    padding: .85rem 1.5rem;
    transition: background-color .18s, color .18s, border-color .18s;
}
.ajs-btn-primary .elementor-button{
    background: var(--ajs-cyan);
    color: var(--ajs-navy);
}
.ajs-btn-primary .elementor-button:hover,
.ajs-btn-primary .elementor-button:focus{
    background: var(--ajs-white);
    color: var(--ajs-navy);
}
.ajs-btn-ghost .elementor-button{
    background: transparent;
    color: var(--ajs-white);
    border: 1.5px solid var(--ajs-line-dark);
}
.ajs-btn-ghost .elementor-button:hover,
.ajs-btn-ghost .elementor-button:focus{
    border-color: var(--ajs-cyan);
    color: var(--ajs-cyan);
    background: transparent;
}
.ajs-btn-dark .elementor-button{
    background: var(--ajs-navy);
    color: var(--ajs-white);
}
.ajs-btn-dark .elementor-button:hover,
.ajs-btn-dark .elementor-button:focus{
    background: var(--ajs-navy-2);
    color: var(--ajs-white);
}

/* ---------- hlavičky sekcí ---------- */
.ajs-section-title .elementor-heading-title{
    font-size: clamp(1.6rem, 1.25rem + 1.6vw, 2.5rem);
    font-weight: 600;
}
.ajs-section-lede{
    color: var(--ajs-text-soft);
    font-size: clamp(1rem, .97rem + .25vw, 1.125rem);
    max-width: 60ch;
}

/* ---------- rejstřík služeb ---------- */
.ajs-services .ajs-service{
    border-bottom: 1px solid var(--ajs-line);
    padding-block: 1.75rem;
}
.ajs-services .ajs-service:first-of-type{
    border-top: 1px solid var(--ajs-line);
}
.ajs-service .elementor-image-box-wrapper{
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 1rem 1.5rem;
    align-items: start;
    text-align: left;
}
.ajs-service .elementor-image-box-img{
    width: 56px !important;
    height: 56px;
    margin: 0 !important;
    background: var(--ajs-white);
    border: 1px solid var(--ajs-line);
    border-radius: 6px;
    display: grid;
    place-items: center;
    padding: .7rem;
}
.ajs-service .elementor-image-box-img img{
    width: 100%;
    height: auto;
}
.ajs-service .elementor-image-box-content{
    text-align: left;
}
.ajs-service .elementor-image-box-title{
    font-size: clamp(1.15rem, 1.05rem + .45vw, 1.4rem);
    font-weight: 600;
    margin-bottom: .5rem;
    color: var(--ajs-navy);
}
.ajs-service .elementor-image-box-description{
    color: var(--ajs-text-soft);
    max-width: 62ch;
}
.ajs-more{
    display: inline-block;
    margin-top: .85rem;
    font-weight: 600;
    font-size: .95rem;
    color: var(--ajs-navy);
    text-decoration: none;
    border-bottom: 2px solid var(--ajs-cyan);
    padding-bottom: 2px;
}
.ajs-more:hover,
.ajs-more:focus{
    color: var(--ajs-navy-2);
    border-bottom-color: var(--ajs-navy);
}
@media (min-width: 821px){
    .ajs-service .elementor-image-box-wrapper{
        /* Pevné stopy, ne minmax — jinak si každý řádek spočítá vlastní
           šířku podle délky svého nadpisu a sloupce se rozjedou do schodů. */
        grid-template-columns: 56px 260px minmax(0, 1fr);
        column-gap: 2.5rem;
        row-gap: 0;
        align-items: start;
    }
    .ajs-service .elementor-image-box-content{
        display: contents;
    }
    .ajs-service .elementor-image-box-title{
        margin: 0;
        /* Vyrovnání prvního účaří nadpisu s prvním řádkem textu vpravo. */
        padding-top: .15rem;
    }
    .ajs-service .elementor-image-box-description{
        margin: 0;
    }
}
@media (min-width: 1100px){
    .ajs-service .elementor-image-box-wrapper{
        grid-template-columns: 56px 300px minmax(0, 1fr);
    }
}

/* ---------- podpora a SLA ---------- */
.ajs-support .ajs-section-title .elementor-heading-title{ color: var(--ajs-white); }
.ajs-support .ajs-section-lede{ color: var(--ajs-mist); max-width: 48ch; }
.ajs-support-figure img{
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: 4px;
}
@media (min-width: 901px){
    .ajs-support-figure img{ aspect-ratio: 4 / 3; }
}

/* ---------- CTA ---------- */
.ajs-cta .elementor-heading-title{
    font-size: clamp(1.4rem, 1.15rem + 1.2vw, 2.1rem);
    font-weight: 600;
    color: var(--ajs-navy);
}
.ajs-cta .ajs-section-lede{ color: var(--ajs-navy-2); }

/* ---------- partneři ---------- */
.ajs-partners .ajs-partners-title .elementor-heading-title{
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--ajs-text-soft);
}
/* ---------- reklamní pozice WEDOS ---------- */
.ajs-ad{
    display: flex;
    align-items: center;
    justify-content: center;
}
.ajs-ad .elementor-widget-html{
    width: 100%;
    text-align: center;
}
.ajs-ad iframe,
.ajs-ad img,
.ajs-ad ins,
.ajs-ad object,
.ajs-ad embed{
    max-width: 100% !important;
    height: auto !important;
    margin: 0 auto !important;
    display: block;
}
.ajs-ad div[id*="adsys"],
.ajs-ad div[class*="adsys"]{
    max-width: 100% !important;
    margin: 0 auto !important;
}
@media (max-width: 767px){
    .ajs-ad{ margin-top: 15px; }
    .ajs-ad > .elementor-element-populated{
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    /* pojistka, kdyby banner měl pevnou šířku větší než displej */
    .ajs-ad .elementor-widget-html{
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* ---------- patička ---------- */
.ajs-footer{ color: var(--ajs-mist); font-size: .9375rem; }
.ajs-footer .elementor-heading-title{
    font-size: 1rem;
    font-weight: 600;
    color: var(--ajs-white);
}
.ajs-footer a{ color: var(--ajs-mist); text-decoration: none; }
.ajs-footer a:hover,
.ajs-footer a:focus{ color: var(--ajs-cyan); }
.ajs-footer ul{ list-style: none; margin: 0; padding: 0; }
.ajs-footer li + li{ margin-top: .5rem; }
.ajs-footer address{ font-style: normal; line-height: 1.8; }
.ajs-footer-bottom{ color: #adadad; font-size: .8125rem; }
.ajs-footer-bottom a{ color: #adadad; text-decoration: none; }
.ajs-footer-bottom a:hover,
.ajs-footer-bottom a:focus{ color: var(--ajs-cyan); }

/* ---------- tlačítko zpět nahoru ---------- */
#backupthepage .elementor-button{
    border-radius: 50%;
    width: 44px;
    height: 44px;
    padding: 0;
    display: grid;
    place-items: center;
    box-shadow: 0 6px 20px rgba(0,28,56,.25);
}
#backupthepage .elementor-button-text{
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
@media (min-width: 901px){
    #backupthepage .elementor-button{ width: 48px; height: 48px; }
}

/* ---------- omezení pohybu ---------- */
@media (prefers-reduced-motion: reduce){
    body.ajs-design *{
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* =====================================================================
   1.1.0 — vzory podstránek
   ===================================================================== */

/* ---------- hlavička ---------- */
.ajs-header{
    box-shadow: 0 1px 0 rgba(0,28,56,.06);
}
.ajs-header.elementor-sticky--effects{
    background: rgba(255,255,255,.94) !important;
    backdrop-filter: blur(10px);
}
.ajs-nav .elementor-item{
    font-family: var(--ajs-f-text);
    font-size: .95rem;
    font-weight: 500;
    color: var(--ajs-text);
    padding: .45rem .7rem !important;
    border-radius: 999px;
    transition: background-color .18s, color .18s;
}
.ajs-nav .elementor-item:hover,
.ajs-nav .elementor-item:focus{
    background: var(--ajs-paper);
    color: var(--ajs-navy);
}
.ajs-nav .elementor-item.elementor-item-active{
    background: var(--ajs-navy);
    color: var(--ajs-white);
}
.ajs-nav .elementor-menu-toggle{
    background: var(--ajs-navy);
    color: var(--ajs-white);
    border-radius: 999px;
    padding: .6rem .8rem;
}
.ajs-nav .elementor-nav-menu--dropdown a{
    font-size: 1.0625rem;
    padding: .95rem 1.25rem !important;
    min-height: 48px;
    display: flex;
    align-items: center;
}

/* ---------- hero podstránky ---------- */
.ajs-page-hero .ajs-hero-title{
    font-size: clamp(1.9rem, 1.3rem + 2.6vw, 3.2rem);
    max-width: 20ch;
}
.ajs-eyebrow .elementor-heading-title{
    font-size: .95rem;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--ajs-cyan);
}

/* ---------- seznamy ---------- */
.ajs-list ul{
    list-style: none;
    margin: 0;
    padding: 0;
}
.ajs-list li{
    position: relative;
    padding-left: 1.6rem;
    margin-bottom: .7rem;
    color: var(--ajs-text-soft);
}
.ajs-list li::before{
    content: "";
    position: absolute;
    left: 0;
    top: .62em;
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: var(--ajs-cyan);
}
.ajs-list li:last-child{ margin-bottom: 0; }

/* ---------- karty ---------- */
.ajs-card > .elementor-element-populated{
    background: var(--ajs-white);
    border: 1px solid var(--ajs-line);
    border-top: 3px solid var(--ajs-cyan);
    border-radius: 4px;
    padding: 1.75rem !important;
    height: 100%;
}
.ajs-cards-row > .elementor-container{
    align-items: stretch;
}
.ajs-card-title .elementor-heading-title{
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: 1rem;
}
.ajs-card address{
    font-style: normal;
    line-height: 1.9;
    color: var(--ajs-text-soft);
}

/* ---------- kroky procesu ---------- */
.ajs-steps{ counter-reset: ajsstep; }
.ajs-steps .ajs-step{
    counter-increment: ajsstep;
    position: relative;
    padding: 2rem 0 2rem 0;
    border-top: 1px solid var(--ajs-line);
}
.ajs-steps .ajs-step:last-child{ border-bottom: 1px solid var(--ajs-line); }
.ajs-steps .ajs-step-title .elementor-heading-title{
    font-size: clamp(1.15rem, 1.05rem + .45vw, 1.45rem);
    font-weight: 600;
    margin-bottom: 1rem;
}
.ajs-steps .ajs-step-title .elementor-heading-title::before{
    content: counter(ajsstep);
    display: inline-grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    margin-right: .85rem;
    border-radius: 50%;
    background: var(--ajs-navy);
    color: var(--ajs-white);
    font-family: var(--ajs-f-text);
    font-size: .9rem;
    font-weight: 600;
    vertical-align: middle;
}
.ajs-step-figure img{
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 4px;
}

/* ---------- rozdělená sekce ---------- */
.ajs-split-figure img,
.ajs-figures .ajs-figure img{
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 4px;
}

/* ---------- ukázky potisku ---------- */
.ajs-sample img{
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
}
.ajs-sample-title .elementor-heading-title{
    font-size: 1rem;
    font-weight: 600;
    color: var(--ajs-navy);
    margin-top: .85rem;
}

/* ---------- ceník ---------- */
.ajs-table-scroll{
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--ajs-line);
    border-radius: 4px;
    background: var(--ajs-white);
}
.ajs-price-table{
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    font-size: .9375rem;
}
.ajs-price-table caption{
    text-align: left;
    padding: 1rem 1.25rem;
    font-weight: 600;
    color: var(--ajs-navy);
    border-bottom: 1px solid var(--ajs-line);
}
.ajs-price-table th,
.ajs-price-table td{
    padding: .85rem 1.25rem;
    text-align: left;
    border-bottom: 1px solid var(--ajs-line);
    vertical-align: top;
}
.ajs-price-table thead th{
    background: var(--ajs-paper);
    color: var(--ajs-navy);
    font-weight: 600;
    white-space: nowrap;
}
.ajs-price-table tbody th{
    font-weight: 500;
    color: var(--ajs-text-soft);
    max-width: 34ch;
}
.ajs-price-table td{
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.ajs-note{
    margin-top: .85rem;
    font-size: .875rem;
    color: var(--ajs-text-soft);
}

/* ---------- kontakt ---------- */
.ajs-contact-item > .elementor-element-populated{
    border-left: 3px solid var(--ajs-cyan);
    padding-left: 1.25rem !important;
}
.ajs-contact-icon img{
    max-height: 40px;
    width: auto;
    margin: 0 0 .85rem 0;
}
.ajs-contact-label .elementor-heading-title{
    font-size: .95rem;
    font-weight: 600;
    color: var(--ajs-text-soft);
}
.ajs-contact-value p{
    font-family: var(--ajs-f-display);
    font-size: clamp(1.25rem, 1.1rem + .7vw, 1.6rem);
    font-weight: 600;
    color: var(--ajs-navy);
    margin-top: .25rem;
}
.ajs-contact-value a{
    color: var(--ajs-navy);
    text-decoration: none;
    border-bottom: 2px solid var(--ajs-cyan);
}
.ajs-contact-value a:hover,
.ajs-contact-value a:focus{ border-bottom-color: var(--ajs-navy); }

/* ---------- formulář ---------- */
.ajs-form input[type="text"],
.ajs-form input[type="email"],
.ajs-form input[type="tel"],
.ajs-form select,
.ajs-form textarea{
    width: 100%;
    max-width: 100%;
    padding: .8rem 1rem;
    font-family: var(--ajs-f-text);
    font-size: 1rem;
    color: var(--ajs-text);
    background: var(--ajs-white);
    border: 1px solid var(--ajs-line);
    border-radius: 4px;
}
.ajs-form input:focus,
.ajs-form select:focus,
.ajs-form textarea:focus{
    outline: 3px solid var(--ajs-cyan);
    outline-offset: 1px;
    border-color: var(--ajs-cyan);
}
.ajs-form label{
    display: block;
    margin-bottom: .35rem;
    font-weight: 500;
    font-size: .9375rem;
    color: var(--ajs-navy);
}
.ajs-form button[type="submit"],
.ajs-form input[type="submit"]{
    background: var(--ajs-navy);
    color: var(--ajs-white);
    border: 0;
    border-radius: 999px;
    padding: .85rem 1.75rem;
    font-family: var(--ajs-f-text);
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    min-height: 48px;
}
.ajs-form button[type="submit"]:hover,
.ajs-form input[type="submit"]:hover{ background: var(--ajs-navy-2); }

/* ---------- CTA titulek ---------- */
.ajs-cta-title .elementor-heading-title{
    font-size: clamp(1.4rem, 1.15rem + 1.2vw, 2.1rem);
    font-weight: 600;
}

/* ---------- mobilní doladění ---------- */
@media (max-width: 767px){
    .ajs-card > .elementor-element-populated{ padding: 1.25rem !important; }
    .ajs-steps .ajs-step{ padding: 1.5rem 0; }
    .ajs-price-table{ font-size: .875rem; }
    .ajs-price-table th,
    .ajs-price-table td{ padding: .7rem .9rem; }
}


/* =====================================================================
   1.2.0 — zpevnění proti stylům motivu
   Motiv Hello/Astra i Elementor přebíjely barvy odkazů a odrážek,
   proto jsou klíčové vlastnosti vynucené přes body.ajs-design.
   ===================================================================== */

/* ---------- mřížka partnerů (HTML widget) ---------- */
body.ajs-design .ajs-partner-grid{
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 2rem;
    align-items: center;
    justify-items: center;
    width: 100%;
}
body.ajs-design .ajs-partner-grid a{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 60px;
    border: 0 !important;
}
body.ajs-design .ajs-partner-grid img{
    max-height: 60px;
    max-width: 100%;
    width: auto !important;
    height: auto;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .75;
    transition: filter .2s, opacity .2s;
}
body.ajs-design .ajs-partner-grid a:hover img,
body.ajs-design .ajs-partner-grid a:focus-visible img{
    filter: none;
    opacity: 1;
}
@media (max-width: 1024px){
    body.ajs-design .ajs-partner-grid{
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.5rem;
    }
    body.ajs-design .ajs-partner-grid img{ max-height: 50px; }
}
@media (max-width: 600px){
    body.ajs-design .ajs-partner-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.25rem;
    }
    body.ajs-design .ajs-partner-grid img{ max-height: 42px; }
}
body.ajs-design .ajs-partners-title .elementor-heading-title{
    text-align: center;
    color: var(--ajs-text-soft) !important;
}

/* ---------- patička: barvy vynucené ---------- */
body.ajs-design .ajs-footer .elementor-heading-title{
    color: var(--ajs-white) !important;
}
body.ajs-design .ajs-footer,
body.ajs-design .ajs-footer p,
body.ajs-design .ajs-footer li,
body.ajs-design .ajs-footer address{
    color: var(--ajs-mist) !important;
}
body.ajs-design .ajs-footer a,
body.ajs-design .ajs-footer .elementor-widget-text-editor a{
    color: var(--ajs-mist) !important;
    text-decoration: none !important;
    border: 0 !important;
}
body.ajs-design .ajs-footer a:hover,
body.ajs-design .ajs-footer a:focus{
    color: var(--ajs-cyan) !important;
}
body.ajs-design .ajs-footer ul{
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.ajs-design .ajs-footer li{
    padding-left: 0 !important;
}
body.ajs-design .ajs-footer li::before{ content: none !important; }
body.ajs-design .ajs-footer-bottom,
body.ajs-design .ajs-footer-bottom p,
body.ajs-design .ajs-footer-bottom .elementor-heading-title,
body.ajs-design .ajs-footer-bottom a{
    color: #adadad !important;
}
body.ajs-design .ajs-footer-bottom a:hover,
body.ajs-design .ajs-footer-bottom a:focus{
    color: var(--ajs-cyan) !important;
}

/* ---------- texty na tmavém pozadí ---------- */
body.ajs-design .ajs-hero .ajs-hero-lede,
body.ajs-design .ajs-hero .ajs-hero-lede p,
body.ajs-design .ajs-support .ajs-section-lede,
body.ajs-design .ajs-support .ajs-section-lede p{
    color: var(--ajs-mist) !important;
}
body.ajs-design .ajs-hero .ajs-hero-title .elementor-heading-title,
body.ajs-design .ajs-support .ajs-section-title .elementor-heading-title{
    color: var(--ajs-white) !important;
}

/* ---------- seznamy: potlačit odrážky motivu ---------- */
body.ajs-design .ajs-list ul{
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.ajs-design .ajs-list li{
    position: relative;
    padding-left: 1.6rem !important;
    color: var(--ajs-text-soft) !important;
    list-style: none !important;
}
body.ajs-design .ajs-list li::marker{ content: none; }

/* ---------- karty: stejná výška a odsazení ---------- */
body.ajs-design .ajs-cards-row > .elementor-container{ align-items: stretch; }
body.ajs-design .ajs-card > .elementor-element-populated{
    background: var(--ajs-white);
    border: 1px solid var(--ajs-line);
    border-top: 3px solid var(--ajs-cyan);
    border-radius: 4px;
    padding: 1.75rem !important;
    height: 100%;
}

/* ---------- odkazy v obsahu ---------- */
body.ajs-design .ajs-more{
    color: var(--ajs-navy) !important;
    text-decoration: none !important;
}

/* ---------- obrázky nikdy nepřetečou ---------- */
body.ajs-design .elementor-widget-image img,
body.ajs-design .elementor-widget-html img{
    max-width: 100%;
    height: auto;
}

/* =====================================================================
   1.3.0 — tematické ilustrace v hero sekcích
   ===================================================================== */
body.ajs-design .ajs-hero-figure img,
body.ajs-design .ajs-support-figure img{
    border: 1px solid rgba(255,255,255,.14);
    border-left: 4px solid var(--ajs-cyan);
    background: var(--ajs-navy);
}
/* ilustrace mají vlastní pozadí, proto se neořezávají do čtverce */
body.ajs-design .ajs-page-hero .ajs-hero-figure img{
    aspect-ratio: 4 / 3;
    object-fit: contain;
}
@media (max-width: 767px){
    body.ajs-design .ajs-hero-figure img{
        border-left-width: 3px;
    }
}

/* =====================================================================
   1.3.1 — doladění rejstříku služeb
   ===================================================================== */

/* Ikony mají všechny stejnou optickou velikost bez ohledu na poměr stran. */
body.ajs-design .ajs-service .elementor-image-box-img{
    flex: 0 0 auto;
    align-self: start;
}
body.ajs-design .ajs-service .elementor-image-box-img img{
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Odkaz „Číst více" na vlastním řádku, ne vlepený do odstavce. */
body.ajs-design .ajs-service .ajs-more{
    display: inline-block;
    margin-top: 1rem;
}

/* Celý řádek reaguje na najetí — spolu s odkazem, ne proti němu. */
body.ajs-design .ajs-service{
    transition: background-color .18s;
}
body.ajs-design .ajs-service:hover{
    background: rgba(69,215,221,.06);
}

/* Mobil: ikona a nadpis vedle sebe, text pod nimi přes celou šířku. */
@media (max-width: 820px){
    body.ajs-design .ajs-service .elementor-image-box-wrapper{
        grid-template-columns: 56px minmax(0, 1fr);
        column-gap: 1rem;
        row-gap: .75rem;
        align-items: center;
    }
    body.ajs-design .ajs-service .elementor-image-box-content{
        display: contents;
    }
    body.ajs-design .ajs-service .elementor-image-box-title{
        margin: 0;
        align-self: center;
    }
    body.ajs-design .ajs-service .elementor-image-box-description{
        grid-column: 1 / -1;
        margin: 0;
    }
}

/* =====================================================================
   1.3.2 — mřížka služeb musí přebít vlastní layout widgetu Image Box
   Elementor má pro pozici obrázku vlevo pravidlo
   `.elementor-widget-image-box.elementor-position-left .elementor-image-box-wrapper{display:flex}`
   se stejnou vahou jako dřívější selektory zde, takže vyhrával flexbox
   a šířka sloupce se řídila délkou nadpisu.
   ===================================================================== */

body.ajs-design .elementor-widget-image-box.ajs-service .elementor-image-box-wrapper{
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr);
    column-gap: 1rem;
    row-gap: .75rem;
    align-items: center;
    text-align: left !important;
}
body.ajs-design .elementor-widget-image-box.ajs-service .elementor-image-box-content{
    display: contents !important;
    width: auto !important;
    text-align: left !important;
}
body.ajs-design .elementor-widget-image-box.ajs-service .elementor-image-box-img{
    width: 56px !important;
    max-width: 56px !important;
    height: 56px;
    margin: 0 !important;
    align-self: start;
}
body.ajs-design .elementor-widget-image-box.ajs-service .elementor-image-box-title{
    grid-column: 2;
    margin: 0 !important;
    align-self: center;
}
body.ajs-design .elementor-widget-image-box.ajs-service .elementor-image-box-description{
    grid-column: 1 / -1;
    margin: 0 !important;
}

@media (min-width: 821px){
    body.ajs-design .elementor-widget-image-box.ajs-service .elementor-image-box-wrapper{
        grid-template-columns: 56px 260px minmax(0, 1fr) !important;
        column-gap: 2.5rem;
        row-gap: 0;
        align-items: start;
    }
    body.ajs-design .elementor-widget-image-box.ajs-service .elementor-image-box-title{
        grid-column: 2;
        padding-top: .15rem;
        align-self: start;
    }
    body.ajs-design .elementor-widget-image-box.ajs-service .elementor-image-box-description{
        grid-column: 3;
    }
}

@media (min-width: 1100px){
    body.ajs-design .elementor-widget-image-box.ajs-service .elementor-image-box-wrapper{
        grid-template-columns: 56px 300px minmax(0, 1fr) !important;
    }
}
