/* PrintImprove Equipment Quote Forms */
.pim-rf {
    --pim-rf-ink: #153F56;
    --pim-rf-muted: #607985;
    --pim-rf-line: #D5E1E6;
    --pim-rf-bg: #F4F8F9;
    --pim-rf-card: #ffffff;
    --pim-rf-accent: #286981;
    --pim-rf-accent-2: #34798C;
    --pim-rf-gold: #E8A64B;
    --pim-rf-dark: #153F56;
    --pim-rf-radius: 24px;
    --pim-rf-radius-sm: 14px;
    --pim-rf-shadow: 0 22px 54px rgba(15, 23, 42, .09);
    max-width: 1120px;
    margin: 0 auto;
    color: var(--pim-rf-ink);
}

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

.pim-rf [hidden] { display: none !important; }

.pim-rf-form,
.pim-rf-success,
.pim-rf-notice {
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94));
    border: 1px solid var(--pim-rf-line);
    border-radius: var(--pim-rf-radius);
    box-shadow: var(--pim-rf-shadow);
    overflow: hidden;
}

.pim-rf-hero {
    padding: 34px 38px;
    background:
        radial-gradient(circle at 18% 20%, rgba(232,166,75,.12), transparent 25%),
        linear-gradient(128deg, #153F56 0%, #1B5367 55%, #286981 100%);
    color: #fff;
}

.pim-rf-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    padding: 6px 11px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pim-rf-hero h2 {
    margin: 0 0 10px;
    max-width: 860px;
    color: #fff;
    font-size: clamp(24px, 3vw, 38px);
    line-height: 1.12;
    font-weight: 850;
}

.pim-rf-hero p {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,.88);
    font-size: 16px;
    line-height: 1.55;
}

.pim-rf-progress {
    display: grid;
    grid-template-columns: repeat(var(--pim-rf-steps, 8), minmax(0, 1fr));
    gap: 8px;
    padding: 16px 18px;
    background: var(--pim-rf-bg);
    border-bottom: 1px solid var(--pim-rf-line);
}

.pim-rf-progress__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    min-height: 78px;
    padding: 10px 8px;
    border: 1px solid transparent;
    border-radius: 16px;
    background: #fff;
    color: var(--pim-rf-muted);
    cursor: pointer;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, color .16s ease;
}

.pim-rf-progress__item span {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #eaf1f7;
    font-weight: 900;
    color: var(--pim-rf-accent);
}

.pim-rf-progress__item strong {
    font-size: 11.5px;
    line-height: 1.15;
    text-align: center;
}

.pim-rf-progress__item.is-active {
    border-color: rgba(6,111,137,.32);
    box-shadow: 0 8px 18px rgba(15,23,42,.08);
    color: var(--pim-rf-ink);
    transform: translateY(-1px);
}

.pim-rf-progress__item.is-active span {
    background: var(--pim-rf-gold);
    color: #111;
}

.pim-rf-pages { padding: 28px 34px 10px; }
.pim-rf-page { display: none; }
.pim-rf-page.is-active { display: block; }

.pim-rf-page__head {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 24px;
}

.pim-rf-stepno {
    flex: 0 0 auto;
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: #e7f4f7;
    color: var(--pim-rf-accent);
    font-weight: 900;
}

.pim-rf-page__head h3 {
    margin: 0 0 6px;
    color: var(--pim-rf-ink);
    font-size: 24px;
    line-height: 1.18;
    font-weight: 850;
}

.pim-rf-page__head p {
    margin: 0;
    color: var(--pim-rf-muted);
    line-height: 1.55;
}

.pim-rf-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}

.pim-rf-field {
    min-width: 0;
}

.pim-rf-field--wide,
.pim-rf-field--checkboxes,
.pim-rf-field--radios,
.pim-rf-field--files,
.pim-rf-field--textarea {
    grid-column: 1 / -1;
}

/* Field questions: larger and lighter for clearer visual scanning. */
.pim-rf-field > label,
.pim-rf-field fieldset > legend {
    display: block;
    margin: 0 0 9px;
    color: var(--pim-rf-ink);
    font-size: 16px;
    line-height: 1.35;
    font-weight: 600;
}


.pim-rf-field--heading h4 {
    margin: 6px 0 2px;
    padding: 12px 14px;
    border-left: 4px solid var(--pim-rf-accent);
    border-radius: 8px;
    background: #eef7fa;
    color: var(--pim-rf-ink);
    font-size: 18px;
    line-height: 1.35;
    font-weight: 700;
}

.pim-rf-field em {
    color: #c2410c;
    font-style: normal;
}

.pim-rf-field input[type="text"],
.pim-rf-field input[type="email"],
.pim-rf-field input[type="url"],
.pim-rf-field input[type="number"],
.pim-rf-field input[type="date"],
.pim-rf-field input[type="file"],
.pim-rf-field select,
.pim-rf-field textarea {
    width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    border: 1px solid #cfdbe6;
    border-radius: 14px;
    background: #fff;
    color: var(--pim-rf-ink);
    font-size: 15px;
    line-height: 1.4;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.pim-rf-field textarea { min-height: 112px; resize: vertical; }

.pim-rf-field input:focus,
.pim-rf-field select:focus,
.pim-rf-field textarea:focus {
    border-color: var(--pim-rf-accent-2);
    box-shadow: 0 0 0 4px rgba(10,138,167,.12);
}

.pim-rf-field small {
    display: block;
    margin-top: 7px;
    color: var(--pim-rf-muted);
}

.pim-rf-field fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.pim-rf-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.pim-rf-option {
    display: flex !important;
    align-items: flex-start;
    gap: 9px;
    min-height: 44px;
    margin: 0 !important;
    padding: 11px 12px;
    border: 1px solid #d7e7ee;
    border-radius: 14px;
    background: #f7fbfd;
    color: var(--pim-rf-ink);
    font-size: 15px;
    line-height: 1.35;
    font-weight: 600 !important;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.pim-rf-option:hover {
    border-color: rgba(6,111,137,.34);
    background: #f1f8fb;
    box-shadow: 0 8px 16px rgba(15,23,42,.045);
}

.pim-rf-option.is-checked,
.pim-rf-option:has(input:checked) {
    border-color: rgba(6,111,137,.42);
    background: #eaf6f8;
    box-shadow: inset 0 0 0 1px rgba(6,111,137,.08);
}

.pim-rf-option input {
    margin-top: 2px;
    accent-color: var(--pim-rf-accent);
}

.pim-rf-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 20px 34px 28px;
}

.pim-rf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 13px 22px;
    border: 0;
    border-radius: 15px;
    background: var(--pim-rf-gold);
    color: #111 !important;
    font-size: 15px;
    font-weight: 900;
    text-decoration: none !important;
    cursor: pointer;
    box-shadow: 0 9px 0 rgba(135,97,10,.22), 0 16px 28px rgba(15,23,42,.12);
    transition: transform .14s ease, box-shadow .14s ease, filter .14s ease;
}

.pim-rf-btn:hover {
    filter: brightness(.98);
    transform: translateY(-1px);
}

.pim-rf-btn:active {
    transform: translateY(2px);
    box-shadow: 0 5px 0 rgba(135,97,10,.22), 0 10px 18px rgba(15,23,42,.10);
}

.pim-rf-btn--secondary,
.pim-rf-btn--ghost {
    background: #eef4f8;
    box-shadow: none;
    color: var(--pim-rf-ink) !important;
}

.pim-rf-btn--next {
    background: #f6fafc;
    color: var(--pim-rf-accent) !important;
    border: 1px solid #cfe3eb;
    box-shadow: none;
}

.pim-rf-btn--next:hover {
    background: #edf7fa;
    border-color: rgba(6,111,137,.36);
}

.pim-rf-btn--submit {
    background: var(--pim-rf-gold);
}

.pim-rf-btn[disabled] {
    opacity: .45;
    cursor: not-allowed;
    transform: none;
}

.pim-rf-privacy {
    margin: 0;
    padding: 0 34px 30px;
    color: var(--pim-rf-muted);
    font-size: 13px;
    line-height: 1.45;
}

.pim-rf-success {
    padding: 40px;
    text-align: center;
}

.pim-rf-success__icon {
    width: 70px;
    height: 70px;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #e8f7ec;
    color: #15803d;
    font-size: 34px;
    font-weight: 900;
}

.pim-rf-success h3 {
    margin: 0 0 10px;
    color: var(--pim-rf-ink);
    font-size: 28px;
}

.pim-rf-success p {
    max-width: 680px;
    margin: 0 auto 22px;
    color: var(--pim-rf-muted);
    line-height: 1.6;
}

.pim-rf-notice,
.pim-rf-error {
    margin: 0 0 16px;
    padding: 14px 16px;
    border-radius: 16px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #9a3412;
}

@media (max-width: 980px) {
    .pim-rf-progress { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pim-rf-pages { padding: 24px 22px 8px; }
    .pim-rf-hero { padding: 28px 24px; }
    .pim-rf-actions { padding: 18px 22px 24px; }
    .pim-rf-privacy { padding: 0 22px 26px; }
}

@media (max-width: 680px) {
    .pim-rf-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pim-rf-grid { grid-template-columns: 1fr; }
    .pim-rf-options { grid-template-columns: 1fr; }
    .pim-rf-page__head { flex-direction: column; }
    .pim-rf-actions { flex-wrap: wrap; }
    .pim-rf-btn { width: 100%; }
}

/* Required-field feedback */
.pim-rf-field.is-invalid > label,
.pim-rf-field.is-invalid legend {
    color: #b42318;
}
.pim-rf-field.is-invalid input:not([type="radio"]):not([type="checkbox"]),
.pim-rf-field.is-invalid select,
.pim-rf-field.is-invalid textarea,
.pim-rf-field.is-invalid .pim-rf-options {
    border-color: rgba(180, 35, 24, .55);
}

/* Access notice for forms intentionally restricted to signed-in users. */
.pim-rf-access-card {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 30px 32px;
    border: 1px solid var(--pim-rf-line);
    border-radius: var(--pim-rf-radius);
    background: linear-gradient(180deg, #ffffff, #f8fbfd);
    box-shadow: var(--pim-rf-shadow);
}
.pim-rf-access-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 54px;
    width: 54px;
    height: 54px;
    border-radius: 18px;
    background: #e7f4f7;
    font-size: 25px;
}
.pim-rf-access-card .pim-rf-kicker {
    margin-bottom: 8px;
    border-color: rgba(6,111,137,.18);
    background: #eef7fa;
    color: var(--pim-rf-accent);
}
.pim-rf-access-card h3 {
    margin: 0 0 8px;
    color: var(--pim-rf-ink);
    font-size: 26px;
    line-height: 1.2;
}
.pim-rf-access-card p {
    margin: 0 0 18px;
    color: var(--pim-rf-muted);
    font-size: 16px;
    line-height: 1.55;
}
@media (max-width: 680px) {
    .pim-rf-access-card { flex-direction: column; padding: 24px 20px; }
}


/* Header-only / collapsible shortcode. */
.pim-rf-hero__layout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.pim-rf-hero__content {
    min-width: 0;
    flex: 1 1 auto;
}

.pim-rf-btn--expand {
    flex: 0 0 auto;
    min-width: 156px;
    gap: 10px;
    white-space: nowrap;
}

.pim-rf-btn--expand__icon {
    display: inline-flex;
    font-size: 18px;
    line-height: 1;
    transition: transform .18s ease;
}

.pim-rf-form--collapsible.is-expanded .pim-rf-btn--expand__icon {
    transform: rotate(180deg);
}

.pim-rf-collapsible-body[hidden] {
    display: none !important;
}

@media (max-width: 680px) {
    .pim-rf-hero__layout {
        flex-direction: column;
        align-items: stretch;
    }
    .pim-rf-btn--expand {
        width: 100%;
    }
}


/* Anti-spam honeypot: accessible form users never see or tab into this field. */
.pim-rf .pim-rf-trap {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* PrintImprove Codi adaptation: understated petrol & amber, contained selectors only */
.pim-rf {font-family:inherit;--pim-rf-radius:18px;--pim-rf-radius-sm:11px;--pim-rf-shadow:0 14px 34px rgba(21,63,86,.08);}
.pim-rf .pim-rf-form,.pim-rf .pim-rf-notice,.pim-rf .pim-rf-success {border-radius:18px;}
.pim-rf .pim-rf-hero{background:linear-gradient(115deg,#153F56 0%,#286981 100%);}
.pim-rf .pim-rf-kicker {letter-spacing:.11em;}
.pim-rf .pim-rf-btn {transition:background-color .2s ease,color .2s ease,transform .2s ease;}
.pim-rf :is(input,select,textarea,button):focus-visible{outline:2px solid #E8A64B;outline-offset:2px;}
@media (prefers-reduced-motion:reduce){.pim-rf *, .pim-rf *::before,.pim-rf *::after {scroll-behavior:auto!important;transition:none!important;animation:none!important;}}

/* 1.0.1 — Codi homepage compact contact panels (same field flow on expansion). */
.pim-rf-form--collapsible.is-collapsed {background:transparent!important;box-shadow:none!important;border:0!important;border-radius:16px!important;overflow:hidden;}
.pim-rf-form--collapsible.is-collapsed .pim-rf-hero {padding:24px 26px!important;background:linear-gradient(120deg,#153F56,#286981)!important;border-radius:16px!important;min-height:154px;display:flex;align-items:center;}
.pim-rf-form--collapsible.is-collapsed .pim-rf-hero__layout {width:100%;gap:20px;}
.pim-rf-form--collapsible.is-collapsed .pim-rf-kicker {font-size:10px!important;font-weight:700!important;letter-spacing:.07em!important;text-transform:uppercase!important;padding:5px 8px!important;}
.pim-rf-form--collapsible.is-collapsed .pim-rf-hero h2 {font-size:clamp(20px,2.0vw,27px)!important;line-height:1.16!important;letter-spacing:-.02em!important;text-transform:none!important;font-weight:700!important;margin:0 0 7px!important;}
.pim-rf-form--collapsible.is-collapsed .pim-rf-hero p {font-size:13px!important;line-height:1.48!important;max-width:510px!important;}
.pim-rf-form--collapsible.is-collapsed .pim-rf-btn--expand {background:#E8A64B!important;border:0!important;color:#153F56!important;font-size:12px!important;font-weight:750!important;padding:12px 16px!important;min-width:126px!important;border-radius:8px!important;box-shadow:none!important;}
.pim-rf-form--collapsible.is-collapsed .pim-rf-btn--expand:hover {background:#FFD18C!important;color:#153F56!important;}
@media(max-width:800px){.pim-rf-form--collapsible.is-collapsed .pim-rf-hero__layout {flex-direction:column;align-items:flex-start}.pim-rf-form--collapsible.is-collapsed .pim-rf-btn--expand{align-self:flex-start}.pim-rf-form--collapsible.is-collapsed .pim-rf-hero{padding:22px!important}}

/* 1.0.2 — matched collapsed homepage cards; expanded questionnaires remain natural height. */
.pim-rf.pim-rf--printimprove {max-width:none;width:100%;margin:0;}
.pim-rf .pim-rf-form--collapsible.is-collapsed {margin:0!important;width:100%;border-radius:16px!important;overflow:hidden!important;}
.pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-hero {
  height:240px!important;min-height:240px!important;padding:26px 30px!important;
  box-sizing:border-box!important;align-items:center!important;display:flex!important;
  background:linear-gradient(120deg,#153F56,#286981)!important;
}
.pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-hero__layout {width:100%;gap:18px;align-items:center;flex-direction:row;}
.pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-hero__content {min-width:0;flex:1 1 auto;}
.pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-kicker {font-size:11px!important;line-height:1.15!important;padding:5px 9px!important;margin:0 0 12px!important;letter-spacing:.055em!important;}
.pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-hero h2 {font-size:24px!important;line-height:1.19!important;font-weight:750!important;letter-spacing:-.025em!important;margin:0 0 12px!important;color:#fff!important;}
.pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-hero p {font-size:14px!important;line-height:1.48!important;margin:0!important;max-width:480px!important;color:rgba(255,255,255,.88)!important;}
.pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-btn--expand {font-size:13px!important;line-height:1.2!important;font-weight:750!important;min-width:150px!important;min-height:48px!important;padding:13px 16px!important;border-radius:8px!important;white-space:nowrap!important;align-self:center!important;flex-shrink:0!important;}
@media(max-width:1100px){
 .pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-hero {height:auto!important;min-height:240px!important;}
 .pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-hero__layout {flex-direction:column!important;align-items:flex-start!important;}
 .pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-btn--expand {align-self:flex-start!important;}
}
@media(max-width:680px){
 .pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-hero {height:auto!important;min-height:0!important;padding:24px 22px!important;}
 .pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-hero h2 {font-size:22px!important;}
 .pim-rf .pim-rf-form--collapsible.is-collapsed .pim-rf-btn--expand {width:auto!important;}
}
