/*
 * Site-wide type scale.
 * Content added through WordPress/ACF inherits these values automatically,
 * while component-specific captions can still stay intentionally compact.
 */
:root {
    --dq-font-body-size: 17px;
    --dq-font-content-size: 18px;
    --dq-font-small-size: 15px;
    --dq-font-control-size: 16px;
    --dq-line-body: 1.65;
    --dq-line-content: 1.75;
}

html,
body,
button,
input,
select,
textarea {
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-size: var(--dq-font-body-size);
    line-height: var(--dq-line-body);
}

/* Long-form content: pages, posts, product descriptions and ACF rich text. */
.dq-main .dq-richtext {
    font-size: var(--dq-font-content-size);
    line-height: var(--dq-line-content);
}

.dq-main .dq-richtext p,
.dq-main .dq-richtext li,
.dq-main .dq-richtext blockquote,
.dq-main .dq-richtext td,
.dq-main .dq-richtext th {
    font-size: inherit;
    line-height: inherit;
}

.dq-main .dq-richtext p,
.dq-main .dq-richtext ul,
.dq-main .dq-richtext ol,
.dq-main .dq-richtext blockquote {
    margin-block: 0 1.15em;
}

.dq-main .dq-richtext li + li {
    margin-top: .32em;
}

.dq-main .dq-richtext h1,
.dq-main .dq-richtext h2,
.dq-main .dq-richtext h3,
.dq-main .dq-richtext h4 {
    line-height: 1.25;
    text-wrap: balance;
}

.dq-main .dq-richtext h1 {
    font-size: clamp(32px, 3.2vw, 46px);
}

.dq-main .dq-richtext h2 {
    margin-block: 1.45em .65em;
    font-size: clamp(27px, 2.35vw, 34px);
}

.dq-main .dq-richtext h3 {
    margin-block: 1.35em .55em;
    font-size: clamp(21px, 1.7vw, 25px);
}

.dq-main .dq-richtext h4 {
    margin-block: 1.25em .5em;
    font-size: clamp(18px, 1.35vw, 21px);
}

/* Common controls stay readable without overpowering their surrounding copy. */
.dq-btn,
.dq-load-more,
.dq-header-btn,
.dq-hotline,
.dqc-contact-form button,
.dqc-contact-form input[type="submit"],
.dq-review-form button,
.dq-review-form input[type="submit"] {
    font-size: var(--dq-font-control-size);
    line-height: 1.25;
}

.dq-topbar,
.dq-topbar-menu {
    font-size: var(--dq-font-small-size);
}

.dq-menu,
.dq-bottom-menu {
    font-size: 16px;
}

.dq-header--catalog .dq-topbar {
    font-size: 15px;
}

.dq-header--catalog .dq-hotline,
.dq-header--catalog .dq-header-btn,
body .dq-header.dq-header--catalog .dq-bottom-menu > li > a {
    font-size: 16px;
}

input,
select,
textarea {
    font-size: 16px;
}

/* Default cards should never fall back to browser-small text. */
.dq-card p,
.dq-card li,
.dq-sidebar,
.dq-faq,
.dq-accordion {
    font-size: 16px;
}

b,
strong {
    font-weight: 700;
}

@media (max-width: 767px) {
    :root {
        --dq-font-body-size: 16px;
        --dq-font-content-size: 17px;
        --dq-font-small-size: 14px;
        --dq-font-control-size: 15px;
    }

    .dq-main .dq-richtext h1 {
        font-size: clamp(29px, 8.4vw, 36px);
    }

    .dq-main .dq-richtext h2 {
        font-size: clamp(24px, 6.8vw, 29px);
    }

    .dq-main .dq-richtext h3 {
        font-size: clamp(20px, 5.5vw, 23px);
    }
}
