/*
 * alternet/* blocks and the className-based styles the converter puts on
 * core blocks (alt-pad-*, alt-shadow, alt-radius, alt-sp*-*, ...).
 * Colour variables (--alt-*) come from the theme; fallbacks here for the editor.
 */

/* ---------- section ---------- */
.alt-section {
  /* clip, not hidden: hidden would stop sticky sub-menus inside from sticking */
  position: relative; overflow: clip;
  padding-top: var(--alt-pt, 0); padding-bottom: var(--alt-pb, 0);
}
.alt-section.is-contained { overflow: visible; }
.alt-section-bg {
  position: absolute; inset: 0; background-size: cover; background-repeat: no-repeat; z-index: 0;
}
.alt-section.is-parallax .alt-section-bg { inset: -8% 0; will-change: transform; }
.alt-section-overlay { position: absolute; inset: 0; z-index: 0; }
.alt-section-inner { position: relative; z-index: 2; }
.alt-section-inner.is-full { padding: 0; }
.alt-section.is-light { color: #fff; }
.alt-section.is-light :where(h1, h2, h3, h4, h5, h6, p, li) { color: #fff; }
.alt-section.is-light a:where(:not(.wp-block-button__link)) { color: #fff; }
.alt-section.has-text-align-center { text-align: center; }
.alt-section.has-text-align-right { text-align: right; }
.alt-shape { position: absolute; left: 0; right: 0; bottom: -1px; height: min(var(--alt-shape-h, 350px), 24vw); z-index: 1; line-height: 0; pointer-events: none; }
.alt-shape svg { width: 100%; height: 100%; display: block; }
.alt-section-editor { position: relative; padding: 24px 0; outline: 1px dashed rgba(0,0,0,.15); }
.alt-section-editor.is-hidden-section { opacity: .5; }
.alt-section-editor-label { position: absolute; top: 4px; right: 8px; font-size: 11px; opacity: .6; z-index: 3; }

/* ---------- columns (WPBakery column options as classes) ---------- */
.wp-block-column { position: relative; }
.wp-block-column.alt-pad-2 { padding: 2%; }
.wp-block-column.alt-pad-3 { padding: 3%; }
.wp-block-column.alt-pad-5 { padding: 5%; }
.wp-block-column.alt-pad-7 { padding: 7%; }
.wp-block-column.alt-shadow { box-shadow: 0 30px 90px -20px rgba(0,0,0,.08); }
.wp-block-column.alt-radius { border-radius: 5px; overflow: hidden; }
.wp-block-column.alt-center { text-align: center; }
/* WPBakery's boxed column: a white card */
.wp-block-column.alt-boxed { background: #fff; padding: 25px 15px 15px; box-shadow: 0 1px 1px rgba(0,0,0,.1); }
.wp-block-column.alt-hover-mint { transition: background-color .3s; }
.wp-block-column.alt-hover-mint:hover { background-color: #ebf5f4 !important; }
.wp-block-columns > .wp-block-column.alt-mx-100 { margin-left: 120px; margin-right: 120px; }
.wp-block-columns > .wp-block-column.alt-ml-30 { margin-left: 50px; }
.alt-column-link { position: absolute; inset: 0; z-index: 5; }
.wp-block-column.has-alt-link { cursor: pointer; }
.wp-block-columns.alt-equal > .wp-block-column { align-self: stretch; }
@media (max-width: 1000px) {
  .wp-block-columns > .wp-block-column.alt-mx-100 { margin-left: 70px; margin-right: 70px; }
  .wp-block-columns > .wp-block-column.alt-ml-30 { margin-left: 20px; }
}
@media (max-width: 690px) {
  .wp-block-columns > .wp-block-column.alt-mx-100 { margin-left: 40px; margin-right: 40px; }
}

/* ---------- spacers: desktop height is the block's; tablet/phone via classes ---------- */
@media (max-width: 1000px) {
  .wp-block-spacer.alt-spt-0 { height: 0 !important; } .wp-block-spacer.alt-spt-10 { height: 10px !important; }
  .wp-block-spacer.alt-spt-15 { height: 15px !important; } .wp-block-spacer.alt-spt-20 { height: 20px !important; }
  .wp-block-spacer.alt-spt-30 { height: 30px !important; } .wp-block-spacer.alt-spt-40 { height: 40px !important; }
  .wp-block-spacer.alt-spt-60 { height: 60px !important; } .wp-block-spacer.alt-spt-80 { height: 80px !important; }
}
@media (max-width: 690px) {
  .wp-block-spacer.alt-spp-0 { height: 0 !important; } .wp-block-spacer.alt-spp-10 { height: 10px !important; }
  .wp-block-spacer.alt-spp-15 { height: 15px !important; } .wp-block-spacer.alt-spp-20 { height: 20px !important; }
  .wp-block-spacer.alt-spp-30 { height: 30px !important; } .wp-block-spacer.alt-spp-40 { height: 40px !important; }
  .wp-block-spacer.alt-spp-60 { height: 60px !important; } .wp-block-spacer.alt-spp-80 { height: 80px !important; }
}
.wp-block-separator.alt-line-small { width: 50px; border-top-width: 2px; margin-left: 0; }
.wp-block-separator.alt-line-thick { border-top-width: 5px; }

/* ---------- headings / images from the former theme ---------- */
.alt-heading-narrow { max-width: 800px; margin-left: auto; margin-right: auto; }
.wp-block-image.alt-maxw-75 img { max-width: 75%; }
.wp-block-image.alt-maxw-50 img { max-width: 50%; }
.wp-block-image.alt-shadow img { box-shadow: 0 30px 90px -20px rgba(0,0,0,.15); }
.wp-block-image.alt-radius img { border-radius: 3px; }
.wp-block-embed.alt-w-50 { width: 50%; } .wp-block-embed.alt-w-60 { width: 60%; }
.wp-block-embed.alt-w-70 { width: 70%; } .wp-block-embed.alt-w-80 { width: 80%; }
.wp-block-embed.alt-w-50, .wp-block-embed.alt-w-60, .wp-block-embed.alt-w-70, .wp-block-embed.alt-w-80 { margin-left: auto; margin-right: auto; }
@media (max-width: 690px) { .wp-block-embed[class*="alt-w-"] { width: 100%; } }
.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper { position: relative; }
.wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper::before { content: ''; display: block; padding-top: 56.25%; }
.wp-block-embed.wp-has-aspect-ratio iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* ---------- CTA ---------- */
.alt-cta { margin-bottom: 24px; }
.alt-cta h6 { margin: 0; font-family: 'TomaSans-SemiBold', sans-serif; font-size: 14px; line-height: 14px; letter-spacing: 1px; }
.alt-cta.has-text-align-center { text-align: center; }
.alt-cta.has-text-align-right { text-align: right; }
.alt-cta a, .alt-cta .alt-cta-nolink { color: var(--alt-cta-color, #27348b); font-weight: 600; }
.alt-cta.is-style-arrow a { position: relative; display: inline-block; padding-left: 40px; transition: padding .3s; }
.alt-cta .alt-cta-line {
  position: absolute; left: 0; top: 50%; width: 25px; height: 1px; background: currentColor; transition: width .3s;
}
.alt-cta .alt-cta-line .fa { position: absolute; right: -3px; top: -7px; font-size: 14px; opacity: 0; transition: opacity .3s; }
.alt-cta.is-style-arrow a:hover { padding-left: 50px; color: var(--alt-cta-hover, var(--alt-cta-color)); }
.alt-cta.is-style-arrow a:hover .alt-cta-line { width: 40px; }
.alt-cta.is-style-arrow a:hover .alt-cta-line .fa { opacity: 1; }
.alt-cta.is-style-outline a { position: relative; display: inline-block; padding-right: 36px; }
.alt-cta.is-style-outline a::after {
  content: '\f105'; font-family: FontAwesome; position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  width: 22px; height: 22px; line-height: 20px; text-align: center; border: 1px solid currentColor; border-radius: 50%;
  font-size: 13px; letter-spacing: 0; transition: background-color .25s, color .25s;
}
.alt-cta.is-style-outline a:hover { color: var(--alt-cta-hover, var(--alt-cta-color)); }
.alt-cta.is-style-outline a:hover::after { background: var(--alt-cta-hover, var(--alt-cta-color)); border-color: var(--alt-cta-hover, var(--alt-cta-color)); color: #fff; }
.alt-cta.is-style-material a {
  display: inline-block; background: var(--alt-cta-bg, var(--alt-cta-color)); color: #fff; border-radius: 200px; padding: var(--alt-cta-pad, 15px 22px);
  box-shadow: 0 9px 20px -5px rgba(0,0,0,.25); transition: transform .2s, background-color .2s;
}
.alt-cta.is-style-material a:hover { transform: translateY(-2px); background: var(--alt-cta-hover, var(--alt-cta-bg, var(--alt-cta-color))); color: #fff; }
.alt-cta.is-style-material.has-bg a, .alt-cta.is-style-material.has-bg a:hover { color: var(--alt-cta-color); }

/* ---------- team member ---------- */
.alt-team-member { margin: 7px 0 24px; padding-bottom: 7px; }
.alt-team-image { display: block; margin-bottom: 15px; }
.alt-team-image img { width: 100%; height: auto; display: block; }
.alt-team-name { font-family: 'TomaSans-Bold', sans-serif; font-size: 18px !important; line-height: 20px !important; font-weight: 700; margin: 0 0 2px; color: var(--alt-accent, #27348b); }
.alt-team-name a { color: inherit; font-weight: inherit; }
.alt-team-position { font-family: 'TomaSans-Light', sans-serif; font-size: 16px; line-height: 24px; color: var(--alt-text, #4f5059); padding: 0; }
.alt-team-description { font-size: 15px; line-height: 22px; margin-top: 10px; }

/* ---------- page sub-menu ---------- */
.alt-page-submenu {
  /* Full-width bar, links inside the content width. */
  width: 100vw; margin-left: calc(50% - 50vw); margin-bottom: 0; z-index: 20; background: #fff;
}
.alt-page-submenu ul {
  list-style: none; margin: 0 auto; max-width: var(--alt-container, 1500px); padding: 0 var(--alt-gutter, 90px);
  display: flex; flex-wrap: wrap; column-gap: 25px;
}
.alt-page-submenu li a { display: block; padding: 20px 0; }
.alt-page-submenu.has-text-align-center ul { justify-content: center; }
.alt-page-submenu a { color: var(--alt-submenu-link, #000); font-weight: 600; font-size: 16px; line-height: 24px; }
.alt-page-submenu a:hover { opacity: .75; }
.alt-page-submenu.is-sticky { position: sticky; top: var(--alt-sticky-top, 133px); }

/* ---------- icon ---------- */
.alt-icon { display: inline-block; line-height: 1; vertical-align: middle; }
/* An icon followed by a button sits on one line with it, as before. */
.alt-icon + .wp-block-buttons { display: inline-flex; vertical-align: middle; margin-left: 10px; }
.alt-icon .fa { font-size: 50px; line-height: 50px; width: 50px; text-align: center; }
.alt-icon a { color: inherit; }

/* ---------- logos ---------- */
.alt-logos ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--alt-logo-cols, 6), minmax(0, 1fr)); gap: 0; align-items: center; }
.alt-logos li { padding: var(--alt-logo-pad, 0); text-align: center; }
.alt-logos img { width: 100%; max-width: 100%; height: auto; transition: opacity .3s; }
.alt-logos a:hover img { opacity: .6; }
.alt-logos.is-carousel { overflow: hidden; }
.alt-logos.is-carousel ul { display: flex; transition: transform .8s ease; }
.alt-logos.is-carousel li { flex: 0 0 calc(100% / var(--alt-logo-cols, 6)); }
@media (max-width: 1000px) { .alt-logos ul { grid-template-columns: repeat(min(var(--alt-logo-cols, 6), 3), minmax(0, 1fr)); } .alt-logos.is-carousel li { flex-basis: 33.333%; } }
@media (max-width: 690px) { .alt-logos ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } .alt-logos.is-carousel li { flex-basis: 50%; } }

/* ---------- testimonial ---------- */
.alt-testimonial { margin: 0 0 24px; }
.alt-testimonial .alt-quote-mark { display: block; font-family: 'TomaSans-Bold', serif; font-size: 60px; line-height: 40px; height: 30px; color: var(--alt-quote-color, #007c5f); }
.alt-testimonial blockquote { border: 0; padding: 0; margin: 10px 0 20px; font-size: 16px; line-height: 26px; letter-spacing: .5px; }
.alt-testimonial figcaption { display: grid; grid-template-columns: auto 1fr; column-gap: 15px; align-items: center; padding-left: 0; }
.alt-testimonial .alt-testimonial-img { grid-row: span 2; width: 50px; height: 50px; border-radius: 50%; object-fit: cover; }
.alt-testimonial-name { font-family: 'TomaSans-SemiBold', sans-serif; font-weight: 700; font-size: 16px; letter-spacing: 1px; }
.alt-testimonial-sub { font-size: 14px; line-height: 20px; opacity: .8; }

/* ---------- carousel ---------- */
.alt-carousel { position: relative; overflow: hidden; }
.alt-carousel-track { display: flex; transition: transform .8s ease; }
.alt-carousel-track { margin: 0 -10px; }
.alt-carousel-track > * { flex: 0 0 calc(100% / var(--alt-per-view, 3)); min-width: 0; margin: 0 !important; padding: 0 10px; box-sizing: border-box; }
@media (max-width: 1000px) { .alt-carousel-track > * { flex-basis: calc(100% / min(var(--alt-per-view, 3), 2)); } }
@media (max-width: 690px) { .alt-carousel-track > * { flex-basis: 100%; } }
.alt-carousel button { position: absolute; top: -40px; background: rgba(255,255,255,.85); border: 0; width: 40px; height: 40px; border-radius: 50%; cursor: pointer; font-size: 20px; color: #27348b; z-index: 3; }
.alt-carousel { overflow: visible; margin-top: 40px; } .alt-carousel .alt-carousel-track { overflow: visible; }
.alt-carousel-clip { overflow: hidden; }
.alt-carousel .alt-carousel-prev { right: 48px; } .alt-carousel .alt-carousel-next { right: 0; }
.editor-styles-wrapper .alt-carousel-track { display: block; }
.editor-styles-wrapper .alt-carousel button { display: none; }

/* ---------- gallery as a slider (former flexslider galleries) ---------- */
.wp-block-gallery.alt-slider { position: relative; display: block !important; overflow: hidden; }
.wp-block-gallery.alt-slider .alt-slider-track { display: flex; transition: transform .8s ease; }
.wp-block-gallery.alt-slider .alt-slider-track > figure { flex: 0 0 100%; margin: 0 !important; width: 100% !important; }

/* ---------- post list ---------- */
.alt-posts.is-minimal .alt-posts-item { margin-bottom: 35px; text-align: left; }
.alt-posts-meta { font-size: 12px; line-height: 18px; color: #71727e; margin-bottom: 8px; }
.alt-posts-meta a { color: inherit; font-weight: 400; }
.alt-posts.is-minimal h3 { font-family: 'TomaSans-Regular', sans-serif; font-size: 22px; line-height: 28px; margin: 0 0 8px; }
.alt-posts.is-minimal h3 a { font-weight: 400; color: var(--alt-accent, #27348b); }
.alt-posts-excerpt { font-size: 14px; line-height: 20px; margin-bottom: 6px; }
.alt-posts-more { font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--alt-accent, #27348b); }

/* ---------- former Salient text elements ---------- */
/* text with an icon (Salient [text-with-icon]); the icon name is in the class */
.alt-iwt { position: relative; padding-left: 55px; margin-bottom: 24px; }
.alt-iwt::before { position: absolute; left: 0; top: 0; font-family: FontAwesome; font-size: 34px; line-height: 34px; color: var(--alt-accent, #27348b); }
.alt-iwt-star::before { content: '\f005'; }
.alt-iwt-check::before { content: '\f00c'; }
.alt-iwt-arrow-right::before { content: '\f061'; }
/* list with icons instead of bullets (Salient [fancy-ul]) */
ul.alt-fancy-ul { list-style: none; padding-left: 30px; }
ul.alt-fancy-ul > li { position: relative; }
ul.alt-fancy-ul > li::before { position: absolute; left: -30px; top: 0; font-family: FontAwesome; color: var(--alt-accent, #27348b); content: '\f061'; }
/* section title (Salient [heading]) */
.alt-section-title { letter-spacing: -1px; padding-bottom: 40px; margin-bottom: 40px; border-bottom: 1px solid #ddd; }

/* ---------- heading reveal (Salient's split-line heading) ---------- */
/* Hidden only until front.js has prepared them; shown after 3 s regardless. */
.alt-js .alt-reveal:not(.alt-reveal-ready) { opacity: 0; animation: alt-reveal-fallback 0s 3s forwards; }
@keyframes alt-reveal-fallback { to { opacity: 1; } }
.alt-reveal .alt-rw { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.alt-reveal .alt-rw > span { display: inline-block; transform: translateY(110%); transition: transform 1.2s cubic-bezier(.25, 1, .5, 1); transition-delay: var(--alt-d, 0s); }
.alt-reveal.is-in .alt-rw > span { transform: none; }
@media (prefers-reduced-motion: reduce) { .alt-reveal .alt-rw > span { transform: none; transition: none; } }
.editor-styles-wrapper .alt-reveal { opacity: 1 !important; animation: none !important; }
