/* Gravity Forms styled to match The Junk Man forms (quote, garbage sign-up, booking). Loads after screen.css. */

/* ---- hero quick quote (.ph-q) ---- */
.ph-q .gform_wrapper .gform_fields{display:flex;flex-direction:column;gap:8px}
.ph-q .gform_wrapper .gform-field-label{font-weight:700;font-size:.88rem;margin-top:6px;display:block}
.ph-q .gform_wrapper .gfield_required{display:none}
.ph-q .gform_wrapper .gform_footer{margin:0;padding:0}
.ph-q .gform_wrapper .gform_footer .gform_button,.ph-q .gform_wrapper .gform_footer button[type=submit]{width:100%;margin-top:12px;min-height:56px;border:0;border-radius:999px;background:var(--lime,#a3c242);color:#14210a;font-weight:800;font-size:1.05rem;cursor:pointer}
.ph-q .gform_wrapper .gform_footer .gform_button:hover{filter:brightness(1.06)}
.ph-q .phq-done{text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center;padding:8px 0}
.ph-q .phq-done h3{font-family:var(--display);text-transform:uppercase;font-size:1.5rem;line-height:1.05}
.ph-q .phq-done p{color:var(--muted)}
.ph-q .phq-done .btn{margin-top:4px}

/* ---- base ---- */
.gform_wrapper{margin:0;color:var(--text)}
.gform_wrapper form{margin:0}
.gform_wrapper .gform_heading,.gform_wrapper .gform_required_legend{display:none}
.gform_wrapper .gform_fields{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);list-style:none;margin:0;padding:0}
.gform_wrapper .gfield{min-width:0;margin:0;padding:0;border:0}
.gform_wrapper .gfield.gfield--type-hidden,.gform_wrapper .gfield--type-honeypot,.gform_wrapper .gform_validation_container{display:none!important}
.gform_wrapper .gfield_label,.gform_wrapper legend.gfield_label{display:block;font-weight:700;font-size:.92rem;margin:0 0 6px;padding:0;float:none;width:auto}
.gform_wrapper .gfield_required{display:none}
.gform_wrapper .ginput_container{margin:0}
.gform_wrapper input[type=text],.gform_wrapper input[type=tel],.gform_wrapper input[type=email],.gform_wrapper input[type=date],.gform_wrapper input[type=number],.gform_wrapper select,.gform_wrapper textarea{display:block;width:100%;box-sizing:border-box;min-height:52px;padding:12px 14px;border:1.5px solid #9aa38a;border-radius:14px;font:500 16px/1.4 var(--body);color:var(--text);background:#fff;margin:0}
.gform_wrapper textarea{min-height:100px;resize:vertical}
.gform_wrapper input:focus-visible,.gform_wrapper select:focus-visible,.gform_wrapper textarea:focus-visible{outline:3px solid var(--green);outline-offset:1px;border-color:var(--green-deep)}
.gform_wrapper .gfield_description{font-size:.88rem;color:var(--muted);margin-top:6px;padding:0}
.gform_wrapper .gform_footer,.gform_wrapper .gform_page_footer{margin:0;padding:0;display:block}
.gform_wrapper .gform_ajax_spinner{width:22px;height:22px;margin-left:10px;vertical-align:middle}
.gform_wrapper .fine{margin:12px 0 0;text-align:center;color:var(--muted);font-size:.9rem}

/* two-column rows on tablet and up */
@media (min-width:640px){
 .gform_wrapper .gform_fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gform_wrapper .gfield{grid-column:1/-1}
 .gform_wrapper .gfield.tjm-half{grid-column:auto}
}

/* ---- errors ---- */
.gform_wrapper .gform_validation_errors{border:2px solid #b3261e;border-radius:14px;background:#fdf1f0;padding:12px 16px;margin:0 0 16px;color:#8a1c14}
.gform_wrapper .gform_validation_errors h2{font:700 1rem var(--body);margin:0;color:#8a1c14;text-transform:none}
.gform_wrapper .gform_validation_errors ol{margin:6px 0 0 18px;padding:0;font-size:.9rem}
.gform_wrapper .gform_validation_errors a{color:#8a1c14;text-decoration:underline}
.gform_wrapper .gfield_error input,.gform_wrapper .gfield_error select,.gform_wrapper .gfield_error textarea{border-color:#b3261e}
.gform_wrapper .gfield_validation_message,.gform_wrapper .validation_message{display:block;color:#b3261e;font-weight:700;font-size:.88rem;margin-top:4px;padding:0;background:none;border:0}

/* ---- submit and page buttons use the theme .btn ---- */
.gform_wrapper .gform_footer .btn,.gform_wrapper .gform_page_footer .btn{cursor:pointer}
.qform .gform_footer .btn,.dpf .gform_footer .btn{width:100%}
.gform_wrapper .gform_footer{margin-top:4px}

/* ---- file uploads (multiple files) ---- */
.gform_wrapper .gform_drop_area{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:22px 16px;border:2px dashed var(--green);border-radius:18px;background:var(--tint);font-weight:700;color:var(--green-deep)}
.gform_wrapper .gform_drop_instructions{font-weight:600}
.gform_wrapper .gform_button_select_files{appearance:none;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font:700 .95rem var(--body);padding:10px 18px;cursor:pointer}
.gform_wrapper .gform_button_select_files:hover{background:var(--lime)}
.gform_wrapper .ginput_preview_list{display:grid;gap:8px;margin-top:10px}
.gform_wrapper .ginput_preview{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:.9rem}
.gform_wrapper .gform_delete_file{cursor:pointer;color:#b3261e;font-weight:700}
.gform_wrapper .gfield_description.gform_fileupload_rules{margin-top:6px}

/* ---- quote form ---- */
.qform .gform_wrapper .gform_fields{margin-top:0}
.qform .gform_wrapper .gform_body{margin-top:0}
.qform:has(.gform_confirmation_wrapper) .qmain>h3,.qform:has(.gform_confirmation_wrapper) .qmain>.sub{display:none}
.qform .gform_confirmation_wrapper .qdone{display:grid;text-align:center;padding:30px 6px;gap:14px;justify-items:center}
.qform .gform_confirmation_wrapper .qdone h3{margin:0}

/* ---- garbage pickup sign-up ---- */
.dpf .gform_wrapper .gform_fields{gap:14px}
.dpf .gfield_label,.dpf legend.gfield_label{margin-bottom:6px}
.dpf .tjm-plan .gfield_radio{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}
.dpf .tjm-plan .gchoice{position:relative;margin:0}
.dpf .tjm-plan .gchoice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.dpf .tjm-plan .gchoice label{margin:0;border:1.5px solid var(--mist);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:2px;font-weight:600;cursor:pointer;background:#fff;height:100%;box-sizing:border-box}
.dpf .tjm-plan .gchoice label b{font:700 1.35rem/1 var(--display);text-transform:uppercase}
.dpf .tjm-plan .gchoice label small{color:var(--muted);font-weight:500}
.dpf .tjm-plan .gchoice:has(input:checked) label{border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px var(--lime)}
.dpf .tjm-plan .gchoice:has(input:focus-visible) label{outline:3px solid var(--lime);outline-offset:2px}
.dpf .gform_confirmation_wrapper .dpf-done{display:block;text-align:center;padding:30px 10px}
.dpf .gform_confirmation_wrapper .dpf-done h3{font:700 2rem var(--display);text-transform:uppercase;margin:8px 0}

/* ---- booking (4 pages) ---- */
.bk-gf .gform_wrapper .gform_page{display:block}
.bk-gf .gform_wrapper .gform_page_fields{display:block}
.bk-gf .gform_wrapper .gform_page .gform_fields{margin:0}
.bk-gf .bk-p1 h2,.bk-gf .bk-h2{margin:0 0 6px}
.bk-gf .gfield--type-html{margin:0}
.bk-gf .tjm-bk-hidden{display:none!important}
.bk-gf .tjm-bk-services .gfield_label,.bk-gf .tjm-bk-services .ginput_container{display:none}
.bk-gf .tjm-bk-services .validation_message{margin:0 0 14px;color:#b3261e;font-weight:700}
/* pages 2 and 3 are cards */
.bk-gf .gform_page[id$="_2"] .gform_page_fields .gform_fields,.bk-gf .gform_page[id$="_3"] .gform_page_fields .gform_fields{background:#fff;border:3px solid var(--ink);border-radius:var(--r);box-shadow:0 6px 0 var(--ink);padding:26px;margin-bottom:6px}
.bk-gf .gform_page .gfield--type-html{grid-column:1/-1}
.bk-gf .gform_page .gform_fields .gfield--type-html{padding:0;background:none;border:0;box-shadow:none}
.bk-gf .gfield_required{display:inline;color:#b3261e;margin-left:3px}
.bk-gf .gfield_required .gfield_required_text{display:none}
.bk-gf .gfield_required::after{content:"*"}
.bk-gf .tjm-bk-services .gfield_required::after{content:none}
.bk-gf .gform_wrapper input[type=text],.bk-gf .gform_wrapper input[type=tel],.bk-gf .gform_wrapper input[type=email],.bk-gf .gform_wrapper input[type=date],.bk-gf .gform_wrapper select,.bk-gf .gform_wrapper textarea{border-width:2px;border-color:var(--mist);min-height:50px}
.bk-gf .gform_wrapper textarea{min-height:96px}
.bk-gf .gform_wrapper input:focus,.bk-gf .gform_wrapper select:focus,.bk-gf .gform_wrapper textarea:focus{outline:0;border-color:var(--green-deep);box-shadow:0 0 0 3px rgba(163,194,66,.5)}
/* realtor / landlord toggle */
.bk-gf .tjm-bk-biz .gfield_label{display:none}
.bk-gf .tjm-bk-biz .gchoice{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:16px;background:var(--tint);margin:0}
.bk-gf .tjm-bk-biz .gchoice input{width:22px;height:22px;min-height:0;accent-color:var(--green-deep);margin:2px 0 0;flex:none}
.bk-gf .tjm-bk-biz .gchoice label{margin:0;cursor:pointer;font-weight:400}
.bk-gf .tjm-bk-biz .gchoice b{display:block}
.bk-gf .tjm-bk-biz .gchoice small{display:block;color:var(--muted)}
/* time of day */
.bk-gf .tjm-slot .gfield_radio{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.bk-gf .tjm-slot .gchoice{position:relative;margin:0}
.bk-gf .tjm-slot .gchoice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;min-height:0;margin:0;cursor:pointer}
.bk-gf .tjm-slot .gchoice label{display:block;text-align:center;padding:14px 6px;border:3px solid var(--mist);border-radius:16px;font-weight:700;line-height:1.2;background:var(--paper);margin:0;height:100%;box-sizing:border-box;cursor:pointer}
.bk-gf .tjm-slot .gchoice label small{display:block;font-weight:500;color:var(--muted);font-size:.8rem}
.bk-gf .tjm-slot .gchoice:has(input:checked) label{border-color:var(--ink);background:var(--tint);box-shadow:0 4px 0 var(--ink)}
.bk-gf .tjm-slot .gchoice:has(input:focus-visible) label{outline:3px solid var(--lime);outline-offset:2px}
.bk-gf .tjm-slot.gfield_error .gchoice label{border-color:#b3261e}
/* step buttons */
.bk-gf .gform_page_footer{display:flex;gap:14px;justify-content:space-between;align-items:center;margin-top:26px;flex-wrap:wrap}
.bk-gf .gform_page_footer .gform_previous_button{order:0}
.bk-gf .gform_page_footer .gform_next_button,.bk-gf .gform_page_footer .gform_button{order:1;margin-left:auto}
.bk-gf .gform_page[id$="_1"] .gform_page_footer{justify-content:flex-end}
.bk-gf .gform_wrapper .gform_page_footer .btn{width:auto}
/* confirmation */
.bk-gf .gform_confirmation_wrapper .bk-thanks{display:block}
/* review page: the live Send/Copy row is inside the HTML field; the real submit sits below it */
.bk-gf .bk-review .bk-cta .btn{margin:0}

@media (max-width:639px){
 .bk-gf .tjm-slot .gfield_radio{grid-template-columns:repeat(2,minmax(0,1fr))}
 .bk-gf .gform_page[id$="_2"] .gform_page_fields .gform_fields,.bk-gf .gform_page[id$="_3"] .gform_page_fields .gform_fields{padding:18px}
 .bk-gf .gform_page_footer{flex-direction:column-reverse;align-items:stretch}
 .bk-gf .gform_page_footer .btn,.bk-gf .gform_wrapper .gform_page_footer .btn{width:100%;margin-left:0}
}
@media (min-width:640px) and (max-width:900px){
 .bk-gf .tjm-slot .gfield_radio{grid-template-columns:repeat(3,minmax(0,1fr))}
}
