/* ==========================================================================
   Interest Rate Nepal — App Shell v3
   Scoped to .irn-* so plugin UIs (rate tables, calculators) stay untouched.
   ========================================================================== */

:root {
  color-scheme: light;
  --irn-ink: #071929;
  --irn-navy: #07315c;
  --irn-blue: #0b4f8a;
  --irn-cyan: #0f8b8d;
  --irn-mint: #e7f7f6;
  --irn-amber: #d97706;
  --irn-amber-soft: #fff7ed;
  --irn-line: rgba(7, 49, 92, 0.12);
  --irn-muted: #5b6b7c;
  --irn-surface: #ffffff;
  --irn-bg: #eef3f8;
  --irn-bg-top: #f5f8fb;
  --irn-bg-bottom: #e8eef5;
  --irn-chrome-bg: rgba(255, 255, 255, 0.97);
  --irn-drawer-bg: #f4f7fb;
  --irn-elevated: #ffffff;
  --irn-soft: #f8fafc;
  --irn-tab-bg: #ffffff;
  --irn-tab-fg: #5b6b7c;
  --irn-tab-active-fg: #07315c;
  --irn-tab-active-bg: #e7f7f6;
  --irn-tab-indicator: #0f8b8d;
  --irn-tab-border: rgba(7, 49, 92, 0.12);
  --irn-fab-bg: #ffffff;
  --irn-fab-fg: #07315c;
  --irn-fab-border: rgba(7, 49, 92, 0.14);
  --irn-footer-bg: #061627;
  --irn-footer-fg: #94a3b8;
  --irn-consent-bg: #071929;
  --irn-consent-fg: #e2e8f0;
  --irn-ad-bg: #fafafa;
  --irn-on-accent: #ffffff;
  --irn-header-h: 56px;
  --irn-chrome-h: 56px;
  --irn-tab-h: 52px;
  --irn-article-max: 800px;
  --irn-safe-b: env(safe-area-inset-bottom, 0px);
  --irn-radius: 14px;
  --irn-shadow: 0 8px 22px rgba(7, 25, 41, 0.07);
  --irn-font: "Sora", system-ui, -apple-system, "Segoe UI", sans-serif;
  --irn-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  /* clip only when there is no sticky sidebar — clip breaks position:sticky */
  overflow-x: clip;
  max-width: 100%;
}
html:has(.irn-sidebar),
html:has(.irn-canvas--single) {
  overflow-x: visible;
}
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body.irn-app {
  margin: 0;
  min-height: 100dvh;
  max-width: 100%;
  font-family: var(--irn-font);
  color: var(--irn-ink);
  background: linear-gradient(180deg, var(--irn-bg-top) 0%, var(--irn-bg) 55%, var(--irn-bg-bottom) 100%);
  transition: background-color .28s var(--irn-ease), color .28s var(--irn-ease);
  display: flex;
  flex-direction: column;
  padding-bottom: calc(var(--irn-tab-h) + var(--irn-safe-b));
  overflow-x: clip;
  text-rendering: optimizeSpeed;
}
body.irn-app:has(.irn-sidebar),
body.single.irn-app {
  overflow-x: visible;
}

img { max-width: 100%; height: auto; }
a { color: var(--irn-blue); }
:focus-visible { outline: 2px solid var(--irn-cyan); outline-offset: 2px; }

.irn-skip {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.irn-skip:focus {
  position: fixed !important;
  left: 12px !important;
  top: 12px !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  clip: auto !important;
  padding: 10px 14px !important;
  background: var(--irn-navy);
  color: #fff;
  z-index: 10000;
}

.irn-wrap {
  width: min(1200px, calc(100% - 28px));
  margin-inline: auto;
}
/* Single posts: wider canvas so rates + sticky sidebar use the screen */
.irn-canvas--single > .irn-wrap {
  width: min(1440px, calc(100% - 24px));
}

/* ========== APP CHROME ========== */
.irn-chrome {
  position: sticky;
  top: 0;
  z-index: 1200;
  background: var(--irn-chrome-bg);
  backdrop-filter: blur(16px) saturate(1.25);
  -webkit-backdrop-filter: blur(16px) saturate(1.25);
  border-bottom: 1px solid var(--irn-line);
  transition: box-shadow .25s var(--irn-ease);
}
.irn-chrome.is-scrolled,
.irn-header.is-scrolled {
  box-shadow: 0 8px 24px rgba(7, 25, 41, 0.08);
}
.irn-header {
  background: transparent;
  border-bottom: 0;
}
.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.irn-header__row {
  min-height: var(--irn-header-h);
  height: auto;
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  overflow: visible;
}

.irn-brand {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--irn-navy);
  min-width: 0;
  max-width: 180px;
  max-height: 44px !important;
  overflow: hidden !important;
  line-height: 0;
}

.irn-brand .custom-logo-link {
  display: inline-flex !important;
  align-items: center !important;
  max-height: 40px !important;
  overflow: hidden !important;
  line-height: 0 !important;
}

.irn-brand img,
.irn-brand .custom-logo,
.irn-brand .custom-logo-link img,
header.irn-header img.custom-logo {
  height: 40px !important;
  max-height: 40px !important;
  width: auto !important;
  max-width: 160px !important;
  min-height: 0 !important;
  min-width: 0 !important;
  object-fit: contain !important;
  display: block !important;
}

.irn-brand__name {
  font-weight: 800;
  font-size: 13px;
  letter-spacing: -0.02em;
  line-height: 1.15;
  max-width: 9.5rem;
}

.irn-brand__tag {
  display: block;
  font-size: 10px;
  font-weight: 600;
  color: var(--irn-cyan);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.irn-chip {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--irn-mint);
  color: var(--irn-cyan);
  border: 1px solid rgba(15, 139, 141, 0.28);
  border-radius: 8px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.irn-chip::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #12b981;
  box-shadow: 0 0 0 3px rgba(18, 185, 129, 0.22);
  animation: irnPulse 2.2s var(--irn-ease) infinite;
}

@keyframes irnPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(0.85); opacity: 0.7; }
}

.irn-header__actions {
  display: flex;
  align-items: center;
  gap: 6px;
  justify-self: end;
  grid-column: 3;
  min-width: 0;
}
.irn-nav-desktop {
  min-width: 0;
  overflow: visible;
}
.irn-header-cta {
  display: none;
  align-items: center;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: var(--irn-navy);
  padding: 9px 14px;
  border-radius: 10px;
  white-space: nowrap;
  transition: background .2s var(--irn-ease), transform .2s var(--irn-ease);
}
.irn-header-cta:hover {
  background: var(--irn-blue);
  color: #fff;
}
.irn-header-cta:active { transform: scale(0.98); }

.irn-icon-btn {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1px solid var(--irn-line);
  background: var(--irn-elevated);
  color: var(--irn-navy);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform .2s var(--irn-ease), background .2s, border-color .2s, color .2s;
}

.irn-icon-btn:hover { background: var(--irn-mint); border-color: rgba(15, 139, 141, 0.35); }
.irn-icon-btn:active { transform: scale(0.96); }
.irn-icon-btn svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.8; }

/* Burger */
.irn-icon-btn.irn-burger {
  flex-direction: column;
  gap: 5px;
  padding: 0;
}
.irn-burger span {
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: .25s var(--irn-ease);
  margin: 0 !important;
}
.irn-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.irn-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.irn-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Desktop nav — comfortable size (desktop OK) + hover dropdowns */
.irn-nav-desktop { display: none; }
.irn-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0;
}
.irn-nav-desktop .irn-nav {
  flex-wrap: nowrap;
  justify-content: flex-end;
}
.irn-nav-desktop .irn-nav > li {
  position: relative;
}
.irn-nav-desktop .irn-nav > li > a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  text-decoration: none;
  color: var(--irn-navy);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: -0.01em;
  padding: 10px 11px;
  border-radius: 0;
  background: transparent;
  position: relative;
  transition: color .2s var(--irn-ease);
}
.irn-nav-desktop .irn-nav > li > a::after {
  content: "";
  position: absolute;
  left: 11px;
  right: 11px;
  bottom: 6px;
  height: 2px;
  border-radius: 2px;
  background: var(--irn-cyan);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .22s var(--irn-ease);
}
.irn-nav-desktop .irn-nav > li > a:hover,
.irn-nav-desktop .irn-nav > li > a:focus-visible,
.irn-nav-desktop .irn-nav > li > a.is-active,
.irn-nav-desktop .irn-nav > li.current-menu-item > a,
.irn-nav-desktop .irn-nav > li.current-menu-ancestor > a {
  background: transparent;
  color: var(--irn-cyan);
}
.irn-nav-desktop .irn-nav > li > a:hover::after,
.irn-nav-desktop .irn-nav > li > a:focus-visible::after,
.irn-nav-desktop .irn-nav > li > a.is-active::after,
.irn-nav-desktop .irn-nav > li.current-menu-item > a::after,
.irn-nav-desktop .irn-nav > li.current-menu-ancestor > a::after {
  transform: scaleX(1);
}
.irn-nav-desktop .menu-item-has-children > a::before {
  content: "";
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid currentColor;
  opacity: 0.55;
  margin-left: 2px;
  order: 2;
}
.irn-nav-desktop .irn-nav .sub-menu {
  position: absolute;
  top: calc(100% - 2px);
  left: 0;
  min-width: 210px;
  margin: 0;
  padding: 8px;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
  background: var(--irn-elevated);
  border: 1px solid var(--irn-line);
  border-radius: 12px;
  box-shadow: var(--irn-shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px);
  transition: opacity .18s var(--irn-ease), transform .18s var(--irn-ease), visibility .18s;
  z-index: 1300;
}
.irn-nav-desktop .irn-nav .sub-menu::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 0;
  right: 0;
  height: 8px;
}
.irn-nav-desktop .irn-nav > li:hover > .sub-menu,
.irn-nav-desktop .irn-nav > li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
.irn-nav-desktop .sub-menu a {
  display: block;
  text-decoration: none;
  color: var(--irn-ink);
  font-size: 13px;
  font-weight: 600;
  padding: 10px 12px;
  border-radius: 8px;
  transition: background .15s, color .15s;
}
.irn-nav-desktop .sub-menu a:hover,
.irn-nav-desktop .sub-menu a:focus-visible {
  background: var(--irn-mint);
  color: var(--irn-navy);
}

/* Drawer (mobile) — sheet with sticky header/footer, scrollable links */
.irn-drawer-backdrop {
  position: fixed !important;
  inset: 0;
  background: rgba(7, 25, 41, 0.5);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .28s, visibility .28s;
  z-index: 1290;
}
.irn-drawer-backdrop.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.irn-drawer {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  left: auto !important;
  width: min(100vw, 400px);
  height: 100dvh !important;
  max-height: 100dvh;
  background: var(--irn-drawer-bg);
  z-index: 1300;
  transform: translate3d(110%, 0, 0) !important;
  transition: transform .34s var(--irn-ease);
  box-shadow: -24px 0 60px rgba(7, 25, 41, 0.22);
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
}
.irn-drawer.is-open { transform: translate3d(0, 0, 0) !important; }

.irn-drawer__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 16px 14px;
  margin: 0;
  background: var(--irn-elevated);
  border-bottom: 1px solid var(--irn-line);
  flex-shrink: 0;
}
.irn-drawer__brand { min-width: 0; }
.irn-drawer__title {
  display: block;
  font-weight: 800;
  color: var(--irn-navy);
  font-size: 16px;
  letter-spacing: -0.02em;
}
.irn-drawer__period {
  display: inline-flex;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--irn-cyan);
  background: var(--irn-mint);
  border-radius: 6px;
  padding: 4px 8px;
}
.irn-drawer__nav {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 14px 14px calc(20px + var(--irn-safe-b));
}
.irn-drawer .irn-nav {
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}
.irn-drawer .irn-nav > li {
  border-radius: 14px;
  background: var(--irn-elevated);
  border: 1px solid var(--irn-line);
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(7, 25, 41, 0.04);
}
.irn-drawer .irn-nav-row {
  display: flex;
  align-items: stretch;
  gap: 0;
}
.irn-drawer .irn-nav > li > a,
.irn-drawer .irn-nav-row > a {
  flex: 1;
  padding: 14px 16px;
  font-size: 15px;
  font-weight: 700;
  color: var(--irn-navy);
  text-decoration: none;
  border: 0;
  background: transparent;
  min-height: 48px;
  display: flex;
  align-items: center;
  letter-spacing: -0.02em;
}
.irn-drawer .irn-nav > li > a.is-active,
.irn-drawer .irn-nav > li.current-menu-item > a,
.irn-drawer .irn-nav-row > a.is-active {
  color: var(--irn-cyan);
  background: var(--irn-mint);
}
.irn-nav-toggle {
  flex: 0 0 48px;
  border: 0;
  background: var(--irn-soft);
  color: var(--irn-navy);
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  border-left: 1px solid rgba(7, 49, 92, 0.08);
  min-height: 48px;
}
.irn-nav-toggle[aria-expanded="true"] {
  background: var(--irn-mint);
  color: var(--irn-cyan);
}
.irn-drawer .sub-menu {
  display: none;
  list-style: none;
  margin: 0;
  padding: 8px 10px 12px;
  flex-direction: column;
  gap: 4px;
  background: var(--irn-soft);
  border-top: 1px solid var(--irn-line);
}
.irn-drawer .sub-menu.is-open { display: flex; }
.irn-drawer .sub-menu a {
  display: flex;
  align-items: center;
  padding: 12px 14px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  color: var(--irn-ink);
  border-radius: 12px;
  min-height: 54px;
}
.irn-drawer .sub-menu a:hover,
.irn-drawer .sub-menu a:active {
  background: var(--irn-elevated);
  color: var(--irn-navy);
}

/* Legal grid removed from drawer — use Footer menus instead */

/* Quick subnav — optional / off by default */
.irn-subnav {
  border-top: 1px solid rgba(7, 49, 92, 0.06);
  background: transparent;
}
.irn-subnav__row {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 10px !important;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 10px 0;
  -webkit-overflow-scrolling: touch;
}
.irn-subnav__row::-webkit-scrollbar { display: none; }
.irn-subnav a {
  flex: 0 0 auto !important;
  text-decoration: none !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--irn-navy) !important;
  background: var(--irn-elevated) !important;
  border: 1px solid var(--irn-line) !important;
  padding: 8px 14px !important;
  border-radius: 8px !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}
.irn-subnav a:hover,
.irn-subnav a.is-active {
  background: var(--irn-navy) !important;
  color: #fff !important;
  border-color: var(--irn-navy) !important;
}

/* Search panel */
.irn-search-panel {
  display: none;
  border-top: 1px solid var(--irn-line);
  background: var(--irn-elevated);
  padding: 12px 0;
}
.irn-search-panel.is-open { display: block; animation: irnFade .25s var(--irn-ease); }
@keyframes irnFade {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: none; }
}

.irn-search {
  display: flex;
  gap: 8px;
}
.irn-search input[type="search"] {
  flex: 1;
  border: 1px solid var(--irn-line);
  border-radius: 12px;
  padding: 12px 14px;
  font: inherit;
  font-size: 15px;
  background: var(--irn-soft);
}
.irn-search button {
  border: 0;
  border-radius: 12px;
  background: var(--irn-navy);
  color: #fff;
  font-weight: 700;
  padding: 0 16px;
  cursor: pointer;
  font-family: inherit;
}

/* ========== CANVAS (plugin content lives here untouched) ========== */
.irn-canvas {
  flex: 1;
  width: 100%;
  max-width: 100%;
  position: relative;
  z-index: 1;
  overflow-x: clip;
}
.irn-canvas__inner {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

/* Stop homepage / plugin grids from causing horizontal shake */
body.irn-home .irn-canvas__inner,
body.irn-builder .irn-canvas__inner {
  overflow-x: clip;
}
body.irn-home .irn-canvas__inner img,
body.irn-builder .irn-canvas__inner img,
body.irn-home .irn-canvas__inner table,
body.irn-builder .irn-canvas__inner table,
body.irn-home .irn-canvas__inner pre,
body.irn-builder .irn-canvas__inner pre {
  max-width: 100%;
}
body.irn-home .irn-canvas__inner iframe,
body.irn-builder .irn-canvas__inner iframe {
  max-width: 100%;
}

/*
 * Homepage plugin “Market Pulse” uses margin:0 -20px / width:calc(100%+40px)
 * which assumes old theme gutters — that causes cut edges + horizontal shake.
 * Neutralize only that full-bleed hack; leave plugin UI otherwise alone.
 */
@media (max-width: 768px) {
  body.irn-home .app-container,
  body.irn-builder .app-container,
  body.irn-home .irn-canvas__inner .app-container,
  body.irn-builder .irn-canvas__inner .app-container {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  body.irn-home .irn-canvas__inner,
  body.irn-builder .irn-canvas__inner {
    padding-left: 14px;
    padding-right: 14px;
    box-sizing: border-box;
  }
}

html {
  overscroll-behavior-x: none;
}
body.irn-home,
body.irn-builder {
  overflow-x: hidden; /* no sticky sidebar on these templates — safe anti-shake */
  overscroll-behavior-x: none;
  touch-action: pan-y;
  width: 100%;
}

/* Builder / home: full bleed — no theme card wrapping */
body.irn-builder .irn-canvas,
body.irn-home .irn-canvas {
  width: 100%;
}

body.irn-builder .irn-canvas__inner,
body.irn-home .irn-canvas__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Rate hub pages (Deposit / Loan / etc.) — readable max width, not edge-to-edge */
body.irn-builder:not(.irn-home) .irn-canvas__inner {
  width: min(1120px, calc(100% - 28px));
  max-width: 1120px;
  margin: 16px auto 40px;
  padding: 0;
}

/* Classic posts: readable article frame ONLY — never applied on builder pages */
body.irn-classic .irn-canvas__inner {
  width: min(860px, calc(100% - 28px));
  margin: 20px auto 40px;
}

body.irn-classic .irn-article {
  background: var(--irn-surface);
  border: 1px solid var(--irn-line);
  border-radius: var(--irn-radius);
  box-shadow: var(--irn-shadow);
  padding: clamp(18px, 3vw, 32px);
}

body.irn-classic .irn-article .entry-title {
  margin: 0 0 10px;
  font-size: clamp(1.4rem, 3.5vw, 2rem);
  letter-spacing: -0.03em;
  color: var(--irn-navy);
  line-height: 1.2;
}

/* Prose styles ONLY inside classic entry-content — Elementor/plugin roots excluded */
body.irn-classic .entry-content > p,
body.irn-classic .entry-content > ul,
body.irn-classic .entry-content > ol,
body.irn-classic .entry-content > h2,
body.irn-classic .entry-content > h3 {
  line-height: 1.75;
  color: var(--irn-ink);
}

body.irn-classic .entry-content > h2,
body.irn-classic .entry-content > h3 {
  color: var(--irn-navy);
  letter-spacing: -0.02em;
  line-height: 1.3;
}

/* Never restyle Elementor / common builders */
.elementor,
.elementor *,
.bricks-content,
.et_pb_section,
.fl-builder-content,
.wpb_row {
  /* intentional pass-through — theme does not override */
}

.irn-crumbs {
  width: min(860px, calc(100% - 28px));
  margin: 14px auto 0;
  font-size: 12px;
}
.irn-crumbs ol {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  list-style: none;
  margin: 0;
  padding: 0;
  color: var(--irn-muted);
}
.irn-crumbs li:not(:last-child)::after {
  content: "/";
  margin-left: 6px;
  opacity: .45;
}
.irn-crumbs a { text-decoration: none; color: var(--irn-blue); font-weight: 600; }

.irn-eeat {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin: 0 0 18px;
  padding: 10px 12px;
  border-radius: 12px;
  background: linear-gradient(90deg, var(--irn-mint), var(--irn-soft));
  border: 1px solid var(--irn-line);
  font-size: 12px;
  color: var(--irn-ink);
}
.irn-eeat__label {
  display: block;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--irn-muted);
  font-weight: 700;
}
.irn-eeat__period {
  margin-left: auto;
  align-self: center;
  background: var(--irn-elevated);
  border-radius: 999px;
  padding: 4px 10px;
  font-weight: 700;
  color: var(--irn-cyan);
  border: 1px solid rgba(15, 139, 141, 0.25);
}

/* Archive cards */
.irn-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 14px;
  width: min(1180px, calc(100% - 28px));
  margin: 20px auto 40px;
}
.irn-card {
  background: var(--irn-surface);
  border: 1px solid var(--irn-line);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: transform .22s var(--irn-ease), box-shadow .22s;
}
.irn-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--irn-shadow);
}
.irn-card__body { padding: 14px 16px 18px; }
.irn-card__title {
  margin: 0 0 6px;
  font-size: 16px;
  color: var(--irn-navy);
  letter-spacing: -0.02em;
}
.irn-card__excerpt {
  margin: 0;
  font-size: 13px;
  color: var(--irn-muted);
}

.irn-page-head {
  width: min(1180px, calc(100% - 28px));
  margin: 18px auto 0;
}
.irn-page-head h1 {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  color: var(--irn-navy);
  letter-spacing: -0.03em;
}

.irn-empty {
  text-align: center;
  padding: 48px 20px;
  width: min(640px, calc(100% - 28px));
  margin: 40px auto;
  background: var(--irn-surface);
  border-radius: var(--irn-radius);
  border: 1px solid var(--irn-line);
}

/* ========== ADS (labeled, never overlay) ========== */
.irn-ad {
  margin: 18px auto;
  width: min(1180px, calc(100% - 28px));
  padding: 10px;
  border: 1px dashed var(--irn-line);
  border-radius: 12px;
  background: var(--irn-ad-bg);
  text-align: center;
}
.irn-ad__label {
  display: block;
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #94a3b8;
  font-weight: 700;
  margin-bottom: 6px;
}
.irn-ad__slot { min-height: 40px; }

body.irn-home .irn-ad,
body.irn-builder .irn-ad--auto {
  /* keep ads out of dense plugin rate UIs unless shortcode placed */
}

/* ========== FOOTER / TRUST (identical on home, hubs, posts) ========== */
footer.irn-footer {
  margin-top: auto !important;
  background: var(--irn-footer-bg) !important;
  color: var(--irn-footer-fg) !important;
  padding: 36px 0 28px !important;
  border-top: 3px solid var(--irn-cyan) !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  position: relative !important;
  z-index: 2 !important;
}
.irn-footer__grid {
  display: grid;
  gap: 22px;
  grid-template-columns: 1.4fr 1fr;
}
@media (max-width: 720px) {
  .irn-footer__grid { grid-template-columns: 1fr; }
}
.irn-footer__brand {
  font-weight: 800;
  color: #fff;
  font-size: 16px;
  margin: 0 0 8px;
}
.irn-footer p {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  max-width: 48ch;
}
.irn-footer__links {
  display: flex;
  flex-wrap: wrap;
  gap: 24px 40px;
  align-content: start;
}
.irn-footer__col {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 140px;
}
.irn-footer__col-title {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #93c5fd;
  margin-bottom: 4px;
}
.irn-footer__links a,
.irn-footer-menu a {
  color: #dbeafe;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
}
.irn-footer__links a:hover,
.irn-footer-menu a:hover { color: #fff; }
.irn-footer-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.irn-trust {
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  font-size: 12px;
  line-height: 1.5;
}
.irn-footer__copy {
  margin-top: 18px;
  font-size: 11px;
  color: #64748b;
  text-align: center;
}

/* ========== MOBILE TAB BAR (isolated — plugins must not restyle) ========== */
nav.irn-tabbar {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 1260 !important;
  height: calc(var(--irn-tab-h) + var(--irn-safe-b)) !important;
  min-height: calc(var(--irn-tab-h) + var(--irn-safe-b)) !important;
  max-height: calc(var(--irn-tab-h) + var(--irn-safe-b)) !important;
  margin: 0 !important;
  padding: 4px 4px var(--irn-safe-b) !important;
  display: grid !important;
  grid-auto-flow: column !important;
  grid-auto-columns: 1fr !important;
  align-items: stretch !important;
  gap: 2px !important;
  background: var(--irn-tab-bg) !important;
  color: var(--irn-tab-fg) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 0 !important;
  border-top: 1px solid var(--irn-tab-border) !important;
  border-radius: 0 !important;
  box-shadow: 0 -8px 28px rgba(7, 25, 41, 0.08) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
nav.irn-tabbar > a {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 2px !important;
  margin: 0 !important;
  padding: 4px 2px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-height: none !important;
  height: auto !important;
  width: auto !important;
  text-decoration: none !important;
  color: inherit !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  overflow: hidden !important;
}
nav.irn-tabbar > a > span {
  display: block !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  line-height: 1.1 !important;
  color: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
}
nav.irn-tabbar > a > .irn-tab-ico,
nav.irn-tabbar > a > svg.irn-tab-ico {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  max-width: 18px !important;
  max-height: 18px !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  flex-shrink: 0 !important;
  overflow: visible !important;
  color: inherit !important;
  fill: currentColor !important;
  background: transparent !important;
  background-image: none !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
nav.irn-tabbar > a.is-active {
  color: var(--irn-tab-active-fg) !important;
  background: var(--irn-tab-active-bg) !important;
}
nav.irn-tabbar > a.is-active::before {
  content: "" !important;
  position: absolute !important;
  top: 3px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 14px !important;
  height: 3px !important;
  border-radius: 999px !important;
  background: var(--irn-tab-indicator) !important;
}

/* ========== CONSENT ========== */
.irn-consent {
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: calc(var(--irn-tab-h) + var(--irn-safe-b) + 10px);
  z-index: 1400;
  max-width: 480px;
  margin-inline: auto;
  background: var(--irn-consent-bg);
  color: var(--irn-consent-fg);
  border-radius: 18px;
  padding: 16px;
  box-shadow: 0 20px 50px rgba(0,0,0,.35);
  display: none;
}
.irn-consent.is-visible { display: block; animation: irnFade .3s var(--irn-ease); }
.irn-consent p { margin: 0 0 12px; font-size: 13px; line-height: 1.5; }
.irn-consent a { color: #7dd3d5; }
.irn-consent__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.irn-btn {
  border: 0;
  border-radius: 11px;
  padding: 10px 14px;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
}
.irn-btn--primary { background: var(--irn-cyan); color: #fff; }
.irn-btn--ghost { background: transparent; color: #cbd5e1; border: 1px solid #334155; }

/* Theme calculator pages — shell clearance only (do not restyle plugin UIs) */
#emi-wrapper, #sip-wrapper, #fd-wrapper, #sav-wrapper, #rd-wrapper {
  padding-bottom: 24px;
}

/* Desktop */
@media (min-width: 960px) {
  body.irn-app { padding-bottom: 0; }
  nav.irn-tabbar { display: none !important; }
  .irn-burger { display: none; }
  .irn-nav-desktop { display: block; justify-self: end; }
  .irn-header-cta { display: inline-flex; }
  .irn-header__row {
    grid-template-columns: auto auto 1fr;
    gap: 20px;
  }
  .irn-chip { justify-self: start; }
  .irn-header__actions { gap: 10px; }
  .irn-brand__name { max-width: none; font-size: 14px; }
  .irn-consent {
    left: 20px;
    right: auto;
    bottom: 20px;
    width: min(420px, calc(100% - 40px));
  }
  .irn-footer { padding-bottom: 40px; }
}

@media (max-width: 959px) {
  /* Month chip: desktop only */
  .irn-chip { display: none !important; }
  .irn-brand__name { display: none; }
  .irn-nav-desktop { display: none !important; }

  .irn-header__row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    padding: 8px 0;
  }
  .irn-header__actions {
    grid-column: 2;
    gap: 6px;
  }
  .irn-brand {
    max-width: min(160px, 48vw);
  }

  /* Smaller mobile chrome icons */
  .irn-icon-btn {
    width: 36px;
    height: 36px;
    border-radius: 10px;
  }
  .irn-icon-btn svg {
    width: 17px;
    height: 17px;
  }
  .irn-burger span {
    width: 15px;
  }
  .irn-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .irn-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

  /* Same footer spacing on home / hubs / posts */
  .irn-footer {
    padding-top: 36px;
    padding-bottom: 28px;
    margin-top: auto;
  }
  body.irn-app {
    padding-bottom: calc(var(--irn-tab-h) + var(--irn-safe-b));
  }

  /* Consent sits above tab bar */
  .irn-consent.is-visible {
    bottom: calc(var(--irn-tab-h) + var(--irn-safe-b) + 10px) !important;
    left: 12px;
    right: 12px;
    width: auto;
    max-width: none;
  }
}

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

@media print {
  .irn-header, .irn-tabbar, .irn-consent, .irn-ad, .irn-drawer, .irn-drawer-backdrop { display: none !important; }
  body.irn-app { padding: 0; background: var(--irn-surface); }
}

/* ========== SINGLE / BLOG LAYOUT (sipnp-style sticky sidebar) ========== */
.irn-canvas--single {
  padding: 18px 0 48px;
  overflow: visible !important;
  overflow-x: visible !important;
}
.irn-canvas--single .irn-wrap {
  width: min(1440px, calc(100% - 24px));
  overflow: visible;
}
.irn-blog-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  align-items: start;
  margin-top: 8px;
  overflow: visible;
}
.irn-blog-layout--full { grid-template-columns: 1fr; }

.irn-article {
  background: var(--irn-surface);
  border: 1px solid var(--irn-line);
  border-radius: var(--irn-radius);
  box-shadow: var(--irn-shadow);
  padding: clamp(18px, 3vw, 28px);
  width: 100%;
  max-width: none; /* fill the grid column beside sticky sidebar */
  min-width: 0;
  color: var(--irn-ink);
  overflow: visible;
}
.irn-blog-layout--full .irn-article {
  max-width: var(--irn-article-max, 800px);
  margin-inline: auto;
}
.irn-article__head { margin-bottom: 14px; }
.irn-article__cats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.irn-cat {
  display: inline-flex;
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
  color: var(--irn-cyan);
  background: var(--irn-mint);
  border-radius: 999px;
  padding: 4px 10px;
}
.irn-article .entry-title {
  margin: 0 0 10px;
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  letter-spacing: -0.03em;
  color: var(--irn-navy);
  line-height: 1.2;
}
.irn-article__thumb { margin: 0 0 18px; border-radius: 12px; overflow: hidden; }

/* Post/page body — always token-based so dark mode stays readable */
.irn-article .entry-content,
.irn-page-card .entry-content,
.irn-page-card {
  color: var(--irn-ink);
}
.irn-article .entry-content,
.irn-page-card .entry-content {
  font-size: 16px;
  line-height: 1.75;
  max-width: 100%;
}
.irn-article .entry-content > *,
.irn-page-card .entry-content > * { max-width: 100%; }
.irn-article .entry-content :where(p, li, dd, figcaption, td, th, span, div),
.irn-page-card .entry-content :where(p, li, dd, figcaption, td, th, span, div) {
  color: inherit;
}
.irn-article .entry-content p,
.irn-article .entry-content li,
.irn-page-card .entry-content p,
.irn-page-card .entry-content li {
  color: var(--irn-ink);
}
.irn-article .entry-content :where(h1, h2, h3, h4, h5, h6),
.irn-page-card .entry-content :where(h1, h2, h3, h4, h5, h6),
.irn-page-card .entry-title {
  color: var(--irn-navy);
}
.irn-article .entry-content :where(a),
.irn-page-card .entry-content :where(a) {
  color: var(--irn-blue);
}
.irn-article .entry-content :where(strong, b),
.irn-page-card .entry-content :where(strong, b) {
  color: var(--irn-navy);
}
.irn-article .entry-content :where(ul, ol),
.irn-page-card .entry-content :where(ul, ol) {
  padding-left: 1.25em;
}
.irn-article .entry-content :where(blockquote),
.irn-page-card .entry-content :where(blockquote) {
  margin: 1.2em 0;
  padding: 0.85em 1em;
  border-left: 3px solid var(--irn-cyan);
  background: var(--irn-soft);
  color: var(--irn-ink);
  border-radius: 0 10px 10px 0;
}
.irn-article .entry-content :where(hr),
.irn-page-card .entry-content :where(hr) {
  border: 0;
  border-top: 1px solid var(--irn-line);
  margin: 1.6em 0;
}
.irn-article .entry-content img,
.irn-page-card .entry-content img { border-radius: 10px; }
.irn-article .entry-content table,
.irn-page-card .entry-content table {
  display: block;
  overflow-x: auto;
  width: 100%;
  border-collapse: collapse;
}
.irn-article .entry-content :where(th, td),
.irn-page-card .entry-content :where(th, td) {
  border: 1px solid var(--irn-line);
  padding: 0.55em 0.7em;
}
.irn-article .entry-content th,
.irn-page-card .entry-content th {
  background: var(--irn-soft);
  color: var(--irn-navy);
}

/*
 * Gutenberg palette classes that stay “black text” in dark mode.
 * Scoped to theme article/page only — does not touch plugin hubs.
 */
html[data-irn-theme="dark"] .irn-article .entry-content .has-black-color,
html[data-irn-theme="dark"] .irn-page-card .entry-content .has-black-color,
html[data-irn-theme="dark"] .irn-article .entry-content .has-cyan-bluish-gray-color,
html[data-irn-theme="dark"] .irn-page-card .entry-content .has-cyan-bluish-gray-color {
  color: var(--irn-ink) !important;
}
html[data-irn-theme="dark"] .irn-article .entry-content .has-white-background-color,
html[data-irn-theme="dark"] .irn-page-card .entry-content .has-white-background-color {
  background-color: var(--irn-soft) !important;
  color: var(--irn-ink) !important;
}
html[data-irn-theme="dark"] .irn-article .entry-content .has-black-background-color,
html[data-irn-theme="dark"] .irn-page-card .entry-content .has-black-background-color {
  background-color: #020617 !important;
  color: #f8fafc !important;
}

.irn-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 10px; }
.irn-tags a {
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  color: var(--irn-navy);
  background: var(--irn-soft);
  padding: 5px 10px;
  border-radius: 8px;
}
.irn-share {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 16px 0;
  font-size: 13px;
  font-weight: 700;
}
.irn-share a { text-decoration: none; color: var(--irn-blue); }
.irn-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--irn-line);
}
.irn-post-nav__link {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-decoration: none;
  padding: 12px;
  border-radius: 12px;
  background: var(--irn-soft);
  border: 1px solid var(--irn-line);
  color: inherit;
}
.irn-post-nav__link span { font-size: 11px; color: var(--irn-muted); font-weight: 700; }
.irn-post-nav__link strong { font-size: 13px; color: var(--irn-navy); }
.irn-post-nav__link--next { text-align: right; }

/* Sticky on the aside itself (sipnp pattern) — stays visible while scrolling the post */
.irn-sidebar {
  position: sticky;
  top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--irn-chrome-h) + 12px);
  align-self: start;
  max-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px) - var(--irn-chrome-h) - 28px);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
  z-index: 2;
}
.irn-sidebar__inner {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.irn-widget {
  background: var(--irn-surface);
  border: 1px solid var(--irn-line);
  border-radius: 14px;
  padding: 14px 16px;
  box-shadow: 0 6px 18px rgba(7, 25, 41, 0.05);
}
.irn-widget__title,
.irn-widget .widget-title {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 800;
  color: var(--irn-navy);
  display: flex;
  align-items: center;
  gap: 8px;
}
.irn-widget__title::before,
.irn-widget .widget-title::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--irn-cyan);
}
.irn-side-links,
.irn-side-recent {
  list-style: none;
  margin: 0;
  padding: 0;
}
.irn-side-links li,
.irn-side-recent li {
  margin: 0;
  padding: 8px 0;
  border-bottom: 1px solid #f1f5f9;
}
.irn-side-links li:last-child,
.irn-side-recent li:last-child { border-bottom: 0; }
.irn-side-links a,
.irn-side-recent a {
  text-decoration: none;
  color: var(--irn-ink);
  font-weight: 600;
  font-size: 13px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.irn-side-links em {
  font-style: normal;
  color: var(--irn-muted);
  font-size: 11px;
  font-weight: 700;
}
.irn-side-recent span {
  display: block;
  font-size: 11px;
  color: var(--irn-muted);
  margin-top: 2px;
}

.irn-footer-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.irn-footer-menu a {
  color: #dbeafe;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
}

/* Standard pages — readable width (Contact, About, etc.) */
.irn-canvas--page .irn-canvas__inner {
  width: min(800px, calc(100% - 28px));
  margin: 20px auto 40px;
}
.irn-page-card {
  background: var(--irn-surface);
  border: 1px solid var(--irn-line);
  border-radius: var(--irn-radius);
  box-shadow: var(--irn-shadow);
  padding: clamp(18px, 3vw, 28px);
  color: var(--irn-ink);
}
.irn-page-card .entry-title {
  margin: 0 0 14px;
  font-size: clamp(1.35rem, 3vw, 1.75rem);
  color: var(--irn-navy);
  letter-spacing: -0.03em;
}

/*
 * EDGE-TO-EDGE rate shortcodes (mobile/tablet)
 * Kill wrap gutters + article pad so NRH / NIR / NLR fill the screen.
 */
@media (max-width: 960px) {
  .irn-canvas--single > .irn-wrap,
  .irn-canvas--single .irn-wrap,
  main.irn-canvas--single .irn-wrap {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .irn-crumbs {
    padding-left: 12px;
    padding-right: 12px;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
  }

  .irn-canvas--page .irn-canvas__inner,
  body.irn-classic .irn-canvas__inner,
  body.irn-builder:not(.irn-home) .irn-canvas__inner {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.irn-home .irn-canvas__inner,
  body.irn-builder .irn-canvas__inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.page:not(.irn-home) .irn-canvas__inner > *:not(.elementor) {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .irn-page-card,
  .irn-article {
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .irn-page-card .entry-title,
  .irn-article__head,
  .irn-article .entry-title,
  .irn-tags,
  .irn-share,
  .irn-post-nav,
  .irn-eeat,
  .irn-article__thumb {
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box;
  }

  .irn-page-card .entry-content > :not(.nrh-dir):not(.nrh-app):not(.nrh-all):not(.nrh-embed):not(.nir-wrapper):not(.nlr-wrapper),
  .irn-article .entry-content > :not(.nrh-dir):not(.nrh-app):not(.nrh-all):not(.nrh-embed):not(.nir-wrapper):not(.nlr-wrapper) {
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box;
  }

  .nrh-dir,
  .nrh-app.nrh-embed,
  .nrh-all,
  .nrh-embed,
  .nir-wrapper,
  .nlr-wrapper,
  .entry-content .nrh-dir,
  .entry-content .nrh-app,
  .entry-content .nrh-all,
  .entry-content .nrh-embed,
  .entry-content .nir-wrapper,
  .entry-content .nlr-wrapper,
  .irn-article .nrh-dir,
  .irn-article .nrh-app,
  .irn-article .nrh-all,
  .irn-article .nrh-embed,
  .irn-article .nir-wrapper,
  .irn-article .nlr-wrapper,
  .irn-page-card .nrh-dir,
  .irn-page-card .nrh-app,
  .irn-page-card .nrh-all,
  .irn-page-card .nrh-embed,
  .irn-page-card .nir-wrapper,
  .irn-page-card .nlr-wrapper,
  .elementor-widget-container .nrh-dir,
  .elementor-widget-container .nrh-app,
  .elementor-widget-container .nir-wrapper,
  .elementor-widget-container .nlr-wrapper,
  html body .nlr-wrapper,
  html body .nlr-wrapper.nlr-mobile-fixed,
  html body .nlr-wrapper.nlr-fd-only,
  html body .nlr-wrapper.nlr-single,
  html body .nir-wrapper {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    box-sizing: border-box !important;
    transform: none !important;
    left: auto !important;
    right: auto !important;
    position: relative !important;
  }

  .nrh-dir .nrh-app,
  .nrh-dir .nrh-app.nrh-embed,
  .nrh-dir__panel .nrh-app {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-radius: 12px !important;
    transform: none !important;
  }
}

/* Desktop sticky sidebar — keep visible while scrolling the post */
@media (min-width: 961px) {
  .irn-sidebar {
    position: sticky !important;
    top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--irn-chrome-h) + 12px) !important;
    align-self: start;
    max-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px) - var(--irn-chrome-h) - 28px);
    overflow-x: hidden;
    overflow-y: auto;
    z-index: 2;
  }
}

/* ========== COMPACT HOMEPAGE BANK CARDS ========== */
body.irn-compact-home.irn-home .irn-canvas,
body.irn-compact-home.home .irn-canvas {
  width: min(1120px, 100%);
  margin-inline: auto;
}
body.irn-compact-home .class-card,
body.irn-compact-home .nir-rate-card,
body.irn-compact-home [class*="bank-card"],
body.irn-compact-home .bank-card {
  padding: 0.7rem 0.85rem !important;
  gap: 0.35rem !important;
  border-radius: 12px !important;
}
body.irn-compact-home .class-title,
body.irn-compact-home .nir-bank-full-name,
body.irn-compact-home .nir-ranked-bank-name {
  font-size: 0.92rem !important;
  line-height: 1.25 !important;
}
body.irn-compact-home .nir-bank-logo-wrap,
body.irn-compact-home .nir-bank-logo,
body.irn-compact-home .class-card img {
  width: 36px !important;
  height: 36px !important;
  max-width: 36px !important;
  max-height: 36px !important;
  object-fit: contain !important;
}
body.irn-compact-home .nir-rate-cards,
body.irn-compact-home .class-grid,
body.irn-compact-home [class*="banks-grid"] {
  gap: 10px !important;
}

@media (max-width: 960px) {
  .irn-blog-layout { grid-template-columns: 1fr; }
  .irn-sidebar {
    position: static;
    max-height: none;
    overflow: visible;
  }
  .irn-post-nav { grid-template-columns: 1fr; }
  .irn-article { max-width: none; }
  /* Do NOT add page padding — rate hubs must stay edge-to-edge */
  body.page:not(.irn-home) .irn-canvas__inner > *:not(.elementor) {
    padding-left: 0;
    padding-right: 0;
  }
}

@media (min-width: 961px) {
  .irn-header__actions { justify-self: end; }
}

/* ========== THEME FAB (left side — light default / dark optional) ========== */
.irn-theme-fab {
  position: fixed !important;
  left: 12px !important;
  right: auto !important;
  bottom: calc(var(--irn-tab-h) + var(--irn-safe-b) + 12px) !important;
  z-index: 1270 !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  max-width: 40px !important;
  max-height: 40px !important;
  border-radius: 50% !important;
  border: 1px solid var(--irn-fab-border) !important;
  background: var(--irn-fab-bg) !important;
  color: var(--irn-fab-fg) !important;
  box-shadow: var(--irn-shadow) !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  transition: transform .2s var(--irn-ease), background .2s, color .2s, border-color .2s;
}
.irn-theme-fab:hover { transform: translateY(-1px); }
.irn-theme-fab:active { transform: scale(0.96); }
.irn-theme-fab__sun,
.irn-theme-fab__moon {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  min-height: 18px !important;
  display: block !important;
  color: inherit !important;
  flex-shrink: 0 !important;
  background: transparent !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}
.irn-theme-fab__moon {
  display: none !important;
}
@media (min-width: 960px) {
  .irn-theme-fab {
    bottom: 24px !important;
    left: 20px !important;
    right: auto !important;
  }
}
@media print {
  .irn-theme-fab { display: none !important; }
}

/* ==========================================================================
   NATURAL DARK MODE — token swap only (no forced element overrides)
   Theme parts use CSS variables, so switching inherits colors/icons naturally.
   Plugin UIs keep their own styles unless they already use theme tokens.
   ========================================================================== */
html[data-irn-theme="dark"] {
  color-scheme: dark;
  --irn-ink: #e8eef6;
  --irn-navy: #f1f5f9;
  --irn-blue: #93c5fd;
  --irn-cyan: #2dd4bf;
  --irn-mint: rgba(45, 212, 191, 0.16);
  --irn-amber: #fbbf24;
  --irn-amber-soft: rgba(251, 191, 36, 0.12);
  --irn-line: rgba(148, 163, 184, 0.22);
  --irn-muted: #a7b4c5;
  --irn-surface: #121a2b;
  --irn-bg: #0a101c;
  --irn-bg-top: #0c1322;
  --irn-bg-bottom: #080e18;
  --irn-chrome-bg: rgba(10, 16, 28, 0.94);
  --irn-drawer-bg: #0c1322;
  --irn-elevated: #151e30;
  --irn-soft: #0f1624;
  --irn-tab-bg: #0c1322;
  --irn-tab-fg: #94a3b8;
  --irn-tab-active-fg: #e2e8f0;
  --irn-tab-active-bg: rgba(45, 212, 191, 0.14);
  --irn-tab-indicator: #2dd4bf;
  --irn-tab-border: rgba(148, 163, 184, 0.2);
  --irn-fab-bg: #1e293b;
  --irn-fab-fg: #f8fafc;
  --irn-fab-border: rgba(255, 255, 255, 0.12);
  --irn-footer-bg: #060a12;
  --irn-footer-fg: #94a3b8;
  --irn-consent-bg: #111827;
  --irn-consent-fg: #e2e8f0;
  --irn-ad-bg: #0f1624;
  --irn-on-accent: #042f2e;
  --irn-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
}

/* Mode FAB glyph only — all colors inherit from tokens */
html[data-irn-theme="dark"] .irn-theme-fab__sun { display: none !important; }
html[data-irn-theme="dark"] .irn-theme-fab__moon { display: block !important; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
