:root {
  --bg:#f8f6f1;
  --surface:#fffdf9;
  --paper:#f8f6f1;
  --ink:#33252e;
  --ink-2:#5f555b;
  --muted:#675e63;
  --line:#ded8d3;
  --line-2:#c5bcb7;
  --health:#365e4f;
  --wealth:#755436;
  --happiness:#715e88;
  --news:#9a4f37;
  --health-soft:#e4ebe1;
  --wealth-soft:#f0e3d3;
  --happiness-soft:#e9e3ee;
  --news-soft:#efe2dc;
  --accent:#33252e;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,'Helvetica Neue',Helvetica,sans-serif;
  --measure:68ch}

* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6}
a {
  color:inherit;
  text-decoration:none}
button,input {
  font:inherit}
button,a,input,summary {
  -webkit-tap-highlight-color:transparent}
button {
  cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible {
  outline:3px solid #a15a40;
  outline-offset:5px}
img {
  display:block;
  max-width:100%;
  height:auto;
  object-fit:cover}
h1,h2,h3,p {
  margin:0}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.05;
  letter-spacing:-.035em}
h1 em,h2 em {
  font-weight:400}
button {
  border:0}
::selection {
  background:#e8c5ae;
  color:#33252e}
[hidden] {
  display:none!important}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0}
.skip-link {
  position:fixed;
  top:-100px;
  left:16px;
  z-index:99;
  background:var(--ink);
  color:#fff;
  padding:12px}
.skip-link:focus {
  top:12px}
.masthead-note {
  padding:9px max(5vw,20px);
  display:flex;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  font-size:11px;
  letter-spacing:.035em}
.masthead-note a span {
  margin-left:14px}
.site-header {
  max-width:1440px;
  margin:0 auto;
  min-height:100px;
  padding:20px 5vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px}
.wordmark {
  font-family:var(--serif);
  font-size:51px;
  line-height:1;
  letter-spacing:-3px;
  white-space:nowrap}
.brand-dot {
  color:#b97253}
.pillar-nav {
  display:flex;
  gap:34px;
  align-items:center}
.pillar-nav a {
  font-size:14px;
  padding:10px 0;
  position:relative}
.pillar-nav a:after {
  content:'';
  position:absolute;
  bottom:5px;
  left:0;
  width:0;
  height:1px;
  background:currentColor;
  transition:width .2s}
.pillar-nav a:hover:after,.pillar-nav a[aria-current]:after {
  width:100%}
.search-link {
  display:flex;
  align-items:center;
  gap:20px;
  border:1px solid var(--line-2);
  border-radius:40px;
  padding:10px 18px;
  font-size:12px}
.search-link>span:last-child {
  font-size:24px;
  line-height:1}
.site-main {
  max-width:1440px;
  padding:0 5vw 90px;
  margin:0 auto}
.eyebrow {
  font-family:var(--sans);
  font-size:10px;
  font-weight:600;
  letter-spacing:.14em;
  line-height:1.6;
  text-transform:uppercase}
.home-hero {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:520px;
  margin:20px 0 32px;
  gap:28px}
.hero-copy {
  padding:38px 25px 24px 0;
  display:flex;
  flex-direction:column;
  align-items:flex-start}
.hero-copy>.eyebrow {
  margin-bottom:25px}
.tiny-star {
  font-size:19px;
  margin-right:10px;
  color:#a46448;
  vertical-align:middle}
.hero-copy h1 {
  font-size:clamp(65px,6.8vw,100px);
  line-height:.99;
  letter-spacing:-.035em}
.hero-copy h1 em {
  color:#987451}
.hero-description {
  font-size:15px;
  line-height:1.8;
  max-width:380px;
  color:var(--ink-2);
  margin:26px 0 27px}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  border-radius:3px;
  padding:14px 21px;
  font-size:12px;
  font-weight:500;
  transition:background .2s,transform .2s;
  min-height:46px}
.button-dark {
  background:var(--ink);
  color:#fffaf5}
.button-dark:hover {
  background:#57404c;
  transform:translateY(-2px)}
.button span {
  font-size:18px}
.hero-footnote {
  display:flex;
  gap:13px;
  align-items:center;
  font-size:10px;
  letter-spacing:.025em;
  margin-top:auto;
  padding-top:27px;
  color:var(--muted)}
.triple-dot {
  letter-spacing:-4px;
  color:#a58b77;
  font-size:20px;
  padding-right:4px}
.hero-art {
  position:relative;
  overflow:hidden;
  border-radius:3px;
  min-height:510px;
  background:#486159}
.hero-art>img {
  object-fit:cover;
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
  object-position:49% center;
  filter:saturate(.75)}
.hero-art:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 30%,rgba(21,38,30,.7))}
.image-caption {
  position:absolute;
  z-index:1;
  bottom:35px;
  left:35px;
  right:35px;
  color:#fff9ee}
.image-caption>span:first-child {
  font-size:9px;
  letter-spacing:.17em}
.image-caption p {
  font-family:var(--serif);
  font-size:43px;
  line-height:1.06;
  margin-top:12px;
  letter-spacing:-.025em}
.round-arrow {
  position:absolute;
  right:0;
  bottom:0;
  border:1px solid #ffffff80;
  border-radius:50%;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  font-size:22px}
.values-strip {
  display:flex;
  justify-content:space-between;
  gap:18px;
  border-block:1px solid var(--line);
  padding:19px 0;
  font-size:11px;
  color:var(--ink-2)}
.values-strip>span:first-child {
  font-family:var(--serif);
  font-size:21px;
  line-height:1}
.values-strip>span:not(:first-child):before {
  content:'✳';
  margin-right:10px;
  color:#9c826d}
.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:27px}
.section-heading .eyebrow {
  margin-bottom:13px;
  color:var(--muted)}
.section-heading h2 {
  font-size:42px}
.section-heading>p,.section-heading>span {
  font-size:12px;
  color:var(--muted);
  padding-bottom:4px}
.pillar-section {
  padding:66px 0}
.pillar-cards {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px}
.pillar-tile {
  padding:25px 26px 21px;
  min-height:278px;
  border-radius:3px;
  display:flex;
  flex-direction:column;
  transition:transform .25s}
.pillar-tile:hover {
  transform:translateY(-5px)}
.tile-health {
  background:var(--health-soft)}
.tile-wealth {
  background:var(--wealth-soft)}
.tile-happiness {
  background:var(--happiness-soft)}
.tile-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:21px}
.tile-arrow {
  font-size:20px}
.pillar-tile h3 {
  font-size:35px;
  line-height:1.05;
  max-width:250px;
  margin-bottom:13px}
.pillar-tile>p {
  font-size:12px;
  line-height:1.8;
  max-width:265px;
  color:var(--ink-2)}
.tile-bottom {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:auto;
  padding-top:21px;
  font-size:10px;
  font-weight:600}
.pillar-symbol {
  height:32px;
  width:44px;
  position:relative;
  display:block}
.symbol-health:before,.symbol-health:after {
  content:'';
  position:absolute;
  background:#71826b;
  width:20px;
  height:31px;
  border-radius:22px 0;
  transform:rotate(-28deg);
  left:4px;
  top:0}
.symbol-health:after {
  transform:rotate(48deg);
  left:21px;
  top:4px;
  background:#9eac94}
.symbol-wealth {
  background:linear-gradient(to right,transparent 0 3px,#a7835d 3px 11px,transparent 11px 17px,#a7835d 17px 25px,transparent 25px 31px,#a7835d 31px 39px,transparent 39px);
  clip-path:polygon(0 65%,30% 65%,30% 33%,64% 33%,64% 0,100% 0,100% 100%,0 100%)}
.symbol-happiness:before {
  content:'✳';
  font-size:46px;
  line-height:32px;
  color:#9985ac}
.latest-section {
  border-top:1px solid var(--line);
  padding-top:45px;
  scroll-margin-top:24px}
.text-link {
  font-size:12px;
  border-bottom:1px solid var(--ink);
  padding-bottom:5px;
  white-space:nowrap}
.text-link span {
  margin-left:17px}
.filter-row {
  display:flex;
  gap:8px;
  align-items:center;
  margin-bottom:30px}
.filter {
  border:1px solid var(--line);
  background:transparent;
  border-radius:30px;
  padding:9px 17px;
  font-size:11px;
  min-height:38px;
  color:var(--ink)}
.filter:hover {
  background:#eee8e2}
.filter.active {
  background:var(--ink);
  border-color:var(--ink);
  color:var(--bg)}
.filter-count {
  font-size:11px;
  color:var(--muted);
  margin-left:auto}
.story-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:38px 23px}
.journal-columns {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
  gap:32px}
.journal-column {
  min-width:0;
  --pillar-color:var(--health)}
.journal-column-wealth {
  --pillar-color:var(--wealth)}
.journal-column-happiness {
  --pillar-color:var(--happiness)}
.journal-column-heading {
  border-top:3px solid var(--pillar-color);
  padding:17px 0 24px}
.journal-column-heading h2 {
  font-size:38px;
  line-height:1.15;
  color:var(--ink)}
.journal-column-heading h2 a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px}
.journal-column-heading h2 span {
  font-family:var(--sans);
  font-size:22px;
  color:var(--pillar-color)}
.journal-column-stories {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:38px}
.journal-column-more {
  display:inline-flex;
  margin-top:28px}
@media (max-width:760px) {
  .journal-columns {
    grid-template-columns:minmax(0,1fr);
    gap:48px}
}
.compound-story {
  min-width:0;
  display:flex;
  flex-direction:column}
.card-image {
  display:block;
  position:relative;
  overflow:hidden;
  aspect-ratio:1.58;
  border-radius:3px;
  background:var(--line)}
.card-image img {
  position:absolute;
  inset:0;
  object-fit:cover;
  height:100%;
  width:100%;
  transition:transform .5s;
  filter:saturate(.72)}
.card-image:hover img {
  transform:scale(1.045)}
.card-image-arrow {
  position:absolute;
  right:13px;
  bottom:13px;
  border-radius:50%;
  background:var(--bg);
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  font-size:18px}
.card-content {
  padding-top:18px;
  display:flex;
  flex-direction:column;
  flex:1}
.meta {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:15px;
  font-size:10px;
  color:var(--muted);
  margin-bottom:13px}
.category {
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.12em;
  display:inline-flex;
  align-items:center;
  gap:6px}
.category:before {
  content:'';
  height:5px;
  width:5px;
  border-radius:50%;
  background:currentColor}
.category-health {
  color:var(--health)}
.category-wealth {
  color:var(--wealth)}
.category-happiness {
  color:var(--happiness)}
.category-news {
  color:var(--news)}
.compound-story h3 {
  font-size:29px;
  line-height:1.12;
  letter-spacing:-.025em;
  margin-bottom:12px}
.compound-story h3 a:hover {
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:4px}
.compound-story .summary {
  font-size:12px;
  line-height:1.8;
  color:var(--ink-2);
  margin-bottom:19px}
.card-bottom {
  margin-top:auto;
  border-top:1px solid var(--line);
  padding-top:13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:10px;
  color:var(--muted)}
.card-bottom a {
  color:var(--ink)}
.card-bottom a span {
  margin-left:6px}
.editorial-note {
  position:relative;
  background:#ede8df;
  display:grid;
  grid-template-columns:110px 1fr 180px;
  gap:20px;
  padding:49px 40px;
  margin-top:70px;
  border-radius:3px}
.note-symbol {
  font-size:84px;
  line-height:1;
  color:#a07858}
.editorial-note h2 {
  font-size:44px;
  margin:14px 0 18px}
.editorial-note p:not(.eyebrow) {
  font-size:13px;
  line-height:1.85;
  max-width:470px;
  color:var(--ink-2);
  margin-bottom:21px}
.note-aside {
  font-size:9px;
  letter-spacing:.12em;
  line-height:1.8;
  align-self:end;
  text-align:right}
.site-footer {
  background:var(--ink);
  color:#f4efe9;
  padding:50px max(5vw,20px) 26px}
.footer-top,.footer-bottom,.footer-disclaimer {
  max-width:1296px;
  margin:0 auto}
.footer-top {
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:30px;
  padding-bottom:45px}
.site-footer .wordmark {
  font-size:58px}
.footer-top>div>p {
  font-size:12px;
  margin-top:17px;
  color:#d0c3c8}
.footer-mission {
  font-family:var(--serif);
  font-size:26px;
  line-height:1.25}
.footer-top nav {
  display:grid;
  grid-template-columns:1fr;
  justify-self:end;
  gap:6px;
  font-size:12px}
.site-footer a:hover {
  text-decoration:underline;
  text-underline-offset:4px}
.footer-bottom {
  border-top:1px solid #65555f;
  padding-top:22px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:10px;
  color:#d0c3c8}
.footer-bottom nav {
  display:flex;
  gap:20px}
.footer-top nav a,.footer-bottom nav a {
  min-height:44px;
  display:inline-flex;
  align-items:center}
.footer-disclaimer {
  font-size:10px;
  line-height:1.8;
  color:#baaab2;
  padding-top:17px}
.collection-hero {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  background:var(--health-soft);
  border-radius:3px;
  overflow:hidden;
  margin:22px 0 55px;
  min-height:325px}
.collection-wealth {
  background:var(--wealth-soft)}
.collection-happiness {
  background:var(--happiness-soft)}
.collection-hero>div {
  padding:40px}
.collection-hero h1 {
  font-size:61px;
  margin:20px 0}
.collection-hero p:not(.eyebrow) {
  font-size:14px;
  max-width:410px;
  color:var(--ink-2)}
.collection-hero img {
  object-fit:cover;
  width:100%;
  height:100%;
  max-height:420px;
  filter:saturate(.65)}
.collection-heading {
  margin-top:35px}
.simple-heading,.search-hero {
  text-align:center;
  padding:55px 0}
.simple-heading h1,.search-hero h1 {
  font-size:68px;
  margin:17px 0}
.simple-heading p,.search-hero>p:not(.eyebrow) {
  font-size:14px;
  color:var(--ink-2)}
.search-form {
  max-width:700px;
  margin:30px auto 17px;
  display:flex;
  gap:10px;
  padding:7px;
  border:1px solid var(--line-2);
  border-radius:4px;
  background:var(--surface)}
.search-form input {
  min-width:0;
  flex:1;
  padding:10px 15px;
  border:0;
  background:transparent;
  color:var(--ink);
  font-size:16px}
.suggested-searches {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  font-size:11px;
  flex-wrap:wrap}
.suggested-searches button {
  font-size:11px;
  padding:8px 12px;
  color:var(--ink-2);
  background:#ece7df;
  border-radius:20px}
.search-hero+.eyebrow {
  margin-bottom:25px}
.empty {
  padding:35px 0;
  color:var(--ink-2);
  grid-column:1/-1}
.article-header {
  max-width:900px;
  margin:25px auto 35px}
.breadcrumbs {
  display:flex;
  gap:12px;
  font-size:11px;
  color:var(--muted);
  margin-bottom:40px}
.breadcrumbs a:hover {
  text-decoration:underline}
.article-header>.meta {
  margin-bottom:19px}
.article-header h1 {
  font-size:clamp(43px,4.8vw,68px);
  line-height:1.04;
  max-width:950px}
.standfirst {
  font-size:16px;
  line-height:1.8;
  color:var(--ink-2);
  margin:25px 0}
.article-byline {
  font-size:11px;
  border-top:1px solid var(--line);
  padding-top:17px;
  display:flex;
  gap:20px;
  justify-content:space-between;
  align-items:center}
.article-byline a {
  text-decoration:underline;
  text-underline-offset:3px}
.byline-date {
  color:var(--muted);
  margin-left:13px}
.share-button {
  font-size:11px;
  border:1px solid var(--line-2);
  background:transparent;
  color:var(--ink);
  border-radius:30px;
  padding:9px 15px;
  white-space:nowrap}
.article-cover {
  height:340px;
  margin-bottom:52px;
  position:relative;
  border-radius:3px;
  overflow:hidden}
.article-cover img {
  object-fit:cover;
  width:100%;
  height:100%;
  filter:saturate(.65)}
.article-cover>span {
  position:absolute;
  bottom:18px;
  left:22px;
  background:var(--bg);
  padding:7px 13px;
  font-size:10px;
  letter-spacing:.04em}
.article-layout {
  display:grid;
  grid-template-columns:215px minmax(0,720px);
  gap:65px;
  justify-content:center}
.reading-nav {
  position:sticky;
  top:35px}
.reading-nav nav {
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:20px}
.reading-nav nav a {
  font-size:11px;
  color:var(--ink-2);
  line-height:1.5;
  border-left:2px solid var(--line);
  padding-left:12px}
.reading-nav nav a:hover,.reading-nav nav a.active {
  color:var(--ink);
  border-color:var(--ink)}
.back-top {
  display:block;
  font-size:10px;
  margin-top:25px;
  padding-top:20px;
  border-top:1px solid var(--line)}
.article-prose {
  font-size:16px;
  line-height:1.9;
  color:var(--ink-2);
  overflow-wrap:break-word}
.article-prose p {
  margin:0 0 1.4em}
.article-prose h2 {
  font-size:35px;
  line-height:1.1;
  color:var(--ink);
  margin:1.55em 0 .6em;
  scroll-margin-top:30px}
.article-prose h3 {
  font-size:28px;
  color:var(--ink);
  line-height:1.2;
  margin:1.4em 0 .65em}
.article-prose a {
  text-decoration:underline;
  text-decoration-color:#a99480;
  text-underline-offset:3px}
.article-prose a:hover {
  text-decoration-color:var(--ink)}
.article-prose ul,.article-prose ol {
  padding-left:22px;
  margin-bottom:26px}
.article-prose li {
  padding-left:5px;
  margin-bottom:10px}
.article-prose strong {
  font-weight:600;
  color:var(--ink)}
.article-prose blockquote {
  border-left:2px solid #b38e71;
  padding-left:22px;
  margin:30px 0;
  font-family:var(--serif);
  font-size:28px;
  line-height:1.4}
.article-prose table,.figures table {
  border-collapse:collapse;
  width:100%;
  font-size:13px;
  margin:25px 0}
.article-prose th,.article-prose td,.figures th,.figures td {
  text-align:left;
  padding:12px;
  border-bottom:1px solid var(--line);
  vertical-align:top}
.article-prose th,.figures th {
  background:#eee8df;
  font-weight:600;
  color:var(--ink)}
.sources {
  background:#eeeae2;
  padding:30px;
  margin:45px 0 24px;
  border-radius:3px;
  overflow-wrap:anywhere}
.sources h2 {
  font-size:31px;
  margin:13px 0 20px}
.sources ol {
  padding-left:18px;
  margin:0}
.sources li {
  font-size:12px;
  padding-left:5px;
  margin-bottom:12px;
  line-height:1.7}
.sources a {
  text-decoration:underline;
  text-underline-offset:3px}
.figures {
  border-block:1px solid var(--line);
  padding:19px 0;
  margin:25px 0}
.figures summary {
  cursor:pointer;
  font-size:13px}
.table-scroll {
  overflow-x:auto}
.figures td:first-child {
  font-weight:600}
.tags {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:27px}
.tags a {
  border:1px solid var(--line);
  padding:6px 12px;
  font-size:11px;
  border-radius:20px}
.tags a:hover {
  background:#eee8df}
.related {
  border-top:1px solid var(--line);
  padding-top:45px;
  margin-top:65px}
.info-page {
  max-width:760px;
  margin:45px auto 0}
.info-page>h1 {
  font-size:68px;
  margin:15px 0 35px}
.signup {
  background:#ece5dc;
  padding:40px;
  margin-top:55px;
  border-radius:3px;
  text-align:center}
.signup h2 {
  font-size:39px;
  margin-bottom:15px}
.signup>p {
  font-size:14px;
  max-width:550px;
  margin:0 auto 20px}
.signup-form {
  max-width:620px;
  margin:auto;
  display:flex;
  flex-wrap:wrap;
  gap:10px}
.signup-form input[type=email] {
  flex:1;
  min-width:190px;
  font-size:16px;
  padding:13px;
  border:1px solid var(--line-2);
  background:var(--bg)}
.signup-form button {
  background:var(--ink);
  color:var(--bg);
  padding:13px 23px;
  font-size:13px}
.consent {
  display:flex;
  align-items:flex-start;
  gap:10px;
  text-align:left;
  font-size:11px;
  line-height:1.7;
  width:100%}
.consent input {
  margin-top:5px}
.consent a {
  text-decoration:underline}
.preview-banner {
  background:#f0e3d3;
  padding:16px 20px;
  font-size:13px;
  margin:20px 0}
.ad {
  margin:30px 0}
.chart {
  margin:32px 0;
  padding:20px 0;
  border-block:1px solid var(--line)}
.chart-title {
  font-weight:600;
  color:var(--ink);
  margin-bottom:18px}
.chart-unit,.chart-note {
  font-size:12px;
  color:var(--muted)}
.chart-note {
  margin-top:15px!important}
.chart-scroll {
  overflow-x:auto}
.chart-svg {
  min-width:520px;
  display:block}
.chart-label,.chart-value,.chart-tick {
  fill:var(--ink-2);
  font-family:var(--sans);
  font-size:12px}
.chart-value-strong {
  font-weight:700;
  fill:var(--ink)}
.chart-grid {
  stroke:var(--line);
  stroke-width:1}
.chart-table {
  position:absolute!important;
  width:1px!important;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0)}

@media(min-width:1440px) {
  .site-header {
  padding-inline:72px}
.site-main {
  padding-inline:72px}
}

.author-note {
  margin: 3rem 0 2rem;
  padding: 1.4rem 1.5rem;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.65;
}
.author-note .eyebrow { margin: 0 0 .55rem; }
.author-note p:last-child { margin: 0; }
.author-note strong { color: var(--ink); }

.privacy-banner {
  position:fixed;
  z-index:1000;
  right:24px;
  bottom:24px;
  width:min(560px,calc(100vw - 48px));
  padding:24px;
  background:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  box-shadow:0 18px 55px rgba(51,37,46,.2);
}
.privacy-banner[hidden],.analytics-consent-set .privacy-banner { display:none; }
.privacy-banner h2 { margin:6px 0 10px;font:400 29px/1.15 var(--serif); }
.privacy-banner p { margin:0;color:var(--muted);font-size:14px;line-height:1.55; }
.privacy-banner .privacy-banner-links { margin-top:8px;font-size:12px; }
.privacy-banner-actions { display:flex;gap:10px;align-items:center;margin-top:18px; }
.privacy-banner-actions .button { border:1px solid var(--ink);cursor:pointer; }
.privacy-banner-actions .button-light { background:transparent;color:var(--ink); }
@media(max-width:600px) {
  .privacy-banner { right:12px;bottom:12px;width:calc(100vw - 24px);padding:20px; }
  .privacy-banner h2 { font-size:25px; }
  .privacy-banner-actions { align-items:stretch;flex-direction:column; }
  .privacy-banner-actions .button { width:100%; }
}

@media(max-width:1000px) {
  .site-header {
  gap:20px}
.pillar-nav {
  gap:20px}
.search-link>span:first-child {
  display:none}
.search-link {
  padding:9px 13px}
.hero-copy h1 {
  font-size:72px}
.hero-art {
  min-height:480px}
.home-hero {
  min-height:480px}
.hero-description {
  font-size:14px}
.pillar-tile {
  padding:22px}
.pillar-tile h3 {
  font-size:31px}
.story-grid {
  gap:30px 18px}
.compound-story h3 {
  font-size:27px}
.editorial-note {
  grid-template-columns:65px 1fr;
  padding:35px}
.note-symbol {
  font-size:60px}
.note-aside {
  display:none}
.article-layout {
  grid-template-columns:170px minmax(0,1fr);
  gap:35px}
.values-strip {
  font-size:10px;
  gap:12px}
.section-heading h2 {
  font-size:37px}
.collection-hero h1 {
  font-size:53px}
}

@media(max-width:760px) {
  .masthead-note {
  justify-content:center;
  font-size:10px}
.masthead-note>a {
  display:none}
.site-header {
  padding:18px 5vw;
  min-height:85px;
  flex-wrap:wrap;
  gap:15px}
.wordmark {
  font-size:43px}
.pillar-nav {
  order:3;
  justify-content:center;
  width:100%;
  border-top:1px solid var(--line);
  padding-top:9px;
  gap:38px}
.pillar-nav a {
  font-size:13px}
.search-link>span:first-child {
  display:inline}
.search-link {
  padding:8px 13px;
  font-size:10px;
  gap:8px}
.site-main {
  padding-bottom:55px}
.home-hero {
  grid-template-columns:1fr;
  margin:7px 0 25px;
  gap:27px}
.hero-copy {
  padding:20px 0 0}
.hero-copy>.eyebrow {
  margin-bottom:19px}
.hero-copy h1 {
  font-size:clamp(65px,12vw,90px)}
.hero-description {
  max-width:420px;
  font-size:15px;
  margin:22px 0}
.hero-footnote {
  padding-top:20px}
.hero-art {
  min-height:350px;
  aspect-ratio:1.3}
.image-caption {
  left:25px;
  bottom:25px;
  right:25px}
.image-caption p {
  font-size:37px}
.values-strip {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px 12px;
  font-size:10px;
  padding:20px 0}
.values-strip>span:first-child {
  font-size:18px}
.values-strip>span:not(:first-child):before {
  margin-right:5px}
.pillar-section {
  padding:42px 0}
.section-heading {
  align-items:flex-start;
  flex-direction:column;
  gap:14px}
.section-heading h2 {
  font-size:37px}
.section-heading>p {
  display:none}
.pillar-cards {
  grid-template-columns:1fr;
  gap:12px}
.pillar-tile {
  min-height:0;
  padding:22px 25px;
  position:relative}
.tile-top {
  margin-bottom:13px}
.pillar-tile h3 {
  font-size:34px;
  max-width:none}
.pillar-tile>p {
  max-width:85%}
.tile-bottom {
  padding-top:12px}
.pillar-symbol {
  position:absolute;
  right:24px;
  bottom:24px}
.latest-section {
  padding-top:35px}
.filter-row {
  gap:6px;
  flex-wrap:wrap}
.filter {
  padding:9px 13px;
  min-height:42px}
.filter-count {
  width:100%;
  margin:8px 0 0}
.story-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px 18px}
.compound-story h3 {
  font-size:27px}
.card-content {
  padding-top:15px}
.compound-story .summary {
  font-size:12px}
.card-bottom {
  flex-wrap:wrap;
  gap:8px}
.card-image {
  aspect-ratio:1.25}
.editorial-note {
  grid-template-columns:1fr;
  padding:28px;
  margin-top:45px;
  gap:15px}
.note-symbol {
  font-size:48px}
.editorial-note h2 {
  font-size:37px}
.footer-top {
  grid-template-columns:1fr 1fr;
  gap:30px}
.footer-top>div:first-child {
  grid-column:1/-1}
.footer-top nav {
  justify-self:start}
.footer-mission {
  font-size:25px}
.footer-bottom {
  flex-direction:column;
  gap:16px}
.footer-bottom nav {
  gap:18px;
  flex-wrap:wrap}
.site-footer {
  padding-top:36px}
.collection-hero {
  grid-template-columns:1fr;
  margin-top:15px}
.collection-hero>div {
  padding:30px}
.collection-hero h1 {
  font-size:55px}
.collection-hero img {
  height:220px}
.simple-heading,.search-hero {
  padding:35px 0}
.simple-heading h1,.search-hero h1 {
  font-size:51px}
.search-hero>p:not(.eyebrow) {
  font-size:13px}
.search-form {
  gap:4px}
.search-form input {
  padding:8px;
  width:100px}
.search-form .button {
  padding:10px 14px;
  gap:7px}
.article-header {
  margin-top:20px}
.breadcrumbs {
  margin-bottom:27px}
.article-header h1 {
  font-size:46px}
.standfirst {
  font-size:15px}
.article-byline {
  align-items:flex-start;
  gap:10px}
.byline-date {
  display:block;
  margin:4px 0 0}
.article-cover {
  height:235px;
  margin-bottom:30px}
.article-layout {
  display:block}
.reading-sidebar {
  margin-bottom:30px}
.reading-nav {
  position:static;
  padding:22px;
  background:#eeeae2;
  border-radius:3px}
.reading-nav nav {
  gap:11px;
  display:grid;
  grid-template-columns:1fr 1fr}
.reading-nav nav a {
  font-size:11px}
.back-top {
  display:none}
.article-prose {
  font-size:16px;
  line-height:1.85}
.article-prose h2 {
  font-size:31px}
.article-prose table {
  display:block;
  overflow-x:auto}
.sources {
  padding:23px}
.related {
  padding-top:30px;
  margin-top:40px}
.info-page {
  margin-top:25px}
.info-page>h1 {
  font-size:50px}
.signup {
  padding:25px}
.signup h2 {
  font-size:34px}
}

@media(max-width:440px) {
  .pillar-nav {gap:18px}
  .pillar-nav a {font-size:12px}
  .story-grid {
  grid-template-columns:1fr;
  gap:34px}
.card-image {
  aspect-ratio:1.65}
.compound-story h3 {
  font-size:32px}
.compound-story .summary {
  font-size:13px}
.meta,.card-bottom {
  font-size:11px}
.card-bottom {
  flex-wrap:nowrap}
.hero-art {
  min-height:310px}
.hero-copy h1 {
  font-size:68px}
.hero-description {
  font-size:14px}
.pillar-nav {
  gap:30px}
.section-heading h2 {
  font-size:35px}
.article-header h1 {
  font-size:41px}
.article-header .meta {
  font-size:10px}
.reading-nav nav {
  grid-template-columns:1fr}
.filter {
  font-size:10px;
  padding:9px 12px}
.footer-mission {
  font-size:23px}
.search-link>span:first-child {
  display:none}
}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
*,*:before,*:after {
  animation:none!important;
  transition:none!important}
}

@media print {
  .masthead-note,.site-header,.site-footer,.reading-sidebar,.share-button,.related,.signup,.article-cover {
  display:none}
.site-main {
  padding:0}
.article-layout {
  display:block}
.article-header h1 {
  font-size:32pt}
.article-prose {
  font-size:11pt}
.chart-table {
  position:static!important;
  clip:auto;
  width:100%!important;
  height:auto}
.chart-scroll {
  display:none}
}


/* Explicit colour pairs keep headings legible in embedded and dark-mode hosts. */
h1, h2, h3 {
  color: var(--ink);
}
.eyebrow {
  color: var(--ink-2);
}
.hero-copy h1 {
  color: #33252e;
}
.hero-copy h1 em {
  color: #795737;
}
.image-caption p, .image-caption > span {
  color: #fff9ee;
}

.compound-story {
  background: #f8f6f1;
  color: #33252e;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}
.compound-story .card-content {
  background: #f8f6f1;
  color: #33252e;
}
.compound-story h3, .compound-story h3 a {
  color: #33252e;
}
.compound-story .summary {
  color: #5f555b;
}
.compound-story .meta, .compound-story .card-bottom {
  color: #625860;
}
.card-image-arrow {
  color: #33252e;
  background: #f8f6f1;
}

/* Let mobile photographs use their intrinsic proportions. Fixed desktop
   frames and percentage heights must not stretch or over-crop narrow images. */
@media (max-width:760px) {
  .hero-art,
  .card-image,
  .article-cover {
    height:auto;
    min-height:0;
    aspect-ratio:auto;
  }
  .hero-art > img,
  .card-image > img,
  .collection-hero > img,
  .article-cover > img {
    position:static;
    display:block;
    width:100%;
    height:auto;
    min-height:0;
    max-height:none;
    aspect-ratio:auto;
    object-fit:cover;
  }
}

.article-image-credit { font:13px/1.6 var(--sans); color:#5f555b; margin:12px 0 30px; }
.article-image-credit a { text-decoration:underline; }

/* Editorial internal-link network: article → tool → related reading. */
.article-tools{margin:46px 0 36px;padding:28px;border:1px solid var(--line);background:var(--surface)}
.article-tools h2{font:400 clamp(27px,3vw,36px)/1.12 var(--serif);margin:5px 0 20px;color:var(--ink)}
.article-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
.article-tool-link{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px;background:var(--paper);text-decoration:none;color:var(--ink)}
.article-tool-link:hover{background:var(--wealth-soft)}
.article-tool-link strong{display:block;font:600 16px/1.3 var(--sans);color:var(--ink)}
.article-tool-link small{display:block;margin-top:7px;font:400 13px/1.5 var(--sans);color:var(--ink-2)}
.article-tool-link>span:last-child{font-size:20px;line-height:1}
.tool-reading{width:min(1180px,calc(100% - 40px));margin:58px auto 0;padding:32px;border:1px solid var(--line);background:var(--surface)}
.tool-reading h2{font:400 clamp(28px,3vw,38px)/1.12 var(--serif);margin:5px 0 22px;color:var(--ink)}
.tool-reading-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
.tool-reading-grid a{display:grid;grid-template-columns:1fr auto;gap:7px 16px;padding:20px;background:var(--paper);text-decoration:none;color:var(--ink)}
.tool-reading-grid a:hover{background:var(--wealth-soft)}
.tool-reading-grid strong{font:600 15px/1.35 var(--sans);color:var(--ink)}
.tool-reading-pillar{grid-column:1/-1;font:700 10px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
@media(max-width:620px){.article-tools{padding:22px}.article-tool-grid,.tool-reading-grid{grid-template-columns:1fr}.tool-reading{width:min(100% - 24px,1180px);padding:22px}}
@media print{.article-tools,.tool-reading{display:none!important}}


/* News */
.nav-news{color:var(--news)}
.home-news{padding:52px 0 58px;border-bottom:1px solid var(--line)}
.home-news-grid{display:grid;grid-template-columns:1.35fr repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.home-news-item{padding:24px 22px;border-left:1px solid var(--line);min-width:0}
.home-news-item:first-child{border-left:0;padding-left:0;padding-right:30px}
.home-news-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:15px}
.home-news-meta span{color:var(--news);font-weight:600}
.home-news-item h3{font-size:26px;line-height:1.08;margin-bottom:12px}
.home-news-lead h3{font-size:38px}
.home-news-item>p{font-size:12px;line-height:1.75;color:var(--ink-2);margin-bottom:18px}
.news-hero{margin:24px 0 58px;padding:54px 0 46px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.news-hero>.eyebrow{color:var(--news);margin-bottom:22px}
.news-hero h1{font-size:clamp(58px,7vw,94px);max-width:900px}
.news-hero h1 em{color:var(--news)}
.news-hero>p:not(.eyebrow){max-width:650px;margin-top:24px;font-size:16px;line-height:1.8;color:var(--ink-2)}
.news-principles{display:flex;gap:26px;flex-wrap:wrap;margin-top:32px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.news-principles span:before{content:'●';font-size:7px;color:var(--news);margin-right:9px}
.news-list-heading{margin-top:0}
.news-story-grid{margin-bottom:64px}
@media(max-width:980px){
  .home-news-grid{grid-template-columns:1fr 1fr}
  .home-news-item,.home-news-item:first-child{border-left:0;border-top:1px solid var(--line);padding:24px 18px}
  .home-news-item:nth-child(even){border-left:1px solid var(--line)}
  .home-news-item:nth-child(-n+2){border-top:0}
}
@media(max-width:620px){
  .home-news-grid{grid-template-columns:1fr}
  .home-news-item,.home-news-item:first-child,.home-news-item:nth-child(even){border-left:0;border-top:1px solid var(--line);padding:22px 0}
  .home-news-item:first-child{border-top:0}
  .home-news-lead h3{font-size:32px}
  .news-hero{padding:38px 0}
  .news-principles{gap:14px 20px}
}


/* Homepage calculator feature */
.calculator-feature{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);
  gap:54px;
  align-items:center;
  margin:70px 0;
  padding:46px 50px;
  background:#ede8df;
  border-radius:3px;
}
.calculator-feature-copy{max-width:620px}
.calculator-feature-copy .eyebrow{margin-bottom:14px}
.calculator-feature-copy h2{
  font-size:clamp(42px,4.8vw,64px);
  line-height:1.02;
  margin-bottom:18px;
}
.calculator-feature-copy>p:not(.eyebrow){
  max-width:520px;
  font-size:14px;
  line-height:1.8;
  color:var(--ink-2);
  margin-bottom:24px;
}
.calculator-feature-preview{
  min-height:250px;
  padding:28px;
  background:var(--surface);
  border:1px solid var(--line);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.calculator-preview-label{
  font-size:10px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:18px;
}
.calculator-preview-value,
.calculator-preview-result{
  font-family:var(--serif);
  font-size:clamp(36px,4vw,52px);
  line-height:1;
  color:var(--ink);
}
.calculator-preview-result{color:var(--wealth)}
.calculator-preview-arrow{
  font-size:24px;
  color:var(--muted);
  margin:8px 0;
}
.calculator-feature-preview p{
  margin-top:18px;
  font-size:11px;
  line-height:1.6;
  color:var(--muted);
}
@media(max-width:760px){
  .calculator-feature{
    grid-template-columns:1fr;
    gap:26px;
    margin:44px 0;
    padding:30px 24px;
  }
  .calculator-feature-copy h2{font-size:42px}
  .calculator-feature-copy>p:not(.eyebrow){font-size:13px}
  .calculator-feature-preview{
    min-height:0;
    padding:22px;
  }
}


/* Contextual article → tool conversion banner */
.article-tool-banner{
  --tool-accent:#365e4f;
  margin:42px 0 46px;
  padding:30px 32px;
  border:1px solid #ded8cf;
  border-top:3px solid var(--tool-accent);
  background:#fffdf9;
  box-shadow:0 10px 28px rgba(51,37,46,.045);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(230px,.7fr);
  gap:30px;
  align-items:center;
  border-radius:3px;
}
.article-tool-banner-health{--tool-accent:#365e4f}
.article-tool-banner-wealth{--tool-accent:#365e4f}
.article-tool-banner-happiness{--tool-accent:#b97253}
.article-tool-banner .eyebrow{
  margin:0 0 9px;
  color:var(--tool-accent);
}
.article-tool-banner h2{
  margin:0 0 10px!important;
  font:400 clamp(28px,3.4vw,40px)/1.05 var(--serif)!important;
  color:#33252e;
}
.article-tool-banner-copy>p:last-child{
  margin:0;
  max-width:520px;
  font-size:13px;
  line-height:1.65;
  color:#5f555b;
}
.article-tool-banner-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:18px 20px;
  min-height:74px;
  background:#365e4f;
  color:#fffdf8!important;
  border:1px solid #365e4f;
  border-radius:2px;
  text-decoration:none!important;
  font:600 14px/1.35 var(--sans);
  box-shadow:none;
  transition:transform .16s ease,background .16s ease,border-color .16s ease;
}
.article-tool-banner-cta:hover{
  background:#2f5145;
  border-color:#2f5145;
  transform:translateY(-1px);
}
.article-tool-banner-cta>span:last-child{
  font-size:22px;
  color:#f1e7d7;
}
@media(max-width:620px){
  .article-tool-banner{
    grid-template-columns:1fr;
    gap:20px;
    margin:34px 0 38px;
    padding:24px 22px;
  }
  .article-tool-banner-cta{min-height:64px}
}
@media print{.article-tool-banner{display:none!important}}


/* Homepage v2 — Irish news, guides and tools */
.home-hero-v2{
  grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);
  gap:48px;
  align-items:center;
  min-height:560px;
  margin-top:28px;
}
.hero-copy-v2{padding:24px 0 18px}
.hero-kicker{color:#a45f42;margin-bottom:22px}
.hero-copy-v2 h1{
  font-size:clamp(58px,6vw,86px);
  line-height:.98;
  letter-spacing:-.025em;
  max-width:760px;
  margin:0;
}
.hero-copy-v2 h1 em{
  display:inline-block;
  color:#365e4f;
  font-style:normal;
  margin-top:8px;
}
.hero-copy-v2 .hero-description{
  max-width:620px;
  font-size:16px;
  line-height:1.7;
  margin:24px 0 26px;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.button-green{
  background:#365e4f;
  color:#fffdf8;
  border:1px solid #365e4f;
}
.button-green:hover{background:#2f5145}
.button-outline{
  background:transparent;
  color:#365e4f;
  border:1px solid #365e4f;
}
.button-outline:hover{background:#f0f4f1}
.hero-proof{
  display:flex;
  gap:28px;
  flex-wrap:wrap;
  margin-top:28px;
  padding-top:8px;
}
.hero-proof span{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:11px;
  line-height:1.45;
  color:var(--ink-2);
}
.hero-proof b{font-size:21px;color:#365e4f;font-weight:400;line-height:1}
.hero-art-v2{
  min-height:500px;
  aspect-ratio:1.05;
  border-radius:3px;
  overflow:hidden;
}
.hero-art-v2>img{object-fit:cover}
.hero-image-message{
  left:34px;
  bottom:34px;
  right:34px;
  color:#fffdf8;
}
.hero-image-message p{
  font-size:clamp(38px,4.2vw,60px);
  line-height:1.02;
  margin:0;
  max-width:430px;
}
.caption-rule{
  display:block;
  width:48px;
  height:2px;
  background:#fffdf8;
  margin-top:20px;
}

.home-command-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin:28px 0 48px;
}
.home-today-panel,.home-tools-panel{
  border:1px solid var(--line);
  background:#fffdf9;
  padding:24px 26px;
  border-radius:3px;
}
.home-panel-heading{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.home-panel-heading h2{
  margin:0;
  font-size:29px;
  line-height:1.1;
}
.home-panel-heading h2 span{font-size:14px;color:#365e4f;margin-right:8px}
.home-panel-heading>a{
  font-size:11px;
  color:#365e4f;
  text-decoration:none;
}
.home-today-list,.home-tools-list{display:grid}
.home-today-story{
  display:grid;
  grid-template-columns:145px 1fr;
  gap:18px;
  align-items:center;
  padding:15px 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
  color:inherit;
}
.home-today-story:last-child{border-bottom:0;padding-bottom:0}
.home-today-story img{
  width:145px;
  height:82px;
  object-fit:cover;
  border-radius:2px;
  background:#ece7df;
}
.home-today-copy strong{
  display:block;
  font:400 19px/1.18 var(--serif);
  color:var(--ink);
}
.home-today-copy small{
  display:block;
  margin-top:8px;
  color:var(--muted);
  font-size:10px;
}
.home-tools-list>a{
  display:grid;
  grid-template-columns:56px minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:12px 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
  color:inherit;
}
.home-tool-icon{
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  border-radius:6px;
  background:#e9f1e8;
  color:#2e6b4e;
}
.home-tool-icon svg{
  width:29px;
  height:29px;
}
.home-tool-mortgage-calculator .home-tool-icon{
  background:#f6efdf;
  color:#ad6e2b;
}
.home-tool-mortgage-overpayment-calculator .home-tool-icon{
  background:#edf3ea;
  color:#416c4f;
}
.home-tool-savings-goal-calculator .home-tool-icon{
  background:#edf3ea;
  color:#416c4f;
}
.home-tool-bmi-calculator .home-tool-icon{
  background:#f8e7e7;
  color:#b33a3a;
}
.home-tool-solar-payback-calculator .home-tool-icon{
  background:#fff4cf;
  color:#d3a100;
}
.home-tool-copy{
  min-width:0;
}
.home-tools-list>a:last-child{border-bottom:0;padding-bottom:0}
.home-tools-list strong{
  display:block;
  font-size:14px;
  color:var(--ink);
}
.home-tools-list small{
  display:block;
  margin-top:5px;
  font-size:11px;
  color:var(--muted);
  line-height:1.4;
}
.home-tools-list>a>b{
  align-self:center;
  color:#365e4f;
  font-size:20px;
  font-weight:400;
}
.home-pillars-v2{padding-top:28px}
.home-pillars-v2 .pillar-tile h3{font-size:42px}

@media(max-width:900px){
  .home-hero-v2{grid-template-columns:1fr;gap:28px;min-height:0}
  .hero-art-v2{min-height:430px}
  .home-command-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .home-hero-v2{margin-top:10px}
  .hero-copy-v2{padding-top:12px}
  .hero-copy-v2 h1{font-size:clamp(50px,13vw,68px)}
  .hero-copy-v2 .hero-description{font-size:14px}
  .hero-actions{display:grid;grid-template-columns:1fr 1fr}
  .hero-actions .button{justify-content:center;text-align:center;padding:13px 14px}
  .hero-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
  .hero-proof span{display:block;font-size:9px}
  .hero-proof b{display:block;margin-bottom:6px}
  .hero-art-v2{min-height:330px;aspect-ratio:1.15}
  .hero-image-message{left:24px;right:24px;bottom:24px}
  .hero-image-message p{font-size:38px}
  .home-command-grid{margin-top:22px}
  .home-today-panel,.home-tools-panel{padding:20px}
  .home-panel-heading h2{font-size:25px}
  .home-today-story{grid-template-columns:96px 1fr;gap:13px}
  .home-today-story img{width:96px;height:68px}
  .home-today-copy strong{font-size:17px}
  .home-tools-list strong{font-size:13px}
  .home-tools-list>a{grid-template-columns:48px minmax(0,1fr) auto;gap:13px;padding:11px 0}
  .home-tool-icon{width:48px;height:48px}
  .home-tool-icon svg{width:25px;height:25px}
}

.hero-proof-ireland{
  display:flex!important;
  gap:10px;
  align-items:flex-start!important;
}
.ireland-icon{
  width:24px;
  height:24px;
  flex:0 0 24px;
  margin-top:1px;
  color:#365e4f;
}
@media(max-width:620px){
  .hero-proof-ireland{display:block!important}
  .ireland-icon{
    display:block;
    width:20px;
    height:20px;
    margin:0 0 6px;
  }
}


/* Homepage pillar imagery */
.home-pillars-v2 .pillar-tile {
  padding:0;
  min-height:0;
  overflow:hidden;
}
.pillar-tile-image {
  width:100%;
  aspect-ratio:3 / 2;
  overflow:hidden;
  background:var(--line);
}
.pillar-tile-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.pillar-tile:hover .pillar-tile-image img {
  transform:scale(1.025);
}
.pillar-tile-content {
  padding:24px 26px 21px;
  min-height:250px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.pillar-tile-content>p {
  font-size:12px;
  line-height:1.8;
  max-width:265px;
  color:var(--ink-2);
}
@media (max-width:760px) {
  .pillar-tile-image {
    aspect-ratio:16 / 9;
  }
  .pillar-tile-content {
    min-height:230px;
  }
}


/* Homepage text-only hero */
.home-hero-text-only{
  display:block;
  min-height:0;
  margin:12px 0 18px;
}
.home-hero-text-only .hero-copy-v2{
  width:100%;
  max-width:none;
  padding:20px 0 14px;
}
.home-hero-text-only .hero-copy-v2 h1{
  width:100%;
  max-width:none;
  font-size:clamp(68px,7.7vw,112px);
  line-height:.93;
  letter-spacing:-.035em;
}
.home-hero-text-only .hero-copy-v2 h1 em{
  margin-top:8px;
}
.home-hero-text-only .hero-copy-v2 .hero-description{
  max-width:860px;
  font-size:17px;
  line-height:1.62;
  margin:22px 0 22px;
}
.home-hero-text-only .hero-actions{
  margin-bottom:0;
}
.home-hero-text-only .hero-proof{
  width:100%;
  max-width:none;
  justify-content:flex-start;
  gap:56px;
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.home-hero-text-only .hero-proof span{
  font-size:12px;
}
@media(max-width:900px){
  .home-hero-text-only .hero-copy-v2 h1{
    font-size:clamp(64px,11vw,96px);
    max-width:100%;
  }
  .home-hero-text-only .hero-copy-v2 .hero-description{
    max-width:680px;
  }
}
@media(max-width:620px){
  .home-hero-text-only{
    margin-top:6px;
    margin-bottom:18px;
  }
  .home-hero-text-only .hero-copy-v2{
    padding:14px 0 12px;
  }
  .home-hero-text-only .hero-copy-v2 h1{
    font-size:clamp(48px,13vw,66px);
    line-height:.96;
  }
  .home-hero-text-only .hero-copy-v2 .hero-description{
    font-size:14px;
    line-height:1.65;
    margin:22px 0 22px;
  }
  .home-hero-text-only .hero-proof{
    grid-template-columns:repeat(3,minmax(0,1fr));
    max-width:none;
    gap:12px;
    margin-top:26px;
    padding-top:18px;
  }
}


/* Force the text-only homepage hero to use the full content width. */
.home-hero-text-only,
.home-hero-text-only .hero-copy-v2{
  width:100%;
  max-width:100%;
}
.home-hero-text-only .hero-copy-v2{
  display:block;
}
.home-hero-text-only .hero-copy-v2 h1{
  width:100%;
  max-width:none;
  font-size:clamp(64px,7.2vw,108px);
  line-height:.94;
}
.home-hero-text-only .hero-copy-v2 h1 span,
.home-hero-text-only .hero-copy-v2 h1 em{
  display:inline;
}
.home-hero-text-only .hero-copy-v2 h1 em{
  margin:0;
}
.home-hero-text-only .hero-description{
  max-width:940px;
}
.home-hero-text-only .hero-proof{
  max-width:none;
}
@media(max-width:760px){
  .home-hero-text-only .hero-copy-v2 h1{
    font-size:clamp(46px,12.5vw,64px);
  }
}


/* Global responsive integrity guardrails. Local chart/table scrollers remain scrollable. */
html,body{max-width:100%;overflow-x:clip}
.site-main,
.site-header,
.masthead-note,
.site-footer,
.site-main>*{min-width:0}
svg,canvas,video{max-width:100%}
input,select,textarea,button{max-width:100%}


/* Google Preferred Sources */
.preferred-source-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:28px;
  align-items:center;
  margin:38px 0;
  padding:24px 26px;
  border:1px solid var(--line);
  background:var(--surface);
}
.preferred-source-card .eyebrow{margin-bottom:7px;color:var(--news)}
.preferred-source-card strong{
  display:block;
  font:400 26px/1.15 var(--serif);
  color:var(--ink);
  margin-bottom:7px;
}
.preferred-source-card p:not(.eyebrow){
  margin:0;
  max-width:570px;
  font-size:13px;
  line-height:1.65;
  color:var(--ink-2);
}
.preferred-source-control{
  min-width:190px;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}
@media(max-width:620px){
  .preferred-source-card{
    grid-template-columns:1fr;
    gap:18px;
    padding:21px;
    margin:30px 0;
  }
  .preferred-source-card strong{font-size:24px}
  .preferred-source-control{justify-content:flex-start;min-width:0}
}


/* 2026-09 Lighthouse accessibility hardening */
/* Preserve the compact editorial look while giving small navigation links a
   proper interaction box on touch devices and in keyboard navigation. */
.reading-nav nav a{
  display:flex;
  align-items:center;
  min-height:32px;
  padding-top:6px;
  padding-bottom:6px;
}
.breadcrumbs a,
.card-bottom a,
.home-panel-heading>a,
.journal-column-more,
.site-footer nav a,
.masthead-note a{
  display:inline-flex;
  align-items:center;
  min-height:24px;
}
@media(max-width:760px){
  .pillar-nav a,
  .search-link{
    min-height:44px;
  }
  .breadcrumbs a,
  .card-bottom a,
  .home-panel-heading>a,
  .journal-column-more,
  .site-footer nav a,
  .masthead-note a{
    min-height:32px;
  }
  .reading-nav nav a{
    min-height:40px;
    padding-top:8px;
    padding-bottom:8px;
  }
}


/* 2026-09 quality pass: keep below-the-fold homepage work out of the critical render path. */
.home-pillars-v2,
.home-news,
.latest-section,
.editorial-note,
.signup.home{
  content-visibility:auto;
  contain-intrinsic-size:auto 760px;
}

/* Mobile accessibility: give small navigation and tag links a reliable tap target. */
@media(max-width:760px){
  .tags a,
  .footer-top nav a,
  .footer-bottom nav a,
  .home-panel-heading>a,
  .journal-column-more,
  .section-heading>.text-link{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
  .footer-top nav{gap:0}
  .footer-bottom nav{gap:4px 14px}
}


/* Final mobile target-size cleanup */
@media(max-width:760px){
  .home-news-item>.text-link{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    padding-block:9px;
  }
  .site-footer nav a{
    min-width:44px;
    min-height:44px;
    padding:8px;
    justify-content:center;
  }
}


/* Final mobile accessibility pass: make compact navigation links reliably tappable
   without changing the desktop layout or visual hierarchy. */
@media(max-width:760px){
  .pillar-nav a,
  .search-link,
  .text-link,
  .card-bottom a,
  .breadcrumbs a,
  .article-byline a,
  .home-panel-heading>a{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }

  .pillar-nav a{
    padding-top:11px;
    padding-bottom:11px;
  }

  .card-bottom{
    row-gap:4px;
  }

  .card-bottom a{
    padding-inline:2px;
  }

  .breadcrumbs{
    align-items:center;
    row-gap:4px;
    flex-wrap:wrap;
  }

  .article-byline a{
    vertical-align:middle;
  }
}


/* Restore visual article covers to the homepage news edit without affecting
   the critical render path: this section is below the fold and images are lazy-loaded. */
.home-news-image{
  display:block;
  margin-bottom:18px;
  overflow:hidden;
  border-radius:3px;
  aspect-ratio:16 / 9;
  background:var(--line);
}
.home-news-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.72);
  transition:transform .35s ease;
}
.home-news-image:hover img{
  transform:scale(1.02);
}
.home-news-lead .home-news-image{
  aspect-ratio:1.55;
}
@media(max-width:620px){
  .home-news-image,
  .home-news-lead .home-news-image{
    aspect-ratio:16 / 9;
    margin-bottom:16px;
  }
}
