.cnx-quote{--cnx-navy:#041b47;--cnx-blue:#146cff;display:grid;gap:3rem;max-width:1050px;margin-inline:auto}.cnx-quote section{min-width:0}.cnx-quote h2{font-size:clamp(1.5rem,3vw,2rem);margin:0 0 1rem}.cnx-message{padding:1.2rem 1.5rem;border:1px solid #a9d5ba;border-left:4px solid #23713d;border-radius:.4rem;background:#f2faf5;color:#173e23}.cnx-message.is-error{background:#fff7f5;border-color:#cf6c51;color:#7b2513}.cnx-message p{margin:0}.cnx-message ul{margin-bottom:0}.cnx-quote a{color:var(--cnx-blue);text-underline-offset:.2em}.cnx-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem 1.5rem}.cnx-field{margin-bottom:1.4rem}.cnx-form-grid .cnx-field{margin:0}.cnx-form-grid{margin-bottom:1.5rem}.cnx-field label,.cnx-add-quote label{display:block;font-weight:650;color:var(--cnx-navy);margin-bottom:.45rem}.cnx-field label span{font-weight:400;color:#586579}.cnx-field input,.cnx-field textarea,.cnx-add-quote select,.cnx-add-quote input[type=number],.cnx-quote table input{box-sizing:border-box;background:white;border:1px solid #acb8c8;border-radius:.35rem;color:var(--cnx-navy);font:inherit;min-height:48px;padding:.7rem .85rem;max-width:100%;width:100%}.cnx-field textarea{resize:vertical}.cnx-field input:focus-visible,.cnx-field textarea:focus-visible,.cnx-add-quote select:focus-visible,.cnx-quote input:focus-visible,.cnx-quote button:focus-visible,.cnx-quote a:focus-visible{outline:3px solid #146cff;outline-offset:3px}.cnx-field [aria-invalid=true]{border-color:#b3331b}.cnx-field p{font-size:.9rem;margin:.2rem 0 .6rem;color:#53617a}.cnx-field .cnx-field-error,.cnx-field-error{color:#a22d17;font-size:.9rem;margin:.4rem 0}.cnx-consent{display:flex;align-items:flex-start;gap:.7rem;margin:1rem 0 1.5rem}.cnx-consent input{accent-color:var(--cnx-blue);width:19px;height:19px;flex:0 0 19px;margin-top:.25rem}.cnx-consent label{font-weight:400;line-height:1.65}.cnx-quote button.button,.cnx-add-quote button,.cnx-quote-button.button{border:0;background:var(--cnx-blue);color:white;border-radius:.35rem;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.15rem;font:inherit;font-weight:650;text-decoration:none;cursor:pointer;line-height:1.35}.cnx-quote button.button:hover,.cnx-add-quote button:hover{background:#0755d9}.cnx-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}.cnx-table-wrap{overflow-x:auto}.cnx-quote table{border-collapse:collapse;width:100%;margin:0 0 1rem;min-width:420px}.cnx-quote th,.cnx-quote td{text-align:left;padding:1rem .5rem;border-bottom:1px solid #dce3ec;vertical-align:middle}.cnx-quote th{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#586579}.cnx-quote td:first-child{min-width:170px}.cnx-quote td small{display:block;font-size:.8rem;color:#586579;margin-top:.35rem}.cnx-quote table input{max-width:95px;min-width:70px}.cnx-remove{border:0;background:none;color:#a23425;text-decoration:underline;font:inherit;cursor:pointer;padding:.5rem;min-height:44px}.cnx-list-actions{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.5rem}.cnx-add-quote{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;margin:1rem 0}.cnx-add-quote label{margin-bottom:0}.cnx-add-quote input[type=number]{width:110px}.cnx-add-quote select{width:100%;max-width:500px}.cnx-add-quote small,.cnx-quote-note{font-size:.87rem;line-height:1.65;color:#53617a}.cnx-quote-note{max-width:55ch}.cnx-quote .screen-reader-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);border:0}@media(max-width:640px){.cnx-form-grid{grid-template-columns:1fr}.cnx-quote{gap:2rem}.cnx-quote th,.cnx-quote td{padding:.85rem .35rem}.cnx-message{padding:1rem}.cnx-quote .cnx-submit{width:100%}}
.cnx-field select{box-sizing:border-box;background:white;border:1px solid #acb8c8;border-radius:.35rem;color:var(--cnx-navy);font:inherit;min-height:48px;padding:.7rem .85rem;min-width:0;max-width:100%;width:100%}.cnx-field select:focus-visible{outline:3px solid #146cff;outline-offset:3px}.cnx-enquiry-help{background:#f3f7ff;border-left:3px solid #146cff;padding:1rem 1.15rem;font-size:.92rem;line-height:1.65}.cnx-enquiry-help a{overflow-wrap:anywhere}

/* The native quote page follows the approved single-page presentation. */
.cnx-quote-page .cnx-quote-hero { background: #fff; color: #102746; padding: 25px 0 38px; }
.cnx-quote-page .cnx-quote-hero > .container { max-width: 1120px; }
.cnx-quote-page .cnx-quote-hero .breadcrumbs { color: #52647b; font-size: 12px; margin-bottom: 31px; }
.cnx-quote-page .cnx-quote-hero .breadcrumbs span[aria-current] { color: #102746; }
.cnx-quote-page .cnx-quote-hero .eyebrow { padding: 0; margin: 0 0 11px; color: #0756cf; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.cnx-quote-page .cnx-quote-hero h1 { font-size: clamp(32px, 3.2vw, 42px); font-weight: 650; margin-bottom: 14px; }
.cnx-quote-page .cnx-quote-hero .page-intro { color: #52647b; font-size: 16px; line-height: 1.7; max-width: 65ch; }
.cnx-quote-page .page-content > .cnx-section { padding-block: 0 75px; }
.cnx-quote-page .page-content > .wp-block-shortcode,
.cnx-quote-page .page-content > .cnx-quote { max-width: 1120px; }
.cnx-quote-page .page-content > .cnx-quote { margin-bottom: 75px; }
.cnx-quote.cnx-quote--one-page {
    --cnx-quote-ink: #102746;
    --cnx-quote-muted: #52647b;
    --cnx-quote-line: #dce5f0;
    --cnx-quote-soft: #f3f6fb;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 40px;
    align-items: start;
    max-width: 1120px;
    color: var(--cnx-quote-ink);
    font-size: 14px;
    line-height: 1.65;
    overflow-wrap: anywhere;
}
.cnx-quote--one-page > .cnx-message { grid-column: 1 / -1; }
.cnx-quote--one-page h2 { font-size: 21px; line-height: 1.3; letter-spacing: -.025em; margin: 0; }
.cnx-quote--one-page h3 { font-size: 16px; line-height: 1.4; letter-spacing: -.02em; margin: 0; }
.cnx-quote--one-page .cnx-quote-overview,
.cnx-quote--one-page .cnx-quote-details { min-width: 0; }
.cnx-quote--one-page .cnx-quote-list { background: var(--cnx-quote-soft); border: 1px solid var(--cnx-quote-line); border-radius: 8px; padding: 24px; }
.cnx-quote--one-page .cnx-quote-section-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding-bottom: 17px; border-bottom: 1px solid var(--cnx-quote-line); }
.cnx-quote--one-page .cnx-quote-count { font-size: 12px; color: var(--cnx-quote-muted); white-space: nowrap; }
.cnx-quote--one-page .cnx-quote-products { list-style: none; padding: 0; margin: 0; }
.cnx-quote--one-page .cnx-quote-item { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 16px; padding: 23px 0; margin: 0; border-bottom: 1px solid var(--cnx-quote-line); align-items: start; }
.cnx-quote--one-page .cnx-quote-item-image { display: flex; align-items: center; justify-content: center; width: 68px; height: 68px; padding: 8px; border: 1px solid var(--cnx-quote-line); border-radius: 6px; background: #fff; text-align: center; text-decoration: none; }
.cnx-quote--one-page .cnx-quote-item-image img { display: block; width: 100%; height: 50px; object-fit: contain; }
.cnx-quote--one-page .cnx-quote-image-missing { font-size: 11px; line-height: 1.4; color: var(--cnx-quote-muted); }
.cnx-quote--one-page .cnx-quote-item-body { min-width: 0; }
.cnx-quote--one-page .cnx-quote-item-brand { display: block; color: var(--cnx-quote-muted); font-size: 11px; margin: 0 0 3px; }
.cnx-quote--one-page .cnx-quote-item-name { font-size: 15px; font-weight: 700; margin: 0 0 3px; text-wrap: initial; }
.cnx-quote--one-page .cnx-quote-item-name a { color: var(--cnx-quote-ink); text-decoration: none; }
.cnx-quote--one-page .cnx-quote-item-name a:hover { color: var(--cnx-blue); text-decoration: underline; }
.cnx-quote--one-page .cnx-quote-item-reference { display: block; color: var(--cnx-quote-muted); font-size: 11px; margin-bottom: 11px; }
.cnx-quote--one-page .cnx-quote-item-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin-top: 12px; }
.cnx-quote--one-page .cnx-list-quantity { display: inline-flex; align-items: stretch; flex: 0 0 auto; min-width: 0; border: 1px solid #c7d2e1; border-radius: 5px; background: #fff; }
.cnx-quote--one-page .cnx-list-quantity input { appearance: textfield; width: 64px; min-width: 0; max-width: 100%; min-height: 44px; margin: 0; padding: 8px 4px; border: 0; border-radius: 5px; background: transparent; color: var(--cnx-quote-ink); font: inherit; font-size: 16px; text-align: center; }
.cnx-quote--one-page .cnx-list-quantity input::-webkit-inner-spin-button,
.cnx-quote--one-page .cnx-list-quantity input::-webkit-outer-spin-button { appearance: none; margin: 0; }
.cnx-quote--one-page .cnx-list-quantity button { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 5px; background: transparent; color: var(--cnx-quote-ink); font: inherit; font-size: 20px; line-height: 1; }
.cnx-quote--one-page .cnx-list-quantity button:hover { background: #e7effc; }
.cnx-quote--one-page .cnx-list-quantity button:disabled { opacity: .4; cursor: default; }
.cnx-quote--one-page .cnx-list-quantity input:disabled { color: var(--cnx-quote-muted); }
.cnx-quote--one-page .cnx-remove { color: var(--cnx-quote-muted); background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 8px 2px; font-size: 12px; text-underline-offset: 3px; }
.cnx-quote--one-page .cnx-remove:hover { color: #a23425; }
.cnx-quote--one-page .cnx-list-actions { gap: 8px 16px; margin-top: 15px; font-size: 12px; }
.cnx-quote--one-page .cnx-list-actions button.button { background: #fff; color: var(--cnx-quote-ink); border: 1px solid #c7d2e1; font-size: 12px; min-height: 44px; padding: 9px 12px; font-weight: 600; }
.cnx-quote--one-page .cnx-list-actions button.button:hover { background: #e7effc; border-color: #a8bedb; }
.cnx-quote--one-page .cnx-list-actions a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; }
.cnx-quote--one-page .cnx-quote-empty { padding: 26px 0; border-bottom: 1px solid var(--cnx-quote-line); }
.cnx-quote--one-page .cnx-quote-empty h3 { font-size: 17px; }
.cnx-quote--one-page .cnx-quote-empty p { margin: 10px 0 0; font-size: 13px; color: var(--cnx-quote-muted); }
.cnx-quote--one-page .cnx-quote-installation { display: flex; align-items: flex-start; gap: 11px; margin-top: 21px; min-height: 44px; cursor: pointer; }
.cnx-quote--one-page .cnx-quote-installation input { accent-color: var(--cnx-blue); width: 18px; height: 18px; min-height: 0; padding: 0; flex: 0 0 18px; margin: 3px 0 0; }
.cnx-quote--one-page .cnx-quote-installation strong { display: block; font-size: 13px; font-weight: 650; }
.cnx-quote--one-page .cnx-quote-installation small { display: block; margin-top: 4px; font-size: 12px; color: var(--cnx-quote-muted); }
.cnx-quote--one-page .cnx-quote-terms { color: var(--cnx-quote-muted); font-size: 12px; line-height: 1.7; margin: 19px 0 0; }
.cnx-quote--one-page .cnx-quote-support { margin-top: 23px; padding-inline: 2px; font-size: 13px; color: var(--cnx-quote-muted); }
.cnx-quote--one-page .cnx-quote-support h3 { font-size: 15px; color: var(--cnx-quote-ink); margin-bottom: 6px; }
.cnx-quote--one-page .cnx-quote-support p { margin: 0 0 7px; }
.cnx-quote--one-page .cnx-quote-support a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; }
.cnx-quote--one-page .cnx-quote-form-heading { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px 14px; margin: 0 0 25px; }
.cnx-quote--one-page .cnx-quote-form-heading small { font-size: 12px; color: var(--cnx-quote-muted); }
.cnx-quote--one-page .cnx-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 16px; margin-bottom: 20px; }
.cnx-quote--one-page .cnx-field { min-width: 0; margin-bottom: 20px; }
.cnx-quote--one-page .cnx-form-grid .cnx-field { margin: 0; }
.cnx-quote--one-page .cnx-field-location,
.cnx-quote--one-page .cnx-field-service { grid-column: 1 / -1; }
.cnx-quote--one-page .cnx-field label { color: var(--cnx-quote-ink); font-size: 13px; margin-bottom: 7px; }
.cnx-quote--one-page .cnx-field label span { color: var(--cnx-quote-muted); font-size: 12px; margin-left: 5px; }
.cnx-quote--one-page .cnx-field input,
.cnx-quote--one-page .cnx-field select,
.cnx-quote--one-page .cnx-field textarea { min-height: 46px; min-width: 0; padding: 11px 12px; border-color: #c7d2e1; border-radius: 5px; color: var(--cnx-quote-ink); font-size: 16px; line-height: 1.45; }
.cnx-quote--one-page .cnx-field textarea { display: block; min-height: 118px; }
.cnx-quote--one-page .cnx-field textarea::placeholder { color: #607187; opacity: 1; }
.cnx-quote--one-page .cnx-field select { padding-right: 28px; text-overflow: ellipsis; }
.cnx-quote--one-page .cnx-field .cnx-field-help { font-size: 12px; color: var(--cnx-quote-muted); margin: 7px 0 0; line-height: 1.65; }
.cnx-quote--one-page .cnx-field [aria-invalid=true] { border-color: #b3331b; }
.cnx-quote--one-page .cnx-privacy-area { padding-top: 19px; border-top: 1px solid var(--cnx-quote-line); }
.cnx-quote--one-page .cnx-processing-notice { color: var(--cnx-quote-muted); font-size: 12px; line-height: 1.7; margin: 0 0 12px; }
.cnx-quote--one-page .cnx-consent { gap: 10px; margin: 0 0 18px; }
.cnx-quote--one-page .cnx-consent input { margin-top: 3px; flex-basis: 18px; width: 18px; height: 18px; }
.cnx-quote--one-page .cnx-consent label { font-size: 12px; line-height: 1.7; min-height: 44px; }
.cnx-quote--one-page .cnx-consent a { text-decoration: underline; }
.cnx-quote--one-page button.cnx-submit { width: 100%; min-height: 48px; font-size: 14px; gap: 10px; }
.cnx-quote--one-page .cnx-submit-note { margin: 11px 0 0; color: var(--cnx-quote-muted); font-size: 12px; text-align: center; }
.cnx-quote--one-page .cnx-enquiry-help { border-left: 0; background: transparent; padding: 0; margin: 0 0 18px; color: var(--cnx-quote-muted); font-size: 12px; }

/* Confirmation uses the stored request and its native server-issued reference. */
.cnx-quote--one-page .cnx-quote-confirmation { grid-column: 1 / -1; width: 100%; max-width: 700px; margin: 0 auto; }
.cnx-quote--one-page .cnx-confirmation-kicker { font-size: 11px; letter-spacing: .1em; font-weight: 700; text-transform: uppercase; color: #23713d; margin: 0 0 12px; }
.cnx-quote--one-page .cnx-quote-confirmation > h2 { font-size: clamp(26px, 3vw, 34px); line-height: 1.25; margin-bottom: 15px; }
.cnx-quote--one-page .cnx-confirmation-intro { font-size: 15px; color: var(--cnx-quote-muted); margin-bottom: 25px; }
.cnx-quote--one-page .cnx-confirmation-summary { padding: 25px; border: 1px solid var(--cnx-quote-line); border-radius: 8px; background: var(--cnx-quote-soft); }
.cnx-quote--one-page .cnx-confirmation-summary h3 { font-size: 18px; margin-bottom: 18px; }
.cnx-quote--one-page .cnx-confirmation-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; margin: 0; }
.cnx-quote--one-page .cnx-confirmation-meta dt { font-size: 12px; color: var(--cnx-quote-muted); margin: 0 0 4px; }
.cnx-quote--one-page .cnx-confirmation-meta dd { font-size: 14px; margin: 0; }
.cnx-quote--one-page .cnx-confirmation-wide { grid-column: 1 / -1; }
.cnx-quote--one-page .cnx-confirmation-wide dd { white-space: pre-wrap; }
.cnx-quote--one-page .cnx-confirmation-items { padding: 0; margin: 18px 0 0; list-style: none; border-top: 1px solid var(--cnx-quote-line); }
.cnx-quote--one-page .cnx-confirmation-items li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin: 0; padding: 11px 0; border-bottom: 1px solid var(--cnx-quote-line); font-size: 13px; }
.cnx-quote--one-page .cnx-confirmation-items li > :last-child { flex-shrink: 0; }
.cnx-quote--one-page .cnx-confirmation-reference { margin: 20px 0 0; font-size: 13px; color: var(--cnx-quote-muted); }
.cnx-quote--one-page .cnx-confirmation-reference strong { color: var(--cnx-quote-ink); }
.cnx-quote--one-page .cnx-confirmation-next { padding: 27px 0; }
.cnx-quote--one-page .cnx-confirmation-next h3 { font-size: 17px; margin-bottom: 12px; }
.cnx-quote--one-page .cnx-confirmation-next ol { padding-left: 20px; margin: 0; color: var(--cnx-quote-muted); font-size: 13px; }
.cnx-quote--one-page .cnx-confirmation-next li { margin: 8px 0; padding-left: 3px; }

@media (max-width: 820px) {
    .cnx-quote.cnx-quote--one-page { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .cnx-quote--one-page .cnx-quote-support { margin-top: 18px; }
    .cnx-quote-page .cnx-quote-hero { padding-bottom: 32px; }
}
@media (max-width: 640px) {
    .cnx-quote--one-page .cnx-quote-list { padding: 20px; }
    .cnx-quote--one-page .cnx-quote-item { gap: 12px; }
    .cnx-quote--one-page .cnx-quote-form-heading { margin-bottom: 21px; }
    .cnx-quote--one-page .cnx-form-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .cnx-quote--one-page .cnx-confirmation-summary { padding: 20px; }
    .cnx-quote-page .page-content > .cnx-section { padding-bottom: 55px; }
    .cnx-quote-page .page-content > .cnx-quote { margin-bottom: 55px; }
}
@media (max-width: 380px) {
    .cnx-quote--one-page .cnx-quote-list { padding: 16px; }
    .cnx-quote--one-page .cnx-quote-item { grid-template-columns: 52px minmax(0, 1fr); gap: 10px; }
    .cnx-quote--one-page .cnx-quote-item-image { width: 52px; height: 52px; padding: 6px; }
    .cnx-quote--one-page .cnx-quote-item-image img { height: 38px; }
    .cnx-quote--one-page .cnx-list-quantity input { width: 52px; }
    .cnx-quote--one-page .cnx-confirmation-meta { grid-template-columns: minmax(0, 1fr); }
    .cnx-quote--one-page .cnx-confirmation-summary { padding: 17px; }
}
