<!DOCTYPE html>
<html lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# ">
  <head>
    <meta charset="utf-8" /><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"NRJS-1888dd77a01fc8c6df6",applicationID:"401082826"};window.NREUM||(NREUM={}),__nr_require=function(t,e,n){function r(n){if(!e[n]){var i=e[n]={exports:{}};t[n][0].call(i.exports,function(e){var i=t[n][1][e];return r(i||e)},i,i.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var i=0;i<n.length;i++)r(n[i]);return r}({1:[function(t,e,n){function r(){}function i(t,e,n,r){return function(){return s.recordSupportability("API/"+e+"/called"),o(t+e,[u.now()].concat(c(arguments)),n?null:this,r),n?void 0:this}}var o=t("handle"),a=t(9),c=t(10),f=t("ee").get("tracer"),u=t("loader"),s=t(4),d=NREUM;"undefined"==typeof window.newrelic&&(newrelic=d);var p=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",v=l+"ixn-";a(p,function(t,e){d[e]=i(l,e,!0,"api")}),d.addPageAction=i(l,"addPageAction",!0),d.setCurrentRouteName=i(l,"routeName",!0),e.exports=newrelic,d.interaction=function(){return(new r).get()};var m=r.prototype={createTracer:function(t,e){var n={},r=this,i="function"==typeof e;return o(v+"tracer",[u.now(),t,n],r),function(){if(f.emit((i?"":"no-")+"fn-start",[u.now(),r,i],n),i)try{return e.apply(this,arguments)}catch(t){throw f.emit("fn-err",[arguments,this,t],n),t}finally{f.emit("fn-end",[u.now()],n)}}}};a("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,e){m[e]=i(v,e)}),newrelic.noticeError=function(t,e){"string"==typeof t&&(t=new Error(t)),s.recordSupportability("API/noticeError/called"),o("err",[t,u.now(),!1,e])}},{}],2:[function(t,e,n){function r(t){if(NREUM.init){for(var e=NREUM.init,n=t.split("."),r=0;r<n.length-1;r++)if(e=e[n[r]],"object"!=typeof e)return;return e=e[n[n.length-1]]}}e.exports={getConfiguration:r}},{}],3:[function(t,e,n){var r=!1;try{var i=Object.defineProperty({},"passive",{get:function(){r=!0}});window.addEventListener("testPassive",null,i),window.removeEventListener("testPassive",null,i)}catch(o){}e.exports=function(t){return r?{passive:!0,capture:!!t}:!!t}},{}],4:[function(t,e,n){function r(t,e){var n=[a,t,{name:t},e];return o("storeMetric",n,null,"api"),n}function i(t,e){var n=[c,t,{name:t},e];return o("storeEventMetrics",n,null,"api"),n}var o=t("handle"),a="sm",c="cm";e.exports={constants:{SUPPORTABILITY_METRIC:a,CUSTOM_METRIC:c},recordSupportability:r,recordCustom:i}},{}],5:[function(t,e,n){function r(){return c.exists&&performance.now?Math.round(performance.now()):(o=Math.max((new Date).getTime(),o))-a}function i(){return o}var o=(new Date).getTime(),a=o,c=t(11);e.exports=r,e.exports.offset=a,e.exports.getLastTimestamp=i},{}],6:[function(t,e,n){function r(t,e){var n=t.getEntries();n.forEach(function(t){"first-paint"===t.name?l("timing",["fp",Math.floor(t.startTime)]):"first-contentful-paint"===t.name&&l("timing",["fcp",Math.floor(t.startTime)])})}function i(t,e){var n=t.getEntries();if(n.length>0){var r=n[n.length-1];if(u&&u<r.startTime)return;var i=[r],o=a({});o&&i.push(o),l("lcp",i)}}function o(t){t.getEntries().forEach(function(t){t.hadRecentInput||l("cls",[t])})}function a(t){var e=navigator.connection||navigator.mozConnection||navigator.webkitConnection;if(e)return e.type&&(t["net-type"]=e.type),e.effectiveType&&(t["net-etype"]=e.effectiveType),e.rtt&&(t["net-rtt"]=e.rtt),e.downlink&&(t["net-dlink"]=e.downlink),t}function c(t){if(t instanceof y&&!w){var e=Math.round(t.timeStamp),n={type:t.type};a(n),e<=v.now()?n.fid=v.now()-e:e>v.offset&&e<=Date.now()?(e-=v.offset,n.fid=v.now()-e):e=v.now(),w=!0,l("timing",["fi",e,n])}}function f(t){"hidden"===t&&(u=v.now(),l("pageHide",[u]))}if(!("init"in NREUM&&"page_view_timing"in NREUM.init&&"enabled"in NREUM.init.page_view_timing&&NREUM.init.page_view_timing.enabled===!1)){var u,s,d,p,l=t("handle"),v=t("loader"),m=t(8),g=t(3),y=NREUM.o.EV;if("PerformanceObserver"in window&&"function"==typeof window.PerformanceObserver){s=new PerformanceObserver(r);try{s.observe({entryTypes:["paint"]})}catch(h){}d=new PerformanceObserver(i);try{d.observe({entryTypes:["largest-contentful-paint"]})}catch(h){}p=new PerformanceObserver(o);try{p.observe({type:"layout-shift",buffered:!0})}catch(h){}}if("addEventListener"in document){var w=!1,b=["click","keydown","mousedown","pointerdown","touchstart"];b.forEach(function(t){document.addEventListener(t,c,g(!1))})}m(f)}},{}],7:[function(t,e,n){function r(t,e){if(!i)return!1;if(t!==i)return!1;if(!e)return!0;if(!o)return!1;for(var n=o.split("."),r=e.split("."),a=0;a<r.length;a++)if(r[a]!==n[a])return!1;return!0}var i=null,o=null,a=/Version\/(\S+)\s+Safari/;if(navigator.userAgent){var c=navigator.userAgent,f=c.match(a);f&&c.indexOf("Chrome")===-1&&c.indexOf("Chromium")===-1&&(i="Safari",o=f[1])}e.exports={agent:i,version:o,match:r}},{}],8:[function(t,e,n){function r(t){function e(){t(c&&document[c]?document[c]:document[o]?"hidden":"visible")}"addEventListener"in document&&a&&document.addEventListener(a,e,i(!1))}var i=t(3);e.exports=r;var o,a,c;"undefined"!=typeof document.hidden?(o="hidden",a="visibilitychange",c="visibilityState"):"undefined"!=typeof document.msHidden?(o="msHidden",a="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(o="webkitHidden",a="webkitvisibilitychange",c="webkitVisibilityState")},{}],9:[function(t,e,n){function r(t,e){var n=[],r="",o=0;for(r in t)i.call(t,r)&&(n[o]=e(r,t[r]),o+=1);return n}var i=Object.prototype.hasOwnProperty;e.exports=r},{}],10:[function(t,e,n){function r(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,i=n-e||0,o=Array(i<0?0:i);++r<i;)o[r]=t[e+r];return o}e.exports=r},{}],11:[function(t,e,n){e.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],ee:[function(t,e,n){function r(){}function i(t){function e(t){return t&&t instanceof r?t:t?u(t,f,a):a()}function n(n,r,i,o,a){if(a!==!1&&(a=!0),!l.aborted||o){t&&a&&t(n,r,i);for(var c=e(i),f=m(n),u=f.length,s=0;s<u;s++)f[s].apply(c,r);var p=d[w[n]];return p&&p.push([b,n,r,c]),c}}function o(t,e){h[t]=m(t).concat(e)}function v(t,e){var n=h[t];if(n)for(var r=0;r<n.length;r++)n[r]===e&&n.splice(r,1)}function m(t){return h[t]||[]}function g(t){return p[t]=p[t]||i(n)}function y(t,e){l.aborted||s(t,function(t,n){e=e||"feature",w[n]=e,e in d||(d[e]=[])})}var h={},w={},b={on:o,addEventListener:o,removeEventListener:v,emit:n,get:g,listeners:m,context:e,buffer:y,abort:c,aborted:!1};return b}function o(t){return u(t,f,a)}function a(){return new r}function c(){(d.api||d.feature)&&(l.aborted=!0,d=l.backlog={})}var f="nr@context",u=t("gos"),s=t(9),d={},p={},l=e.exports=i();e.exports.getOrSetContext=o,l.backlog=d},{}],gos:[function(t,e,n){function r(t,e,n){if(i.call(t,e))return t[e];var r=n();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!1}),r}catch(o){}return t[e]=r,r}var i=Object.prototype.hasOwnProperty;e.exports=r},{}],handle:[function(t,e,n){function r(t,e,n,r){i.buffer([t],r),i.emit(t,e,n)}var i=t("ee").get("handle");e.exports=r,r.ee=i},{}],id:[function(t,e,n){function r(t){var e=typeof t;return!t||"object"!==e&&"function"!==e?-1:t===window?0:a(t,o,function(){return i++})}var i=1,o="nr@id",a=t("gos");e.exports=r},{}],loader:[function(t,e,n){function r(){if(!M++){var t=T.info=NREUM.info,e=m.getElementsByTagName("script")[0];if(setTimeout(u.abort,3e4),!(t&&t.licenseKey&&t.applicationID&&e))return u.abort();f(x,function(e,n){t[e]||(t[e]=n)});var n=a();c("mark",["onload",n+T.offset],null,"api"),c("timing",["load",n]);var r=m.createElement("script");0===t.agent.indexOf("http://")||0===t.agent.indexOf("https://")?r.src=t.agent:r.src=l+"://"+t.agent,e.parentNode.insertBefore(r,e)}}function i(){"complete"===m.readyState&&o()}function o(){c("mark",["domContent",a()+T.offset],null,"api")}var a=t(5),c=t("handle"),f=t(9),u=t("ee"),s=t(7),d=t(2),p=t(3),l=d.getConfiguration("ssl")===!1?"http":"https",v=window,m=v.document,g="addEventListener",y="attachEvent",h=v.XMLHttpRequest,w=h&&h.prototype,b=!1;NREUM.o={ST:setTimeout,SI:v.setImmediate,CT:clearTimeout,XHR:h,REQ:v.Request,EV:v.Event,PR:v.Promise,MO:v.MutationObserver};var E=""+location,x={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1216.min.js"},O=h&&w&&w[g]&&!/CriOS/.test(navigator.userAgent),T=e.exports={offset:a.getLastTimestamp(),now:a,origin:E,features:{},xhrWrappable:O,userAgent:s,disabled:b};if(!b){t(1),t(6),m[g]?(m[g]("DOMContentLoaded",o,p(!1)),v[g]("load",r,p(!1))):(m[y]("onreadystatechange",i),v[y]("onload",r)),c("mark",["firstbyte",a.getLastTimestamp()],null,"api");var M=0}},{}],"wrap-function":[function(t,e,n){function r(t,e){function n(e,n,r,f,u){function nrWrapper(){var o,a,s,p;try{a=this,o=d(arguments),s="function"==typeof r?r(o,a):r||{}}catch(l){i([l,"",[o,a,f],s],t)}c(n+"start",[o,a,f],s,u);try{return p=e.apply(a,o)}catch(v){throw c(n+"err",[o,a,v],s,u),v}finally{c(n+"end",[o,a,p],s,u)}}return a(e)?e:(n||(n=""),nrWrapper[p]=e,o(e,nrWrapper,t),nrWrapper)}function r(t,e,r,i,o){r||(r="");var c,f,u,s="-"===r.charAt(0);for(u=0;u<e.length;u++)f=e[u],c=t[f],a(c)||(t[f]=n(c,s?f+r:r,i,f,o))}function c(n,r,o,a){if(!v||e){var c=v;v=!0;try{t.emit(n,r,o,e,a)}catch(f){i([f,n,r,o],t)}v=c}}return t||(t=s),n.inPlace=r,n.flag=p,n}function i(t,e){e||(e=s);try{e.emit("internal-error",t)}catch(n){}}function o(t,e,n){if(Object.defineProperty&&Object.keys)try{var r=Object.keys(t);return r.forEach(function(n){Object.defineProperty(e,n,{get:function(){return t[n]},set:function(e){return t[n]=e,e}})}),e}catch(o){i([o],n)}for(var a in t)l.call(t,a)&&(e[a]=t[a]);return e}function a(t){return!(t&&t instanceof Function&&t.apply&&!t[p])}function c(t,e){var n=e(t);return n[p]=t,o(t,n,s),n}function f(t,e,n){var r=t[e];t[e]=c(r,n)}function u(){for(var t=arguments.length,e=new Array(t),n=0;n<t;++n)e[n]=arguments[n];return e}var s=t("ee"),d=t(10),p="nr@original",l=Object.prototype.hasOwnProperty,v=!1;e.exports=r,e.exports.wrapFunction=c,e.exports.wrapInPlace=f,e.exports.argsToArray=u},{}]},{},["loader"]);</script>
<link rel="canonical" href="https://www.needtobreathe.com/" />
<meta name="robots" content="index, follow" />
<link rel="shortlink" href="https://www.needtobreathe.com/" />
<meta name="description" content="Music, tour dates, videos and more from NEEDTOBREATHE. Listen to the new album “Into The Mystery,” out now!" />
<meta property="og:site_name" content="NEEDTOBREATHE" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.needtobreathe.com/" />
<meta property="og:title" content="NEEDTOBREATHE | Official Website" />
<meta property="og:description" content="Music, tour dates, videos and more from NEEDTOBREATHE. Listen to the new album “Into The Mystery,” out now!" />
<meta property="og:image" content="https://www.needtobreathe.com//sites/g/files/g2000010361/files/2021-05/OG_NTB.jpg" />
<meta name="facebook-domain-verification" content="why6kva3iu54trupkxsumhdft9l898" />
<meta name="google-site-verification" content="D_Z0f8565U9bEfZiCeQo69cgjNr_CKOYrUza5Do0qQw" />
<meta name="twitter:description" content="Music, tour dates, videos and more from NEEDTOBREATHE. New album and film “Into The Mystery” coming July 30." />
<meta name="twitter:title" content="NEEDTOBREATHE | Official Website" />
<meta name="twitter:image" content="https://www.needtobreathe.com//sites/g/files/g2000010361/files/2020-08/OG.jpg" />
<meta name="Generator" content="Drupal 9 (https://www.drupal.org)" />
<meta name="MobileOptimized" content="width" />
<meta name="HandheldFriendly" content="true" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://use.typekit.net/xpg6lls.css" async="async" defer="defer" />
<link type="text/css" rel="stylesheet" href="//fast.fonts.net/cssapi/88a5e831-b3f9-45a1-9b11-752a83ac6782.css/" />
<link type="text/css" rel="stylesheet" href="//fast.fonts.net/cssapi/10265f54-d78e-498e-9f7b-e3e4a405d987.css/" />
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.css" /="/" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/malihu-custom-scrollbar-plugin/3.1.5/jquery.mCustomScrollbar.css" /="/" />
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600&amp;display=swap" rel="stylesheet" />
<script></script>


</script>
<link rel="icon" href="/sites/g/files/g2000010361/files/NewFav.png" type="image/png" />
<script type="text/javascript" src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" charset="UTF-8" data-domain-script="494deb77-811d-4d09-b217-c2b99028e39a" data-document-language="true"></script>
<script type="text/javascript">function OptanonWrapper() {
 var cookiePolicyLink = 'https://www.wminewmedia.com/cookies-policy/';
 var allLinks = document.querySelectorAll('a');
 for(i = 0; i < allLinks.length; i++) {
 let href = allLinks[i].href;
 if (href.indexOf(cookiePolicyLink) > -1 && href.indexOf('?ot=') < 0) {
  href = href + '?ot=494deb77-811d-4d09-b217-c2b99028e39a&url=' + window.location.hostname;
allLinks[i].setAttribute("href", href);
 allLinks[i].setAttribute("target", "_blank");
}
 }             
var eOT = new Event("OneTrustGroupsUpdated");
document.dispatchEvent(eOT);

}</script>
<link rel="stylesheet" type="text/css" href="https://www.wminewmedia.com/cookies-policy/onetrust/ot.css" />
<script type="text/javascript">digitalData={"settings":{"reportSuites":"wmgneedtobreathe.net,wmgneedtobreatheall,wmgatl,wmg"},"content":{"artist":"needtobreathe","label":"Atlantic Records"},"page":{"pageInfo":{"pageName":"needtobreathe:Homepage","server":"needtobreathe:Site","platform":"Drupal 9","devTeam":"WMAS"},"category":{"primaryCategory":"needtobreathe:Home","pageType":"Homepage"}}}</script>
<script src="//assets.adobedtm.com/launch-EN302b8a31b75a4dda8ff8df1d0cdb4762.min.js" async></script>
<script type="text/javascript" src="//fast.fonts.net/jsapi/1c5e4549-cbab-4a74-b667-c3deda9456da.js"></script>
<script type="text/javascript" src="//fast.fonts.net/jsapi/10265f54-d78e-498e-9f7b-e3e4a405d987.js"></script>
<script src="https://libraries.wmgartistservices.com/jslibrary/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/malihu-custom-scrollbar-plugin/3.1.5/jquery.mCustomScrollbar.min.js"></script>
<script src="https://libraries.wmgartistservices.com/songkick/widget_min.js" async="async"></script>
<script src="https://libraries.wmgartistservices.com/custom-js/mailing-list/plainmailinglist.js"></script>
<script src="https://libraries.wmgartistservices.com/custom-js/mailing-list/validation.js" async="async"></script>
<script src="https://libraries.wmgartistservices.com/custom-js/mailing-list/dtm.js"></script>
<script src="https://libraries.wmgartistservices.com/custom-js/YTDTM/YTFns.js"></script>

    <title>NEEDTOBREATHE | Official Website</title>
    <link rel="stylesheet" media="all" href="/sites/g/files/g2000010361/files/css/css_eon0YpEL9X-xj0UrDkfx0ZddqLwGt3QYMYbyuDjcY_M.css" />
<link rel="stylesheet" media="all" href="/sites/g/files/g2000010361/files/css/css_0Q64Lleh9n6yLitESRLqO3OO6foHcTT0PaklWbwqzX8.css" />
<link rel="stylesheet" media="print" href="/sites/g/files/g2000010361/files/css/css_9SVDYF4v8mmRP3S92wQuiNnNmeOWKdQvy4FXRDZS_rw.css" />

    
  </head>
  <body class="page-node-1 page-node-type-landing_page layout-no-sidebars path-frontpage page-node-type-landing-page">
        <a href="#main-content" class="visually-hidden focusable skip-link">
      Skip to main content
    </a>
    
      <div class="dialog-off-canvas-main-canvas" data-off-canvas-main-canvas>
    <div id="page-wrapper">
  <div id="page">
    <header id="header" class="header" role="banner">
      <div class="section layout-container clearfix">
        
          <div class="clearfix region region-header">
    <div id="block-80998admincss" data-block-plugin-id="block_content:82bde369-5a4e-4394-afd3-c9f0244c966b" class="block block-block-content block-block-content82bde369-5a4e-4394-afd3-c9f0244c966b">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><style>
<!--/*--><![CDATA[/* ><!--*/

body.path-frontpage img.NTBTanArchImg,.listenbutton a.listen_button{
 display:none !important;
}
body.path-frontpage #page .listenbutton a.preorder_button {
     display:none !important;
}
body.path-frontpage .headerWrapper a  img.NTBTanArchImg1 ,.listenbutton a.listen_button.listen_now {
    display:inline-block !important;
}
@media only screen and (max-width: 767px){
body.path-frontpage .listen-preorder .listen_button {
    margin-top: 20px;
}
.listenbutton a.listen_button.listen_now {
    margin-right: 0;
}
.listen_button.buy{
margin-left:0px;
padding: 7px 32px !important;
}
}

 @media only screen and (max-width:767px) and (orientation: landscape) {
body.path-frontpage .listen-preorder .listen_button.buy{
margin-left:20px;
 
}
}
 @media only screen and (min-width:768px){
.listen_button.buy{
padding: 7px 30px;
margin-left:30px;
}
}

/*--><!]]>*/
</style></div>
      
    </div>
  </div>
<div id="block-gdprcookiebanner" data-block-plugin-id="block_content:9c972978-634d-4b4a-bd09-754fd571a6fc" class="block block-block-content block-block-content9c972978-634d-4b4a-bd09-754fd571a6fc">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><script>
<!--//--><![CDATA[// ><!--

var $jq341 = jQuery.noConflict();

//--><!]]>
</script></div>
      
    </div>
  </div>
<div id="block-carouseljs" data-block-plugin-id="block_content:5ca54e09-4ff5-4ace-afc9-be5c056c456b" class="block block-block-content block-block-content5ca54e09-4ff5-4ace-afc9-be5c056c456b">
  
      <h2>Carousel JS</h2>
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><script>
<!--//--><![CDATA[// ><!--

/**
 * Owl Carousel v2.3.4
 * Copyright 2013-2018 David Deutsch
 * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
 */
/**
 * Owl carousel
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 * @todo Lazy Load Icon
 * @todo prevent animationend bubling
 * @todo itemsScaleUp
 * @todo Test Zepto
 * @todo stagePadding calculate wrong active classes
 */
;(function($, window, document, undefined) {

	/**
	 * Creates a carousel.
	 * @class The Owl Carousel.
	 * @public
	 * @param {HTMLElement|jQuery} element - The element to create the carousel for.
	 * @param {Object} [options] - The options
	 */
	function Owl(element, options) {

		/**
		 * Current settings for the carousel.
		 * @public
		 */
		this.settings = null;

		/**
		 * Current options set by the caller including defaults.
		 * @public
		 */
		this.options = $.extend({}, Owl.Defaults, options);

		/**
		 * Plugin element.
		 * @public
		 */
		this.$element = $(element);

		/**
		 * Proxied event handlers.
		 * @protected
		 */
		this._handlers = {};

		/**
		 * References to the running plugins of this carousel.
		 * @protected
		 */
		this._plugins = {};

		/**
		 * Currently suppressed events to prevent them from being retriggered.
		 * @protected
		 */
		this._supress = {};

		/**
		 * Absolute current position.
		 * @protected
		 */
		this._current = null;

		/**
		 * Animation speed in milliseconds.
		 * @protected
		 */
		this._speed = null;

		/**
		 * Coordinates of all items in pixel.
		 * @todo The name of this member is missleading.
		 * @protected
		 */
		this._coordinates = [];

		/**
		 * Current breakpoint.
		 * @todo Real media queries would be nice.
		 * @protected
		 */
		this._breakpoint = null;

		/**
		 * Current width of the plugin element.
		 */
		this._width = null;

		/**
		 * All real items.
		 * @protected
		 */
		this._items = [];

		/**
		 * All cloned items.
		 * @protected
		 */
		this._clones = [];

		/**
		 * Merge values of all items.
		 * @todo Maybe this could be part of a plugin.
		 * @protected
		 */
		this._mergers = [];

		/**
		 * Widths of all items.
		 */
		this._widths = [];

		/**
		 * Invalidated parts within the update process.
		 * @protected
		 */
		this._invalidated = {};

		/**
		 * Ordered list of workers for the update process.
		 * @protected
		 */
		this._pipe = [];

		/**
		 * Current state information for the drag operation.
		 * @todo #261
		 * @protected
		 */
		this._drag = {
			time: null,
			target: null,
			pointer: null,
			stage: {
				start: null,
				current: null
			},
			direction: null
		};

		/**
		 * Current state information and their tags.
		 * @type {Object}
		 * @protected
		 */
		this._states = {
			current: {},
			tags: {
				'initializing': [ 'busy' ],
				'animating': [ 'busy' ],
				'dragging': [ 'interacting' ]
			}
		};

		$.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i, handler) {
			this._handlers[handler] = $.proxy(this[handler], this);
		}, this));

		$.each(Owl.Plugins, $.proxy(function(key, plugin) {
			this._plugins[key.charAt(0).toLowerCase() + key.slice(1)]
				= new plugin(this);
		}, this));

		$.each(Owl.Workers, $.proxy(function(priority, worker) {
			this._pipe.push({
				'filter': worker.filter,
				'run': $.proxy(worker.run, this)
			});
		}, this));

		this.setup();
		this.initialize();
	}

	/**
	 * Default options for the carousel.
	 * @public
	 */
	Owl.Defaults = {
		items: 3,
		loop: false,
		center: false,
		rewind: false,
		checkVisibility: true,

		mouseDrag: true,
		touchDrag: true,
		pullDrag: true,
		freeDrag: false,

		margin: 0,
		stagePadding: 0,

		merge: false,
		mergeFit: true,
		autoWidth: false,

		startPosition: 0,
		rtl: false,

		smartSpeed: 250,
		fluidSpeed: false,
		dragEndSpeed: false,

		responsive: {},
		responsiveRefreshRate: 200,
		responsiveBaseElement: window,

		fallbackEasing: 'swing',
		slideTransition: '',

		info: false,

		nestedItemSelector: false,
		itemElement: 'div',
		stageElement: 'div',

		refreshClass: 'owl-refresh',
		loadedClass: 'owl-loaded',
		loadingClass: 'owl-loading',
		rtlClass: 'owl-rtl',
		responsiveClass: 'owl-responsive',
		dragClass: 'owl-drag',
		itemClass: 'owl-item',
		stageClass: 'owl-stage',
		stageOuterClass: 'owl-stage-outer',
		grabClass: 'owl-grab'
	};

	/**
	 * Enumeration for width.
	 * @public
	 * @readonly
	 * @enum {String}
	 */
	Owl.Width = {
		Default: 'default',
		Inner: 'inner',
		Outer: 'outer'
	};

	/**
	 * Enumeration for types.
	 * @public
	 * @readonly
	 * @enum {String}
	 */
	Owl.Type = {
		Event: 'event',
		State: 'state'
	};

	/**
	 * Contains all registered plugins.
	 * @public
	 */
	Owl.Plugins = {};

	/**
	 * List of workers involved in the update process.
	 */
	Owl.Workers = [ {
		filter: [ 'width', 'settings' ],
		run: function() {
			this._width = this.$element.width();
		}
	}, {
		filter: [ 'width', 'items', 'settings' ],
		run: function(cache) {
			cache.current = this._items && this._items[this.relative(this._current)];
		}
	}, {
		filter: [ 'items', 'settings' ],
		run: function() {
			this.$stage.children('.cloned').remove();
		}
	}, {
		filter: [ 'width', 'items', 'settings' ],
		run: function(cache) {
			var margin = this.settings.margin || '',
				grid = !this.settings.autoWidth,
				rtl = this.settings.rtl,
				css = {
					'width': 'auto',
					'margin-left': rtl ? margin : '',
					'margin-right': rtl ? '' : margin
				};

			!grid && this.$stage.children().css(css);

			cache.css = css;
		}
	}, {
		filter: [ 'width', 'items', 'settings' ],
		run: function(cache) {
			var width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,
				merge = null,
				iterator = this._items.length,
				grid = !this.settings.autoWidth,
				widths = [];

			cache.items = {
				merge: false,
				width: width
			};

			while (iterator--) {
				merge = this._mergers[iterator];
				merge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge;

				cache.items.merge = merge > 1 || cache.items.merge;

				widths[iterator] = !grid ? this._items[iterator].width() : width * merge;
			}

			this._widths = widths;
		}
	}, {
		filter: [ 'items', 'settings' ],
		run: function() {
			var clones = [],
				items = this._items,
				settings = this.settings,
				// TODO: Should be computed from number of min width items in stage
				view = Math.max(settings.items * 2, 4),
				size = Math.ceil(items.length / 2) * 2,
				repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0,
				append = '',
				prepend = '';

			repeat /= 2;

			while (repeat > 0) {
				// Switch to only using appended clones
				clones.push(this.normalize(clones.length / 2, true));
				append = append + items[clones[clones.length - 1]][0].outerHTML;
				clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));
				prepend = items[clones[clones.length - 1]][0].outerHTML + prepend;
				repeat -= 1;
			}

			this._clones = clones;

			$(append).addClass('cloned').appendTo(this.$stage);
			$(prepend).addClass('cloned').prependTo(this.$stage);
		}
	}, {
		filter: [ 'width', 'items', 'settings' ],
		run: function() {
			var rtl = this.settings.rtl ? 1 : -1,
				size = this._clones.length + this._items.length,
				iterator = -1,
				previous = 0,
				current = 0,
				coordinates = [];

			while (++iterator < size) {
				previous = coordinates[iterator - 1] || 0;
				current = this._widths[this.relative(iterator)] + this.settings.margin;
				coordinates.push(previous + current * rtl);
			}

			this._coordinates = coordinates;
		}
	}, {
		filter: [ 'width', 'items', 'settings' ],
		run: function() {
			var padding = this.settings.stagePadding,
				coordinates = this._coordinates,
				css = {
					'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,
					'padding-left': padding || '',
					'padding-right': padding || ''
				};

			this.$stage.css(css);
		}
	}, {
		filter: [ 'width', 'items', 'settings' ],
		run: function(cache) {
			var iterator = this._coordinates.length,
				grid = !this.settings.autoWidth,
				items = this.$stage.children();

			if (grid && cache.items.merge) {
				while (iterator--) {
					cache.css.width = this._widths[this.relative(iterator)];
					items.eq(iterator).css(cache.css);
				}
			} else if (grid) {
				cache.css.width = cache.items.width;
				items.css(cache.css);
			}
		}
	}, {
		filter: [ 'items' ],
		run: function() {
			this._coordinates.length < 1 && this.$stage.removeAttr('style');
		}
	}, {
		filter: [ 'width', 'items', 'settings' ],
		run: function(cache) {
			cache.current = cache.current ? this.$stage.children().index(cache.current) : 0;
			cache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current));
			this.reset(cache.current);
		}
	}, {
		filter: [ 'position' ],
		run: function() {
			this.animate(this.coordinates(this._current));
		}
	}, {
		filter: [ 'width', 'position', 'items', 'settings' ],
		run: function() {
			var rtl = this.settings.rtl ? 1 : -1,
				padding = this.settings.stagePadding * 2,
				begin = this.coordinates(this.current()) + padding,
				end = begin + this.width() * rtl,
				inner, outer, matches = [], i, n;

			for (i = 0, n = this._coordinates.length; i < n; i++) {
				inner = this._coordinates[i - 1] || 0;
				outer = Math.abs(this._coordinates[i]) + padding * rtl;

				if ((this.op(inner, '<=', begin) && (this.op(inner, '>', end)))
					|| (this.op(outer, '<', begin) && this.op(outer, '>', end))) {
					matches.push(i);
				}
			}

			this.$stage.children('.active').removeClass('active');
			this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');

			this.$stage.children('.center').removeClass('center');
			if (this.settings.center) {
				this.$stage.children().eq(this.current()).addClass('center');
			}
		}
	} ];

	/**
	 * Create the stage DOM element
	 */
	Owl.prototype.initializeStage = function() {
		this.$stage = this.$element.find('.' + this.settings.stageClass);

		// if the stage is already in the DOM, grab it and skip stage initialization
		if (this.$stage.length) {
			return;
		}

		this.$element.addClass(this.options.loadingClass);

		// create stage
		this.$stage = $('<' + this.settings.stageElement + '>', {
			"class": this.settings.stageClass
		}).wrap( $( '<div/>', {
			"class": this.settings.stageOuterClass
		}));

		// append stage
		this.$element.append(this.$stage.parent());
	};

	/**
	 * Create item DOM elements
	 */
	Owl.prototype.initializeItems = function() {
		var $items = this.$element.find('.owl-item');

		// if the items are already in the DOM, grab them and skip item initialization
		if ($items.length) {
			this._items = $items.get().map(function(item) {
				return $(item);
			});

			this._mergers = this._items.map(function() {
				return 1;
			});

			this.refresh();

			return;
		}

		// append content
		this.replace(this.$element.children().not(this.$stage.parent()));

		// check visibility
		if (this.isVisible()) {
			// update view
			this.refresh();
		} else {
			// invalidate width
			this.invalidate('width');
		}

		this.$element
			.removeClass(this.options.loadingClass)
			.addClass(this.options.loadedClass);
	};

	/**
	 * Initializes the carousel.
	 * @protected
	 */
	Owl.prototype.initialize = function() {
		this.enter('initializing');
		this.trigger('initialize');

		this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);

		if (this.settings.autoWidth && !this.is('pre-loading')) {
			var imgs, nestedSelector, width;
			imgs = this.$element.find('img');
			nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;
			width = this.$element.children(nestedSelector).width();

			if (imgs.length && width <= 0) {
				this.preloadAutoWidthImages(imgs);
			}
		}

		this.initializeStage();
		this.initializeItems();

		// register event handlers
		this.registerEventHandlers();

		this.leave('initializing');
		this.trigger('initialized');
	};

	/**
	 * @returns {Boolean} visibility of $element
	 *                    if you know the carousel will always be visible you can set `checkVisibility` to `false` to
	 *                    prevent the expensive browser layout forced reflow the $element.is(':visible') does
	 */
	Owl.prototype.isVisible = function() {
		return this.settings.checkVisibility
			? this.$element.is(':visible')
			: true;
	};

	/**
	 * Setups the current settings.
	 * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?
	 * @todo Support for media queries by using `matchMedia` would be nice.
	 * @public
	 */
	Owl.prototype.setup = function() {
		var viewport = this.viewport(),
			overwrites = this.options.responsive,
			match = -1,
			settings = null;

		if (!overwrites) {
			settings = $.extend({}, this.options);
		} else {
			$.each(overwrites, function(breakpoint) {
				if (breakpoint <= viewport && breakpoint > match) {
					match = Number(breakpoint);
				}
			});

			settings = $.extend({}, this.options, overwrites[match]);
			if (typeof settings.stagePadding === 'function') {
				settings.stagePadding = settings.stagePadding();
			}
			delete settings.responsive;

			// responsive class
			if (settings.responsiveClass) {
				this.$element.attr('class',
					this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + match)
				);
			}
		}

		this.trigger('change', { property: { name: 'settings', value: settings } });
		this._breakpoint = match;
		this.settings = settings;
		this.invalidate('settings');
		this.trigger('changed', { property: { name: 'settings', value: this.settings } });
	};

	/**
	 * Updates option logic if necessery.
	 * @protected
	 */
	Owl.prototype.optionsLogic = function() {
		if (this.settings.autoWidth) {
			this.settings.stagePadding = false;
			this.settings.merge = false;
		}
	};

	/**
	 * Prepares an item before add.
	 * @todo Rename event parameter `content` to `item`.
	 * @protected
	 * @returns {jQuery|HTMLElement} - The item container.
	 */
	Owl.prototype.prepare = function(item) {
		var event = this.trigger('prepare', { content: item });

		if (!event.data) {
			event.data = $('<' + this.settings.itemElement + '/>')
				.addClass(this.options.itemClass).append(item)
		}

		this.trigger('prepared', { content: event.data });

		return event.data;
	};

	/**
	 * Updates the view.
	 * @public
	 */
	Owl.prototype.update = function() {
		var i = 0,
			n = this._pipe.length,
			filter = $.proxy(function(p) { return this[p] }, this._invalidated),
			cache = {};

		while (i < n) {
			if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {
				this._pipe[i].run(cache);
			}
			i++;
		}

		this._invalidated = {};

		!this.is('valid') && this.enter('valid');
	};

	/**
	 * Gets the width of the view.
	 * @public
	 * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return.
	 * @returns {Number} - The width of the view in pixel.
	 */
	Owl.prototype.width = function(dimension) {
		dimension = dimension || Owl.Width.Default;
		switch (dimension) {
			case Owl.Width.Inner:
			case Owl.Width.Outer:
				return this._width;
			default:
				return this._width - this.settings.stagePadding * 2 + this.settings.margin;
		}
	};

	/**
	 * Refreshes the carousel primarily for adaptive purposes.
	 * @public
	 */
	Owl.prototype.refresh = function() {
		this.enter('refreshing');
		this.trigger('refresh');

		this.setup();

		this.optionsLogic();

		this.$element.addClass(this.options.refreshClass);

		this.update();

		this.$element.removeClass(this.options.refreshClass);

		this.leave('refreshing');
		this.trigger('refreshed');
	};

	/**
	 * Checks window `resize` event.
	 * @protected
	 */
	Owl.prototype.onThrottledResize = function() {
		window.clearTimeout(this.resizeTimer);
		this.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate);
	};

	/**
	 * Checks window `resize` event.
	 * @protected
	 */
	Owl.prototype.onResize = function() {
		if (!this._items.length) {
			return false;
		}

		if (this._width === this.$element.width()) {
			return false;
		}

		if (!this.isVisible()) {
			return false;
		}

		this.enter('resizing');

		if (this.trigger('resize').isDefaultPrevented()) {
			this.leave('resizing');
			return false;
		}

		this.invalidate('width');

		this.refresh();

		this.leave('resizing');
		this.trigger('resized');
	};

	/**
	 * Registers event handlers.
	 * @todo Check `msPointerEnabled`
	 * @todo #261
	 * @protected
	 */
	Owl.prototype.registerEventHandlers = function() {
		if ($.support.transition) {
			this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this));
		}

		if (this.settings.responsive !== false) {
			this.on(window, 'resize', this._handlers.onThrottledResize);
		}

		if (this.settings.mouseDrag) {
			this.$element.addClass(this.options.dragClass);
			this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));
			this.$stage.on('dragstart.owl.core selectstart.owl.core', function() { return false });
		}

		if (this.settings.touchDrag){
			this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));
			this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this));
		}
	};

	/**
	 * Handles `touchstart` and `mousedown` events.
	 * @todo Horizontal swipe threshold as option
	 * @todo #261
	 * @protected
	 * @param {Event} event - The event arguments.
	 */
	Owl.prototype.onDragStart = function(event) {
		var stage = null;

		if (event.which === 3) {
			return;
		}

		if ($.support.transform) {
			stage = this.$stage.css('transform').replace(/.*\(|\)| /g, '').split(',');
			stage = {
				x: stage[stage.length === 16 ? 12 : 4],
				y: stage[stage.length === 16 ? 13 : 5]
			};
		} else {
			stage = this.$stage.position();
			stage = {
				x: this.settings.rtl ?
					stage.left + this.$stage.width() - this.width() + this.settings.margin :
					stage.left,
				y: stage.top
			};
		}

		if (this.is('animating')) {
			$.support.transform ? this.animate(stage.x) : this.$stage.stop()
			this.invalidate('position');
		}

		this.$element.toggleClass(this.options.grabClass, event.type === 'mousedown');

		this.speed(0);

		this._drag.time = new Date().getTime();
		this._drag.target = $(event.target);
		this._drag.stage.start = stage;
		this._drag.stage.current = stage;
		this._drag.pointer = this.pointer(event);

		$(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));

		$(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) {
			var delta = this.difference(this._drag.pointer, this.pointer(event));

			$(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));

			if (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) {
				return;
			}

			event.preventDefault();

			this.enter('dragging');
			this.trigger('drag');
		}, this));
	};

	/**
	 * Handles the `touchmove` and `mousemove` events.
	 * @todo #261
	 * @protected
	 * @param {Event} event - The event arguments.
	 */
	Owl.prototype.onDragMove = function(event) {
		var minimum = null,
			maximum = null,
			pull = null,
			delta = this.difference(this._drag.pointer, this.pointer(event)),
			stage = this.difference(this._drag.stage.start, delta);

		if (!this.is('dragging')) {
			return;
		}

		event.preventDefault();

		if (this.settings.loop) {
			minimum = this.coordinates(this.minimum());
			maximum = this.coordinates(this.maximum() + 1) - minimum;
			stage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum;
		} else {
			minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());
			maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());
			pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;
			stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull);
		}

		this._drag.stage.current = stage;

		this.animate(stage.x);
	};

	/**
	 * Handles the `touchend` and `mouseup` events.
	 * @todo #261
	 * @todo Threshold for click event
	 * @protected
	 * @param {Event} event - The event arguments.
	 */
	Owl.prototype.onDragEnd = function(event) {
		var delta = this.difference(this._drag.pointer, this.pointer(event)),
			stage = this._drag.stage.current,
			direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right';

		$(document).off('.owl.core');

		this.$element.removeClass(this.options.grabClass);

		if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {
			this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);
			this.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction));
			this.invalidate('position');
			this.update();

			this._drag.direction = direction;

			if (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) {
				this._drag.target.one('click.owl.core', function() { return false; });
			}
		}

		if (!this.is('dragging')) {
			return;
		}

		this.leave('dragging');
		this.trigger('dragged');
	};

	/**
	 * Gets absolute position of the closest item for a coordinate.
	 * @todo Setting `freeDrag` makes `closest` not reusable. See #165.
	 * @protected
	 * @param {Number} coordinate - The coordinate in pixel.
	 * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`.
	 * @return {Number} - The absolute position of the closest item.
	 */
	Owl.prototype.closest = function(coordinate, direction) {
		var position = -1,
			pull = 30,
			width = this.width(),
			coordinates = this.coordinates();

		if (!this.settings.freeDrag) {
			// check closest item
			$.each(coordinates, $.proxy(function(index, value) {
				// on a left pull, check on current index
				if (direction === 'left' && coordinate > value - pull && coordinate < value + pull) {
					position = index;
				// on a right pull, check on previous index
				// to do so, subtract width from value and set position = index + 1
				} else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) {
					position = index + 1;
				} else if (this.op(coordinate, '<', value)
					&& this.op(coordinate, '>', coordinates[index + 1] !== undefined ? coordinates[index + 1] : value - width)) {
					position = direction === 'left' ? index + 1 : index;
				}
				return position === -1;
			}, this));
		}

		if (!this.settings.loop) {
			// non loop boundries
			if (this.op(coordinate, '>', coordinates[this.minimum()])) {
				position = coordinate = this.minimum();
			} else if (this.op(coordinate, '<', coordinates[this.maximum()])) {
				position = coordinate = this.maximum();
			}
		}

		return position;
	};

	/**
	 * Animates the stage.
	 * @todo #270
	 * @public
	 * @param {Number} coordinate - The coordinate in pixels.
	 */
	Owl.prototype.animate = function(coordinate) {
		var animate = this.speed() > 0;

		this.is('animating') && this.onTransitionEnd();

		if (animate) {
			this.enter('animating');
			this.trigger('translate');
		}

		if ($.support.transform3d && $.support.transition) {
			this.$stage.css({
				transform: 'translate3d(' + coordinate + 'px,0px,0px)',
				transition: (this.speed() / 1000) + 's' + (
					this.settings.slideTransition ? ' ' + this.settings.slideTransition : ''
				)
			});
		} else if (animate) {
			this.$stage.animate({
				left: coordinate + 'px'
			}, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this));
		} else {
			this.$stage.css({
				left: coordinate + 'px'
			});
		}
	};

	/**
	 * Checks whether the carousel is in a specific state or not.
	 * @param {String} state - The state to check.
	 * @returns {Boolean} - The flag which indicates if the carousel is busy.
	 */
	Owl.prototype.is = function(state) {
		return this._states.current[state] && this._states.current[state] > 0;
	};

	/**
	 * Sets the absolute position of the current item.
	 * @public
	 * @param {Number} [position] - The new absolute position or nothing to leave it unchanged.
	 * @returns {Number} - The absolute position of the current item.
	 */
	Owl.prototype.current = function(position) {
		if (position === undefined) {
			return this._current;
		}

		if (this._items.length === 0) {
			return undefined;
		}

		position = this.normalize(position);

		if (this._current !== position) {
			var event = this.trigger('change', { property: { name: 'position', value: position } });

			if (event.data !== undefined) {
				position = this.normalize(event.data);
			}

			this._current = position;

			this.invalidate('position');

			this.trigger('changed', { property: { name: 'position', value: this._current } });
		}

		return this._current;
	};

	/**
	 * Invalidates the given part of the update routine.
	 * @param {String} [part] - The part to invalidate.
	 * @returns {Array.<String>} - The invalidated parts.
	 */
	Owl.prototype.invalidate = function(part) {
		if ($.type(part) === 'string') {
			this._invalidated[part] = true;
			this.is('valid') && this.leave('valid');
		}
		return $.map(this._invalidated, function(v, i) { return i });
	};

	/**
	 * Resets the absolute position of the current item.
	 * @public
	 * @param {Number} position - The absolute position of the new item.
	 */
	Owl.prototype.reset = function(position) {
		position = this.normalize(position);

		if (position === undefined) {
			return;
		}

		this._speed = 0;
		this._current = position;

		this.suppress([ 'translate', 'translated' ]);

		this.animate(this.coordinates(position));

		this.release([ 'translate', 'translated' ]);
	};

	/**
	 * Normalizes an absolute or a relative position of an item.
	 * @public
	 * @param {Number} position - The absolute or relative position to normalize.
	 * @param {Boolean} [relative=false] - Whether the given position is relative or not.
	 * @returns {Number} - The normalized position.
	 */
	Owl.prototype.normalize = function(position, relative) {
		var n = this._items.length,
			m = relative ? 0 : this._clones.length;

		if (!this.isNumeric(position) || n < 1) {
			position = undefined;
		} else if (position < 0 || position >= n + m) {
			position = ((position - m / 2) % n + n) % n + m / 2;
		}

		return position;
	};

	/**
	 * Converts an absolute position of an item into a relative one.
	 * @public
	 * @param {Number} position - The absolute position to convert.
	 * @returns {Number} - The converted position.
	 */
	Owl.prototype.relative = function(position) {
		position -= this._clones.length / 2;
		return this.normalize(position, true);
	};

	/**
	 * Gets the maximum position for the current item.
	 * @public
	 * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.
	 * @returns {Number}
	 */
	Owl.prototype.maximum = function(relative) {
		var settings = this.settings,
			maximum = this._coordinates.length,
			iterator,
			reciprocalItemsWidth,
			elementWidth;

		if (settings.loop) {
			maximum = this._clones.length / 2 + this._items.length - 1;
		} else if (settings.autoWidth || settings.merge) {
			iterator = this._items.length;
			if (iterator) {
				reciprocalItemsWidth = this._items[--iterator].width();
				elementWidth = this.$element.width();
				while (iterator--) {
					reciprocalItemsWidth += this._items[iterator].width() + this.settings.margin;
					if (reciprocalItemsWidth > elementWidth) {
						break;
					}
				}
			}
			maximum = iterator + 1;
		} else if (settings.center) {
			maximum = this._items.length - 1;
		} else {
			maximum = this._items.length - settings.items;
		}

		if (relative) {
			maximum -= this._clones.length / 2;
		}

		return Math.max(maximum, 0);
	};

	/**
	 * Gets the minimum position for the current item.
	 * @public
	 * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position.
	 * @returns {Number}
	 */
	Owl.prototype.minimum = function(relative) {
		return relative ? 0 : this._clones.length / 2;
	};

	/**
	 * Gets an item at the specified relative position.
	 * @public
	 * @param {Number} [position] - The relative position of the item.
	 * @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given.
	 */
	Owl.prototype.items = function(position) {
		if (position === undefined) {
			return this._items.slice();
		}

		position = this.normalize(position, true);
		return this._items[position];
	};

	/**
	 * Gets an item at the specified relative position.
	 * @public
	 * @param {Number} [position] - The relative position of the item.
	 * @return {jQuery|Array.<jQuery>} - The item at the given position or all items if no position was given.
	 */
	Owl.prototype.mergers = function(position) {
		if (position === undefined) {
			return this._mergers.slice();
		}

		position = this.normalize(position, true);
		return this._mergers[position];
	};

	/**
	 * Gets the absolute positions of clones for an item.
	 * @public
	 * @param {Number} [position] - The relative position of the item.
	 * @returns {Array.<Number>} - The absolute positions of clones for the item or all if no position was given.
	 */
	Owl.prototype.clones = function(position) {
		var odd = this._clones.length / 2,
			even = odd + this._items.length,
			map = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 };

		if (position === undefined) {
			return $.map(this._clones, function(v, i) { return map(i) });
		}

		return $.map(this._clones, function(v, i) { return v === position ? map(i) : null });
	};

	/**
	 * Sets the current animation speed.
	 * @public
	 * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged.
	 * @returns {Number} - The current animation speed in milliseconds.
	 */
	Owl.prototype.speed = function(speed) {
		if (speed !== undefined) {
			this._speed = speed;
		}

		return this._speed;
	};

	/**
	 * Gets the coordinate of an item.
	 * @todo The name of this method is missleanding.
	 * @public
	 * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`.
	 * @returns {Number|Array.<Number>} - The coordinate of the item in pixel or all coordinates.
	 */
	Owl.prototype.coordinates = function(position) {
		var multiplier = 1,
			newPosition = position - 1,
			coordinate;

		if (position === undefined) {
			return $.map(this._coordinates, $.proxy(function(coordinate, index) {
				return this.coordinates(index);
			}, this));
		}

		if (this.settings.center) {
			if (this.settings.rtl) {
				multiplier = -1;
				newPosition = position + 1;
			}

			coordinate = this._coordinates[position];
			coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;
		} else {
			coordinate = this._coordinates[newPosition] || 0;
		}

		coordinate = Math.ceil(coordinate);

		return coordinate;
	};

	/**
	 * Calculates the speed for a translation.
	 * @protected
	 * @param {Number} from - The absolute position of the start item.
	 * @param {Number} to - The absolute position of the target item.
	 * @param {Number} [factor=undefined] - The time factor in milliseconds.
	 * @returns {Number} - The time in milliseconds for the translation.
	 */
	Owl.prototype.duration = function(from, to, factor) {
		if (factor === 0) {
			return 0;
		}

		return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed));
	};

	/**
	 * Slides to the specified item.
	 * @public
	 * @param {Number} position - The position of the item.
	 * @param {Number} [speed] - The time in milliseconds for the transition.
	 */
	Owl.prototype.to = function(position, speed) {
		var current = this.current(),
			revert = null,
			distance = position - this.relative(current),
			direction = (distance > 0) - (distance < 0),
			items = this._items.length,
			minimum = this.minimum(),
			maximum = this.maximum();

		if (this.settings.loop) {
			if (!this.settings.rewind && Math.abs(distance) > items / 2) {
				distance += direction * -1 * items;
			}

			position = current + distance;
			revert = ((position - minimum) % items + items) % items + minimum;

			if (revert !== position && revert - distance <= maximum && revert - distance > 0) {
				current = revert - distance;
				position = revert;
				this.reset(current);
			}
		} else if (this.settings.rewind) {
			maximum += 1;
			position = (position % maximum + maximum) % maximum;
		} else {
			position = Math.max(minimum, Math.min(maximum, position));
		}

		this.speed(this.duration(current, position, speed));
		this.current(position);

		if (this.isVisible()) {
			this.update();
		}
	};

	/**
	 * Slides to the next item.
	 * @public
	 * @param {Number} [speed] - The time in milliseconds for the transition.
	 */
	Owl.prototype.next = function(speed) {
		speed = speed || false;
		this.to(this.relative(this.current()) + 1, speed);
	};

	/**
	 * Slides to the previous item.
	 * @public
	 * @param {Number} [speed] - The time in milliseconds for the transition.
	 */
	Owl.prototype.prev = function(speed) {
		speed = speed || false;
		this.to(this.relative(this.current()) - 1, speed);
	};

	/**
	 * Handles the end of an animation.
	 * @protected
	 * @param {Event} event - The event arguments.
	 */
	Owl.prototype.onTransitionEnd = function(event) {

		// if css2 animation then event object is undefined
		if (event !== undefined) {
			event.stopPropagation();

			// Catch only owl-stage transitionEnd event
			if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) {
				return false;
			}
		}

		this.leave('animating');
		this.trigger('translated');
	};

	/**
	 * Gets viewport width.
	 * @protected
	 * @return {Number} - The width in pixel.
	 */
	Owl.prototype.viewport = function() {
		var width;
		if (this.options.responsiveBaseElement !== window) {
			width = $(this.options.responsiveBaseElement).width();
		} else if (window.innerWidth) {
			width = window.innerWidth;
		} else if (document.documentElement && document.documentElement.clientWidth) {
			width = document.documentElement.clientWidth;
		} else {
			console.warn('Can not detect viewport width.');
		}
		return width;
	};

	/**
	 * Replaces the current content.
	 * @public
	 * @param {HTMLElement|jQuery|String} content - The new content.
	 */
	Owl.prototype.replace = function(content) {
		this.$stage.empty();
		this._items = [];

		if (content) {
			content = (content instanceof jQuery) ? content : $(content);
		}

		if (this.settings.nestedItemSelector) {
			content = content.find('.' + this.settings.nestedItemSelector);
		}

		content.filter(function() {
			return this.nodeType === 1;
		}).each($.proxy(function(index, item) {
			item = this.prepare(item);
			this.$stage.append(item);
			this._items.push(item);
			this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);
		}, this));

		this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0);

		this.invalidate('items');
	};

	/**
	 * Adds an item.
	 * @todo Use `item` instead of `content` for the event arguments.
	 * @public
	 * @param {HTMLElement|jQuery|String} content - The item content to add.
	 * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end.
	 */
	Owl.prototype.add = function(content, position) {
		var current = this.relative(this._current);

		position = position === undefined ? this._items.length : this.normalize(position, true);
		content = content instanceof jQuery ? content : $(content);

		this.trigger('add', { content: content, position: position });

		content = this.prepare(content);

		if (this._items.length === 0 || position === this._items.length) {
			this._items.length === 0 && this.$stage.append(content);
			this._items.length !== 0 && this._items[position - 1].after(content);
			this._items.push(content);
			this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);
		} else {
			this._items[position].before(content);
			this._items.splice(position, 0, content);
			this._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1);
		}

		this._items[current] && this.reset(this._items[current].index());

		this.invalidate('items');

		this.trigger('added', { content: content, position: position });
	};

	/**
	 * Removes an item by its position.
	 * @todo Use `item` instead of `content` for the event arguments.
	 * @public
	 * @param {Number} position - The relative position of the item to remove.
	 */
	Owl.prototype.remove = function(position) {
		position = this.normalize(position, true);

		if (position === undefined) {
			return;
		}

		this.trigger('remove', { content: this._items[position], position: position });

		this._items[position].remove();
		this._items.splice(position, 1);
		this._mergers.splice(position, 1);

		this.invalidate('items');

		this.trigger('removed', { content: null, position: position });
	};

	/**
	 * Preloads images with auto width.
	 * @todo Replace by a more generic approach
	 * @protected
	 */
	Owl.prototype.preloadAutoWidthImages = function(images) {
		images.each($.proxy(function(i, element) {
			this.enter('pre-loading');
			element = $(element);
			$(new Image()).one('load', $.proxy(function(e) {
				element.attr('src', e.target.src);
				element.css('opacity', 1);
				this.leave('pre-loading');
				!this.is('pre-loading') && !this.is('initializing') && this.refresh();
			}, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina'));
		}, this));
	};

	/**
	 * Destroys the carousel.
	 * @public
	 */
	Owl.prototype.destroy = function() {

		this.$element.off('.owl.core');
		this.$stage.off('.owl.core');
		$(document).off('.owl.core');

		if (this.settings.responsive !== false) {
			window.clearTimeout(this.resizeTimer);
			this.off(window, 'resize', this._handlers.onThrottledResize);
		}

		for (var i in this._plugins) {
			this._plugins[i].destroy();
		}

		this.$stage.children('.cloned').remove();

		this.$stage.unwrap();
		this.$stage.children().contents().unwrap();
		this.$stage.children().unwrap();
		this.$stage.remove();
		this.$element
			.removeClass(this.options.refreshClass)
			.removeClass(this.options.loadingClass)
			.removeClass(this.options.loadedClass)
			.removeClass(this.options.rtlClass)
			.removeClass(this.options.dragClass)
			.removeClass(this.options.grabClass)
			.attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), ''))
			.removeData('owl.carousel');
	};

	/**
	 * Operators to calculate right-to-left and left-to-right.
	 * @protected
	 * @param {Number} [a] - The left side operand.
	 * @param {String} [o] - The operator.
	 * @param {Number} [b] - The right side operand.
	 */
	Owl.prototype.op = function(a, o, b) {
		var rtl = this.settings.rtl;
		switch (o) {
			case '<':
				return rtl ? a > b : a < b;
			case '>':
				return rtl ? a < b : a > b;
			case '>=':
				return rtl ? a <= b : a >= b;
			case '<=':
				return rtl ? a >= b : a <= b;
			default:
				break;
		}
	};

	/**
	 * Attaches to an internal event.
	 * @protected
	 * @param {HTMLElement} element - The event source.
	 * @param {String} event - The event name.
	 * @param {Function} listener - The event handler to attach.
	 * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not.
	 */
	Owl.prototype.on = function(element, event, listener, capture) {
		if (element.addEventListener) {
			element.addEventListener(event, listener, capture);
		} else if (element.attachEvent) {
			element.attachEvent('on' + event, listener);
		}
	};

	/**
	 * Detaches from an internal event.
	 * @protected
	 * @param {HTMLElement} element - The event source.
	 * @param {String} event - The event name.
	 * @param {Function} listener - The attached event handler to detach.
	 * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not.
	 */
	Owl.prototype.off = function(element, event, listener, capture) {
		if (element.removeEventListener) {
			element.removeEventListener(event, listener, capture);
		} else if (element.detachEvent) {
			element.detachEvent('on' + event, listener);
		}
	};

	/**
	 * Triggers a public event.
	 * @todo Remove `status`, `relatedTarget` should be used instead.
	 * @protected
	 * @param {String} name - The event name.
	 * @param {*} [data=null] - The event data.
	 * @param {String} [namespace=carousel] - The event namespace.
	 * @param {String} [state] - The state which is associated with the event.
	 * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not.
	 * @returns {Event} - The event arguments.
	 */
	Owl.prototype.trigger = function(name, data, namespace, state, enter) {
		var status = {
			item: { count: this._items.length, index: this.current() }
		}, handler = $.camelCase(
			$.grep([ 'on', name, namespace ], function(v) { return v })
				.join('-').toLowerCase()
		), event = $.Event(
			[ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(),
			$.extend({ relatedTarget: this }, status, data)
		);

		if (!this._supress[name]) {
			$.each(this._plugins, function(name, plugin) {
				if (plugin.onTrigger) {
					plugin.onTrigger(event);
				}
			});

			this.register({ type: Owl.Type.Event, name: name });
			this.$element.trigger(event);

			if (this.settings && typeof this.settings[handler] === 'function') {
				this.settings[handler].call(this, event);
			}
		}

		return event;
	};

	/**
	 * Enters a state.
	 * @param name - The state name.
	 */
	Owl.prototype.enter = function(name) {
		$.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {
			if (this._states.current[name] === undefined) {
				this._states.current[name] = 0;
			}

			this._states.current[name]++;
		}, this));
	};

	/**
	 * Leaves a state.
	 * @param name - The state name.
	 */
	Owl.prototype.leave = function(name) {
		$.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) {
			this._states.current[name]--;
		}, this));
	};

	/**
	 * Registers an event or state.
	 * @public
	 * @param {Object} object - The event or state to register.
	 */
	Owl.prototype.register = function(object) {
		if (object.type === Owl.Type.Event) {
			if (!$.event.special[object.name]) {
				$.event.special[object.name] = {};
			}

			if (!$.event.special[object.name].owl) {
				var _default = $.event.special[object.name]._default;
				$.event.special[object.name]._default = function(e) {
					if (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) {
						return _default.apply(this, arguments);
					}
					return e.namespace && e.namespace.indexOf('owl') > -1;
				};
				$.event.special[object.name].owl = true;
			}
		} else if (object.type === Owl.Type.State) {
			if (!this._states.tags[object.name]) {
				this._states.tags[object.name] = object.tags;
			} else {
				this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags);
			}

			this._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) {
				return $.inArray(tag, this._states.tags[object.name]) === i;
			}, this));
		}
	};

	/**
	 * Suppresses events.
	 * @protected
	 * @param {Array.<String>} events - The events to suppress.
	 */
	Owl.prototype.suppress = function(events) {
		$.each(events, $.proxy(function(index, event) {
			this._supress[event] = true;
		}, this));
	};

	/**
	 * Releases suppressed events.
	 * @protected
	 * @param {Array.<String>} events - The events to release.
	 */
	Owl.prototype.release = function(events) {
		$.each(events, $.proxy(function(index, event) {
			delete this._supress[event];
		}, this));
	};

	/**
	 * Gets unified pointer coordinates from event.
	 * @todo #261
	 * @protected
	 * @param {Event} - The `mousedown` or `touchstart` event.
	 * @returns {Object} - Contains `x` and `y` coordinates of current pointer position.
	 */
	Owl.prototype.pointer = function(event) {
		var result = { x: null, y: null };

		event = event.originalEvent || event || window.event;

		event = event.touches && event.touches.length ?
			event.touches[0] : event.changedTouches && event.changedTouches.length ?
				event.changedTouches[0] : event;

		if (event.pageX) {
			result.x = event.pageX;
			result.y = event.pageY;
		} else {
			result.x = event.clientX;
			result.y = event.clientY;
		}

		return result;
	};

	/**
	 * Determines if the input is a Number or something that can be coerced to a Number
	 * @protected
	 * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested
	 * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number
	 */
	Owl.prototype.isNumeric = function(number) {
		return !isNaN(parseFloat(number));
	};

	/**
	 * Gets the difference of two vectors.
	 * @todo #261
	 * @protected
	 * @param {Object} - The first vector.
	 * @param {Object} - The second vector.
	 * @returns {Object} - The difference.
	 */
	Owl.prototype.difference = function(first, second) {
		return {
			x: first.x - second.x,
			y: first.y - second.y
		};
	};

	/**
	 * The jQuery Plugin for the Owl Carousel
	 * @todo Navigation plugin `next` and `prev`
	 * @public
	 */
	$.fn.owlCarousel = function(option) {
		var args = Array.prototype.slice.call(arguments, 1);

		return this.each(function() {
			var $this = $(this),
				data = $this.data('owl.carousel');

			if (!data) {
				data = new Owl(this, typeof option == 'object' && option);
				$this.data('owl.carousel', data);

				$.each([
					'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'
				], function(i, event) {
					data.register({ type: Owl.Type.Event, name: event });
					data.$element.on(event + '.owl.carousel.core', $.proxy(function(e) {
						if (e.namespace && e.relatedTarget !== this) {
							this.suppress([ event ]);
							data[event].apply(this, [].slice.call(arguments, 1));
							this.release([ event ]);
						}
					}, data));
				});
			}

			if (typeof option == 'string' && option.charAt(0) !== '_') {
				data[option].apply(data, args);
			}
		});
	};

	/**
	 * The constructor for the jQuery Plugin
	 * @public
	 */
	$.fn.owlCarousel.Constructor = Owl;

})(window.Zepto || window.jQuery, window, document);

/**
 * AutoRefresh Plugin
 * @version 2.3.4
 * @author Artus Kolanowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;(function($, window, document, undefined) {

	/**
	 * Creates the auto refresh plugin.
	 * @class The Auto Refresh Plugin
	 * @param {Owl} carousel - The Owl Carousel
	 */
	var AutoRefresh = function(carousel) {
		/**
		 * Reference to the core.
		 * @protected
		 * @type {Owl}
		 */
		this._core = carousel;

		/**
		 * Refresh interval.
		 * @protected
		 * @type {number}
		 */
		this._interval = null;

		/**
		 * Whether the element is currently visible or not.
		 * @protected
		 * @type {Boolean}
		 */
		this._visible = null;

		/**
		 * All event handlers.
		 * @protected
		 * @type {Object}
		 */
		this._handlers = {
			'initialized.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._core.settings.autoRefresh) {
					this.watch();
				}
			}, this)
		};

		// set default options
		this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options);

		// register event handlers
		this._core.$element.on(this._handlers);
	};

	/**
	 * Default options.
	 * @public
	 */
	AutoRefresh.Defaults = {
		autoRefresh: true,
		autoRefreshInterval: 500
	};

	/**
	 * Watches the element.
	 */
	AutoRefresh.prototype.watch = function() {
		if (this._interval) {
			return;
		}

		this._visible = this._core.isVisible();
		this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval);
	};

	/**
	 * Refreshes the element.
	 */
	AutoRefresh.prototype.refresh = function() {
		if (this._core.isVisible() === this._visible) {
			return;
		}

		this._visible = !this._visible;

		this._core.$element.toggleClass('owl-hidden', !this._visible);

		this._visible && (this._core.invalidate('width') && this._core.refresh());
	};

	/**
	 * Destroys the plugin.
	 */
	AutoRefresh.prototype.destroy = function() {
		var handler, property;

		window.clearInterval(this._interval);

		for (handler in this._handlers) {
			this._core.$element.off(handler, this._handlers[handler]);
		}
		for (property in Object.getOwnPropertyNames(this)) {
			typeof this[property] != 'function' && (this[property] = null);
		}
	};

	$.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh;

})(window.Zepto || window.jQuery, window, document);

/**
 * Lazy Plugin
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;(function($, window, document, undefined) {

	/**
	 * Creates the lazy plugin.
	 * @class The Lazy Plugin
	 * @param {Owl} carousel - The Owl Carousel
	 */
	var Lazy = function(carousel) {

		/**
		 * Reference to the core.
		 * @protected
		 * @type {Owl}
		 */
		this._core = carousel;

		/**
		 * Already loaded items.
		 * @protected
		 * @type {Array.<jQuery>}
		 */
		this._loaded = [];

		/**
		 * Event handlers.
		 * @protected
		 * @type {Object}
		 */
		this._handlers = {
			'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function(e) {
				if (!e.namespace) {
					return;
				}

				if (!this._core.settings || !this._core.settings.lazyLoad) {
					return;
				}

				if ((e.property && e.property.name == 'position') || e.type == 'initialized') {
					var settings = this._core.settings,
						n = (settings.center && Math.ceil(settings.items / 2) || settings.items),
						i = ((settings.center && n * -1) || 0),
						position = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i,
						clones = this._core.clones().length,
						load = $.proxy(function(i, v) { this.load(v) }, this);
					//TODO: Need documentation for this new option
					if (settings.lazyLoadEager > 0) {
						n += settings.lazyLoadEager;
						// If the carousel is looping also preload images that are to the "left"
						if (settings.loop) {
              position -= settings.lazyLoadEager;
              n++;
            }
					}

					while (i++ < n) {
						this.load(clones / 2 + this._core.relative(position));
						clones && $.each(this._core.clones(this._core.relative(position)), load);
						position++;
					}
				}
			}, this)
		};

		// set the default options
		this._core.options = $.extend({}, Lazy.Defaults, this._core.options);

		// register event handler
		this._core.$element.on(this._handlers);
	};

	/**
	 * Default options.
	 * @public
	 */
	Lazy.Defaults = {
		lazyLoad: false,
		lazyLoadEager: 0
	};

	/**
	 * Loads all resources of an item at the specified position.
	 * @param {Number} position - The absolute position of the item.
	 * @protected
	 */
	Lazy.prototype.load = function(position) {
		var $item = this._core.$stage.children().eq(position),
			$elements = $item && $item.find('.owl-lazy');

		if (!$elements || $.inArray($item.get(0), this._loaded) > -1) {
			return;
		}

		$elements.each($.proxy(function(index, element) {
			var $element = $(element), image,
                url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src') || $element.attr('data-srcset');

			this._core.trigger('load', { element: $element, url: url }, 'lazy');

			if ($element.is('img')) {
				$element.one('load.owl.lazy', $.proxy(function() {
					$element.css('opacity', 1);
					this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
				}, this)).attr('src', url);
            } else if ($element.is('source')) {
                $element.one('load.owl.lazy', $.proxy(function() {
                    this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
                }, this)).attr('srcset', url);
			} else {
				image = new Image();
				image.onload = $.proxy(function() {
					$element.css({
						'background-image': 'url("' + url + '")',
						'opacity': '1'
					});
					this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
				}, this);
				image.src = url;
			}
		}, this));

		this._loaded.push($item.get(0));
	};

	/**
	 * Destroys the plugin.
	 * @public
	 */
	Lazy.prototype.destroy = function() {
		var handler, property;

		for (handler in this.handlers) {
			this._core.$element.off(handler, this.handlers[handler]);
		}
		for (property in Object.getOwnPropertyNames(this)) {
			typeof this[property] != 'function' && (this[property] = null);
		}
	};

	$.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy;

})(window.Zepto || window.jQuery, window, document);

/**
 * AutoHeight Plugin
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;(function($, window, document, undefined) {

	/**
	 * Creates the auto height plugin.
	 * @class The Auto Height Plugin
	 * @param {Owl} carousel - The Owl Carousel
	 */
	var AutoHeight = function(carousel) {
		/**
		 * Reference to the core.
		 * @protected
		 * @type {Owl}
		 */
		this._core = carousel;

		this._previousHeight = null;

		/**
		 * All event handlers.
		 * @protected
		 * @type {Object}
		 */
		this._handlers = {
			'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._core.settings.autoHeight) {
					this.update();
				}
			}, this),
			'changed.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._core.settings.autoHeight && e.property.name === 'position'){
					this.update();
				}
			}, this),
			'loaded.owl.lazy': $.proxy(function(e) {
				if (e.namespace && this._core.settings.autoHeight
					&& e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) {
					this.update();
				}
			}, this)
		};

		// set default options
		this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options);

		// register event handlers
		this._core.$element.on(this._handlers);
		this._intervalId = null;
		var refThis = this;

		// These changes have been taken from a PR by gavrochelegnou proposed in #1575
		// and have been made compatible with the latest jQuery version
		$(window).on('load', function() {
			if (refThis._core.settings.autoHeight) {
				refThis.update();
			}
		});

		// Autoresize the height of the carousel when window is resized
		// When carousel has images, the height is dependent on the width
		// and should also change on resize
		$(window).resize(function() {
			if (refThis._core.settings.autoHeight) {
				if (refThis._intervalId != null) {
					clearTimeout(refThis._intervalId);
				}

				refThis._intervalId = setTimeout(function() {
					refThis.update();
				}, 250);
			}
		});

	};

	/**
	 * Default options.
	 * @public
	 */
	AutoHeight.Defaults = {
		autoHeight: false,
		autoHeightClass: 'owl-height'
	};

	/**
	 * Updates the view.
	 */
	AutoHeight.prototype.update = function() {
		var start = this._core._current,
			end = start + this._core.settings.items,
			lazyLoadEnabled = this._core.settings.lazyLoad,
			visible = this._core.$stage.children().toArray().slice(start, end),
			heights = [],
			maxheight = 0;

		$.each(visible, function(index, item) {
			heights.push($(item).height());
		});

		maxheight = Math.max.apply(null, heights);

		if (maxheight <= 1 && lazyLoadEnabled && this._previousHeight) {
			maxheight = this._previousHeight;
		}

		this._previousHeight = maxheight;

		this._core.$stage.parent()
			.height(maxheight)
			.addClass(this._core.settings.autoHeightClass);
	};

	AutoHeight.prototype.destroy = function() {
		var handler, property;

		for (handler in this._handlers) {
			this._core.$element.off(handler, this._handlers[handler]);
		}
		for (property in Object.getOwnPropertyNames(this)) {
			typeof this[property] !== 'function' && (this[property] = null);
		}
	};

	$.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight;

})(window.Zepto || window.jQuery, window, document);

/**
 * Video Plugin
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;(function($, window, document, undefined) {

	/**
	 * Creates the video plugin.
	 * @class The Video Plugin
	 * @param {Owl} carousel - The Owl Carousel
	 */
	var Video = function(carousel) {
		/**
		 * Reference to the core.
		 * @protected
		 * @type {Owl}
		 */
		this._core = carousel;

		/**
		 * Cache all video URLs.
		 * @protected
		 * @type {Object}
		 */
		this._videos = {};

		/**
		 * Current playing item.
		 * @protected
		 * @type {jQuery}
		 */
		this._playing = null;

		/**
		 * All event handlers.
		 * @todo The cloned content removale is too late
		 * @protected
		 * @type {Object}
		 */
		this._handlers = {
			'initialized.owl.carousel': $.proxy(function(e) {
				if (e.namespace) {
					this._core.register({ type: 'state', name: 'playing', tags: [ 'interacting' ] });
				}
			}, this),
			'resize.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._core.settings.video && this.isInFullScreen()) {
					e.preventDefault();
				}
			}, this),
			'refreshed.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._core.is('resizing')) {
					this._core.$stage.find('.cloned .owl-video-frame').remove();
				}
			}, this),
			'changed.owl.carousel': $.proxy(function(e) {
				if (e.namespace && e.property.name === 'position' && this._playing) {
					this.stop();
				}
			}, this),
			'prepared.owl.carousel': $.proxy(function(e) {
				if (!e.namespace) {
					return;
				}

				var $element = $(e.content).find('.owl-video');

				if ($element.length) {
					$element.css('display', 'none');
					this.fetch($element, $(e.content));
				}
			}, this)
		};

		// set default options
		this._core.options = $.extend({}, Video.Defaults, this._core.options);

		// register event handlers
		this._core.$element.on(this._handlers);

		this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e) {
			this.play(e);
		}, this));
	};

	/**
	 * Default options.
	 * @public
	 */
	Video.Defaults = {
		video: false,
		videoHeight: false,
		videoWidth: false
	};

	/**
	 * Gets the video ID and the type (YouTube/Vimeo/vzaar only).
	 * @protected
	 * @param {jQuery} target - The target containing the video data.
	 * @param {jQuery} item - The item containing the video.
	 */
	Video.prototype.fetch = function(target, item) {
			var type = (function() {
					if (target.attr('data-vimeo-id')) {
						return 'vimeo';
					} else if (target.attr('data-vzaar-id')) {
						return 'vzaar'
					} else {
						return 'youtube';
					}
				})(),
				id = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'),
				width = target.attr('data-width') || this._core.settings.videoWidth,
				height = target.attr('data-height') || this._core.settings.videoHeight,
				url = target.attr('href');

		if (url) {

			/*
					Parses the id's out of the following urls (and probably more):
					https://www.youtube.com/watch?v=:id
					https://youtu.be/:id
					https://vimeo.com/:id
					https://vimeo.com/channels/:channel/:id
					https://vimeo.com/groups/:group/videos/:id
					https://app.vzaar.com/videos/:id

					Visual example: https://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F
			*/

			id = url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);

			if (id[3].indexOf('youtu') > -1) {
				type = 'youtube';
			} else if (id[3].indexOf('vimeo') > -1) {
				type = 'vimeo';
			} else if (id[3].indexOf('vzaar') > -1) {
				type = 'vzaar';
			} else {
				throw new Error('Video URL not supported.');
			}
			id = id[6];
		} else {
			throw new Error('Missing video URL.');
		}

		this._videos[url] = {
			type: type,
			id: id,
			width: width,
			height: height
		};

		item.attr('data-video', url);

		this.thumbnail(target, this._videos[url]);
	};

	/**
	 * Creates video thumbnail.
	 * @protected
	 * @param {jQuery} target - The target containing the video data.
	 * @param {Object} info - The video info object.
	 * @see `fetch`
	 */
	Video.prototype.thumbnail = function(target, video) {
		var tnLink,
			icon,
			path,
			dimensions = video.width && video.height ? 'width:' + video.width + 'px;height:' + video.height + 'px;' : '',
			customTn = target.find('img'),
			srcType = 'src',
			lazyClass = '',
			settings = this._core.settings,
			create = function(path) {
				icon = '<div class="owl-video-play-icon">';

				if (settings.lazyLoad) {
					tnLink = $('<div/>',{
						"class": 'owl-video-tn ' + lazyClass,
						"srcType": path
					});
				} else {
					tnLink = $( '<div/>', {
						"class": "owl-video-tn",
						"style": 'opacity:1;background-image:url(' + path + ')'
					});
				}
				target.after(tnLink);
				target.after(icon);
			};

		// wrap video content into owl-video-wrapper div
		target.wrap( $( '<div/>', {
			"class": "owl-video-wrapper",
			"style": dimensions
		}));

		if (this._core.settings.lazyLoad) {
			srcType = 'data-src';
			lazyClass = 'owl-lazy';
		}

		// custom thumbnail
		if (customTn.length) {
			create(customTn.attr(srcType));
			customTn.remove();
			return false;
		}

		if (video.type === 'youtube') {
			path = "//img.youtube.com/vi/" + video.id + "/hqdefault.jpg";
			create(path);
		} else if (video.type === 'vimeo') {
			$.ajax({
				type: 'GET',
				url: '//vimeo.com/api/v2/video/' + video.id + '.json',
				jsonp: 'callback',
				dataType: 'jsonp',
				success: function(data) {
					path = data[0].thumbnail_large;
					create(path);
				}
			});
		} else if (video.type === 'vzaar') {
			$.ajax({
				type: 'GET',
				url: '//vzaar.com/api/videos/' + video.id + '.json',
				jsonp: 'callback',
				dataType: 'jsonp',
				success: function(data) {
					path = data.framegrab_url;
					create(path);
				}
			});
		}
	};

	/**
	 * Stops the current video.
	 * @public
	 */
	Video.prototype.stop = function() {
		this._core.trigger('stop', null, 'video');
		this._playing.find('.owl-video-frame').remove();
		this._playing.removeClass('owl-video-playing');
		this._playing = null;
		this._core.leave('playing');
		this._core.trigger('stopped', null, 'video');
	};

	/**
	 * Starts the current video.
	 * @public
	 * @param {Event} event - The event arguments.
	 */
	Video.prototype.play = function(event) {
		var target = $(event.target),
			item = target.closest('.' + this._core.settings.itemClass),
			video = this._videos[item.attr('data-video')],
			width = video.width || '100%',
			height = video.height || this._core.$stage.height(),
			html,
			iframe;

		if (this._playing) {
			return;
		}

		this._core.enter('playing');
		this._core.trigger('play', null, 'video');

		item = this._core.items(this._core.relative(item.index()));

		this._core.reset(item.index());

		html = $( '<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen >' );
		html.attr( 'height', height );
		html.attr( 'width', width );
		if (video.type === 'youtube') {
			html.attr( 'src', '//www.youtube.com/embed/' + video.id + '?autoplay=1&rel=0&v=' + video.id );
		} else if (video.type === 'vimeo') {
			html.attr( 'src', '//player.vimeo.com/video/' + video.id + '?autoplay=1' );
		} else if (video.type === 'vzaar') {
			html.attr( 'src', '//view.vzaar.com/' + video.id + '/player?autoplay=true' );
		}

		iframe = $(html).wrap( '<div class="owl-video-frame" />' ).insertAfter(item.find('.owl-video'));

		this._playing = item.addClass('owl-video-playing');
	};

	/**
	 * Checks whether an video is currently in full screen mode or not.
	 * @todo Bad style because looks like a readonly method but changes members.
	 * @protected
	 * @returns {Boolean}
	 */
	Video.prototype.isInFullScreen = function() {
		var element = document.fullscreenElement || document.mozFullScreenElement ||
				document.webkitFullscreenElement;

		return element && $(element).parent().hasClass('owl-video-frame');
	};

	/**
	 * Destroys the plugin.
	 */
	Video.prototype.destroy = function() {
		var handler, property;

		this._core.$element.off('click.owl.video');

		for (handler in this._handlers) {
			this._core.$element.off(handler, this._handlers[handler]);
		}
		for (property in Object.getOwnPropertyNames(this)) {
			typeof this[property] != 'function' && (this[property] = null);
		}
	};

	$.fn.owlCarousel.Constructor.Plugins.Video = Video;

})(window.Zepto || window.jQuery, window, document);

/**
 * Animate Plugin
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;(function($, window, document, undefined) {

	/**
	 * Creates the animate plugin.
	 * @class The Navigation Plugin
	 * @param {Owl} scope - The Owl Carousel
	 */
	var Animate = function(scope) {
		this.core = scope;
		this.core.options = $.extend({}, Animate.Defaults, this.core.options);
		this.swapping = true;
		this.previous = undefined;
		this.next = undefined;

		this.handlers = {
			'change.owl.carousel': $.proxy(function(e) {
				if (e.namespace && e.property.name == 'position') {
					this.previous = this.core.current();
					this.next = e.property.value;
				}
			}, this),
			'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) {
				if (e.namespace) {
					this.swapping = e.type == 'translated';
				}
			}, this),
			'translate.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) {
					this.swap();
				}
			}, this)
		};

		this.core.$element.on(this.handlers);
	};

	/**
	 * Default options.
	 * @public
	 */
	Animate.Defaults = {
		animateOut: false,
		animateIn: false
	};

	/**
	 * Toggles the animation classes whenever an translations starts.
	 * @protected
	 * @returns {Boolean|undefined}
	 */
	Animate.prototype.swap = function() {

		if (this.core.settings.items !== 1) {
			return;
		}

		if (!$.support.animation || !$.support.transition) {
			return;
		}

		this.core.speed(0);

		var left,
			clear = $.proxy(this.clear, this),
			previous = this.core.$stage.children().eq(this.previous),
			next = this.core.$stage.children().eq(this.next),
			incoming = this.core.settings.animateIn,
			outgoing = this.core.settings.animateOut;

		if (this.core.current() === this.previous) {
			return;
		}

		if (outgoing) {
			left = this.core.coordinates(this.previous) - this.core.coordinates(this.next);
			previous.one($.support.animation.end, clear)
				.css( { 'left': left + 'px' } )
				.addClass('animated owl-animated-out')
				.addClass(outgoing);
		}

		if (incoming) {
			next.one($.support.animation.end, clear)
				.addClass('animated owl-animated-in')
				.addClass(incoming);
		}
	};

	Animate.prototype.clear = function(e) {
		$(e.target).css( { 'left': '' } )
			.removeClass('animated owl-animated-out owl-animated-in')
			.removeClass(this.core.settings.animateIn)
			.removeClass(this.core.settings.animateOut);
		this.core.onTransitionEnd();
	};

	/**
	 * Destroys the plugin.
	 * @public
	 */
	Animate.prototype.destroy = function() {
		var handler, property;

		for (handler in this.handlers) {
			this.core.$element.off(handler, this.handlers[handler]);
		}
		for (property in Object.getOwnPropertyNames(this)) {
			typeof this[property] != 'function' && (this[property] = null);
		}
	};

	$.fn.owlCarousel.Constructor.Plugins.Animate = Animate;

})(window.Zepto || window.jQuery, window, document);

/**
 * Autoplay Plugin
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author Artus Kolanowski
 * @author David Deutsch
 * @author Tom De CaluwÃ©
 * @license The MIT License (MIT)
 */
;(function($, window, document, undefined) {

	/**
	 * Creates the autoplay plugin.
	 * @class The Autoplay Plugin
	 * @param {Owl} scope - The Owl Carousel
	 */
	var Autoplay = function(carousel) {
		/**
		 * Reference to the core.
		 * @protected
		 * @type {Owl}
		 */
		this._core = carousel;

		/**
		 * The autoplay timeout id.
		 * @type {Number}
		 */
		this._call = null;

		/**
		 * Depending on the state of the plugin, this variable contains either
		 * the start time of the timer or the current timer value if it's
		 * paused. Since we start in a paused state we initialize the timer
		 * value.
		 * @type {Number}
		 */
		this._time = 0;

		/**
		 * Stores the timeout currently used.
		 * @type {Number}
		 */
		this._timeout = 0;

		/**
		 * Indicates whenever the autoplay is paused.
		 * @type {Boolean}
		 */
		this._paused = true;

		/**
		 * All event handlers.
		 * @protected
		 * @type {Object}
		 */
		this._handlers = {
			'changed.owl.carousel': $.proxy(function(e) {
				if (e.namespace && e.property.name === 'settings') {
					if (this._core.settings.autoplay) {
						this.play();
					} else {
						this.stop();
					}
				} else if (e.namespace && e.property.name === 'position' && this._paused) {
					// Reset the timer. This code is triggered when the position
					// of the carousel was changed through user interaction.
					this._time = 0;
				}
			}, this),
			'initialized.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._core.settings.autoplay) {
					this.play();
				}
			}, this),
			'play.owl.autoplay': $.proxy(function(e, t, s) {
				if (e.namespace) {
					this.play(t, s);
				}
			}, this),
			'stop.owl.autoplay': $.proxy(function(e) {
				if (e.namespace) {
					this.stop();
				}
			}, this),
			'mouseover.owl.autoplay': $.proxy(function() {
				if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
					this.pause();
				}
			}, this),
			'mouseleave.owl.autoplay': $.proxy(function() {
				if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
					this.play();
				}
			}, this),
			'touchstart.owl.core': $.proxy(function() {
				if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
					this.pause();
				}
			}, this),
			'touchend.owl.core': $.proxy(function() {
				if (this._core.settings.autoplayHoverPause) {
					this.play();
				}
			}, this)
		};

		// register event handlers
		this._core.$element.on(this._handlers);

		// set default options
		this._core.options = $.extend({}, Autoplay.Defaults, this._core.options);
	};

	/**
	 * Default options.
	 * @public
	 */
	Autoplay.Defaults = {
		autoplay: false,
		autoplayTimeout: 5000,
		autoplayHoverPause: false,
		autoplaySpeed: false
	};

	/**
	 * Transition to the next slide and set a timeout for the next transition.
	 * @private
	 * @param {Number} [speed] - The animation speed for the animations.
	 */
	Autoplay.prototype._next = function(speed) {
		this._call = window.setTimeout(
			$.proxy(this._next, this, speed),
			this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()
		);

		if (this._core.is('interacting') || document.hidden) {
			return;
		}
		this._core.next(speed || this._core.settings.autoplaySpeed);
	}

	/**
	 * Reads the current timer value when the timer is playing.
	 * @public
	 */
	Autoplay.prototype.read = function() {
		return new Date().getTime() - this._time;
	};

	/**
	 * Starts the autoplay.
	 * @public
	 * @param {Number} [timeout] - The interval before the next animation starts.
	 * @param {Number} [speed] - The animation speed for the animations.
	 */
	Autoplay.prototype.play = function(timeout, speed) {
		var elapsed;

		if (!this._core.is('rotating')) {
			this._core.enter('rotating');
		}

		timeout = timeout || this._core.settings.autoplayTimeout;

		// Calculate the elapsed time since the last transition. If the carousel
		// wasn't playing this calculation will yield zero.
		elapsed = Math.min(this._time % (this._timeout || timeout), timeout);

		if (this._paused) {
			// Start the clock.
			this._time = this.read();
			this._paused = false;
		} else {
			// Clear the active timeout to allow replacement.
			window.clearTimeout(this._call);
		}

		// Adjust the origin of the timer to match the new timeout value.
		this._time += this.read() % timeout - elapsed;

		this._timeout = timeout;
		this._call = window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed);
	};

	/**
	 * Stops the autoplay.
	 * @public
	 */
	Autoplay.prototype.stop = function() {
		if (this._core.is('rotating')) {
			// Reset the clock.
			this._time = 0;
			this._paused = true;

			window.clearTimeout(this._call);
			this._core.leave('rotating');
		}
	};

	/**
	 * Pauses the autoplay.
	 * @public
	 */
	Autoplay.prototype.pause = function() {
		if (this._core.is('rotating') && !this._paused) {
			// Pause the clock.
			this._time = this.read();
			this._paused = true;

			window.clearTimeout(this._call);
		}
	};

	/**
	 * Destroys the plugin.
	 */
	Autoplay.prototype.destroy = function() {
		var handler, property;

		this.stop();

		for (handler in this._handlers) {
			this._core.$element.off(handler, this._handlers[handler]);
		}
		for (property in Object.getOwnPropertyNames(this)) {
			typeof this[property] != 'function' && (this[property] = null);
		}
	};

	$.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay;

})(window.Zepto || window.jQuery, window, document);

/**
 * Navigation Plugin
 * @version 2.3.4
 * @author Artus Kolanowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;(function($, window, document, undefined) {
	'use strict';

	/**
	 * Creates the navigation plugin.
	 * @class The Navigation Plugin
	 * @param {Owl} carousel - The Owl Carousel.
	 */
	var Navigation = function(carousel) {
		/**
		 * Reference to the core.
		 * @protected
		 * @type {Owl}
		 */
		this._core = carousel;

		/**
		 * Indicates whether the plugin is initialized or not.
		 * @protected
		 * @type {Boolean}
		 */
		this._initialized = false;

		/**
		 * The current paging indexes.
		 * @protected
		 * @type {Array}
		 */
		this._pages = [];

		/**
		 * All DOM elements of the user interface.
		 * @protected
		 * @type {Object}
		 */
		this._controls = {};

		/**
		 * Markup for an indicator.
		 * @protected
		 * @type {Array.<String>}
		 */
		this._templates = [];

		/**
		 * The carousel element.
		 * @type {jQuery}
		 */
		this.$element = this._core.$element;

		/**
		 * Overridden methods of the carousel.
		 * @protected
		 * @type {Object}
		 */
		this._overrides = {
			next: this._core.next,
			prev: this._core.prev,
			to: this._core.to
		};

		/**
		 * All event handlers.
		 * @protected
		 * @type {Object}
		 */
		this._handlers = {
			'prepared.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._core.settings.dotsData) {
					this._templates.push('<div class="' + this._core.settings.dotClass + '">' +
						$(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '');
				}
			}, this),
			'added.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._core.settings.dotsData) {
					this._templates.splice(e.position, 0, this._templates.pop());
				}
			}, this),
			'remove.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._core.settings.dotsData) {
					this._templates.splice(e.position, 1);
				}
			}, this),
			'changed.owl.carousel': $.proxy(function(e) {
				if (e.namespace && e.property.name == 'position') {
					this.draw();
				}
			}, this),
			'initialized.owl.carousel': $.proxy(function(e) {
				if (e.namespace && !this._initialized) {
					this._core.trigger('initialize', null, 'navigation');
					this.initialize();
					this.update();
					this.draw();
					this._initialized = true;
					this._core.trigger('initialized', null, 'navigation');
				}
			}, this),
			'refreshed.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._initialized) {
					this._core.trigger('refresh', null, 'navigation');
					this.update();
					this.draw();
					this._core.trigger('refreshed', null, 'navigation');
				}
			}, this)
		};

		// set default options
		this._core.options = $.extend({}, Navigation.Defaults, this._core.options);

		// register event handlers
		this.$element.on(this._handlers);
	};

	/**
	 * Default options.
	 * @public
	 * @todo Rename `slideBy` to `navBy`
	 */
	Navigation.Defaults = {
		nav: false,
		navText: [
			'<span aria-label="' + 'Previous' + '">&#x2039;',
			'<span aria-label="' + 'Next' + '">&#x203a;'
		],
		navSpeed: false,
		navElement: 'button type="button" role="presentation"',
		navContainer: false,
		navContainerClass: 'owl-nav',
		navClass: [
			'owl-prev',
			'owl-next'
		],
		slideBy: 1,
		dotClass: 'owl-dot',
		dotsClass: 'owl-dots',
		dots: true,
		dotsEach: false,
		dotsData: false,
		dotsSpeed: false,
		dotsContainer: false
	};

	/**
	 * Initializes the layout of the plugin and extends the carousel.
	 * @protected
	 */
	Navigation.prototype.initialize = function() {
		var override,
			settings = this._core.settings;

		// create DOM structure for relative navigation
		this._controls.$relative = (settings.navContainer ? $(settings.navContainer)
			: $('<div>').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');

		this._controls.$previous = $('<' + settings.navElement + '>')
			.addClass(settings.navClass[0])
			.html(settings.navText[0])
			.prependTo(this._controls.$relative)
			.on('click', $.proxy(function(e) {
				this.prev(settings.navSpeed);
			}, this));
		this._controls.$next = $('<' + settings.navElement + '>')
			.addClass(settings.navClass[1])
			.html(settings.navText[1])
			.appendTo(this._controls.$relative)
			.on('click', $.proxy(function(e) {
				this.next(settings.navSpeed);
			}, this));

		// create DOM structure for absolute navigation
		if (!settings.dotsData) {
			this._templates = [ $('<button role="button">')
				.addClass(settings.dotClass)
				.append($('<span>'))
				.prop('outerHTML') ];
		}

		this._controls.$absolute = (settings.dotsContainer ? $(settings.dotsContainer)
			: $('<div>').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');

		this._controls.$absolute.on('click', 'button', $.proxy(function(e) {
			var index = $(e.target).parent().is(this._controls.$absolute)
				? $(e.target).index() : $(e.target).parent().index();

			e.preventDefault();

			this.to(index, settings.dotsSpeed);
		}, this));

		/*$el.on('focusin', function() {
			$(document).off(".carousel");

			$(document).on('keydown.carousel', function(e) {
				if(e.keyCode == 37) {
					$el.trigger('prev.owl')
				}
				if(e.keyCode == 39) {
					$el.trigger('next.owl')
				}
			});
		});*/

		// override public methods of the carousel
		for (override in this._overrides) {
			this._core[override] = $.proxy(this[override], this);
		}
	};

	/**
	 * Destroys the plugin.
	 * @protected
	 */
	Navigation.prototype.destroy = function() {
		var handler, control, property, override, settings;
		settings = this._core.settings;

		for (handler in this._handlers) {
			this.$element.off(handler, this._handlers[handler]);
		}
		for (control in this._controls) {
			if (control === '$relative' && settings.navContainer) {
				this._controls[control].html('');
			} else {
				this._controls[control].remove();
			}
		}
		for (override in this.overides) {
			this._core[override] = this._overrides[override];
		}
		for (property in Object.getOwnPropertyNames(this)) {
			typeof this[property] != 'function' && (this[property] = null);
		}
	};

	/**
	 * Updates the internal state.
	 * @protected
	 */
	Navigation.prototype.update = function() {
		var i, j, k,
			lower = this._core.clones().length / 2,
			upper = lower + this._core.items().length,
			maximum = this._core.maximum(true),
			settings = this._core.settings,
			size = settings.center || settings.autoWidth || settings.dotsData
				? 1 : settings.dotsEach || settings.items;

		if (settings.slideBy !== 'page') {
			settings.slideBy = Math.min(settings.slideBy, settings.items);
		}

		if (settings.dots || settings.slideBy == 'page') {
			this._pages = [];

			for (i = lower, j = 0, k = 0; i < upper; i++) {
				if (j >= size || j === 0) {
					this._pages.push({
						start: Math.min(maximum, i - lower),
						end: i - lower + size - 1
					});
					if (Math.min(maximum, i - lower) === maximum) {
						break;
					}
					j = 0, ++k;
				}
				j += this._core.mergers(this._core.relative(i));
			}
		}
	};

	/**
	 * Draws the user interface.
	 * @todo The option `dotsData` wont work.
	 * @protected
	 */
	Navigation.prototype.draw = function() {
		var difference,
			settings = this._core.settings,
			disabled = this._core.items().length <= settings.items,
			index = this._core.relative(this._core.current()),
			loop = settings.loop || settings.rewind;

		this._controls.$relative.toggleClass('disabled', !settings.nav || disabled);

		if (settings.nav) {
			this._controls.$previous.toggleClass('disabled', !loop && index <= this._core.minimum(true));
			this._controls.$next.toggleClass('disabled', !loop && index >= this._core.maximum(true));
		}

		this._controls.$absolute.toggleClass('disabled', !settings.dots || disabled);

		if (settings.dots) {
			difference = this._pages.length - this._controls.$absolute.children().length;

			if (settings.dotsData && difference !== 0) {
				this._controls.$absolute.html(this._templates.join(''));
			} else if (difference > 0) {
				this._controls.$absolute.append(new Array(difference + 1).join(this._templates[0]));
			} else if (difference < 0) {
				this._controls.$absolute.children().slice(difference).remove();
			}

			this._controls.$absolute.find('.active').removeClass('active');
			this._controls.$absolute.children().eq($.inArray(this.current(), this._pages)).addClass('active');
		}
	};

	/**
	 * Extends event data.
	 * @protected
	 * @param {Event} event - The event object which gets thrown.
	 */
	Navigation.prototype.onTrigger = function(event) {
		var settings = this._core.settings;

		event.page = {
			index: $.inArray(this.current(), this._pages),
			count: this._pages.length,
			size: settings && (settings.center || settings.autoWidth || settings.dotsData
				? 1 : settings.dotsEach || settings.items)
		};
	};

	/**
	 * Gets the current page position of the carousel.
	 * @protected
	 * @returns {Number}
	 */
	Navigation.prototype.current = function() {
		var current = this._core.relative(this._core.current());
		return $.grep(this._pages, $.proxy(function(page, index) {
			return page.start <= current && page.end >= current;
		}, this)).pop();
	};

	/**
	 * Gets the current succesor/predecessor position.
	 * @protected
	 * @returns {Number}
	 */
	Navigation.prototype.getPosition = function(successor) {
		var position, length,
			settings = this._core.settings;

		if (settings.slideBy == 'page') {
			position = $.inArray(this.current(), this._pages);
			length = this._pages.length;
			successor ? ++position : --position;
			position = this._pages[((position % length) + length) % length].start;
		} else {
			position = this._core.relative(this._core.current());
			length = this._core.items().length;
			successor ? position += settings.slideBy : position -= settings.slideBy;
		}

		return position;
	};

	/**
	 * Slides to the next item or page.
	 * @public
	 * @param {Number} [speed=false] - The time in milliseconds for the transition.
	 */
	Navigation.prototype.next = function(speed) {
		$.proxy(this._overrides.to, this._core)(this.getPosition(true), speed);
	};

	/**
	 * Slides to the previous item or page.
	 * @public
	 * @param {Number} [speed=false] - The time in milliseconds for the transition.
	 */
	Navigation.prototype.prev = function(speed) {
		$.proxy(this._overrides.to, this._core)(this.getPosition(false), speed);
	};

	/**
	 * Slides to the specified item or page.
	 * @public
	 * @param {Number} position - The position of the item or page.
	 * @param {Number} [speed] - The time in milliseconds for the transition.
	 * @param {Boolean} [standard=false] - Whether to use the standard behaviour or not.
	 */
	Navigation.prototype.to = function(position, speed, standard) {
		var length;

		if (!standard && this._pages.length) {
			length = this._pages.length;
			$.proxy(this._overrides.to, this._core)(this._pages[((position % length) + length) % length].start, speed);
		} else {
			$.proxy(this._overrides.to, this._core)(position, speed);
		}
	};

	$.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation;

})(window.Zepto || window.jQuery, window, document);

/**
 * Hash Plugin
 * @version 2.3.4
 * @author Artus Kolanowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;(function($, window, document, undefined) {
	'use strict';

	/**
	 * Creates the hash plugin.
	 * @class The Hash Plugin
	 * @param {Owl} carousel - The Owl Carousel
	 */
	var Hash = function(carousel) {
		/**
		 * Reference to the core.
		 * @protected
		 * @type {Owl}
		 */
		this._core = carousel;

		/**
		 * Hash index for the items.
		 * @protected
		 * @type {Object}
		 */
		this._hashes = {};

		/**
		 * The carousel element.
		 * @type {jQuery}
		 */
		this.$element = this._core.$element;

		/**
		 * All event handlers.
		 * @protected
		 * @type {Object}
		 */
		this._handlers = {
			'initialized.owl.carousel': $.proxy(function(e) {
				if (e.namespace && this._core.settings.startPosition === 'URLHash') {
					$(window).trigger('hashchange.owl.navigation');
				}
			}, this),
			'prepared.owl.carousel': $.proxy(function(e) {
				if (e.namespace) {
					var hash = $(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');

					if (!hash) {
						return;
					}

					this._hashes[hash] = e.content;
				}
			}, this),
			'changed.owl.carousel': $.proxy(function(e) {
				if (e.namespace && e.property.name === 'position') {
					var current = this._core.items(this._core.relative(this._core.current())),
						hash = $.map(this._hashes, function(item, hash) {
							return item === current ? hash : null;
						}).join();

					if (!hash || window.location.hash.slice(1) === hash) {
						return;
					}

					window.location.hash = hash;
				}
			}, this)
		};

		// set default options
		this._core.options = $.extend({}, Hash.Defaults, this._core.options);

		// register the event handlers
		this.$element.on(this._handlers);

		// register event listener for hash navigation
		$(window).on('hashchange.owl.navigation', $.proxy(function(e) {
			var hash = window.location.hash.substring(1),
				items = this._core.$stage.children(),
				position = this._hashes[hash] && items.index(this._hashes[hash]);

			if (position === undefined || position === this._core.current()) {
				return;
			}

			this._core.to(this._core.relative(position), false, true);
		}, this));
	};

	/**
	 * Default options.
	 * @public
	 */
	Hash.Defaults = {
		URLhashListener: false
	};

	/**
	 * Destroys the plugin.
	 * @public
	 */
	Hash.prototype.destroy = function() {
		var handler, property;

		$(window).off('hashchange.owl.navigation');

		for (handler in this._handlers) {
			this._core.$element.off(handler, this._handlers[handler]);
		}
		for (property in Object.getOwnPropertyNames(this)) {
			typeof this[property] != 'function' && (this[property] = null);
		}
	};

	$.fn.owlCarousel.Constructor.Plugins.Hash = Hash;

})(window.Zepto || window.jQuery, window, document);

/**
 * Support Plugin
 *
 * @version 2.3.4
 * @author Vivid Planet Software GmbH
 * @author Artus Kolanowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;(function($, window, document, undefined) {

	var style = $('<support>').get(0).style,
		prefixes = 'Webkit Moz O ms'.split(' '),
		events = {
			transition: {
				end: {
					WebkitTransition: 'webkitTransitionEnd',
					MozTransition: 'transitionend',
					OTransition: 'oTransitionEnd',
					transition: 'transitionend'
				}
			},
			animation: {
				end: {
					WebkitAnimation: 'webkitAnimationEnd',
					MozAnimation: 'animationend',
					OAnimation: 'oAnimationEnd',
					animation: 'animationend'
				}
			}
		},
		tests = {
			csstransforms: function() {
				return !!test('transform');
			},
			csstransforms3d: function() {
				return !!test('perspective');
			},
			csstransitions: function() {
				return !!test('transition');
			},
			cssanimations: function() {
				return !!test('animation');
			}
		};

	function test(property, prefixed) {
		var result = false,
			upper = property.charAt(0).toUpperCase() + property.slice(1);

		$.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property) {
			if (style[property] !== undefined) {
				result = prefixed ? property : true;
				return false;
			}
		});

		return result;
	}

	function prefixed(property) {
		return test(property, true);
	}

	if (tests.csstransitions()) {
		/* jshint -W053 */
		$.support.transition = new String(prefixed('transition'))
		$.support.transition.end = events.transition.end[ $.support.transition ];
	}

	if (tests.cssanimations()) {
		/* jshint -W053 */
		$.support.animation = new String(prefixed('animation'))
		$.support.animation.end = events.animation.end[ $.support.animation ];
	}

	if (tests.csstransforms()) {
		/* jshint -W053 */
		$.support.transform = new String(prefixed('transform'));
		$.support.transform3d = tests.csstransforms3d();
	}

})(window.Zepto || window.jQuery, window, document);

//--><!]]>
</script></div>
      
    </div>
  </div>
<div id="block-lightboxdtm-2" data-block-plugin-id="block_content:de519932-6899-49c0-b77a-b479b2d8d0f3" class="block block-block-content block-block-contentde519932-6899-49c0-b77a-b479b2d8d0f3">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><script>
<!--//--><![CDATA[// ><!--

    var aliasArgs = "home";
    var aliasArgsSecond = "[current-page:url:args:value:1]";
    var ArgsCount = "1";
    console.log(', node, 6');
    var reportSuitesStr = "wmgneedtobreathe.net,wmgneedtobreatheall,wmgatl,wmg";
    digitalData = {
        settings: {
            reportSuites: "wmgneedtobreathe.net,wmgneedtobreatheall,wmgatl,wmg"
        },
        page: {
            pageInfo: {
                pageName: "needtobreathe:Homepage",
                server: "needtobreathe:Site",
                platform: "Drupal 9",
				devTeam:"WMAS"	

            },

            category: {
                primaryCategory: "needtobreathe:home",
                pageType: "homepage"

            }
        },
        content: {
            artist:"needtobreathe",
			label:"Atlantic Records"
        }
    }
    digitalData.page.pageInfo.server = digitalData.content.artist + ":Site";

    if (ArgsCount == 1) {
        var string = aliasArgs;
        var pageMapping = {
            "news": "News",
            "photo": "Photos",
            "videos": "Videos",
            "music": "Music",
            "tour": "Tour",
            "about": "About",
            "community": "Community",
            "mailing-list": "Mailing List Sign-up",
            "home": "Homepage",
            "not-authorized": "403 Error",
            "page-not-found": "404 Error",
            "user": "Login"

        };
        var pageNameMapping = {
            "news": "News:Landing",
            "photo": "Photos:Landing",
            "videos": "Videos:Landing",
            "music": "Music:Landing",
            "tour": "Tour:Upcoming",
            "about": "About",
            "community": "Community:Landing",
            "mailing-list": "Mailing List Sign-up",
            "home": "home",
            "not-authorized": "Error",
            "page-not-found": "Error",
            "user": "Login"
        };

        digitalData.page.pageInfo.pageName = digitalData.content.artist + ":" + pageMapping[string];
        digitalData.page.category.pageType = pageNameMapping[string];

        switch (string) {
            case "page-not-found":
                digitalData.page.category.primaryCategory = "needtobreathe:Error";
                break;
            case "not-authorized":
                digitalData.page.category.primaryCategory = "needtobreathe:Error";
                break;
            case "home":
                digitalData.page.category.primaryCategory = "needtobreathe:Home";
                digitalData.page.category.pageType = "homepage";
                break;
            default:
                digitalData.page.category.primaryCategory = digitalData.content.artist + ":" + pageMapping[string];
                break;
        }
        if (('Home page'.toLowerCase()) == "page not found") {
            digitalData.page.pageInfo.pageName = digitalData.content.artist + ":404 Error";
            digitalData.page.category.pageType = "Error";
            digitalData.page.category.primaryCategory = digitalData.content.artist + ":Error";
        }
        if (('Home page'.toLowerCase()) == "not authorized") {
            digitalData.page.pageInfo.pageName = digitalData.content.artist + ":403 Error";
            digitalData.page.category.pageType = "Error";
            digitalData.page.category.primaryCategory = digitalData.content.artist + ":Error";
        }
    } else {
        var string = aliasArgs;
        console.log(string);
        var currentPageArgs = ", home";
        var detailPageMapping = {
            "photo": "Photos",
            "video": "Videos",
            "forum topic": "Discussions",
            "album": "Music",
            "forum": "Community",
            "news": "News"
        };
        var detailPageNameMapping = {
            "photo": "Photos:Detail",
            "video": "Videos:Detail",
            "forum topic": "Community:Thread",
            "album": "Music:Album Details",
            "forum": "Community:Landing",
            "news": "News:Article"
        };

        digitalData.page.pageInfo.pageName = digitalData.content.artist + ":" + detailPageMapping[string] + ":Home page";
        digitalData.page.category.primaryCategory = digitalData.content.artist + ":" + detailPageMapping[string];
        digitalData.page.category.pageType = detailPageNameMapping[string];
        if (aliasArgs == "register") {
            digitalData.page.pageInfo.pageName = "needtobreathe:registration";
            digitalData.page.category.primaryCategory = "";
            digitalData.page.category.pageType = "";
        }
        if (aliasArgsSecond == "login") {
            digitalData.page.pageInfo.pageName = "needtobreathe:Login";
            digitalData.page.category.primaryCategory = "needtobreathe:Login";
            digitalData.page.category.pageType = "authentication:login";
        }

        if (currentPageArgs.length !== 0 && currentPageArgs.indexOf("member") !== -1) {
            digitalData.page.pageInfo.pageName = "needtobreathe:Profile";
            digitalData.page.category.primaryCategory = "needtobreathe:Profile";
            digitalData.page.category.pageType = "community:profile";
        }

    }

//--><!]]>
</script></div>
      
    </div>
  </div>
<div id="block-headerhtml79175" data-block-plugin-id="block_content:67cdedcd-51a8-4c12-9c0b-14ea11294ad9" class="block block-block-content block-block-content67cdedcd-51a8-4c12-9c0b-14ea11294ad9">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><style>
<!--/*--><![CDATA[/* ><!--*/

div#block-headerhtml79175 {
    z-index: 1;
    position: relative;
}
div#block-headerhtml {
    display: none;
}
div#nav-items a img {
    width: 4vw;
}
div#nav a#ntbcares-nav img {
    width: 8vw;
}
.hoverImg{
	display: none;
}
div#nav-items a:hover {
    opacity: 0.6;
}
/* div#nav-items a:hover img.hoverImg {
    display: inline;
} */
.NTBtanLogo {
	display: none;
}
body.page-node-366 a#tour-nav img, body.path-music a#music-nav img, body.path-videos a#video-nav img {
	display: none;
}
body.page-node-366 a#tour-nav img.hoverImg, body.path-music a#music-nav img.hoverImg, body.path-videos a#video-nav img.hoverImg {
	display: inline;
}
@media only screen and (max-width: 1023px) {
	div#nav-items a img {
		width: 55px;
	}
	body div#nav{
		background: #ADA392;
	}
	div#nav a#ntbcares-nav img {
		width: 112px;
	}
}

/*--><!]]>*/
</style><div class="header-wrapper">
  <h1 id="site-name" class="site-name site-name-front">
    <a href="/?frontpage=true" title="Home" custom-link-name="LOGO" rel="home" class="active">
	<img src="/sites/g/files/g2000010361/files/2021-04/ntblogonew.png" alt="home" title="home" class="reskin" /><img src="/sites/g/files/g2000010361/files/2021-05/NTB-Logo-Tan.png" alt="home" title="home" class="reskin NTBtanLogo" /></a>
  </h1>
  <div class="nav-wrapper">
    <div id="nav" class="stable sticky">
      <div id="nav-items">
        <a id="tour-nav" href="/tour" class="menu-link">
			<img src="/sites/g/files/g2000010361/files/2021-04/TOUR%402x.png" class="tournav reskinnav" /><img src="/sites/g/files/g2000010361/files/2021-04/TOUR-hover.png" class="tournav reskinnav hoverImg" /></a>
        <a id="music-nav" href="/music" class="menu-link">
			<img src="/sites/g/files/g2000010361/files/2021-04/MUSIC%402x.png" class="musicnav reskinnav" /><img src="/sites/g/files/g2000010361/files/2021-04/MUSIC-hover.png" class="musicnav reskinnav hoverImg" /></a>
        <a id="video-nav" href="/videos" class="menu-link custom">
			<img src="/sites/g/files/g2000010361/files/2021-04/VIDEOS%402x.png" class="videosnav reskinnav" /><img src="/sites/g/files/g2000010361/files/2021-04/VIDEOS-hover.png" class="videosnav reskinnav hoverImg" /></a>
        <a id="store-nav" data-track="enter-store" target="_blank" href="https://www.shopneedco.com/" class="menu-link"><img src="/sites/g/files/g2000010361/files/2021-04/STORE%402x.png" class="storenav reskinnav" /><img src="/sites/g/files/g2000010361/files/2021-04/storenavhover.png" class="storenav reskinnav hoverImg" /></a>
        <a id="ntbcares-nav" target="_blank" href="https://www.needtobreathecares.org/" class="menu-link"><img src="/sites/g/files/g2000010361/files/2021-04/NTB%20CARES.png" class="ntbcaresnav reskinnav" /><img src="/sites/g/files/g2000010361/files/2021-04/NTB%20CARES_hover.png" class="ntbcaresnav reskinnav hoverImg" /></a>
      </div>
    </div>
    <div id="close-wrapper">
      <span id="menu-mob" class="menu-icon">
        <span></span>
        <span></span>
        <span></span>
      </span>
    </div>
  </div>
</div>

</div>
      
    </div>
  </div>
<div id="block-75140changesadminspecific" data-block-plugin-id="block_content:f9d3d91b-5716-4abd-b7ab-a453a67ab9ca" class="block block-block-content block-block-contentf9d3d91b-5716-4abd-b7ab-a453a67ab9ca">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><style>
<!--/*--><![CDATA[/* ><!--*/

    div#block-views-block-home-page-banner-block-1,
    div#block-listenbutton {
        display: none;
    }

/*--><!]]>*/
</style></div>
      
    </div>
  </div>
<div id="block-79175headerblock" data-block-plugin-id="block_content:e46b0c51-2036-4a9a-8d5a-bee9c48d9df3" class="block block-block-content block-block-contente46b0c51-2036-4a9a-8d5a-bee9c48d9df3">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><div class="headerWrapper">
    <div class="bgVideo">
        <div class="video-cnt">
            <div id="video-imag-wrapper">
                <video id="headerVideo" playsinline="" autoplay="autoplay" loop="true" muted="true"><source id="video-src" src="https://d2cstorage-a.akamaihd.net/atl/needtobreathe.net/NTB-ITM-WebsiteTrailer.mp4" playsinline="" type="video/mp4"></source></video></div>
            <div id="header-callout-desktop">
                <img src="/sites/g/files/g2000010361/files/2021-04/NTB_ARCHLOGO_handdrawn.png" class="reskinImg" /><img src="/sites/g/files/g2000010361/files/2021-05/NTB-Arch-Logo-Tan.png" class="reskinImg NTBTanArchImg" /><a href="https://ntb.lnk.to/IntoTheMystery" class="listen-now" target="_blank" custom-link-name="Arch Logo Linkfire"><img src="/sites/g/files/g2000010361/files/2021-05/NTB-Arch-Logo-Tan.png" class="reskinImg NTBTanArchImg1" /></a>
            </div>
            <div id="header-callout-mobile">
                <img src="/sites/g/files/g2000010361/files/2021-04/NTB_ARCHLOGO_handdrawn.png" class="reskinImg" /><img src="/sites/g/files/g2000010361/files/2021-05/NTB-Arch-Logo-Tan.png" class="reskinImg NTBTanArchImg" /><a href="https://ntb.lnk.to/IntoTheMystery" class="listen-now" target="_blank" custom-link-name="Arch Logo Linkfire"><img src="/sites/g/files/g2000010361/files/2021-05/NTB-Arch-Logo-Tan.png" class="reskinImg NTBTanArchImg1" /></a>
            </div>
            <div class="listenbutton">
                <div class="listen-preorder">
                    <a href="https://ntb.lnk.to/ITMpresave" target="_blank" class="listen_button" custom-link-name="Pre-save Into The Mystery Button Linkfire">Pre-Save Into The Mystery</a>
                 <a href="https://ntb.lnk.to/ITMpreorder" target="_blank" class="listen_button preorder_button" custom-link-name="Pre-Order Into The Mystery Button Linkfire">Pre-Order Into The Mystery</a>
	<a href="https://ntb.lnk.to/IntoTheMystery" target="_blank" class="listen_button listen_now " custom-link-name="ITM Stream Button Linkfire">Stream <i>Into The Mystery</i></a>
					<a href="https://www.shopneedco.com/" target="_blank" class="listen_button buy listen_now " custom-link-name="ITM Buy Button">Buy <i>Into The Mystery</i></a>
                </div>
            </div>
        </div>
    </div>
</div>
<style>
<!--/*--><![CDATA[/* ><!--*/

    div#block-79074headerblock {
        display: none;
    }
    
    div#video-imag-wrapper {
        display: none;
    }
    /* body.page-node-1.path-frontpage {
    background: url(/sites/g/files/g2000010361/files/2021-04/NTB-Photo-Desktop.jpg) no-repeat #E1D4C1;
    background-size: cover;
    background-position: center;
} */
    
    .bgVideo {
        font-size: 0;
        display: block;
        margin: 0 auto;
        height: 100vh;
        position: relative;
        overflow: hidden;
    }
    
    video#headerVideo {
        width: 100%;
        display: block;
        width: auto;
        height: auto;
        min-height: 100%;
        min-width: 100%;
        position: absolute;
        top: 50%;
        left: 50%;
        z-index: 0;
        -webkit-transform: translate(-50%, -50%);
        -moz-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        -o-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }
    
    div#header-callout-desktop,
    div#header-callout-mobile {
        position: fixed;
        top: 41%;
        transform: translate(-50%, 0);
        left: 50%;
        width: 26%;
    }
    
    div#header-callout-mobile {
        display: none;
    }
    
    .listenbutton {
        position: absolute;
        transform: translate(-50%, -50%);
        left: 50%;
        top: calc(41% + 13.2vw);
        width: 600px;
    }
    
    button.trigger.visually-hidden.focusable {
        display: none;
    }
    
    .listenbutton .listen-preorder {
        text-align: center;
    }
    
    .listenbutton a.listen_button {
        color: #F7F0DF;
        font-size: 14px;
        background: #D9BA6DE6;
        font-family: "Montserrat", sans-serif;
        padding: 7px 20px;
        border: 1px solid #D9BA6DE6;
        border-radius: 25px;
        text-transform: capitalize;
    }
    
    .listenbutton a.listen_button:hover {
        background: rgba(217, 186, 109, 0.5);
    }
    
	.NTBTanArchImg {
		display: none;
	}
    @media only screen and (max-width:767px) {
        div#header-callout-mobile {
            display: block;
        }
        /* body.page-node-1.path-frontpage {
        background: url(/sites/g/files/g2000010361/files/2021-04/NTB-Photo-Mobile.jpg) no-repeat #E1D4C1;
        background-size: cover;
    } */
    }
    
    @media only screen and (max-width:767px) and (orientation:landscape) {
        .bgVideo {
            height: 300vh;
        }
        .listenbutton {
            top: 75%;
        }
    }
    
    @media only screen and (min-width:1600px) {
        .listenbutton {
            top: calc(41% + 12.5vw);
        }
    }
body.path-frontpage .headerWrapper a  img.NTBTanArchImg1 ,.listenbutton a.listen_button.listen_now {
    display:none;
}

/*--><!]]>*/
</style></div>
      
    </div>
  </div>
<div id="block-listenbutton" data-block-plugin-id="block_content:990d37e1-e70d-4585-b603-ee6a8562c0da" class="block block-block-content block-block-content990d37e1-e70d-4585-b603-ee6a8562c0da">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><div class="listen-preorder">
        <a href="https://ntb.lnk.to/OutOfBody" target="_blank" class="listen_button" custom-link-name="Listen &amp; Pre-Order Button Linkfire (header)">Listen &amp; Pre-Order</a>
      </div>

<style>
<!--/*--><![CDATA[/* ><!--*/

 button.trigger.visually-hidden.focusable {
        display: none;
    }
div#block-listenbutton {
    position: absolute;
    transform: translate(-50%, -50%);
    left: 50%;
    top: 70%;
    width: 300px;
}
div#block-listenbutton .listen-preorder {
    text-align: center;
}
div#block-listenbutton a.listen_button {
    color: #F7F0DF;
    font-size: 14px;
    background: #D9BA6DE6;
font-family: "Montserrat", sans-serif;
    padding: 7px 20px;
    border: 1px solid #D9BA6DE6;
    border-radius: 25px;
    text-transform: capitalize;
}
div#block-listenbutton a.listen_button:hover {
background: rgba(217, 186, 109, 0.5);
}

/*--><!]]>*/
</style></div>
      
    </div>
  </div>
<div id="block-consolidatedcss" data-block-plugin-id="block_content:2ee2dd49-d8e6-4bb5-95db-777100b750a6" class="block block-block-content block-block-content2ee2dd49-d8e6-4bb5-95db-777100b750a6">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><style>
<!--/*--><![CDATA[/* ><!--*/

    html {
        height: auto;
        min-height: 100%;
    }
    
    .owl-prev.disabled,
    .owl-next.disabled {
        pointer-events: none;
        opacity: 0.5;
    }
    
    .TourWrapper .widget_row>div.no-dates {
        width: 100%;
        padding: 0px;
        text-align: center;
        font-family: "Montserrat", sans-serif;
        font-weight: 400;
    }
    
    div#block-consolidatedcss {
        display: none;
    }
    
    body {
        background: #BEB2A0;
        padding: 0px !important;
        margin: 0px !important;
        font-family: "Montserrat", sans-serif;
    }
    
    body.page-node-1 {
        height: 100vh;
    }
    
    body,
    body a,
    body div,
    body p,
    body section,
    body article,
    body footer,
    body h2,
    body h1,
    body span {
        color: #afccb0;
    }
    
    header#header {
        position: relative;
    }
    
    #page,
    #main-wrapper,
    .region-primary-menu .menu-item a.is-active,
    .region-primary-menu .menu-item--active-trail a {
        background: transparent;
    }
    
    .globaloptin input[type="checkbox"]:focus+label::before {
        outline: none;
    }
    
    div#toolbar-administration {
        display: none;
    }
    
    #page #header {
        position: relative;
    }
    
    body .region-header .block {
        float: none;
    }
    
    .header-wrapper {
        font-size: 0px;
        position: fixed;
        top: 0px;
        width: 95.5%;
        padding: 2.25% 2.25% 0 2.25% !important;
    }
    
    h1#site-name {
        padding: 0px;
        margin: 0px;
        text-align: left;
        width: 30%;
    }
    
    h1#site-name img {
        width: 62%;
    }
    
    body .site-footer .layout-container {
        padding: 0;
    }
    
    .header-wrapper>h1,
    .header-wrapper .nav-wrapper {
        display: inline-block;
        font-size: 12px;
        vertical-align: middle;
    }
    
    .header-wrapper .nav-wrapper {
        text-align: right;
        width: 70%;
    }
    
    #header .region-header .block:not(.site-branding)#block-headerhtml {
        z-index: 1;
        position: relative;
    }
    
    div#nav a {
        text-transform: uppercase;
        color: #5C5852;
        font-size: 1.2vw;
        margin-right: 3%;
        font-family: "Montserrat", sans-serif;
        font-weight: 600;
    }
    
    div#nav a:last-child {
        margin: 0px;
    }
    
    div#mob-header-image {
        display: none;
    }
    
    div#block-views-block-home-page-banner-block-1 {
        height: 99.9vh;
        position: relative;
        z-index: 0;
        overflow: hidden;
    }
    
    div#header-callout-desktop,
    div#header-callout-mobile {
        position: fixed;
        top: 41%;
        transform: translate(-50%, 0);
        left: 50%;
        width: 26%;
    }
    
    div#header-callout-mobile {
        display: none;
    }
    
    div#header-callout-mobile img,
    div#header-callout-desktop img {
        width: 100%;
    }
    
    ul.header-banner-wrapper img {
        width: 100%;
    }
    
    body.page-node-1 div#main-wrapper {
        display: none;
    }
    
    div#footer-block {
        position: fixed;
        top: 50%;
        right: 1%;
        width: 3%;
       transform: translate(0% ,-50%);
       font-size: 0;
    }
    div#footer-block .social-icons-new a:last-child {
         margin-bottom: 0;
        display:block;
     }
    div#footer-block a span {
        font-size: 1.5vw;
        color: #afccb0;
    }
.footerlogo {
    text-align: left;
}    
    .social-icons a {
        margin-bottom: 48%;
        display: inline-block;
    }
    
    body footer.site-footer {
        background: transparent;
        padding: 0px;
        margin: 0px;
        position: fixed;
        bottom: 3.5%;
        width: 100%;
    }
    
    body .layout-container {
        width: 100%;
        max-width: 100%;
    }
    
    div#block-footer {
        margin: 0px;
        padding: 0px;
    }
    
    .site-footer .block {
        margin: 0px;
        padding: 0px;
        border: 0px;
    }
    
    div#block-plainjsmailinglist {
        width: 95.5%;
        padding: 0;
        margin: 0 auto;
    }
    
    .footerblockWrapper {
        font-size: 0px;
        text-align:center;
    }
    
    .footerblockWrapper>div {
        display: inline-block;
        vertical-align: bottom;
        font-size: 12px;
    }
    
    p.message-description {
        display: none;
    }
    
    .footerlogo {
        width: 15%;
    }
    /* .footerlogo img {
        max-width: 36%;
    } */
    
    .copyrightblock {
        width: 55%;
        margin-right: 5%;
    }
    
    .site-footer .copyrightblock span,
    .site-footer .copyrightblock span a {
        font-family: "MarkusLow W05 Regular" !important;
        color: #dcdad1;
        font-size: 0.9vw;
    }
    
    .copyrightblock a.ot-sdk-show-settings {
        display: inline;
    }
    
    nav.tabs {
        display: none;
    }
    
    body div#firstMlistForm {
        width: 25%;
    }
    
    body div#mlform>div,
    body div#mlform>form {
        display: inline-block;
        vertical-align: bottom;
    }
    
    body div#mlform>div {
        width: 11%;
        margin-left: 2%;
    }
    
    body form#mlistFormOne {
        width: 86%;
        font-size: 0px;
    }
    
    body form#mlistFormOne>div {
        display: inline-block;
        vertical-align: bottom;
        margin: 0px;
        width: 73%;
    }
    
    form#mlistFormOne>div.submit {
        width: 23%;
        margin-left: 4%;
    }
    
    body .email.fieldWrap label {
        display: none;
    }
    
    body #mlform input#email {
        border-width: 0px 0px 1px 0px;
        text-align: left;
        padding: 0px 4% 0px;
        font-style: normal;
        font-family: "MarkusLow W05 Regular";
        color: #5C5852;
        font-size: 1vw;
        border-color: #5C5852;
        height: 2vw;
    }
    
    body input#submit {
        background: transparent;
        color: #5C5852;
        font-size: 1.1vw;
        margin-right: 0;
        font-family: "Montserrat", sans-serif;
        text-transform: uppercase;
        padding: 0px;
        height: initial;
        line-height: 1;
    }
    
    body #block-plainjsmailinglist span.input-error {
        top: -51%;
        background: transparent;
        height: auto;
        bottom: auto;
        font-size: 0.8vw;
        left: 0px;
    }
body.path-frontpage #mlform input#email.errored {
    border-color: #ff0000;
}

body #block-plainjsmailinglist span.input-error {
    color: #ff0000;
}    
    body #mlform .terms:hover,
    body #secondform .terms:hover {
        text-decoration: underline;
    }
    
    body #mlform .terms,
    body #secondform .terms {
        color: #5C5852;
        font-size: 0.8vw;
    }
    
    body .plain-ml-wrapper #terms {
        position: static;
    }
    
    #block-plainjsmailinglist .plain-ml-wrapper p.terms-message-2 a,
    #block-plainjsmailinglist .plain-ml-wrapper p.terms-message a {
        color: #5C5852;
        text-decoration: underline;
    }
    
    body div.plain-ml-wrapper span#secondFormClose {
        right: 3%;
    }
    
    body div#thankyou {
        color: #afccb0;
    }
    
    body #secondform label.goptin_checkbox {
        font-size: 0.7vw;
        line-height: 2;
    }
    
    body #secondform .birth-date-title {
        font-size: 1vw;
    }
    
    body .plain-ml-wrapper p.terms-message-2,
    body .plain-ml-wrapper p.terms-message {
        font-size: 0.7vw;
        margin: 0px;
        bottom: 1.5vw;
        padding: 2%;
        box-sizing: border-box;
        width: 96%;
    }
    
    body div#mlform {
        padding: 0px;
    }
    
    .fadeOut {
        display: none !important;
    }
    
    body .globaloptin label::before {
        width: 1vw;
        height: 1vw;
    }
    
    body .plain-ml-wrapper #secondform input[name="goptin"] {
        width: 1.5vw;
    }
    
    body .globaloptin label:after {
        width: 0.5vw;
        height: 0.25vw;
        top: 0.35vw;
        left: 0.25vw;
    }
    
    body #mlform #terms .terms-message,
    body #secondform #terms .terms-message {
        width: 100%;
        left: 0px;
        padding: 2%;
        box-sizing: border-box;
        color: #5C5852;
        background: #fff;
        line-height: 1.5;
    }
    
    body #block-plainjsmailinglist #mlform p.terms-message a,
    body #block-plainjsmailinglist .singleform p.terms-message a,
    body #tklbContainer #mlform p.terms-message a,
    body #tklbContainer .singleform p.terms-message a {
        color: #5C5852;
    }
    
     ::-webkit-input-placeholder {
        /* Edge */
        color: #5C5852;
        -webkit-text-fill-color: #5C5852;
        opacity: 1;
    }
    
     :-ms-input-placeholder {
        /* Internet Explorer 10-11 */
        color: #afccb0;
        -webkit-text-fill-color: #5C5852;
        opacity: 1;
    }
    
     ::placeholder {
        color: #5C5852;
        -webkit-text-fill-color: #5C5852;
        opacity: 1;
    }
    
    input:-webkit-autofill,
    input:-webkit-autofill:hover,
    input:-webkit-autofill:focus,
    textarea:-webkit-autofill,
    textarea:-webkit-autofill:hover,
    textarea:-webkit-autofill:focus,
    select:-webkit-autofill,
    select:-webkit-autofill:hover,
    select:-webkit-autofill:focus {
        border: 0px;
        border-bottom: 1px solid #5C5852;
        -webkit-text-fill-color: #5C5852;
        -webkit-box-shadow: 0 0 0 1000px transparent inset;
        transition: background-color 5000s ease-in-out 0s;
    }
    
    div#secondform {
        position: absolute;
        bottom: 0px;
        background: #BEB2A0;
        padding: 2%;
        box-sizing: border-box;
        z-index: 1;
    }
    
    body #secondform input:not([type="submit"]),
    body #secondform select {
        font-size: 0.85vw;
        border: 0px;
        height: 2vw;
        border-bottom: 1px solid #5C5852;
        ;
        color: #5C5852;
        ;
    }
    
    body #secondform .welcome {
        font-size: 1.25vw;
    }
    
    #secondform .submit {
        margin-top: 1%;
        margin-bottom: 2%;
    }
    
    div#desktop-header-image img,
    div#mob-header-image img {
        object-fit: cover;
        height: 100vh;
    }
    
    body a:active,
    body a:hover,
    body input#submit:hover {
        opacity: 1;
        transform: none;
    }
    
    div#nav a:hover,
    div#footer-block a span:hover,
    body input#submit:hover,
    body #block-plainjsmailinglist #mlform p.terms-message a:hover,
    body #block-plainjsmailinglist .singleform p.terms-message a:hover,
    body #tklbContainer #mlform p.terms-message a:hover,
    body #tklbContainer .singleform p.terms-message a:hover,
    body .site-footer .content a:hover,
    body .site-footer .content a:focus {
        color: #E1D4C1;
    }
    
    #block-plainjsmailinglist .plain-ml-wrapper p.terms-message-2 a:hover,
    #block-plainjsmailinglist .plain-ml-wrapper p.terms-message a:hover {
        text-decoration: none;
    }
    
    #block-plainjsmailinglist .plain-ml-wrapper p.terms-message-2,
    #block-plainjsmailinglist .plain-ml-wrapper p.terms-message {
        background: #F7F0DF;
    }
    
    body div.plain-ml-wrapper span#secondFormClose:hover {
        color: #E1D4C1;
opacity: 0.5;
    }
body input#submit {
cursor: pointer;
}
    
    #block-plainjsmailinglist option {
        background: #BEB2A0;
    }
    
    .owl-carousel {
        z-index: 0;
    }
    
    body .plain-ml-wrapper #terms {
        line-height: 1;
    }
    
    body #block-plainjsmailinglist #mlform p.terms-message a:hover {
        text-decoration: none;
        color: #5C5852;
        opacity: 0.6;
    }
    .footertanLogo {
		display: none;
	}
    @media only screen and (max-width: 1023px) {
        div#nav {
            position: fixed;
            width: 100%;
            left: 0px;
            min-height: 100vh;
            top: 0px;
            height: 100%;
            background: #E1D4C1;
            color: #d9ba6d;
            display: none;
        }
        div#nav-items {
            width: 40%;
            margin: 0 auto;
            text-align: center;
        }
        div#nav-items a {
            display: block;
            text-align: center;
            margin-bottom: 4vh;
            font-size: 3vh;
            color: #d9ba6d;
            margin-right: 0px;
        }
        .footerlogo {
            width: 100%;
            text-align: center;
            margin: 2vh 0 5vh;
        }
        .social-icons {
            text-align: center;
        }
        a#tour-nav {
            margin-top: 13vh;
        }
        .social-icons a span {
            display: inline-block;
            margin: 6vh 0px 0px;
            font-size: 4vw;
        }
        div#nav .social-icons a {
            margin-bottom: 0px;
            margin-right: 5%;
        }
        .social-icons a {
            margin-right: 8%;
        }
        div#close-wrapper {
            cursor: pointer;
            position: relative;
            height: 3.5vw;
        }
        .header-wrapper {
            width: 84%;
            padding: 8% !important;
        }
        h1#site-name {
            width: 88%;
        }
        h1#site-name img {
            width: 66%;
        }
        .header-wrapper .nav-wrapper {
            width: 12%;
        }
        span#menu-mob:before,
        div#header-callout-desktop,
        div#desktop-header-image {
            display: none;
        }
        div#header-callout-mobile,
        div#mob-header-image {
            display: block;
        }
        .nav-wrapper {
            margin-right: 0;
        }
        span#menu-mob {
            display: inline-block;
        }
        span#menu-mob span:nth-child(1) {
            top: -0.9vw;
        }
        span#menu-mob span {
            transition-duration: 0.5s;
            position: absolute;
            height: 0.25vw;
            width: 100%;
            left: 0;
            border-radius: 0;
            background-color: #5C5852;
        }
        span#menu-mob span:nth-child(2) {
            top: 1vw;
        }
        span#menu-mob span:nth-child(3) {
            top: 3.1vw;
        }
        span#menu-mob.cross-icon span:nth-child(3) {
            top: 11px;
            -webkit-transform: rotateZ(-35deg) translate(1px, -3px);
            transform: rotateZ(-35deg) translate(1px, -3px);
            left: 6px;
            opacity: 0;
        }
        span#menu-mob.cross-icon span:nth-child(2) {
            top: 6px;
            top: 11px;
            -webkit-transform: rotateZ(-35deg) translate(1px, -3hpx);
            transform: rotateZ(-35deg) translate(1px, -3px);
            left: 6px;
        }
        span#menu-mob.cross-icon span:nth-child(1) {
            top: -7px;
            -webkit-transform: rotateZ(35deg) translate(8px, 12px);
            transform: rotateZ(35deg) translate(8px, 12px);
            left: 6px;
        }
        body .footerblockWrapper>div.footerlogo {
            display: none;
        }
        .footerblockWrapper>div,
        body div#firstMlistForm {
            display: block;
            width: 100%;
        }
        body div#firstMlistForm {
            order: 1;
            max-width: 88%;
            margin: 0 auto 3%;
        }
        .footerblockWrapper>div {
            order: 2;
        }
        .footerblockWrapper {
            display: flex;
            flex-wrap: wrap;
        }
        body.page-node-1 {
            margin: 0 auto !important;
            overflow: hidden;
            height: auto;
        }
        .copyrightblock {
            text-align: center;
        }
        .site-footer .copyrightblock span,
        .site-footer .copyrightblock span a {
            font-size: 2.25vw;
        }
        .copyrightblock a.ot-sdk-show-settings {
            display: block;
        }
        body footer.site-footer {
            bottom: 0px;
        }
        .copyrightblock {
            text-align: center;
            padding: 1.6vh 0px;
            background: #848164;
        }
        div#block-plainjsmailinglist {
            width: 100%;
        }
        body div#mlform>div,
        body div#mlform>form {
            display: block;
            width: 100%;
            text-align: left;
        }
        body #mlform .terms,
        body #secondform .terms {
            font-size: 3vw;
            line-height: 1;
        }
        body div#mlform>form {
            margin-bottom: 3%;
        }
        body form#mlistFormOne>div {
            width: 78%;
        }
        form#mlistFormOne>div.submit {
            width: 20%;
            margin-left: 2%;
        }
        body #mlform input#email {
            height: 7vw;
            line-height: 4vw;
            font-size: 16px;
            padding-left: 2%;
        }
        body input#submit {
            font-size: 4vw;
        }
        body #secondform .welcome {
            font-size: 3vw;
        }
        body #secondform input:not([type="submit"]),
        body #secondform select {
            height: 7vw;
            line-height: 16px;
            font-size: 16px;
        }
        body #secondform .birth-date-title {
            font-size: 3vw;
        }
        body #secondform label.goptin_checkbox {
            font-size: 1.7vw;
            line-height: 2;
        }
        body .globaloptin label::before {
            width: 2vw;
            height: 2vw;
        }
        body .globaloptin label:after {
            width: 0.5vw;
            height: 0.25vw;
            top: 1.35vw;
            left: 0.75vw;
        }
        body .plain-ml-wrapper #secondform input[name="goptin"] {
            width: 2.5vw;
        }
        body .plain-ml-wrapper p.terms-message-2,
        body .plain-ml-wrapper p.terms-message {
            bottom: 5.5vw;
            font-size: 2vw;
        }
        .site-footer__top .region:nth-child(2n + 1) {
            padding: 0px !important;
        }
        input,
        textarea,
        select {
            border-radius: 0px;
            -webkit-appearance: none;
        }
        body #secondform label.goptin_checkbox {
            font-size: 2vw;
            line-height: 1;
        }
        div#thankyou {
            width: 100%;
            font-size: 6vw;
        }
        body #block-plainjsmailinglist span.input-error {
            top: -22%;
            font-size: 2vw;
        }
        div#footer-block {
            display: none;
        }
    }
    
    @media only screen and (max-width: 1023px) and (orientation: portrait) {
        div#header-callout-mobile {
            width: 19vh;
            top: 28vh;
        }
    }
    
    @media only screen and (max-width: 1023px) and (orientation: landscape) {
        h1#site-name img {
            width: 55%;
        }
        div#secondform {
            height: 59vh;
            overflow-x: hidden;
            overflow-y: scroll;
        }
        .header-wrapper {
            width: 88%;
            padding: 3% 6% !important;
        }
        body div#firstMlistForm {
            width: 94%;
        }
        .footerlogo img {
            max-width: 22%;
        }
        .footerlogo {
            margin: 2vh 0 4vh;
        }
        body.page-node-1,
        div#block-views-block-home-page-banner-block-1,
        div#mob-header-image img,
        div#secondform {
            height: auto;
        }
        body.page-node-1 {
            position: relative;
            overflow-y: visible;
        }
        body footer.site-footer {
            bottom: 0px;
            position: absolute;
        }
        div#header-callout-mobile {
            position: absolute;
        }
        div#mob-header-image {
            font-size: 0px;
        }
    }
    
    .messages__wrapper.layout-container,
    div#block-pushpacss {
        display: none;
    }
    
    body.nav-clicked {
        overflow: hidden !important;
    }
    
    @media only screen and (min-width: 1024px) {
        div#block-footer {
            display: none;
        }
        .page-node-1 div#block-footer {
            display: block;
        }
    }
    
    .content .field__label {
        display: none;
    }
    
    div#block-bartik-page-title,
    div#block-bartik-local-tasks {
        display: none;
    }
    
    .node--unpublished {
        background-color: transparent;
        padding: 0;
    }
    
    body.page-node-366 a#tour-nav {
        color: #d9ba6d;
    }
    
    .TourWrapper .widget_row {
        font-family: "Montserrat", sans-serif;
        color: #f7f0df;
        border-bottom: 0;
        font-size: 1.2vw;
        padding: 1.3vw 0;
        font-weight: 600;
    }
    
    .TourWrapper .songkick-container .plain_text,
    .TourWrapper a {
        font-family: "Montserrat", sans-serif;
        color: #f7f0df !important;
    }
    
    .TourWrapper {
        max-width: 56%;
        margin: 0 auto;
        max-width: 56vw;
        position: relative;
        height: 99vh;
       z-index:0;
    }
    
    .TourInnerWrap {
        position: absolute;
        width: 100%;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    
    .month.plain_text {
        text-transform: uppercase;
    }
    
    .TourWrapper .widget_row div.event_date {
        width: 11%;
    }
    
    .TourWrapper .widget_row>div {
        padding-left: 5%;
        width: 43%;
    }
    
    .featuring-artists.plain_text {
        display: none;
    }
    
    .TourWrapper .widget_row .event_links {
        width: 50%;
        text-align: right;
    }
    
    .TourWrapper .widget_row .event_links a {
        display: inline-block;
        background: #d9ba6db3 !important;
        padding: 0;
        vertical-align: top;
        text-align: center;
        text-transform: none;
        width: 9.2vw;
        height: 3.6vw;
        line-height: 3.6vw;
        margin-right: 0;
        border: 0.1vw solid #d9ba6db3 !important;
    }
    
    .TourWrapper .widget_row .event_links a.additional_link {
        background: transparent !important;
        margin-left: 0.7vw !important;
    }
    
    .TourWrapper .widget_row .event_links a.additional_link.no-link {
        display: none;
    }
    
    .TourWrapper .widget_row .event_links a:last-child {
        margin: 0;
    }
    
    .messages__wrapper.layout-container {
        display: none;
    }
    
    .node__content,
    .block .content {
        margin-top: 0;
    }
    
    .owl-carousel .owl-nav .owl-prev,
    .owl-carousel .owl-nav .owl-next {
        position: absolute;
        top: 45%;
        font-family: "icomoon" !important;
        speak: none;
        font-style: normal;
        font-weight: normal;
        font-variant: normal;
        text-transform: none;
        line-height: 1;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        font-size: 0;
    }
    
    .owl-carousel .owl-nav .owl-prev {
        left: -20%;
    }
    
    .owl-carousel .owl-nav .owl-next {
        left: auto;
        right: -20%;
    }
    
    .owl-carousel .owl-nav .owl-prev:after,
    .owl-carousel .owl-nav .owl-next:after {
        content: "\e904";
        font-size: 2.5vw;
        color: #f7f0df;
    }
    
    .owl-carousel .owl-nav .owl-next:after {
        content: "\e902";
    }
    
    .TourWrapper .venue.plain_text {
        font-family: "MarkusLow W05 Regular" !important;
    }
    
    .owl-carousel .owl-nav .owl-prev:hover:after,
    .owl-carousel .owl-nav .owl-next:hover:after {
        color: #d9ba6d;
    }
    
    .site-footer__top .region:nth-child(2n + 1) {
        padding-right: 0 !important;
    }
    
    .TourWrapper .widget_row .event_links a:hover {
        border: 0.1vw solid #d9ba6db3 !important;
        background: transparent !important;
    }
    
    .TourWrapper .widget_row .event_links a.additional_link:hover {
        border: 0.1vw solid #d9ba6db3 !important;
        background: #d9ba6db3 !important;
    }
    
    .special-event.plain_text {
        font-weight: 500;
    }
    
    .venue.plain_text {
        font-weight: 500;
    }
    
    @media only screen and (min-width: 1024px) {
        div#nav {
            display: block !important;
        }
    }
    
    @media only screen and (max-width: 1023px) {
        a#insiders-nav {
            display: none !important;
        }
        .TourWrapper .widget_row {
            font-size: 4vw;
            padding: 20px 0;
            display: block;
        }
        .TourWrapper {
            max-width: 85vw;
            padding: 50px 0 30px;
        }
        .TourWrapper .widget_row .event_links {
            display: block;
            width: 100%;
            float: none;
            position: static;
            top: auto;
            transform: none;
            text-align: center;
            padding-top: 20px;
            padding-left: 0px;
        }
        .owl-carousel {
            display: block !important;
        }
        .TourWrapper .widget_row div.event_location {
            display: inline-block;
            width: 60%;
            vertical-align: top;
            float: none;
        }
        .TourWrapper .widget_row div.event_date {
            width: 33%;
        }
        .TourWrapper .widget_row .event_links a {
            border: 0.35vw solid #d9ba6db3 !important;
            width: 34vw;
            line-height: 11vw;
            height: 11vw;
            margin: 0px;
            box-sizing: border-box;
        }
        .TourWrapper .widget_row .event_links a:hover,
        .TourWrapper .widget_row .event_links a.additional_link:hover {
            border: 0.35vw solid #d9ba6db3 !important;
        }
        .owl-carousel .owl-nav .owl-prev {
            left: -6%;
        }
        .owl-carousel .owl-nav .owl-next {
            left: auto;
            right: -6%;
        }
        .owl-carousel .owl-nav .owl-prev:after,
        .owl-carousel .owl-nav .owl-next:after {
            font-size: 6.5vw;
        }
        .TourWrapper .widget_row .event_links a.additional_link.link_text.link_background {
            margin-left: 3% !important;
        }
        body.page-node-366 .header-wrapper {
            position: static;
        }
        body.page-node-366 footer.site-footer {
            position: relative;
            bottom: 0;
        }
        .owl-nav {
            display: none;
        }
        div.TourWrapper {
            height: auto;
            overflow-y: auto;
            padding: 0 0 0;
        }
         ::-webkit-scrollbar {
            width: 4px;
        }
        /* Track */
         ::-webkit-scrollbar-track {
            box-shadow: inset 0 0 5px grey;
            border-radius: 10px;
        }
        /* Handle */
         ::-webkit-scrollbar-thumb {
            background: rgba(255, 255, 255, 0.55);
            border-radius: 2px;
        }
        /*.android-device div.TourWrapper {
      height: 65vh;
    }*/
        .TourInnerWrap {
            position: static;
            top: auto;
            left: auto;
            transform: none;
        }
        .TourWrapper {
            height: auto;
        }
        .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
        .mCSB_scrollTools .mCSB_draggerRail {
            margin-left: auto;
            margin-right: 0px;
        }
        body.page-node-366 a#tour-nav {
            color: #afccb0;
        }
        .owl-carousel {
            z-index: 0;
        }
    }
    
    @media only screen and (max-width: 1023px) and (orientation: landscape) {
        body.page-node-366 footer.site-footer {
            position: relative;
            bottom: 0;
        }
        body.page-node-366 .layout-main-wrapper {
            padding-bottom: 6%;
            min-height: auto;
        }
        .TourWrapper .widget_row .event_links a {
            line-height: 10vw;
            height: 10vw;
        }
        .TourWrapper .widget_row {
            font-size: 3vw;
        }
        div.TourWrapper {
            height: 70vh !important;
        }
    }

/*--><!]]>*/
</style><script>
<!--//--><![CDATA[// ><!--

    function setScroll() {
        if (window.innerWidth <= 1023) {
            jQuery(".path-music #block-bartik-content").css(
                "height",
                jQuery(window).height() -
                (20 +
                    jQuery("header#header").outerHeight() +
                    jQuery("footer.site-footer").outerHeight())
            );
        }
    }
    window.addEventListener("load", function(event) {
        setScroll();
    });
    jQuery(window).resize(function() {
        setScroll();
    });

//--><!]]>
</script></div>
      
    </div>
  </div>
<div id="block-79074admincss" data-block-plugin-id="block_content:881390cd-0457-4a92-9dda-a5d9eb2bc5c3" class="block block-block-content block-block-content881390cd-0457-4a92-9dda-a5d9eb2bc5c3">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><style>
<!--/*--><![CDATA[/* ><!--*/

    body div#nav a,
    .main-content h2,
    .page-node-type-miscellaneous-pages .page-not-found-content,
    .page-node-type-miscellaneous-pages .not-authorized-content {
        color: #5C5852;
    }
    
    div#nav a {
        font-weight: 400;
    }
    
    body.page-node-366 a#tour-nav,
    body.path-music a#music-nav,
    body.path-videos a#video-nav,
    .link-wrapper a {
        color: #E1D4C1 !important;
    }
    
    body,
    body.path-music,
    body.path-videos,
    body.page-node-111,
    body.page-node-116,
    body.page-node-391 {
        background: url(/sites/g/files/g2000010361/files/2021-04/InteriorBgNew-min.png) no-repeat #a79883;
        background-size: cover;
    }
    
    body.page-node-1 {
        background: url(/sites/g/files/g2000010361/files/2021-08/backgroundnew_min.jpg) no-repeat #E1D4C1;
        background-size: cover;
    }
    
    .header-wrapper {
        padding: 2.25% 2.25% 0 2% !important;
    }
    
    .site-footer .copyrightblock span,
    .site-footer .copyrightblock span a,
    div#footer-block a span,
    body input#submit,
    body #mlform .terms,
    body #secondform .terms,
    body #block-plainjsmailinglist #mlform p.terms-message a,
    body #block-plainjsmailinglist .singleform p.terms-message a,
    body #tklbContainer #mlform p.terms-message a,
    body #tklbContainer .singleform p.terms-message a,
    body,
    body a,
    body div,
    body p,
    body section,
    body article,
    body footer,
    body h2,
    body h1,
    body span,
    body div#thankyou {
        color: #5C5852;
    }
    
    div#nav a:hover,
    div#footer-block a span:hover,
    body input#submit:hover,
    body #block-plainjsmailinglist #mlform p.terms-message a:hover,
    body #block-plainjsmailinglist .singleform p.terms-message a:hover,
    body #tklbContainer #mlform p.terms-message a:hover,
    body #tklbContainer .singleform p.terms-message a:hover,
    body .site-footer .content a:hover,
    body .site-footer .content a:focus {
        color: #E1D4C1;
    }
    
    body.page-node-1 div#nav a:hover,
    body.page-node-1 div#footer-block a span:hover,
    body.page-node-1 input#submit:hover,
    body.page-node-1 #block-plainjsmailinglist #mlform p.terms-message a:hover,
    body.page-node-1 #block-plainjsmailinglist .singleform p.terms-message a:hover,
    body.page-node-1 #tklbContainer #mlform p.terms-message a:hover,
    body.page-node-1 #tklbContainer .singleform p.terms-message a:hover,
    body.page-node-1 .site-footer .content a:hover,
    body.page-node-1 .site-footer .content a:focus {
        color: #5C5852;
        opacity: 0.6;
    }
    
    .listenbutton a.listen_button {
        color: #E1D4C1;
        background: #5C5852;
    }
    
    .listenbutton a.listen_button:hover {
        background: rgba(92, 88, 82, 0.5);
    }
    
    .TourWrapper .songkick-container .plain_text,
    .TourWrapper a {
        color: #E1D4C1 !important;
    }
    
    .TourWrapper .songkick-container .event_location .plain_text {
        color: #5C5852 !important;
    }
    
    .TourWrapper .widget_row .event_links a {
        background: #5C5852 !important;
        border: 0.1vw solid #5C5852 !important;
        color: #E1D4C1 !important;
        font-weight: 400;
    }
    
    .TourWrapper .widget_row .event_links a:hover {
        border: 0.1vw solid #5C5852 !important;
        background: transparent !important;
    }
    
    .view-album .view-content .item-list ul li {
        margin-bottom: 15px !important;
    }
    
    span.dd-text a {
        color: #E1D4C1;
        font-weight: 400;
        border: 2px solid #E1D4C1 !important;
        padding: 5px 12px;
    }
    
    span.dd-text a:hover {
        opacity: 0.5;
    }
    
    nav.slick__arrow:before,
    nav.slick__arrow:after {
        background: #5C5852;
    }
    
    button.slick-arrow,
    button.slick-arrow+a {
        color: #5C5852;
    }
    
    button.slick-arrow:hover,
    button.slick-arrow+a:hover,
    a.allvideos:hover:after,
    button.slick-prev.slick-arrow:hover:after,
    button.slick-next.slick-arrow:hover:after {
        color: #BEB2A0;
    }
    
    .playButton.icon-play2:hover {
        color: #E1D4C1;
    }
    
    .owl-carousel .owl-nav .owl-prev:hover:after,
    .owl-carousel .owl-nav .owl-next:hover:after {
        color: #5C5852;
    }
    
    .albumTitle {
        min-height: auto;
    }
    
    #block-plainjsmailinglist option {
        background: #BEB2A0;
    }
    
    #block-plainjsmailinglist .plain-ml-wrapper p.terms-message-2,
    #block-plainjsmailinglist .plain-ml-wrapper p.terms-message {
        background: #F7F0DF;
    }
    
    #block-plainjsmailinglist .plain-ml-wrapper p.terms-message-2 a,
    #block-plainjsmailinglist .plain-ml-wrapper p.terms-message a {
        color: #5C5852;
        text-decoration: underline;
    }
    
    .views-field.views-field-field-video-embed-2 a,
    .videoTitleWrapper div {
        font-size: 2.2vw;
    }
    
    nav.pager {
        display: none;
    }
    
    div#header-callout-desktop {
        width: 12%;
        top: 29%;
    }
    
    div#block-75140headerblock {
        display: none;
    }
    
    @media only screen and (max-width: 1023px) {
        .footerlogo img.footerlogo-reskin {
            margin: 0 auto;
        }
        .copyrightblock {
            background: transparent;
        }
        .TourWrapper .widget_row div.event_date {
            width: 25%;
        }
        .header-wrapper {
            padding: 6% !important;
        }
        body.page-node-366 a#tour-nav,
        body.path-music a#music-nav,
        body.path-videos a#video-nav,
        .link-wrapper a {
            color: #F7F0DF !important;
        }
        nav.slick__arrow {
            background-color: #E1D4C1;
        }
        button.slick-arrow:hover,
        button.slick-arrow+a:hover,
        a.allvideos:hover:after,
        button.slick-prev.slick-arrow:hover:after,
        button.slick-next.slick-arrow:hover:after {
            color: #BEB2A0;
        }
        body.path-music,
        body.path-videos,
        body.page-node-111,
        body.page-node-116,
        body.page-node-391,
        body.page-node-366 {
            background: url(/sites/g/files/g2000010361/files/2021-04/mobileInteriorBg.png) no-repeat #a79883;
            background-size: cover;
        }
    }
    
    @media only screen and (max-width: 767px) and (orientation: landscape) {
        body.page-node-1 {
            /*background: url(/sites/g/files/g2000010361/files/2021-04/backgroundnew.jpg) no-repeat center center fixed #E1D4C1;*/
            background: url(/sites/g/files/g2000010361/files/2021-08/backgroundnew_min.jpg) no-repeat center center fixed #E1D4C1;
            background-size: cover;
        }
        body.path-music,
        body.path-videos,
        body.page-node-111,
        body.page-node-116,
        body.page-node-391,
        body.page-node-366 {
            background: url(/sites/g/files/g2000010361/files/2021-04/InteriorBgNew-min.png) no-repeat center center fixed #a79883;
            background-size: cover;
        }
    }
    
    @media only screen and (max-width: 1023px) and (orientation: portrait) {
        div#header-callout-mobile {
            /*width: 24vh;*/
            top: 23vh;
        }
        .listenbutton {
            top: 58.5vh;
            position: fixed;
        }
    }
    
    @media only screen and (max-width: 1023px) and (orientation: landscape) {
        .header-wrapper {
            width: 88%;
            padding: 3% 6% !important;
        }
    }

/*--><!]]>*/
</style></div>
      
    </div>
  </div>
<div id="block-79677admincss" data-block-plugin-id="block_content:9430588a-d8e6-41e2-8892-82ad0e1c1d68" class="block block-block-content block-block-content9430588a-d8e6-41e2-8892-82ad0e1c1d68">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><style>
<!--/*--><![CDATA[/* ><!--*/

body.path-frontpage .listenbutton a.preorder_button{
 display:inline-block !important;
}

body.path-frontpage .listenbutton a.preorder_button{
display: inline-block ;
width: auto;
 margin-left: 30px;
padding:6px 20px;
}
@media only screen and (max-width: 767px) {
body.path-frontpage .listen-preorder {
 margin-top:0px;
}
body.path-frontpage .listen-preorder  .listen_button{
 margin-top:30px;
}
.listenbutton{
 width:100%;
}
body.path-frontpage .listenbutton a.preorder_button{
 margin-left: 0;
}
}
@media only screen and (max-width: 767px) and  (orientation: landscape){
body.path-frontpage .listenbutton a.preorder_button{
 margin-left:10px;
}
}
<style>

/*--><!]]>*/
</style></div>
      
    </div>
  </div>

  </div>

        
      </div>
    </header>
          <div class="highlighted">
        <aside class="layout-container section clearfix" role="complementary">
            <div class="region region-highlighted">
    <div data-drupal-messages-fallback class="hidden"></div>

  </div>

        </aside>
      </div>
            <div id="main-wrapper" class="layout-main-wrapper layout-container clearfix">
      <div id="main" class="layout-main clearfix">
        
        <main id="content" class="column main-content" role="main">
          <section class="section">
            <a id="main-content" tabindex="-1"></a>
              <div class="region region-content">
    <div id="block-bartik-content" data-block-plugin-id="system_main_block" class="block block-system block-system-main-block">
  
    
      <div class="content">
      
<article role="article" about="/home" class="node node--type-landing-page node--view-mode-full clearfix">
  <header>
    
          
      </header>
  <div class="node__content clearfix">
    
  </div>
</article>

    </div>
  </div>
<div id="block-onetrustsitescriptinclusiongdpr" data-block-plugin-id="block_content:4c1a7063-3040-4a64-b97c-4f4988fce191" class="block block-block-content block-block-content4c1a7063-3040-4a64-b97c-4f4988fce191">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><style>
<!--/*--><![CDATA[/* ><!--*/

a.optanon-show-settings, a.ot-sdk-show-settings {
    display:block;
    background: none;
    border: none;
    font-size: inherit;
    padding: 0 2px;
}
a.optanon-show-settings:hover, a.ot-sdk-show-settings:hover{
    background:none;
    color:#d9ba6d;
}

.copyrightblock{
text-align: center;
}
div#onetrust-consent-sdk {
    display: block;
}
div#pp-footer{
display: none !important;
}

/*--><!]]>*/
</style></div>
      
    </div>
  </div>
<div id="block-79157csschanges" data-block-plugin-id="block_content:0b88411d-d8ca-4b6d-b0a6-a5110c7c4c03" class="block block-block-content block-block-content0b88411d-d8ca-4b6d-b0a6-a5110c7c4c03">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><style>
<!--/*--><![CDATA[/* ><!--*/

    body #mlform input#email,
    body #secondform input:not([type="submit"]),
    body #secondform select,
    .listenbutton a.listen_button {
        font-family: 'Helvetica Neue LT W05_53 Ext';
    }

    body .site-footer .copyrightblock span,
    body .site-footer .copyrightblock span a {
        font-family: 'Garamond_3 LT W01 Regular' !important;
    }

    body,
    a,
    div,
    p,
    section,
    article,
    footer,
    h2,
    h1,
    span,
    body input#submit {
        font-family: 'Garamond_3 LT W01 Regular';
    }

    .TourWrapper .songkick-container .plain_text,
    .TourWrapper a,
    .TourWrapper .widget_row>div.no-dates,
    .page-node-116 .not-authorized h1,
    .main-content .page-not-found h2 {
        font-family: 'Helvetica Neue LT W05_53 Ext';
    }

    .link-wrapper a {
        font-family: 'Helvetica Neue LT W05_53 Ext' !important;
    }

    .albumTitle,
    .views-field.views-field-field-video-embed-2 a,
    .videoTitleWrapper div {
        font-family: 'Garamond_3 LT W01 Regular';
    }

    .getitnowlink,
    span.dd-text a,
    button.slick-arrow,
    button.slick-arrow+a {
        font-family: 'Helvetica Neue LT W05_53 Ext';
    }

    #block-79157csschanges {
        padding: 0;
    }
    body div#video-imag-wrapper {
        display: block;
    }

body.page-node-type-miscellaneous-pages.page-node-391 input:not([type="submit"]), body.page-node-type-miscellaneous-pages.page-node-391 input, body.page-node-type-miscellaneous-pages.page-node-391 select {
    font-family: 'Helvetica Neue LT W05_53 Ext';
}

body.page-node-type-miscellaneous-pages.page-node-391 .plain-ml-wrapper label.goptin_checkbox, body.page-node-type-miscellaneous-pages.page-node-391 .plain-ml-wrapper label.goptin_checkbox span {
    font-family: 'Helvetica Neue LT W05_53 Ext';
    font-weight: 400;
}
body.page-node-type-miscellaneous-pages.page-node-391 p.message-description, body.page-node-type-miscellaneous-pages.page-node-391 .plain-ml-wrapper label:not(.goptin_checkbox){
font-family: 'Helvetica Neue LT W05_53 Ext';
}

/* HomePage Changes */
.path-frontpage .reskinnav {
    display: none;
}
.path-frontpage .reskinnav.hoverImg {
    display: inline;
}
.listenbutton a.listen_button {
    color: #5C5852;
    background: #E1D4C1;
}
body.path-frontpage #mlform input#email {
	color: #E1D4C1;
}
body.path-frontpage .site-footer .copyrightblock span, body.path-frontpage .site-footer .copyrightblock span a, body.path-frontpage div#footer-block a span, 
body.path-frontpage input#submit, body.path-frontpage #mlform .terms, body.path-frontpage #secondform .terms, body.path-frontpage #block-plainjsmailinglist #mlform p.terms-message a, 
body.path-frontpage #block-plainjsmailinglist .singleform p.terms-message a, body.path-frontpage #tklbContainer #mlform p.terms-message a, 
body.path-frontpage #tklbContainer .singleform p.terms-message a, body.path-frontpage, body.path-frontpage a, body.path-frontpage div, body.path-frontpage p, body.path-frontpage section, 
body.path-frontpage article, body.path-frontpage footer, body.path-frontpage h2, body.path-frontpage h1, body.path-frontpage span, body.path-frontpage div#thankyou{
	color: #E1D4C1;
}
body.path-frontpage #mlform #terms .terms-message, body.path-frontpage #secondform #terms .terms-message{
	color: #E1D4C1;
	background: #5C5852;
}
body.path-frontpage input::-webkit-input-placeholder {
    /* Edge */
    color: #E1D4C1;
    -webkit-text-fill-color: #E1D4C1;
    opacity: 1;
}
body.path-frontpage input:-ms-input-placeholder {
    /* Internet Explorer 10-11 */
    color: #E1D4C1;
    -webkit-text-fill-color: #E1D4C1;
    opacity: 1;
}
body.path-frontpage input::placeholder {
    color: #E1D4C1;
    -webkit-text-fill-color: #E1D4C1;
    opacity: 1;
}
body.path-frontpage div#secondform{
	background: #5C5852;
	color: #E1D4C1;
}
body.path-frontpage #secondform input:not([type="submit"]), body.path-frontpage #secondform select{
	border-bottom: 1px solid #E1D4C1;
	color: #E1D4C1;
}
body.path-frontpage #mlform input#email{
	border-color: #E1D4C1;
}
body.path-frontpage #block-plainjsmailinglist .plain-ml-wrapper p.terms-message-2{
	color: #5C5852;
}
body.path-frontpage #block-plainjsmailinglist option{
	background: #5C5852;
}
body.path-frontpage span#menu-mob span{
	background-color: #E1D4C1;
}
div#nav a:hover, div#footer-block a span:hover, 
body input#submit:hover, body .site-footer .content a:hover, 
body .site-footer .content a:focus {
	color: #5C5852;
	opacity: 0.6;
}
body.path-frontpage div#nav a:hover, body.path-frontpage div#footer-block a span:hover, 
body.path-frontpage input#submit:hover, 
body.path-frontpage #block-plainjsmailinglist #mlform p.terms-message a:hover, 
body.path-frontpage #block-plainjsmailinglist .singleform p.terms-message a:hover, 
body.path-frontpage #tklbContainer #mlform p.terms-message a:hover, 
body.path-frontpage #tklbContainer .singleform p.terms-message a:hover, 
body.path-frontpage.site-footer .content a:hover, 
body.path-frontpage .site-footer .content a:focus{
	color: #E1D4C1;
	opacity: 0.6;
}
body.path-frontpage input:-webkit-autofill,
body.path-frontpage input:-webkit-autofill:hover,
body.path-frontpage input:-webkit-autofill:focus,
body.path-frontpage textarea:-webkit-autofill,
body.path-frontpage textarea:-webkit-autofill:hover,
body.path-frontpage textarea:-webkit-autofill:focus,
body.path-frontpage select:-webkit-autofill,
body.path-frontpage select:-webkit-autofill:hover,
body.path-frontpage select:-webkit-autofill:focus {
    border: 0px;
    border-bottom: 1px solid #E1D4C1 !important;
    -webkit-text-fill-color: #E1D4C1 !important;
    -webkit-box-shadow: 0 0 0 1000px transparent inset !important;
    transition: background-color 5000s ease-in-out 0s !important;
}
body.path-frontpage .footerlogo-reskin {
    display: none;
}
body.path-frontpage .listenbutton a.listen_button:hover{
	background: rgba(225, 212, 193, 0.5);
}
body.path-frontpage .footertanLogo {
    display: inline-block;
}
body.path-frontpage .reskin {
    display: none;
}
body.path-frontpage .reskin.NTBtanLogo {
    display: block;
}
body.path-frontpage img.reskinImg{
	display: none;
}
body.path-frontpage img.NTBTanArchImg{
	display: inline;
}
/* Interior page Changes */

body.path-music, body.path-videos, body.page-node-111, body.page-node-116, body.page-node-391, body.page-node-366{
	background: url(/sites/g/files/g2000010361/files/2021-08/backgroundnew_min.jpg) no-repeat #E1D4C1;
    background-size: cover;
}
span.dd-text a {
    color: #f7f0df;
    border: 2px solid #f7f0df !important;
}
.link-wrapper a{
	color: #5C5852 !important;
}
body.page-node-366 a#tour-nav img, body.path-music a#music-nav img, body.path-videos a#video-nav img {
	display: inline;
	opacity: 0.6;
}
body.page-node-366 a#tour-nav img.hoverImg, body.path-music a#music-nav img.hoverImg, body.path-videos a#video-nav img.hoverImg {
    display: none;
}
.tourrinnerwrap1, .tourrinnerwrap2, span.smalltxt {
    color: #5C5852;
}
@media all and (max-width:767px){
.views-field.views-field-field-video-embed-2 a, .videoTitleWrapper div {
    font-size: 8vw;
    text-align: center;
}
}

/*--><!]]>*/
</style><style>
<!--/*--><![CDATA[/* ><!--*/

    body #mlform input#email,
    body #secondform input:not([type="submit"]),
    body #secondform select,
    .listenbutton a.listen_button {
        font-family: 'Helvetica Neue LT W05_53 Ext';
    }

    body .site-footer .copyrightblock span,
    body .site-footer .copyrightblock span a {
        font-family: 'Garamond_3 LT W01 Regular' !important;
    }

    body,
    a,
    div,
    p,
    section,
    article,
    footer,
    h2,
    h1,
    span,
    body input#submit {
        font-family: 'Garamond_3 LT W01 Regular';
    }

    .TourWrapper .songkick-container .plain_text,
    .TourWrapper a,
    .TourWrapper .widget_row>div.no-dates,
    .page-node-116 .not-authorized h1,
    .main-content .page-not-found h2 {
        font-family: 'Helvetica Neue LT W05_53 Ext';
    }

    .link-wrapper a {
        font-family: 'Helvetica Neue LT W05_53 Ext' !important;
    }

    .albumTitle,
    .views-field.views-field-field-video-embed-2 a,
    .videoTitleWrapper div {
        font-family: 'Garamond_3 LT W01 Regular';
    }

    .getitnowlink,
    span.dd-text a,
    button.slick-arrow,
    button.slick-arrow+a {
        font-family: 'Helvetica Neue LT W05_53 Ext';
    }

    #block-79157csschanges {
        padding: 0;
    }
    body div#video-imag-wrapper {
        display: block;
    }

body.page-node-type-miscellaneous-pages.page-node-391 input:not([type="submit"]), body.page-node-type-miscellaneous-pages.page-node-391 input, body.page-node-type-miscellaneous-pages.page-node-391 select {
    font-family: 'Helvetica Neue LT W05_53 Ext';
}

body.page-node-type-miscellaneous-pages.page-node-391 .plain-ml-wrapper label.goptin_checkbox, body.page-node-type-miscellaneous-pages.page-node-391 .plain-ml-wrapper label.goptin_checkbox span {
    font-family: 'Helvetica Neue LT W05_53 Ext';
    font-weight: 400;
}
body.page-node-type-miscellaneous-pages.page-node-391 p.message-description, body.page-node-type-miscellaneous-pages.page-node-391 .plain-ml-wrapper label:not(.goptin_checkbox){
font-family: 'Helvetica Neue LT W05_53 Ext';
}

/* HomePage Changes */
.path-frontpage .reskinnav {
    display: none;
}
.path-frontpage .reskinnav.hoverImg {
    display: inline;
}
.listenbutton a.listen_button {
    color: #5C5852;
    background: #E1D4C1;
}
body.path-frontpage #mlform input#email {
	color: #E1D4C1;
}
body.path-frontpage .site-footer .copyrightblock span, body.path-frontpage .site-footer .copyrightblock span a, body.path-frontpage div#footer-block a span, 
body.path-frontpage input#submit, body.path-frontpage #mlform .terms, body.path-frontpage #secondform .terms, body.path-frontpage #block-plainjsmailinglist #mlform p.terms-message a, 
body.path-frontpage #block-plainjsmailinglist .singleform p.terms-message a, body.path-frontpage #tklbContainer #mlform p.terms-message a, 
body.path-frontpage #tklbContainer .singleform p.terms-message a, body.path-frontpage, body.path-frontpage a, body.path-frontpage div, body.path-frontpage p, body.path-frontpage section, 
body.path-frontpage article, body.path-frontpage footer, body.path-frontpage h2, body.path-frontpage h1, body.path-frontpage span, body.path-frontpage div#thankyou{
	color: #E1D4C1;
}
body.path-frontpage #mlform #terms .terms-message, body.path-frontpage #secondform #terms .terms-message{
	color: #E1D4C1;
	background: #5C5852;
}
body.path-frontpage input::-webkit-input-placeholder {
    /* Edge */
    color: #E1D4C1;
    -webkit-text-fill-color: #E1D4C1;
    opacity: 1;
}
body.path-frontpage input:-ms-input-placeholder {
    /* Internet Explorer 10-11 */
    color: #E1D4C1;
    -webkit-text-fill-color: #E1D4C1;
    opacity: 1;
}
body.path-frontpage input::placeholder {
    color: #E1D4C1;
    -webkit-text-fill-color: #E1D4C1;
    opacity: 1;
}
body.path-frontpage div#secondform{
	background: #5C5852;
	color: #E1D4C1;
}
body.path-frontpage #secondform input:not([type="submit"]), body.path-frontpage #secondform select{
	border-bottom: 1px solid #E1D4C1;
	color: #E1D4C1;
}
body.path-frontpage #mlform input#email{
	border-color: #E1D4C1;
}
body.path-frontpage #block-plainjsmailinglist .plain-ml-wrapper p.terms-message-2{
	color: #5C5852;
}
body.path-frontpage #block-plainjsmailinglist option{
	background: #5C5852;
}
body.path-frontpage span#menu-mob span{
	background-color: #E1D4C1;
}
div#nav a:hover, div#footer-block a span:hover, 
body input#submit:hover, body .site-footer .content a:hover, 
body .site-footer .content a:focus {
	color: #5C5852;
	opacity: 0.6;
}
body.path-frontpage div#nav a:hover, body.path-frontpage div#footer-block a span:hover, 
body.path-frontpage input#submit:hover, 
body.path-frontpage #block-plainjsmailinglist #mlform p.terms-message a:hover, 
body.path-frontpage #block-plainjsmailinglist .singleform p.terms-message a:hover, 
body.path-frontpage #tklbContainer #mlform p.terms-message a:hover, 
body.path-frontpage #tklbContainer .singleform p.terms-message a:hover, 
body.path-frontpage.site-footer .content a:hover, 
body.path-frontpage .site-footer .content a:focus{
	color: #E1D4C1;
	opacity: 0.6;
}
body.path-frontpage input:-webkit-autofill,
body.path-frontpage input:-webkit-autofill:hover,
body.path-frontpage input:-webkit-autofill:focus,
body.path-frontpage textarea:-webkit-autofill,
body.path-frontpage textarea:-webkit-autofill:hover,
body.path-frontpage textarea:-webkit-autofill:focus,
body.path-frontpage select:-webkit-autofill,
body.path-frontpage select:-webkit-autofill:hover,
body.path-frontpage select:-webkit-autofill:focus {
    border: 0px;
    border-bottom: 1px solid #E1D4C1 !important;
    -webkit-text-fill-color: #E1D4C1 !important;
    -webkit-box-shadow: 0 0 0 1000px transparent inset !important;
    transition: background-color 5000s ease-in-out 0s !important;
}
body.path-frontpage .footerlogo-reskin {
    display: none;
}
body.path-frontpage .listenbutton a.listen_button:hover{
	background: rgba(225, 212, 193, 0.5);
}
body.path-frontpage .footertanLogo {
    display: inline-block;
}
body.path-frontpage .reskin {
    display: none;
}
body.path-frontpage .reskin.NTBtanLogo {
    display: block;
}
body.path-frontpage img.reskinImg{
	display: none;
}
body.path-frontpage img.NTBTanArchImg{
	display: inline;
}
/* Interior page Changes */

body.path-music, body.path-videos, body.page-node-111, body.page-node-116, body.page-node-391, body.page-node-366{
	background: url(/sites/g/files/g2000010361/files/2021-08/backgroundnew_min.jpg) no-repeat #E1D4C1;
    background-size: cover;
}
span.dd-text a {
    color: #f7f0df;
    border: 2px solid #f7f0df !important;
}
.link-wrapper a{
	color: #5C5852 !important;
}
body.page-node-366 a#tour-nav img, body.path-music a#music-nav img, body.path-videos a#video-nav img {
	display: inline;
	opacity: 0.6;
}
body.page-node-366 a#tour-nav img.hoverImg, body.path-music a#music-nav img.hoverImg, body.path-videos a#video-nav img.hoverImg {
    display: none;
}
.tourrinnerwrap1, .tourrinnerwrap2, span.smalltxt {
    color: #5C5852;
}
@media all and (max-width:1023px){
    body.page-node-366{
        background: transparent;
}
body.page-node-366:after {
    content: "";
    background: url(/sites/g/files/g2000010361/files/2021-08/backgroundnew_min.jpg) no-repeat scroll center top / cover;
    position: fixed;
    width: 100%;
    height: 100vh;
    display: block;
    z-index: -1;
    top: 0;
    left: 0;
}
}
@media all and (max-width:767px){
.views-field.views-field-field-video-embed-2 a, .videoTitleWrapper div {
    font-size: 8vw;
    text-align: center;
}
}

/*--><!]]>*/
</style></div>
      
    </div>
  </div>

  </div>

          </section>
        </main>
                      </div>
    </div>
        <footer class="site-footer">
      <div class="layout-container">
                  <div class="site-footer__top clearfix">
              <div class="region region-footer-first">
    <div id="block-socialshtml79899" data-block-plugin-id="block_content:c88acf60-798f-48b9-81cb-23aa39457f08" class="block block-block-content block-block-contentc88acf60-798f-48b9-81cb-23aa39457f08">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><div id="footer-block" class="footer-wrapper">
  <div class="social-icons-new">
    <a data-track="facebook" target="_blank" href="https://www.facebook.com/NEEDTOBREATHE" class="facebook"><span class="wmg-sl-facebook"></span></a>

    <a data-track="twitter" target="_blank" href="https://twitter.com/NEEDTOBREATHE" class="twitter"><span class="icon-twitter"></span></a>

    <a data-track="instagram" target="_blank" href="https://www.instagram.com/needtobreathe/" class="instagram"><span class="icon-instagram"></span></a>

    <a data-track="youtube" target="_blank" href="https://www.youtube.com/user/NEEDTOBREATHEVIDEOS" class="youtube"><span class="icon-youtube"></span></a>

    <a data-track="spotify" target="_blank" href="https://open.spotify.com/artist/610EjgFatGvVPtib97jQ8G?si=aIU2btHYQiqJrfQmsar2ow" class="spotify"><span class="icon-spotify"></span></a>

    <a data-track="itunes" target="_blank" href="https://itunes.apple.com/us/artist/needtobreathe/113247214" class="apple"><span class="wmg-sl-applemusic"></span></a>
    <a data-track="tiktok" target="_blank" href="https://www.tiktok.com/@needtobreathe" class="tiktok"><span class="wmg-sl-tiktok"> <img class="" src="/sites/g/files/g2000010361/files/2021-06/Icon%20simple-tiktok_0.svg" /></span></a>
  </div>
</div>
<style>
<!--/*--><![CDATA[/* ><!--*/

.page-node-1 div#block-footer{
    display:none !important;
}
.social-icons-new a {
    margin-bottom: 55%;
    display: block;
}
body div#nav .social-icons {
    display: none;
}
div#footer-block a span img {
    width: 1.5vw;
    height: 1.5vw;
}
body.path-music .social-icons-new, body.path-videos .social-icons-new, body.page-node-111 .social-icons-new, body.page-node-116 .social-icons-new, body.page-node-391 .social-icons-new, body.page-node-366 .social-icons-new{
    display:none;
}
     @media only screen and (max-width: 1023px) {
	    .social-icons-new {
            text-align: center;
        }
		.social-icons-new a span {
            display: inline-block;
            margin: 6vh 0px 0px;
            font-size: 4vw;
            vertical-align: middle;
        }
		div#nav .social-icons-new a {
            margin-bottom: 0px;
            margin-right: 5%;
        }
		.social-icons-new a {
            margin-right: 8%;
            display: inline-block;
        }
		div#nav .social-icons-new a:last-child {
			margin-right: 0;
		}	
		.social-icons-new a span img {
			width: 4vw;
			height: 4vw;
		}
		body.path-music .social-icons-new, body.path-videos .social-icons-new, body.page-node-111 .social-icons-new, body.page-node-116 .social-icons-new, body.page-node-391 .social-icons-new, body.page-node-366 .social-icons-new{
			display:block;
		}
	 }

/*--><!]]>*/
</style></div>
      
    </div>
  </div>
<div id="block-plainjsmailinglist" data-block-plugin-id="block_content:dff6afa9-94c7-4d83-8678-666481872b7c" class="block block-block-content block-block-contentdff6afa9-94c7-4d83-8678-666481872b7c">
  
    
      <div class="content">
      
            <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><div class="footerblockWrapper">
    <div class="footerlogo">
        <a href="https://ntbinsiders.com/" target="blank">
		 <img class="footertanLogo" src="/sites/g/files/g2000010361/files/2021-05/reskinTan-insiderslogo.svg" alt="ntb" /><img class="footerlogo-reskin" src="/sites/g/files/g2000010361/files/2021-04/reskin-insiderslogo.svg" alt="ntb" /></a></div>
    <div class="copyrightblock">
        <span class="copy">© Copyright 2022 Atlantic Records | </span>
        <span> <a target="_blank" href="//www.atlanticrecords.com/privacy-policy/">Privacy Policy</a> | </span>
        <span><a target="_blank" href="//www.atlanticrecords.com/terms-of-use/">Terms Of Use</a> | </span>

        <span><a href="//www.atlanticrecords.com/privacy-policy/#adchoices" target="_blank">Ad Choices</a> | </span>
        <span><a target="_blank" href="https://www.wminewmedia.com/cookies-policy/" class="ext-link">Cookies Policy</a> | </span>
        <span>
<!-- OneTrust Cookies Settings button start -->
<a class="ot-sdk-show-settings" style="cursor:pointer">Cookies Settings</a>
<!-- OneTrust Cookies Settings button end -->
</span>
        <span class="borderleft">  </span>

    </div></div></div>
      
    </div>
  </div>

  </div>

            
            
            
          </div>
                      </div>
    </footer>
  </div>
</div>

  </div>

    <script src="/sites/g/files/g2000010361/files/custom_js_4.js?cache=6114b1e337bfd"></script>
<script src="/sites/g/files/g2000010361/files/custom_js_8.js?cache=6114b1e337bfd"></script>
<script src="/sites/g/files/g2000010361/files/custom_js_10.js?cache=6114b1e337bfd"></script>

    
  <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-1888dd77a01fc8c6df6","applicationID":"401082826","transactionName":"YwYDMBdXD0dYVUNYXlpMIAcRXw5aFkZWVlRrAAAHDVM=","queueTime":0,"applicationTime":18,"atts":"T0EARl9NHEk=","errorBeacon":"bam.nr-data.net","agent":""}</script></body>
</html>
