:root {
    --po-navy: #071a2b;
    --po-ink: #10263a;
    --po-blue: #0284c7;
    --po-cyan: #38bdf8;
    --po-soft: #f5f8fb;
    --po-border: #dbe5ed;
    --po-muted: #64748b;
}

.po-page { overflow: hidden; color: var(--po-ink); background: #fff; }

/* Public Opinion Observatory meets the shared newsletter/footer directly. */
.po-page + .site-footer {
    margin-top: 0;
}
.po-page, .po-page button, .po-page input, .po-page select, .po-page textarea { font-family: inherit; }
.po-page img, .po-page svg { max-width:100%; height:auto; }
.po-page *, .po-page *::before, .po-page *::after { box-sizing: border-box; }

.po-hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 82% 30%, rgba(56,189,248,.18), transparent 28%),
        linear-gradient(135deg, #06131f 0%, #0a2236 58%, #0b3149 100%);
}

.po-hero-grid {
    position: absolute;
    inset: 0;
    opacity: .18;
    background-image:
        linear-gradient(rgba(148,163,184,.13) 1px, transparent 1px),
        linear-gradient(90deg, rgba(148,163,184,.13) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(to right, transparent 5%, #000 45%, #000 100%);
}

.po-hero-inner {
    position: relative;
    z-index: 2;
    min-height: 590px;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    align-items: center;
    gap: 68px;
    padding-top: 76px;
    padding-bottom: 76px;
}

.po-hero-copy { min-width: 0; max-width: 790px; }
.po-status-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:18px; }
.po-eyebrow { display:inline-block; color:#8bdcff; font-size:.72rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.po-eyebrow.dark { color:#0369a1; }
.po-status { display:inline-flex; max-width:100%; padding:7px 10px; border:1px solid rgba(125,211,252,.27); color:#d9f3ff; background:rgba(14,165,233,.08); font-size:.68rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.po-hero h1 { max-width:900px; margin:0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(3.5rem,7.4vw,7rem); line-height:.94; letter-spacing:-.045em; }
.po-hero-copy > p { max-width:760px; margin:26px 0 0; color:#c6d6e3; font-size:1.08rem; line-height:1.8; }
.po-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.po-btn { display:inline-flex; min-height:46px; align-items:center; justify-content:center; padding:12px 18px; border:1px solid transparent; border-radius:10px; text-decoration:none; font-size:.84rem; font-weight:900; letter-spacing:.02em; transition:.2s ease; }
.po-btn:hover { transform:translateY(-1px); }
.po-btn-primary { color:#fff; background:#0284c7; }
.po-btn-primary:hover { background:#0369a1; }
.po-btn-ghost { color:#fff; border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.04); }
.po-btn-ghost:hover { background:rgba(255,255,255,.09); }

.po-signal { position:relative; width:min(430px,100%); aspect-ratio:1.15; justify-self:end; border:1px solid rgba(125,211,252,.15); background:rgba(4,28,44,.34); overflow:hidden; }
.po-signal::before { content:""; position:absolute; inset:0; background:linear-gradient(rgba(125,211,252,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(125,211,252,.07) 1px,transparent 1px); background-size:34px 34px; }
.po-signal-axis { position:absolute; background:rgba(125,211,252,.2); }
.po-signal-axis.axis-y { width:1px; top:8%; bottom:10%; left:10%; }
.po-signal-axis.axis-x { height:1px; left:8%; right:7%; bottom:14%; }
.po-signal-line { position:absolute; left:10%; right:7%; height:2px; transform-origin:left center; opacity:.9; }
.po-signal-line::before { content:""; position:absolute; inset:-10px 0; background:linear-gradient(90deg,transparent,rgba(56,189,248,.08),transparent); }
.po-signal-line.line-one { top:48%; background:linear-gradient(90deg,#38bdf8 0 14%,transparent 14% 18%,#7dd3fc 18% 36%,transparent 36% 41%,#38bdf8 41% 57%,transparent 57% 62%,#bae6fd 62% 81%,transparent 81% 85%,#38bdf8 85%); transform:skewY(-8deg); }
.po-signal-line.line-two { top:62%; opacity:.42; background:linear-gradient(90deg,#38bdf8 0 24%,transparent 24% 30%,#7dd3fc 30% 53%,transparent 53% 59%,#38bdf8 59% 78%,transparent 78% 83%,#7dd3fc 83%); transform:skewY(5deg); }
.po-signal-node { position:absolute; z-index:2; display:grid; place-items:center; width:70px; height:70px; border-radius:50%; border:1px solid rgba(125,211,252,.32); background:rgba(2,132,199,.13); box-shadow:0 0 24px rgba(14,165,233,.1); }
.po-signal-node span { color:#d8f3ff; font-size:.55rem; font-weight:900; letter-spacing:.12em; }
.node-one { left:16%; top:19%; }
.node-two { right:14%; top:16%; }
.node-three { left:29%; bottom:14%; }
.node-four { right:10%; bottom:24%; width:88px; height:88px; }
.po-signal-pulse { position:absolute; width:10px; height:10px; border-radius:50%; left:56%; top:45%; background:#7dd3fc; box-shadow:0 0 0 0 rgba(125,211,252,.55); animation:poPulse 2.8s ease-out infinite; }
@keyframes poPulse { 0%{box-shadow:0 0 0 0 rgba(125,211,252,.5);opacity:.9} 100%{box-shadow:0 0 0 24px rgba(125,211,252,0);opacity:.2} }

.po-state-strip { border-bottom:1px solid var(--po-border); background:#fff; }
.po-state-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.po-state-grid > div { min-width:0; padding:24px 22px; border-right:1px solid #e5edf3; }
.po-state-grid > div:first-child { border-left:1px solid #e5edf3; }
.po-state-grid strong { display:block; color:var(--po-navy); font-size:1.05rem; }
.po-state-grid span { display:block; margin-top:6px; color:var(--po-muted); font-size:.78rem; font-weight:800; }

.po-section { padding-top:78px; padding-bottom:78px; }
.po-section-heading { max-width:880px; margin-bottom:34px; }
.po-section-heading.compact { margin-bottom:30px; }
.po-section-heading h2 { margin:8px 0 0; color:var(--po-navy); font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,4vw,3.5rem); line-height:1.04; letter-spacing:-.03em; }
.po-section-heading p { margin:18px 0 0; color:#526477; font-size:1rem; line-height:1.8; }

.po-area-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.po-area-card { min-width:0; padding:30px; border:1px solid var(--po-border); background:#fff; }
.po-area-card > span { display:inline-block; margin-bottom:20px; color:#0284c7; font-size:.76rem; font-weight:900; letter-spacing:.12em; }
.po-area-card h3 { margin:0; color:var(--po-navy); font-size:1.3rem; }
.po-area-card p { margin:12px 0 0; color:#5e6f80; line-height:1.72; }

.po-products-band { background:var(--po-soft); border-top:1px solid var(--po-border); border-bottom:1px solid var(--po-border); }
.po-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.po-product-card { min-width:0; padding:26px; border:1px solid var(--po-border); background:#fff; }
.po-product-state { display:inline-flex; padding:6px 8px; margin-bottom:18px; color:#854d0e; background:#fffbeb; border:1px solid #fde68a; font-size:.65rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.po-product-card h3 { margin:0; color:var(--po-navy); font-size:1.15rem; }
.po-product-card p { margin:11px 0 0; color:#607285; font-size:.92rem; line-height:1.68; }

.po-method-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.po-method-card { min-width:0; padding:22px 24px; border-left:3px solid #38bdf8; background:#f8fafc; }
.po-method-card strong { display:block; color:var(--po-navy); font-size:.95rem; }
.po-method-card span { display:block; margin-top:6px; color:#64748b; font-size:.86rem; line-height:1.55; }
.po-pipeline { display:grid; grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr; align-items:center; gap:12px; margin-top:34px; padding:25px; border:1px solid var(--po-border); background:#fff; }
.po-pipeline div { min-width:0; }
.po-pipeline div span { display:block; color:#0284c7; font-size:.65rem; font-weight:900; letter-spacing:.1em; }
.po-pipeline strong { display:block; margin-top:3px; color:var(--po-navy); font-size:.94rem; }
.po-pipeline small { display:block; margin-top:4px; color:#728195; line-height:1.35; }
.po-pipeline i { color:#9aabba; font-style:normal; }

@media (max-width: 900px) {
    .po-hero { min-height:auto; }
    .po-hero-inner { min-height:auto; grid-template-columns:1fr; gap:42px; padding-top:58px; padding-bottom:58px; }
    .po-signal { width:min(420px,82vw); justify-self:start; }
    .po-state-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .po-state-grid > div { border-bottom:1px solid #e5edf3; }
    .po-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .po-method-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .po-pipeline { grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
    .po-pipeline i { display:none; }
}

@media (max-width: 680px) {
    .po-hero-inner { padding-top:46px; padding-bottom:46px; padding-left:26px !important; padding-right:26px !important; }
    .po-hero-copy { width:100%; max-width:100%; }
    .po-hero h1 { max-width:100%; font-size:clamp(3rem,17vw,4.8rem); overflow-wrap:anywhere; }
    .po-hero-copy > p { max-width:100%; font-size:1rem; }
    .po-hero-actions { display:grid; grid-template-columns:1fr; width:100%; }
    .po-btn { width:100%; }
    .po-signal { width:min(300px,86vw); max-width:100%; justify-self:center; }
    .po-area-grid, .po-product-grid, .po-method-grid { grid-template-columns:1fr; }
    .po-section { padding-top:52px; padding-bottom:52px; }
    .po-pipeline { grid-template-columns:1fr; }
    .po-pipeline div { min-width:0; padding:12px 0; border-bottom:1px solid #e5edf3; }
    .po-pipeline div:last-child { border-bottom:0; }
}

@media (max-width: 420px) {
    .po-hero-inner { padding-left:22px !important; padding-right:22px !important; }
    .po-status-row { align-items:flex-start; flex-direction:column; }
    .po-status { white-space:normal; }
    .po-state-grid { grid-template-columns:1fr; }
    .po-state-grid > div { border-left:1px solid #e5edf3; }
    .po-area-card, .po-product-card { padding:24px 22px; }
    .po-signal { width:min(280px,100%); }
    .po-signal-node { transform:scale(.84); transform-origin:center; }
}

@media (prefers-reduced-motion: reduce) {
    .po-signal-pulse { animation:none; }
}

/* Published studies */
.po-published-section { border-bottom: 1px solid var(--po-border); }
.po-study-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.po-study-card { min-width:0; padding:28px; border:1px solid var(--po-border); background:#fff; }
.po-study-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#0369a1; font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.po-study-card-top small { color:#64748b; font-size:.72rem; letter-spacing:.02em; }
.po-study-card h3 { margin:16px 0 0; color:var(--po-navy); font-family:Georgia,"Times New Roman",serif; font-size:1.55rem; line-height:1.08; overflow-wrap:anywhere; }
.po-study-meta { margin-top:9px; color:#64748b; font-size:.82rem; font-weight:800; }
.po-study-card > p { margin:15px 0 0; color:#53677b; line-height:1.7; }
.po-study-foot { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:22px; padding-top:16px; border-top:1px solid #e5edf3; }
.po-study-foot span { color:#64748b; font-size:.78rem; font-weight:800; }
.po-study-foot a { color:#0369a1; font-size:.82rem; font-weight:900; text-decoration:none; white-space:nowrap; }

/* Individual study */
.po-study-page { color:var(--po-ink); background:#fff; overflow:hidden; }
.po-study-hero { padding:66px 0 58px; color:#fff; background:linear-gradient(135deg,#06131f 0%,#0a2236 62%,#0b3149 100%); }
.po-study-hero-inner { padding-left:0; padding-right:0; }
.po-study-kicker { color:#8bdcff; font-size:.72rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.po-study-hero h1 { max-width:1000px; margin:12px 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.7rem,6vw,5.5rem); line-height:.98; letter-spacing:-.04em; overflow-wrap:anywhere; }
.po-study-hero p { max-width:850px; margin:22px 0 0; color:#c6d6e3; font-size:1.05rem; line-height:1.75; }
.po-study-authors { display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:24px; }
.po-study-authors > span { color:#8bdcff; font-size:.66rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.po-study-authors > div { display:flex; flex-wrap:wrap; gap:8px; }
.po-study-authors a { display:inline-flex; align-items:center; gap:8px; padding:5px 10px 5px 6px; border:1px solid rgba(255,255,255,.18); border-radius:999px; color:#fff; text-decoration:none; background:rgba(255,255,255,.06); }
.po-study-authors a:hover { background:rgba(255,255,255,.12); }
.po-study-authors img { width:28px; height:28px; border-radius:50%; object-fit:cover; }
.po-study-authors strong { font-size:.78rem; }
.po-study-meta-strip { border-bottom:1px solid var(--po-border); background:#fff; }
.po-study-meta-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); }
.po-study-meta-grid > div { min-width:0; padding:22px 18px; border-right:1px solid #e5edf3; }
.po-study-meta-grid > div:first-child { border-left:1px solid #e5edf3; }
.po-study-meta-grid strong { display:block; color:var(--po-navy); font-size:.95rem; overflow-wrap:anywhere; }
.po-study-meta-grid span { display:block; margin-top:5px; color:#64748b; font-size:.76rem; font-weight:800; }
.po-study-content { padding-top:68px; padding-bottom:72px; }
.po-study-content-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:48px; align-items:start; }
.po-study-main section + section { margin-top:48px; }
.po-study-main h2 { margin:0 0 16px; color:var(--po-navy); font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.8rem,3vw,2.6rem); }
.po-study-main p { color:#526477; line-height:1.8; white-space:pre-wrap; }
.po-question-block { padding:22px 0; border-top:1px solid var(--po-border); }
.po-question-block:last-child { border-bottom:1px solid var(--po-border); }
.po-question-block h3 { margin:0; color:var(--po-navy); font-size:1.08rem; line-height:1.45; }
.po-question-block small { display:block; margin-top:7px; color:#64748b; }
.po-public-results { display:grid; gap:10px; margin-top:18px; }
.po-public-result { display:grid; grid-template-columns:minmax(0,1fr) minmax(120px,44%) auto; gap:12px; align-items:center; }
.po-public-result-label strong { display:block; color:#26384a; }
.po-public-result-label small { display:block; margin-top:3px; color:#7a8997; }
.po-result-bar { height:10px; background:#e7eef4; overflow:hidden; }
.po-result-bar span { display:block; height:100%; background:#0ea5e9; }
.po-public-result > strong { min-width:58px; text-align:right; color:var(--po-navy); }
.po-study-side { position:sticky; top:105px; display:grid; gap:18px; }
.po-side-card { padding:20px; border:1px solid var(--po-border); background:#f8fafc; }
.po-side-card h3 { margin:0 0 12px; color:var(--po-navy); font-size:1rem; }
.po-side-card a { display:block; padding:9px 0; color:#0369a1; font-size:.85rem; font-weight:800; text-decoration:none; border-top:1px solid #e5edf3; overflow-wrap:anywhere; }
.po-side-card a:first-of-type { border-top:0; }
.po-source-list { display:grid; gap:12px; }
.po-source-list article { padding:16px; border:1px solid var(--po-border); background:#fff; }
.po-source-list strong { color:var(--po-navy); }
.po-source-list span { display:block; margin-top:5px; color:#64748b; font-size:.82rem; }
.po-source-list a { display:inline-block; margin-top:8px; color:#0369a1; font-size:.82rem; font-weight:900; text-decoration:none; }

@media (max-width: 900px) {
    .po-study-grid { grid-template-columns:1fr; }
    .po-study-content-grid { grid-template-columns:1fr; gap:34px; }
    .po-study-side { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .po-study-meta-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 680px) {
    .po-study-foot { align-items:flex-start; flex-direction:column; }
    .po-study-hero-inner { padding-left:26px !important; padding-right:26px !important; }
    .po-study-content { padding-top:48px; padding-bottom:52px; }
    .po-study-side { grid-template-columns:1fr; }
    .po-public-result { grid-template-columns:1fr auto; }
    .po-result-bar { grid-column:1 / -1; grid-row:2; }
}
@media (max-width: 420px) {
    .po-study-hero-inner { padding-left:22px !important; padding-right:22px !important; }
    .po-study-meta-grid { grid-template-columns:1fr; }
    .po-study-meta-grid > div { border-left:1px solid #e5edf3; border-bottom:1px solid #e5edf3; }
}
