:root{--blue:#2455b5;--ink:#172d52;--muted:#5a6d88;--line:#dae3ef;--mist:#f2f6fc;--paper:#fbfaf7;--shadow:0 15px 42px rgba(23,45,82,.045)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);font-family:'Plus Jakarta Sans',sans-serif;color:var(--ink);font-size:16px;line-height:1.6}html[lang=ar] body{font-family:'Tajawal','Plus Jakarta Sans',sans-serif}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #4a80e4;outline-offset:3px}.skip-link{position:absolute;left:-500px;z-index:100;padding:10px;background:white}.skip-link:focus{left:10px;top:10px}.request-header{border-bottom:1px solid var(--line);background:#fff}.request-header-inner{max-width:1220px;margin:auto;min-height:85px;padding:16px 30px;display:flex;justify-content:space-between;align-items:center;gap:18px}.brand{display:inline-flex;align-items:baseline;text-decoration:none;gap:3px;min-width:0}.brand img:first-child{width:137px;height:auto}.brand img:nth-child(2){width:76px;height:auto}.header-controls{display:flex;align-items:center;gap:21px}.private-notice{font-size:.74rem;color:var(--muted)}.language-toggle,.back-site{color:var(--ink);font-weight:700;font-size:.87rem;background:transparent;border:0;text-decoration:none}.language-toggle:hover,.back-site:hover{color:var(--blue)}.request-main{max-width:1220px;padding:68px 30px 60px;margin:auto}.page-intro{max-width:760px}.overline{color:var(--blue);letter-spacing:.14em;font-weight:700;font-size:.72rem}.page-intro h1{font-size:clamp(2.15rem,4vw,4rem);letter-spacing:-.045em;line-height:1.17;margin:14px 0 18px}.page-intro p{color:var(--muted);font-size:1.05rem;line-height:1.8;max-width:670px}.steps{margin:36px 0 30px}.steps ol{list-style:none;display:flex;align-items:center;gap:0;padding:0;margin:0;max-width:730px}.steps li{display:flex;align-items:center;gap:10px;font-size:.85rem;color:#7b8ba3;flex:1;position:relative}.steps li:not(:last-child):after{content:'';background:#d9e2ee;height:1px;flex:1;margin:0 17px}.steps li span{border-radius:50%;width:31px;height:31px;display:grid;place-items:center;border:1px solid #cad7e9;font-size:.7rem;font-weight:700;flex:none}.steps li.current,.steps li.complete{color:var(--blue)}.steps li.current span{background:var(--blue);color:#fff;border-color:var(--blue)}.steps li.complete span{border-color:var(--blue)}.steps li b{font-weight:700;white-space:nowrap}.request-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(265px,340px);align-items:start;gap:26px}.request-forms,.order-summary{min-width:0;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.step-panel{padding:clamp(22px,3.1vw,37px)}[hidden]{display:none!important}.panel-heading{display:flex;align-items:flex-start;gap:16px;margin-bottom:25px}.step-number{color:var(--blue);font-size:.75rem;font-weight:800;border:1px solid #b8ccee;background:#f3f7ff;border-radius:7px;padding:6px 8px;min-width:36px;text-align:center}.panel-heading h2{font-size:clamp(1.3rem,2vw,1.67rem);line-height:1.5;letter-spacing:-.03em}.panel-heading p{color:var(--muted);font-size:.9rem;margin-top:5px;line-height:1.7}.plan-selector{display:grid;gap:12px}.plan-choice{display:flex;align-items:center;gap:15px;min-height:84px;border:1px solid var(--line);border-radius:11px;padding:16px;cursor:pointer}.plan-choice:has(input:checked){border-color:var(--blue);background:#f5f8ff;box-shadow:inset 0 0 0 1px #2455b5}.plan-choice input{accent-color:var(--blue);width:18px;height:18px;flex:none}.plan-choice-text{display:grid;gap:3px}.plan-choice-text strong{font-size:1rem}.plan-choice-text small{font-size:.83rem;color:var(--muted)}.field-set{display:grid;gap:8px;margin-top:20px;min-width:0}.field-set>label,.extra-row>label{font-size:.87rem;font-weight:700}.field-set input,.field-set select,.field-set textarea,.extra-row input{width:100%;min-height:48px;border:1px solid #bdccdf;border-radius:8px;background:#fff;padding:10px 13px;color:var(--ink)}.field-set textarea{resize:vertical}.field-set input:invalid:focus{border-color:#bd5757}.field-set em{color:#ad4141;font-style:normal}.field-hint,.extra-row small{font-size:.78rem;color:var(--muted);line-height:1.6}.step-actions{display:flex;align-items:center;flex-wrap:wrap;gap:11px;margin-top:31px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:49px;border:1px solid transparent;border-radius:7px;padding:12px 18px;text-decoration:none;font-weight:750;font-size:.86rem;text-align:center}.btn-primary{background:var(--blue);color:white}.btn-primary:hover{background:#174596}.btn-secondary{background:#fff;color:var(--ink);border-color:#bccde8}.btn-secondary:hover{background:#f2f6fc}.section-gap{margin-top:35px}.addons-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.extra-row{display:grid;align-content:start;gap:8px;border:1px solid var(--line);border-radius:10px;padding:15px}.extra-row input{max-width:115px}.extra-check{border:1px solid var(--line);border-radius:10px;padding:15px;display:flex;align-items:center;gap:12px;cursor:pointer;min-height:68px;font-size:.86rem}.extra-check input{accent-color:var(--blue);width:19px;height:19px;flex:none}.extra-check strong{color:var(--blue)}.extra-check:has(input:checked){background:#f5f8ff;border-color:#7fa1d9}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.details-grid .wide{grid-column:1/-1}.field-error{color:#a32727;font-weight:700;margin-top:17px;font-size:.88rem}.message-preview{padding:22px;border:1px solid var(--line);border-radius:9px;background:#f7f9fd;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.89rem;line-height:1.8;max-height:480px;overflow:auto}.privacy-text,.after-send{font-size:.81rem;color:var(--muted);line-height:1.8;margin-top:18px}.review-actions{margin-top:20px}.order-summary{padding:26px;position:sticky;top:18px}.order-summary h2{font-size:1.12rem;margin-bottom:17px}.summary-lines{display:grid;gap:11px}.sum-row{display:flex;justify-content:space-between;align-items:baseline;gap:13px;font-size:.82rem}.sum-row .value{font-weight:750;white-space:nowrap}.sum-row .muted{color:var(--muted)}.sum-row.addon{color:#475b77}.summary-total{border-top:1px solid var(--line);margin-top:21px;padding-top:18px;display:flex;justify-content:space-between;gap:16px;align-items:baseline;font-size:.82rem}.summary-total strong{font-size:1.4rem;color:var(--blue);white-space:nowrap}.order-summary>p{font-size:.78rem;line-height:1.8;color:var(--muted);margin-top:18px}.footer-note{color:#70809a;font-size:.76rem;margin-top:40px;text-align:center}html[dir=rtl] .page-intro h1,html[dir=rtl] .panel-heading h2{letter-spacing:0}html[dir=rtl] .steps li:not(:last-child):after{margin-inline:14px}html[dir=rtl] .overline{letter-spacing:0}html[dir=rtl] .back-site,html[dir=rtl] .message-preview{direction:rtl}
@media(max-width:850px){.request-layout{grid-template-columns:1fr}.order-summary{position:static;order:-1}.order-summary .summary-lines{grid-template-columns:1fr 1fr;column-gap:24px}.private-notice{display:none}}
@media(max-width:560px){.request-header-inner{padding:13px 18px;min-height:70px}.brand img:first-child{width:99px}.brand img:nth-child(2){width:58px}.header-controls{gap:10px}.language-toggle,.back-site{font-size:.76rem}.request-main{padding:38px 17px 40px}.page-intro h1{font-size:2.2rem}.page-intro p{font-size:.91rem}.steps{margin:30px 0 20px}.steps li{gap:5px;font-size:.7rem}.steps li:not(:last-child):after{margin-inline:6px}.steps li span{height:26px;width:26px}.steps li b{white-space:normal}.step-panel{padding:21px 17px}.panel-heading{gap:9px}.addons-editor,.details-grid{grid-template-columns:1fr}.extra-row input{max-width:130px}.order-summary{padding:19px}.order-summary .summary-lines{grid-template-columns:1fr}.review-actions .btn{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.brand img.arabic-brand{width:184px;height:auto}
@media(max-width:560px){.brand img.arabic-brand{width:145px}}
/* Accessible skip link without introducing horizontal overflow in RTL. */
.skip-link{left:10px;top:10px;transform:translateY(-180%);z-index:50}.skip-link:focus{left:10px;top:10px;transform:translateY(0)}

/* V16: future renewal never included in the initial estimate. */
.summary-renewal{margin-top:13px!important;padding:10px 12px;border-radius:7px;background:#f2f6fc;font-weight:650;font-size:.78rem!important;color:#415572!important}
.sum-row.addon{padding-inline-start:12px;font-size:.77rem}
@media(max-width:560px){.order-summary .summary-total{align-items:flex-start}.order-summary .summary-total strong{font-size:1.13rem;white-space:normal;text-align:end}}

/* V18 — Large headings in Kufam / DM Sans, supporting UI in Tajawal / Plus Jakarta Sans. */
html[lang=en] :is(.page-intro h1,.panel-heading h2,.order-summary h2,.plan-choice-text strong,.summary-total strong){font-family:'DM Sans','Plus Jakarta Sans',sans-serif}
html[lang=ar] :is(.page-intro h1,.panel-heading h2,.order-summary h2,.plan-choice-text strong,.summary-total strong){font-family:'Kufam','Tajawal',sans-serif;letter-spacing:0;line-height:1.5}
.quote-export{padding:18px 20px;border:1px solid #cbdaf0;background:#f3f7ff;border-radius:10px;margin-top:21px}
.quote-export h3{font-size:1.08rem;line-height:1.5}
.quote-export p{font-size:.85rem;color:#4e6280;line-height:1.7;margin-top:6px}
.quote-export-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.quote-export-actions .btn{flex:1 1 150px}
.quote-export-status{font-size:.82rem;min-height:1.5em;margin-top:12px;color:#1d4b98}
.quote-export-status[hidden]{display:none}
@media(max-width:450px){.quote-export{padding:16px}.quote-export-actions .btn{flex-basis:100%}}

/* V18 bundled Kufam — local fallback when Google Fonts is blocked. */



/* V19 — readable review instead of a scrollable raw-text box. */
.review-card{border:1px solid #d5e0f0;background:#fff;border-radius:12px;padding:21px;margin-block:8px 15px}
.review-data{margin:0;display:grid;gap:0}
.review-pair{display:grid;grid-template-columns:minmax(0,43%) minmax(0,57%);padding:12px 0;gap:16px;border-bottom:1px solid #e8edf6;align-items:baseline;min-width:0}
.review-pair:last-child{border-bottom:0}
.review-pair dt{font-size:.82rem;color:#5a6d88;font-weight:600}
.review-pair dd{font-size:.9rem;color:#172d52;font-weight:700;margin:0;min-width:0;overflow-wrap:anywhere}
.review-pair-total{background:#f2f6ff;padding:14px 12px;border-radius:8px;margin:13px -6px 3px;border-bottom:0}
.review-pair-total dd{font-size:1.1rem;color:#2455b5}
.review-disclaimer{font-size:.81rem;color:#61738b;line-height:1.8;margin-top:15px}
.message-details{margin-block:16px;border:1px solid #d6e2f2;border-radius:10px;background:#f7f9fd}
.message-details summary{padding:16px 18px;cursor:pointer;font-size:.9rem;font-weight:700;color:#2455b5}
.message-details .message-preview{max-height:none!important;overflow:visible!important;margin:0;border:0;border-top:1px solid #d6e2f2;border-radius:0;background:#fff;line-height:1.9;word-break:normal;overflow-wrap:break-word}
@media(max-width:560px){.review-card{padding:15px}.review-pair{grid-template-columns:1fr;gap:3px}.review-pair-total{margin-inline:0}.message-details .message-preview{padding:16px}}

/* V23 — Clear bilingual review, one primary action, no visual clutter. */
body[data-order-step="3"] .page-intro{max-width:960px;margin-inline:auto}
body[data-order-step="3"] .page-intro h1{font-size:clamp(1.8rem,3vw,2.65rem);margin:7px 0 8px;line-height:1.4}
body[data-order-step="3"] .page-intro p{font-size:.92rem;line-height:1.65}
body[data-order-step="3"] .steps{margin:24px 0 25px}
.step-panel-review{padding:clamp(22px,2.5vw,32px)}
.step-panel-review .panel-heading{margin-bottom:16px}
.step-panel-review .panel-heading h2{font-size:clamp(1.18rem,1.7vw,1.4rem)}
.review-card{padding:0;border:0;background:transparent;margin:0}
.review-data{display:grid;gap:14px}
.review-group{padding:17px 19px;border:1px solid #e0e8f3;border-radius:12px;background:#fff;min-width:0}
.review-group h3{font-size:.95rem;line-height:1.5;margin:0 0 13px;font-weight:800;color:#172d52}
.review-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 16px;margin:0}
.review-fact{min-width:0}
.review-fact dt{font-size:.75rem;color:#657895;font-weight:600;line-height:1.5}
.review-fact dd{font-size:.91rem;font-weight:700;color:#172d52;margin:3px 0 0;line-height:1.6;overflow-wrap:anywhere}
.review-group:last-child{background:#f7f9fd}
.review-disclaimer{font-size:.75rem;color:#70819b;margin:14px 2px 0;line-height:1.7}
.send-card{border:1px solid #cbdaf0;background:#f0f5ff;border-radius:12px;padding:20px;margin-top:20px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:9px;row-gap:12px}
.send-card-copy{min-width:0;padding-inline-end:8px}
.send-card-copy h3{font-size:1.05rem;color:#172d52;margin:0 0 5px;line-height:1.5}
.send-card-copy p{font-size:.77rem;line-height:1.65;color:#566b88}
.send-card .btn{min-height:45px;padding:10px 14px;white-space:nowrap;font-size:.78rem}
.message-details{margin-top:14px;margin-bottom:0;background:#fff}
.message-details summary{padding:12px 17px;font-size:.82rem;color:#385d9d}
.quote-export{background:#fff;border:1px solid #d9e3f1;border-radius:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;align-items:center;margin-top:16px;padding:17px 19px}
.quote-export h3{font-size:.98rem;margin:0}
.quote-export p{font-size:.77rem;margin-top:4px;line-height:1.6}
.quote-export-actions{margin:0;display:flex;gap:8px;flex-wrap:nowrap}
.quote-export-actions .btn{flex:0 0 auto;min-height:43px;white-space:nowrap;font-size:.78rem;padding:8px 12px}
.quote-export-status{grid-column:1/-1}
.step-panel-review .privacy-text{font-size:.76rem;margin:16px 2px 0;color:#60728c}
.return-action{margin-top:17px}
.back-inline{padding:5px 0;border:0;background:transparent;color:#2455b5;text-decoration:underline;text-underline-offset:4px;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}
.back-inline:hover{color:#173969}
.back-inline:focus-visible{outline:3px solid #7ca6e7;outline-offset:4px}
html[lang="ar"] :is(.review-group h3,.send-card h3,.quote-export h3){font-family:'Kufam','Tajawal',sans-serif;letter-spacing:0;line-height:1.8}
html[lang="en"] :is(.review-group h3,.send-card h3,.quote-export h3){font-family:'DM Sans','Plus Jakarta Sans',sans-serif}
html[dir="rtl"] .review-fact dd[dir="auto"]{unicode-bidi:plaintext}
.order-summary .sum-row .value,.order-summary .summary-total strong{unicode-bidi:isolate}
@media(max-width:1120px){.send-card{grid-template-columns:1fr 1fr}.send-card-copy{grid-column:1/-1}.send-card .btn{width:100%}.quote-export{grid-template-columns:1fr}.quote-export-actions{justify-content:flex-start}}
@media(max-width:560px){body[data-order-step="3"] .page-intro h1{font-size:1.68rem}.step-panel-review{padding:17px 15px}.review-group{padding:15px}.review-group-grid{grid-template-columns:1fr 1fr;gap:13px}.send-card{padding:15px;grid-template-columns:1fr}.send-card .btn{width:100%}.quote-export{padding:14px}.quote-export-actions{display:grid;grid-template-columns:1fr 1fr}.quote-export-actions .btn{min-width:0;white-space:normal}.review-fact dd{font-size:.85rem}}
@media(max-width:370px){.review-group-grid{grid-template-columns:1fr}.quote-export-actions{grid-template-columns:1fr}}

/* V24: explicit second-step file save works reliably after asynchronous export. */
.quote-save-link{grid-column:1/-1;justify-self:start;min-width:160px;text-align:center;margin-top:4px;text-decoration:none;}
.quote-save-link[hidden]{display:none!important;}
.quote-export-status{grid-column:1/-1;}
@media(max-width:560px){.quote-save-link{justify-self:stretch}}

/* V28 — readable multi-location custom quotation summary (RTL/LTR). */
.order-summary .summary-total.is-custom-quote{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:start;
  gap:5px;
}
.order-summary .summary-total.is-custom-quote strong{
  font-size:clamp(1rem,1.2vw,1.12rem);
  line-height:1.5;
  white-space:normal;
  overflow-wrap:normal;
  text-align:start;
}
.order-summary .summary-total.is-custom-quote #summary-total-label{
  font-weight:650;
  color:#4c5f7a;
  font-size:.82rem;
}
.order-summary .sum-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:12px;align-items:start}
.order-summary .sum-row>.value{max-width:150px;text-align:end;white-space:normal;overflow-wrap:normal;line-height:1.5}
.order-summary .sum-row>span:first-child{min-width:0;overflow-wrap:break-word}
@media(max-width:850px){.order-summary .summary-lines{grid-template-columns:1fr}}
