* {
    margin: 0;
    padding: 0;
    border: 0;
}

@page {
    size: A4;
    margin: 30mm 15mm 30mm;
    border-top: 0.5pt solid black;
    @top {
        content: flow(head);
        vertical-align: top;
    }
    @bottom {
        content: flow(foot);
        vertical-align: top;
    }
}
body {
    color: #000;
    background: #fff;
    font-family: sans-serif;
    font-size: 9pt;
    line-height: 12pt;
    text-align: left;
}

/* Header */
#ReceiptHeader {
    position: relative;
    top: 5mm;
    flow: static(head);
    height: 25mm;
    overflow: hidden;
}
#Logo {
    float: left;
    width: 100mm;
    height: 20mm;
    overflow: hidden;
}
#Logo .NoLogoImage {
    display: none;
}
#Logo img {
    display: block;
    margin: 0;
    padding: 0;
    prince-image-resolution: 300;
    max-height: 20mm;
    max-width: 80mm;
}
#ReceiptTitle {
    float: left;
    width: 80mm;
    overflow: hidden;
    padding-top: 4mm;
}
#ReceiptTitle * {
    margin: 0;
    line-height: 16pt;
}
#ReceiptTitle h1 {
    font-size: 14pt;
}
#ReceiptTitle h4 {
    height: 16pt;
    width: 80mm;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* Footer */
#ReceiptContact {
    position: relative;
    min-height: 25mm;
    height: auto;
    border-top: 1pt solid black;
    flow: static(foot);
}
#PrintContactAddress,
#PrintContactElectrical,
#PrintBanner {
    position: relative;
    float: left;
    padding: 7pt 0;
}
#PrintContactAddress {
    width: 40%;
}
#PrintContactElectrical {
    width: 40%;
}
#PrintBanner {
    width: 20%;
}

#PrintBanner {
    max-height: 20mm;
    overflow: hidden;
    text-overflow: ellipsis;
}
#PrintBanner * {
    margin: 0;
    text-overflow: ellipsis;
    max-width: 100%;
    height: auto;
}

#InfoWrapper {
    float: left;
    width: 100%;
    overflow: hidden;
    padding: 5mm 0;
}
p {
    color: red;
}

#ShippingAddress {
    position: relative;
    padding: 24pt 0 0 36pt;
    float: left;
    width: 100mm;
    box-sizing: border-box;
    overflow: hidden;
}
#ShippingAddress p {
    font-size: 12pt;
    line-height: 18pt;
    margin: 0;
    padding: 0;
}
#OrderInfo {
    position: relative;
    float: left;
    width: 80mm;
}
#OrderInfo dl {
    margin: 0;
    width: 45mm;
}
#ReturnedBy {
    clear: both;
    padding-top: 15pt;
}
#CustomerInfo {
    position: relative;
    float: left;
    width: 41.1mm;
    padding: 7pt 0;
}

dl {
    padding: 0 0 0 35mm;
    box-sizing: border-box;
    width: 100% !important;
}
dt {
    float: left;
    clear: left;
    margin: 0 0 0 -35mm;
    width: 33mm;
    height: auto;
    font-weight: normal;
    color: #666;
}
dd {
    width: 99%;
    float: left;
    margin: 0;
    padding: 0;
}

small {
    font-size: 7.5pt;
    font-weight: normal !important;
}

ul, ol, dl, h1, h2, h3, h4, h5, h6, table, pre, p, blockquote, blockcode, address {
    margin: 0 0 14pt;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: bold;
    color: #000;
    padding: 0;
    margin: 0 0 14pt;
}
h2 {
    font-size: 14pt;
}
h3 {
    font-size: 12pt;
}
h4 {
    font-size: 10pt;
}

a, a:link, a:visited, a:active {
    outline: 0;
    text-decoration: none;
    color: #000;
}

#PrintProducts {
    width: 100%;
    clear: both;
    margin-top: 14pt;
}
#VatDesc {
    text-align: center;
    font-size: 7.5pt;
}

table {
    width: 100%;
    border-collapse: collapse;
}
th, td {
    text-align: left;
    padding: 5pt 3pt;
    border-bottom: 0.25pt dashed black;
    font-weight: normal;
    vertical-align: top;
}

thead th {
    text-transform: uppercase;
    font-size: 7.5pt;
    color: #666;
    font-weight: bold;
}

#PrintProducts tfoot {
    display: table-row-group !important;
}
#PrintProducts tfoot tr td,
#PrintProducts tfoot tr th {
    padding-bottom: 0;
}
th *, td * {
    margin: 0;
}

tr > :first-child {
    padding-left: 0;
}
tr > :last-child {
    padding-right: 0;
}

tr th, tr td {
    text-align: left;
}
tr th + th, tr th + td, tr td + td, tr td + th {
    text-align: right;
}

thead tr th {
    text-align: left !important;
}
thead tr th + th {
    text-align: right !important;
}

#PrintProducts tfoot tr td,
#PrintProducts tfoot tr th {
    text-align: right;
}

th h3 {
    font-size: 10.5pt;
    font-weight: bold;
}
th h3 .ProductVariation {
    font-size: 9pt;
    font-weight: normal;
    vertical-align: text-top;
    font-style: normal;
}

th h3 + * {
    margin-top: 3.5pt;
}

table dl {
    padding-left: 25mm;
    font-size: 8.5pt !important;
}
table dl dt {
    width: 23mm !important;
    margin: 0 0 0 -25mm;
    padding: 0;
    word-wrap: break-word;
    word-break: break-all;
}

table tr th.CartProduct {
    min-width: 60mm;
}

td.CartTotal {
    font-weight: bold;
}
tr.CartTotal td, tr.CartTotal th {
    border-bottom: 0;
}
tr.CartTotal td.CartTotal {}
tr#FullTotal td.CartTotal {
    font-size: 12pt;
}

#VatInfo {
    margin: 0 auto 1em;
    text-align: center;
    font-size: 7.5pt;
}
#VatInfo table {
    width: auto;
    margin: 0 auto;
    font-size: 7.5pt;
    line-height: 9pt;
    min-width: 50%;
}
#VatInfo table td,
#VatInfo table th {
    padding: 3px 9px;
}

#TransactionsInfo {
    margin: 0 auto 1em;
    text-align: center;
    font-size: 7.5pt;
}
#TransactionsInfo table {
    width: auto;
    margin: 0 auto 20pt auto;
    font-size: 7.5pt;
    line-height: 9pt;
    min-width: 50%;
}
#TransactionsInfo table td,
#TransactionsInfo table th {
    padding: 3px 9px;
}

#PaymentDetails {
    width: 100%;
    border-collapse: collapse;
    border: 0.5pt solid black;
    caption-side: top;
    min-height: 6cm;
    margin: 0 auto 1em;
    page-break-inside: avoid;
}
#PaymentDetails td, #PaymentDetails th {
    border: 0.5pt solid black;
    padding: 3pt;
    text-align: left !important;
}
#OrderPaymentTransactions p {
    margin-bottom: 1em;
}
#OrderPaymentTransactions h4 {
    text-transform: uppercase;
}
#OrderPaymentTransactions table,
#OrderPaymentTransactions table td,
#OrderPaymentTransactions table th {
    border: 0;
    padding: 0;
    margin: 0;
    text-align: left !important;
    font-size: 7.5pt;
}
#PaymentDetails td#OrderOpenTotal {
    font-size: 12pt;
    font-weight: bold;
    height: 1cm;
    line-height: 1cm;
    text-align: right !important;
}

/* Return document */

#ReturnIntro {
    padding: 1em 0;
    font-size: 9pt;
    font-style: italic;
}
#ReturnAddressInfo {
    width: 100%;
    overflow: hidden;
}
.AddressColumn {
    box-sizing: border-box;
    width: 49.9%;
    float: left;
    padding-right: 2em;
}
.AddressColumn + .AddressColumn {
    padding-left: 2em;
    padding-right: 0;
}
.AddressColumn dl {
    width: 100%;
    overflow: hidden;
    margin-bottom: 1em;
}
#ReturnedProducts, #ReturnedProducts td, #ReturnedProducts th {
    border: 0;
    width: auto;
    text-align: left !important;
}
#ReturnedProducts thead th {
    padding: 0;
    border-bottom: 0.25pt solid #000;
}
#ReturnedProducts th {
    font-weight: bold;
}
#ReturnedProducts th em {
    font-weight: normal;
}
#ReturnedProducts th small {
    font-weight: normal;
    font-size: 7.5pt;
}
#ReturnedProducts td {
    padding: 0 6pt;
    vertical-align: middle;
}
#ReturnedProducts .checkbox {
    padding-left: 0;
}
#ReturnedProducts .checkbox div {
    border: 1pt solid #000;
    width: 18pt;
    height: 18pt;
    padding: 0;
    margin: 3pt 3pt 3pt 0;
}
#Signature {
    width: 75%;
    margin-top: 4em;
    border-bottom: 0.25pt solid #000;
}
#Signature h4 {
    font-size: 9pt;
    font-weight: normal;
    margin-bottom: 4em;
}

/* Fix dl list overflow */

.CartProduct dl,
#OrderInfo dl {
    display: flex;
    flex-flow: row wrap;
    padding: 0;
}
.CartProduct dt,
#OrderInfo dt {
    flex-basis: 30%;
    margin: 0 0 5pt;
    min-width: 33mm;
    width: auto !important;
    word-wrap: normal;
    word-break: normal;
}
#OrderInfo dt {
    margin-bottom: 0;
}
.CartProduct dd,
#OrderInfo dd {
    flex-basis: 50%;
    flex-grow: 1;
    margin: 0;
}
.BorderSection {
    height: 30pt;
    position: relative;
}
td.Border {
    display: block;
    height: 20pt;
    border-bottom: 0.25pt solid #000 !important;
}
