body {
    margin: 0px;
    padding: 0px;
    background: #fff;
    font-family: 'Arial', 'Helvetica', sans-serif;
    font-weight: 500;
}

/* Provisional-type templates: keep only DB-generated values bold */
.template-container.values-bold-only .temp-body {
    font-weight: 400;
}

.template-container.values-bold-only .temp-body b,
.template-container.values-bold-only .temp-body strong {
    font-weight: 400;
}

.template-container.values-bold-only .temp-body span {
    font-weight: 400;
}

.template-container.values-bold-only .temp-body span.cert-generated {
    font-weight: 700;
}

.template-container .table-no-border tr, .template-container .table-no-border tr td, .template-container .table-no-border tr th, .template-container .table-no-border h2, .template-container .table-no-border h4, .template-container .table-no-border p {
    margin: 0px;
    padding: 0px;
    border: 0px;
    font-family: 'Arial', 'Helvetica', sans-serif;
    font-weight: 500;
    font-size: 14px;
    padding: 0;
}
.template-container {
    margin: 15px auto;
    width: auto;
    max-width: 100%;
    height: auto;
    display: block;
    border: 15px solid transparent;
    border-image: url('background-border.png') 30 stretch;
    word-break: break-word;
    white-space: normal;
    overflow-wrap: break-word;
}

.template-container .template-inner {
    padding: 10px 15px;
}

.template-container .table-no-border {
    width: 100%;
    max-width: 100%;
    height: auto;
    border: 0px;
    padding: 0px;
    margin: 0px;
    border-collapse: collapse;
}

.template-container .temp-logo {
    float: left;
    width: 15%;
    max-width: 15%;
    padding: 6px 6px;
    box-sizing: border-box;
}

.template-container .temp-logo.last {
    float: right;
}

.template-container .temp-logo .inner {
    float: left;
    width: auto;
    max-width: 100%;
    height: auto;
    padding: 0px 14px !important;
}

.template-container .temp-logo img {
    margin: auto;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 100%;
}

.template-container .temp-logo .inner p {
    padding-top: 10px;
    font-size: 22px;
    line-height: 1.2;
    color: #524e47;
    font-style: normal;
    font-weight: 600;
    display: block;
    text-align: center;
    word-spacing: 3px;
}

.template-container .temp-title {
    float: left;
    width: 70%;
    min-width: 70%;
    padding: 12px 16px !important;
    box-sizing: border-box;
    text-align: center;
}

.template-container .temp-title h2 {
    padding: 10px 0px;
    font-size: 21px;
    line-height: 1.3;
    color: #1f2d44;
    font-style: normal;
    font-weight: 900;
    text-transform: none;
    word-spacing: 8px;
}

.template-container .temp-title p {
    padding: 4px 0px;
    font-size: 13px;
    line-height: 1.25;
    color: #343a40;
    font-style: normal;
    font-weight: 600;
    text-align: center;
    word-spacing: 2px;
    margin: 0px;
}

.template-container .temp-title p:last-of-type {
    font-size: 15px;
    font-weight: 600;
    margin-top: 2px;
}

.certificate-address-phone {
    white-space: nowrap !important;
    display: inline-block !important;
    width: 100% !important;
    text-align: center !important;
    line-height: 1.0 !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #343a40 !important;
    word-spacing: 2px !important;
}

.template-container .main-title {
    width: 100%;
    max-width: 100%;
    padding: 0px;
    margin: 0px;
    text-align: center;
}

.template-container .main-title h4 {
    padding: 0px;
    font-size: 26px;
    line-height: 1.9;
    color: #524e47;
    font-style: normal;
    font-weight: 700;
    text-transform: capitalize;
    word-spacing: 10px;
}

.template-container .meta-data {
    float: left;
    width: 50%;
    text-align: left;
}

.template-container .meta-data .inner {
    width: auto;
    max-width: 100%;
    height: auto;
    padding: 20px 20px 0px;
    font-size: 14px;
    line-height: 1.2;
    color: #524e47;
    font-style: normal;
    font-weight: 700;
    display: block;
    word-spacing: 3px;
}

.template-container .meta-data.last {
    float: right;
    text-align: right;
}

.template-container .temp-body {
    width: 100%;
    max-width: 100%;
    height: auto;
    padding: 20px 0px;
    font-size: 20px;
    line-height: 1.4;
    color: #524e47;
    font-weight: 500;
    display: block;
    text-align: justify;
    word-spacing: 3px;
    font-style: normal;
    word-break: break-word;
    white-space: normal;
    overflow-wrap: break-word;
}

.template-container .temp-body span {
    font-weight: 400;
}

.template-container .temp-body span.cert-generated {
    font-weight: 700;
}

.template-container .temp-footer {
    float: left;
    width: 33.33%;
    text-align: center;
    word-break: break-word;
    white-space: normal;
    overflow-wrap: break-word;
}

.template-container .temp-footer.temp-footer-left {
    text-align: left;
}

.template-container .temp-footer.temp-footer-center {
    text-align: center;
}

.template-container .temp-footer.temp-footer-right {
    text-align: right;
}

.template-container .temp-footer .inner {
    padding: 60px 0px 0px;
}

.template-container .temp-footer .inner p {
    font-size: 16px;
    line-height: 1.6;
    color: #524e47;
    font-style: normal;
    font-weight: 900;
    display: block;
    word-spacing: 3px;
}

.inner {
    word-break: break-word !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

.template-container {
    position: relative;
    background: transparent;
}

.template-container.has-bg {
    border: 0 !important;
    border-image: none !important;
    /* Remove the extra outer gap when using a full-frame border background */
    margin: 0 auto;
}

.template-container.has-bg::before {
    content: \"\";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: var(--template-bg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    z-index: 0;
    pointer-events: none;
}

.template-container.has-bg .template-inner {
    position: relative;
    z-index: 1;
    /* Safe area so text doesn't cross the decorative border */
    padding: 78px 58px 56px 58px;
    box-sizing: border-box;
}

.template-container.has-bg::before {
    display: none;
}

.template-container.has-bg .template-bg {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    /* If border image contains transparency, blend with white (not modal bg) */
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    z-index: 0;
    pointer-events: none;
}

/* Printing background frames is more reliable as an <img> than CSS backgrounds */
.template-bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    z-index: 0;
    pointer-events: none;
}

.template-container.has-bg .temp-title {
    padding: 0 10px !important;
}

/* Tighten left/right columns a bit so content stays within border nicely */
.template-container.has-bg .temp-logo .inner {
    padding: 0 6px !important;
}

.template-container.has-bg .temp-logo {
    padding: 0 !important;
}

.template-container.has-bg .temp-title h2 {
    padding: 0 0 6px !important;
}

.template-container.has-bg .meta-data .inner {
    padding: 12px 0 0 !important;
}

.template-container.has-bg .temp-body {
    padding: 14px 0 !important;
}

.template-container.has-bg .temp-footer .inner {
    padding: 35px 0 0 !important;
}

.temp-footer {
    padding-bottom: 20px;
}

.template-inner {
    box-sizing: border-box;
}

.table-striped tbody tr:nth-of-type(2n+1) {
    background-color: transparent !important;
}
