/* CPC Directory Submission Manager — dark, responsive front-end form */
.cpcsm-form-wrap{
    --cpcsm-bg:#0a0a0a;
    --cpcsm-surface:#111111;
    --cpcsm-surface-2:#171717;
    --cpcsm-border:#303030;
    --cpcsm-border-focus:#777;
    --cpcsm-text:#f2f2f2;
    --cpcsm-muted:#a6a6a6;
    --cpcsm-placeholder:#707070;
    --cpcsm-accent:#d9d9d9;
    --cpcsm-success-bg:#132219;
    --cpcsm-success-border:#2d5a3b;
    --cpcsm-error-bg:#261416;
    --cpcsm-error-border:#633238;
    box-sizing:border-box;
    width:min(100%,1080px);
    margin:24px auto;
    color:var(--cpcsm-text);
    color-scheme:dark;
}
.cpcsm-form-wrap *,.cpcsm-form-wrap *::before,.cpcsm-form-wrap *::after{box-sizing:border-box}
.cpcsm-form{
    width:100%;
    margin:0;
    padding:clamp(18px,3vw,32px);
    background:var(--cpcsm-bg);
    color:var(--cpcsm-text);
    border:1px solid var(--cpcsm-border);
    border-radius:14px;
    box-shadow:0 12px 35px rgba(0,0,0,.28);
}
.cpcsm-section{
    margin:0 0 22px;
    padding:18px;
    background:var(--cpcsm-surface);
    border:1px solid var(--cpcsm-border);
    border-radius:12px;
}
.cpcsm-section:last-child{margin-bottom:0}
.cpcsm-section h3{
    margin:0 0 14px;
    color:var(--cpcsm-text);
    font-size:1.05rem;
    line-height:1.35;
    font-weight:700;
}
.cpcsm-sections{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin:0 0 22px;
}
.cpcsm-field{min-width:0}
.cpcsm-field--full{grid-column:1/-1}
.cpcsm-field label,
.cpcsm-field fieldset{
    display:block;
    width:100%;
    color:var(--cpcsm-text);
    font-size:.92rem;
    line-height:1.4;
    font-weight:600;
}
.cpcsm-field input[type=text],
.cpcsm-field input[type=url],
.cpcsm-field input[type=email],
.cpcsm-field input[type=tel],
.cpcsm-field input[type=date],
.cpcsm-field input[type=time],
.cpcsm-field input[type=number],
.cpcsm-field select,
.cpcsm-field textarea,
.cpcsm-section select{
    display:block;
    width:100%;
    max-width:100%;
    min-height:46px;
    margin:7px 0 0;
    padding:11px 13px;
    border:1px solid var(--cpcsm-border);
    border-radius:8px;
    outline:0;
    background:var(--cpcsm-surface-2);
    color:var(--cpcsm-text);
    font:inherit;
    line-height:1.4;
    -webkit-appearance:none;
    appearance:none;
    transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
.cpcsm-field select,
.cpcsm-section select{
    padding-right:38px;
    background-image:linear-gradient(45deg,transparent 50%,#aaa 50%),linear-gradient(135deg,#aaa 50%,transparent 50%);
    background-position:calc(100% - 17px) 20px,calc(100% - 12px) 20px;
    background-size:5px 5px,5px 5px;
    background-repeat:no-repeat;
}
.cpcsm-field textarea{min-height:118px;resize:vertical}
.cpcsm-field input::placeholder,.cpcsm-field textarea::placeholder{color:var(--cpcsm-placeholder);opacity:1}
.cpcsm-field input:hover,.cpcsm-field select:hover,.cpcsm-field textarea:hover,.cpcsm-section select:hover{border-color:#484848}
.cpcsm-field input:focus,.cpcsm-field select:focus,.cpcsm-field textarea:focus,.cpcsm-section select:focus{
    border-color:var(--cpcsm-border-focus);
    box-shadow:0 0 0 3px rgba(255,255,255,.08);
}
.cpcsm-field input[type=date],.cpcsm-field input[type=time]{color-scheme:dark}
.cpcsm-field fieldset{
    margin:0;
    padding:13px;
    border:1px solid var(--cpcsm-border);
    border-radius:8px;
    background:var(--cpcsm-surface-2);
}
.cpcsm-field fieldset legend{padding:0 5px;color:var(--cpcsm-text);font-weight:600}
.cpcsm-inline-check,.cpcsm-check{
    display:inline-flex!important;
    align-items:center;
    gap:8px;
    width:auto!important;
    margin:7px 16px 2px 0;
    color:#d4d4d4!important;
    font-weight:400!important;
    cursor:pointer;
}
.cpcsm-check{margin:0;padding:4px 0}
.cpcsm-inline-check input,.cpcsm-check input{width:18px;height:18px;margin:0;accent-color:#d9d9d9;flex:0 0 auto}
.cpcsm-help{
    margin:7px 0 0;
    color:var(--cpcsm-muted);
    font-size:.84rem;
    line-height:1.5;
}
.cpcsm-section input[type=file]{
    display:block;
    width:100%;
    max-width:100%;
    margin-top:9px;
    padding:9px;
    border:1px dashed #3a3a3a;
    border-radius:8px;
    background:#151515;
    color:#ccc;
    font:inherit;
}
.cpcsm-section input[type=file]::file-selector-button{
    margin-right:10px;
    padding:8px 12px;
    border:1px solid #444;
    border-radius:6px;
    background:#222;
    color:#eee;
    font:inherit;
    font-weight:600;
    cursor:pointer;
}
.cpcsm-submit{
    display:block;
    width:100%;
    min-height:48px;
    margin-top:2px;
    padding:12px 20px;
    border:1px solid #5b5b5b;
    border-radius:9px;
    background:#e5e5e5;
    color:#0a0a0a;
    font:inherit;
    font-weight:700;
    line-height:1.2;
    cursor:pointer;
    transition:background-color .15s ease,border-color .15s ease,transform .05s ease;
}
.cpcsm-submit:hover{background:#fff;border-color:#777}
.cpcsm-submit:active{transform:translateY(1px)}
.cpcsm-submit:focus-visible{outline:0;box-shadow:0 0 0 3px rgba(255,255,255,.15)}
.cpcsm-alert{
    margin:0 0 16px;
    padding:13px 15px;
    border:1px solid;
    border-radius:9px;
    color:#eee;
    line-height:1.5;
}
.cpcsm-alert--success{background:var(--cpcsm-success-bg);border-color:var(--cpcsm-success-border)}
.cpcsm-alert--error{background:var(--cpcsm-error-bg);border-color:var(--cpcsm-error-border)}
.cpcsm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cpcsm-hp input{position:absolute}
.is-loading{opacity:.55;pointer-events:none;transition:opacity .15s ease}

@media (max-width:760px){
    .cpcsm-form-wrap{width:100%;margin:14px auto}
    .cpcsm-form{padding:14px;border-radius:10px}
    .cpcsm-section{padding:14px;margin-bottom:16px;border-radius:9px}
    .cpcsm-sections{grid-template-columns:1fr;gap:14px;margin-bottom:16px}
    .cpcsm-field--full{grid-column:auto}
    .cpcsm-field input[type=text],.cpcsm-field input[type=url],.cpcsm-field input[type=email],.cpcsm-field input[type=tel],.cpcsm-field input[type=date],.cpcsm-field input[type=time],.cpcsm-field input[type=number],.cpcsm-field select,.cpcsm-field textarea,.cpcsm-section select{min-height:48px}
    .cpcsm-field textarea{min-height:125px}
    .cpcsm-inline-check{margin-right:12px}
}
@media (max-width:420px){
    .cpcsm-form{padding:10px}
    .cpcsm-section{padding:12px}
    .cpcsm-field fieldset{padding:10px}
    .cpcsm-submit{min-height:50px}
}


/* General contact form */
.cpcsm-contact-form-wrap .cpcsm-section{margin-bottom:18px}
.cpcsm-contact-intro{margin-top:-4px;margin-bottom:18px}
.cpcsm-contact-form-wrap .cpcsm-sections{margin-bottom:0}
.cpcsm-contact-form-wrap .cpcsm-field:last-child{grid-column:1/-1}
@media (max-width:760px){
    .cpcsm-contact-form-wrap .cpcsm-section{padding:15px}
    .cpcsm-contact-form-wrap .cpcsm-field:last-child{grid-column:auto}
}

.cpcsm-photo-section[hidden]{display:none!important}
