/* VIVA EVENT main-site typography (fonts are self-hosted, SIL OFL 1.1 — see fonts/*-OFL.txt).
   Every override below is inactive until the matching html.viva-type-* class is set
   by typography.js, so the site keeps its current look when no settings are saved.
   Partner mini-sites (.partner-site-mode / .partner-site-view) are never targeted. */
@font-face { font-family: "VIVA Playfair Display"; font-style: normal; font-display: swap; font-weight: 400 900; src: url("/fonts/playfair-display-cyrillic-wght-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "VIVA Playfair Display"; font-style: normal; font-display: swap; font-weight: 400 900; src: url("/fonts/playfair-display-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "VIVA Cormorant Garamond"; font-style: normal; font-display: swap; font-weight: 300 700; src: url("/fonts/cormorant-garamond-cyrillic-wght-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "VIVA Cormorant Garamond"; font-style: normal; font-display: swap; font-weight: 300 700; src: url("/fonts/cormorant-garamond-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "VIVA Lora"; font-style: normal; font-display: swap; font-weight: 400 700; src: url("/fonts/lora-cyrillic-wght-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "VIVA Lora"; font-style: normal; font-display: swap; font-weight: 400 700; src: url("/fonts/lora-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "VIVA Montserrat"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("/fonts/montserrat-cyrillic-wght-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "VIVA Montserrat"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("/fonts/montserrat-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "VIVA Inter"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("/fonts/inter-cyrillic-wght-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "VIVA Inter"; font-style: normal; font-display: swap; font-weight: 100 900; src: url("/fonts/inter-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

@font-face { font-family: "VIVA Manrope"; font-style: normal; font-display: swap; font-weight: 200 800; src: url("/fonts/manrope-cyrillic-wght-normal.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "VIVA Manrope"; font-style: normal; font-display: swap; font-weight: 200 800; src: url("/fonts/manrope-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Global main-site typography ("Modern Elegant Luxury" defaults, editable in admin).
   Active only when typography.js sets html.viva-type-active; never applies to the
   home Hero, the sidebar/footer or partner mini-sites (.partner-site-mode). */
html.viva-type-active .content:not(.partner-site-mode) :is(.below-hero, .events-view, .event-details-view, .about-view, .projects-view, .partners-view, .professionals-view, .contact-view, .project-overview-view, .project-about-view, .project-contact-view, .photo-gallery-view, .photo-album-view, .video-gallery-view, .news-blog-view, .article-view, .faq-view, .privacy-view, .happy-day-about-view, .happy-day-contact-view) :is(h1, h2, h3) { font-family: var(--viva-type-heading-font); letter-spacing: var(--viva-type-heading-letter-spacing); overflow-wrap: break-word; hyphens: manual; }
html.viva-type-active .content:not(.partner-site-mode) :is(.below-hero, .events-view, .event-details-view, .about-view, .projects-view, .partners-view, .professionals-view, .contact-view, .project-overview-view, .project-about-view, .project-contact-view, .photo-gallery-view, .photo-album-view, .video-gallery-view, .news-blog-view, .article-view, .faq-view, .privacy-view, .happy-day-about-view, .happy-day-contact-view) h1 { font-size: clamp(calc(var(--viva-type-h1-min) * 1px), calc(var(--viva-type-h1-min) * 1px + (var(--viva-type-h1) - var(--viva-type-h1-min)) * (100vw - 390px) / 890), calc(var(--viva-type-h1) * 1px)); font-weight: var(--viva-type-heading-weight); line-height: var(--viva-type-heading-line-height); }
html.viva-type-active .content:not(.partner-site-mode) :is(.below-hero, .events-view, .event-details-view, .about-view, .projects-view, .partners-view, .professionals-view, .contact-view, .project-overview-view, .project-about-view, .project-contact-view, .photo-gallery-view, .photo-album-view, .video-gallery-view, .news-blog-view, .article-view, .faq-view, .privacy-view, .happy-day-about-view, .happy-day-contact-view) h2 { font-size: clamp(calc(var(--viva-type-h2-min) * 1px), calc(var(--viva-type-h2-min) * 1px + (var(--viva-type-h2) - var(--viva-type-h2-min)) * (100vw - 390px) / 890), calc(var(--viva-type-h2) * 1px)); font-weight: var(--viva-type-heading-weight); line-height: var(--viva-type-h2-line-height); }
html.viva-type-active .content:not(.partner-site-mode) :is(.below-hero, .events-view, .event-details-view, .about-view, .projects-view, .partners-view, .professionals-view, .contact-view, .project-overview-view, .project-about-view, .project-contact-view, .photo-gallery-view, .photo-album-view, .video-gallery-view, .news-blog-view, .article-view, .faq-view, .privacy-view, .happy-day-about-view, .happy-day-contact-view) h3 { font-size: clamp(calc(var(--viva-type-h3-min) * 1px), calc(var(--viva-type-h3-min) * 1px + (var(--viva-type-h3) - var(--viva-type-h3-min)) * (100vw - 390px) / 890), calc(var(--viva-type-h3) * 1px)); font-weight: var(--viva-type-h3-weight); line-height: var(--viva-type-h3-line-height); }
html.viva-type-active .content:not(.partner-site-mode) :is(.below-hero, .events-view, .event-details-view, .about-view, .projects-view, .partners-view, .professionals-view, .contact-view, .project-overview-view, .project-about-view, .project-contact-view, .photo-gallery-view, .photo-album-view, .video-gallery-view, .news-blog-view, .article-view, .faq-view, .privacy-view, .happy-day-about-view, .happy-day-contact-view), html.viva-type-active .content:not(.partner-site-mode) :is(.below-hero, .events-view, .event-details-view, .about-view, .projects-view, .partners-view, .professionals-view, .contact-view, .project-overview-view, .project-about-view, .project-contact-view, .photo-gallery-view, .photo-album-view, .video-gallery-view, .news-blog-view, .article-view, .faq-view, .privacy-view, .happy-day-about-view, .happy-day-contact-view) :is(p, li):where(:not([class*="eyebrow"]):not([class*="kicker"]):not([class*="label"]):not([class*="category"]):not([class*="meta"]):not([class*="status"]):not([class*="badge"]):not([class*="script"])) { font-family: var(--viva-type-body-font); }
html.viva-type-active .content:not(.partner-site-mode) :is(.below-hero, .events-view, .event-details-view, .about-view, .projects-view, .partners-view, .professionals-view, .contact-view, .project-overview-view, .project-about-view, .project-contact-view, .photo-gallery-view, .photo-album-view, .video-gallery-view, .news-blog-view, .article-view, .faq-view, .privacy-view, .happy-day-about-view, .happy-day-contact-view) :is(p, li):where(:not([class*="eyebrow"]):not([class*="kicker"]):not([class*="label"]):not([class*="category"]):not([class*="meta"]):not([class*="status"]):not([class*="badge"]):not([class*="script"])) { font-size: clamp(calc(var(--viva-type-body-min) * 1px), calc(var(--viva-type-body-min) * 1px + (var(--viva-type-body) - var(--viva-type-body-min)) * (100vw - 390px) / 890), calc(var(--viva-type-body) * 1px)); font-weight: var(--viva-type-body-weight); line-height: var(--viva-type-body-line-height); overflow-wrap: break-word; }
html.viva-type-active .content:not(.partner-site-mode) :is(.below-hero, .events-view, .event-details-view, .about-view, .projects-view, .partners-view, .professionals-view, .contact-view, .project-overview-view, .project-about-view, .project-contact-view, .photo-gallery-view, .photo-album-view, .video-gallery-view, .news-blog-view, .article-view, .faq-view, .privacy-view, .happy-day-about-view, .happy-day-contact-view) :is(figcaption, small, time, [class*="caption"]) { font-size: calc(var(--viva-type-caption) * 1px); font-weight: 400; }
html.viva-type-active .content:not(.partner-site-mode) :is(.below-hero, .events-view, .event-details-view, .about-view, .projects-view, .partners-view, .professionals-view, .contact-view, .project-overview-view, .project-about-view, .project-contact-view, .photo-gallery-view, .photo-album-view, .video-gallery-view, .news-blog-view, .article-view, .faq-view, .privacy-view, .happy-day-about-view, .happy-day-contact-view) :is(button, a[class*="button"], a[class*="btn"], a[class*="cta"]) { font-family: var(--viva-type-button-font); font-size: calc(var(--viva-type-button) * 1px); font-weight: var(--viva-type-button-weight); }

/* Per-article typography (news editor). Overrides the global values for one article only. */
.content:not(.partner-site-mode) .article-view .article-layout[data-type-title-font] .article-header h1 { font-family: var(--viva-article-title-font); }
.content:not(.partner-site-mode) .article-view .article-layout[data-type-title-size] .article-header h1 { font-size: clamp(calc(var(--viva-article-title-size-min) * 1px), calc(var(--viva-article-title-size-min) * 1px + (var(--viva-article-title-size) - var(--viva-article-title-size-min)) * (100vw - 390px) / 890), calc(var(--viva-article-title-size) * 1px)); }
.content:not(.partner-site-mode) .article-view .article-layout[data-type-body-size] :is(.article-excerpt, .article-body p, .article-body li) { font-size: clamp(calc(var(--viva-article-body-size-min) * 1px), calc(var(--viva-article-body-size-min) * 1px + (var(--viva-article-body-size) - var(--viva-article-body-size-min)) * (100vw - 390px) / 890), calc(var(--viva-article-body-size) * 1px)); }
/* News & Blog card titles: compact component heading (18–20 px), still in the global heading font */
html.viva-type-active .content:not(.partner-site-mode) .news-blog-view .news-blog-card h2 { font-size: clamp(18px, calc(18px + 2 * (100vw - 390px) / 890), 20px); font-weight: 600; line-height: 1.3; }
html.viva-type-active .content:not(.partner-site-mode) .news-blog-view .news-blog-card p { font-size: 15px; line-height: 1.6; }