.voice-section{background:linear-gradient(180deg,#f7f9fa 0%,#eef2f4 100%)}
.voice-heading{text-align:center;max-width:720px;margin:0 auto 42px}
.voice-heading .eyebrow{justify-content:center}.voice-heading h2{font:500 clamp(36px,4vw,54px)/1.2 var(--serif);margin:0}.voice-heading>p{color:var(--muted);margin:14px 0 0}
.voice-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:32px}
.voice-card{background:#fff;border:1px solid var(--line);padding:26px;min-height:210px;box-shadow:0 12px 35px rgba(20,35,52,.06);display:flex;flex-direction:column}
.voice-card.pinned{border-top:3px solid var(--gold)}.voice-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.voice-person{display:flex;align-items:center;gap:11px}.voice-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold-light);font-weight:800}.voice-person b{display:block}.voice-person small{display:block;color:#83909a;font-size:11px}.voice-stars{color:#e7792d;letter-spacing:2px;white-space:nowrap}
.voice-content{margin:20px 0;color:#394d5b;white-space:pre-wrap}.voice-reply{margin-top:auto;padding:13px 15px;background:#f5f8f9;border-left:3px solid var(--blue);font-size:13px;color:#526675}.voice-reply b{color:var(--blue)}
.voice-media{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 15px}.voice-media img,.voice-media video{width:92px;height:72px;object-fit:cover;border-radius:6px;background:#edf1f3}.voice-media audio{width:100%;height:38px}
.voice-empty,.voice-loading,.voice-error{grid-column:1/-1;background:#fff;border:1px dashed #cbd5da;padding:42px;text-align:center;color:#71818b}.voice-error{color:#a13c32}
.voice-form-card{background:#fff;border:1px solid var(--line);padding:clamp(24px,4vw,44px);box-shadow:var(--shadow)}.voice-form-card h3{font:500 28px var(--serif);margin:0}.voice-form-card>.voice-form-intro{color:var(--muted);margin:5px 0 24px}
.voice-type-tabs{display:flex;gap:10px;margin-bottom:20px}.voice-type-tabs label{position:relative;cursor:pointer}.voice-type-tabs input{position:absolute;opacity:0}.voice-type-tabs span{display:block;padding:10px 18px;border:1px solid #cdd7dc;background:#f8fafb;font-weight:700;font-size:13px}.voice-type-tabs input:checked+span{border-color:var(--orange);color:var(--orange);background:#fff8f2}
.voice-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.voice-form-grid label{display:grid;gap:7px;font-size:13px;font-weight:700}.voice-form-grid .wide{grid-column:1/-1}.voice-form-grid input,.voice-form-grid select,.voice-form-grid textarea{width:100%;border:1px solid #cdd7dc;background:#fff;padding:13px 14px;color:var(--ink);font:inherit;outline:none}.voice-form-grid input:focus,.voice-form-grid select:focus,.voice-form-grid textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,111,142,.12)}.voice-form-grid textarea{resize:vertical;min-height:125px}
.voice-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.voice-consent{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:9px!important;font-weight:400!important;color:#607181}.voice-consent input{width:auto;margin-top:6px}
.voice-upload-zone{grid-column:1/-1;border:1px dashed #c8d2d8;padding:18px}.voice-upload-title{font-size:13px;font-weight:800;margin-bottom:12px}.voice-upload-row{display:flex;flex-wrap:wrap;gap:10px}.voice-upload-button{position:relative;overflow:hidden;border:1px solid #cdd7dc;background:#f8fafb;padding:10px 15px;cursor:pointer;font-size:13px;font-weight:700}.voice-upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.voice-recording{border-color:#d9544d;color:#b33932;background:#fff2f1;box-shadow:0 0 0 3px rgba(217,84,77,.12)}.voice-record-pending{border-color:var(--orange);color:#a8581f;background:#fff8f2}.voice-record-status{margin:10px 0 0;color:#607181;font-size:12px;line-height:1.65}.voice-record-status.error{color:#b33932}.voice-record-status.success{color:#2f7a58}.voice-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.voice-preview span{background:#edf2f4;padding:7px 10px;font-size:12px;color:#516573}.voice-submit-row{grid-column:1/-1;display:flex;align-items:center;gap:18px}.voice-submit-row .button{min-width:190px}.voice-message{margin:0;color:#526675}.voice-message.success{color:#2f7a58}.voice-message.error{color:#b33932}
@media(max-width:980px){.voice-wall{grid-template-columns:1fr 1fr}}@media(max-width:700px){.voice-wall,.voice-form-grid{grid-template-columns:1fr}.voice-form-grid .wide,.voice-upload-zone,.voice-submit-row{grid-column:1}.voice-type-tabs{flex-direction:column}.voice-submit-row{align-items:stretch;flex-direction:column}.voice-submit-row .button{width:100%}}

/* Speech-to-text, AI polish and explicit message confirmation. */
.voice-compose-field{grid-column:1/-1;display:grid;gap:9px}
.voice-compose-label{display:flex;align-items:center;justify-content:space-between;gap:14px}
.voice-compose-label>label{font-size:13px;font-weight:800}
.voice-speech-button{border:1px solid var(--orange);background:#fff8f2;color:var(--orange);padding:9px 14px;font-size:13px;font-weight:800;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}
.voice-speech-button:hover:not(:disabled){background:var(--orange);color:#fff;transform:translateY(-1px)}
.voice-speech-button.listening{border-color:#d9544d;background:#fff0ef;color:#b33932;animation:voice-listening-pulse 1.2s ease-in-out infinite}
.voice-speech-button.processing{border-color:var(--blue);background:#edf5f8;color:var(--blue)}
.voice-speech-button:disabled{cursor:not-allowed;opacity:.62}
.voice-compose-row{display:block;position:relative}
.voice-compose-row textarea{min-height:150px;padding-bottom:76px;padding-right:170px;resize:vertical}
.voice-compose-row textarea.content-confirmed{border-color:#3b8a67;box-shadow:0 0 0 3px rgba(59,138,103,.13)}
.voice-confirm-button{align-items:center;bottom:14px;border:0;display:flex;justify-content:center;min-height:48px;padding:12px 22px;position:absolute;right:14px;font-size:16px;font-weight:800;cursor:pointer}
.voice-confirm-button:disabled{cursor:not-allowed;filter:grayscale(.25);opacity:.5}
.voice-compose-status{display:flex;align-items:center;justify-content:space-between;gap:18px;color:#667984;font-size:12px;line-height:1.6}
.voice-compose-status strong{color:#9a5b26;white-space:nowrap}
.voice-compose-status strong.confirmed{color:#2f7a58}
@keyframes voice-listening-pulse{0%,100%{box-shadow:0 0 0 0 rgba(213,84,77,.15)}50%{box-shadow:0 0 0 7px rgba(213,84,77,.08)}}
@media(max-width:700px){
 .voice-compose-label,.voice-compose-status{align-items:stretch;flex-direction:column}
 .voice-speech-button{width:100%}
 .voice-compose-row textarea{padding-bottom:76px;padding-right:14px}
 .voice-confirm-button{bottom:12px;min-height:48px;right:12px;width:auto}
 .voice-compose-status strong{white-space:normal}
}

/* Customer voice pagination and image preview. */
.voice-image-button{appearance:none;border:0;background:transparent;padding:0;cursor:zoom-in;border-radius:6px;overflow:hidden}
.voice-image-button:focus-visible{outline:3px solid rgba(47,111,142,.35);outline-offset:2px}
.voice-pagination{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.voice-pagination button{border:1px solid #cbd5da;background:#fff;color:#344b59;min-width:42px;padding:9px 12px;cursor:pointer;font:700 13px/1 var(--sans)}
.voice-pagination button.current{background:var(--navy);border-color:var(--navy);color:#fff}
.voice-pagination button:disabled{cursor:not-allowed;opacity:.42}
.voice-lightbox{border:0;padding:0;background:transparent;max-width:min(92vw,1200px);max-height:92vh}
.voice-lightbox::backdrop{background:rgba(9,24,37,.78);backdrop-filter:blur(3px)}
.voice-lightbox img{display:block;max-width:92vw;max-height:88vh;object-fit:contain;background:#fff}
.voice-lightbox-close{position:absolute;right:10px;top:10px;z-index:2;width:44px;height:44px;border:0;border-radius:50%;background:rgba(9,24,37,.82);color:#fff;font-size:30px;cursor:pointer}
