/* One policy header structure; colour stays independent of geometry. */
#main .policy-header { --policy-ground:var(--burgundy-700); --policy-ink:var(--paper-2); background:var(--policy-ground); color:var(--policy-ink); padding:calc(var(--header-height,72px) + var(--space-10)) 0 var(--space-12); }
#main:is(.policy-release--health,.policy-release--welfare,.policy-release--workers,.policy-release--environment,.policy-release--transport,.policy-release--constitutional,.housing-release) .policy-header { --policy-ground:var(--green-pine-900); }
#main.policy-release--editorial .policy-header { --policy-ground:var(--paper,#f5eee0); --policy-ink:var(--burgundy-700); }
#main .policy-header::before,#main .policy-header::after { content:none; }
#main .policy-header > :is(.container,.housing-wide) { width:calc(100% - 4rem); max-width:1200px; margin-inline:auto; padding:0; }
#main .policy-header :is(.policy-release-back,.housing-back) { display:inline-flex; align-items:center; min-height:44px; margin:0 0 var(--space-6); color:var(--policy-ink); font:600 .875rem/1.4 var(--font-body); text-decoration:underline; text-underline-offset:.25em; }
#main .policy-header :is(.policy-release-hero-grid,.housing-hero-grid) { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); align-items:center; gap:clamp(2rem,4vw,4rem); margin:0; }
#main .policy-header :is(.policy-release-hero-grid,.housing-hero-grid) > div { min-width:0; }
#main .policy-header h1 { color:var(--policy-ink); font:700 clamp(2.4rem,3.5vw,3.25rem)/1.08 var(--font-display); letter-spacing:-.035em; margin:0; max-width:none; text-wrap:pretty; overflow-wrap:break-word; }
#main .policy-header :is(.news-meta--hero,.housing-kicker) { display:flex; flex-wrap:wrap; gap:var(--space-3); margin:0 0 var(--space-4); color:var(--policy-ink); font:500 .8125rem/1.5 var(--font-body); letter-spacing:0; text-transform:none; }
#main .policy-header .news-meta-category { padding:0; background:none; color:inherit; font-weight:600; }
#main .policy-header :is(.news-meta-date,.housing-kicker span) { color:inherit; border-left:1px solid currentColor; padding-left:var(--space-3); font:inherit; }
#main .policy-header .news-meta-date::before { content:none; }
#main .policy-header :is(.transport-spokesperson,.housing-spokesperson) { display:flex; align-items:center; gap:var(--space-3); margin:var(--space-6) 0 0; padding:0; border:0; background:none; color:var(--policy-ink); }
#main .policy-header :is(.transport-spokesperson,.housing-spokesperson) img { width:52px; height:52px; flex:0 0 52px; border-radius:50%; object-fit:cover; }
#main .policy-header :is(.transport-spokesperson,.housing-spokesperson) p { margin:0; font:400 .875rem/1.5 var(--font-body); color:inherit; }
#main .policy-header :is(.transport-spokesperson,.housing-spokesperson) span { color:inherit; font-size:.8125rem; opacity:1; margin:0; }
#main .policy-header :is(.transport-spokesperson,.housing-spokesperson) a { color:inherit; font-weight:700; text-decoration:underline; text-underline-offset:.2em; }
#main .policy-header .release-download { margin:var(--space-4) 0 0; }
#main .policy-header .release-download a { display:inline-flex; align-items:center; flex-wrap:wrap; gap:var(--space-2); min-height:48px; color:var(--policy-ink); font:700 .9375rem/1.5 var(--font-body); text-decoration:underline; text-underline-offset:.25em; }
#main .policy-header .release-download span { color:inherit; font-weight:400; }
#main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) { margin:0; padding:0; width:100%; max-width:none; background:var(--paper-2); border:0; box-shadow:none; justify-self:stretch; }
#main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) img { display:block; width:100%; height:auto; max-height:none; aspect-ratio:auto; object-fit:contain; }
#main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) figcaption { margin:0; padding:var(--space-4) var(--space-5); color:var(--green-pine-900); opacity:1; font:400 .875rem/1.55 var(--font-body); border-bottom:1px solid var(--burgundy-100); }
#main .policy-header figcaption a { color:inherit; text-decoration:underline; text-underline-offset:.18em; }
#main .policy-header a:focus-visible { outline:3px solid currentColor; outline-offset:5px; }
/* Related cards share a compact, consistent layout across policy articles. */
#main:has(.policy-header) .news-listing--related { padding:var(--space-10) 0 var(--space-12); background:var(--paper,#f5eee0); }
#main:has(.policy-header) .news-listing--related > .container { max-width:1200px; width:calc(100% - 4rem); padding:0; }
#main:has(.policy-header) .news-grid { gap:var(--space-8); }
#main:has(.policy-header) .news-card { border:0; background:transparent; box-shadow:none; transform:none; }
#main:has(.policy-header) .news-card-image { aspect-ratio:1.8; }
#main:has(.policy-header) .news-card-image img { width:100%; height:100%; object-fit:cover; transform:none; }
#main:has(.policy-header) .news-card-body { padding:var(--space-4) 0 0; }
#main:has(.policy-header) .news-card-title { font:700 1.25rem/1.2 var(--font-heading); letter-spacing:-.02em; color:var(--burgundy-700); }
#main:has(.policy-header) .news-card-excerpt { font:400 .9375rem/1.6 var(--font-body); }
/* Align each card pair without making every row as tall as the longest card. */
.policy-hub-cards { grid-auto-rows:auto; }
.policy-hub-cards .policy-hub-card { grid-template-rows:auto auto 1fr; }
@supports (grid-template-rows:subgrid) { .policy-hub-cards .policy-hub-card { grid-row:span 3; grid-template-rows:subgrid; row-gap:0; } }
@media(max-width:900px) {
  #main .policy-header :is(.policy-release-hero-grid,.housing-hero-grid) { grid-template-columns:1fr; gap:var(--space-8); }
  #main .policy-header > :is(.container,.housing-wide) { max-width:720px; }
  #main .policy-header h1 { font-size:clamp(2rem,5.6vw,3rem); }
}
@media(max-width:700px) { .policy-hub-cards .policy-hub-card { grid-row:auto; grid-template-rows:auto auto auto; } }
@media(max-width:600px) {
  #main .policy-header { padding-top:calc(var(--header-height,72px) + var(--space-4)); padding-bottom:var(--space-8); }
  #main .policy-header > :is(.container,.housing-wide),#main:has(.policy-header) .news-listing--related > .container { width:calc(100% - 3rem); }
  #main .policy-header :is(.policy-release-back,.housing-back) { margin-bottom:var(--space-4); }
  #main .policy-header h1 { font-size:clamp(1.875rem,7.7vw,2.5rem); line-height:1.1; letter-spacing:-.03em; }
  #main:has(.policy-header) .news-grid { grid-template-columns:1fr; }
  #main:has(.policy-header) .news-card { display:grid; grid-template-columns:96px minmax(0,1fr); gap:var(--space-4); align-items:start; }
  #main:has(.policy-header) .news-card-image { aspect-ratio:1; }
  #main:has(.policy-header) .news-card-body { padding:0; }
  #main:has(.policy-header) .news-card-title { font-size:1rem; line-height:1.35; }
  #main:has(.policy-header) .news-card-excerpt { display:none; }
}
@media print {
  #main .policy-header { padding-top:0; background:white; color:black; --policy-ink:black; }
  #main .policy-header :is(.policy-release-hero-grid,.housing-hero-grid) { display:block; }
  #main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) { max-width:28rem; margin-top:var(--space-6); }
  #main .policy-header .release-download { display:none; }
}

/* Photo-print treatment requested in the local review. Keep the page grid straight. */
#main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) {
  --photo-tilt:1.25deg;
  padding:var(--space-2);
  background:var(--paper-2);
  transform:rotate(var(--photo-tilt));
  box-shadow:0 0 0 1px rgb(40 43 40 / 14%),0 3px 7px rgb(40 43 40 / 9%),0 14px 28px -12px rgb(40 43 40 / 25%);
}
#main:is(.policy-release--health,.policy-release--constitutional) .policy-header .policy-release-hero-photo { --photo-tilt:-1.25deg; }
#main .housing-paper {
  transform:rotate(1.25deg);
  box-shadow:0 0 0 1px rgb(40 43 40 / 14%),0 3px 7px rgb(40 43 40 / 9%),0 14px 28px -12px rgb(40 43 40 / 25%);
}
#main .housing-plan .housing-paper { transform:rotate(-1.25deg); }
@media(max-width:600px) {
  #main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) { transform:rotate(.65deg); }
  #main .housing-paper { transform:rotate(.65deg); }
  #main .housing-plan .housing-paper { transform:rotate(-.65deg); }
}
@media print {
  #main .policy-header :is(.policy-release-hero-photo,.housing-hero-image),#main .housing-paper { transform:none; box-shadow:none; }
}
/* Existing in-story photo mounts use the same restrained edge and shadow. */
#main :is(#norman-kirk-photo,#small-business-local-enterprise-photo) {
  box-shadow:0 0 0 1px rgb(40 43 40 / 14%),0 3px 7px rgb(40 43 40 / 9%),0 14px 28px -12px rgb(40 43 40 / 25%) !important;
}
#main #small-business-local-enterprise-photo { padding:var(--space-2); background:var(--paper-2); transform:rotate(-1deg); }
@media(max-width:600px) { #main #small-business-local-enterprise-photo { transform:rotate(-.65deg); } }
@media print { #main :is(#norman-kirk-photo,#small-business-local-enterprise-photo) { transform:none !important; box-shadow:none !important; } }

/* Selected direction: archival mounts with a stable pine / burgundy / paper rhythm. */
.policy-palette--pine { --archival-ground:var(--green-pine-900); --archival-ink:var(--paper-2); --archival-closing:var(--burgundy-700); }
.policy-palette--burgundy { --archival-ground:var(--burgundy-700); --archival-ink:var(--paper-2); --archival-closing:var(--green-pine-900); }
.policy-palette--paper { --archival-ground:var(--paper,#f5eee0); --archival-ink:var(--burgundy-700); --archival-closing:var(--green-pine-900); }
.alliance-archival-policy #main .policy-header { --policy-ground:var(--archival-ground); --policy-ink:var(--archival-ink); border-bottom:6px solid var(--archival-closing); }
.alliance-archival-policy .header,.alliance-archival-policy .header.header-scrolled { background:var(--burgundy-700); }
.alliance-archival-policy .header .header-logo,.alliance-archival-policy .header .header-nav a:not(.btn) { color:var(--paper-2); }
.alliance-archival-policy .header .header-nav a:not(.btn)::after,.alliance-archival-policy .header .mobile-toggle span { background:var(--paper-2); }
.alliance-archival-policy .header .header-nav .btn.btn-primary { background:transparent; color:var(--paper-2); border-color:var(--paper-2); }
.alliance-archival-policy .footer-masthead { background:var(--archival-closing); color:var(--paper-2); }
.alliance-archival-policy .footer-masthead .footer-wordmark { color:var(--paper-2); }
.alliance-archival-policy .footer-masthead .footer-tagline,.alliance-archival-policy .footer-masthead .footer-tagline a { color:var(--burgundy-700); }
.alliance-archival-policy #main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) {
  padding:var(--space-2); background:var(--paper-2);
  box-shadow:0 0 0 1px rgb(40 43 40 / 16%),0 3px 8px rgb(40 43 40 / 10%),0 16px 30px -12px rgb(40 43 40 / 30%);
}
.policy-tilt--left #main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) { transform:rotate(-1.25deg); }
.policy-tilt--right #main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) { transform:rotate(1.25deg); }
@media(max-width:600px) {
  .policy-tilt--left #main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) { transform:rotate(-.65deg); }
  .policy-tilt--right #main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) { transform:rotate(.65deg); }
}
@media print {
  .alliance-archival-policy #main .policy-header { --policy-ground:white; --policy-ink:black; border:0; }
  .alliance-archival-policy #main .policy-header :is(.policy-release-hero-photo,.housing-hero-image) { transform:none; box-shadow:none; }
}

/* User-selected display face from the campaign option; body type stays unchanged. */
@font-face { font-family:AlliancePolicyDisplay; src:url('../fonts/archivo-latin.woff2') format('woff2'); font-style:normal; font-weight:400 900; font-display:swap; }
.alliance-archival-policy #main .policy-header h1 {
  font-family:AlliancePolicyDisplay,var(--font-display),sans-serif;
  font-weight:900; font-variation-settings:'wght' 900,'wdth' 75;
  text-transform:uppercase; line-height:1.03; letter-spacing:-.035em;
}
.policy-hub-cards .policy-hub-card h3 {
  font-family:AlliancePolicyDisplay,var(--font-display),sans-serif;
  font-weight:900; font-variation-settings:'wght' 900,'wdth' 75;
}

/* Review refinements: prominent download buttons and readable spokesperson profiles. */
#main .policy-header .release-download { margin-top:1.75rem; }
#main .policy-header .release-download a {
  display:inline-flex; align-items:center; justify-content:center; flex-wrap:wrap;
  gap:.25em .45em; max-width:100%; min-height:64px; padding:1rem 1.4rem;
  background:#faf6ec; color:#0f4f45; border:2px solid #faf6ec;
  font:700 1.25rem/1.35 var(--font-body); text-align:center;
  text-decoration:none; border-radius:0; box-shadow:0 3px 0 rgb(0 0 0 / 12%);
}
#main .policy-header .release-download a span { font:inherit; color:inherit; text-decoration:none; white-space:nowrap; }
.policy-palette--paper #main .policy-header .release-download a { background:#0f4f45; color:#faf6ec; border-color:#0f4f45; }
#main .policy-header .release-download a:hover { background:#e8dec9; color:#0f4f45; border-color:#e8dec9; }
.policy-palette--paper #main .policy-header .release-download a:hover { background:#17695d; color:#faf6ec; border-color:#17695d; }
#main .policy-header .release-download a:focus-visible { outline:3px solid var(--policy-ink); outline-offset:5px; }
#main .policy-header :is(.transport-spokesperson,.housing-spokesperson) { gap:1rem; margin-top:1.75rem; }
#main .policy-header :is(.transport-spokesperson,.housing-spokesperson) img { width:80px; height:80px; flex:0 0 80px; }
#main .policy-header :is(.transport-spokesperson,.housing-spokesperson) p { font:700 1.25rem/1.4 var(--font-body); }
#main .policy-header :is(.transport-spokesperson,.housing-spokesperson) span { display:block; font:400 1.0625rem/1.5 var(--font-body); }
@media(max-width:600px) {
  #main .policy-header .release-download a { width:100%; min-height:60px; font-size:1.125rem; padding:.9rem 1rem; }
  #main .policy-header :is(.transport-spokesperson,.housing-spokesperson) img { width:72px; height:72px; flex-basis:72px; }
  #main .policy-header :is(.transport-spokesperson,.housing-spokesperson) p { font-size:1.125rem; }
  #main .policy-header :is(.transport-spokesperson,.housing-spokesperson) span { font-size:1rem; }
}

/* Selected tax image: preserve the original scan and display its photographic area. */
.policy-tax-photo-crop{position:relative;aspect-ratio:1.49;overflow:hidden}.policy-tax-photo-crop img,#main .policy-header .policy-tax-photo-crop img{position:absolute;width:142.86%;max-width:none;height:auto;left:-21.43%;top:-55.32%}
