/* Invictum – Programok és fontos információk */
.ivc-app,
.ivc-app * { box-sizing: border-box; }
.ivc-app {
  --ivc-navy: #034469;
  --ivc-blue: #0693E3;
  --ivc-blue-mid: #006A9B;
  --ivc-turquoise: #00A7C7;
  --ivc-cyan: #A8EEFF;
  --ivc-ink: #153F56;
  --ivc-muted: #5D7888;
  --ivc-border: #D8EAF3;
  --ivc-surface: #FFFFFF;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 58px) clamp(14px, 2.5vw, 34px);
  color: var(--ivc-ink);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.65;
}
.ivc-app button,
.ivc-app a { font: inherit; }
.ivc-app button { touch-action: manipulation; }
.ivc-app button:focus-visible,
.ivc-app a:focus-visible {
  outline: 3px solid #0077B8 !important;
  outline-offset: 3px !important;
}
.ivc-app img { max-width: 100%; }
.ivc-sr-only {
  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;
}

/* Bevezető – nem külön kártya */
.ivc-intro { max-width: 850px; margin: 0 auto clamp(27px, 3.5vw, 44px); }
.ivc-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  color: #00699C;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 1.7px;
  text-transform: uppercase;
}
.ivc-eyebrow > span { display: inline-block; flex: 0 0 25px; height: 3px; border-radius: 2px; background: linear-gradient(90deg, var(--ivc-blue), #69DFFF); }
.ivc-main-title {
  margin: 0 0 13px;
  color: var(--ivc-navy);
  font-size: clamp(29px, 3.2vw, 43px);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -.7px;
  text-wrap: balance;
}
.ivc-intro__text { max-width: 780px; margin: 0; color: #3E6277; font-size: clamp(15px, 1.3vw, 18px); line-height: 1.8; }
.ivc-intro__rule { display: block; width: 56px; height: 3px; margin-top: 20px; border-radius: 2px; background: linear-gradient(90deg, var(--ivc-blue), var(--ivc-turquoise)); }

/* Naptár és oldalsó magyarázat */
.ivc-calendar-area { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(230px, .72fr); gap: clamp(16px, 2.2vw, 28px); align-items: stretch; }
.ivc-calendar-panel {
  min-width: 0;
  padding: clamp(17px, 2vw, 26px);
  border: 1px solid var(--ivc-border);
  border-radius: 18px;
  background: #FFFFFF;
  box-shadow: 0 8px 28px rgba(3, 68, 105, .055);
}
.ivc-calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 19px; }
.ivc-calendar-toolbar__label { display: block; margin-bottom: 3px; color: #548094; font-size: 10px; font-weight: 800; letter-spacing: 1.6px; }
.ivc-month-title { margin: 0; color: var(--ivc-navy); font-size: clamp(21px, 2.2vw, 29px); font-weight: 800; line-height: 1.25; text-transform: capitalize; }
.ivc-calendar-toolbar__controls { display: flex; gap: 8px; flex: 0 0 auto; }
.ivc-month-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #D4E8F2;
  border-radius: 12px;
  background: #F4FAFE;
  color: var(--ivc-navy);
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.ivc-month-nav svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ivc-month-nav:hover { border-color: var(--ivc-blue); background: #E5F5FF; }
.ivc-month-nav:active { transform: scale(.96); }
.ivc-weekdays, .ivc-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.ivc-weekdays { gap: 5px; margin-bottom: 6px; }
.ivc-weekdays span { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 28px; color: #628092; font-size: 11px; font-weight: 800; letter-spacing: .3px; }
.ivc-calendar-grid { gap: 5px; }
.ivc-day {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
  min-width: 0;
  min-height: 58px;
  padding: 9px 2px 5px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: #F6FAFD;
  color: #234D64;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.ivc-day__number { font-size: 14px; font-weight: 700; line-height: 1.2; }
.ivc-day__markers { display: flex; justify-content: center; align-items: center; gap: 3px; min-height: 7px; width: 100%; }
.ivc-day__dot { display: inline-block; flex: 0 0 5px; width: 5px; height: 5px; border-radius: 50%; background: var(--ivc-blue); }
.ivc-day__dot.is-program { background: #00A7C7; }
.ivc-day__dot.is-karbantartas { background: #D78B24; }
.ivc-day__dot.is-nyitvatartas { background: #16845A; }
.ivc-day__dot.is-figyelmeztetes, .ivc-day__dot.is-valtozas { background: #C44747; }
.ivc-day__dot.is-hir { background: #0693E3; }
.ivc-day__more { color: #436D82; font-size: 8px; font-weight: 800; line-height: 1; }
.ivc-day.is-outside { background: transparent; color: #8CA2AE; }
.ivc-day.is-outside .ivc-day__number { font-weight: 500; }
.ivc-day.is-today .ivc-day__number { color: #00699C; text-decoration: underline; text-decoration-color: #69DFFF; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.ivc-day.has-events { border-color: #D6EBF5; background: #EBF8FF; }
.ivc-day.has-events .ivc-day__number { color: #034469; }
.ivc-day.is-selected { border-color: #0693E3; background: #034469; color: #FFFFFF; box-shadow: 0 3px 10px rgba(3, 68, 105, .16); }
.ivc-day.is-selected .ivc-day__number { color: #FFFFFF; }
.ivc-day.is-selected .ivc-day__dot { background: #A8EEFF; }
.ivc-day:hover { border-color: #6CC9F1; background: #E2F4FD; color: var(--ivc-navy); }
.ivc-day.is-selected:hover { background: #005783; color: #FFFFFF; }
.ivc-day:focus-visible { z-index: 2; outline-offset: 1px !important; }
.ivc-calendar-legend { display: flex; align-items: center; gap: 8px; margin: 17px 0 0; color: #5B7888; font-size: 12px; line-height: 1.5; }
.ivc-legend-dot { display: inline-block; flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--ivc-turquoise); }

.ivc-calendar-aside {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-width: 0;
  padding: clamp(24px, 2.8vw, 38px);
  overflow: hidden;
  border-radius: 18px;
  background: linear-gradient(140deg, #034469 0%, #005783 58%, #00799D 100%);
  color: #FFFFFF;
}
.ivc-calendar-aside::after { content: ""; position: absolute; z-index: -1; top: -85px; right: -95px; width: 240px; height: 240px; border: 1px solid rgba(168, 238, 255, .22); border-radius: 50%; box-shadow: 0 0 0 26px rgba(255,255,255,.035), 0 0 0 58px rgba(255,255,255,.025); pointer-events: none; }
.ivc-aside-mark { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 23px; border: 1px solid rgba(168,238,255,.35); border-radius: 14px; background: rgba(6,147,227,.24); color: #A8EEFF; }
.ivc-aside-mark svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ivc-calendar-aside__eyebrow { margin: 0 0 7px; color: #A8EEFF; font-size: 10px; font-weight: 800; letter-spacing: 1.5px; }
.ivc-calendar-aside h3 { margin: 0 0 12px; color: #FFFFFF; font-size: clamp(23px, 2vw, 29px); font-weight: 800; line-height: 1.2; letter-spacing: -.35px; }
.ivc-calendar-aside p:not(.ivc-calendar-aside__eyebrow) { margin: 0 0 13px; color: #F0FAFF; font-size: 14px; line-height: 1.8; }
.ivc-calendar-aside .ivc-calendar-aside__note { margin: 5px 0 0 !important; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.2); color: #D3F5FF !important; font-size: 12px !important; }

/* Hírek és programok kártyái – a hónaptól független, állandó lista */
.ivc-feed { margin-top: clamp(36px, 5vw, 62px); }
.ivc-feed__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 0 0 21px; }
.ivc-feed__heading .ivc-eyebrow { margin-bottom: 8px; }
.ivc-feed__heading h3 { margin: 0; color: var(--ivc-navy); font-size: clamp(24px, 2.6vw, 34px); font-weight: 800; line-height: 1.2; letter-spacing: -.45px; }
.ivc-feed__caption { padding-bottom: 5px; color: #668393; font-size: 13px; }
.ivc-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 20px; }
.ivc-card { min-width: 0; margin: 0; padding: 0; overflow: hidden; border: 1px solid #DCEBF3; border-radius: 15px; background: #FFFFFF; box-shadow: 0 4px 16px rgba(3,68,105,.045); transition: transform .24s ease, border-color .24s ease, box-shadow .24s ease; }
.ivc-card__link { display: flex; flex-direction: column; height: 100%; min-width: 0; color: inherit; text-decoration: none !important; }
.ivc-card__media { position: relative; width: 100%; aspect-ratio: 16 / 9; min-height: 150px; overflow: hidden; background: linear-gradient(135deg, #D9F0FB 0%, #82D5E8 48%, #006A9B 100%); }
.ivc-card__image { display: block; width: 100%; height: 100%; margin: 0; object-fit: cover; object-position: center; transition: transform .45s cubic-bezier(.2,.65,.3,1); }
.ivc-card__placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: rgba(255,255,255,.9); background: radial-gradient(circle at 80% 20%, rgba(168,238,255,.45), transparent 30%), linear-gradient(135deg, #034469, #0693E3); }
.ivc-card__placeholder svg { width: 52px; height: 52px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ivc-date-chip { position: absolute; top: 12px; left: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 50px; min-height: 55px; padding: 5px 8px; border: 1px solid rgba(255,255,255,.7); border-radius: 10px; background: rgba(255,255,255,.96); color: var(--ivc-navy); text-align: center; box-shadow: 0 4px 12px rgba(0,30,52,.12); }
.ivc-date-chip span { font-size: 21px; font-weight: 850; line-height: 1.1; }
.ivc-date-chip small { margin-top: 2px; font-size: 10px; font-weight: 800; line-height: 1.2; text-transform: uppercase; letter-spacing: .6px; }
.ivc-type-chip { position: absolute; right: 11px; bottom: 11px; max-width: calc(100% - 82px); padding: 5px 9px; border: 1px solid rgba(255,255,255,.28); border-radius: 6px; background: rgba(3,68,105,.88); color: #FFFFFF; font-size: 10px; font-weight: 800; line-height: 1.35; letter-spacing: .35px; }
.ivc-type-chip.is-karbantartas { background: rgba(115,76,15,.93); }
.ivc-type-chip.is-nyitvatartas { background: rgba(15,102,70,.93); }
.ivc-type-chip.is-figyelmeztetes, .ivc-type-chip.is-valtozas { background: rgba(142,38,43,.94); }
.ivc-card__content { display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-start; padding: 19px 20px 18px; }
.ivc-card__content h4 { margin: 0 0 9px; color: var(--ivc-navy); font-size: 19px; font-weight: 800; line-height: 1.3; letter-spacing: -.18px; overflow-wrap: anywhere; }
.ivc-card__content p { display: -webkit-box; margin: 0; overflow: hidden; color: #4D6B7D; font-size: 14px; line-height: 1.75; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.ivc-card__more { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 17px; color: #007AA9; font-size: 13px; font-weight: 800; }
.ivc-card__more svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
@media (hover: hover) and (pointer: fine) {
  .ivc-card:hover { transform: translateY(-4px); border-color: rgba(6,147,227,.4); box-shadow: 0 13px 28px rgba(3,68,105,.10); }
  .ivc-card:hover .ivc-card__image { transform: scale(1.045); }
  .ivc-card:hover .ivc-card__more svg { transform: translateX(3px); }
}
.ivc-card__link:focus-visible { border-radius: 14px; outline-offset: -4px !important; }
.ivc-empty-feed { padding: 30px; border: 1px dashed #BBD9E8; border-radius: 14px; background: rgba(255,255,255,.72); text-align: center; }
.ivc-empty-feed__icon { display: inline-flex; align-items: center; justify-content: center; width: 45px; height: 45px; margin-bottom: 10px; border-radius: 14px; background: #E8F7FD; color: #00699C; }
.ivc-empty-feed__icon svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ivc-empty-feed h4 { margin: 0 0 5px; color: var(--ivc-navy); font-size: 18px; }
.ivc-empty-feed p { margin: 0; color: var(--ivc-muted); font-size: 14px; }

/* Felugró eseményablak – natív dialog, Esc bezárja */
.ivc-dialog { width: min(700px, calc(100vw - 28px)); max-width: 700px; max-height: min(82vh, 760px); margin: auto; padding: 0; overflow: auto; border: 1px solid rgba(168,238,255,.42); border-radius: 18px; background: #F5FAFD; color: var(--ivc-ink); box-shadow: 0 28px 80px rgba(0,25,44,.33); }
.ivc-dialog::backdrop { background: rgba(0,28,48,.67); backdrop-filter: blur(3px); }
.ivc-dialog[open] { animation: ivc-dialog-in .2s ease-out both; }
@keyframes ivc-dialog-in { from { opacity: 0; transform: translateY(10px) scale(.99); } to { opacity: 1; transform: translateY(0) scale(1); } }
.ivc-dialog__inner { min-width: 0; }
.ivc-dialog__header { position: sticky; z-index: 2; top: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px 18px; border-bottom: 1px solid rgba(255,255,255,.18); background: linear-gradient(120deg, #034469, #006B99); color: #FFFFFF; }
.ivc-dialog__eyebrow { margin: 0 0 4px; color: #A8EEFF; font-size: 10px; font-weight: 800; letter-spacing: 1.3px; }
.ivc-dialog__title { margin: 0; color: #FFFFFF; font-size: clamp(20px, 3vw, 27px); font-weight: 800; line-height: 1.25; }
.ivc-dialog__close { display: inline-flex; flex: 0 0 42px; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border: 1px solid rgba(255,255,255,.38); border-radius: 11px; background: rgba(255,255,255,.1); color: #FFFFFF; cursor: pointer; }
.ivc-dialog__close:hover { background: rgba(255,255,255,.2); }
.ivc-dialog__close svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.ivc-dialog__body { display: grid; gap: 12px; padding: 20px 24px 24px; }
.ivc-dialog__empty { margin: 0; padding: 20px; border: 1px dashed #BCD9E7; border-radius: 12px; background: #FFFFFF; color: #547184; text-align: center; }
.ivc-dialog-event { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 16px; padding: 14px; border: 1px solid #DCEAF2; border-radius: 13px; background: #FFFFFF; }
.ivc-dialog-event__image { display: block; width: 92px; height: 92px; border-radius: 9px; object-fit: cover; background: #DFF4FB; }
.ivc-dialog-event__no-image { display: flex; align-items: center; justify-content: center; width: 92px; height: 92px; border-radius: 9px; background: linear-gradient(135deg,#034469,#0693E3); color: white; }
.ivc-dialog-event__no-image svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.ivc-dialog-event__type { display: inline-block; margin: 0 0 5px; color: #00719A; font-size: 10px; font-weight: 850; letter-spacing: .6px; text-transform: uppercase; }
.ivc-dialog-event h4 { margin: 0 0 6px; color: var(--ivc-navy); font-size: 18px; font-weight: 800; line-height: 1.3; }
.ivc-dialog-event__meta { margin: 0 0 7px; color: #56778A; font-size: 12px; font-weight: 700; }
.ivc-dialog-event__excerpt { margin: 0 0 10px; color: #3C5D70; font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.ivc-dialog-event__link { display: inline-flex; align-items: center; gap: 7px; color: #006F9E; font-size: 13px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.ivc-dialog-event__link:hover { color: #034469; }
.ivc-dialog-event__link svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Automatikus egyedi hír/programoldal */
.ivc-single-wrap { width: min(1120px, calc(100% - 36px)); margin: 0 auto; padding: clamp(26px, 4vw, 52px) 0 56px; }
.ivc-single-back { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; color: #006F9E; font-size: 13px; font-weight: 800; text-decoration: none; }
.ivc-single-back svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ivc-single-hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(24px, 4vw, 46px); border-radius: 18px; background: linear-gradient(125deg,#034469 0%,#005783 62%,#007DA0 100%); color: #FFFFFF; }
.ivc-single-hero::after { content: ""; position: absolute; z-index: -1; top: -100px; right: -70px; width: 300px; height: 300px; border: 1px solid rgba(168,238,255,.23); border-radius: 50%; box-shadow: 0 0 0 32px rgba(255,255,255,.03), 0 0 0 72px rgba(255,255,255,.02); }
.ivc-single-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 15px; margin: 0 0 15px; color: #D6F5FF; font-size: 12px; font-weight: 750; }
.ivc-single-badge { display: inline-flex; align-items: center; padding: 5px 9px; border: 1px solid rgba(168,238,255,.42); border-radius: 5px; background: rgba(6,147,227,.24); color: #FFFFFF; font-size: 10px; font-weight: 850; letter-spacing: .65px; text-transform: uppercase; }
.ivc-single-title { position: relative; max-width: 920px; margin: 0; color: #FFFFFF; font-size: clamp(30px,4.2vw,50px); font-weight: 850; line-height: 1.1; letter-spacing: -.7px; overflow-wrap: anywhere; text-wrap: balance; }
.ivc-single-summary { max-width: 780px; margin: 18px 0 0; color: #F0FAFF; font-size: clamp(16px,1.5vw,19px); line-height: 1.75; }
.ivc-single-image { display: block; width: 100%; max-height: 500px; margin: 22px 0 0; overflow: hidden; border: 1px solid #D5E7F0; border-radius: 14px; background: #E6F5FB; object-fit: cover; object-position: center; }
.ivc-single-content { max-width: 850px; margin: 23px auto 0; padding: clamp(20px,3vw,32px); border: 1px solid #DDEBF2; border-radius: 14px; background: #FFFFFF; color: #2D5064; box-shadow: 0 5px 18px rgba(3,68,105,.035); overflow-wrap: anywhere; }
.ivc-single-content > :first-child { margin-top: 0; }
.ivc-single-content > :last-child { margin-bottom: 0; }
.ivc-single-content h2, .ivc-single-content h3, .ivc-single-content h4 { color: var(--ivc-navy); line-height: 1.28; }
.ivc-single-content p, .ivc-single-content li { font-size: 16px; line-height: 1.85; }
.ivc-single-content a { color: #006F9E; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.ivc-single-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 20px 0 0; }
.ivc-single-cta a { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 11px 17px; border-radius: 999px; background: #A8EEFF; color: #034469; font-size: 13px; font-weight: 850; text-decoration: none; }
.ivc-single-cta a:hover { background: #D8F8FF; }
.ivc-related { margin-top: 45px; }
.ivc-related h2 { margin: 0 0 18px; color: var(--ivc-navy); font-size: clamp(23px,2.6vw,31px); line-height: 1.2; }
.ivc-related .ivc-cards { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.ivc-related .ivc-card__content { padding: 15px 16px; }
.ivc-related .ivc-card__content h4 { font-size: 16px; }
.ivc-related .ivc-card__content p { font-size: 13px; }

/* Archive page */
.ivc-archive-main { min-height: 50vh; background: linear-gradient(180deg,#F3FAFE,#FFFFFF 65%,#F7FBFE); }
.ivc-archive-intro { width: min(1240px,100%); margin: 0 auto; padding: 30px clamp(14px,2.5vw,34px) 0; }

@media (max-width: 1024px) {
  .ivc-calendar-area { grid-template-columns: minmax(0,1.4fr) minmax(210px,.8fr); gap: 16px; }
  .ivc-calendar-panel { padding: 18px; }
  .ivc-day { min-height: 51px; padding-top: 7px; }
  .ivc-cards { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .ivc-card__media { min-height: 135px; }
}
@media (max-width: 760px) {
  .ivc-calendar-area { grid-template-columns: minmax(0,1fr); }
  .ivc-calendar-aside { padding: 24px; }
  .ivc-aside-mark { margin-bottom: 15px; }
  .ivc-calendar-aside h3 { font-size: 24px; }
  .ivc-calendar-aside p:not(.ivc-calendar-aside__eyebrow) { font-size: 14px; }
  .ivc-feed__heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .ivc-feed__caption { padding-bottom: 0; }
}
@media (max-width: 600px) {
  .ivc-app { padding: 27px 13px 38px; }
  .ivc-intro { margin-bottom: 24px; }
  .ivc-main-title { font-size: clamp(27px,7.5vw,35px); letter-spacing: -.45px; }
  .ivc-intro__text { font-size: 15px; line-height: 1.75; }
  .ivc-calendar-panel { padding: 13px 10px 15px; border-radius: 14px; }
  .ivc-calendar-toolbar { gap: 8px; margin-bottom: 13px; }
  .ivc-month-title { font-size: 20px; }
  .ivc-calendar-toolbar__label { font-size: 9px; }
  .ivc-calendar-toolbar__controls { gap: 5px; }
  .ivc-month-nav { width: 42px; height: 42px; border-radius: 10px; }
  .ivc-weekdays { gap: 2px; margin-bottom: 4px; }
  .ivc-weekdays span { min-height: 23px; font-size: 10px; }
  .ivc-calendar-grid { gap: 3px; }
  .ivc-day { min-height: 45px; gap: 4px; padding: 7px 1px 4px; border-radius: 7px; }
  .ivc-day__number { font-size: 12px; }
  .ivc-day__markers { gap: 2px; min-height: 5px; }
  .ivc-day__dot { flex-basis: 4px; width: 4px; height: 4px; }
  .ivc-day__more { font-size: 7px; }
  .ivc-calendar-legend { margin-top: 12px; font-size: 11px; }
  .ivc-calendar-aside { border-radius: 14px; }
  .ivc-cards { grid-template-columns: minmax(0,1fr); gap: 14px; }
  .ivc-card { border-radius: 13px; }
  .ivc-card__media { aspect-ratio: 16 / 9; min-height: 0; max-height: 245px; }
  .ivc-card__content { padding: 16px 17px; }
  .ivc-card__content h4 { font-size: 18px; }
  .ivc-card__content p { -webkit-line-clamp: 3; }
  .ivc-date-chip { top: 9px; left: 9px; min-width: 46px; min-height: 50px; }
  .ivc-date-chip span { font-size: 19px; }
  .ivc-type-chip { right: 8px; bottom: 8px; font-size: 9px; }
  .ivc-dialog { width: calc(100vw - 16px); max-height: 88vh; border-radius: 14px; }
  .ivc-dialog__header { padding: 18px 16px 15px; gap: 12px; }
  .ivc-dialog__body { padding: 13px; gap: 10px; }
  .ivc-dialog-event { grid-template-columns: 68px minmax(0,1fr); gap: 11px; padding: 10px; }
  .ivc-dialog-event__image, .ivc-dialog-event__no-image { width: 68px; height: 68px; }
  .ivc-dialog-event h4 { font-size: 16px; }
  .ivc-dialog-event__excerpt { font-size: 13px; }
  .ivc-single-wrap { width: calc(100% - 24px); padding: 22px 0 38px; }
  .ivc-single-hero { padding: 23px 19px; border-radius: 14px; }
  .ivc-single-title { font-size: clamp(28px,8vw,38px); }
  .ivc-single-summary { margin-top: 12px; font-size: 15px; }
  .ivc-single-image { margin-top: 15px; max-height: 330px; border-radius: 10px; }
  .ivc-single-content { margin-top: 15px; padding: 19px 17px; border-radius: 11px; }
  .ivc-single-content p, .ivc-single-content li { font-size: 15px; line-height: 1.75; }
  .ivc-related { margin-top: 32px; }
  .ivc-related .ivc-cards { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 360px) {
  .ivc-app { padding-right: 9px; padding-left: 9px; }
  .ivc-calendar-panel { padding-right: 6px; padding-left: 6px; }
  .ivc-day { min-height: 41px; }
  .ivc-day__number { font-size: 11px; }
  .ivc-calendar-toolbar__controls { gap: 3px; }
  .ivc-month-nav { width: 38px; height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .ivc-app *, .ivc-app *::before, .ivc-app *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; }
}
@media (forced-colors: active) {
  .ivc-app button:focus-visible, .ivc-app a:focus-visible { outline: 2px solid CanvasText !important; }
  .ivc-day.has-events, .ivc-day.is-selected { border: 2px solid ButtonText; }
}

/* ==========================================
   1.0.1 – KONTRASZT, CÍMSORMÉRETEK ÉS KOMPAKT OLDALAK
   Szabályok célzottan a bővítmény saját elemeire érvényesek.
   ========================================== */

/* A színváltozók a saját bejegyzésoldalakon és az archívumban is elérhetők. */
.ivc-single-wrap,
.ivc-archive-main {
  --ivc-navy: #034469;
  --ivc-blue: #0693E3;
  --ivc-blue-mid: #006A9B;
  --ivc-turquoise: #00A7C7;
  --ivc-cyan: #A8EEFF;
  --ivc-ink: #153F56;
  --ivc-muted: #5D7888;
  --ivc-border: #D8EAF3;
  --ivc-surface: #FFFFFF;
}

/* Főcímek: ne öröklődjön be az Elementor/tema túlméretezett h1/h2 stílusa. */
.ivc-app .ivc-intro .ivc-main-title {
  margin: 0 0 13px !important;
  padding: 0 !important;
  color: #034469 !important;
  font-family: inherit !important;
  font-size: clamp(28px, 2.8vw, 40px) !important;
  font-weight: 800 !important;
  line-height: 1.14 !important;
  letter-spacing: -.55px !important;
  text-transform: none !important;
  overflow-wrap: break-word;
  text-wrap: balance;
}

.ivc-app .ivc-intro .ivc-intro__text {
  color: #34596E !important;
  font-size: clamp(15px, 1.15vw, 17px) !important;
  line-height: 1.75 !important;
}

/* Naptár napjai: a mai nap és a kiválasztott nap mindig erős kontrasztú. */
.ivc-app .ivc-calendar-grid .ivc-day {
  color: #234D64 !important;
  background: #F6FAFD !important;
  border-color: transparent !important;
  -webkit-appearance: none;
  appearance: none;
  font-family: inherit !important;
  text-shadow: none !important;
}

.ivc-app .ivc-calendar-grid .ivc-day .ivc-day__number {
  color: inherit !important;
  font-size: 14px !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
  opacity: 1 !important;
  text-decoration-thickness: 2px;
}

.ivc-app .ivc-calendar-grid .ivc-day.is-outside {
  color: #718A98 !important;
  background: #FFFFFF !important;
}

.ivc-app .ivc-calendar-grid .ivc-day.has-events:not(.is-selected) {
  color: #034469 !important;
  background: #E9F7FD !important;
  border-color: #CBE7F4 !important;
}

.ivc-app .ivc-calendar-grid .ivc-day.is-today:not(.is-selected) {
  color: #034469 !important;
  background: #DDF5FF !important;
  border: 2px solid #0075A8 !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.85) !important;
}

.ivc-app .ivc-calendar-grid .ivc-day.is-today:not(.is-selected) .ivc-day__number {
  color: #034469 !important;
  font-weight: 900 !important;
  text-decoration: underline !important;
  text-decoration-color: #0075A8 !important;
  text-underline-offset: 3px;
}

.ivc-app .ivc-calendar-grid .ivc-day.is-selected,
.ivc-app .ivc-calendar-grid .ivc-day.is-selected:hover,
.ivc-app .ivc-calendar-grid .ivc-day.is-selected:focus-visible {
  color: #FFFFFF !important;
  background: #034469 !important;
  border: 2px solid #0693E3 !important;
  box-shadow: 0 3px 10px rgba(3,68,105,.20) !important;
}

.ivc-app .ivc-calendar-grid .ivc-day.is-selected .ivc-day__number,
.ivc-app .ivc-calendar-grid .ivc-day.is-selected .ivc-day__more {
  color: #FFFFFF !important;
  text-decoration: none !important;
}

.ivc-app .ivc-calendar-grid .ivc-day.is-selected .ivc-day__dot {
  background: #A8EEFF !important;
}

.ivc-app .ivc-calendar-grid .ivc-day:hover:not(.is-selected) {
  color: #034469 !important;
  background: #DDF3FC !important;
  border-color: #79CDEB !important;
}

.ivc-app .ivc-calendar-grid .ivc-day:focus-visible {
  z-index: 3;
  outline: 3px solid #0075A8 !important;
  outline-offset: 2px !important;
}

.ivc-app .ivc-calendar-grid .ivc-day.is-selected:focus-visible {
  outline-color: #A8EEFF !important;
  box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 5px #034469 !important;
}

/* A dátumot mutató párbeszédablak címe: fehér és kompakt marad sötét háttéren. */
.ivc-app .ivc-dialog .ivc-dialog__header .ivc-dialog__eyebrow {
  margin: 0 0 5px !important;
  color: #A8EEFF !important;
  font-family: inherit !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  line-height: 1.5 !important;
  letter-spacing: 1.25px !important;
}

.ivc-app .ivc-dialog .ivc-dialog__header h3.ivc-dialog__title {
  max-width: min(560px, calc(100vw - 110px));
  margin: 0 !important;
  padding: 0 !important;
  color: #FFFFFF !important;
  font-family: inherit !important;
  font-size: clamp(19px, 2.2vw, 25px) !important;
  font-weight: 800 !important;
  line-height: 1.28 !important;
  letter-spacing: -.2px !important;
  text-transform: none !important;
  text-shadow: none !important;
  overflow-wrap: anywhere;
}

.ivc-app .ivc-dialog__header {
  background: linear-gradient(120deg, #034469 0%, #005783 65%, #006B99 100%) !important;
  color: #FFFFFF !important;
}

.ivc-app .ivc-dialog__close {
  flex-shrink: 0;
  min-width: 44px;
  min-height: 44px;
}

/* A naptár melletti leírás természetes méretű, olvasható címmel. */
.ivc-app .ivc-calendar-aside h3 {
  margin: 0 0 12px !important;
  color: #FFFFFF !important;
  font-family: inherit !important;
  font-size: clamp(22px, 1.8vw, 27px) !important;
  font-weight: 800 !important;
  line-height: 1.23 !important;
  letter-spacing: -.25px !important;
  text-transform: none !important;
}

.ivc-app .ivc-calendar-aside p:not(.ivc-calendar-aside__eyebrow) {
  color: #F1FAFE !important;
  font-size: 14px !important;
  line-height: 1.72 !important;
}

.ivc-app .ivc-calendar-aside .ivc-calendar-aside__note {
  color: #D8F5FF !important;
  font-size: 12px !important;
  line-height: 1.65 !important;
}

/* Hírfolyam címe – kisebb méret, egységes szín. */
.ivc-app .ivc-feed .ivc-feed__heading h3,
.ivc-single-wrap .ivc-related .ivc-feed .ivc-feed__heading h3 {
  margin: 0 !important;
  padding: 0 !important;
  color: #034469 !important;
  font-family: inherit !important;
  font-size: clamp(22px, 2.15vw, 29px) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -.35px !important;
  text-transform: none !important;
  overflow-wrap: break-word;
  text-wrap: balance;
}

.ivc-app .ivc-feed__caption {
  color: #58788B !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}

/* Önálló program/híroldal: kompakt címsáv a webhely globális H1 stílusától függetlenül. */
.ivc-single-wrap {
  --ivc-navy: #034469;
  --ivc-blue: #0693E3;
  --ivc-blue-mid: #006A9B;
  --ivc-turquoise: #00A7C7;
  --ivc-cyan: #A8EEFF;
  --ivc-ink: #153F56;
  --ivc-muted: #5D7888;
  --ivc-border: #D8EAF3;
  --ivc-surface: #FFFFFF;
  width: min(1040px, calc(100% - 36px));
}

.ivc-single-wrap .ivc-single-hero {
  padding: clamp(21px, 2.8vw, 34px) !important;
  border-radius: 16px !important;
}

.ivc-single-wrap .ivc-single-hero h1.ivc-single-title {
  max-width: 760px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #FFFFFF !important;
  font-family: inherit !important;
  font-size: clamp(27px, 3.1vw, 39px) !important;
  font-weight: 850 !important;
  line-height: 1.16 !important;
  letter-spacing: -.4px !important;
  text-transform: none !important;
  text-shadow: none !important;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.ivc-single-wrap .ivc-single-meta {
  color: #E1F7FF !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
}

.ivc-single-wrap .ivc-single-summary {
  max-width: 720px;
  margin-top: 13px !important;
  color: #F1FAFE !important;
  font-size: clamp(15px, 1.25vw, 17px) !important;
  line-height: 1.65 !important;
}

.ivc-single-wrap .ivc-single-image {
  max-height: 420px !important;
  margin-top: 18px !important;
  object-fit: contain !important;
  background: #EAF7FD;
}

.ivc-single-wrap .ivc-single-content {
  max-width: 780px;
  margin-top: 18px !important;
  padding: clamp(18px, 2.5vw, 27px) !important;
  color: #2D5064 !important;
  font-size: 16px;
  line-height: 1.75;
}

.ivc-single-wrap .ivc-single-content h2,
.ivc-single-wrap .ivc-single-content h3,
.ivc-single-wrap .ivc-single-content h4 {
  color: #034469 !important;
  font-family: inherit !important;
  line-height: 1.3 !important;
}

.ivc-single-wrap .ivc-related {
  margin-top: 34px !important;
}

/* Kártyacímek is maradjanak visszafogottak hosszú tesztcímeknél. */
.ivc-app .ivc-card__content h4 {
  color: #034469 !important;
  font-size: clamp(17px, 1.35vw, 19px) !important;
  line-height: 1.35 !important;
  overflow-wrap: anywhere;
}

/* Mobil finomhangolás */
@media (max-width: 600px) {
  .ivc-app .ivc-intro .ivc-main-title {
    font-size: clamp(26px, 7vw, 34px) !important;
    line-height: 1.16 !important;
  }

  .ivc-app .ivc-calendar-grid .ivc-day .ivc-day__number {
    font-size: 12px !important;
  }

  .ivc-app .ivc-dialog .ivc-dialog__header h3.ivc-dialog__title {
    max-width: calc(100vw - 112px);
    font-size: 20px !important;
    line-height: 1.3 !important;
  }

  .ivc-app .ivc-feed .ivc-feed__heading h3,
  .ivc-single-wrap .ivc-related .ivc-feed .ivc-feed__heading h3 {
    font-size: 24px !important;
    line-height: 1.22 !important;
  }

  .ivc-app .ivc-calendar-aside h3 {
    font-size: 23px !important;
  }

  .ivc-single-wrap {
    width: calc(100% - 24px);
    padding-top: 22px;
    padding-bottom: 36px;
  }

  .ivc-single-wrap .ivc-single-hero {
    padding: 21px 18px !important;
    border-radius: 13px !important;
  }

  .ivc-single-wrap .ivc-single-hero h1.ivc-single-title {
    font-size: clamp(25px, 7vw, 32px) !important;
    line-height: 1.18 !important;
  }

  .ivc-single-wrap .ivc-single-image {
    max-height: 310px !important;
    margin-top: 14px !important;
  }

  .ivc-single-wrap .ivc-single-content {
    padding: 18px 16px !important;
  }
}

@media (max-width: 360px) {
  .ivc-app .ivc-dialog .ivc-dialog__header h3.ivc-dialog__title {
    font-size: 18px !important;
  }

  .ivc-single-wrap .ivc-single-hero h1.ivc-single-title {
    font-size: 25px !important;
  }
}

/* Fallback a natív dialog támogatása nélküli böngészőkhöz. */
.ivc-app .ivc-dialog.is-open-fallback {
  position: fixed !important;
  z-index: 99999 !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  display: block !important;
  margin: 0 !important;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 0 100vmax rgba(0, 28, 48, .67), 0 28px 80px rgba(0, 25, 44, .33) !important;
}
