/* Shared project form: scoped to its own wrapper, including callback reuse. */
.ds-project-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px}
.ds-project-form p{margin:0;min-width:0}
.ds-project-form .wide{grid-column:1/-1}
.ds-project-form .project-form-intro{padding-bottom:4px;border-bottom:1px solid #e5e3df}
.ds-project-form .project-form-kicker{display:block;margin-bottom:7px;color:var(--red);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ds-project-form .project-form-intro h3{margin:0 0 8px;font-size:clamp(23px,2.4vw,30px);line-height:1.2}
.ds-project-form .project-form-intro p{max-width:610px;color:#5d5d59;font-size:14px;line-height:1.6}
.ds-project-form label{display:block;font-size:14px;font-weight:500;line-height:1.5;color:#252525}
.ds-project-form label>br{display:none}
.ds-project-form label>span.wpcf7-form-control-wrap{display:block;margin-top:8px}
.ds-project-form input:not([type=checkbox]):not([type=submit]):not([type=file]),.ds-project-form textarea,.ds-project-form select{width:100%;min-height:52px;padding:13px 14px;border:1px solid #bcbcb8;border-radius:6px;background:#fafaf9;color:#202020;font:400 16px/1.5 Montserrat,sans-serif;box-shadow:none}
.ds-project-form textarea{height:116px;min-height:116px;resize:vertical}
.ds-project-form input::placeholder,.ds-project-form textarea::placeholder{color:#70706d;opacity:1}
.ds-project-form input:focus-visible,.ds-project-form textarea:focus-visible,.ds-project-form select:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-color:var(--red);background:white}
.ds-project-form fieldset{min-width:0;margin:0;padding:0;border:0}
.ds-project-form fieldset legend{margin-bottom:10px;font-size:14px;font-weight:500;color:#252525}
.ds-project-form .project-services .wpcf7-form-control{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ds-project-form .project-services .wpcf7-list-item{margin:0}
.ds-project-form .project-services label{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 12px;border:1px solid #d6d4d0;border-radius:6px;background:#fafaf9;font-weight:400;cursor:pointer}
.ds-project-form .project-services label:has(input:checked){border-color:#b5091e;background:#fff3f4;color:#86101e}
.ds-project-form .project-services input{flex:none;margin:0}
.ds-project-form .project-file-field{min-width:0}
.ds-project-form .project-file-control{display:block;position:relative;margin-top:8px}
.ds-project-form .project-file-visual{display:none}
.ds-project-form input[type=file]{font:400 16px/1.5 Montserrat,sans-serif;width:100%;padding:10px;border:1px solid #bcbcb8;border-radius:6px;background:#fafaf9}
.ds-project-form input[type=file]::file-selector-button{font:600 14px Montserrat,sans-serif;padding:10px 14px;margin-right:12px;border:1px solid #b5091e;color:#b5091e;background:white;border-radius:4px;cursor:pointer}
.ds-project-form .is-enhanced .project-file-visual{display:flex;align-items:center;gap:14px;padding:17px 18px;border:1px dashed #aaa9a4;border-radius:8px;background:#fafaf9;min-height:82px;font-size:16px;font-weight:400}
.ds-project-form .project-file-icon{width:28px;height:28px;flex:none;background:url('../icons/upload-simple.svg') center/contain no-repeat}
.ds-project-form .project-file-action{margin-left:auto;font-size:14px;font-weight:600;color:#b5091e}
.ds-project-form .project-file-copy{display:grid;gap:2px;min-width:0}
.ds-project-form .project-file-copy strong{font-size:15px;font-weight:600}
.ds-project-form .project-file-copy small{font-size:13px;color:#66645f}
.ds-project-form .is-enhanced .project-file-control>.wpcf7-form-control-wrap{position:static}
.ds-project-form .is-enhanced input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:1;cursor:pointer}
.ds-project-form .project-file-control:hover .project-file-visual{background:#fff5f5;border-color:#b5091e}
.ds-project-form .project-file-control:focus-within .project-file-visual{outline:2px solid var(--red);outline-offset:2px;border-color:var(--red)}
.ds-project-form .has-file .project-file-visual{border-style:solid;border-color:#b5091e}
.ds-project-form .project-file-name{display:none;font-size:14px;line-height:1.5;color:#333;overflow-wrap:anywhere;margin-top:8px}
.ds-project-form .is-enhanced .project-file-name{display:block}
.ds-project-form .file-hint{display:block;font-size:14px;line-height:1.5;color:#62625e;margin:6px 0 0;padding:0}
.ds-project-form .wpcf7-acceptance label{display:flex;align-items:flex-start;gap:12px;font-size:14px;font-weight:400;line-height:1.6;color:#444}
.ds-project-form .wpcf7-acceptance .wpcf7-list-item{margin:0}
.ds-project-form .wpcf7-acceptance input{width:20px;height:20px;flex:none;margin:2px 0 0;accent-color:var(--red)}
.ds-project-form .wpcf7-acceptance .wpcf7-list-item-label{margin:0}
.ds-project-form .wpcf7-acceptance a{color:#a3091b;text-decoration:underline;text-underline-offset:3px}
.ds-project-form .button{width:100%;min-height:54px;border-radius:6px;font-size:16px;line-height:1.4;white-space:normal;padding:14px 18px;cursor:pointer}
.ds-project-form .project-form-submit{display:grid;grid-template-columns:minmax(200px,1fr) minmax(180px,.8fr);gap:16px;align-items:center}
.ds-project-form .submit-note{font-size:13px;line-height:1.55;color:#62625e}
.ds-project-form.is-callback .project-detail,.ds-project-form.is-callback .project-file-field{display:none}
.ds-project-form .button:disabled{background:#e5b4b8;color:#54272b;border-color:#e5b4b8;cursor:not-allowed;opacity:1}
.ds-project-form .local-form-note{font-size:14px;line-height:1.6;color:#62625e;padding:0}
.wpcf7:has(.ds-project-form) .wpcf7-response-output{margin:20px 0 0;padding:16px 18px;border:1px solid #ad3040;border-radius:6px;background:#fff4f4;color:#772431;font-size:14px;line-height:1.6}
.wpcf7:has(.ds-project-form) form.sent .wpcf7-response-output{border-color:#568269;background:#f0f8f2;color:#245138}
.wpcf7:has(.ds-project-form) .wpcf7-not-valid-tip{font-size:14px!important;line-height:1.5;margin-top:7px;color:#ae1226}
.ds-project-form [aria-invalid=true]{border-color:#ae1226!important;background:#fff5f5!important}
.ds-project-form .project-file-control:has([aria-invalid=true]) .project-file-visual{border-color:#ae1226;background:#fff5f5}
.wpcf7:has(.ds-project-form) .wpcf7-spinner{display:block;margin:10px auto 0}
.wpcf7:has(.ds-project-form) form:not(.submitting) .wpcf7-spinner{display:none}
.home .request-direct>span{font-size:14px}
@media(max-width:700px){.ds-project-form .project-services .wpcf7-form-control{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ds-project-form{grid-template-columns:1fr;gap:18px}.ds-project-form .project-services .wpcf7-form-control{grid-template-columns:1fr}.ds-project-form .project-form-submit{grid-template-columns:1fr;gap:9px}.ds-project-form .project-file-visual{gap:10px}.ds-project-form .project-file-action{display:none}}
.wpcf7:has(.ds-project-form) form.invalid .wpcf7-response-output,.wpcf7:has(.ds-project-form) form.unaccepted .wpcf7-response-output,.wpcf7:has(.ds-project-form) form.failed .wpcf7-response-output{border-color:#ad3040}
.ds-project-form .button:disabled{background:#b5434e;border-color:#b5434e;color:#fff}
.unified-request>.container{width:100%;max-width:none;padding-inline:clamp(16px,2.5vw,64px)}.unified-request .project-request{display:grid;grid-template-columns:minmax(300px,42fr) minmax(0,58fr);gap:clamp(22px,2.5vw,44px);padding:clamp(22px,2.2vw,36px);background:#202020;border:1px solid #202020;border-radius:8px;overflow:hidden}.unified-request .request-story{position:relative;isolation:isolate;display:flex;min-width:0;min-height:600px;padding:28px;flex-direction:column;overflow:hidden;border-radius:6px}.unified-request .request-photo{position:absolute;inset:0;z-index:-2;width:100%;height:100%;margin:0;object-fit:contain;object-position:center bottom;background:#171717}.unified-request .request-story:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to bottom,rgba(12,12,12,.92) 0%,rgba(12,12,12,.68) 28%,transparent 54%,rgba(12,12,12,.92) 100%)}.unified-request .request-intro{max-width:440px}.unified-request .request-intro .eyebrow{margin:0 0 16px;color:#ff5260;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.unified-request .request-intro h2{margin:0 0 16px;color:#fff;font-size:36px;line-height:1.16}.unified-request .request-intro p:not(.eyebrow){max-width:300px;margin:0;color:#ededed;font-size:16px;line-height:1.65}.unified-request .request-direct{display:flex;margin-top:auto;flex-direction:column;align-items:flex-start;gap:9px}.unified-request .request-direct a{display:flex;align-items:center;gap:10px;color:#fff;font-size:16px;overflow-wrap:anywhere}.unified-request .request-direct .contact-phone{font-size:20px}.unified-request .request-direct .icon{width:22px;height:22px;flex:none}.unified-request .request-direct>span{color:#ccc;font-size:13px}.unified-request .request-form{align-self:center;min-width:0;padding:clamp(22px,2vw,30px);background:#fff;border-top:4px solid var(--red);border-radius:8px;box-shadow:0 18px 45px rgba(0,0,0,.16)}.unified-request .request-form .project-form-intro,.unified-request .request-form .form-secondary,.unified-request .request-form .project-detail{display:none}.unified-request .request-form .ds-project-form{gap:16px}.unified-request .request-form textarea{height:88px;min-height:88px}.unified-request .request-form .project-file-visual{min-height:68px;padding:13px 16px;gap:12px}.unified-request .request-form .project-file-icon{width:30px;height:30px}.unified-request .request-form .project-file-copy small{display:none}.unified-request .request-form .file-hint,.unified-request .request-form .project-file-name,.unified-request .request-form .local-form-note{font-size:12px}.unified-request .request-form .form-consent label{font-size:13px}.unified-request .request-form .project-form-submit{grid-template-columns:minmax(210px,.8fr) minmax(180px,1fr);gap:14px}
@media(max-width:1000px){.unified-request .project-request{grid-template-columns:minmax(260px,38fr) minmax(0,62fr)}.unified-request .request-story{min-height:570px;padding:24px}.unified-request .request-form .project-form-submit{grid-template-columns:1fr}}
@media(max-width:760px){.unified-request>.container{padding-inline:16px}.unified-request .project-request{grid-template-columns:1fr;padding:16px;gap:16px}.unified-request .request-story{min-height:360px;padding:22px}.unified-request .request-story:before{background:linear-gradient(to bottom,rgba(15,15,15,.95) 0%,rgba(15,15,15,.88) 38%,transparent 55%,rgba(15,15,15,.92) 100%)}.unified-request .request-intro h2{font-size:28px}.unified-request .request-intro p:not(.eyebrow){max-width:100%;font-size:15px}.unified-request .request-form{padding:20px 16px;box-shadow:none}.unified-request .request-direct a,.unified-request .request-direct .contact-phone{font-size:15px}}

#project-dialog{width:min(760px,calc(100% - 28px));max-width:760px;max-height:calc(100vh - 28px);padding:0;border:0;border-radius:12px;box-shadow:0 28px 80px #0005;overflow:auto}
#project-dialog::backdrop{background:#171513b8;backdrop-filter:blur(3px)}
#project-dialog .dialog-head{position:sticky;top:0;z-index:3;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e3df;background:#fff}
#project-dialog .dialog-head h2{margin:0;font-size:14px;letter-spacing:.04em;text-transform:uppercase}
#project-dialog .dialog-head .icon-button{border-radius:50%;background:#f4f3f1}
#project-dialog .callback-form-slot{padding:24px 28px 30px}
@media(max-width:600px){#project-dialog{width:100%;max-width:none;max-height:calc(100dvh - 10px);margin:auto 0 0;border-radius:14px 14px 0 0}#project-dialog .callback-form-slot{padding:20px 18px 26px}}
.ds-project-form .project-services [hidden]{display:none!important}
.ds-project-form .project-services .service-task-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
.ds-project-form .service-task-choices label{height:100%}
@media(max-width:600px){.ds-project-form .project-services .service-task-choices{grid-template-columns:1fr}}
