/* ==========================================================================
   Community Survey  (matches approved mock; desktop + mobile)
   ========================================================================== */
.survey-intro, .survey-privacy { max-width: var(--measure); margin-bottom: 1.4rem; }
.survey-privacy { background:#eef3fa; border-left:4px solid var(--accent); padding:1rem 1.2rem; border-radius:0 var(--radius) var(--radius) 0; font-size:.95rem; }
.survey-privacy p { max-width:none; margin:0; }
h2.sec { color:var(--navy); border-bottom:2px solid var(--line); padding-bottom:.4rem; margin-top:2.4rem; margin-bottom:1rem; }
.q { margin:1.6rem 0; }
.q-label { font-weight:600; color:var(--charcoal); margin:0 0 .7rem; max-width:var(--measure); font-size:1.02rem; }

/* Point 1 — every option on its own line */
.opt-list { display:flex; flex-direction:column; gap:.1rem; }
.q .opt { display:flex !important; width:100%; }
.opt {
  display:flex; align-items:flex-start; gap:.7rem;
  padding:.6rem .7rem; cursor:pointer; line-height:1.45;
  border:1px solid transparent; border-radius:var(--radius); max-width:760px;
}
.opt:hover { background:#fff; border-color:var(--line); }
.opt input { margin:.2rem 0 0 0; flex:0 0 auto; width:18px; height:18px; }
.opt-text { display:flex; flex-direction:column; }
.opt-main { color:var(--charcoal); }
.opt-desc { color:var(--grey); font-size:.85rem; margin-top:.15rem; line-height:1.4; }
.other-text { margin:.4rem 0 .3rem 2.4rem; width:calc(100% - 2.4rem); max-width:420px; padding:.55rem .7rem; border:1.5px solid #cfd6e0; border-radius:var(--radius); font:inherit; }
.other-text:disabled { background:#f3f3f0; color:#999; }

/* Point 2 — matrix: left-aligned first column, centered radios under headers */
.matrix { overflow-x:auto; margin-top:.5rem; }
.matrix-table { width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.matrix-table th, .matrix-table td { padding:.7rem .5rem; border-bottom:1px solid var(--line); vertical-align:middle; }
.matrix-table thead th { background:var(--navy); color:#fff; font-weight:600; font-size:.86rem; line-height:1.2; text-align:center; }
.matrix-table th.row-head { width:40%; text-align:left; }
.matrix-table tbody th.row-head { font-weight:500; background:#f7f9fc; color:var(--charcoal); font-size:.92rem; line-height:1.35; border-right:1px solid var(--line); text-align:left !important; }
.matrix-table td { width:calc(60% / 4); text-align:center !important; }
.matrix-table tbody tr:nth-child(even) td { background:#fbfcfe; }
.matrix-table td input[type=radio] { width:20px; height:20px; margin:0; cursor:pointer; }

/* Matrix — stacked cards on mobile */
@media (max-width:720px){
  .matrix-table, .matrix-table thead, .matrix-table tbody, .matrix-table tr, .matrix-table th, .matrix-table td { display:block; width:auto; }
  .matrix-table thead { display:none; }
  .matrix-table tr { margin-bottom:1rem; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
  .matrix-table tbody th.row-head { width:auto; background:var(--navy); color:#fff; border:0; border-radius:0; font-weight:600; text-align:left; }
  .matrix-table td { display:flex; justify-content:space-between; align-items:center; text-align:left; padding:.7rem 1rem; }
  .matrix-table td::before { content:attr(data-label); color:var(--charcoal); font-size:.95rem; }
  .matrix-table td input[type=radio] { margin-left:1rem; }
}

.contact-grid { display:grid; grid-template-columns:1fr; gap:1rem; margin:1rem 0; max-width:520px; }
.consents { margin:1.2rem 0; }
.consents .consent { display:flex; gap:.6rem; align-items:flex-start; margin:.7rem 0; font-size:.95rem; }
.consents .consent input { margin-top:.25rem; }
.survey-thanks { text-align:left; }
.survey-thanks p { max-width:none; }
