.dw {
    max-width: 120em; /* 1920px / 16 */
    margin: 0 auto;
    font-size: 16px; /* base font size = 16px */

    --color-default: #f5f5f5;
    --color-default-text: #000;
    --color-default-hover: #ededed;
    --color-default-hover-text: #000;
    --color-default-hover-border: #ededed;

    --color-primary: #007bff;
    --color-primary-text: #fff;
    --color-primary-hover: #0056b3;
    --color-primary-hover-text: #fff;
    --color-primary-hover-border: #004085;

    --color-secondary: #fff;
    --color-secondary-text: #000;
    --color-secondary-hover: #f5f5f5;
    --color-secondary-hover-text: #000;
    --color-secondary-hover-border: #f5f5f5;
}

.dw-btn {
    display: inline-block;
    font-family: inherit;
    font-weight: 600;
    font-size: 1em;
    padding: 0.5em 1.25em;
    border-radius: 4px;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    user-select: none;
    border: 2px solid var(--color-default);
    background-color: var(--color-default);
    color: var(--color-default-text);
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.dw-btn:visited {
    border: 2px solid var(--color-default);
    background-color: var(--color-default);
    color: var(--color-default-text);
}

.dw-btn:hover,
.dw-btn:focus {
    background-color: var(--color-default-hover);
    border-color: var(--color-default-hover-border);
    color: var(--color-default-hover-text);
    outline: none;
}

/* Primary */
.dw-btn-primary, .dw-btn-primary:visited {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-primary-text);
}

.dw-btn-primary:hover,
.dw-btn-primary:focus {
    background-color: var(--color-primary-hover);
    border-color: var(--color-primary-hover-border);
    color: var(--color-primary-hover-text);
}

/* Secondary */
.dw-btn-secondary, .dw-btn-secondary:visited {
    background-color: var(--color-secondary);
    border-color: var(--color-secondary);
    color: var(--color-secondary-text);
}

.dw-btn-secondary:hover,
.dw-btn-secondary:focus {
    background-color: var(--color-secondary-hover);
    border-color: var(--color-secondary-hover-border);
    color: var(--color-secondary-hover-text);
}

.dw-block {
    display: block !important;
}

.dw img {
    max-width: 100%;
}

/* Headings system inside .dw */
.dw h1 {
    font-size: 2.5em;     /* 40px */
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 0.5em;
}

.dw h2 {
    font-size: 2em;       /* 32px */
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 0.6em;
}

.dw h3 {
    font-size: 1.75em;    /* 28px */
    font-weight: 600;
    line-height: 1.3;
    margin-bottom: 0.6em;
}

.dw h4 {
    font-size: 1.5em;     /* 24px */
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 0.6em;
}

.dw h5 {
    font-size: 1.25em;    /* 20px */
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 0.5em;
}

.dw h6 {
    font-size: 1em;       /* 16px */
    font-weight: 600;
    line-height: 1.4;
    margin-bottom: 0.5em;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.dw p {
    font-size: 1em;          /* 16px */
    line-height: 1.6;
    margin-bottom: 1em;
}

.dw ul, .dw ol {
    font-size: 1em;          /* 16px */
    line-height: 1.6;
    margin-bottom: 1em;
    padding-left: 1.5em;     /* indent list content */
    color: #000;
}

.dw ul {
    list-style-type: disc;
}

.dw ol {
    list-style-type: decimal;
}

/* Nested lists */
.dw ul ul,
.dw ol ol,
.dw ul ol,
.dw ol ul {
    margin-bottom: 0;
    margin-top: 0.5em;
    padding-left: 1.5em;
}


/* Text alignment utilities */
.dw-text-left {
    text-align: left !important;
}

.dw-text-center {
    text-align: center !important;
}

.dw-text-right {
    text-align: right !important;
}

.dw-text-justify {
    text-align: justify;
}

/* List item spacing */
.dw li {
    margin-bottom: 0.5em;
}

.dw * {
    box-sizing: border-box;
}

.dw-container-fluid {
    width: 100%;
    padding: 2em;
    margin: 0 auto;
}

.dw-container-wide, .dw-container, .dw-container-narrow {
    margin: 0 auto;
    padding: 0 0.9375em; /* 15px */
    display: flex;
    flex-direction: column;
    gap: 0.9375em; /* 15px */
}

.dw-container-wide { max-width: 87.5em; }  /* 1400px */
.dw-container { max-width: 75em; }       /* 1200px */
.dw-container-narrow { max-width: 62.5em; } /* 1000px */

/* Rows */
.dw-row {
    display: flex;
    flex-wrap: wrap;
    margin-left: -0.9375em;  /* -15px */
    margin-right: -0.9375em;
}

/* Columns */
.dw-col {
    padding: 1em;
    flex-grow: 1;
    flex-basis: 0;
    min-width: 0;
}

/* Flexbox display */
.dw-flex         { display: flex !important; }
.dw-inline-flex  { display: inline-flex !important; }

/* Flex Direction */
.dw-flex-row         { flex-direction: row !important; }
.dw-flex-row-reverse { flex-direction: row-reverse !important; }
.dw-flex-column      { flex-direction: column !important; }
.dw-flex-column-reverse { flex-direction: column-reverse !important; }

/* Justify Content */
.dw-justify-start    { justify-content: flex-start !important; }
.dw-justify-center   { justify-content: center !important; }
.dw-justify-end      { justify-content: flex-end !important; }
.dw-justify-between  { justify-content: space-between !important; }
.dw-justify-around   { justify-content: space-around !important; }
.dw-justify-evenly   { justify-content: space-evenly !important; }

/* Align Items */
.dw-items-start      { align-items: flex-start !important; }
.dw-items-center     { align-items: center !important; }
.dw-items-end        { align-items: flex-end !important; }
.dw-items-stretch    { align-items: stretch !important; }
.dw-items-baseline   { align-items: baseline !important; }

/* Align Content */
.dw-content-start    { align-content: flex-start !important; }
.dw-content-center   { align-content: center !important; }
.dw-content-end      { align-content: flex-end !important; }
.dw-content-between  { align-content: space-between !important; }
.dw-content-around   { align-content: space-around !important; }
.dw-content-stretch  { align-content: stretch !important; }

/* Align Self */
.dw-self-auto        { align-self: auto !important; }
.dw-self-start       { align-self: flex-start !important; }
.dw-self-center      { align-self: center !important; }
.dw-self-end         { align-self: flex-end !important; }
.dw-self-stretch     { align-self: stretch !important; }

/* Flex Wrap */
.dw-flex-wrap        { flex-wrap: wrap !important; }
.dw-flex-nowrap      { flex-wrap: nowrap !important; }
.dw-flex-wrap-reverse { flex-wrap: wrap-reverse !important; }

/* Column widths */
.dw-col-1 { flex: 0 0 8.3333%;  max-width: 8.3333%; }
.dw-col-2 { flex: 0 0 16.6667%; max-width: 16.6667%; }
.dw-col-3 { flex: 0 0 25%;      max-width: 25%; }
.dw-col-4 { flex: 0 0 33.3333%; max-width: 33.3333%; }
.dw-col-5 { flex: 0 0 41.6667%; max-width: 41.6667%; }
.dw-col-6 { flex: 0 0 50%;      max-width: 50%; }
.dw-col-7 { flex: 0 0 58.3333%; max-width: 58.3333%; }
.dw-col-8 { flex: 0 0 66.6667%; max-width: 66.6667%; }
.dw-col-9 { flex: 0 0 75%;      max-width: 75%; }
.dw-col-10 { flex: 0 0 83.3333%; max-width: 83.3333%; }
.dw-col-11 { flex: 0 0 91.6667%; max-width: 91.6667%; }
.dw-col-12 { flex: 0 0 100%;     max-width: 100%; }

/* Margin utilities */
.dw-m-0 { margin: 0 !important; }
.dw-m-1 { margin: 0.3125em !important; }   /* 5px */
.dw-m-2 { margin: 0.625em !important; }    /* 10px */
.dw-m-3 { margin: 0.9375em !important; }   /* 15px */
.dw-m-4 { margin: 1.25em !important; }     /* 20px */
.dw-m-5 { margin: 1.875em !important; }    /* 30px */

.dw-mt-0 { margin-top: 0 !important; }
.dw-mt-1 { margin-top: 0.3125em !important; }
.dw-mt-2 { margin-top: 0.625em !important; }
.dw-mt-3 { margin-top: 0.9375em !important; }
.dw-mt-4 { margin-top: 1.25em !important; }
.dw-mt-5 { margin-top: 1.875em !important; }

.dw-mb-0 { margin-bottom: 0 !important; }
.dw-mb-1 { margin-bottom: 0.3125em !important; }
.dw-mb-2 { margin-bottom: 0.625em !important; }
.dw-mb-3 { margin-bottom: 0.9375em !important; }
.dw-mb-4 { margin-bottom: 1.25em !important; }
.dw-mb-5 { margin-bottom: 1.875em !important; }

.dw-ml-0 { margin-left: 0 !important; }
.dw-ml-1 { margin-left: 0.3125em !important; }
.dw-ml-2 { margin-left: 0.625em !important; }
.dw-ml-3 { margin-left: 0.9375em !important; }
.dw-ml-4 { margin-left: 1.25em !important; }
.dw-ml-5 { margin-left: 1.875em !important; }

.dw-mr-0 { margin-right: 0 !important; }
.dw-mr-1 { margin-right: 0.3125em !important; }
.dw-mr-2 { margin-right: 0.625em !important; }
.dw-mr-3 { margin-right: 0.9375em !important; }
.dw-mr-4 { margin-right: 1.25em !important; }
.dw-mr-5 { margin-right: 1.875em !important; }

/* Padding utilities */
.dw-p-0 { padding: 0 !important; }
.dw-p-1 { padding: 0.3125em !important; }
.dw-p-2 { padding: 0.625em !important; }
.dw-p-3 { padding: 0.9375em !important; }
.dw-p-4 { padding: 1.25em !important; }
.dw-p-5 { padding: 1.875em !important; }

.dw-pt-0 { padding-top: 0 !important; }
.dw-pt-1 { padding-top: 0.3125em !important; }
.dw-pt-2 { padding-top: 0.625em !important; }
.dw-pt-3 { padding-top: 0.9375em !important; }
.dw-pt-4 { padding-top: 1.25em !important; }
.dw-pt-5 { padding-top: 1.875em !important; }

.dw-pb-0 { padding-bottom: 0 !important; }
.dw-pb-1 { padding-bottom: 0.3125em !important; }
.dw-pb-2 { padding-bottom: 0.625em !important; }
.dw-pb-3 { padding-bottom: 0.9375em !important; }
.dw-pb-4 { padding-bottom: 1.25em !important; }
.dw-pb-5 { padding-bottom: 1.875em !important; }

.dw-pl-0 { padding-left: 0 !important; }
.dw-pl-1 { padding-left: 0.3125em !important; }
.dw-pl-2 { padding-left: 0.625em !important; }
.dw-pl-3 { padding-left: 0.9375em !important; }
.dw-pl-4 { padding-left: 1.25em !important; }
.dw-pl-5 { padding-left: 1.875em !important; }

.dw-pr-0 { padding-right: 0 !important; }
.dw-pr-1 { padding-right: 0.3125em !important; }
.dw-pr-2 { padding-right: 0.625em !important; }
.dw-pr-3 { padding-right: 0.9375em !important; }
.dw-pr-4 { padding-right: 1.25em !important; }
.dw-pr-5 { padding-right: 1.875em !important; }

/* --------------------
Responsive breakpoints
-------------------- */
@media (max-width: 768px) {
    .dw-col,
    .dw-col-1, .dw-col-2, .dw-col-3, .dw-col-4,
    .dw-col-5, .dw-col-6, .dw-col-7, .dw-col-8,
    .dw-col-9, .dw-col-10, .dw-col-11, .dw-col-12 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}
