/* AFDES Civic Academy — Public Opinion Polling */
.aca-opinion-module {
    --opinion-blue: #087aa5;
    --opinion-green: #2f8b63;
    --opinion-slate: #667b8d;
}

.aca-opinion-module .aca-opinion-sample-svg,
.aca-opinion-module .aca-poll-insight-svg,
.aca-opinion-module .aca-opinion-note-svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: currentColor;
    stroke: currentColor;
}

.aca-opinion-hero {
    position: relative;
    overflow: hidden;
    padding: 54px 0 72px;
    background:
        linear-gradient(rgba(8,122,165,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(8,122,165,.035) 1px, transparent 1px),
        linear-gradient(180deg,#fff,#fbfdfe);
    background-size: 28px 28px,28px 28px,auto;
}
.aca-opinion-hero-grid { display: grid; grid-template-columns: minmax(0,1.02fr) minmax(420px,.98fr); gap: clamp(42px,7vw,92px); align-items: center; }
.aca-opinion-hero h1 { margin: 12px 0 18px; color: var(--academy-navy); font-family: Georgia,"Times New Roman",serif; font-size: clamp(2.7rem,6vw,5.1rem); letter-spacing: -.05em; line-height: .98; }
.aca-opinion-hero p { max-width: 780px; margin: 0; color: #536879; font-size: 1.1rem; line-height: 1.72; }
.aca-opinion-hero .academy-btn { margin-top: 28px; }

.aca-opinion-hero-visual { display: grid; grid-template-columns: minmax(170px,1fr) 32px 120px 32px 145px; gap: 12px; align-items: center; min-height: 300px; }
.aca-opinion-population-cloud { display: grid; grid-template-columns: repeat(8,1fr); gap: 7px; padding: 20px; }
.aca-opinion-population-cloud i { width: 15px; height: 15px; border-radius: 50%; background: #d7e3ea; }
.aca-opinion-population-cloud i:nth-child(-n+25) { background: rgba(8,122,165,.68); }
.aca-opinion-arrow { color: #a6b5c1; font-size: 1.8rem; text-align: center; }
.aca-opinion-sample-card { display: grid; gap: 8px; justify-items: center; padding: 18px 12px; border: 1px solid #d5e0e7; background: #fff; text-align: center; }
.aca-opinion-sample-card span { width: 54px; height: 54px; color: var(--opinion-blue); }
.aca-opinion-sample-card b { color: var(--academy-navy); font-family: Georgia,"Times New Roman",serif; }
.aca-opinion-estimate { display: grid; justify-items: center; padding: 20px 14px; border-left: 3px solid var(--opinion-blue); background: rgba(8,122,165,.05); text-align: center; }
.aca-opinion-estimate strong { color: var(--academy-navy); font-family: Georgia,"Times New Roman",serif; font-size: 2.7rem; }
.aca-opinion-estimate small { margin-top: 4px; color: #718494; font-size: .66rem; font-weight: 800; }

.aca-poll-lab { padding-top: 44px; padding-bottom: 70px; }
.aca-poll-lab-heading { display: grid; grid-template-columns: minmax(0,1fr) 290px; gap: 46px; align-items: end; }
.aca-poll-lab-heading h2 { margin: 7px 0 10px; color: var(--academy-navy); font-family: Georgia,"Times New Roman",serif; font-size: clamp(2rem,3.6vw,3rem); letter-spacing: -.04em; }
.aca-poll-lab-heading p { max-width: 830px; margin: 0; color: #607283; line-height: 1.7; }
.aca-poll-readout { display: grid; justify-items: end; text-align: right; }
.aca-poll-readout small { color: #7c8d9c; font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.aca-poll-readout strong { color: var(--academy-navy); font-family: Georgia,"Times New Roman",serif; font-size: 3.1rem; line-height: 1; }
.aca-poll-readout > span { margin-top: 6px; color: #6f8292; font-size: .75rem; }

.aca-poll-workspace { display: grid; grid-template-columns: minmax(320px,.82fr) minmax(0,1.18fr); gap: clamp(34px,6vw,72px); margin-top: 32px; padding-top: 34px; border-top: 1px solid var(--academy-border); }
.aca-poll-controls { display: grid; gap: 26px; align-content: start; }
.aca-poll-controls label { display: grid; gap: 10px; }
.aca-poll-controls label > span { display: flex; justify-content: space-between; gap: 14px; color: var(--academy-navy); }
.aca-poll-controls label b { font-size: .88rem; }
.aca-poll-controls label em { color: var(--opinion-blue); font-size: .78rem; font-style: normal; font-weight: 900; }
.aca-poll-controls small { color: #718294; line-height: 1.55; }
.aca-poll-controls input[type="range"] { width: 100%; accent-color: var(--opinion-blue); }
.aca-poll-controls .academy-btn { justify-self: start; }

.aca-poll-display { display: grid; gap: 38px; min-width: 0; }
.aca-poll-population { border-top: 1px solid var(--academy-border); border-bottom: 1px solid var(--academy-border); padding: 24px 0; }
.aca-poll-dots { display: grid; grid-template-columns: repeat(20,1fr); gap: 6px; }
.aca-poll-dots i { aspect-ratio: 1; border-radius: 50%; background: #dce5eb; transition: background .2s ease, transform .2s ease; }
.aca-poll-dots i.is-support { background: rgba(8,122,165,.78); }
.aca-poll-population-label { display: flex; justify-content: space-between; gap: 18px; margin-top: 14px; color: #718294; font-size: .75rem; }
.aca-poll-population-label strong { color: var(--academy-navy); }

.aca-poll-estimate-band { padding-top: 4px; }
.aca-poll-scale { display: flex; justify-content: space-between; color: #8797a4; font-size: .64rem; font-weight: 800; }
.aca-poll-track { position: relative; height: 54px; margin-top: 5px; border-top: 1px solid #ced9e1; border-bottom: 1px solid #ced9e1; background: repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), rgba(112,132,148,.1) 25%, transparent calc(25% + 1px)); }
.aca-poll-interval { position: absolute; top: 20px; height: 14px; border-radius: 999px; background: rgba(8,122,165,.17); border: 1px solid rgba(8,122,165,.28); transition: left .2s ease,width .2s ease; }
.aca-poll-point, .aca-poll-truth { position: absolute; top: 11px; width: 2px; height: 32px; transition: left .2s ease; }
.aca-poll-point { background: var(--opinion-blue); box-shadow: 0 0 0 4px rgba(8,122,165,.12); }
.aca-poll-truth { background: var(--opinion-green); }
.aca-poll-key { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 10px; color: #718294; font-size: .72rem; font-weight: 800; }
.aca-poll-key span { display: flex; gap: 7px; align-items: center; }
.aca-poll-key i { width: 10px; height: 10px; border-radius: 50%; }
.aca-poll-key .is-estimate { background: var(--opinion-blue); }
.aca-poll-key .is-truth { background: var(--opinion-green); }

.aca-poll-insights { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; margin-top: 52px; padding-top: 34px; border-top: 1px solid var(--academy-border); }
.aca-poll-insights article { display: grid; grid-template-columns: 48px 1fr; gap: 17px; align-items: start; }
.aca-poll-insights article > span { width: 42px; height: 42px; color: var(--opinion-blue); }
.aca-poll-insights strong { color: var(--academy-navy); font-family: Georgia,"Times New Roman",serif; }
.aca-poll-insights p { margin: 6px 0 0; color: #607283; font-size: .84rem; line-height: 1.62; }

.aca-opinion-note { display: grid; grid-template-columns: 58px 1fr; gap: 22px; border-top: 1px solid var(--academy-border); padding-top: 60px; padding-bottom: 64px; }
.aca-opinion-note-icon { width: 50px; height: 50px; color: var(--opinion-blue); }
.aca-opinion-note h2 { margin: 7px 0 12px; color: var(--academy-navy); font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.9rem,3.3vw,2.8rem); }
.aca-opinion-note p { max-width: 910px; margin: 0; color: #607283; line-height: 1.72; }

@media (max-width: 1050px) {
    .aca-opinion-hero-grid, .aca-poll-workspace { grid-template-columns: 1fr; }
    .aca-opinion-hero-visual { max-width: 760px; }
}
@media (max-width: 760px) {
    .aca-opinion-hero { padding: 42px 0 54px; }
    .aca-opinion-hero-visual { grid-template-columns: 1fr; gap: 12px; }
    .aca-opinion-population-cloud { grid-template-columns: repeat(12,1fr); }
    .aca-opinion-arrow { transform: rotate(90deg); }
    .aca-opinion-sample-card, .aca-opinion-estimate { max-width: 260px; width: 100%; justify-self: center; }
    .aca-poll-lab-heading { grid-template-columns: 1fr; gap: 20px; }
    .aca-poll-readout { justify-items: start; text-align: left; }
    .aca-poll-dots { grid-template-columns: repeat(10,1fr); }
    .aca-poll-insights { grid-template-columns: 1fr; }
    .aca-opinion-note { grid-template-columns: 44px 1fr; }
}
