diff --git a/dist/main/main.js b/dist/main/main.js index c08e361a..070724d8 100644 --- a/dist/main/main.js +++ b/dist/main/main.js @@ -1,16 +1,16 @@ -import{_ as D}from"../__chunks__/icon.PS61ZRz5.js";import{s as h,x as l}from"../__chunks__/lit-element.XkUWx5ik.js";import{n as O,t as p}from"../__chunks__/property.0daVBkvz.js";import"../__chunks__/unsafe-html.dKgBHtsI.js";function f(n){return typeof n=="string"?n.toLowerCase().replace(/[^0-9a-z]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,""):""}const S=(n,e)=>{e.split(",").forEach(t=>{n.classList.add(f(t.trim()))})};function $(n,e=document){const t=n&&n.includes(":")?"property":"name",r=[...e.head.querySelectorAll(`meta[${t}="${n}"]`)].map(s=>s.content).join(", ");return r.length?r:""}function x(n){return f(n).replace(/-([a-z])/g,e=>e[1].toUpperCase())}/** +import{_ as x}from"../__chunks__/icon.PS61ZRz5.js";import{s as u,x as l}from"../__chunks__/lit-element.XkUWx5ik.js";import{n as T,t as p}from"../__chunks__/property.0daVBkvz.js";import{o as q}from"../__chunks__/unsafe-html.dKgBHtsI.js";function f(n){return typeof n=="string"?n.toLowerCase().replace(/[^0-9a-z]/gi,"-").replace(/-+/g,"-").replace(/^-|-$/g,""):""}const _=(n,e)=>{e.split(",").forEach(t=>{n.classList.add(f(t.trim()))})};function C(n,e=document){const t=n&&n.includes(":")?"property":"name",r=[...e.head.querySelectorAll(`meta[${t}="${n}"]`)].map(o=>o.content).join(", ");return r.length?r:""}function A(n){return f(n).replace(/-([a-z])/g,e=>e[1].toUpperCase())}/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause - */function b(n){return O({...n,state:!0,attribute:!1})}/** + */function m(n){return T({...n,state:!0,attribute:!1})}/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause - */const _=(n,e,t)=>(t.configurable=!0,t.enumerable=!0,Reflect.decorate&&typeof e!="object"&&Object.defineProperty(n,e,t),t);/** + */const P=(n,e,t)=>(t.configurable=!0,t.enumerable=!0,Reflect.decorate&&typeof e!="object"&&Object.defineProperty(n,e,t),t);/** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause - */function q(n,e){return(t,a,r)=>{const s=o=>{var c;return((c=o.renderRoot)==null?void 0:c.querySelector(n))??null};if(e){const{get:o,set:c}=typeof a=="object"?t:r??(()=>{const i=Symbol();return{get(){return this[i]},set(d){this[i]=d}}})();return _(t,a,{get(){let i=o.call(this);return i===void 0&&(i=s(this),(i!==null||this.hasUpdated)&&c.call(this,i)),i}})}return _(t,a,{get(){return s(this)}})}}var m={},C;function L(n){return function(...e){return function(t,a,r){return Object.assign(Object.assign({},r),{value:n(r.value,...e)})}}}Object.defineProperty(m,"__esModule",{value:!0});const T=L(function(n,e=0){let t=-1;const a=function(...r){clearTimeout(t),t=window.setTimeout(()=>{n.call(this,...r)},e)};return a.cancel=function(){clearTimeout(t)},a}),A=L(function(n,e=0){let t,a=[];const r=function(...s){a=s,t===void 0&&(t=window.setTimeout(()=>{t=void 0,n.call(this,...a)},e))};return r.cancel=function(){clearTimeout(t),t=void 0},r});C=m.debounce=T,m.throttle=A;var I=Object.defineProperty,B=Object.getOwnPropertyDescriptor,P=(n,e,t,a)=>{for(var r=a>1?void 0:a?B(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=(a?o(e,t,r):o(r))||r);return a&&r&&I(e,t,r),r};let v=class extends h{constructor(){super(...arguments),this.getSubmenuName=n=>n.path.split("/")[1],this.groupByFirstLevelPath=n=>{const e={};return n.forEach(a=>{const r=this.getSubmenuName(a);e[r]||(e[r]=[]),e[r].push({path:a.path,navtitle:this.getNavTitle(a)})}),Object.values(e).map(a=>a.length===1?a[0]:{navtitle:a[0].path.split("/")[1],path:a[0].path,children:a})}}createRenderRoot(){return this}async firstUpdated(){const n=await this.fetchSitemap();this.items=this.groupByFirstLevelPath(n)}render(){if(this.items)return l``}toggleSubmenu({currentTarget:n}){!(n instanceof HTMLElement)||!n.classList.contains("opener")||n.classList.toggle("active")}renderSubMenu(n){return l`${n.navtitle}`}renderMenuItem(n){return l`
  • ${n.children!==void 0?this.renderSubMenu(n):l`${n.navtitle}`}
  • `}renderMenuItems(){return l``}async fetchSitemap(){return(await(await fetch(`${window.hlx.codeBasePath}/query-index.json`)).json()).data}getNavTitle(n){return n.path==="/"?"Homepage":n.navtitle||n.title}};P([b()],v.prototype,"items",2);v=P([p("sidebar-nav")],v);const E=async n=>{const{endpoint:e,getJson:t=!1,init:a}=n,r=e.startsWith("/")?e:`/${e}`,s=await fetch(`${window.hlx.codeBasePath}${r}`,a);return t?await s.json():await s.text()};var R=Object.defineProperty,N=Object.getOwnPropertyDescriptor,j=(n,e,t,a)=>{for(var r=a>1?void 0:a?N(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=(a?o(e,t,r):o(r))||r);return a&&r&&R(e,t,r),r};let g=class extends h{createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.fetchFooterData()}async fetchFooterData(){var t;const n=await E({endpoint:"footer.plain.html"}),e=document.createElement("div");e.innerHTML=n,this.footerMarkup=e.querySelector("p"),(t=this.footerMarkup)==null||t.classList.add("copyright")}render(){if(this.footerMarkup)return l`${this.footerMarkup}`}};j([b()],g.prototype,"footerMarkup",2);g=j([p("sidebar-footer")],g);var H=Object.defineProperty,U=Object.getOwnPropertyDescriptor,w=(n,e,t,a)=>{for(var r=a>1?void 0:a?U(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=(a?o(e,t,r):o(r))||r);return a&&r&&H(e,t,r),r};let u=class extends h{constructor(){super(...arguments),this.handleToggleClick=n=>{n.preventDefault(),this.classList.toggle("inactive")}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.setInitialVisibility(),window.addEventListener("resize",this.setInitialVisibility.bind(this))}setInitialVisibility(){window.innerWidth<=1280?this.classList.add("inactive"):this.classList.remove("inactive")}firstUpdated(){this.toggle.addEventListener("click",this.handleToggleClick)}render(){return l`
    `}};w([q(".toggle")],u.prototype,"toggle",2);w([C(100)],u.prototype,"setInitialVisibility",1);u=w([p("sidebar-component")],u);var k=Object.defineProperty,V=Object.getOwnPropertyDescriptor,M=(n,e,t,a)=>{for(var r=a>1?void 0:a?V(e,t):e,s=n.length-1,o;s>=0;s--)(o=n[s])&&(r=(a?o(e,t,r):o(r))||r);return a&&r&&k(e,t,r),r};let y=class extends h{createRenderRoot(){return this}async firstUpdated(n){await this.fetchHeaderData()}async fetchHeaderData(){try{const n=await E({endpoint:"header.json",getJson:!0});this.headerData={leftCol:n.leftCol.data[0],rightCol:n.rightCol.data}}catch(n){console.error("HeaderComponent: ",n)}}render(){if(!this.headerData)return;const{leftCol:n,rightCol:e}=this.headerData;return l``}};M([b()],y.prototype,"headerData",2);y=M([p("header-component")],y);class F{readBlockConfig(e){const t={};return e.querySelectorAll(":scope > div").forEach(a=>{if(a.children){const r=[...a.children];if(r[1]){const s=r[1],o=f(r[0].textContent??"");let c="";if(s.querySelector("a")){const i=[...s.querySelectorAll("a")];i.length===1?c=i[0].href:c=i.map(d=>d.href)}else if(s.querySelector("img")){const i=[...s.querySelectorAll("img")];i.length===1?c=i[0].src:c=i.map(d=>d.src)}else if(s.querySelector("p")){const i=[...s.querySelectorAll("p")];i.length===1?c=i[0].textContent:c=i.map(d=>d.textContent)}else c=a.children[1].textContent;t[o]=c}}}),t}decorateBlocks(e){e.querySelectorAll("div.section > div > div").forEach(this.decorateBlock)}decorateBlock(e){const t=e.classList[0];if(t){e.classList.add("block"),e.dataset.blockName=t;const a=e.parentElement;a==null||a.classList.add(`${t}-wrapper`);const r=e.closest(".section");r&&r.classList.add(`${t}-container`)}}}class z{constructor(e){this.blockService=e}init(e){this.transformSection(e)}transformSection(e){e.querySelectorAll(":scope > div").forEach(t=>{this.adjustMarkup(t),this.processSectionMetaData(t)})}processSectionMetaData(e){const t=e.querySelector("div.section-metadata");if(t){const a=this.blockService.readBlockConfig(t);Object.keys(a).forEach(r=>{r==="style"?a.style.split(",").filter(o=>o).map(o=>f(o.trim())).forEach(o=>e.classList.add(o)):e.dataset[x(r)]=a[r]}),t.parentElement&&t.parentElement.remove()}}adjustMarkup(e){const t=[];let a=!1;[...e.children].forEach(r=>{if(r.tagName==="DIV"||!a){const s=document.createElement("div");t.push(s),a=r.tagName!=="DIV",a&&s.classList.add("default-content-wrapper")}t[t.length-1].append(r)}),t.forEach(r=>e.append(r)),this.decorateImages(),e.classList.add("section"),e.dataset.sectionStatus="initialized",e.style.display="none"}decorateImages(){document.querySelectorAll(".default-content-wrapper picture").forEach(t=>{var a;(a=t.parentElement)==null||a.classList.add("image","main")})}}class J{constructor(e,t){this.sectionService=e,this.blockService=t,this.init=async()=>{this.setup(),await this.loadEager()},this.loadEager=async()=>{if(document.documentElement.lang="en",this.decorateTemplateAndTheme(),document){const r=document.querySelector("body");r&&(r.style.display="none")}const a=document.querySelector("main");a&&(a.setAttribute("id","main"),this.addSidebarContainer(a),this.sectionService.init(a),this.addInnerContainer(a),this.blockService.decorateBlocks(a),await this.loadComponents(),setTimeout(()=>{document.body.removeAttribute("style")},200))},this.loadComponents=async()=>{document.querySelectorAll(".section").forEach(r=>{const s=[],o=r.querySelectorAll("[data-block-name]");if(!o.length){r.style.removeProperty("display");return}o.forEach(c=>{c.style.display="none",s.push({name:c.dataset.blockName,element:c})}),s.length&&s.forEach(async c=>{const i=await D(()=>import(`${window.hlx.codeBasePath}/dist/${c.name}/${c.name}.js`),__vite__mapDeps([]));i.default&&await i.default(c.element)}),r.style.removeProperty("display")})}}setup(){window.hlx=window.hlx||{},window.hlx.RUM_MASK_URL="full",window.hlx.codeBasePath="",window.hlx.lighthouse=new URLSearchParams(window.location.search).get("lighthouse")==="on";const e=document.querySelector('script[src$="/scripts/scripts.js"]');if(e)try{[window.hlx.codeBasePath]=new URL(e.src).pathname.split("/scripts/scripts.js")}catch(t){console.log(t)}}addSidebarContainer(e){const t=document.createElement("sidebar-component");t.setAttribute("id","sidebar"),e.after(t)}addInnerContainer(e){const t=e.innerHTML;e.innerHTML=`
    ${t}
    `}decorateTemplateAndTheme(){const e=$("template");e&&S(document.body,e);const t=$("theme");t&&S(document.body,t)}}(async function(){const n=new F,e=new z(n);await new J(e,n).init()})(); + */function I(n,e){return(t,a,r)=>{const o=s=>{var i;return((i=s.renderRoot)==null?void 0:i.querySelector(n))??null};if(e){const{get:s,set:i}=typeof a=="object"?t:r??(()=>{const c=Symbol();return{get(){return this[c]},set(d){this[c]=d}}})();return P(t,a,{get(){let c=s.call(this);return c===void 0&&(c=o(this),(c!==null||this.hasUpdated)&&i.call(this,c)),c}})}return P(t,a,{get(){return o(this)}})}}var v={},L;function M(n){return function(...e){return function(t,a,r){return Object.assign(Object.assign({},r),{value:n(r.value,...e)})}}}Object.defineProperty(v,"__esModule",{value:!0});const R=M(function(n,e=0){let t=-1;const a=function(...r){clearTimeout(t),t=window.setTimeout(()=>{n.call(this,...r)},e)};return a.cancel=function(){clearTimeout(t)},a}),B=M(function(n,e=0){let t,a=[];const r=function(...o){a=o,t===void 0&&(t=window.setTimeout(()=>{t=void 0,n.call(this,...a)},e))};return r.cancel=function(){clearTimeout(t),t=void 0},r});L=v.debounce=R,v.throttle=B;var H=Object.defineProperty,N=Object.getOwnPropertyDescriptor,j=(n,e,t,a)=>{for(var r=a>1?void 0:a?N(e,t):e,o=n.length-1,s;o>=0;o--)(s=n[o])&&(r=(a?s(e,t,r):s(r))||r);return a&&r&&H(e,t,r),r};let g=class extends u{constructor(){super(...arguments),this.getSubmenuName=n=>n.path.split("/")[1],this.groupByFirstLevelPath=n=>{const e={};return n.forEach(a=>{const r=this.getSubmenuName(a);e[r]||(e[r]=[]),e[r].push({path:a.path,navtitle:this.getNavTitle(a)})}),Object.values(e).map(a=>a.length===1?a[0]:{navtitle:a[0].path.split("/")[1],path:a[0].path,children:a})}}createRenderRoot(){return this}async firstUpdated(){const n=await this.fetchSitemap();this.items=this.groupByFirstLevelPath(n)}render(){if(this.items)return l``}toggleSubmenu({currentTarget:n}){!(n instanceof HTMLElement)||!n.classList.contains("opener")||n.classList.toggle("active")}renderSubMenu(n){return l`${n.navtitle}`}renderMenuItem(n){return l`
  • ${n.children!==void 0?this.renderSubMenu(n):l`${n.navtitle}`}
  • `}renderMenuItems(){return l``}async fetchSitemap(){return(await(await fetch(`${window.hlx.codeBasePath}/query-index.json`)).json()).data}getNavTitle(n){return n.path==="/"?"Homepage":n.navtitle||n.title}};j([m()],g.prototype,"items",2);g=j([p("sidebar-nav")],g);const S=async n=>{const{endpoint:e,getJson:t=!1,init:a}=n,r=e.startsWith("/")?e:`/${e}`,o=await fetch(`${window.hlx.codeBasePath}${r}`,a);return t?await o.json():await o.text()};var U=Object.defineProperty,k=Object.getOwnPropertyDescriptor,E=(n,e,t,a)=>{for(var r=a>1?void 0:a?k(e,t):e,o=n.length-1,s;o>=0;o--)(s=n[o])&&(r=(a?s(e,t,r):s(r))||r);return a&&r&&U(e,t,r),r};let y=class extends u{createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.fetchContactData()}async fetchContactData(){const n=await S({endpoint:"contact.plain.html"}),e=document.createElement("div");e.innerHTML=n,this.contactTemplateArgs={headline:e.querySelector("h2"),text:e.querySelector("p"),contacts:Array.from(e.querySelectorAll(".contact > div:not(:first-child)")).map(t=>{var a,r;return{contactIcon:(a=t.querySelector("div"))==null?void 0:a.innerText,contactMarkup:(r=t.querySelector("div:last-child"))==null?void 0:r.innerHTML}})}}render(){const{headline:n,text:e,contacts:t}=this.contactTemplateArgs;return l`
    ${n}
    ${e}
    `}};E([m()],y.prototype,"contactTemplateArgs",2);y=E([p("sidebar-contact")],y);var V=Object.defineProperty,F=Object.getOwnPropertyDescriptor,D=(n,e,t,a)=>{for(var r=a>1?void 0:a?F(e,t):e,o=n.length-1,s;o>=0;o--)(s=n[o])&&(r=(a?s(e,t,r):s(r))||r);return a&&r&&V(e,t,r),r};let b=class extends u{createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.fetchFooterData()}async fetchFooterData(){var t;const n=await S({endpoint:"footer.plain.html"}),e=document.createElement("div");e.innerHTML=n,this.footerMarkup=e.querySelector("p"),(t=this.footerMarkup)==null||t.classList.add("copyright")}render(){if(this.footerMarkup)return l`${this.footerMarkup}`}};D([m()],b.prototype,"footerMarkup",2);b=D([p("sidebar-footer")],b);var z=Object.defineProperty,J=Object.getOwnPropertyDescriptor,$=(n,e,t,a)=>{for(var r=a>1?void 0:a?J(e,t):e,o=n.length-1,s;o>=0;o--)(s=n[o])&&(r=(a?s(e,t,r):s(r))||r);return a&&r&&z(e,t,r),r};let h=class extends u{constructor(){super(...arguments),this.handleToggleClick=n=>{n.preventDefault(),this.classList.toggle("inactive")}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback(),this.setInitialVisibility(),window.addEventListener("resize",this.setInitialVisibility.bind(this))}setInitialVisibility(){window.innerWidth<=1280?this.classList.add("inactive"):this.classList.remove("inactive")}firstUpdated(){this.toggle.addEventListener("click",this.handleToggleClick)}render(){return l`
    `}};$([I(".toggle")],h.prototype,"toggle",2);$([L(100)],h.prototype,"setInitialVisibility",1);h=$([p("sidebar-component")],h);var K=Object.defineProperty,W=Object.getOwnPropertyDescriptor,O=(n,e,t,a)=>{for(var r=a>1?void 0:a?W(e,t):e,o=n.length-1,s;o>=0;o--)(s=n[o])&&(r=(a?s(e,t,r):s(r))||r);return a&&r&&K(e,t,r),r};let w=class extends u{createRenderRoot(){return this}async firstUpdated(n){await this.fetchHeaderData()}async fetchHeaderData(){try{const n=await S({endpoint:"header.json",getJson:!0});this.headerData={leftCol:n.leftCol.data[0],rightCol:n.rightCol.data}}catch(n){console.error("HeaderComponent: ",n)}}render(){if(!this.headerData)return;const{leftCol:n,rightCol:e}=this.headerData;return l``}};O([m()],w.prototype,"headerData",2);w=O([p("header-component")],w);class G{readBlockConfig(e){const t={};return e.querySelectorAll(":scope > div").forEach(a=>{if(a.children){const r=[...a.children];if(r[1]){const o=r[1],s=f(r[0].textContent??"");let i="";if(o.querySelector("a")){const c=[...o.querySelectorAll("a")];c.length===1?i=c[0].href:i=c.map(d=>d.href)}else if(o.querySelector("img")){const c=[...o.querySelectorAll("img")];c.length===1?i=c[0].src:i=c.map(d=>d.src)}else if(o.querySelector("p")){const c=[...o.querySelectorAll("p")];c.length===1?i=c[0].textContent:i=c.map(d=>d.textContent)}else i=a.children[1].textContent;t[s]=i}}}),t}decorateBlocks(e){e.querySelectorAll("div.section > div > div").forEach(this.decorateBlock)}decorateBlock(e){const t=e.classList[0];if(t){e.classList.add("block"),e.dataset.blockName=t;const a=e.parentElement;a==null||a.classList.add(`${t}-wrapper`);const r=e.closest(".section");r&&r.classList.add(`${t}-container`)}}}class Q{constructor(e){this.blockService=e}init(e){this.transformSection(e)}transformSection(e){e.querySelectorAll(":scope > div").forEach(t=>{this.adjustMarkup(t),this.processSectionMetaData(t)})}processSectionMetaData(e){const t=e.querySelector("div.section-metadata");if(t){const a=this.blockService.readBlockConfig(t);Object.keys(a).forEach(r=>{r==="style"?a.style.split(",").filter(s=>s).map(s=>f(s.trim())).forEach(s=>e.classList.add(s)):e.dataset[A(r)]=a[r]}),t.parentElement&&t.parentElement.remove()}}adjustMarkup(e){const t=[];let a=!1;[...e.children].forEach(r=>{if(r.tagName==="DIV"||!a){const o=document.createElement("div");t.push(o),a=r.tagName!=="DIV",a&&o.classList.add("default-content-wrapper")}t[t.length-1].append(r)}),t.forEach(r=>e.append(r)),this.decorateImages(),e.classList.add("section"),e.dataset.sectionStatus="initialized",e.style.display="none"}decorateImages(){document.querySelectorAll(".default-content-wrapper picture").forEach(t=>{var a;(a=t.parentElement)==null||a.classList.add("image","main")})}}class X{constructor(e,t){this.sectionService=e,this.blockService=t,this.init=async()=>{this.setup(),await this.loadEager()},this.loadEager=async()=>{if(document.documentElement.lang="en",this.decorateTemplateAndTheme(),document){const r=document.querySelector("body");r&&(r.style.display="none")}const a=document.querySelector("main");a&&(a.setAttribute("id","main"),this.addSidebarContainer(a),this.sectionService.init(a),this.addInnerContainer(a),this.blockService.decorateBlocks(a),await this.loadComponents(),setTimeout(()=>{document.body.removeAttribute("style")},200))},this.loadComponents=async()=>{document.querySelectorAll(".section").forEach(r=>{const o=[],s=r.querySelectorAll("[data-block-name]");if(!s.length){r.style.removeProperty("display");return}s.forEach(i=>{i.style.display="none",o.push({name:i.dataset.blockName,element:i})}),o.length&&o.forEach(async i=>{const c=await x(()=>import(`${window.hlx.codeBasePath}/dist/${i.name}/${i.name}.js`),__vite__mapDeps([]));c.default&&await c.default(i.element)}),r.style.removeProperty("display")})}}setup(){window.hlx=window.hlx||{},window.hlx.RUM_MASK_URL="full",window.hlx.codeBasePath="",window.hlx.lighthouse=new URLSearchParams(window.location.search).get("lighthouse")==="on";const e=document.querySelector('script[src$="/scripts/scripts.js"]');if(e)try{[window.hlx.codeBasePath]=new URL(e.src).pathname.split("/scripts/scripts.js")}catch(t){console.log(t)}}addSidebarContainer(e){const t=document.createElement("sidebar-component");t.setAttribute("id","sidebar"),e.after(t)}addInnerContainer(e){const t=e.innerHTML;e.innerHTML=`
    ${t}
    `}decorateTemplateAndTheme(){const e=C("template");e&&_(document.body,e);const t=C("theme");t&&_(document.body,t)}}(async function(){const n=new G,e=new Q(n);await new X(e,n).init()})(); function __vite__mapDeps(indexes) { if (!__vite__mapDeps.viteFileDeps) { __vite__mapDeps.viteFileDeps = [] diff --git a/dist/main/main.js.map b/dist/main/main.js.map index ef613a97..be657f16 100644 --- a/dist/main/main.js.map +++ b/dist/main/main.js.map @@ -1 +1 @@ -{"version":3,"mappings":"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","names":["toClassName","name","addClasses","element","classes","c","getMetadata","doc","attr","meta","m","toCamelCase","g","r","t","e","n","s","i","o","_a","decorators","debounce","SidebarNav","LitElement","entry","data","groups","item","firstLevelPath","group","sitemap","html","currentTarget","child","__decorateClass","state","customElement","fetchData","options","endpoint","getJson","init","decoratedEndpoint","response","SidebarFooter","responseMarkup","SidebarComponent","query","HeaderComponent","_changedProperties","error","leftCol","rightCol","BlockService","block","config","row","cols","col","value","as","a","imgs","img","ps","p","main","shortBlockName","blockWrapper","section","SectionService","blockService","container","sectionMeta","key","style","wrappers","defaultContent","wrapper","Main","sectionService","body","components","blocks","component","componentModule","scriptEl","sidebarContainer","children","template","theme"],"sources":["../../src/utils/toClassName.ts","../../src/utils/addClasses.ts","../../src/utils/getMetadata.ts","../../src/utils/toCamelCase.ts","../../node_modules/@lit/reactive-element/decorators/state.js","../../node_modules/@lit/reactive-element/decorators/base.js","../../node_modules/@lit/reactive-element/decorators/query.js","../../node_modules/@kluntje/js-utils/lib/function-helpers/decorators/index.js","../../src/components/sidebar/sidebarNav.ts","../../src/utils/fetchData.ts","../../src/components/sidebar/sidebarFooter.ts","../../src/components/sidebar/sidebar.ts","../../src/components/header.ts","../../src/main.ts"],"sourcesContent":["export function toClassName(name: string) {\n return typeof name === 'string'\n ? name\n .toLowerCase()\n .replace(/[^0-9a-z]/gi, '-')\n .replace(/-+/g, '-')\n .replace(/^-|-$/g, '')\n : '';\n}\n","import { toClassName } from './toClassName';\n\nexport const addClasses = (element: HTMLElement, classes: string) => {\n classes.split(',').forEach((c) => {\n element.classList.add(toClassName(c.trim()));\n });\n};\n","export function getMetadata(name: string, doc = document) {\n const attr = name && name.includes(':') ? 'property' : 'name';\n const metaTags: HTMLMetaElement[] =\n ([...doc.head.querySelectorAll(`meta[${attr}=\"${name}\"]`)] as HTMLMetaElement[]) || [];\n const meta = metaTags\n .map((m) => {\n return m.content;\n })\n .join(', ');\n return meta.length ? meta : '';\n}\n","import { toClassName } from './toClassName';\n\n/**\n * Sanitizes a string for use as a js property name.\n * @param {string} name The unsanitized string\n * @returns {string} The camelCased name\n */\nexport function toCamelCase(name: string) {\n return toClassName(name).replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n}\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","\"use strict\";function t(t){return function(...e){return function(n,o,c){return Object.assign(Object.assign({},c),{value:t(c.value,...e)})}}}Object.defineProperty(exports,\"__esModule\",{value:!0});const e=t((function(t,e=0){let n=-1;const o=function(...o){clearTimeout(n),n=window.setTimeout((()=>{t.call(this,...o)}),e)};return o.cancel=function(){clearTimeout(n)},o})),n=t((function(t,e=0){let n,o=[];const c=function(...c){o=c,void 0===n&&(n=window.setTimeout((()=>{n=void 0,t.call(this,...o)}),e))};return c.cancel=function(){clearTimeout(n),n=void 0},c}));exports.debounce=e,exports.throttle=n;\n//# sourceMappingURL=index.js.map\n","import { html, LitElement } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\n\nimport '../icon';\n\ntype SiteMapEntry = {\n path: string;\n title: string;\n description: string;\n lastModified: string; // Assuming this is a string representing a timestamp\n image: string;\n imagealt: string;\n navtitle: string;\n 'nav-test': string;\n imageAlt: string;\n};\n\ninterface SubMenuItem {\n path: string;\n navtitle: string;\n}\n\ninterface MenuItem {\n path: string;\n navtitle: string;\n children?: SubMenuItem[];\n}\n\ntype Sitemap = SiteMapEntry[];\n\n@customElement('sidebar-nav')\nexport class SidebarNav extends LitElement {\n @state()\n items: MenuItem[];\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n return this;\n }\n\n async firstUpdated() {\n const sitemap = await this.fetchSitemap();\n this.items = this.groupByFirstLevelPath(sitemap);\n }\n\n render() {\n if (!this.items) return;\n return html` `;\n }\n\n private toggleSubmenu({ currentTarget }: Event) {\n if (!(currentTarget instanceof HTMLElement) || !currentTarget.classList.contains('opener')) return;\n currentTarget.classList.toggle('active');\n }\n\n private renderSubMenu(item) {\n return html`\n ${item.navtitle} \n \n \n `;\n }\n\n private renderMenuItem(item) {\n return html`
  • \n ${item.children !== undefined ? this.renderSubMenu(item) : html`${item.navtitle}`}\n
  • `;\n }\n\n private renderMenuItems() {\n return html` `;\n }\n\n private async fetchSitemap(): Promise {\n const response = await fetch(`${window.hlx.codeBasePath}/query-index.json`);\n const json = await response.json();\n return json.data;\n }\n\n private getSubmenuName = (entry: SiteMapEntry) => {\n return entry.path.split('/')[1];\n };\n\n private getNavTitle(item: SiteMapEntry) {\n if (item.path === '/') return 'Homepage';\n return item.navtitle || item.title;\n }\n\n groupByFirstLevelPath = (data: Sitemap) => {\n const groups = {};\n data.forEach((item) => {\n const firstLevelPath = this.getSubmenuName(item); // Extracting the first level of the path\n if (!groups[firstLevelPath]) {\n groups[firstLevelPath] = [];\n }\n groups[firstLevelPath].push({\n path: item.path,\n navtitle: this.getNavTitle(item),\n });\n });\n\n const groupedData = Object.values(groups);\n\n return groupedData.map((group: MenuItem[]) => {\n if (group.length === 1) {\n return group[0];\n }\n\n return {\n navtitle: group[0].path.split('/')[1],\n path: group[0].path,\n children: group,\n };\n });\n };\n}\n","interface FetchDataOptions {\n endpoint: string;\n getJson?: boolean;\n init?: RequestInit | undefined;\n}\n\nexport const fetchData = async (options: FetchDataOptions): Promise => {\n const { endpoint, getJson = false, init } = options;\n const decoratedEndpoint = endpoint.startsWith('/') ? endpoint : `/${endpoint}`;\n\n const response = await fetch(`${window.hlx.codeBasePath}${decoratedEndpoint}`, init);\n\n if (getJson) {\n return await response.json();\n }\n return (await response.text()) as unknown as T;\n};\n","import { LitElement, html } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { fetchData } from '../../utils/fetchData';\n\n@customElement('sidebar-footer')\nexport class SidebarFooter extends LitElement {\n @state()\n footerMarkup: HTMLParagraphElement | null;\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n return this;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.fetchFooterData();\n }\n\n async fetchFooterData() {\n const response = await fetchData({ endpoint: 'footer.plain.html' });\n const responseMarkup = document.createElement('div');\n responseMarkup.innerHTML = response;\n this.footerMarkup = responseMarkup.querySelector('p');\n this.footerMarkup?.classList.add('copyright');\n }\n\n render() {\n if (!this.footerMarkup) return;\n return html`${this.footerMarkup}`;\n }\n}\n","import { LitElement, html } from 'lit';\nimport { customElement, query } from 'lit/decorators.js';\nimport { debounce } from '@kluntje/js-utils/lib/function-helpers/decorators';\n\nimport './sidebarNav.ts';\nimport './sidebarFooter.ts';\n\n@customElement('sidebar-component')\nexport class SidebarComponent extends LitElement {\n @query('.toggle')\n toggle: HTMLAnchorElement;\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n return this;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.setInitialVisibility();\n window.addEventListener('resize', this.setInitialVisibility.bind(this));\n }\n\n @debounce(100)\n private setInitialVisibility() {\n window.innerWidth <= 1280 ? this.classList.add('inactive') : this.classList.remove('inactive');\n }\n\n firstUpdated(): void {\n this.toggle.addEventListener('click', this.handleToggleClick);\n }\n\n handleToggleClick = (e: Event) => {\n e.preventDefault();\n this.classList.toggle('inactive');\n };\n\n render() {\n return html`\n
    \n \n \n
    \n \n `;\n }\n}\n","import { LitElement, PropertyValueMap, html } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { fetchData } from '../utils/fetchData';\n\nexport interface HeaderResponseData {\n leftCol: LeftCol;\n rightCol: RightCol;\n}\n\nexport interface LeftCol {\n data: LeftColData[];\n}\n\nexport interface LeftColData {\n logoText: string;\n logoLink: string;\n}\n\nexport interface RightCol {\n data: RightColData[];\n}\n\nexport interface RightColData {\n socialIcon: string;\n socialLabel: string;\n socialLink: string;\n}\n\ninterface HeaderTemplateData {\n leftCol: LeftColData;\n rightCol: RightColData[];\n}\n\n@customElement('header-component')\nexport class HeaderComponent extends LitElement {\n @state()\n headerData: HeaderTemplateData;\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n return this;\n }\n\n protected async firstUpdated(_changedProperties: PropertyValueMap | Map) {\n await this.fetchHeaderData();\n }\n\n async fetchHeaderData() {\n try {\n const response = await fetchData({ endpoint: 'header.json', getJson: true });\n this.headerData = { leftCol: response.leftCol.data[0], rightCol: response.rightCol.data };\n } catch (error) {\n console.error('HeaderComponent: ', error);\n }\n }\n\n render() {\n if (!this.headerData) return;\n const { leftCol, rightCol } = this.headerData;\n return html`\n ${leftCol.logoText}\n \n `;\n }\n}\n","// const LCP_BLOCKS: string[] = []; // add your LCP blocks to the list\n\nimport { addClasses } from '../src/utils/addClasses';\nimport { getMetadata } from '../src/utils/getMetadata';\nimport { toCamelCase } from '../src/utils/toCamelCase';\nimport { toClassName } from '../src/utils/toClassName';\nimport './components/sidebar/sidebar.ts';\nimport './components/header.ts';\n\ntype ComponentMapping = {\n name: string;\n element: HTMLDivElement;\n};\n\nclass BlockService {\n //TODO: Provider for fetch data\n\n /**\n * Extracts the config from a block.\n * @param {Element} block The block element\n * @returns {object} The block config\n */\n readBlockConfig(block: Element): Record {\n const config: Record = {};\n block.querySelectorAll(':scope > div').forEach((row) => {\n if (row.children) {\n const cols = [...row.children];\n if (cols[1]) {\n const col = cols[1];\n const name = toClassName(cols[0].textContent ?? '');\n let value: any = '';\n if (col.querySelector('a')) {\n const as = [...col.querySelectorAll('a')];\n if (as.length === 1) {\n value = as[0].href;\n } else {\n value = as.map((a) => a.href);\n }\n } else if (col.querySelector('img')) {\n const imgs = [...col.querySelectorAll('img')];\n if (imgs.length === 1) {\n value = imgs[0].src;\n } else {\n value = imgs.map((img) => img.src);\n }\n } else if (col.querySelector('p')) {\n const ps = [...col.querySelectorAll('p')];\n if (ps.length === 1) {\n value = ps[0].textContent;\n } else {\n value = ps.map((p) => p.textContent);\n }\n } else value = row.children[1].textContent;\n config[name] = value;\n }\n }\n });\n return config;\n }\n\n /**\n * Decorates all blocks in a container element.\n * @param {Element} main The container element\n */\n decorateBlocks(main: HTMLElement) {\n main.querySelectorAll('div.section > div > div').forEach(this.decorateBlock);\n }\n\n /**\n * Decorates a block.\n * @param {Element} block The block element\n */\n private decorateBlock(block: HTMLElement) {\n const shortBlockName = block.classList[0];\n if (shortBlockName) {\n block.classList.add('block');\n block.dataset.blockName = shortBlockName;\n const blockWrapper = block.parentElement;\n blockWrapper?.classList.add(`${shortBlockName}-wrapper`);\n const section = block.closest('.section');\n if (section) section.classList.add(`${shortBlockName}-container`);\n }\n }\n}\n\nclass SectionService {\n constructor(private blockService: BlockService) {}\n\n init(container: HTMLElement) {\n this.transformSection(container);\n }\n\n /**\n * Decorates all sections in a container element.\n * @param {Element} main The container element\n */\n private transformSection(main: HTMLElement) {\n main.querySelectorAll(':scope > div').forEach((section) => {\n this.adjustMarkup(section);\n this.processSectionMetaData(section);\n });\n }\n\n private processSectionMetaData(section: HTMLElement) {\n // Process section metadata\n const sectionMeta = section.querySelector('div.section-metadata');\n if (sectionMeta) {\n const meta = this.blockService.readBlockConfig(sectionMeta);\n Object.keys(meta).forEach((key) => {\n if (key === 'style') {\n const styles = meta.style\n .split(',')\n .filter((style: string) => style)\n .map((style: string) => toClassName(style.trim()));\n styles.forEach((style: string) => section.classList.add(style));\n } else {\n section.dataset[toCamelCase(key)] = meta[key];\n }\n });\n if (sectionMeta.parentElement) sectionMeta.parentElement.remove();\n }\n }\n\n private adjustMarkup(section: HTMLDivElement) {\n const wrappers: HTMLDivElement[] = [];\n let defaultContent = false;\n [...section.children].forEach((e) => {\n if (e.tagName === 'DIV' || !defaultContent) {\n const wrapper = document.createElement('div');\n wrappers.push(wrapper);\n defaultContent = e.tagName !== 'DIV';\n\n if (defaultContent) {\n wrapper.classList.add('default-content-wrapper');\n }\n }\n wrappers[wrappers.length - 1].append(e);\n });\n wrappers.forEach((wrapper) => section.append(wrapper));\n this.decorateImages();\n section.classList.add('section');\n section.dataset.sectionStatus = 'initialized';\n section.style.display = 'none';\n }\n decorateImages() {\n const picture = document.querySelectorAll('.default-content-wrapper picture');\n picture.forEach((item) => {\n item.parentElement?.classList.add('image', 'main');\n });\n }\n}\n\nclass Main {\n constructor(\n private sectionService: SectionService,\n private blockService: BlockService\n ) {}\n\n init = async () => {\n this.setup();\n await this.loadEager();\n };\n\n /**\n * Setup block utils.\n */\n private setup() {\n window.hlx = window.hlx || {};\n window.hlx.RUM_MASK_URL = 'full';\n window.hlx.codeBasePath = '';\n window.hlx.lighthouse = new URLSearchParams(window.location.search).get('lighthouse') === 'on';\n\n const scriptEl = document.querySelector('script[src$=\"/scripts/scripts.js\"]') as HTMLScriptElement;\n if (scriptEl) {\n try {\n [window.hlx.codeBasePath] = new URL(scriptEl.src).pathname.split('/scripts/scripts.js');\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error);\n }\n }\n }\n\n private loadEager = async () => {\n // TODO: how to support different languages here\n document.documentElement.lang = 'en';\n this.decorateTemplateAndTheme();\n if (document) {\n const body = document.querySelector('body');\n if (body) {\n body.style.display = 'none';\n }\n }\n const main = document.querySelector('main');\n if (main) {\n main.setAttribute('id', 'main');\n this.addSidebarContainer(main);\n this.sectionService.init(main);\n this.addInnerContainer(main); // TODO refactor initializing\n this.blockService.decorateBlocks(main);\n await this.loadComponents();\n // TODO: Performace adjustment\n setTimeout(() => {\n document.body.removeAttribute('style');\n }, 200);\n\n // await this.waitForLCP(LCP_BLOCKS);\n }\n };\n\n private addSidebarContainer(main: HTMLElement) {\n const sidebarContainer = document.createElement('sidebar-component');\n sidebarContainer.setAttribute('id', 'sidebar');\n main.after(sidebarContainer);\n }\n\n private addInnerContainer(main: HTMLElement) {\n const children = main.innerHTML;\n main.innerHTML = `
    ${children}
    `;\n }\n\n // private loadLazy = async () => {};\n\n private decorateTemplateAndTheme() {\n const template = getMetadata('template');\n if (template) addClasses(document.body, template);\n const theme = getMetadata('theme');\n if (theme) addClasses(document.body, theme);\n }\n\n private loadComponents = async () => {\n const sections = document.querySelectorAll('.section');\n sections.forEach((section) => {\n const components: ComponentMapping[] = [];\n const blocks = section.querySelectorAll('[data-block-name]');\n if (!blocks.length) {\n section.style.removeProperty('display');\n return;\n }\n blocks.forEach((block: HTMLDivElement) => {\n block.style.display = 'none';\n components.push({\n name: block.dataset['blockName'] as string,\n element: block,\n });\n });\n if (components.length) {\n components.forEach(async (component) => {\n const componentModule = await import(\n `${window.hlx.codeBasePath}/dist/${component.name}/${component.name}.js`\n );\n if (componentModule.default) {\n await componentModule.default(component.element);\n }\n });\n }\n section.style.removeProperty('display');\n });\n };\n}\n\n(async function () {\n const blockService = new BlockService();\n const sectionService = new SectionService(blockService);\n const main = new Main(sectionService, blockService);\n await main.init();\n})();\n\n// /**\n// * Loads JS and CSS for a block.\n// * @param {Element} block The block element\n// */\n// async function loadBlock(block) {\n// const status = block.dataset.blockStatus;\n// if (status !== 'loading' && status !== 'loaded') {\n// block.dataset.blockStatus = 'loading';\n// const { blockName } = block.dataset;\n// try {\n// const cssLoaded = loadCSS(`${window.hlx.codeBasePath}/blocks/${blockName}/${blockName}.css`);\n// const decorationComplete = new Promise((resolve) => {\n// (async () => {\n// try {\n// const mod = await import(`${window.hlx.codeBasePath}/blocks/${blockName}/${blockName}.js`);\n// if (mod.default) {\n// await mod.default(block);\n// }\n// } catch (error) {\n// // eslint-disable-next-line no-console\n// console.log(`failed to load module for ${blockName}`, error);\n// }\n// resolve();\n// })();\n// });\n// await Promise.all([cssLoaded, decorationComplete]);\n// } catch (error) {\n// // eslint-disable-next-line no-console\n// console.log(`failed to load block ${blockName}`, error);\n// }\n// block.dataset.blockStatus = 'loaded';\n// }\n// return block;\n// }\n\ndeclare global {\n interface Window {\n hlx: {\n RUM_MASK_URL: string;\n codeBasePath: string;\n lighthouse: boolean;\n };\n }\n}\n"],"file":"main/main.js"} \ No newline at end of file +{"version":3,"mappings":"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","names":["toClassName","name","addClasses","element","classes","c","getMetadata","doc","attr","meta","m","toCamelCase","g","r","t","e","n","s","i","_a","o","decorators","debounce","SidebarNav","LitElement","entry","data","groups","item","firstLevelPath","group","sitemap","html","currentTarget","child","__decorateClass","state","customElement","fetchData","options","endpoint","getJson","init","decoratedEndpoint","response","SidebarContact","responseMarkup","_b","headline","text","contacts","unsafeHTML","SidebarFooter","SidebarComponent","query","HeaderComponent","_changedProperties","error","leftCol","rightCol","BlockService","block","config","row","cols","col","value","as","a","imgs","img","ps","p","main","shortBlockName","blockWrapper","section","SectionService","blockService","container","sectionMeta","key","style","wrappers","defaultContent","wrapper","Main","sectionService","body","components","blocks","component","componentModule","scriptEl","sidebarContainer","children","template","theme"],"sources":["../../src/utils/toClassName.ts","../../src/utils/addClasses.ts","../../src/utils/getMetadata.ts","../../src/utils/toCamelCase.ts","../../node_modules/@lit/reactive-element/decorators/state.js","../../node_modules/@lit/reactive-element/decorators/base.js","../../node_modules/@lit/reactive-element/decorators/query.js","../../node_modules/@kluntje/js-utils/lib/function-helpers/decorators/index.js","../../src/components/sidebar/sidebarNav.ts","../../src/utils/fetchData.ts","../../src/components/sidebar/sidebarContact.ts","../../src/components/sidebar/sidebarFooter.ts","../../src/components/sidebar/sidebar.ts","../../src/components/header.ts","../../src/main.ts"],"sourcesContent":["export function toClassName(name: string) {\n return typeof name === 'string'\n ? name\n .toLowerCase()\n .replace(/[^0-9a-z]/gi, '-')\n .replace(/-+/g, '-')\n .replace(/^-|-$/g, '')\n : '';\n}\n","import { toClassName } from './toClassName';\n\nexport const addClasses = (element: HTMLElement, classes: string) => {\n classes.split(',').forEach((c) => {\n element.classList.add(toClassName(c.trim()));\n });\n};\n","export function getMetadata(name: string, doc = document) {\n const attr = name && name.includes(':') ? 'property' : 'name';\n const metaTags: HTMLMetaElement[] =\n ([...doc.head.querySelectorAll(`meta[${attr}=\"${name}\"]`)] as HTMLMetaElement[]) || [];\n const meta = metaTags\n .map((m) => {\n return m.content;\n })\n .join(', ');\n return meta.length ? meta : '';\n}\n","import { toClassName } from './toClassName';\n\n/**\n * Sanitizes a string for use as a js property name.\n * @param {string} name The unsanitized string\n * @returns {string} The camelCased name\n */\nexport function toCamelCase(name: string) {\n return toClassName(name).replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n}\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","\"use strict\";function t(t){return function(...e){return function(n,o,c){return Object.assign(Object.assign({},c),{value:t(c.value,...e)})}}}Object.defineProperty(exports,\"__esModule\",{value:!0});const e=t((function(t,e=0){let n=-1;const o=function(...o){clearTimeout(n),n=window.setTimeout((()=>{t.call(this,...o)}),e)};return o.cancel=function(){clearTimeout(n)},o})),n=t((function(t,e=0){let n,o=[];const c=function(...c){o=c,void 0===n&&(n=window.setTimeout((()=>{n=void 0,t.call(this,...o)}),e))};return c.cancel=function(){clearTimeout(n),n=void 0},c}));exports.debounce=e,exports.throttle=n;\n//# sourceMappingURL=index.js.map\n","import { html, LitElement } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\n\nimport '../icon';\n\ntype SiteMapEntry = {\n path: string;\n title: string;\n description: string;\n lastModified: string; // Assuming this is a string representing a timestamp\n image: string;\n imagealt: string;\n navtitle: string;\n 'nav-test': string;\n imageAlt: string;\n};\n\ninterface SubMenuItem {\n path: string;\n navtitle: string;\n}\n\ninterface MenuItem {\n path: string;\n navtitle: string;\n children?: SubMenuItem[];\n}\n\ntype Sitemap = SiteMapEntry[];\n\n@customElement('sidebar-nav')\nexport class SidebarNav extends LitElement {\n @state()\n items: MenuItem[];\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n return this;\n }\n\n async firstUpdated() {\n const sitemap = await this.fetchSitemap();\n this.items = this.groupByFirstLevelPath(sitemap);\n }\n\n render() {\n if (!this.items) return;\n return html` `;\n }\n\n private toggleSubmenu({ currentTarget }: Event) {\n if (!(currentTarget instanceof HTMLElement) || !currentTarget.classList.contains('opener')) return;\n currentTarget.classList.toggle('active');\n }\n\n private renderSubMenu(item) {\n return html`\n ${item.navtitle} \n \n \n
    `;\n }\n\n private renderMenuItem(item) {\n return html`
  • \n ${item.children !== undefined ? this.renderSubMenu(item) : html`${item.navtitle}`}\n
  • `;\n }\n\n private renderMenuItems() {\n return html`
      \n ${this.items.map((item) => this.renderMenuItem(item))}\n
    `;\n }\n\n private async fetchSitemap(): Promise {\n const response = await fetch(`${window.hlx.codeBasePath}/query-index.json`);\n const json = await response.json();\n return json.data;\n }\n\n private getSubmenuName = (entry: SiteMapEntry) => {\n return entry.path.split('/')[1];\n };\n\n private getNavTitle(item: SiteMapEntry) {\n if (item.path === '/') return 'Homepage';\n return item.navtitle || item.title;\n }\n\n groupByFirstLevelPath = (data: Sitemap) => {\n const groups = {};\n data.forEach((item) => {\n const firstLevelPath = this.getSubmenuName(item); // Extracting the first level of the path\n if (!groups[firstLevelPath]) {\n groups[firstLevelPath] = [];\n }\n groups[firstLevelPath].push({\n path: item.path,\n navtitle: this.getNavTitle(item),\n });\n });\n\n const groupedData = Object.values(groups);\n\n return groupedData.map((group: MenuItem[]) => {\n if (group.length === 1) {\n return group[0];\n }\n\n return {\n navtitle: group[0].path.split('/')[1],\n path: group[0].path,\n children: group,\n };\n });\n };\n}\n","interface FetchDataOptions {\n endpoint: string;\n getJson?: boolean;\n init?: RequestInit | undefined;\n}\n\nexport const fetchData = async (options: FetchDataOptions): Promise => {\n const { endpoint, getJson = false, init } = options;\n const decoratedEndpoint = endpoint.startsWith('/') ? endpoint : `/${endpoint}`;\n\n const response = await fetch(`${window.hlx.codeBasePath}${decoratedEndpoint}`, init);\n\n if (getJson) {\n return await response.json();\n }\n return (await response.text()) as unknown as T;\n};\n","import { LitElement, html } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { fetchData } from '../../utils/fetchData';\nimport { unsafeHTML } from 'lit-html/directives/unsafe-html.js';\n\ninterface SidebarContactTemplateArgs {\n headline: HTMLHeadingElement;\n text: HTMLParagraphElement;\n contacts: Contact[];\n}\n\ninterface Contact {\n contactIcon: string;\n contactMarkup: string;\n}\n\n@customElement('sidebar-contact')\nexport class SidebarContact extends LitElement {\n @state()\n contactTemplateArgs: SidebarContactTemplateArgs;\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n return this;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.fetchContactData();\n }\n\n async fetchContactData() {\n const response = await fetchData({ endpoint: 'contact.plain.html' });\n const responseMarkup = document.createElement('div');\n responseMarkup.innerHTML = response;\n // TODO: refactor contactTemplateArgs\n this.contactTemplateArgs = {\n headline: responseMarkup.querySelector('h2') as HTMLHeadingElement,\n text: responseMarkup.querySelector('p') as HTMLParagraphElement,\n contacts: Array.from(responseMarkup.querySelectorAll('.contact > div:not(:first-child)')).map((item) => {\n return {\n contactIcon: item.querySelector('div')?.innerText as string,\n contactMarkup: item.querySelector('div:last-child')?.innerHTML as string,\n };\n }),\n };\n }\n\n render() {\n const { headline, text, contacts } = this.contactTemplateArgs;\n return html`\n
    \n
    ${headline}
    \n ${text}\n
      \n ${contacts.map((item) => {\n return html`
    • \n \n ${unsafeHTML(item.contactMarkup)}\n
    • `;\n })}\n
    \n
    \n `;\n }\n}\n","import { LitElement, html } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { fetchData } from '../../utils/fetchData';\n\n@customElement('sidebar-footer')\nexport class SidebarFooter extends LitElement {\n @state()\n footerMarkup: HTMLParagraphElement | null;\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n return this;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.fetchFooterData();\n }\n\n async fetchFooterData() {\n const response = await fetchData({ endpoint: 'footer.plain.html' });\n const responseMarkup = document.createElement('div');\n responseMarkup.innerHTML = response;\n this.footerMarkup = responseMarkup.querySelector('p');\n this.footerMarkup?.classList.add('copyright');\n }\n\n render() {\n if (!this.footerMarkup) return;\n return html`${this.footerMarkup}`;\n }\n}\n","import { LitElement, html } from 'lit';\nimport { customElement, query } from 'lit/decorators.js';\nimport { debounce } from '@kluntje/js-utils/lib/function-helpers/decorators';\n\nimport './sidebarNav.ts';\nimport './sidebarContact.ts';\nimport './sidebarFooter.ts';\n\n@customElement('sidebar-component')\nexport class SidebarComponent extends LitElement {\n @query('.toggle')\n toggle: HTMLAnchorElement;\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n return this;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.setInitialVisibility();\n window.addEventListener('resize', this.setInitialVisibility.bind(this));\n }\n\n @debounce(100)\n private setInitialVisibility() {\n window.innerWidth <= 1280 ? this.classList.add('inactive') : this.classList.remove('inactive');\n }\n\n firstUpdated(): void {\n this.toggle.addEventListener('click', this.handleToggleClick);\n }\n\n handleToggleClick = (e: Event) => {\n e.preventDefault();\n this.classList.toggle('inactive');\n };\n\n render() {\n return html`\n
    \n \n \n \n
    \n \n `;\n }\n}\n","import { LitElement, PropertyValueMap, html } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\nimport { fetchData } from '../utils/fetchData';\n\nexport interface HeaderResponseData {\n leftCol: LeftCol;\n rightCol: RightCol;\n}\n\nexport interface LeftCol {\n data: LeftColData[];\n}\n\nexport interface LeftColData {\n logoText: string;\n logoLink: string;\n}\n\nexport interface RightCol {\n data: RightColData[];\n}\n\nexport interface RightColData {\n socialIcon: string;\n socialLabel: string;\n socialLink: string;\n}\n\ninterface HeaderTemplateData {\n leftCol: LeftColData;\n rightCol: RightColData[];\n}\n\n@customElement('header-component')\nexport class HeaderComponent extends LitElement {\n @state()\n headerData: HeaderTemplateData;\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n return this;\n }\n\n protected async firstUpdated(_changedProperties: PropertyValueMap | Map) {\n await this.fetchHeaderData();\n }\n\n async fetchHeaderData() {\n try {\n const response = await fetchData({ endpoint: 'header.json', getJson: true });\n this.headerData = { leftCol: response.leftCol.data[0], rightCol: response.rightCol.data };\n } catch (error) {\n console.error('HeaderComponent: ', error);\n }\n }\n\n render() {\n if (!this.headerData) return;\n const { leftCol, rightCol } = this.headerData;\n return html`\n ${leftCol.logoText}\n \n `;\n }\n}\n","// const LCP_BLOCKS: string[] = []; // add your LCP blocks to the list\n\nimport { addClasses } from '../src/utils/addClasses';\nimport { getMetadata } from '../src/utils/getMetadata';\nimport { toCamelCase } from '../src/utils/toCamelCase';\nimport { toClassName } from '../src/utils/toClassName';\nimport './components/sidebar/sidebar.ts';\nimport './components/header.ts';\n\ntype ComponentMapping = {\n name: string;\n element: HTMLDivElement;\n};\n\nclass BlockService {\n //TODO: Provider for fetch data\n\n /**\n * Extracts the config from a block.\n * @param {Element} block The block element\n * @returns {object} The block config\n */\n readBlockConfig(block: Element): Record {\n const config: Record = {};\n block.querySelectorAll(':scope > div').forEach((row) => {\n if (row.children) {\n const cols = [...row.children];\n if (cols[1]) {\n const col = cols[1];\n const name = toClassName(cols[0].textContent ?? '');\n let value: any = '';\n if (col.querySelector('a')) {\n const as = [...col.querySelectorAll('a')];\n if (as.length === 1) {\n value = as[0].href;\n } else {\n value = as.map((a) => a.href);\n }\n } else if (col.querySelector('img')) {\n const imgs = [...col.querySelectorAll('img')];\n if (imgs.length === 1) {\n value = imgs[0].src;\n } else {\n value = imgs.map((img) => img.src);\n }\n } else if (col.querySelector('p')) {\n const ps = [...col.querySelectorAll('p')];\n if (ps.length === 1) {\n value = ps[0].textContent;\n } else {\n value = ps.map((p) => p.textContent);\n }\n } else value = row.children[1].textContent;\n config[name] = value;\n }\n }\n });\n return config;\n }\n\n /**\n * Decorates all blocks in a container element.\n * @param {Element} main The container element\n */\n decorateBlocks(main: HTMLElement) {\n main.querySelectorAll('div.section > div > div').forEach(this.decorateBlock);\n }\n\n /**\n * Decorates a block.\n * @param {Element} block The block element\n */\n private decorateBlock(block: HTMLElement) {\n const shortBlockName = block.classList[0];\n if (shortBlockName) {\n block.classList.add('block');\n block.dataset.blockName = shortBlockName;\n const blockWrapper = block.parentElement;\n blockWrapper?.classList.add(`${shortBlockName}-wrapper`);\n const section = block.closest('.section');\n if (section) section.classList.add(`${shortBlockName}-container`);\n }\n }\n}\n\nclass SectionService {\n constructor(private blockService: BlockService) {}\n\n init(container: HTMLElement) {\n this.transformSection(container);\n }\n\n /**\n * Decorates all sections in a container element.\n * @param {Element} main The container element\n */\n private transformSection(main: HTMLElement) {\n main.querySelectorAll(':scope > div').forEach((section) => {\n this.adjustMarkup(section);\n this.processSectionMetaData(section);\n });\n }\n\n private processSectionMetaData(section: HTMLElement) {\n // Process section metadata\n const sectionMeta = section.querySelector('div.section-metadata');\n if (sectionMeta) {\n const meta = this.blockService.readBlockConfig(sectionMeta);\n Object.keys(meta).forEach((key) => {\n if (key === 'style') {\n const styles = meta.style\n .split(',')\n .filter((style: string) => style)\n .map((style: string) => toClassName(style.trim()));\n styles.forEach((style: string) => section.classList.add(style));\n } else {\n section.dataset[toCamelCase(key)] = meta[key];\n }\n });\n if (sectionMeta.parentElement) sectionMeta.parentElement.remove();\n }\n }\n\n private adjustMarkup(section: HTMLDivElement) {\n const wrappers: HTMLDivElement[] = [];\n let defaultContent = false;\n [...section.children].forEach((e) => {\n if (e.tagName === 'DIV' || !defaultContent) {\n const wrapper = document.createElement('div');\n wrappers.push(wrapper);\n defaultContent = e.tagName !== 'DIV';\n\n if (defaultContent) {\n wrapper.classList.add('default-content-wrapper');\n }\n }\n wrappers[wrappers.length - 1].append(e);\n });\n wrappers.forEach((wrapper) => section.append(wrapper));\n this.decorateImages();\n section.classList.add('section');\n section.dataset.sectionStatus = 'initialized';\n section.style.display = 'none';\n }\n decorateImages() {\n const picture = document.querySelectorAll('.default-content-wrapper picture');\n picture.forEach((item) => {\n item.parentElement?.classList.add('image', 'main');\n });\n }\n}\n\nclass Main {\n constructor(\n private sectionService: SectionService,\n private blockService: BlockService\n ) {}\n\n init = async () => {\n this.setup();\n await this.loadEager();\n };\n\n /**\n * Setup block utils.\n */\n private setup() {\n window.hlx = window.hlx || {};\n window.hlx.RUM_MASK_URL = 'full';\n window.hlx.codeBasePath = '';\n window.hlx.lighthouse = new URLSearchParams(window.location.search).get('lighthouse') === 'on';\n\n const scriptEl = document.querySelector('script[src$=\"/scripts/scripts.js\"]') as HTMLScriptElement;\n if (scriptEl) {\n try {\n [window.hlx.codeBasePath] = new URL(scriptEl.src).pathname.split('/scripts/scripts.js');\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(error);\n }\n }\n }\n\n private loadEager = async () => {\n // TODO: how to support different languages here\n document.documentElement.lang = 'en';\n this.decorateTemplateAndTheme();\n if (document) {\n const body = document.querySelector('body');\n if (body) {\n body.style.display = 'none';\n }\n }\n const main = document.querySelector('main');\n if (main) {\n main.setAttribute('id', 'main');\n this.addSidebarContainer(main);\n this.sectionService.init(main);\n this.addInnerContainer(main); // TODO refactor initializing\n this.blockService.decorateBlocks(main);\n await this.loadComponents();\n // TODO: Performace adjustment\n setTimeout(() => {\n document.body.removeAttribute('style');\n }, 200);\n\n // await this.waitForLCP(LCP_BLOCKS);\n }\n };\n\n private addSidebarContainer(main: HTMLElement) {\n const sidebarContainer = document.createElement('sidebar-component');\n sidebarContainer.setAttribute('id', 'sidebar');\n main.after(sidebarContainer);\n }\n\n private addInnerContainer(main: HTMLElement) {\n const children = main.innerHTML;\n main.innerHTML = `
    ${children}
    `;\n }\n\n // private loadLazy = async () => {};\n\n private decorateTemplateAndTheme() {\n const template = getMetadata('template');\n if (template) addClasses(document.body, template);\n const theme = getMetadata('theme');\n if (theme) addClasses(document.body, theme);\n }\n\n private loadComponents = async () => {\n const sections = document.querySelectorAll('.section');\n sections.forEach((section) => {\n const components: ComponentMapping[] = [];\n const blocks = section.querySelectorAll('[data-block-name]');\n if (!blocks.length) {\n section.style.removeProperty('display');\n return;\n }\n blocks.forEach((block: HTMLDivElement) => {\n block.style.display = 'none';\n components.push({\n name: block.dataset['blockName'] as string,\n element: block,\n });\n });\n if (components.length) {\n components.forEach(async (component) => {\n const componentModule = await import(\n `${window.hlx.codeBasePath}/dist/${component.name}/${component.name}.js`\n );\n if (componentModule.default) {\n await componentModule.default(component.element);\n }\n });\n }\n section.style.removeProperty('display');\n });\n };\n}\n\n(async function () {\n const blockService = new BlockService();\n const sectionService = new SectionService(blockService);\n const main = new Main(sectionService, blockService);\n await main.init();\n})();\n\n// /**\n// * Loads JS and CSS for a block.\n// * @param {Element} block The block element\n// */\n// async function loadBlock(block) {\n// const status = block.dataset.blockStatus;\n// if (status !== 'loading' && status !== 'loaded') {\n// block.dataset.blockStatus = 'loading';\n// const { blockName } = block.dataset;\n// try {\n// const cssLoaded = loadCSS(`${window.hlx.codeBasePath}/blocks/${blockName}/${blockName}.css`);\n// const decorationComplete = new Promise((resolve) => {\n// (async () => {\n// try {\n// const mod = await import(`${window.hlx.codeBasePath}/blocks/${blockName}/${blockName}.js`);\n// if (mod.default) {\n// await mod.default(block);\n// }\n// } catch (error) {\n// // eslint-disable-next-line no-console\n// console.log(`failed to load module for ${blockName}`, error);\n// }\n// resolve();\n// })();\n// });\n// await Promise.all([cssLoaded, decorationComplete]);\n// } catch (error) {\n// // eslint-disable-next-line no-console\n// console.log(`failed to load block ${blockName}`, error);\n// }\n// block.dataset.blockStatus = 'loaded';\n// }\n// return block;\n// }\n\ndeclare global {\n interface Window {\n hlx: {\n RUM_MASK_URL: string;\n codeBasePath: string;\n lighthouse: boolean;\n };\n }\n}\n"],"file":"main/main.js"} \ No newline at end of file diff --git a/dist/styles/styles.css b/dist/styles/styles.css index cbc7dd43..68fb9a54 100644 --- a/dist/styles/styles.css +++ b/dist/styles/styles.css @@ -1 +1 @@ -@import"https://fonts.googleapis.com/css?family=Open+Sans:400,600,400italic,600italic|Roboto+Slab:400,700";html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{-webkit-text-size-adjust:none}mark{background-color:transparent;color:inherit}input::-moz-focus-inner{border:0;padding:0}input,select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none}@-ms-viewport{width:device-width}body{-ms-overflow-style:scrollbar}@media screen and (max-width: 480px){html,body{min-width:320px}}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{background:#fff}body.is-preload *,body.is-preload *:before,body.is-preload *:after,body.is-resizing *,body.is-resizing *:before,body.is-resizing *:after{-moz-animation:none!important;-webkit-animation:none!important;-ms-animation:none!important;animation:none!important;-moz-transition:none!important;-webkit-transition:none!important;-ms-transition:none!important;transition:none!important}body{display:flex;flex-direction:row-reverse;min-height:100vh}body>main{flex-grow:1;flex-shrink:1;width:100%}body,input,select,textarea{color:#7f888f;font-family:Open Sans,sans-serif;font-size:13pt;font-weight:400;line-height:1.65}@media screen and (max-width: 1680px){body,input,select,textarea{font-size:11pt}}@media screen and (max-width: 1280px){body,input,select,textarea{font-size:10pt}}@media screen and (max-width: 360px){body,input,select,textarea{font-size:9pt}}a{-moz-transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;-webkit-transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;-ms-transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;border-bottom:dotted 1px;color:#f56a6a;text-decoration:none}a:hover{border-bottom-color:#f56a6a;color:#f56a6a!important}a:hover strong{color:inherit}strong,b{color:#3d4449;font-weight:600}em,i{font-style:italic}p{margin:0 0 2em}h1,h2,h3,h4,h5,h6{color:#3d4449;font-family:Roboto Slab,serif;font-weight:700;line-height:1.5;margin:0 0 1em}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none;border-bottom:0}h1{font-size:4em;margin:0 0 .5em;line-height:1.3}h2{font-size:1.75em}h3{font-size:1.25em}h4{font-size:1.1em}h5{font-size:.9em}h6{font-size:.7em}@media screen and (max-width: 1680px){h1{font-size:3.5em}}@media screen and (max-width: 980px){h1{font-size:3.25em}}@media screen and (max-width: 736px){h1{font-size:2em;line-height:1.4}h2{font-size:1.5em}}sub{font-size:.8em;position:relative;top:.5em}sup{font-size:.8em;position:relative;top:-.5em}blockquote{border-left:solid 3px rgba(210,215,217,.75);font-style:italic;margin:0 0 2em;padding:.5em 0 .5em 2em}code{background:#e6ebed40;border-radius:.375em;border:solid 1px rgba(210,215,217,.75);font-family:Courier New,monospace;font-size:.9em;margin:0 .25em;padding:.25em .65em}pre{-webkit-overflow-scrolling:touch;font-family:Courier New,monospace;font-size:.9em;margin:0 0 2em}pre code{display:block;line-height:1.75;padding:1em 1.5em;overflow-x:auto}hr{border:0;border-bottom:solid 1px rgba(210,215,217,.75);margin:2em 0}hr.major{margin:3em 0}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp{order:-1}.row>.col-1{width:8.3333333333%}.row>.off-1{margin-left:8.3333333333%}.row>.col-2{width:16.6666666667%}.row>.off-2{margin-left:16.6666666667%}.row>.col-3{width:25%}.row>.off-3{margin-left:25%}.row>.col-4{width:33.3333333333%}.row>.off-4{margin-left:33.3333333333%}.row>.col-5{width:41.6666666667%}.row>.off-5{margin-left:41.6666666667%}.row>.col-6{width:50%}.row>.off-6{margin-left:50%}.row>.col-7{width:58.3333333333%}.row>.off-7{margin-left:58.3333333333%}.row>.col-8{width:66.6666666667%}.row>.off-8{margin-left:66.6666666667%}.row>.col-9{width:75%}.row>.off-9{margin-left:75%}.row>.col-10{width:83.3333333333%}.row>.off-10{margin-left:83.3333333333%}.row>.col-11{width:91.6666666667%}.row>.off-11{margin-left:91.6666666667%}.row>.col-12{width:100%}.row>.off-12{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}@media screen and (max-width: 1680px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-xlarge{order:-1}.row>.col-1-xlarge{width:8.3333333333%}.row>.off-1-xlarge{margin-left:8.3333333333%}.row>.col-2-xlarge{width:16.6666666667%}.row>.off-2-xlarge{margin-left:16.6666666667%}.row>.col-3-xlarge{width:25%}.row>.off-3-xlarge{margin-left:25%}.row>.col-4-xlarge{width:33.3333333333%}.row>.off-4-xlarge{margin-left:33.3333333333%}.row>.col-5-xlarge{width:41.6666666667%}.row>.off-5-xlarge{margin-left:41.6666666667%}.row>.col-6-xlarge{width:50%}.row>.off-6-xlarge{margin-left:50%}.row>.col-7-xlarge{width:58.3333333333%}.row>.off-7-xlarge{margin-left:58.3333333333%}.row>.col-8-xlarge{width:66.6666666667%}.row>.off-8-xlarge{margin-left:66.6666666667%}.row>.col-9-xlarge{width:75%}.row>.off-9-xlarge{margin-left:75%}.row>.col-10-xlarge{width:83.3333333333%}.row>.off-10-xlarge{margin-left:83.3333333333%}.row>.col-11-xlarge{width:91.6666666667%}.row>.off-11-xlarge{margin-left:91.6666666667%}.row>.col-12-xlarge{width:100%}.row>.off-12-xlarge{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}}@media screen and (max-width: 1280px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-large{order:-1}.row>.col-1-large{width:8.3333333333%}.row>.off-1-large{margin-left:8.3333333333%}.row>.col-2-large{width:16.6666666667%}.row>.off-2-large{margin-left:16.6666666667%}.row>.col-3-large{width:25%}.row>.off-3-large{margin-left:25%}.row>.col-4-large{width:33.3333333333%}.row>.off-4-large{margin-left:33.3333333333%}.row>.col-5-large{width:41.6666666667%}.row>.off-5-large{margin-left:41.6666666667%}.row>.col-6-large{width:50%}.row>.off-6-large{margin-left:50%}.row>.col-7-large{width:58.3333333333%}.row>.off-7-large{margin-left:58.3333333333%}.row>.col-8-large{width:66.6666666667%}.row>.off-8-large{margin-left:66.6666666667%}.row>.col-9-large{width:75%}.row>.off-9-large{margin-left:75%}.row>.col-10-large{width:83.3333333333%}.row>.off-10-large{margin-left:83.3333333333%}.row>.col-11-large{width:91.6666666667%}.row>.off-11-large{margin-left:91.6666666667%}.row>.col-12-large{width:100%}.row>.off-12-large{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}}@media screen and (max-width: 980px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-medium{order:-1}.row>.col-1-medium{width:8.3333333333%}.row>.off-1-medium{margin-left:8.3333333333%}.row>.col-2-medium{width:16.6666666667%}.row>.off-2-medium{margin-left:16.6666666667%}.row>.col-3-medium{width:25%}.row>.off-3-medium{margin-left:25%}.row>.col-4-medium{width:33.3333333333%}.row>.off-4-medium{margin-left:33.3333333333%}.row>.col-5-medium{width:41.6666666667%}.row>.off-5-medium{margin-left:41.6666666667%}.row>.col-6-medium{width:50%}.row>.off-6-medium{margin-left:50%}.row>.col-7-medium{width:58.3333333333%}.row>.off-7-medium{margin-left:58.3333333333%}.row>.col-8-medium{width:66.6666666667%}.row>.off-8-medium{margin-left:66.6666666667%}.row>.col-9-medium{width:75%}.row>.off-9-medium{margin-left:75%}.row>.col-10-medium{width:83.3333333333%}.row>.off-10-medium{margin-left:83.3333333333%}.row>.col-11-medium{width:91.6666666667%}.row>.off-11-medium{margin-left:91.6666666667%}.row>.col-12-medium{width:100%}.row>.off-12-medium{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}}@media screen and (max-width: 736px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-small{order:-1}.row>.col-1-small{width:8.3333333333%}.row>.off-1-small{margin-left:8.3333333333%}.row>.col-2-small{width:16.6666666667%}.row>.off-2-small{margin-left:16.6666666667%}.row>.col-3-small{width:25%}.row>.off-3-small{margin-left:25%}.row>.col-4-small{width:33.3333333333%}.row>.off-4-small{margin-left:33.3333333333%}.row>.col-5-small{width:41.6666666667%}.row>.off-5-small{margin-left:41.6666666667%}.row>.col-6-small{width:50%}.row>.off-6-small{margin-left:50%}.row>.col-7-small{width:58.3333333333%}.row>.off-7-small{margin-left:58.3333333333%}.row>.col-8-small{width:66.6666666667%}.row>.off-8-small{margin-left:66.6666666667%}.row>.col-9-small{width:75%}.row>.off-9-small{margin-left:75%}.row>.col-10-small{width:83.3333333333%}.row>.off-10-small{margin-left:83.3333333333%}.row>.col-11-small{width:91.6666666667%}.row>.off-11-small{margin-left:91.6666666667%}.row>.col-12-small{width:100%}.row>.off-12-small{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}}@media screen and (max-width: 480px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-xsmall{order:-1}.row>.col-1-xsmall{width:8.3333333333%}.row>.off-1-xsmall{margin-left:8.3333333333%}.row>.col-2-xsmall{width:16.6666666667%}.row>.off-2-xsmall{margin-left:16.6666666667%}.row>.col-3-xsmall{width:25%}.row>.off-3-xsmall{margin-left:25%}.row>.col-4-xsmall{width:33.3333333333%}.row>.off-4-xsmall{margin-left:33.3333333333%}.row>.col-5-xsmall{width:41.6666666667%}.row>.off-5-xsmall{margin-left:41.6666666667%}.row>.col-6-xsmall{width:50%}.row>.off-6-xsmall{margin-left:50%}.row>.col-7-xsmall{width:58.3333333333%}.row>.off-7-xsmall{margin-left:58.3333333333%}.row>.col-8-xsmall{width:66.6666666667%}.row>.off-8-xsmall{margin-left:66.6666666667%}.row>.col-9-xsmall{width:75%}.row>.off-9-xsmall{margin-left:75%}.row>.col-10-xsmall{width:83.3333333333%}.row>.off-10-xsmall{margin-left:83.3333333333%}.row>.col-11-xsmall{width:91.6666666667%}.row>.off-11-xsmall{margin-left:91.6666666667%}.row>.col-12-xsmall{width:100%}.row>.off-12-xsmall{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}}section.special,article.special{text-align:center}.section .default-content-wrapper:first-child h2{border-bottom:solid 3px #f56a6a;display:inline-block;margin:0 0 2em;padding:0 .75em .5em 0}header p{font-family:Roboto Slab,serif;font-size:1em;font-weight:400;letter-spacing:.075em;margin-top:-.5em;text-transform:uppercase}header.major>:last-child{border-bottom:solid 3px #f56a6a;display:inline-block;margin:0 0 2em;padding:0 .75em .5em 0}header.main>:last-child{margin:0 0 1em}form{margin:0 0 2em}label{color:#3d4449;display:block;font-size:.9em;font-weight:600;margin:0 0 1em}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;background:#fff;border-radius:.375em;border:none;border:solid 1px rgba(210,215,217,.75);color:inherit;display:block;outline:0;padding:0 1em;text-decoration:none;width:100%}input[type=text]:invalid,input[type=password]:invalid,input[type=email]:invalid,input[type=tel]:invalid,input[type=search]:invalid,input[type=url]:invalid,select:invalid,textarea:invalid{box-shadow:none}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=search]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#f56a6a;box-shadow:0 0 0 1px #f56a6a}select{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(210, 215, 217, 0.75)' /%3E%3C/svg%3E");background-size:1.25em;background-repeat:no-repeat;background-position:calc(100% - 1em) center;height:2.75em;padding-right:2.75em;text-overflow:ellipsis}select option{color:#3d4449;background:#fff}select:focus::-ms-value{background-color:transparent}select::-ms-expand{display:none}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select{height:2.75em}textarea{padding:.75em 1em}input[type=checkbox],input[type=radio]{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;display:block;float:left;margin-right:-2em;opacity:0;width:1em;z-index:-1}input[type=checkbox]+label,input[type=radio]+label{text-decoration:none;color:#7f888f;cursor:pointer;display:inline-block;font-size:1em;font-weight:400;padding-left:2.4em;padding-right:.75em;position:relative}input[type=checkbox]+label:before,input[type=radio]+label:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}input[type=checkbox]+label:before,input[type=radio]+label:before{background:#fff;border-radius:.375em;border:solid 1px rgba(210,215,217,.75);content:"";display:inline-block;font-size:.8em;height:2.0625em;left:0;line-height:2.0625em;position:absolute;text-align:center;top:0;width:2.0625em}input[type=checkbox]:checked+label:before,input[type=radio]:checked+label:before{background:#3d4449;border-color:#3d4449;color:#fff;content:""}input[type=checkbox]:focus+label:before,input[type=radio]:focus+label:before{border-color:#f56a6a;box-shadow:0 0 0 1px #f56a6a}input[type=checkbox]+label:before{border-radius:.375em}input[type=radio]+label:before{border-radius:100%}::-webkit-input-placeholder{color:#9fa3a6!important;opacity:1}:-moz-placeholder{color:#9fa3a6!important;opacity:1}::-moz-placeholder{color:#9fa3a6!important;opacity:1}:-ms-input-placeholder{color:#9fa3a6!important;opacity:1}.box{border-radius:.375em;border:solid 1px rgba(210,215,217,.75);margin-bottom:2em;padding:1.5em}.box>:last-child,.box>:last-child>:last-child,.box>:last-child>:last-child>:last-child{margin-bottom:0}.box.alt{border:0;border-radius:0;padding:0}.icon{text-decoration:none;border-bottom:none;position:relative}.icon:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:400}.icon>.label{display:none}.icon:before{line-height:inherit}.icon.solid:before{font-weight:900}.icon.brands:before{font-family:"Font Awesome 5 Brands"}.image{border-radius:.375em;border:0;display:inline-block;position:relative}.image img{border-radius:.375em;display:block}.image.left,.image.right{max-width:40%}.image.left img,.image.right img{width:100%}.image.left{float:left;padding:0 1.5em 1em 0;top:.25em}.image.right{float:right;padding:0 0 1em 1.5em;top:.25em}.image.fit{display:block;margin:0 0 2em;width:100%}.image.fit img{width:100%}.image.main{display:block;margin:0 0 3em;width:100%}.image.main img{width:100%;height:auto}a.image{overflow:hidden}a.image img{-moz-transition:-moz-transform .2s ease;-webkit-transition:-webkit-transform .2s ease;-ms-transition:-ms-transform .2s ease;transition:transform .2s ease}a.image:hover img{-moz-transform:scale(1.075);-webkit-transform:scale(1.075);-ms-transform:scale(1.075);transform:scale(1.075)}ol{list-style:decimal;margin:0 0 2em;padding-left:1.25em}ol li{padding-left:.25em}ul{list-style:disc;margin:0 0 2em;padding-left:1em}ul li{padding-left:.5em}ul.alt{list-style:none;padding-left:0}ul.alt li{border-top:solid 1px rgba(210,215,217,.75);padding:.5em 0}ul.alt li:first-child{border-top:0;padding-top:0}dl{margin:0 0 2em}dl dt{display:block;font-weight:600;margin:0 0 1em}dl dd{margin-left:2em}ul.actions{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;cursor:default;list-style:none;margin-left:-1em;padding-left:0}ul.actions li{padding:0 0 0 1em;vertical-align:middle}ul.actions.special{-moz-justify-content:center;-webkit-justify-content:center;-ms-justify-content:center;justify-content:center;width:100%;margin-left:0}ul.actions.special li:first-child{padding-left:0}ul.actions.stacked{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0}ul.actions.stacked li{padding:1.3em 0 0}ul.actions.stacked li:first-child{padding-top:0}ul.actions.fit{width:calc(100% + 1em)}ul.actions.fit li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}ul.actions.fit li>*{width:100%}ul.actions.fit.stacked{width:100%}ul.icons{cursor:default;list-style:none;padding-left:0}ul.icons li{display:inline-block;padding:0 1em 0 0}ul.icons li:last-child{padding-right:0}ul.icons li .icon{color:inherit}ul.icons li .icon:before{font-size:1.25em}ul.contact{list-style:none;padding:0}ul.contact li{text-decoration:none;border-top:solid 1px rgba(210,215,217,.75);margin:1.5em 0 0;padding:1.5em 0 0 3em;position:relative}ul.contact li:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:400}ul.contact li:before{color:#f56a6a;display:inline-block;font-size:1.5em;height:1.125em;left:0;line-height:1.125em;position:absolute;text-align:center;top:1em;width:1.5em}ul.contact li:first-child{border-top:0;margin-top:0;padding-top:0}ul.contact li:first-child:before{top:0}ul.contact li a{color:inherit}ul.pagination{cursor:default;list-style:none;padding-left:0}ul.pagination li{display:inline-block;padding-left:0;vertical-align:middle}ul.pagination li>.page{-moz-transition:background-color .2s ease-in-out,color .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out,color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out,color .2s ease-in-out;transition:background-color .2s ease-in-out,color .2s ease-in-out;border-bottom:0;border-radius:.375em;display:inline-block;font-size:.8em;font-weight:600;height:2em;line-height:2em;margin:0 .125em;min-width:2em;padding:0 .5em;text-align:center}ul.pagination li>.page.active{background-color:#f56a6a;color:#fff!important}ul.pagination li>.page.active:hover{background-color:#f67878}ul.pagination li>.page.active:active{background-color:#f45c5c}ul.pagination li:first-child{padding-right:.75em}ul.pagination li:last-child{padding-left:.75em}@media screen and (max-width: 480px){ul.pagination li:nth-child(n+2):nth-last-child(n+2){display:none}ul.pagination li:first-child{padding-right:0}}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{margin:0 0 2em;width:100%}table tbody tr{border:solid 1px rgba(210,215,217,.75);border-left:0;border-right:0}table tbody tr:nth-child(odd){background-color:#e6ebed40}table td{padding:.75em}table th{color:#3d4449;font-size:.9em;font-weight:600;padding:0 .75em .75em;text-align:left}table thead{border-bottom:solid 2px rgba(210,215,217,.75)}table tfoot{border-top:solid 2px rgba(210,215,217,.75)}table.alt{border-collapse:separate}table.alt tbody tr td{border:solid 1px rgba(210,215,217,.75);border-left-width:0;border-top-width:0}table.alt tbody tr td:first-child{border-left-width:1px}table.alt tbody tr:first-child td{border-top-width:1px}table.alt thead{border-bottom:0}table.alt tfoot{border-top:0}input[type=submit],input[type=reset],input[type=button],button,.button{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:background-color .2s ease-in-out,color .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out,color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out,color .2s ease-in-out;transition:background-color .2s ease-in-out,color .2s ease-in-out;background-color:transparent;border-radius:.375em;border:0;box-shadow:inset 0 0 0 2px #f56a6a;color:#f56a6a!important;cursor:pointer;display:inline-block;font-family:Roboto Slab,serif;font-size:.8em;font-weight:700;height:3.5em;letter-spacing:.075em;line-height:3.5em;padding:0 2.25em;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap}input[type=submit]:hover,input[type=reset]:hover,input[type=button]:hover,button:hover,.button:hover{background-color:#f56a6a0d}input[type=submit]:active,input[type=reset]:active,input[type=button]:active,button:active,.button:active{background-color:#f56a6a26}input[type=submit].icon:before,input[type=reset].icon:before,input[type=button].icon:before,button.icon:before,.button.icon:before{margin-right:.5em}input[type=submit].fit,input[type=reset].fit,input[type=button].fit,button.fit,.button.fit{width:100%}input[type=submit].small,input[type=reset].small,input[type=button].small,button.small,.button.small{font-size:.6em}input[type=submit].large,input[type=reset].large,input[type=button].large,button.large,.button.large{font-size:1em;height:3.65em;line-height:3.65em}input[type=submit].primary,input[type=reset].primary,input[type=button].primary,button.primary,.button.primary{background-color:#f56a6a;box-shadow:none;color:#fff!important}input[type=submit].primary:hover,input[type=reset].primary:hover,input[type=button].primary:hover,button.primary:hover,.button.primary:hover{background-color:#f67878}input[type=submit].primary:active,input[type=reset].primary:active,input[type=button].primary:active,button.primary:active,.button.primary:active{background-color:#f45c5c}input[type=submit].disabled,input[type=submit]:disabled,input[type=reset].disabled,input[type=reset]:disabled,input[type=button].disabled,input[type=button]:disabled,button.disabled,button:disabled,.button.disabled,.button:disabled{pointer-events:none;opacity:.25}.mini-posts article{border-top:solid 1px rgba(210,215,217,.75);margin-top:2em;padding-top:2em}.mini-posts article .image{display:block;margin:0 0 1.5em}.mini-posts article .image img{display:block;width:100%}.mini-posts article:first-child{border-top:0;margin-top:0;padding-top:0}.features{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 0 2em -3em;width:calc(100% + 3em)}.features article{-moz-align-items:center;-webkit-align-items:center;-ms-align-items:center;align-items:center;display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;margin:0 0 3em 3em;position:relative;width:calc(50% - 3em)}.features article:nth-child(2n-1){margin-right:1.5em}.features article:nth-child(2n){margin-left:1.5em}.features article:nth-last-child(1),.features article:nth-last-child(2){margin-bottom:0}.features article .icon-wc{color:#f56a6a;width:44px}.features article .icon{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;display:flex;justify-content:center;height:10em;line-height:10em;margin:0 2em 0 0;text-align:center;width:10em;color:#f56a6a}.features article .icon:before{color:#f56a6a;font-size:2.75rem;position:relative;top:.05em}.features article .icon:after{-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);border-radius:.25rem;border:solid 2px rgba(210,215,217,.75);content:"";display:block;height:7em;left:50%;margin:-3.5em 0 0 -3.5em;position:absolute;top:50%;width:7em}.features article .content{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}.features article .content>:last-child{margin-bottom:0}@media screen and (max-width: 980px){.features{margin:0 0 2em;width:100%}.features article{margin:0 0 3em;width:100%}.features article:nth-child(2n-1){margin-right:0}.features article:nth-child(2n){margin-left:0}.features article:nth-last-child(1),.features article:nth-last-child(2){margin-bottom:3em}.features article:last-child{margin-bottom:0}.features article .icon{height:8em;line-height:8em;width:8em}.features article .icon:before{font-size:2.25rem}.features article .icon:after{height:6em;margin:-3em 0 0 -3em;width:6em}}@media screen and (max-width: 480px){.features article{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-moz-align-items:-moz-flex-start;-webkit-align-items:-webkit-flex-start;-ms-align-items:-ms-flex-start;align-items:flex-start}.features article .icon{height:6em;line-height:6em;margin:0 0 1.5em;width:6em}.features article .icon:before{font-size:1.5rem}.features article .icon:after{height:4em;margin:-2em 0 0 -2em;width:4em}}@media screen and (max-width: 480px){.features article .icon:before{font-size:1.25rem}}.posts{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 0 2em -6em;width:calc(100% + 6em)}.posts article{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;margin:0 0 6em 6em;position:relative;width:calc(33.3333333333% - 6em)}.posts article:before{background:#d2d7d9bf;content:"";display:block;height:calc(100% + 6em);left:-3em;position:absolute;top:0;width:1px}.posts article:after{background:#d2d7d9bf;bottom:-3em;content:"";display:block;height:1px;position:absolute;right:0;width:calc(100% + 6em)}.posts article>:last-child{margin-bottom:0}.posts article .image{display:block;margin:0 0 2em}.posts article .image img{display:block;width:100%}@media screen and (min-width: 1681px){.posts article:nth-child(3n+1):before{display:none}.posts article:nth-child(3n+1):after{width:100%}.posts article:nth-last-child(1),.posts article:nth-last-child(2),.posts article:nth-last-child(3){margin-bottom:0}.posts article:nth-last-child(1):before,.posts article:nth-last-child(2):before,.posts article:nth-last-child(3):before{height:100%}.posts article:nth-last-child(1):after,.posts article:nth-last-child(2):after,.posts article:nth-last-child(3):after{display:none}}@media screen and (max-width: 1680px){.posts article{width:calc(50% - 6em)}.posts article:nth-last-child(3){margin-bottom:6em}}@media screen and (min-width: 481px) and (max-width: 1680px){.posts article:nth-child(odd):before{display:none}.posts article:nth-child(odd):after{width:100%}.posts article:nth-last-child(1),.posts article:nth-last-child(2){margin-bottom:0}.posts article:nth-last-child(1):before,.posts article:nth-last-child(2):before{height:100%}.posts article:nth-last-child(1):after,.posts article:nth-last-child(2):after{display:none}}@media screen and (max-width: 736px){.posts{margin:0 0 2em -4.5em;width:calc(100% + 4.5em)}.posts article{margin:0 0 4.5em 4.5em;width:calc(50% - 4.5em)}.posts article:before{height:calc(100% + 4.5em);left:-2.25em}.posts article:after{bottom:-2.25em;width:calc(100% + 4.5em)}.posts article:nth-last-child(3){margin-bottom:4.5em}}@media screen and (max-width: 480px){.posts{margin:0 0 2em;width:100%}.posts article{margin:0 0 4.5em;width:100%}.posts article:before{display:none}.posts article:after{width:100%}.posts article:last-child{margin-bottom:0}.posts article:last-child:after{display:none}}#wrapper{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;min-height:100vh}#main{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}#main>.inner{padding:0 6em .1em;margin:0 auto;max-width:110em}#main>.inner .section{padding:6em 0 4em;border-top:solid 2px rgba(210,215,217,.75)}#main>.inner .section:first-child{border-top:0!important;padding:0}@media screen and (max-width: 1680px){#main>.inner{padding:0 5em .1em}#main>.inner>.section{padding:5em 0 3em}}@media screen and (max-width: 1280px){#main>.inner{padding:0 4em .1em}#main>.inner>.section{padding:4em 0 2em}}@media screen and (max-width: 736px){#main>.inner{padding:0 2em .1em}#main>.inner>.section{padding:3em 0 1em}}#search form{text-decoration:none;position:relative}#search form:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}#search form:before{-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);color:#7f888f;content:"";cursor:default;display:block;font-size:1.5em;height:2em;line-height:2em;opacity:.325;position:absolute;right:0;text-align:center;top:0;width:2em}#search form input[type=text]{padding-right:2.75em}#sidebar{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;-moz-transition:margin-left .5s ease,box-shadow .5s ease;-webkit-transition:margin-left .5s ease,box-shadow .5s ease;-ms-transition:margin-left .5s ease,box-shadow .5s ease;transition:margin-left .5s ease,box-shadow .5s ease;background-color:#f5f6f7;font-size:.9em;position:relative;width:26em}#sidebar h2{font-size:1.3888888889em}#sidebar>.inner{padding:2.2222222222em 2.2222222222em 2.4444444444em;position:relative;width:26em}#sidebar>.inner>*{border-bottom:solid 2px rgba(210,215,217,.75);margin:0 0 3.5em;padding:0 0 3.5em}#sidebar>.inner>*>:last-child{margin-bottom:0}#sidebar>.inner>*:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}#sidebar>.inner>.alt{background-color:#eff1f2;border-bottom:0;margin:-2.2222222222em 0 4.4444444444em -2.2222222222em;padding:2.2222222222em;width:calc(100% + 4.4444444444em)}#sidebar .toggle{text-decoration:none;-moz-transition:left .5s ease;-webkit-transition:left .5s ease;-ms-transition:left .5s ease;transition:left .5s ease;-webkit-tap-highlight-color:rgba(255,255,255,0);border:0;display:flex;align-items:center;justify-content:center;height:7.5em;left:26em;line-height:7.5em;outline:0;overflow:hidden;position:absolute;text-align:center;text-indent:-15em;white-space:nowrap;top:0;width:6em;z-index:10000}#sidebar .toggle:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}#sidebar .toggle>icon-component{width:2.5rem;margin-left:-1.4375em}#sidebar.inactive{margin-left:-26em}@media screen and (max-width: 1680px){#sidebar{width:24em}#sidebar>.inner{padding:1.6666666667em 1.6666666667em 1.3333333333em;width:24em}#sidebar>.inner>.alt{margin:-1.6666666667em 0 3.3333333333em -1.6666666667em;padding:1.6666666667em;width:calc(100% + 3.3333333333em)}#sidebar .toggle{height:6.25em;left:24em;line-height:6.25em;text-indent:5em;width:5em}#sidebar .toggle>icon-component{margin-left:.5625em}#sidebar.inactive{margin-left:-24em}}@media screen and (max-width: 1280px){#sidebar{box-shadow:0 0 5em #0000002d;height:100%;left:0;position:fixed;top:0;z-index:10000}#sidebar.inactive{box-shadow:none}#sidebar>.inner{-webkit-overflow-scrolling:touch;height:100%;left:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:0}#sidebar>.inner:after{content:"";display:block;height:4em;width:100%}#sidebar .toggle{text-indent:6em;width:6em}#sidebar .toggle>icon-component{margin-left:-1.4375em}body.is-preload #sidebar{display:none}}@media screen and (max-width: 736px){#sidebar .toggle{text-indent:7.25em;width:7.25em}#sidebar .toggle:before{color:#7f888f;margin-left:-.0625em;margin-top:-.25em;font-size:1.1rem;z-index:1}#sidebar .toggle:after{background:#dee1e2bf;border-radius:.375em;content:"";height:3.5em;left:1em;position:absolute;top:1em;width:5em}}#header{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;border-bottom:solid 5px #f56a6a;padding:6em 0 1em;position:relative}#header>*{-moz-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;margin-bottom:0}#header .logo{border-bottom:0;color:inherit;font-family:Roboto Slab,serif;font-size:1.125em}#header .icons{text-align:right}#header .header-icon{width:20px;height:20px;fill:currentcolor}@media screen and (max-width: 1680px){#header{padding-top:5em}}@media screen and (max-width: 736px){#header{padding-top:6.5em}#header .logo{font-size:1.25em;margin:0}#header .icons{height:5em;line-height:5em;position:absolute;right:-.5em;top:0}}#banner{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex}#banner h1{margin-top:-.125em}#banner .content{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:50%}#banner .image{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;display:block;margin:0 0 2em 4em;width:50%}#banner .image img{height:100%;-moz-object-fit:cover;-webkit-object-fit:cover;-ms-object-fit:cover;object-fit:cover;-moz-object-position:center;-webkit-object-position:center;-ms-object-position:center;object-position:center;width:100%}@media screen and (orientation: portrait){#banner{-moz-flex-direction:column-reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}#banner h1 br{display:none}#banner .content{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;width:100%}#banner .image{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;margin:0 0 4em;height:25em;max-height:50vh;min-height:18em;width:100%}}@media screen and (orientation: portrait) and (max-width: 480px){#banner .image{max-height:35vh}}#footer .copyright{color:#9fa3a6;font-size:.9em}#footer .copyright a{color:inherit}.submenu{display:flex}.submenu__text{flex-grow:1;flex-shrink:0}.submenu__icon{-moz-transition:color .2s ease-in-out,-moz-transform .2s ease-in-out;-webkit-transition:color .2s ease-in-out,-webkit-transform .2s ease-in-out;-ms-transition:color .2s ease-in-out,-ms-transform .2s ease-in-out;transition:color .2s ease-in-out,transform .2s ease-in-out;flex-grow:0;flex-shrink:1;width:20px}.submenu.active .submenu__icon{-moz-transform:rotate(-180deg);-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}#menu ul{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;color:#3d4449;font-family:Roboto Slab,serif;font-weight:400;letter-spacing:.075em;list-style:none;margin-bottom:0;padding:0;text-transform:uppercase}#menu ul a,#menu ul span{border-bottom:0;color:inherit;cursor:pointer;display:block;font-size:.9em;padding:.625em 0}#menu ul a:hover,#menu ul span:hover{color:#f56a6a}#menu ul a.opener,#menu ul span.opener{-moz-transition:color .2s ease-in-out;-webkit-transition:color .2s ease-in-out;-ms-transition:color .2s ease-in-out;transition:color .2s ease-in-out;text-decoration:none;-webkit-tap-highlight-color:rgba(255,255,255,0);position:relative;display:flex}#menu ul a.opener:before,#menu ul span.opener:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}#menu ul a.opener:hover,#menu ul span.opener:hover{color:#f56a6a}#menu ul a.opener.active+ul,#menu ul span.opener.active+ul{display:block}#menu ul a.opener.active:before,#menu ul span.opener.active:before{-moz-transform:rotate(-180deg);-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}#menu>ul>li{border-top:solid 1px rgba(210,215,217,.75);margin:.5em 0 0;padding:.5em 0 0}#menu>ul>li>ul{color:#9fa3a6;display:none;margin:.5em 0 1.5em;padding-left:1em}#menu>ul>li>ul a,#menu>ul>li>ul span{font-size:.8em}#menu>ul>li>ul>li{margin:.125em 0 0;padding:.125em 0 0}#menu>ul>li:first-child{border-top:0;margin-top:0;padding-top:0} +@import"https://fonts.googleapis.com/css?family=Open+Sans:400,600,400italic,600italic|Roboto+Slab:400,700";html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}body{-webkit-text-size-adjust:none}mark{background-color:transparent;color:inherit}input::-moz-focus-inner{border:0;padding:0}input,select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none}@-ms-viewport{width:device-width}body{-ms-overflow-style:scrollbar}@media screen and (max-width: 480px){html,body{min-width:320px}}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{background:#fff}body.is-preload *,body.is-preload *:before,body.is-preload *:after,body.is-resizing *,body.is-resizing *:before,body.is-resizing *:after{-moz-animation:none!important;-webkit-animation:none!important;-ms-animation:none!important;animation:none!important;-moz-transition:none!important;-webkit-transition:none!important;-ms-transition:none!important;transition:none!important}body{display:flex;flex-direction:row-reverse;min-height:100vh}body>main{flex-grow:1;flex-shrink:1;width:100%}body,input,select,textarea{color:#7f888f;font-family:Open Sans,sans-serif;font-size:13pt;font-weight:400;line-height:1.65}@media screen and (max-width: 1680px){body,input,select,textarea{font-size:11pt}}@media screen and (max-width: 1280px){body,input,select,textarea{font-size:10pt}}@media screen and (max-width: 360px){body,input,select,textarea{font-size:9pt}}a{-moz-transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;-webkit-transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;-ms-transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;border-bottom:dotted 1px;color:#f56a6a;text-decoration:none}a:hover{border-bottom-color:#f56a6a;color:#f56a6a!important}a:hover strong{color:inherit}strong,b{color:#3d4449;font-weight:600}em,i{font-style:italic}p{margin:0 0 2em}h1,h2,h3,h4,h5,h6{color:#3d4449;font-family:Roboto Slab,serif;font-weight:700;line-height:1.5;margin:0 0 1em}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none;border-bottom:0}h1{font-size:4em;margin:0 0 .5em;line-height:1.3}h2{font-size:1.75em}h3{font-size:1.25em}h4{font-size:1.1em}h5{font-size:.9em}h6{font-size:.7em}@media screen and (max-width: 1680px){h1{font-size:3.5em}}@media screen and (max-width: 980px){h1{font-size:3.25em}}@media screen and (max-width: 736px){h1{font-size:2em;line-height:1.4}h2{font-size:1.5em}}sub{font-size:.8em;position:relative;top:.5em}sup{font-size:.8em;position:relative;top:-.5em}blockquote{border-left:solid 3px rgba(210,215,217,.75);font-style:italic;margin:0 0 2em;padding:.5em 0 .5em 2em}code{background:#e6ebed40;border-radius:.375em;border:solid 1px rgba(210,215,217,.75);font-family:Courier New,monospace;font-size:.9em;margin:0 .25em;padding:.25em .65em}pre{-webkit-overflow-scrolling:touch;font-family:Courier New,monospace;font-size:.9em;margin:0 0 2em}pre code{display:block;line-height:1.75;padding:1em 1.5em;overflow-x:auto}hr{border:0;border-bottom:solid 1px rgba(210,215,217,.75);margin:2em 0}hr.major{margin:3em 0}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp{order:-1}.row>.col-1{width:8.3333333333%}.row>.off-1{margin-left:8.3333333333%}.row>.col-2{width:16.6666666667%}.row>.off-2{margin-left:16.6666666667%}.row>.col-3{width:25%}.row>.off-3{margin-left:25%}.row>.col-4{width:33.3333333333%}.row>.off-4{margin-left:33.3333333333%}.row>.col-5{width:41.6666666667%}.row>.off-5{margin-left:41.6666666667%}.row>.col-6{width:50%}.row>.off-6{margin-left:50%}.row>.col-7{width:58.3333333333%}.row>.off-7{margin-left:58.3333333333%}.row>.col-8{width:66.6666666667%}.row>.off-8{margin-left:66.6666666667%}.row>.col-9{width:75%}.row>.off-9{margin-left:75%}.row>.col-10{width:83.3333333333%}.row>.off-10{margin-left:83.3333333333%}.row>.col-11{width:91.6666666667%}.row>.off-11{margin-left:91.6666666667%}.row>.col-12{width:100%}.row>.off-12{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}@media screen and (max-width: 1680px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-xlarge{order:-1}.row>.col-1-xlarge{width:8.3333333333%}.row>.off-1-xlarge{margin-left:8.3333333333%}.row>.col-2-xlarge{width:16.6666666667%}.row>.off-2-xlarge{margin-left:16.6666666667%}.row>.col-3-xlarge{width:25%}.row>.off-3-xlarge{margin-left:25%}.row>.col-4-xlarge{width:33.3333333333%}.row>.off-4-xlarge{margin-left:33.3333333333%}.row>.col-5-xlarge{width:41.6666666667%}.row>.off-5-xlarge{margin-left:41.6666666667%}.row>.col-6-xlarge{width:50%}.row>.off-6-xlarge{margin-left:50%}.row>.col-7-xlarge{width:58.3333333333%}.row>.off-7-xlarge{margin-left:58.3333333333%}.row>.col-8-xlarge{width:66.6666666667%}.row>.off-8-xlarge{margin-left:66.6666666667%}.row>.col-9-xlarge{width:75%}.row>.off-9-xlarge{margin-left:75%}.row>.col-10-xlarge{width:83.3333333333%}.row>.off-10-xlarge{margin-left:83.3333333333%}.row>.col-11-xlarge{width:91.6666666667%}.row>.off-11-xlarge{margin-left:91.6666666667%}.row>.col-12-xlarge{width:100%}.row>.off-12-xlarge{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}}@media screen and (max-width: 1280px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-large{order:-1}.row>.col-1-large{width:8.3333333333%}.row>.off-1-large{margin-left:8.3333333333%}.row>.col-2-large{width:16.6666666667%}.row>.off-2-large{margin-left:16.6666666667%}.row>.col-3-large{width:25%}.row>.off-3-large{margin-left:25%}.row>.col-4-large{width:33.3333333333%}.row>.off-4-large{margin-left:33.3333333333%}.row>.col-5-large{width:41.6666666667%}.row>.off-5-large{margin-left:41.6666666667%}.row>.col-6-large{width:50%}.row>.off-6-large{margin-left:50%}.row>.col-7-large{width:58.3333333333%}.row>.off-7-large{margin-left:58.3333333333%}.row>.col-8-large{width:66.6666666667%}.row>.off-8-large{margin-left:66.6666666667%}.row>.col-9-large{width:75%}.row>.off-9-large{margin-left:75%}.row>.col-10-large{width:83.3333333333%}.row>.off-10-large{margin-left:83.3333333333%}.row>.col-11-large{width:91.6666666667%}.row>.off-11-large{margin-left:91.6666666667%}.row>.col-12-large{width:100%}.row>.off-12-large{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}}@media screen and (max-width: 980px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-medium{order:-1}.row>.col-1-medium{width:8.3333333333%}.row>.off-1-medium{margin-left:8.3333333333%}.row>.col-2-medium{width:16.6666666667%}.row>.off-2-medium{margin-left:16.6666666667%}.row>.col-3-medium{width:25%}.row>.off-3-medium{margin-left:25%}.row>.col-4-medium{width:33.3333333333%}.row>.off-4-medium{margin-left:33.3333333333%}.row>.col-5-medium{width:41.6666666667%}.row>.off-5-medium{margin-left:41.6666666667%}.row>.col-6-medium{width:50%}.row>.off-6-medium{margin-left:50%}.row>.col-7-medium{width:58.3333333333%}.row>.off-7-medium{margin-left:58.3333333333%}.row>.col-8-medium{width:66.6666666667%}.row>.off-8-medium{margin-left:66.6666666667%}.row>.col-9-medium{width:75%}.row>.off-9-medium{margin-left:75%}.row>.col-10-medium{width:83.3333333333%}.row>.off-10-medium{margin-left:83.3333333333%}.row>.col-11-medium{width:91.6666666667%}.row>.off-11-medium{margin-left:91.6666666667%}.row>.col-12-medium{width:100%}.row>.off-12-medium{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}}@media screen and (max-width: 736px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-small{order:-1}.row>.col-1-small{width:8.3333333333%}.row>.off-1-small{margin-left:8.3333333333%}.row>.col-2-small{width:16.6666666667%}.row>.off-2-small{margin-left:16.6666666667%}.row>.col-3-small{width:25%}.row>.off-3-small{margin-left:25%}.row>.col-4-small{width:33.3333333333%}.row>.off-4-small{margin-left:33.3333333333%}.row>.col-5-small{width:41.6666666667%}.row>.off-5-small{margin-left:41.6666666667%}.row>.col-6-small{width:50%}.row>.off-6-small{margin-left:50%}.row>.col-7-small{width:58.3333333333%}.row>.off-7-small{margin-left:58.3333333333%}.row>.col-8-small{width:66.6666666667%}.row>.off-8-small{margin-left:66.6666666667%}.row>.col-9-small{width:75%}.row>.off-9-small{margin-left:75%}.row>.col-10-small{width:83.3333333333%}.row>.off-10-small{margin-left:83.3333333333%}.row>.col-11-small{width:91.6666666667%}.row>.off-11-small{margin-left:91.6666666667%}.row>.col-12-small{width:100%}.row>.off-12-small{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}}@media screen and (max-width: 480px){.row{display:flex;flex-wrap:wrap;box-sizing:border-box;align-items:stretch}.row>*{box-sizing:border-box}.row.gtr-uniform>*>:last-child{margin-bottom:0}.row.aln-left{justify-content:flex-start}.row.aln-center{justify-content:center}.row.aln-right{justify-content:flex-end}.row.aln-top{align-items:flex-start}.row.aln-middle{align-items:center}.row.aln-bottom{align-items:flex-end}.row>.imp-xsmall{order:-1}.row>.col-1-xsmall{width:8.3333333333%}.row>.off-1-xsmall{margin-left:8.3333333333%}.row>.col-2-xsmall{width:16.6666666667%}.row>.off-2-xsmall{margin-left:16.6666666667%}.row>.col-3-xsmall{width:25%}.row>.off-3-xsmall{margin-left:25%}.row>.col-4-xsmall{width:33.3333333333%}.row>.off-4-xsmall{margin-left:33.3333333333%}.row>.col-5-xsmall{width:41.6666666667%}.row>.off-5-xsmall{margin-left:41.6666666667%}.row>.col-6-xsmall{width:50%}.row>.off-6-xsmall{margin-left:50%}.row>.col-7-xsmall{width:58.3333333333%}.row>.off-7-xsmall{margin-left:58.3333333333%}.row>.col-8-xsmall{width:66.6666666667%}.row>.off-8-xsmall{margin-left:66.6666666667%}.row>.col-9-xsmall{width:75%}.row>.off-9-xsmall{margin-left:75%}.row>.col-10-xsmall{width:83.3333333333%}.row>.off-10-xsmall{margin-left:83.3333333333%}.row>.col-11-xsmall{width:91.6666666667%}.row>.off-11-xsmall{margin-left:91.6666666667%}.row>.col-12-xsmall{width:100%}.row>.off-12-xsmall{margin-left:100%}.row.gtr-0{margin-top:0;margin-left:0}.row.gtr-0>*{padding:0}.row.gtr-0.gtr-uniform{margin-top:0}.row.gtr-0.gtr-uniform>*{padding-top:0}.row.gtr-25{margin-top:0;margin-left:-.375em}.row.gtr-25>*{padding:0 0 0 .375em}.row.gtr-25.gtr-uniform{margin-top:-.375em}.row.gtr-25.gtr-uniform>*{padding-top:.375em}.row.gtr-50{margin-top:0;margin-left:-.75em}.row.gtr-50>*{padding:0 0 0 .75em}.row.gtr-50.gtr-uniform{margin-top:-.75em}.row.gtr-50.gtr-uniform>*{padding-top:.75em}.row{margin-top:0;margin-left:-1.5em}.row>*{padding:0 0 0 1.5em}.row.gtr-uniform{margin-top:-1.5em}.row.gtr-uniform>*{padding-top:1.5em}.row.gtr-150{margin-top:0;margin-left:-2.25em}.row.gtr-150>*{padding:0 0 0 2.25em}.row.gtr-150.gtr-uniform{margin-top:-2.25em}.row.gtr-150.gtr-uniform>*{padding-top:2.25em}.row.gtr-200{margin-top:0;margin-left:-3em}.row.gtr-200>*{padding:0 0 0 3em}.row.gtr-200.gtr-uniform{margin-top:-3em}.row.gtr-200.gtr-uniform>*{padding-top:3em}}section.special,article.special{text-align:center}.section .default-content-wrapper:first-child h2{border-bottom:solid 3px #f56a6a;display:inline-block;margin:0 0 2em;padding:0 .75em .5em 0}header p{font-family:Roboto Slab,serif;font-size:1em;font-weight:400;letter-spacing:.075em;margin-top:-.5em;text-transform:uppercase}header.major>:last-child{border-bottom:solid 3px #f56a6a;display:inline-block;margin:0 0 2em;padding:0 .75em .5em 0}header.main>:last-child{margin:0 0 1em}form{margin:0 0 2em}label{color:#3d4449;display:block;font-size:.9em;font-weight:600;margin:0 0 1em}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select,textarea{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;background:#fff;border-radius:.375em;border:none;border:solid 1px rgba(210,215,217,.75);color:inherit;display:block;outline:0;padding:0 1em;text-decoration:none;width:100%}input[type=text]:invalid,input[type=password]:invalid,input[type=email]:invalid,input[type=tel]:invalid,input[type=search]:invalid,input[type=url]:invalid,select:invalid,textarea:invalid{box-shadow:none}input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=tel]:focus,input[type=search]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#f56a6a;box-shadow:0 0 0 1px #f56a6a}select{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='rgba(210, 215, 217, 0.75)' /%3E%3C/svg%3E");background-size:1.25em;background-repeat:no-repeat;background-position:calc(100% - 1em) center;height:2.75em;padding-right:2.75em;text-overflow:ellipsis}select option{color:#3d4449;background:#fff}select:focus::-ms-value{background-color:transparent}select::-ms-expand{display:none}input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],input[type=url],select{height:2.75em}textarea{padding:.75em 1em}input[type=checkbox],input[type=radio]{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;display:block;float:left;margin-right:-2em;opacity:0;width:1em;z-index:-1}input[type=checkbox]+label,input[type=radio]+label{text-decoration:none;color:#7f888f;cursor:pointer;display:inline-block;font-size:1em;font-weight:400;padding-left:2.4em;padding-right:.75em;position:relative}input[type=checkbox]+label:before,input[type=radio]+label:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}input[type=checkbox]+label:before,input[type=radio]+label:before{background:#fff;border-radius:.375em;border:solid 1px rgba(210,215,217,.75);content:"";display:inline-block;font-size:.8em;height:2.0625em;left:0;line-height:2.0625em;position:absolute;text-align:center;top:0;width:2.0625em}input[type=checkbox]:checked+label:before,input[type=radio]:checked+label:before{background:#3d4449;border-color:#3d4449;color:#fff;content:""}input[type=checkbox]:focus+label:before,input[type=radio]:focus+label:before{border-color:#f56a6a;box-shadow:0 0 0 1px #f56a6a}input[type=checkbox]+label:before{border-radius:.375em}input[type=radio]+label:before{border-radius:100%}::-webkit-input-placeholder{color:#9fa3a6!important;opacity:1}:-moz-placeholder{color:#9fa3a6!important;opacity:1}::-moz-placeholder{color:#9fa3a6!important;opacity:1}:-ms-input-placeholder{color:#9fa3a6!important;opacity:1}.box{border-radius:.375em;border:solid 1px rgba(210,215,217,.75);margin-bottom:2em;padding:1.5em}.box>:last-child,.box>:last-child>:last-child,.box>:last-child>:last-child>:last-child{margin-bottom:0}.box.alt{border:0;border-radius:0;padding:0}.icon{text-decoration:none;border-bottom:none;position:relative}.icon:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:400}.icon>.label{display:none}.icon:before{line-height:inherit}.icon.solid:before{font-weight:900}.icon.brands:before{font-family:"Font Awesome 5 Brands"}.image{border-radius:.375em;border:0;display:inline-block;position:relative}.image img{border-radius:.375em;display:block}.image.left,.image.right{max-width:40%}.image.left img,.image.right img{width:100%}.image.left{float:left;padding:0 1.5em 1em 0;top:.25em}.image.right{float:right;padding:0 0 1em 1.5em;top:.25em}.image.fit{display:block;margin:0 0 2em;width:100%}.image.fit img{width:100%}.image.main{display:block;margin:0 0 3em;width:100%}.image.main img{width:100%;height:auto}a.image{overflow:hidden}a.image img{-moz-transition:-moz-transform .2s ease;-webkit-transition:-webkit-transform .2s ease;-ms-transition:-ms-transform .2s ease;transition:transform .2s ease}a.image:hover img{-moz-transform:scale(1.075);-webkit-transform:scale(1.075);-ms-transform:scale(1.075);transform:scale(1.075)}ol{list-style:decimal;margin:0 0 2em;padding-left:1.25em}ol li{padding-left:.25em}ul{list-style:disc;margin:0 0 2em;padding-left:1em}ul li{padding-left:.5em}ul.alt{list-style:none;padding-left:0}ul.alt li{border-top:solid 1px rgba(210,215,217,.75);padding:.5em 0}ul.alt li:first-child{border-top:0;padding-top:0}dl{margin:0 0 2em}dl dt{display:block;font-weight:600;margin:0 0 1em}dl dd{margin-left:2em}ul.actions{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;cursor:default;list-style:none;margin-left:-1em;padding-left:0}ul.actions li{padding:0 0 0 1em;vertical-align:middle}ul.actions.special{-moz-justify-content:center;-webkit-justify-content:center;-ms-justify-content:center;justify-content:center;width:100%;margin-left:0}ul.actions.special li:first-child{padding-left:0}ul.actions.stacked{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;margin-left:0}ul.actions.stacked li{padding:1.3em 0 0}ul.actions.stacked li:first-child{padding-top:0}ul.actions.fit{width:calc(100% + 1em)}ul.actions.fit li{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}ul.actions.fit li>*{width:100%}ul.actions.fit.stacked{width:100%}ul.icons{cursor:default;list-style:none;padding-left:0}ul.icons li{display:inline-block;padding:0 1em 0 0}ul.icons li:last-child{padding-right:0}ul.icons li .icon{color:inherit}ul.icons li .icon:before{font-size:1.25em}ul.contact{list-style:none;padding:0}ul.contact li{text-decoration:none;border-top:solid 1px rgba(210,215,217,.75);margin:1.5em 0 0;padding:1.5em 0 0 3em;position:relative}ul.contact li:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:400}ul.contact li:before{color:#f56a6a;display:inline-block;font-size:1.5em;height:1.125em;left:0;line-height:1.125em;position:absolute;text-align:center;top:1em;width:1.5em}ul.contact li:first-child{border-top:0;margin-top:0;padding-top:0}ul.contact li:first-child:before{top:0}ul.contact li a{color:inherit}ul.pagination{cursor:default;list-style:none;padding-left:0}ul.pagination li{display:inline-block;padding-left:0;vertical-align:middle}ul.pagination li>.page{-moz-transition:background-color .2s ease-in-out,color .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out,color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out,color .2s ease-in-out;transition:background-color .2s ease-in-out,color .2s ease-in-out;border-bottom:0;border-radius:.375em;display:inline-block;font-size:.8em;font-weight:600;height:2em;line-height:2em;margin:0 .125em;min-width:2em;padding:0 .5em;text-align:center}ul.pagination li>.page.active{background-color:#f56a6a;color:#fff!important}ul.pagination li>.page.active:hover{background-color:#f67878}ul.pagination li>.page.active:active{background-color:#f45c5c}ul.pagination li:first-child{padding-right:.75em}ul.pagination li:last-child{padding-left:.75em}@media screen and (max-width: 480px){ul.pagination li:nth-child(n+2):nth-last-child(n+2){display:none}ul.pagination li:first-child{padding-right:0}}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{margin:0 0 2em;width:100%}table tbody tr{border:solid 1px rgba(210,215,217,.75);border-left:0;border-right:0}table tbody tr:nth-child(odd){background-color:#e6ebed40}table td{padding:.75em}table th{color:#3d4449;font-size:.9em;font-weight:600;padding:0 .75em .75em;text-align:left}table thead{border-bottom:solid 2px rgba(210,215,217,.75)}table tfoot{border-top:solid 2px rgba(210,215,217,.75)}table.alt{border-collapse:separate}table.alt tbody tr td{border:solid 1px rgba(210,215,217,.75);border-left-width:0;border-top-width:0}table.alt tbody tr td:first-child{border-left-width:1px}table.alt tbody tr:first-child td{border-top-width:1px}table.alt thead{border-bottom:0}table.alt tfoot{border-top:0}input[type=submit],input[type=reset],input[type=button],button,.button{-moz-appearance:none;-webkit-appearance:none;-ms-appearance:none;appearance:none;-moz-transition:background-color .2s ease-in-out,color .2s ease-in-out;-webkit-transition:background-color .2s ease-in-out,color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out,color .2s ease-in-out;transition:background-color .2s ease-in-out,color .2s ease-in-out;background-color:transparent;border-radius:.375em;border:0;box-shadow:inset 0 0 0 2px #f56a6a;color:#f56a6a!important;cursor:pointer;display:inline-block;font-family:Roboto Slab,serif;font-size:.8em;font-weight:700;height:3.5em;letter-spacing:.075em;line-height:3.5em;padding:0 2.25em;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap}input[type=submit]:hover,input[type=reset]:hover,input[type=button]:hover,button:hover,.button:hover{background-color:#f56a6a0d}input[type=submit]:active,input[type=reset]:active,input[type=button]:active,button:active,.button:active{background-color:#f56a6a26}input[type=submit].icon:before,input[type=reset].icon:before,input[type=button].icon:before,button.icon:before,.button.icon:before{margin-right:.5em}input[type=submit].fit,input[type=reset].fit,input[type=button].fit,button.fit,.button.fit{width:100%}input[type=submit].small,input[type=reset].small,input[type=button].small,button.small,.button.small{font-size:.6em}input[type=submit].large,input[type=reset].large,input[type=button].large,button.large,.button.large{font-size:1em;height:3.65em;line-height:3.65em}input[type=submit].primary,input[type=reset].primary,input[type=button].primary,button.primary,.button.primary{background-color:#f56a6a;box-shadow:none;color:#fff!important}input[type=submit].primary:hover,input[type=reset].primary:hover,input[type=button].primary:hover,button.primary:hover,.button.primary:hover{background-color:#f67878}input[type=submit].primary:active,input[type=reset].primary:active,input[type=button].primary:active,button.primary:active,.button.primary:active{background-color:#f45c5c}input[type=submit].disabled,input[type=submit]:disabled,input[type=reset].disabled,input[type=reset]:disabled,input[type=button].disabled,input[type=button]:disabled,button.disabled,button:disabled,.button.disabled,.button:disabled{pointer-events:none;opacity:.25}.mini-posts article{border-top:solid 1px rgba(210,215,217,.75);margin-top:2em;padding-top:2em}.mini-posts article .image{display:block;margin:0 0 1.5em}.mini-posts article .image img{display:block;width:100%}.mini-posts article:first-child{border-top:0;margin-top:0;padding-top:0}.features{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 0 2em -3em;width:calc(100% + 3em)}.features article{-moz-align-items:center;-webkit-align-items:center;-ms-align-items:center;align-items:center;display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;margin:0 0 3em 3em;position:relative;width:calc(50% - 3em)}.features article:nth-child(2n-1){margin-right:1.5em}.features article:nth-child(2n){margin-left:1.5em}.features article:nth-last-child(1),.features article:nth-last-child(2){margin-bottom:0}.features article .icon-wc{color:#f56a6a;width:44px}.features article .icon{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;display:flex;justify-content:center;height:10em;line-height:10em;margin:0 2em 0 0;text-align:center;width:10em;color:#f56a6a}.features article .icon:before{color:#f56a6a;font-size:2.75rem;position:relative;top:.05em}.features article .icon:after{-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);border-radius:.25rem;border:solid 2px rgba(210,215,217,.75);content:"";display:block;height:7em;left:50%;margin:-3.5em 0 0 -3.5em;position:absolute;top:50%;width:7em}.features article .content{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}.features article .content>:last-child{margin-bottom:0}@media screen and (max-width: 980px){.features{margin:0 0 2em;width:100%}.features article{margin:0 0 3em;width:100%}.features article:nth-child(2n-1){margin-right:0}.features article:nth-child(2n){margin-left:0}.features article:nth-last-child(1),.features article:nth-last-child(2){margin-bottom:3em}.features article:last-child{margin-bottom:0}.features article .icon{height:8em;line-height:8em;width:8em}.features article .icon:before{font-size:2.25rem}.features article .icon:after{height:6em;margin:-3em 0 0 -3em;width:6em}}@media screen and (max-width: 480px){.features article{-moz-flex-direction:column;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-moz-align-items:-moz-flex-start;-webkit-align-items:-webkit-flex-start;-ms-align-items:-ms-flex-start;align-items:flex-start}.features article .icon{height:6em;line-height:6em;margin:0 0 1.5em;width:6em}.features article .icon:before{font-size:1.5rem}.features article .icon:after{height:4em;margin:-2em 0 0 -2em;width:4em}}@media screen and (max-width: 480px){.features article .icon:before{font-size:1.25rem}}.posts{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 0 2em -6em;width:calc(100% + 6em)}.posts article{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;margin:0 0 6em 6em;position:relative;width:calc(33.3333333333% - 6em)}.posts article:before{background:#d2d7d9bf;content:"";display:block;height:calc(100% + 6em);left:-3em;position:absolute;top:0;width:1px}.posts article:after{background:#d2d7d9bf;bottom:-3em;content:"";display:block;height:1px;position:absolute;right:0;width:calc(100% + 6em)}.posts article>:last-child{margin-bottom:0}.posts article .image{display:block;margin:0 0 2em}.posts article .image img{display:block;width:100%}@media screen and (min-width: 1681px){.posts article:nth-child(3n+1):before{display:none}.posts article:nth-child(3n+1):after{width:100%}.posts article:nth-last-child(1),.posts article:nth-last-child(2),.posts article:nth-last-child(3){margin-bottom:0}.posts article:nth-last-child(1):before,.posts article:nth-last-child(2):before,.posts article:nth-last-child(3):before{height:100%}.posts article:nth-last-child(1):after,.posts article:nth-last-child(2):after,.posts article:nth-last-child(3):after{display:none}}@media screen and (max-width: 1680px){.posts article{width:calc(50% - 6em)}.posts article:nth-last-child(3){margin-bottom:6em}}@media screen and (min-width: 481px) and (max-width: 1680px){.posts article:nth-child(odd):before{display:none}.posts article:nth-child(odd):after{width:100%}.posts article:nth-last-child(1),.posts article:nth-last-child(2){margin-bottom:0}.posts article:nth-last-child(1):before,.posts article:nth-last-child(2):before{height:100%}.posts article:nth-last-child(1):after,.posts article:nth-last-child(2):after{display:none}}@media screen and (max-width: 736px){.posts{margin:0 0 2em -4.5em;width:calc(100% + 4.5em)}.posts article{margin:0 0 4.5em 4.5em;width:calc(50% - 4.5em)}.posts article:before{height:calc(100% + 4.5em);left:-2.25em}.posts article:after{bottom:-2.25em;width:calc(100% + 4.5em)}.posts article:nth-last-child(3){margin-bottom:4.5em}}@media screen and (max-width: 480px){.posts{margin:0 0 2em;width:100%}.posts article{margin:0 0 4.5em;width:100%}.posts article:before{display:none}.posts article:after{width:100%}.posts article:last-child{margin-bottom:0}.posts article:last-child:after{display:none}}#wrapper{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;-moz-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;min-height:100vh}#main{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:100%}#main>.inner{padding:0 6em .1em;margin:0 auto;max-width:110em}#main>.inner .section{padding:6em 0 4em;border-top:solid 2px rgba(210,215,217,.75)}#main>.inner .section:first-child{border-top:0!important;padding:0}@media screen and (max-width: 1680px){#main>.inner{padding:0 5em .1em}#main>.inner>.section{padding:5em 0 3em}}@media screen and (max-width: 1280px){#main>.inner{padding:0 4em .1em}#main>.inner>.section{padding:4em 0 2em}}@media screen and (max-width: 736px){#main>.inner{padding:0 2em .1em}#main>.inner>.section{padding:3em 0 1em}}#search form{text-decoration:none;position:relative}#search form:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}#search form:before{-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);color:#7f888f;content:"";cursor:default;display:block;font-size:1.5em;height:2em;line-height:2em;opacity:.325;position:absolute;right:0;text-align:center;top:0;width:2em}#search form input[type=text]{padding-right:2.75em}#sidebar{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;-moz-transition:margin-left .5s ease,box-shadow .5s ease;-webkit-transition:margin-left .5s ease,box-shadow .5s ease;-ms-transition:margin-left .5s ease,box-shadow .5s ease;transition:margin-left .5s ease,box-shadow .5s ease;background-color:#f5f6f7;font-size:.9em;position:relative;width:26em}#sidebar h2{font-size:1.3888888889em}#sidebar>.inner{padding:2.2222222222em 2.2222222222em 2.4444444444em;position:relative;width:26em}#sidebar>.inner>*{border-bottom:solid 2px rgba(210,215,217,.75);margin:0 0 3.5em;padding:0 0 3.5em}#sidebar>.inner>*>:last-child{margin-bottom:0}#sidebar>.inner>*:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}#sidebar>.inner>.alt{background-color:#eff1f2;border-bottom:0;margin:-2.2222222222em 0 4.4444444444em -2.2222222222em;padding:2.2222222222em;width:calc(100% + 4.4444444444em)}#sidebar .contact icon-component{color:#f56a6a;display:inline-block;font-size:1.5em;height:1.125em;left:0;line-height:1.125em;position:absolute;text-align:center;width:29px}#sidebar .toggle{text-decoration:none;-moz-transition:left .5s ease;-webkit-transition:left .5s ease;-ms-transition:left .5s ease;transition:left .5s ease;-webkit-tap-highlight-color:rgba(255,255,255,0);border:0;display:flex;align-items:center;justify-content:center;height:7.5em;left:26em;line-height:7.5em;outline:0;overflow:hidden;position:absolute;text-align:center;text-indent:-15em;white-space:nowrap;top:0;width:6em;z-index:10000}#sidebar .toggle:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}#sidebar .toggle>icon-component{width:2.5rem;margin-left:-1.4375em}#sidebar.inactive{margin-left:-26em}@media screen and (max-width: 1680px){#sidebar{width:24em}#sidebar>.inner{padding:1.6666666667em 1.6666666667em 1.3333333333em;width:24em}#sidebar>.inner>.alt{margin:-1.6666666667em 0 3.3333333333em -1.6666666667em;padding:1.6666666667em;width:calc(100% + 3.3333333333em)}#sidebar .toggle{height:6.25em;left:24em;line-height:6.25em;text-indent:5em;width:5em}#sidebar .toggle>icon-component{margin-left:.5625em}#sidebar.inactive{margin-left:-24em}}@media screen and (max-width: 1280px){#sidebar{box-shadow:0 0 5em #0000002d;height:100%;left:0;position:fixed;top:0;z-index:10000}#sidebar.inactive{box-shadow:none}#sidebar>.inner{-webkit-overflow-scrolling:touch;height:100%;left:0;overflow-x:hidden;overflow-y:auto;position:absolute;top:0}#sidebar>.inner:after{content:"";display:block;height:4em;width:100%}#sidebar .contact icon-component{width:27px}#sidebar .toggle{text-indent:6em;width:6em}#sidebar .toggle>icon-component{margin-left:-1.4375em}body.is-preload #sidebar{display:none}}@media screen and (max-width: 736px){#sidebar .contact icon-component{width:24px}#sidebar .toggle{text-indent:7.25em;width:7.25em}#sidebar .toggle:before{color:#7f888f;margin-left:-.0625em;margin-top:-.25em;font-size:1.1rem;z-index:1}#sidebar .toggle:after{background:#dee1e2bf;border-radius:.375em;content:"";height:3.5em;left:1em;position:absolute;top:1em;width:5em}}#header{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex;border-bottom:solid 5px #f56a6a;padding:6em 0 1em;position:relative}#header>*{-moz-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;margin-bottom:0}#header .logo{border-bottom:0;color:inherit;font-family:Roboto Slab,serif;font-size:1.125em}#header .icons{text-align:right}#header .header-icon{width:20px;height:20px;fill:currentcolor}@media screen and (max-width: 1680px){#header{padding-top:5em}}@media screen and (max-width: 736px){#header{padding-top:6.5em}#header .logo{font-size:1.25em;margin:0}#header .icons{height:5em;line-height:5em;position:absolute;right:-.5em;top:0}}#banner{display:-moz-flex;display:-webkit-flex;display:-ms-flex;display:flex}#banner h1{margin-top:-.125em}#banner .content{-moz-flex-grow:1;-webkit-flex-grow:1;-ms-flex-grow:1;flex-grow:1;-moz-flex-shrink:1;-webkit-flex-shrink:1;-ms-flex-shrink:1;flex-shrink:1;width:50%}#banner .image{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;display:block;margin:0 0 2em 4em;width:50%}#banner .image img{height:100%;-moz-object-fit:cover;-webkit-object-fit:cover;-ms-object-fit:cover;object-fit:cover;-moz-object-position:center;-webkit-object-position:center;-ms-object-position:center;object-position:center;width:100%}@media screen and (orientation: portrait){#banner{-moz-flex-direction:column-reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}#banner h1 br{display:none}#banner .content{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;width:100%}#banner .image{-moz-flex-grow:0;-webkit-flex-grow:0;-ms-flex-grow:0;flex-grow:0;-moz-flex-shrink:0;-webkit-flex-shrink:0;-ms-flex-shrink:0;flex-shrink:0;margin:0 0 4em;height:25em;max-height:50vh;min-height:18em;width:100%}}@media screen and (orientation: portrait) and (max-width: 480px){#banner .image{max-height:35vh}}#footer .copyright{color:#9fa3a6;font-size:.9em}#footer .copyright a{color:inherit}.submenu{display:flex}.submenu__text{flex-grow:1;flex-shrink:0}.submenu__icon{-moz-transition:color .2s ease-in-out,-moz-transform .2s ease-in-out;-webkit-transition:color .2s ease-in-out,-webkit-transform .2s ease-in-out;-ms-transition:color .2s ease-in-out,-ms-transform .2s ease-in-out;transition:color .2s ease-in-out,transform .2s ease-in-out;flex-grow:0;flex-shrink:1;width:20px}.submenu.active .submenu__icon{-moz-transform:rotate(-180deg);-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}#menu ul{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;color:#3d4449;font-family:Roboto Slab,serif;font-weight:400;letter-spacing:.075em;list-style:none;margin-bottom:0;padding:0;text-transform:uppercase}#menu ul a,#menu ul span{border-bottom:0;color:inherit;cursor:pointer;display:block;font-size:.9em;padding:.625em 0}#menu ul a:hover,#menu ul span:hover{color:#f56a6a}#menu ul a.opener,#menu ul span.opener{-moz-transition:color .2s ease-in-out;-webkit-transition:color .2s ease-in-out;-ms-transition:color .2s ease-in-out;transition:color .2s ease-in-out;text-decoration:none;-webkit-tap-highlight-color:rgba(255,255,255,0);position:relative;display:flex}#menu ul a.opener:before,#menu ul span.opener:before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;text-transform:none!important;font-family:"Font Awesome 5 Free";font-weight:900}#menu ul a.opener:hover,#menu ul span.opener:hover{color:#f56a6a}#menu ul a.opener.active+ul,#menu ul span.opener.active+ul{display:block}#menu ul a.opener.active:before,#menu ul span.opener.active:before{-moz-transform:rotate(-180deg);-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}#menu>ul>li{border-top:solid 1px rgba(210,215,217,.75);margin:.5em 0 0;padding:.5em 0 0}#menu>ul>li>ul{color:#9fa3a6;display:none;margin:.5em 0 1.5em;padding-left:1em}#menu>ul>li>ul a,#menu>ul>li>ul span{font-size:.8em}#menu>ul>li>ul>li{margin:.125em 0 0;padding:.125em 0 0}#menu>ul>li:first-child{border-top:0;margin-top:0;padding-top:0} diff --git a/src/components/sidebar/sidebar.ts b/src/components/sidebar/sidebar.ts index 0abc170a..2fe05229 100644 --- a/src/components/sidebar/sidebar.ts +++ b/src/components/sidebar/sidebar.ts @@ -3,6 +3,7 @@ import { customElement, query } from 'lit/decorators.js'; import { debounce } from '@kluntje/js-utils/lib/function-helpers/decorators'; import './sidebarNav.ts'; +import './sidebarContact.ts'; import './sidebarFooter.ts'; @customElement('sidebar-component') @@ -38,6 +39,7 @@ export class SidebarComponent extends LitElement { return html`
    +
    diff --git a/src/components/sidebar/sidebarContact.ts b/src/components/sidebar/sidebarContact.ts new file mode 100644 index 00000000..4dea62eb --- /dev/null +++ b/src/components/sidebar/sidebarContact.ts @@ -0,0 +1,65 @@ +import { LitElement, html } from 'lit'; +import { customElement, state } from 'lit/decorators.js'; +import { fetchData } from '../../utils/fetchData'; +import { unsafeHTML } from 'lit-html/directives/unsafe-html.js'; + +interface SidebarContactTemplateArgs { + headline: HTMLHeadingElement; + text: HTMLParagraphElement; + contacts: Contact[]; +} + +interface Contact { + contactIcon: string; + contactMarkup: string; +} + +@customElement('sidebar-contact') +export class SidebarContact extends LitElement { + @state() + contactTemplateArgs: SidebarContactTemplateArgs; + + protected createRenderRoot(): HTMLElement | DocumentFragment { + return this; + } + + connectedCallback(): void { + super.connectedCallback(); + this.fetchContactData(); + } + + async fetchContactData() { + const response = await fetchData({ endpoint: 'contact.plain.html' }); + const responseMarkup = document.createElement('div'); + responseMarkup.innerHTML = response; + // TODO: refactor contactTemplateArgs + this.contactTemplateArgs = { + headline: responseMarkup.querySelector('h2') as HTMLHeadingElement, + text: responseMarkup.querySelector('p') as HTMLParagraphElement, + contacts: Array.from(responseMarkup.querySelectorAll('.contact > div:not(:first-child)')).map((item) => { + return { + contactIcon: item.querySelector('div')?.innerText as string, + contactMarkup: item.querySelector('div:last-child')?.innerHTML as string, + }; + }), + }; + } + + render() { + const { headline, text, contacts } = this.contactTemplateArgs; + return html` +
    +
    ${headline}
    + ${text} +
      + ${contacts.map((item) => { + return html`
    • + + ${unsafeHTML(item.contactMarkup)} +
    • `; + })} +
    +
    + `; + } +} diff --git a/src/styles/sass/layout/_sidebar.scss b/src/styles/sass/layout/_sidebar.scss index 4583008e..ac5e7d0a 100644 --- a/src/styles/sass/layout/_sidebar.scss +++ b/src/styles/sass/layout/_sidebar.scss @@ -79,6 +79,18 @@ } } + .contact icon-component { + color: #f56a6a; + display: inline-block; + font-size: 1.5em; + height: 1.125em; + left: 0; + line-height: 1.125em; + position: absolute; + text-align: center; + width: 29px; + } + .toggle { @include icon(false, solid); @include vendor('transition', 'left 0.5s ease'); @@ -172,6 +184,10 @@ } } + .contact icon-component { + width: 27px; + } + .toggle { text-indent: 6em; width: 6em; @@ -187,6 +203,10 @@ } @include breakpoint('<=small') { + .contact icon-component { + width: 24px; + } + .toggle { text-indent: 7.25em; width: 7.25em; diff --git a/types/components/sidebar/sidebar.d.ts b/types/components/sidebar/sidebar.d.ts index 8f5d9d13..cabc31ee 100644 --- a/types/components/sidebar/sidebar.d.ts +++ b/types/components/sidebar/sidebar.d.ts @@ -1,5 +1,6 @@ import { LitElement } from 'lit'; import './sidebarNav.ts'; +import './sidebarContact.ts'; import './sidebarFooter.ts'; export declare class SidebarComponent extends LitElement { toggle: HTMLAnchorElement; diff --git a/types/components/sidebar/sidebarContact.d.ts b/types/components/sidebar/sidebarContact.d.ts new file mode 100644 index 00000000..314a7e0e --- /dev/null +++ b/types/components/sidebar/sidebarContact.d.ts @@ -0,0 +1,18 @@ +import { LitElement } from 'lit'; +interface SidebarContactTemplateArgs { + headline: HTMLHeadingElement; + text: HTMLParagraphElement; + contacts: Contact[]; +} +interface Contact { + contactIcon: string; + contactMarkup: string; +} +export declare class SidebarContact extends LitElement { + contactTemplateArgs: SidebarContactTemplateArgs; + protected createRenderRoot(): HTMLElement | DocumentFragment; + connectedCallback(): void; + fetchContactData(): Promise; + render(): import("lit-html").TemplateResult<1>; +} +export {};