/* Policy overview: Alliance's paper, burgundy and pine campaign palette. */
.policy-hub {
  --hub-paper: #f5eee0;
  --hub-red: #821918;
  --hub-pine: #0f4f45;
  --hub-ink: #242422;
  color: var(--hub-ink);
  background: #fff;
}
.policy-hub .container { max-width: 1200px; }
.policy-hub a { text-underline-offset: 4px; }
.policy-hub a:focus-visible, .policy-hub summary:focus-visible { outline: 3px solid currentColor; outline-offset: 5px; }
.policy-hub [id] { scroll-margin-top: calc(var(--header-height, 72px) + 24px); }
.policy-hub-intro { padding: calc(var(--header-height, 72px) + 54px) 0 44px; background: var(--hub-paper); }
.policy-hub-intro__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; align-items: end; }
.policy-hub-intro h1 { margin: 0; color: var(--hub-red); font: 900 clamp(3.25rem, 6.2vw, 5.5rem)/0.93 var(--font-display); letter-spacing: -0.055em; }
.policy-hub-intro__copy { padding-bottom: 3px; max-width: 480px; }
.policy-hub-intro__copy > p:first-child { font: 800 1.35rem/1.25 var(--font-heading); color: var(--hub-red); margin: 0 0 14px; }
.policy-hub-intro__copy > p { font: 400 1.0625rem/1.6 var(--font-body); margin: 0 0 14px; }
.policy-hub-intro__copy > a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--hub-red); font-weight: 700; text-decoration: underline; }
.policy-hub-featured { background: var(--hub-paper); padding: 10px 0 72px; }
.policy-hub-section-heading { border-top: 2px solid var(--hub-red); padding-top: 16px; margin-bottom: 24px; display: flex; justify-content: space-between; align-items: center; gap: 20px; color: var(--hub-red); }
.policy-hub-section-heading h2 { font: 800 1rem/1.3 var(--font-heading); margin: 0; }
.policy-hub-section-heading > span { font-size: .875rem; font-weight: 700; }
.policy-hub-cards { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: 28px; }
.policy-hub-card { min-width: 0; background: #fff; display: flex; flex-direction: column; box-shadow: 7px 7px 0 rgba(130,25,24,.12); border-top: 7px solid var(--hub-red); }
.policy-hub-card--work { border-color: var(--hub-pine); }
.policy-hub-card__image { display: block; width: 100%; aspect-ratio: 2.1; height: auto; object-fit: cover; object-position: 50% 35%; }
.policy-hub-card--tax .policy-hub-card__image { object-position: 50% 38%; }
.policy-hub-card__content { padding: 28px 30px 20px; display: flex; flex-direction: column; flex: 1; }
.policy-hub-card__category { margin: 0 0 12px; font: 800 .75rem/1.3 var(--font-heading); text-transform: uppercase; letter-spacing: .09em; color: var(--hub-red); }
.policy-hub-card--work .policy-hub-card__category, .policy-hub-card--work h3 { color: var(--hub-pine); }
.policy-hub-card h3 { color: var(--hub-red); font: 900 clamp(1.65rem, 2.5vw, 2.25rem)/1.02 var(--font-display); letter-spacing: -.04em; margin: 0 0 18px; }
.policy-hub-card__content > p:not(.policy-hub-card__category) { font: 400 1rem/1.6 var(--font-body); margin: 0 0 22px; max-width: 44ch; }
.policy-hub-card__action { min-height: 48px; margin-top: auto; display: flex; gap: 20px; justify-content: space-between; align-items: center; color: var(--hub-red); border-bottom: 2px solid currentColor; padding-bottom: 8px; font: 800 1rem/1.4 var(--font-heading); text-decoration: none; }
.policy-hub-card__action span { font-size: 1.5rem; }
.policy-hub-card--work .policy-hub-card__action { color: var(--hub-pine); }
.policy-hub-card__action:hover { text-decoration: underline; }
.policy-hub-card__downloads { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 10px; }
.policy-hub-card__downloads a { color: #444440; display: inline-flex; gap: 5px; min-height: 44px; align-items: center; font-size: .875rem; text-decoration: underline; }
.policy-hub-card__downloads a span { font-size: .75rem; }
.policy-hub-topics { padding: 72px 0 88px; }
.policy-hub-topics__grid { display: grid; grid-template-columns: 1fr 1.8fr; gap: 72px; }
.policy-hub-topics__intro h2 { font: 900 clamp(2rem, 3.1vw, 2.85rem)/1.03 var(--font-display); letter-spacing: -.04em; margin: 0 0 22px; color: var(--hub-red); }
.policy-hub-topics__intro p { font: 400 1rem/1.6 var(--font-body); max-width: 31ch; margin: 0 0 20px; }
.policy-hub-topics__intro a { display: inline-flex; gap: 10px; align-items: center; min-height: 44px; color: var(--hub-red); font-size: .9375rem; font-weight: 700; text-decoration: underline; }
.policy-hub-topic { border-bottom: 1px solid #d4d0c8; }
.policy-hub-topic:first-child { border-top: 2px solid var(--hub-red); }
.policy-hub-topic summary { display: flex; gap: 28px; justify-content: space-between; align-items: center; padding: 22px 4px; list-style: none; cursor: pointer; }
.policy-hub-topic summary::-webkit-details-marker { display: none; }
.policy-hub-topic__heading { font: 750 1.125rem/1.4 var(--font-heading); }
.policy-hub-topic summary:hover { color: var(--hub-red); }
.policy-hub-topic__toggle { flex: 0 0 18px; height: 18px; position: relative; color: var(--hub-red); }
.policy-hub-topic__toggle::before, .policy-hub-topic__toggle::after { content: ''; position: absolute; width: 16px; height: 2px; background: currentColor; top: 8px; left: 1px; }
.policy-hub-topic__toggle::after { transform: rotate(90deg); }
.policy-hub-topic[open] .policy-hub-topic__toggle::after { display: none; }
.policy-hub-topic[open] summary { color: var(--hub-red); }
.policy-hub-topic__body { padding: 0 4px 22px; }
.policy-hub-topic__body p { font: 400 1rem/1.7 var(--font-body); margin: 0 0 18px; color: #444440; }
.policy-hub-topic__body p:last-child { margin-bottom: 0; }
.policy-hub-topic__body .policy-hub-topic__lead { font-weight: 600; color: var(--hub-ink); }
.policy-hub-topic__body a { color: var(--hub-red); text-decoration: underline; }
@media (max-width: 1000px) {
  .policy-hub-intro__grid { gap: 32px; }
  .policy-hub-topics__grid { grid-template-columns: 1fr 1.7fr; gap: 40px; }
  .policy-hub-card__content { padding: 24px; }
}
@media (max-width: 700px) {
  .policy-hub-intro { padding: calc(var(--header-height, 72px) + 30px) 0 28px; }
  .policy-hub-intro__grid, .policy-hub-cards, .policy-hub-topics__grid { grid-template-columns: 1fr; gap: 28px; }
  .policy-hub-intro h1 { font-size: clamp(3rem, 12vw, 4.75rem); }
  .policy-hub-intro__copy > p:first-child { font-size: 1.15rem; }
  .policy-hub-featured { padding-bottom: 48px; }
  .policy-hub-card h3 { font-size: clamp(1.65rem, 7.4vw, 2.25rem); }
  .policy-hub-card__image { aspect-ratio: 1.85; }
  .policy-hub-card__content { padding: 24px 22px 16px; }
  .policy-hub-card__action { font-size: .9375rem; }
  .policy-hub-topics { padding: 44px 0 52px; }
  .policy-hub-topics__intro h2 br { display: none; }
  .policy-hub-topics__intro p { max-width: 42ch; }
  .policy-hub-topic summary { gap: 20px; padding: 20px 2px; }
  .policy-hub-topic__heading { font-size: 1rem; }
}
@media print {
  .policy-hub-intro { padding-top: 0; }
  .policy-hub-card { box-shadow: none; }
  .policy-hub-card__image { max-height: 140px; }
  .policy-hub-topics__grid { display: block; }
  .policy-hub-topic__body { display: block !important; }
}

/* Solid, readable navigation over this page's cream introduction. */
.policy-hub-page .header { background: #f5eee0; }
.policy-hub-page .header-logo { color: #821918; }
.policy-hub-page .header-nav a:not(.btn) { color: #343430; }
.policy-hub-page .header-nav a:not(.btn):hover,
.policy-hub-page .header-nav a[aria-current="page"]:not(.btn) { color: #821918; }
.policy-hub-page .header-nav a:not(.btn)::after { background: #821918; }
.policy-hub-page .header-nav .btn.btn-primary { border-color: #821918; }
.policy-hub-page .mobile-toggle span { background: #821918; }
.policy-hub-card--work h3 { color: var(--hub-pine); }

/* A consistent grid accommodates each released policy. */
.policy-hub-card--environment { border-color: var(--green-pine-900); }
.policy-hub-card--environment h3, .policy-hub-card--environment .policy-hub-card__action { color: var(--green-pine-900); }
.policy-hub-card--constitutional .policy-hub-card__image { aspect-ratio: auto; object-fit: contain; }
.policy-hub-card--health .policy-hub-card__image { object-position: 50% 76%; }
.policy-hub-card--environment .policy-hub-card__image { object-position: 50% 25%; }

.policy-hub-card--transport .policy-hub-card__image { object-position: 50% 22%; }
.policy-hub-card--welfare .policy-hub-card__image { object-position: 50% 55%; }
.policy-hub-card__credit { margin: 0; padding: 10px 20px; color: var(--neutral-800); font: 400 .75rem/1.5 var(--font-body); }
.policy-hub-card__credit a { color: inherit; text-decoration: underline; text-underline-offset: .18em; }

/* Keep the subject in view inside the shared card photo dimensions. */
#gender-equality-policy .policy-hub-card__image { object-position: 50% 38%; }
.policy-hub-card--work .policy-hub-card__image { object-position: 50% 28%; }
