@font-face {
    font-family : 'Roboto';
    src         : url('../fonts/Roboto-Regular.woff2') format('woff2'),
                  url('../fonts/Roboto-Regular.woff') format('woff');
    font-weight : 400;
    font-style  : normal;
}

@font-face {
    font-family : 'Roboto';
    src         : url('../fonts/Roboto-Medium.woff2') format('woff2'),
                  url('../fonts/Roboto-Medium.woff') format('woff');
    font-weight : 500;
    font-style  : normal;
}

@font-face {
    font-family : 'Roboto';
    src         : url('../fonts/Roboto-Bold.woff2') format('woff2'),
                  url('../fonts/Roboto-Bold.woff') format('woff');
    font-weight : 700;
    font-style  : normal;
}

:root {
    --ea-primary       : #bd1220;
    --ea-primary-hover : #9a0f1a;
    --ea-primary-soft  : #fce2ea;
    --ea-primary-subtle: #fff1f5;
    --ea-surface       : #fbf8fa;
    --ea-surface-2     : #f5f1f3;
    --ea-border        : #e9dde2;
    --ea-text          : #161216;
    --ea-text-soft     : #58585a;
    --ea-text-muted    : #817783;
    --ea-black         : #0d0b0e;
    --ea-shadow-sm     : 0 4px 20px rgba(13, 11, 14, 0.06);
    --ea-shadow        : 0 10px 30px rgba(13, 11, 14, 0.08);
    --ea-shadow-lg     : 0 18px 50px rgba(13, 11, 14, 0.12);
    --ea-radius        : 1rem;
    --ea-radius-lg     : 1.5rem;
    --ea-radius-xl     : 2rem;
}

*,
*::before,
*::after {
    box-sizing : border-box;
}

html {
    min-height : 100%;
}

body {
    min-height    : 100%;
    margin        : 0;
    background    : linear-gradient(180deg, #fff 0%, var(--ea-surface) 100%);
    color         : var(--ea-text);
    font-family   : Roboto, "Segoe UI", Arial, sans-serif;
    font-size     : 1rem;
    line-height   : 1.6;
    text-rendering: optimizeLegibility;
}

a {
    color           : var(--ea-text);
    text-decoration : none;
    transition      : color .2s ease, opacity .2s ease, transform .2s ease;
}

a:hover,
a:focus {
    color : var(--ea-primary);
}

a.telephone {
    color       : inherit;
    font-weight : 500;
}

p:last-child {
    margin-bottom : 0;
}

h1,
h2,
h3,
h4,
.display-title {
    color          : var(--ea-text);
    font-weight    : 700;
    letter-spacing : -0.03em;
}

h1 {
    font-size      : clamp(2rem, 4vw, 3.4rem);
    line-height    : 1;
    text-transform : uppercase;
    margin-bottom  : 1.5rem;
}

h2 {
    font-size     : clamp(1.75rem, 3vw, 2.6rem);
    line-height   : 1.05;
    margin-bottom : 1rem;
}

h3 {
    font-size     : clamp(1.35rem, 2vw, 1.8rem);
    line-height   : 1.15;
    margin-bottom : 1rem;
}

h4 {
    font-size : 1.125rem;
}

.btn {
    border-radius  : 999px;
    font-weight    : 700;
    padding        : 0.9rem 1.5rem;
    letter-spacing : -0.01em;
    box-shadow     : none;
}

.btn-primary {
    background-color : var(--ea-primary);
    border-color     : var(--ea-primary);
}

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

.btn-outline-dark {
    border-color : var(--ea-black);
    color        : var(--ea-black);
}

.btn-outline-dark:hover,
.btn-outline-dark:focus {
    background-color : var(--ea-black);
    border-color     : var(--ea-black);
    color            : #fff;
}

.card {
    border-radius : var(--ea-radius-lg);
}

.site-header {
    position    : relative;
    padding-top : 6.5rem;
}

.hero-banner {
    margin-bottom   : 2rem;
    padding         : 2rem;
    position        : relative;
    border          : 1px solid var(--ea-border);
    border-radius   : var(--ea-radius-xl);
    background      : radial-gradient(circle at top right, rgba(189, 18, 32, 0.12), transparent 32%), #fff;
    box-shadow      : var(--ea-shadow);
}

.hero-banner--compact {
    align-items    : center;
    --bs-gutter-y  : 0;
    min-height     : 7rem;
    padding-top    : 1.5rem;
    padding-right  : min(32vw, 16rem);
    padding-bottom : 1.5rem;
}

.hero-brand {
    position        : absolute;
    top             : 1rem;
    right           : 1rem;
    left            : auto;
    z-index         : 2;
    display         : inline-flex;
    align-items     : center;
    justify-content : flex-end;
    width           : auto;
    max-width       : none;
    padding         : 0;
    margin          : 0;
    transform       : translate3d(0, 0, 0) scale(1);
    transform-origin: right top;
    transition      : opacity 0.35s ease, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.hero-brand img {
    display   : block;
    width     : auto;
    height    : clamp(6.5rem, 12vw, 9.5rem);
    max-width : min(70vw, 36rem);
}

.hero-banner--compact .hero-brand img {
    height    : clamp(4.25rem, 7vw, 5.75rem);
    max-width : min(32vw, 14rem);
}

.hero-banner--compact > div {
    display     : flex;
    align-items : center;
    min-height  : 4rem;
}

.eyebrow {
    display        : inline-flex;
    align-items    : center;
    gap            : 0.5rem;
    margin-bottom  : 1rem;
    color          : var(--ea-primary);
    font-size      : 0.85rem;
    font-weight    : 700;
    letter-spacing : 0.08em;
    text-transform : uppercase;
}

.eyebrow::before {
    content          : '';
    width            : 2rem;
    height           : 1px;
    background-color : currentColor;
}

.display-title {
    max-width   : 11ch;
    margin      : 0;
    font-size   : clamp(2.75rem, 6vw, 5.5rem);
    line-height : 0.95;
}

.hero-copy {
    max-width : 42rem;
    color     : var(--ea-text-soft);
    font-size : 1.1rem;
}

.hero-copy--compact {
    font-size : 1rem;
}

.hero-contact {
    background : rgba(255, 255, 255, 0.94);
}

.hero-contact .card-body {
    color : var(--ea-text-soft);
}

.hero-promo {
    color : var(--ea-text);
}

.hero-promo__eyebrow {
    color          : var(--ea-primary);
    font-size      : 0.85rem;
    font-weight    : 700;
    letter-spacing : 0.08em;
    text-transform : uppercase;
}

.hero-promo__copy {
    color     : var(--ea-text-soft);
    font-size : 1rem;
    line-height: 1.5;
}

.hero-promo__image {
    display       : block;
    width         : 100%;
    border-radius : 1.25rem;
    box-shadow    : var(--ea-shadow-sm);
}

.hero-contact .shop img,
.shop img {
    max-width : 12rem;
    height    : auto;
}

.mainnav-fluid {
    z-index                 : 1030;
    padding                 : 0.9rem 0;
    background              : var(--ea-primary);
    box-shadow              : 0 14px 32px rgba(189, 18, 32, 0.22);
    -webkit-backdrop-filter : blur(18px);
    backdrop-filter         : blur(18px);
}

.mainnav {
    margin-bottom : 0;
}

.navbar-dprint {
    gap          : 1rem;
    padding      : 1rem 1.35rem;
    border       : 0;
    border-radius: 999px;
    background   : transparent;
    box-shadow   : none;
}

.nav-scroll-brand {
    display         : inline-flex;
    align-items     : center;
    flex-shrink     : 0;
    position        : relative;
    width           : 0;
    max-width       : 0;
    margin          : 0;
    padding         : 0;
    opacity         : 0;
    overflow        : hidden;
    pointer-events  : none;
    transform       : translate3d(4rem, 1.5rem, 0) scale(0.7);
    transform-origin: left center;
    transition      : width 0.45s cubic-bezier(0.22, 1, 0.36, 1),
                      max-width 0.45s cubic-bezier(0.22, 1, 0.36, 1),
                      opacity 0.3s ease,
                      transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.nav-scroll-brand img {
    display   : block;
    width     : auto;
    height    : 3.25rem;
    max-width : none;
    filter    : brightness(0) invert(1);
}

.nav-scroll-brand::after {
    content        : '';
    position       : absolute;
    inset          : -0.15rem;
    background     : repeating-linear-gradient(90deg, var(--ea-primary) 0 0.35rem, transparent 0.35rem 0.7rem),
                     repeating-linear-gradient(0deg, rgba(189, 18, 32, 0.86) 0 0.35rem, transparent 0.35rem 0.7rem);
    opacity        : 0;
    pointer-events : none;
    transform      : translateZ(0);
}

.home-logo-in-nav .nav-scroll-brand {
    width          : 9rem;
    max-width      : 9rem;
    opacity        : 1;
    pointer-events : auto;
    transform      : translate3d(0, 0, 0) scale(1);
}

.home-logo-in-nav .nav-scroll-brand::after {
    animation : logo-pixel-reveal 0.55s steps(8, end) both;
    opacity   : 1;
}

.home-logo-in-nav .hero-banner:not(.hero-banner--compact) .hero-brand {
    opacity   : 0;
    transform : translate3d(-12rem, -5rem, 0) scale(0.42);
}

@keyframes logo-pixel-reveal {
    0% {
        clip-path : inset(0 0 0 0);
        opacity   : 1;
    }
    70% {
        opacity : 1;
    }
    100% {
        clip-path : inset(0 0 0 100%);
        opacity   : 0;
    }
}

.navbar-toggler {
    border        : 1px solid rgba(255, 255, 255, 0.28);
    border-radius : 999px;
    color         : #fff;
    background    : rgba(255, 255, 255, 0.08);
}

.navbar-toggler:focus {
    box-shadow : 0 0 0 0.25rem rgba(255, 255, 255, 0.18);
}

.navbar-nav {
    gap : 0.35rem;
}

.navbar-nav .nav-link {
    padding       : 0.8rem 1.2rem;
    border-radius : 999px;
    color         : rgba(255, 255, 255, 0.96);
    font-weight   : 600;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus,
.navbar-nav .nav-link.active {
    background-color : rgba(255, 255, 255, 0.14);
    color            : #fff;
}

.navbar-nav .nav-item-cta .nav-link {
    display          : inline-flex;
    align-items      : center;
    gap              : 0.55rem;
    background-color : #fff;
    color            : var(--ea-primary);
    margin-right     : 0.35rem;
}

.navbar-nav .nav-item-cta .nav-link .nav-link-icon {
    font-size : 0.95em;
}

.navbar-nav .nav-item-cta .nav-link:hover,
.navbar-nav .nav-item-cta .nav-link:focus {
    background-color : rgba(255, 255, 255, 0.9);
    color            : var(--ea-primary-hover);
}

#content {
    margin-bottom : 4rem;
}

.contentcol,
#content .contact,
.request {
    padding     : 2rem;
    border      : 1px solid var(--ea-border);
    border-radius: var(--ea-radius-xl);
    background  : rgba(255, 255, 255, 0.92);
    box-shadow  : var(--ea-shadow-sm);
}

.contentcol ul,
.contentcol ol,
#content .contact ul,
#content .contact ol {
    padding-left : 1.2rem;
}

.home-copy {
    max-width : 48rem;
    color     : var(--ea-text-soft);
}

.home-copy p {
    margin-bottom : 1rem;
}

.home-copy__lead {
    max-width     : 42rem;
    color         : var(--ea-text-soft);
    font-weight   : 500;
    margin-bottom : 1.5rem;
}

.home-copy__highlight {
    margin        : 1.75rem 0;
    padding       : 1.5rem;
    border        : 1px solid var(--ea-border);
    border-radius : var(--ea-radius-lg);
    background    : var(--ea-primary-subtle);
}

.home-copy__highlight ul {
    display        : grid;
    gap            : 0.75rem;
    margin         : 0;
    padding-left   : 1.2rem;
}

.home-copy__eyebrow {
    margin-bottom  : 0.75rem;
    color          : var(--ea-primary);
    font-size      : 0.85rem;
    font-weight    : 700;
    letter-spacing : 0.08em;
    text-transform : uppercase;
}

.home-copy__closing {
    color       : var(--ea-text);
    font-weight : 700;
}

.home-copy__signature {
    margin-top  : 1.5rem;
    color       : var(--ea-text);
    font-weight : 500;
}

.newsletter-section {
    max-width : 48rem;
}

.newsletter-intro {
    margin-bottom : 1.75rem;
}

.newsletter-kicker {
    margin-bottom  : 0.75rem;
    color          : var(--ea-primary);
    font-size      : 0.85rem;
    font-weight    : 700;
    letter-spacing : 0.08em;
    text-transform : uppercase;
}

.newsletter-intro p:not(.newsletter-kicker) {
    max-width : 40rem;
    color     : var(--ea-text-soft);
    font-size : 1.08rem;
}

.newsletter-form {
    margin-top : 1.5rem;
}

.newsletter-form__hint {
    margin-top : 1rem;
    color      : var(--ea-text-muted);
    font-size  : 0.95rem;
}

.newsletter-message {
    margin-bottom : 1.5rem;
}

.newsletter-message--success {
    border-color : rgba(25, 169, 116, 0.35);
    background   : rgba(25, 169, 116, 0.08);
}

.newsletter-message--error {
    border-color : rgba(214, 69, 107, 0.35);
    background   : rgba(214, 69, 107, 0.08);
}

.druckexperten-section {
    color : var(--ea-text);
}

.druckexperten-header {
    max-width    : 46rem;
    margin       : 0 auto 2rem;
    text-align   : center;
}

.druckexperten-header h1 {
    margin-bottom : 1rem;
    font-size     : clamp(2.35rem, 6vw, 4.6rem);
    line-height   : 0.95;
}

.druckexperten-header p {
    max-width : 34rem;
    margin    : 0 auto;
    color     : var(--ea-text-soft);
    font-size : 1.1rem;
}

.druckexperten-benefits {
    display               : grid;
    grid-template-columns : 1fr;
    gap                   : 1rem;
    margin-bottom         : 2rem;
}

.druckexperten-benefit {
    padding       : 1.35rem;
    border        : 1px solid var(--ea-border);
    border-radius : var(--ea-radius-lg);
    background    : #fff;
    box-shadow    : var(--ea-shadow-sm);
}

.druckexperten-benefit__icon {
    display          : inline-flex;
    align-items      : center;
    justify-content  : center;
    width            : 3rem;
    height           : 3rem;
    margin-bottom    : 1rem;
    border-radius    : 999px;
    background-color : var(--ea-primary-subtle);
    color            : var(--ea-primary);
}

.druckexperten-benefit__icon svg {
    width  : 1.45rem;
    height : 1.45rem;
    fill   : currentColor;
}

.druckexperten-benefit h2,
.druckexperten-card h2 {
    margin-bottom : 0.65rem;
    font-size     : 1.1rem;
    line-height   : 1.15;
}

.druckexperten-benefit p,
.druckexperten-card p {
    margin : 0;
    color  : var(--ea-text-soft);
}

.druckexperten-team {
    display               : grid;
    grid-template-columns : 1fr;
    gap                   : 1rem;
}

.druckexperten-card {
    display        : flex;
    flex-direction : column;
    min-width      : 0;
    overflow       : hidden;
    border         : 1px solid var(--ea-border);
    border-radius  : var(--ea-radius-lg);
    background     : #fff;
    box-shadow     : var(--ea-shadow-sm);
}

.druckexperten-card img {
    display     : block;
    width       : 100%;
    aspect-ratio: 4 / 5;
    object-fit  : cover;
    filter      : grayscale(1) contrast(1.04);
}

.druckexperten-card__body {
    display        : flex;
    flex-direction : column;
    gap            : 0.45rem;
    flex           : 1;
    padding        : 1rem;
    background     : var(--ea-surface);
}

.druckexperten-card__body a {
    overflow-wrap : anywhere;
    color         : var(--ea-text);
    font-weight   : 600;
}

.druckexperten-card__body a:hover,
.druckexperten-card__body a:focus {
    color : var(--ea-primary);
}

.qubecol,
.cubecol {
    display : block;
}

.qubes {
    display        : grid;
    grid-template-columns : repeat(2, minmax(0, 1fr));
    gap            : 1rem;
}

.qube {
    display          : flex;
    align-items      : stretch;
    min-height       : 170px;
    margin           : 0;
    position         : relative;
    border           : 1px solid var(--ea-border);
    border-radius    : var(--ea-radius-lg);
    background-color : #fff;
    box-shadow       : var(--ea-shadow-sm);
    color            : var(--ea-text);
    overflow         : hidden;
    isolation        : isolate;
    transform        : translateY(0) scale(1);
    animation        : qube-reveal 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
    transition       : transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease, background-color 0.35s ease, color 0.35s ease;
}

.qube::before {
    content        : '';
    position       : absolute;
    inset          : -35% auto auto -25%;
    width          : 70%;
    height         : 180%;
    background     : linear-gradient(115deg, rgba(255, 255, 255, 0) 15%, rgba(255, 255, 255, 0.45) 50%, rgba(255, 255, 255, 0) 85%);
    opacity        : 0;
    transform      : translate3d(-120%, 0, 0) rotate(12deg);
    transition     : transform 0.75s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease;
    pointer-events : none;
    z-index        : 0;
}

.qube:hover,
.qube:focus-within {
    background-color : var(--ea-primary);
    color            : #fff;
    border-color     : rgba(189, 18, 32, 0.35);
    box-shadow       : 0 18px 45px rgba(189, 18, 32, 0.22);
    transform        : translateY(-8px) scale(1.015);
}

.qube:hover::before,
.qube:focus-within::before {
    opacity   : 1;
    transform : translate3d(180%, 0, 0) rotate(12deg);
}

.qube-link {
    display         : flex;
    align-items     : center;
    justify-content : center;
    flex-direction  : column;
    width           : 100%;
    padding         : 1.25rem;
    color           : inherit;
    text-align      : center;
    position        : relative;
    z-index         : 1;
}

.qube-link img {
    width         : 120px;
    height        : 120px;
    margin-bottom : 0rem;
    transform     : translateY(0) scale(1);
    filter        : drop-shadow(0 8px 18px rgba(13, 11, 14, 0.08));
    transition    : transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.35s ease;
}

.qube-link:hover {
    color : inherit;
}

.qube:hover .qube-link img,
.qube:focus-within .qube-link img {
    transform : translateY(-4px) scale(1.08);
    filter    : brightness(0) invert(1) drop-shadow(0 10px 22px rgba(255, 255, 255, 0.28));
}

.qube a > p {
    margin-bottom : 0;
    line-height   : 1.1;
    font-weight   : 700;
    transform     : translateY(0);
    transition    : transform 0.35s ease;
}

.qube:hover a > p,
.qube:focus-within a > p {
    transform : translateY(-2px);
}

.qube p > span {
    display     : block;
    margin-top  : 0.25rem;
    font-size   : 0.85rem;
    font-weight : 400;
}

.qube:nth-child(2) {
    animation-delay : 0.06s;
}

.qube:nth-child(3) {
    animation-delay : 0.12s;
}

.qube:nth-child(4) {
    animation-delay : 0.18s;
}

.qube:nth-child(5) {
    animation-delay : 0.24s;
}

.qube:nth-child(6) {
    animation-delay : 0.3s;
}

@keyframes qube-reveal {
    from {
        opacity   : 0;
        transform : translateY(22px) scale(0.96);
    }
    to {
        opacity   : 1;
        transform : translateY(0) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .qube,
    .qube::before,
    .qube-link img,
    .qube a > p,
    .hero-brand,
    .nav-scroll-brand,
    .nav-scroll-brand::after {
        animation  : none;
        transition : none;
    }

    .nav-scroll-brand::after {
        display : none;
    }
}

ul.request.selection li {
    display       : flex;
    align-items   : center;
    gap           : 0.75rem;
    margin-bottom : 0.75rem;
}

ul.request.selection li i,
ul.request.selection li svg {
    color : var(--ea-primary);
}

ul.request.selection li a {
    color       : var(--ea-text);
    font-weight : 500;
}

.request .offer,
.request form.offer {
    padding       : 2rem;
    border        : 1px solid var(--ea-border);
    border-radius : var(--ea-radius-lg);
    background    : var(--ea-surface);
}

.request label,
form.offer label {
    display       : block;
    margin-bottom : 0.5rem;
    font-weight   : 600;
    color         : var(--ea-text);
}

.form-control,
.form-select {
    min-height    : 3.35rem;
    border        : 1px solid var(--ea-border);
    border-radius : 1rem;
    color         : var(--ea-text);
    background    : #fff;
    box-shadow    : none;
}

textarea.form-control {
    min-height : 8rem;
}

.form-control:focus,
.form-select:focus {
    border-color : rgba(189, 18, 32, 0.55);
    box-shadow   : 0 0 0 0.25rem rgba(189, 18, 32, 0.12);
}

form.offer div.form-group input[type="text"]::placeholder,
.form-control::placeholder {
    color   : var(--ea-text-muted);
    opacity : 1;
}

.gallery-masonry {
    column-count : 1;
    column-gap   : 0.85rem;
}

.gallery-masonry__item {
    display       : inline-block;
    width         : 100%;
    margin-bottom : 0.85rem;
    border-radius : 0;
    overflow      : hidden;
    break-inside  : avoid;
}

.gallery-masonry__link {
    display    : block;
    width      : 100%;
    padding    : 0;
    border     : 0;
    background : transparent;
}

.gallery-masonry__link img {
    display    : block;
    width      : 100%;
    transition : transform .3s ease;
}

.gallery-masonry__link:hover img,
.gallery-masonry__link:focus img {
    transform : scale(1.02);
}

.gallery-modal .modal-dialog {
    max-width : min(94vw, 1500px);
}

.gallery-modal .modal-content {
    border-radius : 1.5rem;
    background    : rgba(18, 16, 19, 0.72);
    backdrop-filter: blur(18px);
    box-shadow    : 0 24px 80px rgba(0, 0, 0, 0.28);
    overflow      : hidden;
}

.gallery-modal .modal-header {
    position   : absolute;
    top        : 0;
    right      : 0;
    z-index    : 2;
    padding    : 1rem;
}

.gallery-modal .btn-close {
    width         : 2.75rem;
    height        : 2.75rem;
    border-radius : 999px;
    background-color : rgba(255, 255, 255, 0.88);
    opacity       : 1;
    box-shadow    : 0 8px 24px rgba(13, 11, 14, 0.18);
}

.gallery-modal .modal-body {
    position : relative;
    padding  : 1.5rem 4.5rem;
}

.gallery-modal.show {
    background : rgba(10, 8, 11, 0.42);
}

.gallery-modal__image {
    max-height : 84vh;
    width      : auto;
    border-radius : 0;
    box-shadow : 0 18px 60px rgba(0, 0, 0, 0.32);
}

.gallery-modal__control {
    position        : absolute;
    top             : 50%;
    z-index         : 3;
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    width           : 3.25rem;
    height          : 3.25rem;
    border          : 0;
    border-radius   : 999px;
    background      : rgba(255, 255, 255, 0.9);
    color           : var(--ea-text);
    font-size       : 2.75rem;
    line-height     : 1;
    box-shadow      : 0 10px 30px rgba(13, 11, 14, 0.22);
    transform       : translateY(-50%);
    transition      : background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.gallery-modal__control:hover,
.gallery-modal__control:focus {
    background : var(--ea-primary);
    color      : #fff;
    transform  : translateY(-50%) scale(1.05);
}

.gallery-modal__control--prev {
    left : 1rem;
}

.gallery-modal__control--next {
    right : 1rem;
}

#mapid {
    height        : 400px;
    width         : 100%;
    margin        : 1rem 0;
    border-radius : var(--ea-radius-lg);
    overflow      : hidden;
}

img.claim {
    max-width : 100%;
    width     : 500px;
    height    : auto;
}

img.promotion {
    max-width     : 250px;
    border        : 2px solid var(--ea-primary);
    border-radius : 1rem;
}

#content .contact {
    margin-bottom : 0;
    position : relative;
}

#content .contact.card {
    border-radius : var(--ea-radius-lg);
    overflow      : hidden;
    background    : #fff;
}

#content .contact .contact__media {
    position : relative;
}

#content .contact img {
    display       : block;
    width         : 100%;
    margin-bottom : 0;
    border-radius : 0;
    box-shadow    : none;
    transform     : scale(1) rotate(0deg);
    filter        : saturate(0.94) contrast(1.02);
    transition    : transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), filter 0.35s ease, box-shadow 0.35s ease;
}

#content .contact .contact__media::before {
    content        : '';
    position       : absolute;
    top            : 0;
    left           : 0;
    width          : 100%;
    aspect-ratio   : 4 / 3;
    border-radius  : var(--ea-radius);
    background     : linear-gradient(120deg, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, 0.35) 50%, rgba(255, 255, 255, 0) 80%);
    opacity        : 0;
    transform      : translateX(-110%);
    transition     : transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease;
    pointer-events : none;
    z-index        : 1;
}

#content .contact:hover .contact__media::before,
#content .contact:focus-within .contact__media::before {
    opacity   : 1;
    transform : translateX(110%);
}

#content .contact:hover img,
#content .contact:focus-within img {
    transform  : scale(1.035) rotate(-0.65deg);
    filter     : saturate(1.05) contrast(1.04);
    box-shadow : none;
}

#content .contact .card-body {
    padding    : 1.25rem;
    background : var(--ea-surface);
}

#content .contact .card-body strong {
    color : var(--ea-primary);
}

.row.contacts {
    display               : grid;
    grid-template-columns : repeat(2, minmax(0, 1fr));
    gap                   : 1.5rem;
    margin                : 0;
}

.row.contacts > .contact {
    width      : 100%;
    max-width  : none;
    margin     : 0;
    padding    : 0;
    min-width  : 0;
}

#content div.alert,
.status-message {
    padding       : 1.25rem 1.5rem;
    border        : 1px solid rgba(189, 18, 32, 0.2);
    border-radius : var(--ea-radius-lg);
    background    : var(--ea-primary-subtle);
    color         : var(--ea-text);
}

#content div.alert h4 {
    font-size : 1.3rem;
}

.shoplink {
    margin-top  : 1rem;
    color       : var(--ea-primary);
    font-weight : 700;
}

.shoplink i,
.shoplink svg {
    margin-right : 0.5rem;
}

.shoplink a {
    color            : inherit;
    text-decoration  : underline;
    text-decoration-thickness : 1px;
}

.news-home {
    margin-top : 0.5rem;
}

.news-grid,
.news-list {
    display : grid;
    gap     : 1.25rem;
}

.news-grid {
    grid-template-columns : 1fr;
}

.news-card {
    height        : 100%;
    border        : 1px solid var(--ea-border);
    border-radius : var(--ea-radius-lg);
    background    : #fff;
    box-shadow    : var(--ea-shadow-sm);
    overflow      : hidden;
    transition    : transform 0.25s ease, box-shadow 0.25s ease;
}

.news-card:hover,
.news-card:focus-within {
    transform  : translateY(-4px);
    box-shadow : var(--ea-shadow);
}

.news-card--list {
    grid-template-columns : minmax(0, 240px) minmax(0, 1fr);
}

.news-card--list,
.news-card__image-link {
    display : block;
}

.news-card__image {
    display        : block;
    width          : 100%;
    aspect-ratio   : 16 / 10;
    object-fit     : cover;
    background     : var(--ea-surface-2);
}

.news-card__body {
    display        : flex;
    flex-direction : column;
    gap            : 0.75rem;
    padding        : 1.35rem;
}

.news-card__meta {
    margin         : 0;
    color          : var(--ea-primary);
    font-size      : 0.85rem;
    font-weight    : 700;
    letter-spacing : 0.08em;
    text-transform : uppercase;
}

.news-card__title {
    margin      : 0;
    font-size   : clamp(1.2rem, 2vw, 1.6rem);
    line-height : 1.1;
}

.news-card__title a {
    color : inherit;
}

.news-card__excerpt {
    margin : 0;
    color  : var(--ea-text-soft);
}

.news-card__link {
    margin-top      : auto;
    color           : var(--ea-primary);
    font-weight     : 700;
    text-decoration : none;
}

.news-detail__image {
    width         : 100%;
    margin        : 1.5rem 0;
    border-radius : var(--ea-radius-lg);
    box-shadow    : var(--ea-shadow);
}

.news-detail__content {
    color      : var(--ea-text-soft);
    line-height: 1.8;
}

.pagination-nav {
    display         : flex;
    flex-wrap       : wrap;
    gap             : 0.75rem;
    margin-top      : 2rem;
    justify-content : center;
}

.pagination-nav__link {
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    min-width       : 3rem;
    min-height      : 3rem;
    padding         : 0.5rem 0.9rem;
    border          : 1px solid var(--ea-border);
    border-radius   : 999px;
    background      : #fff;
    color           : var(--ea-text);
    font-weight     : 700;
}

.pagination-nav__link.is-active,
.pagination-nav__link:hover,
.pagination-nav__link:focus {
    border-color     : rgba(189, 18, 32, 0.2);
    background-color : var(--ea-primary);
    color            : #fff;
}

.news-admin-image img {
    display       : block;
    width         : 100%;
    max-width     : 280px;
    border-radius : var(--ea-radius);
    box-shadow    : var(--ea-shadow-sm);
}

.news-editor {
    display : grid;
    gap     : 0.85rem;
}

.news-editor__toolbar {
    display   : flex;
    flex-wrap : wrap;
    gap       : 0.5rem;
}

.news-editor__surface {
    min-height : 14rem;
    padding    : 1rem 1.1rem;
    overflow   : auto;
}

.news-editor__surface:focus {
    outline : none;
}

.news-editor__surface p:last-child,
.news-editor__surface ul:last-child,
.news-editor__surface ol:last-child {
    margin-bottom : 0;
}

.news-editor__hint,
.news-image-help {
    color     : var(--ea-text-muted);
    font-size : 0.95rem;
}

.news-image-uploader {
    display : grid;
    gap     : 1rem;
}

.news-image-dropzone {
    padding       : 1.5rem;
    border        : 1.5px dashed rgba(189, 18, 32, 0.35);
    border-radius : var(--ea-radius-lg);
    background    : linear-gradient(180deg, rgba(189, 18, 32, 0.05), rgba(189, 18, 32, 0.02));
    color         : var(--ea-text-soft);
    text-align    : center;
    cursor        : pointer;
    transition    : border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.news-image-dropzone:hover,
.news-image-dropzone:focus,
.news-image-dropzone.is-dragover {
    border-color     : var(--ea-primary);
    background-color : rgba(189, 18, 32, 0.08);
    transform        : translateY(-2px);
}

.news-image-editor {
    display : grid;
    gap     : 1rem;
}

.news-image-stage {
    position      : relative;
    width         : 100%;
    overflow      : hidden;
    border-radius : var(--ea-radius-lg);
    background    : linear-gradient(135deg, #1e1a1e, #494149);
    cursor        : grab;
    touch-action  : none;
    user-select   : none;
}

.news-image-stage.is-dragging {
    cursor : grabbing;
}

.news-image-preview {
    position         : absolute;
    top              : 0;
    left             : 0;
    width            : auto;
    height           : auto;
    max-width        : none;
    transform-origin : top left;
    will-change      : transform;
}

.news-image-crop-frame {
    position        : absolute;
    inset           : 0;
    border          : 2px solid rgba(255, 255, 255, 0.92);
    border-radius   : var(--ea-radius-lg);
    box-shadow      : 0 0 0 9999px rgba(13, 11, 14, 0.38) inset;
    pointer-events  : none;
}

.news-image-toolbar {
    display     : grid;
    gap         : 0.9rem;
    align-items : center;
}

.news-image-toolbar__label {
    margin-bottom : 0;
}

.news-image-toolbar input[type="range"] {
    width : 100%;
}

.news-admin-list {
    display : grid;
    gap     : 1rem;
}

.news-admin-item {
    padding       : 1.5rem;
    border        : 1px solid var(--ea-border);
    border-radius : var(--ea-radius-lg);
    background    : #fff;
    box-shadow    : var(--ea-shadow-sm);
}

.news-admin-item h2 {
    margin-bottom : 0.75rem;
    font-size     : 1.35rem;
}

.news-admin-item p:last-of-type {
    margin-bottom : 1rem;
}

.iframe-container {
    position     : relative;
    overflow     : hidden;
    padding-top  : 75%;
    border-radius: var(--ea-radius-lg);
}

.iframe-container iframe {
    position : absolute;
    top      : 0;
    left     : 0;
    width    : 100%;
    height   : 100%;
    border   : 0;
}

.footer {
    border-top : 1px solid var(--ea-border);
    background : rgba(255, 255, 255, 0.96);
}

.footer,
.footer a {
    color : var(--ea-text-soft);
}

.footerlinks {
    font-size : 0.95rem;
}

.footer-copyright {
    border-top : 1px solid var(--ea-border);
    font-size  : 0.9rem;
}

.footer .fab {
    font-size : 1.25rem;
}

@media (min-width : 768px) {
    .gallery-masonry {
        column-count : 2;
    }

    .druckexperten-benefits,
    .druckexperten-team {
        grid-template-columns : repeat(2, minmax(0, 1fr));
    }

    .news-grid {
        grid-template-columns : repeat(2, minmax(0, 1fr));
    }

    .news-card--list {
        display : grid;
    }
}

@media (min-width : 992px) {
    .qubes {
        grid-template-columns : repeat(2, minmax(0, 1fr));
    }

    .druckexperten-benefits {
        grid-template-columns : repeat(3, minmax(0, 1fr));
    }
}

@media (min-width : 1200px) {
    .gallery-masonry {
        column-count : 3;
    }

    .druckexperten-team {
        grid-template-columns : repeat(3, minmax(0, 1fr));
    }

    .news-grid {
        grid-template-columns : repeat(3, minmax(0, 1fr));
    }
}

@media (max-width : 991.98px) {
    .site-header {
        padding-top : 5.75rem;
    }

    .hero-banner,
    .contentcol,
    #content .contact,
    .request {
        padding : 1.5rem;
    }

    .mainnav-fluid {
        padding : 0.6rem 0;
    }

    .navbar-dprint {
        padding      : 1rem;
        border-radius: 1.5rem;
    }

    .home-logo-in-nav .nav-scroll-brand {
        width     : 7rem;
        max-width : 7rem;
    }

    .nav-scroll-brand img {
        height : 2.75rem;
    }

    .navbar-collapse {
        padding-top : 1rem;
    }

    .navbar-nav .nav-link {
        text-align : center;
    }

    .hero-brand {
        top   : 0.9rem;
        right : 0.9rem;
    }
}

@media (max-width : 767.98px) {
    .display-title {
        max-width : none;
    }

    .row.contacts {
        grid-template-columns : 1fr;
    }

    .qubes {
        grid-template-columns : 1fr;
    }

    .hero-contact .shop img,
    .shop img {
        max-width : 10rem;
    }

    .hero-banner {
        padding-top : 5.5rem;
    }

    .hero-brand {
        top   : 0.85rem;
        right : 0.85rem;
    }

    .hero-brand img {
        height    : 5.6rem;
        max-width : 26rem;
    }

    .hero-banner--compact .hero-brand img {
        height    : 4.5rem;
        max-width : 14rem;
    }

    .gallery-modal .modal-body {
        padding : 4rem 1rem 1rem;
    }

    .gallery-modal__control {
        top       : 1rem;
        width     : 2.75rem;
        height    : 2.75rem;
        font-size : 2.2rem;
        transform : none;
    }

    .gallery-modal__control:hover,
    .gallery-modal__control:focus {
        transform : scale(1.05);
    }

    .news-grid {
        grid-template-columns : 1fr;
    }

    .news-card--list {
        grid-template-columns : 1fr;
    }

    .footerlinks {
        gap : 0.5rem;
    }
}
