.front-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1.08fr;
  align-items: center;
  gap: clamp(30px, 5vw, 76px);
  padding-block: clamp(38px, 5vw, 76px);
}
.front-hero-grid > *, .front-heading > * { min-width: 0; }
.front-byline {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--blue);
}
.front-hero h1 {
  margin: 19px 0;
  font: normal clamp(50px, 5.8vw, 90px)/1.01 Georgia, serif;
  letter-spacing: -.058em;
}
.front-hero h1 em { font-weight: normal; color: var(--blue); }
.front-intro { max-width: 52ch; font-size: clamp(16px, 1.3vw, 20px); line-height: 1.55; color: #414f60; margin: 0; }
.front-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 26px; }
.front-author-link, .front-measures { color: var(--blue); text-underline-offset: 4px; font-weight: 600; font-size: 14px; }
.front-author-link { display: inline-flex; padding-block: 12px 4px; }
.front-art { margin: 0; }
.front-art img { display: block; width: 100%; height: auto; }
.front-art figcaption { text-align: right; margin-top: 5px; font-size: 11px; line-height: 1.5; color: var(--muted); }
.front-highlights { background: #eef1ef; border-block: 1px solid var(--line); }
.front-highlights-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); padding-block: 22px; }
.front-highlights a { display: flex; align-items: center; gap: clamp(12px,1.5vw,25px); padding-inline: clamp(12px,1.9vw,30px); text-decoration: none; }
.front-highlights a:first-child { padding-left: 0; }
.front-highlights a:last-child { padding-right: 0; }
.front-highlights a + a { border-inline-start: 1px solid #c9d1cf; }
.front-highlights strong { white-space: nowrap; font: normal clamp(31px,3.25vw,49px)/1 Georgia,serif; letter-spacing: -.05em; }
.front-highlights strong span { font-size: .72em; }
.front-highlights a > span { font-size: 13px; line-height: 1.45; color: #3d4b5a; }
.front-highlights a:hover > span { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.front-section { padding-block: clamp(34px,4.4vw,66px); }
.front-heading { display: flex; gap: 20px; align-items: baseline; justify-content: space-between; margin-bottom: 22px; }
.front-section h2, .front-situations h2 { margin: 0; font: normal clamp(32px,3.3vw,54px)/1.08 Georgia,serif; letter-spacing: -.05em; }
.front-search { padding: 16px clamp(14px,1.8vw,26px); border: 1px solid #d3dce4; background: #eef2f6; border-radius: 5px; display: flex; align-items: center; gap: 26px; }
.front-search label { flex: 1; font: normal clamp(20px,1.8vw,25px)/1.25 Georgia,serif; }
.front-search-line { flex: 1.55; display: flex; gap: 6px; }
.front-search input { width: 100%; min-width: 0; border: 1px solid #9faebd; border-radius: 4px; padding: 11px 13px; background: #fffefa; color: var(--ink); font-size: 16px; }
.front-search input::placeholder { color: #576476; }
.front-search button { min-height: 44px; padding: 8px 16px; border: 1px solid #27466d; border-radius: 4px; color: #fff; background: #244263; font-size: 14px; font-weight: 600; }
.front-search button:hover { background: #18314f; }
.front-topics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); column-gap: 24px; margin-block: 8px 15px; }
.front-topics a { padding: 20px 4px; display: grid; grid-template-columns: 29px 1fr 16px; gap: 13px; align-items: center; text-decoration: none; color: var(--ink); border-bottom: 1px solid var(--line); }
.front-topics svg { color: var(--blue); width: 24px; height: 24px; }
.front-topics strong { display: block; font: normal 23px/1.2 Georgia,serif; letter-spacing: -.035em; }
.front-topics small { display: block; margin-top: 3px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.front-topics i { font-style: normal; color: var(--blue); }
.front-topics a:hover strong { text-decoration: underline; text-underline-offset: 3px; color: var(--blue); }
.front-measures { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; }
.front-situations { padding-block: clamp(30px,3vw,46px); background: #edf1f6; border-block: 1px solid #d4dce3; }
.front-situation-grid { display: grid; grid-template-columns: 1fr .9fr; align-items: center; gap: clamp(24px,8vw,120px); }
.front-situation-grid p { margin-block: 12px 5px; color: var(--muted); font-size: 16px; line-height: 1.6; max-width: 52ch; }
.front-situations ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid #b9c8d7; }
.front-situations li { border-bottom: 1px solid #b9c8d7; }
.front-situations li a { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 3px; color: var(--blue); font-size: 16px; font-weight: 600; text-decoration: none; }
.front-situations li a:hover { text-decoration: underline; text-underline-offset: 3px; }
.front-calendar { padding-top: 0; }
.front-calendar .time-track a { padding-bottom: 6px; }
@media (max-width: 1000px) {
  .front-topics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .front-highlights a { align-items: flex-start; flex-direction: column; gap: 5px; }
}
@media (max-width: 760px) {
  .front-hero-grid { grid-template-columns: 1fr; gap: 18px; }
  .front-art { max-width: 440px; width: 100%; justify-self: center; }
  .front-search { display: block; }
  .front-search-line { margin-top: 10px; }
  .front-situation-grid { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 550px) {
  .front-hero-grid { padding-block: 29px 20px; }
  .front-hero h1 { font-size: clamp(45px,11.6vw,63px); margin-block: 14px; }
  .front-actions { gap: 8px; margin-top: 20px; }
  .front-actions .cta { min-height: 44px; padding: 10px 12px; font-size: 14px; }
  .front-art { width: min(100%, 315px); }
  .front-art figcaption { font-size: 10px; }
  .front-highlights-grid { grid-template-columns: 1fr; padding-block: 4px; }
  .front-highlights a, .front-highlights a + a { display: grid; grid-template-columns: 95px 1fr; gap: 14px; align-items: center; padding: 12px 0; border-inline-start: 0; }
  .front-highlights a + a { border-top: 1px solid #c9d1cf; }
  .front-highlights strong { font-size: 32px; }
  .front-heading { display: block; margin-bottom: 12px; }
  .front-heading .text-link { padding-block: 9px; }
  .front-topics { grid-template-columns: 1fr; margin-top: 1px; }
  .front-topics a { padding-block: 14px; }
  .front-search { padding: 13px; }
  .front-search-line { flex-wrap: wrap; }
  .front-search input { flex: 1 1 178px; }
  .front-search button { flex: 1 1 auto; padding-inline: 10px; }
  .front-calendar .time-track { padding-left: 3px; }
}
