/*
 * Builder component layout styles.
 *
 * Single source of truth for .dk-* classes.
 * Compiled to builderDefault.css — loaded in the editor canvas AND
 * uploaded to the e-shop via FTP so the same styles are available in both places.
 *
 * Run: make builder-local
 */
/* ---- Grid system ---- */
.dk-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}
.dk-col {
    flex: 1 1 0;
    min-width: 0;
}
/* Two-column layouts */
.dk-col-1-2 {
    flex: 0 0 calc(50% - 8px);
    max-width: calc(50% - 8px);
}
.dk-col-1-3 {
    flex: 0 0 calc(33.333% - 11px);
    max-width: calc(33.333% - 11px);
}
.dk-col-2-3 {
    flex: 0 0 calc(66.666% - 6px);
    max-width: calc(66.666% - 6px);
}
.dk-col-1-4 {
    flex: 0 0 calc(25% - 12px);
    max-width: calc(25% - 12px);
}
.dk-col-3-4 {
    flex: 0 0 calc(75% - 4px);
    max-width: calc(75% - 4px);
}
/* ---- Spacing utilities ---- */
.dk-gap-sm {
    gap: 8px;
}
.dk-gap-md {
    gap: 16px;
}
.dk-gap-lg {
    gap: 32px;
}
.dk-p-sm {
    padding: 8px;
}
.dk-p-md {
    padding: 16px;
}
.dk-p-lg {
    padding: 32px;
}
/* ---- Alignment ---- */
.dk-align-center {
    align-items: center;
}
.dk-align-start {
    align-items: flex-start;
}
.dk-align-end {
    align-items: flex-end;
}
.dk-justify-center {
    justify-content: center;
}
.dk-justify-between {
    justify-content: space-between;
}
.dk-justify-end {
    justify-content: flex-end;
}
/* ---- Text ---- */
.dk-text-center {
    text-align: center;
}
.dk-text-right {
    text-align: right;
}
/* ---- Images ---- */
img {
    max-width: 100%;
    height: auto;
}
/* ---- Responsive: stack columns below 640px ---- */
@media (max-width: 640px) {
    .dk-col-1-2,
    .dk-col-1-3,
    .dk-col-2-3,
    .dk-col-1-4,
    .dk-col-3-4 {
        flex: 0 0 100%;
        max-width: 100%;
    }
}
/* ---- COMPONENTS ---- */
@media (max-width: 767px) {
    .p-article-blockquote {
        padding-block: 8px;
        margin-block-end: 28px;
    }
}
@media (min-width: 768px) {
    .p-article-blockquote {
        padding-block: 12px;
        margin-block-end: 48px;
    }
}
.p-article-blockquote__in {
    font-weight: 600;
    background: var(--color-surface-light-blue);
}
@media (max-width: 767px) {
    .p-article-blockquote__in {
        padding: 12px 20px;
        border-radius: var(--radius-m);
        font-size: 15px;
    }
}
@media (min-width: 768px) {
    .p-article-blockquote__in {
        padding: 20px 32px;
        border-radius: var(--radius-l);
        font-size: 16px;
    }
}
.m-article-author {
    display: flex;
    column-gap: 8px;
    align-items: center;
    overflow: hidden;
    border-radius: var(--radius-m);
    background-color: var(--color-surface-content-blue);
}
@media (max-width: 767px) {
    .m-article-author {
        padding-inline-end: 12px;
        font-size: 13px;
    }
}
@media (min-width: 768px) {
    .m-article-author {
        padding-inline-end: 16px;
        font-size: 14px;
    }
}
@media (max-width: 767px) {
    .m-article-author__image {
        width: 30px;
    }
}
@media (min-width: 768px) {
    .m-article-author__image {
        width: 36px;
    }
}
.m-article-author__image img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: var(--radius-m);
}
/* m-article-header__title */
.h1-display,
.m-article-header__title,
.c-reviews-panel-rating__value,
.rate-average {
    line-height: 1.2;
    font-weight: 700;
    font-size: clamp(32px, 4.818vw, 50px);
    font-family: var(--font-primary);
}
@media (max-width: 767px) {
    .m-article-header__title {
        margin-block-end: 8px;
    }
}
@media (min-width: 768px) {
    .m-article-header__title {
        margin-block-end: 12px;
    }
}
/* perex */
.p-article__perex {
    clear: both;
}
@media (max-width: 767px) {
    .p-article__perex {
        margin-block-end: 20px;
        font-size: 16px;
    }
}
@media (min-width: 768px) {
    .p-article__perex {
        margin-block-end: 32px;
        font-size: 20px;
    }
}
.p-article__perex:first-letter {
    display: flex;
    float: left;
    font-weight: 800;
    text-align: center;
    color: var(--color-text-headline-blue);
    font-family: var(--font-secondary);
}
@media (max-width: 767px) {
    .p-article__perex:first-letter {
        line-height: 1;
        margin-top: -6px;
        padding: 0 12px;
        font-size: 56px;
    }
}
@media (min-width: 768px) {
    .p-article__perex:first-letter {
        line-height: 0.8;
        margin-top: -4px;
        padding: 0 16px;
        font-size: 72px;
    }
}
