.elementor-kit-739{--e-global-color-primary:#0E1116;--e-global-color-secondary:#5B6472;--e-global-color-text:#11151B;--e-global-color-accent:#DA291C;--e-global-color-hnpaper:#FFFFFF;--e-global-color-hnmist:#F3F4F6;--e-global-color-hnrule:#E3E6EA;--e-global-color-hnink2:#171B22;--e-global-color-hnink3:#252B35;--e-global-color-hndeep:#07090C;--e-global-color-hnmuted:#AEB5C0;--e-global-color-hnmeta:#8A93A1;--e-global-color-hnstand:#39414D;--e-global-color-hntint:#FFE3E0;--e-global-typography-primary-font-family:"Inter Tight";--e-global-typography-primary-font-size:60px;--e-global-typography-primary-font-weight:800;--e-global-typography-primary-line-height:1.02em;--e-global-typography-primary-letter-spacing:-0.025em;--e-global-typography-secondary-font-family:"Inter Tight";--e-global-typography-secondary-font-size:22px;--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.2em;--e-global-typography-secondary-letter-spacing:-0.012em;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.6em;--e-global-typography-accent-font-family:"IBM Plex Mono";--e-global-typography-accent-font-size:11px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0.08em;--e-global-typography-hnlead-font-family:"Inter Tight";--e-global-typography-hnlead-font-size:44px;--e-global-typography-hnlead-font-weight:800;--e-global-typography-hnlead-line-height:1.05em;--e-global-typography-hnlead-letter-spacing:-0.025em;--e-global-typography-hnarch-font-family:"Inter Tight";--e-global-typography-hnarch-font-size:96px;--e-global-typography-hnarch-font-weight:800;--e-global-typography-hnarch-line-height:0.9em;--e-global-typography-hnarch-letter-spacing:-0.04em;--e-global-typography-hnsec-font-family:"Inter Tight";--e-global-typography-hnsec-font-size:34px;--e-global-typography-hnsec-font-weight:800;--e-global-typography-hnsec-line-height:1em;--e-global-typography-hnsec-letter-spacing:-0.025em;--e-global-typography-hnlg-font-family:"Inter Tight";--e-global-typography-hnlg-font-size:38px;--e-global-typography-hnlg-font-weight:700;--e-global-typography-hnlg-line-height:1.08em;--e-global-typography-hnlg-letter-spacing:-0.02em;--e-global-typography-hnsm-font-family:"Inter Tight";--e-global-typography-hnsm-font-size:16px;--e-global-typography-hnsm-font-weight:700;--e-global-typography-hnsm-line-height:1.28em;--e-global-typography-hnsm-letter-spacing:-0.005em;--e-global-typography-hnwire-font-family:"Inter Tight";--e-global-typography-hnwire-font-size:15px;--e-global-typography-hnwire-font-weight:600;--e-global-typography-hnwire-line-height:1.28em;--e-global-typography-hnquote-font-family:"Inter Tight";--e-global-typography-hnquote-font-size:28px;--e-global-typography-hnquote-font-weight:700;--e-global-typography-hnquote-line-height:1.3em;--e-global-typography-hnquote-letter-spacing:-0.015em;--e-global-typography-hnnav-font-family:"Inter Tight";--e-global-typography-hnnav-font-size:14px;--e-global-typography-hnnav-font-weight:600;--e-global-typography-hnnav-line-height:1em;--e-global-typography-hnnav-letter-spacing:0.01em;--e-global-typography-hnbtn-font-family:"Inter Tight";--e-global-typography-hnbtn-font-size:14px;--e-global-typography-hnbtn-font-weight:700;--e-global-typography-hnbtn-line-height:1em;--e-global-typography-hnbtn-letter-spacing:0.01em;--e-global-typography-hnstf-font-family:"Inter";--e-global-typography-hnstf-font-size:21px;--e-global-typography-hnstf-font-weight:400;--e-global-typography-hnstf-line-height:1.5em;--e-global-typography-hnprose-font-family:"Inter";--e-global-typography-hnprose-font-size:18px;--e-global-typography-hnprose-font-weight:400;--e-global-typography-hnprose-line-height:1.72em;--e-global-typography-hndek-font-family:"Inter";--e-global-typography-hndek-font-size:15px;--e-global-typography-hndek-font-weight:400;--e-global-typography-hndek-line-height:1.5em;--e-global-typography-hnbodys-font-family:"Inter";--e-global-typography-hnbodys-font-size:14px;--e-global-typography-hnbodys-font-weight:400;--e-global-typography-hnbodys-line-height:1.6em;--e-global-typography-hnmeta-font-family:"IBM Plex Mono";--e-global-typography-hnmeta-font-size:12px;--e-global-typography-hnmeta-font-weight:500;--e-global-typography-hnmeta-text-transform:uppercase;--e-global-typography-hnmeta-line-height:1.4em;--e-global-typography-hnmeta-letter-spacing:0.04em;--e-global-typography-hnlang-font-family:"IBM Plex Mono";--e-global-typography-hnlang-font-size:10px;--e-global-typography-hnlang-font-weight:600;--e-global-typography-hnlang-text-transform:uppercase;--e-global-typography-hnlang-line-height:1em;--e-global-typography-hnlang-letter-spacing:0.06em;--e-global-typography-hnwiret-font-family:"IBM Plex Mono";--e-global-typography-hnwiret-font-size:13px;--e-global-typography-hnwiret-font-weight:700;--e-global-typography-hnwiret-text-transform:uppercase;--e-global-typography-hnwiret-line-height:1em;--e-global-typography-hnwiret-letter-spacing:0.14em;background-color:var( --e-global-color-hnpaper );color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-739 button,.elementor-kit-739 input[type="button"],.elementor-kit-739 input[type="submit"],.elementor-kit-739 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-hnbtn-font-family ), Sans-serif;font-size:var( --e-global-typography-hnbtn-font-size );font-weight:var( --e-global-typography-hnbtn-font-weight );line-height:var( --e-global-typography-hnbtn-line-height );letter-spacing:var( --e-global-typography-hnbtn-letter-spacing );color:var( --e-global-color-hnpaper );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-primary );border-radius:3px 3px 3px 3px;padding:12px 20px 12px 20px;}.elementor-kit-739 button:hover,.elementor-kit-739 button:focus,.elementor-kit-739 input[type="button"]:hover,.elementor-kit-739 input[type="button"]:focus,.elementor-kit-739 input[type="submit"]:hover,.elementor-kit-739 input[type="submit"]:focus,.elementor-kit-739 .elementor-button:hover,.elementor-kit-739 .elementor-button:focus{background-color:var( --e-global-color-accent );color:var( --e-global-color-hnpaper );}.elementor-kit-739 e-page-transition{background-color:#FFBC7D;}.elementor-kit-739 a{color:var( --e-global-color-text );}.elementor-kit-739 a:hover{color:var( --e-global-color-accent );}.elementor-kit-739 h1{color:var( --e-global-color-text );font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-739 h2{color:var( --e-global-color-text );font-family:var( --e-global-typography-hnlg-font-family ), Sans-serif;font-size:var( --e-global-typography-hnlg-font-size );font-weight:var( --e-global-typography-hnlg-font-weight );line-height:var( --e-global-typography-hnlg-line-height );letter-spacing:var( --e-global-typography-hnlg-letter-spacing );}.elementor-kit-739 h3{color:var( --e-global-color-text );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-739 h4{color:var( --e-global-color-text );font-family:var( --e-global-typography-hnsm-font-family ), Sans-serif;font-size:var( --e-global-typography-hnsm-font-size );font-weight:var( --e-global-typography-hnsm-font-weight );line-height:var( --e-global-typography-hnsm-line-height );letter-spacing:var( --e-global-typography-hnsm-letter-spacing );}.elementor-kit-739 h5{color:#11151B;font-family:"IBM Plex Mono", Sans-serif;font-size:13px;font-weight:700;text-transform:uppercase;line-height:1em;letter-spacing:0.12em;}.elementor-kit-739 h6{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-739 img{border-radius:0px 0px 0px 0px;}.elementor-kit-739 img:hover{opacity:1;}.elementor-kit-739 label{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-hnmeta-font-family ), Sans-serif;font-size:var( --e-global-typography-hnmeta-font-size );font-weight:var( --e-global-typography-hnmeta-font-weight );text-transform:var( --e-global-typography-hnmeta-text-transform );line-height:var( --e-global-typography-hnmeta-line-height );letter-spacing:var( --e-global-typography-hnmeta-letter-spacing );}.elementor-kit-739 input:not([type="button"]):not([type="submit"]),.elementor-kit-739 textarea,.elementor-kit-739 .elementor-field-textual{font-family:"Inter", Sans-serif;font-size:16px;font-weight:500;line-height:1.4em;color:var( --e-global-color-text );background-color:var( --e-global-color-hnpaper );border-style:solid;border-width:1px 1px 1px 1px;border-color:var( --e-global-color-hnrule );border-radius:4px 4px 4px 4px;padding:12px 14px 12px 14px;}.elementor-kit-739 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-739 textarea:focus,.elementor-kit-739 .elementor-field-textual:focus{background-color:#FFFFFF;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;--container-default-padding-top:0px;--container-default-padding-right:32px;--container-default-padding-bottom:0px;--container-default-padding-left:32px;}.elementor-widget:not(:last-child){--kit-widget-spacing:24px;}.elementor-element{--widgets-spacing:24px 24px;--widgets-spacing-row:24px;--widgets-spacing-column:24px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-lightbox{background-color:rgba(14,17,22,0.96);--lightbox-ui-color:#AEB5C0;--lightbox-ui-color-hover:#FFFFFF;--lightbox-text-color:#AEB5C0;}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-739{--e-global-typography-primary-font-size:46px;--e-global-typography-secondary-font-size:20px;--e-global-typography-hnlead-font-size:34px;--e-global-typography-hnarch-font-size:72px;--e-global-typography-hnsec-font-size:30px;--e-global-typography-hnlg-font-size:30px;--e-global-typography-hnquote-font-size:24px;--e-global-typography-hnstf-font-size:19px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-739 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-739 h2{font-size:var( --e-global-typography-hnlg-font-size );line-height:var( --e-global-typography-hnlg-line-height );letter-spacing:var( --e-global-typography-hnlg-letter-spacing );}.elementor-kit-739 h3{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-739 h4{font-size:var( --e-global-typography-hnsm-font-size );line-height:var( --e-global-typography-hnsm-line-height );letter-spacing:var( --e-global-typography-hnsm-letter-spacing );}.elementor-kit-739 h6{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-739 button,.elementor-kit-739 input[type="button"],.elementor-kit-739 input[type="submit"],.elementor-kit-739 .elementor-button{font-size:var( --e-global-typography-hnbtn-font-size );line-height:var( --e-global-typography-hnbtn-line-height );letter-spacing:var( --e-global-typography-hnbtn-letter-spacing );}.elementor-kit-739 label{font-size:var( --e-global-typography-hnmeta-font-size );line-height:var( --e-global-typography-hnmeta-line-height );letter-spacing:var( --e-global-typography-hnmeta-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;--container-default-padding-top:0px;--container-default-padding-right:24px;--container-default-padding-bottom:0px;--container-default-padding-left:24px;}}@media(max-width:767px){.elementor-kit-739{--e-global-typography-primary-font-size:34px;--e-global-typography-secondary-font-size:19px;--e-global-typography-hnlead-font-size:28px;--e-global-typography-hnarch-font-size:44px;--e-global-typography-hnsec-font-size:26px;--e-global-typography-hnlg-font-size:26px;--e-global-typography-hnquote-font-size:22px;--e-global-typography-hnstf-font-size:18px;--e-global-typography-hnprose-font-size:17px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-739 h1{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-kit-739 h2{font-size:var( --e-global-typography-hnlg-font-size );line-height:var( --e-global-typography-hnlg-line-height );letter-spacing:var( --e-global-typography-hnlg-letter-spacing );}.elementor-kit-739 h3{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-kit-739 h4{font-size:var( --e-global-typography-hnsm-font-size );line-height:var( --e-global-typography-hnsm-line-height );letter-spacing:var( --e-global-typography-hnsm-letter-spacing );}.elementor-kit-739 h6{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-kit-739 button,.elementor-kit-739 input[type="button"],.elementor-kit-739 input[type="submit"],.elementor-kit-739 .elementor-button{font-size:var( --e-global-typography-hnbtn-font-size );line-height:var( --e-global-typography-hnbtn-line-height );letter-spacing:var( --e-global-typography-hnbtn-letter-spacing );}.elementor-kit-739 label{font-size:var( --e-global-typography-hnmeta-font-size );line-height:var( --e-global-typography-hnmeta-line-height );letter-spacing:var( --e-global-typography-hnmeta-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;--container-default-padding-top:0px;--container-default-padding-right:16px;--container-default-padding-bottom:0px;--container-default-padding-left:16px;}}
/* Start custom CSS *//* ==========================================================================
   Helvetica News — Site Settings → Custom CSS (Elementor Pro)
   Utility classes applied via Advanced → CSS Classes. Only what Global
   Colors / Global Fonts / widget controls cannot express. All values come
   from the Global tokens (--e-global-*), so editing a global updates this.
   ========================================================================== */

/* ---------- Tokens not covered by globals ---------- */
:root {
  --hn-gap: 24px;
  --hn-rule-w: 4px;
  --hn-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Section tag: red square + mono label ----------
   Use on: Post Terms (Pro «Post Info» → Terms), Heading, Text. Class: hn-tag */
.hn-tag,
.hn-tag .elementor-heading-title,
.hn-tag .elementor-icon-list-text,
.hn-tag a {
  font-family: var(--e-global-typography-accent-font-family), monospace;
  font-size: var(--e-global-typography-accent-font-size);
  font-weight: var(--e-global-typography-accent-font-weight);
  letter-spacing: var(--e-global-typography-accent-letter-spacing);
  text-transform: uppercase;
  line-height: 1;
  color: var(--e-global-color-text);
}
.hn-tag .elementor-heading-title::before,
.hn-tag .elementor-icon-list-text::before,
.hn-tag.hn-tag--plain::before {
  content: "";
  display: inline-block;
  width: 8px; height: 8px;
  margin-right: 6px;
  background: var(--e-global-color-accent);
  vertical-align: 0;
}
.hn-dark .hn-tag,
.hn-dark .hn-tag .elementor-heading-title,
.hn-dark .hn-tag a { color: #fff; }

/* ---------- Language badge (EN / FR / DE) — class: hn-lang ---------- */
.hn-lang .elementor-heading-title,
.hn-lang .elementor-icon-list-text,
.hn-lang a {
  display: inline-block;
  padding: 3px 5px;
  border: 1px solid currentColor;
  border-radius: 2px;
  font-family: var(--e-global-typography-hnlang-font-family), monospace;
  font-size: var(--e-global-typography-hnlang-font-size);
  font-weight: var(--e-global-typography-hnlang-font-weight);
  letter-spacing: var(--e-global-typography-hnlang-letter-spacing);
  text-transform: uppercase;
  line-height: 1;
  color: var(--e-global-color-secondary);
}
.hn-dark .hn-lang .elementor-heading-title,
.hn-dark .hn-lang a { color: var(--e-global-color-hnmeta); }

/* ---------- Meta line (date, read time, place) — class: hn-meta ---------- */
.hn-meta,
.hn-meta .elementor-icon-list-text,
.hn-meta .elementor-heading-title {
  font-family: var(--e-global-typography-hnmeta-font-family), monospace;
  font-size: var(--e-global-typography-hnmeta-font-size);
  font-weight: var(--e-global-typography-hnmeta-font-weight);
  letter-spacing: var(--e-global-typography-hnmeta-letter-spacing);
  text-transform: uppercase;
  color: var(--e-global-color-secondary);
}
.hn-dark .hn-meta .elementor-icon-list-text { color: var(--e-global-color-hnmeta); }

/* ---------- Section head: 4px rule on top — class on container: hn-sec-head ---------- */
.hn-sec-head { border-top: var(--hn-rule-w) solid var(--e-global-color-text); padding-top: 14px; }
.hn-dark .hn-sec-head, .hn-sec-head.hn-dark { border-top-color: #fff; }

/* "All companies →" link — Button widget, class: hn-more */
.hn-more .elementor-button {
  background: none !important; border: 0 !important; padding: 0 0 4px !important;
  color: var(--e-global-color-text) !important;
  font-family: var(--e-global-typography-hnmeta-font-family), monospace;
  font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
}
.hn-more .elementor-button::after { content: " →"; display: inline-block; transition: transform .2s var(--hn-ease); }
.hn-more .elementor-button:hover { color: var(--e-global-color-accent) !important; }
.hn-more .elementor-button:hover::after { transform: translateX(4px); }
.hn-dark .hn-more .elementor-button { color: #fff !important; }

/* ---------- Button variants (on the Button widget) ----------
   default  → ink fill, red on hover (Site Settings → Buttons)
   hn-btn--outline → transparent, ink border
   hn-btn--light   → white fill for dark/red bands
   hn-btn--red     → Swiss Red fill                                   */
.hn-btn--outline .elementor-button { background: transparent; color: var(--e-global-color-primary); border-color: var(--e-global-color-primary); }
.hn-btn--outline .elementor-button:hover { background: var(--e-global-color-primary); color: #fff; border-color: var(--e-global-color-primary); }
.hn-btn--light .elementor-button { background: #fff; color: var(--e-global-color-primary); border-color: #fff; }
.hn-btn--light .elementor-button:hover { background: var(--e-global-color-primary); color: #fff; border-color: var(--e-global-color-primary); }
.hn-btn--red .elementor-button { background: var(--e-global-color-accent); border-color: var(--e-global-color-accent); color: #fff; }
.hn-btn--red .elementor-button:hover { background: var(--e-global-color-primary); border-color: var(--e-global-color-primary); }
.elementor-button:focus-visible { outline: 2px solid var(--e-global-color-accent); outline-offset: 3px; }

/* Round icon buttons (share, carousel arrows) — class: hn-round */
.hn-round .elementor-button,
.hn-round .elementor-share-btn {
  width: 40px; height: 40px; padding: 0 !important; border-radius: 50% !important;
  display: inline-grid; place-items: center;
}

/* ---------- Chips: tags + Taxonomy Filter — class: hn-chips ---------- */
.hn-chips .e-filter-item,
.hn-chips .elementor-post-info__terms-list-item,
.hn-chip .elementor-button {
  font-family: var(--e-global-typography-hnmeta-font-family), monospace;
  font-size: 12px; font-weight: 600; letter-spacing: .04em; line-height: 1;
  padding: 8px 12px; border: 1px solid var(--e-global-color-hnrule); border-radius: 999px;
  background: #fff; color: var(--e-global-color-text); text-transform: none;
}
.hn-chips .e-filter-item[aria-pressed="true"],
.hn-chips .e-filter-item:hover,
.hn-chip .elementor-button:hover { background: var(--e-global-color-primary); border-color: var(--e-global-color-primary); color: #fff; }

/* Compact dark filter (The Wire) — class: hn-chips hn-chips--wire */
.hn-chips--wire .e-filter-item { padding: 5px 6px; font-size: 10px; border-radius: 2px; background: none; border-color: var(--e-global-color-hnink3); color: var(--e-global-color-hnmeta); }
.hn-chips--wire .e-filter-item[aria-pressed="true"] { background: #fff; color: var(--e-global-color-primary); border-color: #fff; }

/* ---------- Cards (Loop Item templates) — class on loop item root: hn-card ---------- */
.hn-card { position: relative; }
.hn-card .elementor-widget-theme-post-featured-image,
.hn-card .elementor-widget-image { overflow: hidden; }
.hn-card img { transition: transform .5s var(--hn-ease); }
.hn-card:hover img { transform: scale(1.04); }
.hn-card .elementor-heading-title a:hover { color: var(--e-global-color-accent); }
/* Whole card clickable: put hn-stretch on the Post Title widget */
.hn-stretch a::after { content: ""; position: absolute; inset: 0; z-index: 1; }

/* Lead story body — 4px red rule above the text block — class: hn-lead-body */
.hn-lead-body { border-top: var(--hn-rule-w) solid var(--e-global-color-accent); }
.hn-lead-body .elementor-heading-title a:hover {
  color: #fff; text-decoration: underline; text-decoration-color: var(--e-global-color-accent);
  text-decoration-thickness: 3px; text-underline-offset: 6px;
}

/* ---------- The Wire (signature feed) — class on Loop Grid: hn-wire ---------- */
.hn-wire .e-loop-item { border-bottom: 1px solid var(--e-global-color-hnink3); transition: background .15s; }
.hn-wire .e-loop-item:hover { background: var(--e-global-color-hnink2); }
.hn-wire-title .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; }
.hn-wire-title .elementor-heading-title::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%;
  background: var(--e-global-color-accent); animation: hn-pulse 2s infinite;
}
@keyframes hn-pulse {
  0% { box-shadow: 0 0 0 0 rgba(218, 41, 28, .6); }
  70% { box-shadow: 0 0 0 8px rgba(218, 41, 28, 0); }
  100% { box-shadow: 0 0 0 0 rgba(218, 41, 28, 0); }
}

/* ---------- Most read (numbers = real ranking) — class on Loop Grid: hn-ranked ---------- */
.hn-ranked .elementor-loop-container { counter-reset: hnr; }
.hn-ranked .e-loop-item { counter-increment: hnr; display: grid; grid-template-columns: 36px 1fr; gap: 8px; padding: 14px 0; border-top: 1px solid var(--e-global-color-hnrule); }
.hn-ranked .e-loop-item:first-child { border-top: 0; }
.hn-ranked .e-loop-item::before {
  content: counter(hnr);
  font-family: var(--e-global-typography-primary-font-family), sans-serif;
  font-weight: 800; font-size: 28px; line-height: 1; letter-spacing: -.04em;
  color: var(--e-global-color-accent);
}

/* ---------- Row cards list: hairline between items — class on Loop Grid: hn-rows ---------- */
.hn-rows .e-loop-item + .e-loop-item { border-top: 1px solid var(--e-global-color-hnrule); padding-top: 16px; }

/* ---------- Header (Theme Builder) — class on header container: hn-header ---------- */
.hn-header { border-bottom: 3px solid var(--e-global-color-accent); transition: box-shadow .2s; }
.hn-header.elementor-sticky--effects { box-shadow: 0 6px 24px rgba(0, 0, 0, .25); }
.hn-header .elementor-nav-menu--main .elementor-item::after { background-color: var(--e-global-color-accent) !important; height: 2px !important; }

/* Ticker (Loop Carousel in the top bar) — class: hn-ticker */
.hn-ticker { -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.hn-ticker .swiper-wrapper { transition-timing-function: linear !important; }
.hn-ticker .swiper-slide { width: auto !important; }
/* Ticker flex child must be allowed to shrink inside the top bar (HN – Header) */
.hn-ticker { min-width: 0; overflow: hidden; }
.e-con > .elementor-widget-loop-carousel.hn-ticker { flex: 1 1 0 !important; width: 0 !important; max-width: none; }
.hn-ticker-title .elementor-heading-title { text-transform: none !important; letter-spacing: .02em !important; }
.hn-topbar .elementor-social-icon svg { fill: currentColor; }

/* Top bar container of HN – Header — class: hn-topbar. Date + ticker headlines on one line */
.hn-topbar .elementor-heading-title { white-space: nowrap; }

/* Shrink 72 → 56 px when Elementor sticky scroll effects kick in (offset 60, HN – Header main bar) */
.hn-header { transition: box-shadow .2s, min-height .2s; }
.hn-header.elementor-sticky--effects { --min-height: 56px !important; min-height: 56px !important; }

/* ---------- Footer (Theme Builder, HN – Footer) ---------- */
/* Text Editor paragraphs in the footer: no trailing margin (container gaps do the spacing) */
.hn-footer .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Footer column headings (h4 mono) — class: hn-foot-head. hnwiret global is 13px / .14em */
.hn-foot-head .elementor-heading-title { font-size: 12px !important; letter-spacing: .12em !important; }

/* Footer link lists (Nav Menu vertical + Editor's pick Loop Grid) — class: hn-foot-links */
.hn-foot-links .elementor-nav-menu--main .elementor-item { padding: 5px 0 !important; min-height: 0; }
.hn-foot-links .elementor-nav-menu--main .elementor-item::before,
.hn-foot-links .elementor-nav-menu--main .elementor-item::after { display: none !important; }
.hn-foot-links.elementor-widget-loop-grid .elementor-heading-title a { display: block; padding: 5px 0; }

/* ---------- Article (Single Post) ---------- */
/* Post Content widget — class: hn-prose */
.hn-prose { max-width: 70ch; }
.hn-prose > .elementor-widget-container > p:first-of-type::first-letter,
.hn-prose > p:first-of-type::first-letter {
  float: left; margin: 6px 6px 0 0;
  font-family: var(--e-global-typography-primary-font-family), sans-serif;
  font-weight: 800; font-size: 64px; line-height: .85; color: var(--e-global-color-accent);
}
.hn-prose h2 { margin: 44px 0 12px; }
.hn-prose p { margin: 0 0 20px; }
.hn-prose blockquote {
  margin: 36px 0; padding: 4px 0 4px 24px; border-left: 4px solid var(--e-global-color-accent);
  font-family: var(--e-global-typography-hnquote-font-family), sans-serif;
  font-size: var(--e-global-typography-hnquote-font-size);
  font-weight: var(--e-global-typography-hnquote-font-weight);
  line-height: var(--e-global-typography-hnquote-line-height);
  letter-spacing: var(--e-global-typography-hnquote-letter-spacing);
}
.hn-prose blockquote cite {
  display: block; margin-top: 12px; font-style: normal;
  font-family: var(--e-global-typography-hnmeta-font-family), monospace;
  font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--e-global-color-secondary);
}
.hn-prose figcaption, .hn-caption .widget-image-caption {
  font-family: var(--e-global-typography-hnmeta-font-family), monospace;
  font-size: 12px; line-height: 1.5; color: var(--e-global-color-secondary); padding-top: 10px; text-align: left;
}
/* Legacy post content (2014–2021): layout tables and [caption] figures must not overflow on phones.
   Found on post #658 (table with captioned images → 919px scrollWidth at 390). */
.hn-prose img { max-width: 100%; height: auto; }
.hn-prose .wp-caption { max-width: 100% !important; }
.hn-prose table { max-width: 100%; }
@media (max-width: 767px) {
  .hn-prose table, .hn-prose tbody, .hn-prose tr, .hn-prose td { display: block; width: 100% !important; }
  .hn-prose .wp-caption.alignleft, .hn-prose .wp-caption.alignright,
  .hn-prose img.alignleft, .hn-prose img.alignright { float: none; margin: 0 0 16px; }
}
/* Q&A block inside content: wrap in a Group block with class hn-qa */
.hn-qa { background: var(--e-global-color-hnmist); padding: 28px; margin: 36px 0; border-top: 4px solid var(--e-global-color-accent); }

/* Company file (HN – Single aside; SCF fields via ACF dynamic tags) — box: hn-fact, title Heading: hn-fact-title */
.hn-fact-title .elementor-heading-title { display: flex; align-items: center; gap: 8px; letter-spacing: .12em !important; font-size: 12px !important; }
.hn-fact-title .elementor-heading-title::before { content: ""; flex: none; width: 8px; height: 8px; background: var(--e-global-color-accent); }

/* Reading progress — Progress Tracker widget, class: hn-progress */
.hn-progress { position: fixed !important; top: 0; left: 0; right: 0; z-index: 9999; }
.hn-progress .elementor-scrolling-tracker { border-radius: 0; }

/* Image ratios (Featured Image widget has no aspect-ratio control) — HN – Card: hn-img-3x2, HN – Single: hn-img-16x8 */
.hn-img-3x2 img, .hn-img-16x8 img { display: block; width: 100%; height: auto; object-fit: cover; }
.hn-img-3x2 img { aspect-ratio: 3 / 2; }
.hn-img-16x8 img { aspect-ratio: 16 / 8; }

/* HN – Single: H1 caps at 56px (global primary is 60/46/34) — class on Post Title: hn-post-title */
.hn-post-title .elementor-heading-title { font-size: clamp(32px, 4.2vw, 56px) !important; }
/* Standfirst — class on Post Excerpt: hn-standfirst. Elementor skips the widget when the post has
   no manual excerpt (apply_to_post_content = no), so nothing to hide. */
.hn-standfirst { max-width: 62ch; }
.hn-standfirst p:last-child { margin-bottom: 0; }

/* Share Buttons (flat skin, circle) — class: hn-round hn-share. Hairline ring like the mockup */
.hn-share .elementor-share-btn { width: 36px; height: 36px; border: 1px solid var(--e-global-color-hnrule); }
.hn-share .elementor-share-btn:hover { border-color: var(--e-global-color-primary); }
.hn-share .elementor-share-btn__icon { width: auto; font-size: 15px; }
.hn-share .elementor-share-btn__icon svg { width: 15px; height: 15px; }

/* Tag chips from Post Info → Terms (post_tag) — class: hn-chips. Hides the ", " text nodes between links */
.hn-chips .elementor-post-info__terms-list { display: flex; flex-wrap: wrap; gap: 8px; font-size: 0; }
.hn-chips .elementor-post-info__terms-list .elementor-post-info__terms-list-item { display: inline-block; font-size: 12px !important; line-height: 1 !important; }
.hn-chips a.elementor-post-info__terms-list-item:hover { background: var(--e-global-color-primary); border-color: var(--e-global-color-primary); color: #fff; }

/* Box heading (Most read) — class: hn-box-head. hnwiret global is 13px / .14em */
.hn-box-head .elementor-heading-title { letter-spacing: .12em !important; }

/* Breadcrumbs (Yoast) — class: hn-crumbs */
.hn-crumbs #breadcrumbs { margin: 0; text-transform: uppercase; }

/* ---------- Archive ---------- */
.hn-arch-title .elementor-heading-title { display: flex; align-items: center; gap: 18px; }
.hn-arch-title .elementor-heading-title::before { content: ""; width: .36em; height: .36em; background: var(--e-global-color-accent); flex: none; }
.hn-tabs .elementor-item-active { border-bottom: 3px solid var(--e-global-color-accent); }
.hn-tabs .elementor-item::after { display: none !important; }
/* HN – Archive / HN – Search results (build_archive.py) */
.hn-arch-title .elementor-heading-title { margin: 0; overflow-wrap: anywhere; }
.hn-search-title .elementor-heading-title { font-size: clamp(36px, 5.5vw, 72px) !important; } /* long search terms */
.hn-arch-desc { max-width: 52ch; }
.hn-arch-desc p:last-child { margin-bottom: 0; }
/* Section tabs (Nav Menu footer-sections): 3px red underline on the current section, no pointer, scroll if narrow */
.hn-tabs .elementor-nav-menu--main .elementor-nav-menu { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.hn-tabs .elementor-item { border-bottom: 3px solid transparent; white-space: nowrap; }
.hn-tabs .elementor-item.elementor-item-active { border-bottom-color: var(--e-global-color-accent); }
/* Language chips (Button widgets, ?hn_language=xx). Hidden on /page/N/ so a filter never opens an empty page */
.hn-chip .elementor-button { line-height: 1; letter-spacing: .04em; text-transform: none !important; }
body.paged .hn-lang-filter { display: none; }
.hn-toolbar > .e-con.hn-lang-filter { --width: auto; width: auto; }
/* Feature wide (alternate template, first item of the archive Loop Grid) */
/* the Featured Image link is inline-block: make it block so small originals still fill the column */
.elementor-widget.hn-img-3x2 a, .elementor-widget.hn-img-16x10 a { display: block; }
.hn-img-16x10 img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.hn-dek p { margin: 0; }
.hn-arch-grid .e-loop-item:has(.hn-feature-wide) { margin-bottom: 8px; }
/* Nothing found (mockup .empty) */
.hn-arch-grid .e-loop-nothing-found-message { background: var(--e-global-color-hnmist); padding: 40px 24px; }
.hn-arch-grid .e-loop-nothing-found-message__text { margin: 0; }
/* Numbered pagination: hide the disabled Previous/Next placeholders (mockup: 1 2 3 Next →) */
.elementor-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.elementor-pagination span.page-numbers.prev, .elementor-pagination span.page-numbers.next { display: none; }
.elementor-pagination a.page-numbers:hover { border-color: var(--e-global-color-primary); }

/* Pagination (Loop Grid / Archive Posts) */
.elementor-pagination .page-numbers {
  min-width: 40px; height: 40px; display: inline-grid; place-items: center; padding: 0 12px;
  border: 1px solid var(--e-global-color-hnrule); border-radius: 3px;
  font-family: var(--e-global-typography-hnmeta-font-family), monospace; font-size: 13px; font-weight: 600;
}
.elementor-pagination .page-numbers.current { background: var(--e-global-color-primary); border-color: var(--e-global-color-primary); color: #fff; }

/* ---------- Home (page "Home", build_home.py) ---------- */
/* Visually hidden heading (the home's only H1, in the hero) — class: hn-sr-only */
.hn-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important;
  overflow: hidden !important; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0 !important; }
/* Image ratios for the new Loop Items: HN – Lead 16:9, HN – Feature 4:3, HN – Portrait 5:4, HN – Row 112px square */
.hn-img-16x9 img, .hn-img-4x3 img, .hn-img-5x4 img, .hn-img-sq img { display: block; width: 100%; height: auto; object-fit: cover; }
.hn-img-16x9 img { aspect-ratio: 16 / 9; }
.hn-img-4x3 img { aspect-ratio: 4 / 3; }
.hn-img-5x4 img { aspect-ratio: 5 / 4; }
.hn-img-sq img { aspect-ratio: 1; }
.elementor-widget.hn-img-16x9 a, .elementor-widget.hn-img-4x3 a, .elementor-widget.hn-img-5x4 a, .elementor-widget.hn-img-sq a { display: block; }
.e-con > .elementor-widget.hn-img-sq { flex: 0 0 112px; width: 112px; max-width: 112px; }
/* Hero: lead headline measure (mockup 26ch) */
.hn-lead-title .elementor-heading-title { max-width: 26ch; }
/* The Wire box stretches to the lead's height; the grid takes the free space */
.hn-wire-box { min-height: 100%; }
.hn-wire-box > .elementor-widget-loop-grid { flex: 1 1 auto; }
.hn-wire-headline .elementor-heading-title a:hover { color: #fff; text-decoration: underline; }
.hn-wire .e-loop-nothing-found-message { padding: 16px 18px; }
.hn-dark .hn-wire-more .elementor-button { color: var(--e-global-color-hnmuted) !important; letter-spacing: .06em; }
.hn-dark .hn-wire-more .elementor-button:hover { color: #fff !important; }
/* The Wire language chips (Buttons -> /language/xx/; the Taxonomy Filter could not be used, see README) */
.hn-wire-box .hn-wire-langs { --width: auto; width: auto; }
.hn-wire-chip .elementor-button { line-height: 1; min-width: 0; }
/* Section head text (hn-sec-head): mockup max 52ch; the dek sits under the h2 */
.hn-sec-dek { max-width: 52ch; }
/* Flex children of rows default to --width:100% (full containers): let them share the row */
.hn-sec-head > .hn-sec-head-text { --width: auto; width: auto; flex: 1 1 0; min-width: 0; }
.hn-row > .hn-row-body { --width: auto; width: auto; flex: 1 1 0; min-width: 0; }
/* hn-more: keep the arrow on the text line (the ::after sat under the text in narrow wrappers) */
.hn-more .elementor-button { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.hn-more .elementor-button::after { content: "→"; }
/* Companies grid: "Most read" box spans both columns on tablet — class: hn-span-all-tablet */
@media (min-width: 768px) and (max-width: 1024px) { .hn-span-all-tablet { grid-column: 1 / -1; } }
/* Events Loop Carousel arrows (moved up into the section head by the widget's position controls) — class: hn-rail */
.hn-rail .elementor-swiper-button { width: 40px; height: 40px; display: grid; place-items: center; transition: background .2s, color .2s; }
.hn-rail .elementor-swiper-button svg { width: 16px; height: 16px; fill: currentColor; }

/* ---------- Accessibility ---------- */
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--e-global-color-accent); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .hn-card img, .hn-more .elementor-button::after, .hn-header { transition: none !important; }
  .hn-wire-title .elementor-heading-title::before { animation: none; }
  .hn-ticker .swiper-wrapper { transform: none !important; }
}/* End custom CSS */