/* Three clear entry choices, followed by service-specific questions. */
#request-dialog{width:min(760px,calc(100% - 24px));max-height:calc(100dvh - 24px)}
#request-dialog .request-service-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0 8px}
#request-dialog .request-service-choices :is(a,button){display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-width:0;min-height:160px;padding:20px 12px;border:3px solid #171918;border-radius:12px;background:#fff;color:#171918;text-align:center;text-decoration:none;font-family:'DM Sans',Arial,sans-serif;cursor:pointer}
#request-dialog .request-service-choices :is(a,button):first-child,#request-dialog .request-service-choices :is(a,button):last-child{background:#171918;color:#fff}
#request-dialog .request-service-choices strong{font-size:calc(20px * var(--text-scale,1));line-height:1.2}
#request-dialog .request-service-choices span{font-size:calc(11px * var(--text-scale,1));line-height:1.4}
#request-dialog .request-service-choices b{color:#d82719;font-size:28px;line-height:1}
#request-dialog .request-service-choices :is(a,button):focus-visible{outline:3px solid #0000ee;outline-offset:4px}
#request-dialog .request-change-service{display:block;margin:0 auto 24px;padding:10px 16px;border:2px solid #171918;border-radius:8px;background:#fff;color:#171918;font:700 16px/1.4 'DM Sans',Arial,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
#request-dialog .request-service-fields{min-width:0;margin:8px 0;padding:20px 16px;border:2px solid #969e97;border-radius:12px;background:#f4f4f0}
#request-dialog .request-service-fields legend{padding:0 8px;font-size:calc(15px * var(--text-scale,1));font-weight:800;text-align:center}
#request-dialog [hidden]{display:none!important}
#request-dialog .dialog-close{font-size:40px;line-height:1}
@media(max-width:600px){
 #request-dialog .request-service-choices{grid-template-columns:1fr;gap:14px;margin-top:20px}
 #request-dialog .request-service-choices :is(a,button){min-height:116px;padding:16px;gap:7px}
 #request-dialog .request-service-choices strong{font-size:26px}
 #request-dialog .request-service-choices span{font-size:16px}
 #request-dialog .request-service-choices b{display:none}
 #request-dialog .form-grid{grid-template-columns:1fr}
}

/* Forms are left aligned documents; the website and service-choice cards stay centered. */
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order){text-align:left!important}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) :is(.eyebrow,h2,h3,p,legend,label,dl,dt,dd,.request-plan,.request-plan>*,.review-offer){text-align:left!important}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) .form-grid{gap:24px}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) .form-grid label{display:block;text-align:left!important}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) .form-grid label>span{display:inline}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) :is(input:not([type="checkbox"]):not([type="file"]),textarea,select){display:block;width:100%;margin-top:8px;text-align:left!important;text-transform:none!important;letter-spacing:normal}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) :is(textarea,select){border-radius:5px}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) :is(.request-link-tools,.review-actions){justify-content:flex-start;text-align:left}
html body #request-dialog[data-active-service]:not([data-active-service=""]) .request-link-tools{margin:16px 0}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) :is(.request-change-service,.button){margin-inline:0!important;justify-content:flex-start!important;text-align:left!important}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) .request-change-service{margin-block:0 28px}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) .check-row{align-items:flex-start;justify-content:flex-start;text-align:left}
html body :is(#request-dialog[data-active-service]:not([data-active-service=""]),#moving-work-order) :is(input[type="checkbox"],input[type="file"]){text-align:left!important}

html body #request-dialog .form-grid label>:is(#request-address-label,#request-date-label,strong){font:inherit;color:inherit;text-align:inherit}

/* Rental controls must fit even a narrow phone's nested fieldset. */
#request-dialog[data-active-service="Dumpster rental"] .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
#request-dialog[data-active-service="Dumpster rental"] .form-grid label{min-width:0}
#request-dialog[data-active-service="Dumpster rental"] .form-grid :is(input,select,textarea){min-width:0;max-width:100%}
@media(max-width:600px){#request-dialog[data-active-service="Dumpster rental"] .form-grid{grid-template-columns:minmax(0,1fr)}}

#request-dialog[data-active-service="Dumpster rental"] .review-details dt{font-size:calc(11px * var(--text-scale,1));font-weight:700;text-transform:none;letter-spacing:normal;text-align:left}
@media(max-width:800px){#request-dialog[data-active-service="Dumpster rental"] .review-details dt{font-size:calc(12px * var(--text-scale,1))}}

#request-dialog[data-active-service="Dumpster rental"] select{text-align-last:left!important}

/* Form label casing is authored; do not capitalize conjunctions. */
html body #request-dialog :is(label,legend,.review-details dt){text-transform:none!important}

/* Stable entry boxes: content scrolls inside, never grows or resizes the form. */
html body :is(#request-form,#moving-form) .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
html body :is(#request-form,#moving-form) .form-grid label{min-width:0}
html body :is(#request-form,#moving-form) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){box-sizing:border-box;width:100%;min-width:0;max-width:100%}
html body :is(#request-form,#moving-form) :is(input:not([type="checkbox"]):not([type="radio"]),select){height:64px!important;min-height:64px!important;max-height:64px!important}
html body :is(#request-form,#moving-form) textarea{--entry-box-height:160px;height:var(--entry-box-height)!important;min-height:var(--entry-box-height)!important;max-height:var(--entry-box-height)!important;resize:none!important;overflow-y:auto;overflow-x:hidden;white-space:pre-wrap;overflow-wrap:anywhere;field-sizing:fixed}
html body :is(#request-form,#moving-form) textarea:is([name="haulingItems"],[name="inventory"],[name="dumpsterMaterials"]){--entry-box-height:192px}
html body :is(#request-form,#moving-form) textarea:is([name="details"],[name="specialHandling"],[name="haulingSpecial"],[name="dumpsterHeavy"]){--entry-box-height:128px}
@media(max-width:800px){html body :is(#request-form,#moving-form) .form-grid{grid-template-columns:minmax(0,1fr)!important}}

/* Explicit invitation stays at the bottom of every complete clickable service card. */
#request-dialog .request-service-choices .request-choice-hint{display:block;font-size:16px;font-weight:400;line-height:1.25;letter-spacing:0;text-transform:none;margin-top:2px}
