@font-face {
    font-family: "ssvc-liberation-sans";
    src: url('../fonts/liberation/LiberationSans-Regular.woff2') format('woff2');
}

@font-face {
    font-family: "ssvc-liberation-mono";
    src: url('../fonts/liberation/LiberationMono-Regular.woff2') format('woff2');
}

@font-face {
    font-family: "ssvc-dancing-script";
    src: url('../fonts/Dancing_Script/DancingScript-VariableFont_wght.woff2') format('woff2');
}

:root {
    --form-background: #E4F1F6;
    --section-background: #D1E7EF;
}

/* --- Theme B Overrides (Activated via data attribute) --- */
[form-theme="pressurised-vessel"] {
    --form-background: #ffdab9;
    --section-background: #ffefd5;
}

[form-theme="public-camping"] {
    --form-background: #F4F2FD;
    --section-background: #E5E0FA;
}

/*
* Precision Layout Engine by Inplico (v1.3)
* -----------------------------------------------------------------------
* PAGE LAYOUT:
*
* Page Size - 210.0000 (209.8146)mm x 297.0000 (296.5979)mm
* Margin H  - 8.0000mm
* Margin V  - 8.0000mm
* -----------------------------------------------------------------------
* This CSS is mathematically quantized for 0-drift PDF generation.
* Generated on: 2026-07-12 | License: Standard Attribution
*
* NOTICE: This header must remain intact for free commercial use.
* To obtain a Private Label license (white-label / header removal),
* please visit: https://inplico.uk
*
* Unauthorized removal of this notice is a breach of license.
*
* Technical Support: support@inplico.uk
* -----------------------------------------------------------------------
*/
* {
    box-sizing: border-box !important;
    margin: 0;
    padding: 0;
    line-height: 11.25pt;
    font-family: 'ssvc-liberation-sans', sans-serif;
    font-size: 9.75pt;
    border: 0 solid transparent;
    /* Hard-kills invisible default borders */
    outline: none;
}

@page {
    size: 594.7500pt 840.7500pt;
    margin: 0;
}

html, body {
    width: 594.7500pt;
    margin: 0;
    padding: 0;
    background-color: transparent !important;
}

.page {
    width: 594.7500pt;
    height: 840.7500pt;
    background-color: white !important;
    display: grid;
    grid-template-columns: 22.5000pt 549.7500pt 22.5000pt;
    grid-template-rows: 22.5000pt 795.7500pt 22.5000pt;
    break-after: page;
    position: relative;
    overflow: hidden;
    border-radius: 0;
    box-shadow: 0 0 3.75pt rgba(0, 0, 0, 0.1);
}

.subpage {
    grid-area: 2 / 2 / 3 / 3;
    display: grid;
    position: relative;
    overflow: hidden;
    outline: .75pt solid blue;
    background: var(--form-background);
}

@media print {
    body {
        /* Forces the layout engine to use integer-based geometric precision */
        text-rendering: geometricPrecision;
        -webkit-font-smoothing: subpixel-antialiased;
    }

    .page {
        border: none;
        box-shadow: none;
    }

    .subpage {
        outline: none;
    }

    .page:last-of-type {
        break-after: avoid !important;
        page-break-after: avoid !important;
    }

    input[type="text"], input[type="email"], textarea {
        background: white !important;
        border: none;
    }

    textarea::placeholder,
    input::placeholder {
        opacity: 0;
        color: white;
        border: none;
        /* Fallback for older engines */
    }
}

p, span, label, div, b, strong, i, em, a, h1, h2, h3, h4, h5, h6, td, th {
    overflow-wrap: break-word;
    word-break: break-word;
}

label, span {
    white-space: nowrap;
    text-overflow: clip;
}

.watermark {
    display: grid;
    place-items: center;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 549.7500pt !important;
    height: 795.7500pt !important;
    pointer-events: none !important;
    z-index: 0 !important;
    opacity: 0.05 !important;
    /* Forces WebKit/Safari to print background layers */
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
}

.pagecontent.first {
    grid-template-rows: 138pt 657pt;
}

.pagecontent {
    display: grid;
    grid-template-columns: 448.5pt 100.5pt;
    grid-template-rows: 0 795.75pt;
}

h1 {
    font-size: 24pt;
    margin-top: 16.5pt;
    font-weight: bold;
    line-height: 24pt;
}

h2 {
    font-size: 18pt;
    margin-top: 16.5pt;
    font-weight: bold;
    line-height: 18pt;
}

.header {
    grid-area: 1 / 1 / 2 / 2;
    display: grid;
    /* Grid columns = inside margins - border */
    grid-template-columns: 81pt 467.25pt;
    grid-template-rows: 36pt 35.25pt 35.25pt 30pt;
    border: .75pt solid black;
    width: 549.75pt;
    height: 138pt;
}

.header>* b,
strong {
    display: contents;
}

.header-logo {
    grid-area: 1 / 1 / 5 / 1;
    display: grid;
    border-right: solid .75pt;
    background: #fff;
}

.header-logo>.content {
    display: grid;
    grid-template-rows: 86.25pt 49.5pt;
    align-items: center;
    object-fit: contain;
}

.header-logo img {
    grid-area: 1 / 1 / 2 / 2;
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
    justify-self: center;
    align-self: center;
    padding: 8.25pt;
}

.header-text-under-logo {
    grid-area: 2 / 1 / 2 / 2;
    display: grid;
    padding: 0 .75pt;
    align-items: center;
    font-size: 10.5pt;
    font-weight: bold;
    text-align: center;
}

.heading {
    grid-area: 1 / 2 / 1 / 3;
    display: grid;
    align-items: center;
    text-align: center;
    font-size: 27.75pt;
    font-weight: bold;
}

.header-company {
    grid-area: 2 / 2 / 2 / 3;
    background: var(--form-background);
    display: flex;
    justify-content: center;
    width: 465.75pt;
    align-items: center;
    font-size: 10.5pt;
    font-weight: normal;
    text-align: center;
}

.header-company>br {
    line-height: 12pt;
}

.header-date {
    grid-area: 2 / 2 / 2 / 3;
    background: var(--form-background);
    display: grid;
    align-items: center;
    font-size: 18pt;
    text-align: center;
    font-weight: bold;
}

.header-slogan {
    grid-area: 3 / 2 / 3 / 3;
    background: var(--form-background);
    display: grid;
    align-items: center;
    font-size: 10.5pt;
    font-weight: bold;
    text-align: center;
    line-height: 13.5pt;
}

.header-contact {
    grid-area: 4 / 2 / 4 / 3;
    background: var(--form-background);
    display: grid;
    width: 465.75pt;
    height: 30pt;
    align-items: center;
    font-size: 10.5pt;
    font-weight: normal;
    text-align: center;
    border-top: .75pt solid black;
}

.office-column {
    grid-area: 2 / 2 / 3 / 3;
    display: grid;
    align-content: start;
    background: var(--section-background);
    border-right: solid var(--section-background);
    padding-left: 4.5pt;
    padding-right: 4.5pt;
}

.office-column>* {
    margin-top: 18pt;
}

.client-column {
    grid-area: 2 / 1 / 3 / 2;
    display: grid;
    align-content: start;
}

/* Rigid Section Boxes */
.form-section {
    display: grid !important;
    align-content: start;
    margin: 4.5pt 8.25pt;
    padding: 3.75pt 6pt 7.5pt 6pt;
    background: var(--section-background);
    outline: none;
    border: none;
}

.form-section:first-of-type {
    margin-top: 9pt !important;
}

/* 3. Keep the inner groups as simple blocks inside the rigid grid tracks */
.form-group.stack {
    display: block !important;
    margin-bottom: 3pt !important;
}

.form-group.stack label {
    display: block !important;
    margin-bottom: 3pt !important;
}

.form-group.stack input[type=text],
.form-group.stack input[type=email] {
    width: 100% !important;
    box-sizing: border-box !important;
}

.half-column {
    display: grid;
    grid-template-columns: 206.25pt 206.25pt;
}

legend {
    font-weight: bold;
    background-color: var(--section-background);
    padding: 1.5pt 7.5pt;
    text-transform: uppercase;
    letter-spacing: 0.75pt;
}

.form-group {
    display: flex;
    flex-direction: row;
    padding-top: 6pt;
}

.form-group.stack {
    flex-direction: column !important;
}

.fixed-set {
    display: flex;
    flex-direction: row;
}

label {
    font-weight: bold;
}

label.stack {
    margin-bottom: 3pt;
}

.form-group>label.left,
.fixed-set>label.left {
    margin-right: 8.25pt;
}

.form-group>label.right,
.fixed-set>label.right {
    margin-left: 8.25pt;
}

.form-section>.footnote {
    margin-top: 1.5pt;
    margin-bottom: 3pt;
}

/* Replaces your flex parent container */
.text-row-container {
    display: block;
    height: 11.25pt;
    width: 100%;
}

/* Replaces your paragraph styles */
.text-row-container>* {
    display: inline-block;
    height: 10.5pt;
    font-size: 8.25pt;
    line-height: 11.25pt;
    /* Keeps the text vertically centered */
    vertical-align: top;
    /* Prevents text alignment shifting the box */
}

ol,
ul {
    margin-left: 10.5pt;
}

ol>li,
ul>li {
    font-size: 8.25pt;
}

p {
    padding-top: 6pt !important;
}

.warning-text {
    font-weight: bold;
    color: #b30000;
    margin: 7.5pt 0;
}

input[type=checkbox] {
    /* Add if not using autoprefixer */
    -webkit-appearance: none;
    /* Remove most all native input styles */
    -moz-appearance: none;
    appearance: none;
    /* For iOS < 15 */
    background-color: var(--form-background);
    /* Not removed via appearance */
    margin: 0;
    font: inherit;
    width: 14.25pt;
    height: 14.25pt;
    border: 1.5pt solid black;
    border-radius: 1.5pt;
    /* transform: translateY(-0.075pt); */
    display: grid;
    place-content: center;
    background: var(--form-background);
}

input[type=checkbox].office {
    width: 18pt;
    height: 18pt;
}

input[type=text],
input[type=email] {
    height: 16.5pt;
}

input[type="checkbox"]::before {
    display: grid;
    content: "X";
    text-align: center;
    justify-content: center;
    font-weight: 900;
    font-size: 13.5pt;
    width: 10.5pt;
    height: 10.5pt;
    /* scale to 0 when unchecked */
    transform: scale(0);
    color: black;
}

input[type=checkbox]:checked::before {
    /* Scale to 1 when checked */
    transform: scale(1);
}

/* input[type=checkbox]:focus {
  outline: max(2px, 0.15em) solid currentColor;
  outline-offset: max(2px, 0.15em);
} */
input[type=checkbox]:disabled {
    --form-control-color: var(--form-control-disabled);
    color: var(--form-control-disabled);
    cursor: not-allowed;
}

input[type="text"], input[type="email"], textarea {
    font-family: 'ssvc-liberation-mono';
    font-size: 10.5pt;
    color: #000080;
    padding: 3pt 6pt;
    resize: none;
    overflow: hidden;
    width: 100%;
}

.footer {
    display: block;
    position: absolute;
    width: inherit;
    bottom: 0;
    left: 0;
    width: 448.5pt;
    font-size: 7.5pt;
    padding: 3pt 8.25pt 3pt 8.25pt;
    line-height: 10.5pt;
}

.footer>* {
    font-size: inherit;
    line-height: inherit;
}

table {
    border: solid 0.75pt;
    border-collapse: collapse;
}

th {
    height: 16.5pt;
}

td {
    border: solid 0.75pt;
    height: 21.75pt;
}

td.label {
    padding-left: 4.5pt;
    font-weight: bold;
    font-size: 9pt;
    line-height: 10.5pt;
}

td>input {
    display: block;
    height: 21pt !important;
    width: 100%;
    margin: 0;
    background: #fff;
    border: none;
}
