.fjdp,.fjdp * { box-sizing:border-box; }
.fjdp { --brand:var(--color-content-primary,#166baf); --ink:var(--color-content-text,#243746); --heading:var(--color-content-heading,var(--ink)); --muted:var(--color-content-text,#627483); --line:var(--color-content-border,#e0e8ed); --surface:var(--color-content-bg,#fff); --surface-alt:var(--color-content-bg-alt,#f8fafb); max-width:1600px; margin:24px auto 46px; color:var(--ink); font-family:inherit; line-height:1.5; }
/* A WPBakery wrapper can sit between the shortcode and the Impreza section. */
@supports selector(.l-section:has(.fjdp)) {
 .l-main > .l-section:has(.fjdp) { --padding-inline:2%; }
 .l-main > .l-section:has(.fjdp) > .l-section-h { width:100%; max-width:1600px; }
}
.fjdp [hidden] { display:none !important; }
.fjdp-mobile-quote[hidden] { display:none !important; }
.fjdp-calculator-head { padding:5px 4px 0; }
.fjdp-calculator-head h1,.fjdp-calculator-head h2 { margin:0; color:var(--heading); font-size:clamp(26px,2.8vw,35px); font-weight:700; line-height:1.24; letter-spacing:-.02em; }
.fjdp-steps { display:flex; gap:27px; align-items:center; min-height:53px; padding:5px 6px; border-bottom:1px solid var(--line); color:var(--muted); font-size:13px; font-weight:600; }
.fjdp-steps span { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.fjdp-steps b { color:var(--brand); font-size:12px; }
.fjdp-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(300px,.87fr); gap:23px; align-items:start; margin-top:22px; }
.fjdp-form,.fjdp-summary { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:0 6px 26px rgba(31,60,79,.055); }
.fjdp-group { padding:25px 27px 27px; border-bottom:1px solid var(--line); }
.fjdp-group-head { display:flex; align-items:flex-start; gap:12px; margin-bottom:20px; }
.fjdp-step { display:grid; place-items:center; flex:none; width:31px; height:31px; border-radius:6px; background:var(--surface-alt); color:var(--brand); font-size:12px; line-height:1; }
.fjdp-group h3 { margin:0 0 3px; color:var(--heading); font-size:20px; font-weight:700; line-height:1.3; }
.fjdp-group-head p { margin:0; color:var(--muted); font-size:13px; line-height:1.45; }
.fjdp-material-field { min-width:0; margin:0 0 20px; padding:0; border:0; }
.fjdp-material-field legend { margin:0 0 10px; padding:0; color:var(--ink); font-size:14px; font-weight:700; }
.fjdp-material-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.fjdp .fjdp-material-card { display:flex; flex-direction:column; position:relative; min-width:0; margin:0; padding:0; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:var(--surface); cursor:pointer; transition:border-color .15s ease,box-shadow .15s ease; }
.fjdp-material-card:hover { border-color:var(--brand); }
.fjdp-material-card.is-selected { border-color:var(--brand); box-shadow:inset 0 0 0 1px var(--brand); }
.fjdp-material-card:focus-within { outline:2px solid var(--brand); outline-offset:2px; }
.fjdp-material-card input { position:absolute; width:1px; height:1px; opacity:0; }
.fjdp-material-image { display:block; width:100%; height:139px; object-fit:cover; background:#e7edf0; }
.fjdp-material-copy { display:block; min-width:0; padding:11px 37px 13px 13px; }
.fjdp-material-copy strong,.fjdp-material-copy small { display:block; }
.fjdp-material-copy strong { color:var(--heading); font-size:15px; font-weight:700; line-height:1.25; }
.fjdp-material-copy small { margin-top:4px; color:var(--muted); font-size:12px; font-weight:400; line-height:1.35; }
.fjdp-material-tick { display:grid; place-items:center; position:absolute; right:12px; bottom:21px; width:20px; height:20px; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:transparent; font-size:12px; line-height:1; }
.fjdp-material-card.is-selected .fjdp-material-tick { border-color:var(--brand); background:var(--brand); color:var(--surface); }
.fjdp label { display:block; margin:0 0 15px; color:var(--heading); font-size:14px; font-weight:700; line-height:1.4; }
.fjdp label:last-child { margin-bottom:0; }
.fjdp input:not([type="checkbox"]):not([type="radio"]),.fjdp textarea,.fjdp select { display:block; width:100%; min-height:45px; margin:7px 0 0; padding:9px 11px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--ink); box-shadow:none; font-family:inherit; font-size:16px; font-weight:400; line-height:1.4; }
.fjdp textarea { min-height:84px; resize:vertical; }
.fjdp input:focus,.fjdp textarea:focus,.fjdp select:focus { outline:2px solid var(--brand); outline-offset:1px; border-color:var(--brand); }
.fjdp input::placeholder,.fjdp textarea::placeholder { color:#8798a3; }
.fjdp label > small,.fjdp label > span > small { display:block; margin-top:5px; color:var(--muted); font-size:12px; font-weight:400; line-height:1.4; }
.fjdp-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.fjdp-fields-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.fjdp-measurements label { margin-bottom:0; }
.fjdp-measurements label > small { display:inline; margin-left:3px; }
.fjdp-rollup-size { margin-bottom:16px; padding:16px; border:1px solid var(--line); border-radius:8px; background:var(--surface-alt); }
.fjdp-rollup-size label { margin:0; }
.fjdp-rollup-size p { margin:8px 0 0; color:var(--muted); font-size:12px; }
.fjdp-service-field { min-width:0; margin:22px 0 0; padding:0; border:0; }
.fjdp-service-field legend { margin:0 0 10px; padding:0; color:var(--ink); font-size:14px; font-weight:700; }
.fjdp-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.fjdp .fjdp-service-card { display:flex; position:relative; align-items:center; gap:10px; min-height:75px; margin:0; padding:12px 13px; border:1px solid var(--line); border-radius:7px; background:var(--surface); cursor:pointer; }
.fjdp-service-card:hover { border-color:var(--brand); }.fjdp-service-card.is-selected { border-color:var(--brand); background:var(--surface-alt); }.fjdp-service-card:focus-within { outline:2px solid var(--brand); outline-offset:2px; }
.fjdp-service-card input { position:absolute; width:1px; height:1px; opacity:0; }.fjdp-service-card span { min-width:0; }.fjdp-service-card strong { display:block; font-size:14px; line-height:1.3; }.fjdp-service-card small { display:block; margin-top:3px; color:var(--muted); font-size:12px; font-weight:400; line-height:1.3; }
.fjdp-service-card i { display:grid; place-items:center; flex:none; width:19px; height:19px; margin-left:auto; border:1px solid var(--line); border-radius:50%; color:transparent; font-family:inherit; font-size:12px; font-style:normal; line-height:1; }.fjdp-service-card.is-selected i { border-color:var(--brand); background:var(--brand); color:var(--surface); }
.fjdp-service-field > p { margin:9px 0 0; color:var(--muted); font-size:12px; line-height:1.45; }
.fjdp-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.fjdp .fjdp-option { display:flex; align-items:center; gap:12px; min-height:66px; margin:0; padding:12px 13px; border:1px solid var(--line); border-radius:7px; background:var(--surface); cursor:pointer; }
.fjdp-option.is-selected { border-color:var(--brand); background:var(--surface-alt); }
.fjdp-option:focus-within { outline:2px solid var(--brand); outline-offset:2px; }
.fjdp-option > span { min-width:0; font-size:14px; font-weight:700; line-height:1.3; }
.fjdp-option input[type="checkbox"] { flex:none; width:19px; height:19px; margin:0; accent-color:var(--brand); }
.fjdp .fjdp-eyelet { justify-content:space-between; }
.fjdp .fjdp-option.fjdp-eyelet input[name="eyelets"] { flex:none; width:68px; min-height:38px; margin:0; padding:5px; text-align:center; }
.fjdp .fjdp-discount { max-width:240px; margin:19px 0 0; }
.fjdp-submit { padding:20px 27px 25px; background:var(--surface-alt); }
.fjdp-submit p { margin:0 0 13px; color:var(--muted); font-size:13px; line-height:1.5; }
.fjdp .fjdp-button { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:53px; padding:12px 16px; border:0; border-radius:6px; background:var(--brand); color:var(--surface); font-family:inherit; font-size:16px; font-weight:700; text-align:left; cursor:pointer; }
.fjdp-button:hover { filter:brightness(.93); }
.fjdp-button:focus-visible { outline:3px solid var(--brand); outline-offset:3px; }
.fjdp-button span { font-size:22px; line-height:1; }
.fjdp-summary { position:sticky; top:20px; }
.fjdp-preview { position:relative; height:188px; overflow:hidden; background:#eef3f5; }
.fjdp-preview-stage { display:grid; place-items:center; width:100%; height:100%; background:linear-gradient(180deg,#f8fafb,#e8eff3); }
.fjdp-preview-sheet { overflow:hidden; flex:none; border:1px solid #bccbd5; background:#fff; box-shadow:0 5px 15px rgba(31,60,79,.18); }
.fjdp-preview-sheet img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.fjdp-preview > span { position:absolute; bottom:11px; left:13px; padding:5px 8px; border-radius:3px; background:rgba(255,255,255,.93); color:#3c5769; font-size:10px; font-weight:700; letter-spacing:.05em; }
.fjdp-summary-body { padding:19px 21px 21px; }
.fjdp-preview-caption { display:flex; justify-content:space-between; gap:10px; padding-bottom:17px; border-bottom:1px solid var(--line); font-size:13px; }
.fjdp-preview-caption strong { font-weight:700; }
.fjdp-preview-caption span { color:var(--muted); text-align:right; }
.fjdp-summary-head { margin-top:18px; color:var(--brand); font-size:11px; font-weight:700; letter-spacing:.08em; }
.fjdp-summary h3 { margin:5px 0 2px; color:var(--muted); font-family:inherit; font-size:14px; font-weight:400; }
.fjdp-total { min-height:42px; color:var(--heading); font-size:clamp(28px,2.8vw,36px); font-weight:700; line-height:1.22; letter-spacing:-.025em; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.fjdp-summary-material { margin:6px 0 18px; color:var(--muted); font-size:13px; }
.fjdp-installation-pending { margin:0 0 15px; padding:9px 11px; border-left:3px solid #cc7a2d; background:#fff7ed; color:#734a22; font-size:12px; line-height:1.45; }
.fjdp-breakdown { border-top:1px solid var(--line); padding-top:13px; }
.fjdp-breakdown summary { color:var(--ink); font-size:14px; font-weight:700; cursor:pointer; list-style:none; }
.fjdp-breakdown summary::-webkit-details-marker { display:none; }
.fjdp-breakdown summary span { float:right; font-size:18px; line-height:.9; }
.fjdp-breakdown[open] summary span { transform:rotate(45deg); }
.fjdp-facts > div { display:flex; justify-content:space-between; gap:10px; padding:7px 0; color:var(--muted); font-size:13px; line-height:1.35; }
.fjdp-facts b { color:var(--ink); font-weight:600; text-align:right; font-variant-numeric:tabular-nums; }
.fjdp-facts > div:last-child { margin-top:5px; padding-top:12px; border-top:1px solid var(--line); }
.fjdp-facts [data-minimum-row] > span small { display:block; max-width:210px; margin-top:2px; color:var(--muted); font-size:11px; font-weight:400; line-height:1.3; }
.fjdp-summary-note { margin:15px 0 0; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; line-height:1.5; }
.fjdp .fjdp-whatsapp-order { display:flex; align-items:center; justify-content:center; width:100%; min-height:48px; margin:15px 0 0; padding:10px 14px; border:1px solid var(--brand); border-radius:6px; background:var(--surface); color:var(--brand); font:inherit; font-size:14px; font-weight:700; line-height:1.3; text-align:center; cursor:pointer; }
.fjdp-mobile-quote { display:none; }
.fjdp-whatsapp-hint { margin:7px 0 0; color:var(--muted); font-size:12px; line-height:1.5; text-align:center; }
.fjdp-whatsapp-order:hover { background:var(--surface-alt); }.fjdp-whatsapp-order:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
.fjdp-alert,.fjdp-receipt,.fjdp-recent { max-width:1180px; margin:15px auto; font-family:inherit; }
.fjdp-alert { padding:18px 22px; border:1px solid #edcb9e; border-radius:8px; background:#fff9ed; color:#734514; }
.fjdp-receipt { padding:22px 25px; border:1px solid #a8d9c2; border-left:5px solid #1d9c70; border-radius:8px; background:#f3fff9; color:#16392d; }
.fjdp-receipt strong { font-size:19px; }.fjdp-receipt p { margin:9px 0; line-height:1.5; }
.fjdp-whatsapp,.fjdp-print { display:inline-block; margin:9px 8px 0 0; padding:9px 14px; border:1px solid #379979; border-radius:6px; background:#fff; color:#166a4b; font:inherit; font-size:13px; font-weight:700; text-decoration:none; cursor:pointer; }
.fjdp-recent { padding:20px 24px; border:1px solid var(--line); border-radius:8px; background:#fff; }.fjdp-recent h3 { margin:0 0 10px; }.fjdp-recent ul { padding:0; margin:0; list-style:none; }.fjdp-recent li { display:flex; justify-content:space-between; gap:12px; border-top:1px solid var(--line); padding:11px 0; }
.fjdp-honey { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
@media (min-width:821px) { .fjdp-breakdown > summary { display:none; } }
@media (max-width:970px) { .fjdp-layout { grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr); gap:15px; }.fjdp-group { padding:22px 19px; }.fjdp-submit { padding:20px; }.fjdp-material-image { height:116px; } }
@media (max-width:820px) {
 .fjdp { width:96vw; max-width:none; margin:12px 0 28px calc(50% - 48vw); padding-inline:0; }
 .fjdp-calculator-head,.fjdp-steps,.fjdp-group,.fjdp-submit,.fjdp-summary-body { padding-inline:2%; }
 .fjdp-layout { grid-template-columns:minmax(0,1fr); gap:12px; margin-top:12px; }
 .fjdp-form { display:flex; flex-direction:column; gap:12px; overflow:visible; border:0; background:transparent; box-shadow:none; }
 .fjdp-form > .fjdp-group,.fjdp-form > .fjdp-submit { flex:none; border:1px solid var(--line); border-radius:10px; background:var(--surface); box-shadow:0 6px 26px rgba(31,60,79,.055); }
 .fjdp-form > .fjdp-submit { background:var(--surface-alt); }
 .fjdp-mobile-quote { display:flex; position:fixed; z-index:1000; bottom:0; left:0; align-items:center; justify-content:space-between; gap:10px; width:100vw; min-height:66px; max-height:78px; margin:0; padding:8px 2% calc(8px + env(safe-area-inset-bottom)); border:0; border-top:2px solid var(--surface,var(--color-content-bg,#fff)); border-radius:0; background:var(--brand,var(--color-content-primary,#166baf)); color:var(--surface,var(--color-content-bg,#fff)); box-shadow:0 -10px 32px rgba(31,60,79,.28); font-family:inherit; text-align:left; cursor:pointer; }
 .fjdp-mobile-quote > span:first-child { display:grid; gap:0; min-width:0; }
 .fjdp-mobile-quote small { overflow:hidden; color:inherit; font-family:inherit; font-size:11px; font-weight:500; line-height:1.2; opacity:.84; white-space:nowrap; text-overflow:ellipsis; }
 .fjdp-mobile-quote strong { font-size:clamp(19px,6vw,24px); font-weight:700; line-height:1.15; font-variant-numeric:tabular-nums; white-space:nowrap; }
 .fjdp-mobile-quote > span:last-child { flex:none; padding:8px 10px; border-radius:6px; background:var(--surface,var(--color-content-bg,#fff)); color:var(--brand,var(--color-content-primary,#166baf)); font-size:12px; font-weight:700; white-space:nowrap; }
 .fjdp-mobile-quote:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
 .fjdp-summary { position:static; display:block; }
 .fjdp-preview { height:176px; }
 .fjdp-summary-head { margin-top:12px; }
 .fjdp-summary-material { margin-bottom:12px; }
 .fjdp-breakdown { padding-top:10px; }
 .fjdp-breakdown summary { font-size:14px; }
 .fjdp-group { padding-block:18px; }
 .fjdp-submit { padding-block:18px; }
 .fjdp-rollup-size,.fjdp .fjdp-service-card,.fjdp .fjdp-option,.fjdp .fjdp-button,.fjdp .fjdp-whatsapp-order,.fjdp input:not([type="checkbox"]):not([type="radio"]),.fjdp textarea,.fjdp select { padding-inline:2%; }
}
@media (max-width:640px) {
 .fjdp-steps { justify-content:space-between; gap:5px; min-height:42px; font-size:11px; }
 .fjdp-steps span { gap:4px; }.fjdp-steps b { font-size:10px; }
 .fjdp-material-grid { grid-template-columns:1fr; gap:8px; }
 .fjdp .fjdp-material-card { display:grid; grid-template-columns:31% minmax(0,1fr) 28px; align-items:center; min-height:94px; }
 .fjdp-material-image { width:100%; height:94px; }
 .fjdp-material-copy { padding:8px 2%; }
 .fjdp-material-tick { position:static; justify-self:center; width:20px; height:20px; }
 .fjdp-preview { height:166px; }
 .fjdp-preview-caption { gap:8px; padding-bottom:12px; font-size:12px; }
 .fjdp-summary h3 { font-size:13px; }
 .fjdp-total { min-height:auto; font-size:clamp(26px,8vw,34px); }
 .fjdp-summary-material { font-size:12px; }
}
@media (max-width:430px) {
 .fjdp-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .fjdp-measurements label:last-child { grid-column:1/-1; }
 .fjdp-fields-two,.fjdp-options,.fjdp-service-grid { grid-template-columns:1fr; }
 .fjdp .fjdp-service-card { min-height:58px; }
}
@media (prefers-reduced-motion:reduce) { .fjdp-material-card { transition:none; } }
@media print { .fjdp,.fjdp-recent,.fjdp-button,.fjdp-print,.fjdp-whatsapp,.fjdp-mobile-quote { display:none !important; }.fjdp-receipt { border:0; box-shadow:none; color:#000; } }
