@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Montserrat:wght@400;500;600;700;800&display=swap');
/* =========================================================
   JSPEAK SOLUTIONS — CUSTOM THEME DESIGN SYSTEM v1.4
   ========================================================= */

:root {
  --jss-red:#D2232A;
  --jss-gold:#FBAC40;
  --jss-black:#111111;
  --jss-white:#FFFFFF;
  --jss-gray-100:#F7F7F7;
  --jss-gray-200:#EAEAEA;
  --jss-gray-600:#666666;
  --jss-gradient:linear-gradient(135deg,#FBAC40 0%,#D2232A 100%);
  --jss-font-heading:"Montserrat",Arial,sans-serif;
  --jss-font-body:"Montserrat",Arial,sans-serif;
  --jss-font-brand:"Manrope","Montserrat",Arial,sans-serif;
  --jss-font-display:"SantElia",Georgia,serif;
  --jss-container:1200px;
  --jss-container-wide:1400px;
  --jss-header-height:82px;
}

html{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  scroll-behavior:smooth;
  scroll-padding-top:var(--jss-header-height);
}
body{
  width:100%;
  max-width:100%;
  margin:0;
  overflow-x:hidden;
  color:var(--jss-black);
  background:var(--jss-white);
}
body,p,li,input,textarea,select,button{font-family:var(--jss-font-body)}
h1,h2,h3,h4,h5,h6{
  font-family:var(--jss-font-heading);
  font-weight:700;
  line-height:1.2;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.jss-brand-name {
    font-family:var(--jss-font-brand) !important;
}
p,li{overflow-wrap:break-word;word-wrap:break-word}
img,svg,video{max-width:100%;height:auto}
img{display:block}

.jss-container{
  width:min(calc(100% - 40px),var(--jss-container));
  margin-inline:auto;
}
.jss-container-wide{
  width:min(calc(100% - 40px),var(--jss-container-wide));
  margin-inline:auto;
}
.jss-fullbleed{width:100%;max-width:100%;margin-inline:0}
.jss-section{width:100%;padding-block:clamp(4rem,8vw,8rem)}
.jss-section-small{padding-block:clamp(2rem,4vw,4rem)}
.jss-section-large{padding-block:clamp(5rem,10vw,10rem)}
.jss-section-dark{color:var(--jss-white);background:var(--jss-black)}
.jss-section-brand{color:var(--jss-white);background:var(--jss-gradient)}

.jss-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  box-sizing:border-box;
  padding:.75rem 1.5rem;
  border:2px solid transparent;
  border-radius:8px;
  font-family:var(--jss-font-heading);
  font-weight:700;
  line-height:1.2;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease;
}
.jss-button:hover{transform:translateY(-2px)}
.jss-button-primary{color:var(--jss-white);background:var(--jss-red)}
.jss-button-secondary{color:var(--jss-black);background:var(--jss-gold)}
.jss-button-outline{color:var(--jss-red);background:transparent;border-color:var(--jss-red)}

/* =========================================================
   GLOBAL HEADER — v1.1
   The template part itself is the <header> landmark.
   There is no second header wrapper.
   ========================================================= */
.jss-site-header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  z-index:99999 !important;
  width:100% !important;
  margin:0 !important;
  background:rgba(255,255,255,.98);
  border-bottom:1px solid var(--jss-gray-200);
  box-shadow:0 2px 14px rgba(0,0,0,.06);
  isolation:isolate;
}
/* Fixed header is removed from document flow, so reserve its height. */
.wp-site-blocks{
  padding-top:var(--jss-header-height);
  box-sizing:border-box;
}

.jss-site-header__inner{
  min-height:var(--jss-header-height);
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  width:min(calc(100% - 40px),var(--jss-container-wide));
  margin-inline:auto;
}
.jss-site-header .wp-block-site-logo{
  flex:0 1 auto;
  margin:0;
}
.jss-site-header .wp-block-site-logo img{
  max-height:56px;
  width:auto;
}
.jss-site-header .wp-block-navigation{
  margin-left:auto;
  min-width:0;
}
.jss-site-header .wp-block-navigation__container{
  align-items:center;
  flex-wrap:nowrap;
  gap:clamp(.75rem,1.8vw,1.75rem);
}
.jss-site-header .wp-block-navigation-item,
.jss-site-header .wp-block-navigation-item__content{
  flex:0 0 auto;
  width:auto;
  max-width:none;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
}
.jss-site-header .wp-block-navigation-item__content{
  font-family:var(--jss-font-heading);
  font-size:clamp(.78rem,.7rem + .2vw,.95rem);
  font-weight:600;
  line-height:1.2;
  text-decoration:none;
}
.jss-site-header .wp-block-navigation-item__content:hover{color:var(--jss-red)}

body.admin-bar .jss-site-header{top:32px !important}
@media(max-width:782px){
  body.admin-bar .jss-site-header{top:46px !important}
}

:focus-visible{outline:3px solid var(--jss-gold);outline-offset:3px}
.wp-site-blocks,.wp-block-post-content{min-width:0}
.wp-block-group,.wp-block-columns,.wp-block-column{min-width:0}

/* =========================================================
   MOBILE MENU
   Use the core responsive navigation for accessibility,
   but turn its open state into a compact JSS dropdown.
   ========================================================= */
@media(min-width:681px){
  .jss-site-header .wp-block-navigation__responsive-container-open{
    display:none !important;
  }

  .jss-site-header .wp-block-navigation__responsive-container{
    display:block !important;
    position:static !important;
  }
}

@media(max-width:900px){
  :root{--jss-header-height:72px}
  .jss-site-header__inner{
    width:min(calc(100% - 32px),var(--jss-container-wide));
    gap:1rem;
  }
  .jss-site-header .wp-block-site-logo img{max-height:48px}
}

@media(max-width:680px){
  .jss-site-header .wp-block-navigation__responsive-container-open{
    display:flex !important;
  }

  .jss-site-header .wp-block-navigation__responsive-container:not(.is-menu-open){
    display:none !important;
  }

  .jss-container,.jss-container-wide{
    width:min(calc(100% - 24px),var(--jss-container));
  }
  .jss-site-header__inner{
    width:min(calc(100% - 24px),var(--jss-container-wide));
  }

  .jss-site-header .wp-block-navigation{
    margin-left:auto;
  }

  .jss-site-header .wp-block-navigation__responsive-container.is-menu-open{
    position:absolute !important;
    top:calc(100% + 1px) !important;
    right:12px !important;
    left:auto !important;
    bottom:auto !important;
    width:min(88vw,360px) !important;
    height:auto !important;
    min-height:0 !important;
    max-height:calc(100vh - var(--jss-header-height) - 24px) !important;
    overflow:auto !important;
    box-sizing:border-box !important;
    padding:1.25rem !important;
    background:var(--jss-white) !important;
    border:1px solid var(--jss-gray-200) !important;
    border-radius:12px !important;
    box-shadow:0 12px 30px rgba(0,0,0,.16) !important;
  }

  .jss-site-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content{
    align-items:stretch !important;
    justify-content:flex-start !important;
    padding-top:0 !important;
  }

  .jss-site-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__container{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:0 !important;
    width:100% !important;
  }

  .jss-site-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item{
    width:100% !important;
    margin:0 !important;
  }

  .jss-site-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item__content{
    display:block !important;
    width:100% !important;
    box-sizing:border-box !important;
    padding:.85rem .25rem !important;
    white-space:normal !important;
    border-bottom:1px solid var(--jss-gray-200);
    font-size:1rem !important;
  }

  .jss-site-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item:last-child .wp-block-navigation-item__content{
    border-bottom:0;
  }

  .jss-site-header .wp-block-navigation__responsive-container-close{
    position:absolute !important;
    top:.65rem !important;
    right:.65rem !important;
    z-index:2;
  }

  .jss-site-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content{
    padding-right:2rem !important;
  }
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    transition-duration:.01ms !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
  }
}

.jss-footer{width:100%;margin:0;color:var(--jss-white);background:var(--jss-black)}
.jss-footer__brand-line{width:100%;min-height:5px;padding:0!important;margin:0!important;background:var(--jss-gradient)}
.jss-footer__main{width:min(calc(100% - 40px),var(--jss-container-wide));margin-inline:auto;padding:clamp(3rem,6vw,5.5rem) 0}
.jss-footer__grid{display:grid;grid-template-columns:minmax(240px,1.3fr) repeat(3,minmax(180px,1fr));gap:clamp(2rem,4vw,4rem);align-items:start}
.jss-footer__column{min-width:0}.jss-footer__brand .wp-block-site-logo{margin:0 0 1.25rem}.jss-footer__brand .wp-block-site-logo img{width:auto;max-width:180px;max-height:58px}
.jss-footer p,.jss-footer li{color:rgba(255,255,255,.86)}
.jss-footer__heading{margin:0 0 1rem;color:var(--jss-gold);font-size:1rem;letter-spacing:.04em;text-transform:uppercase}
.jss-footer__links{margin:0;padding:0;list-style:none}.jss-footer__links li{margin:0 0 .6rem}
.jss-footer a{color:var(--jss-white);text-decoration:none}.jss-footer a:hover,.jss-footer a:focus{color:var(--jss-gold)}
.jss-footer__contact{line-height:1.9}.jss-newsletter-placeholder{margin-top:1rem}
.jss-newsletter-placeholder label{display:block;margin-bottom:.5rem;color:var(--jss-white);font-family:var(--jss-font-heading);font-size:.9rem;font-weight:600}
.jss-newsletter-placeholder__row{display:flex;gap:.5rem}.jss-newsletter-placeholder input{flex:1 1 auto;min-width:0;min-height:46px;box-sizing:border-box;padding:.75rem .9rem;border:1px solid rgba(255,255,255,.25);border-radius:8px;color:var(--jss-black);background:var(--jss-white)}
.jss-newsletter-placeholder button{flex:0 0 auto;min-height:46px;padding:.75rem 1rem;border:0;border-radius:8px;font-family:var(--jss-font-heading);font-weight:700;color:var(--jss-black);background:var(--jss-gold)}
.jss-newsletter-placeholder input:disabled,.jss-newsletter-placeholder button:disabled{opacity:.72;cursor:not-allowed}
.jss-newsletter-placeholder__note{margin:.65rem 0 0;font-size:.78rem;line-height:1.4;color:rgba(255,255,255,.62)!important}
.jss-footer__bottom{border-top:1px solid rgba(255,255,255,.15)}.jss-footer__bottom-inner{width:min(calc(100% - 40px),var(--jss-container-wide));margin-inline:auto;padding:1.15rem 0;gap:1rem}.jss-footer__bottom p{margin:0;font-size:.85rem}.jss-footer__legal{white-space:nowrap}
@media(max-width:1000px){.jss-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.jss-footer__main,.jss-footer__bottom-inner{width:min(calc(100% - 24px),var(--jss-container-wide))}.jss-footer__grid{grid-template-columns:1fr;gap:2rem}.jss-newsletter-placeholder__row{flex-direction:column}.jss-newsletter-placeholder button{width:100%}.jss-footer__bottom-inner{align-items:flex-start;flex-direction:column}.jss-footer__legal{white-space:normal}}

/* =========================================================
   GLOBAL FOOTER REFINEMENTS — v1.4
   ========================================================= */
.jss-footer{
  max-width:none !important;
  width:100% !important;
}
.jss-footer__brand-line{
  display:block !important;
  width:100vw !important;
  max-width:none !important;
  min-height:5px !important;
  margin:0 calc(50% - 50vw) !important;
  padding:0 !important;
  background:var(--jss-gradient) !important;
}
.jss-footer__main{
  padding-top:2.25rem !important;
  padding-bottom:1.9rem !important;
}
.jss-footer__brand .wp-block-site-logo{margin-bottom:.85rem !important}
.jss-footer__brand p{margin-top:.5rem;margin-bottom:1rem}
.jss-footer__heading{margin-bottom:.7rem !important}
.jss-footer__links li{margin-bottom:.4rem !important}
.jss-footer__contact{margin-bottom:.8rem}

.jss-socials{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem;
  margin-top:.9rem;
}
.jss-social-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  color:var(--jss-white) !important;
  background:rgba(255,255,255,.06);
  transition:transform .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease;
}
.jss-social-link:hover,.jss-social-link:focus{
  transform:translateY(-2px);
  color:var(--jss-black) !important;
  background:var(--jss-gold);
  border-color:var(--jss-gold);
}
.jss-social-link svg{
  width:19px;
  height:19px;
  fill:currentColor;
  stroke:none;
}
.jss-social-link[href*="instagram"] svg{
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
.jss-social-link[href*="youtube"] svg{
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}
.jss-social-link[href*="youtube"] .jss-youtube-play{
  fill:currentColor;
  stroke:none;
}
.jss-social-link--group{
  margin-right:1.8rem;
}
.jss-social-badge{
  position:absolute;
  left:42px;
  top:50%;
  transform:translateY(-50%);
  color:rgba(255,255,255,.72);
  font-size:.68rem;
  line-height:1;
  white-space:nowrap;
}

.jss-schedule-link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  margin-top:.25rem;
  padding:.6rem .8rem;
  border:1px solid var(--jss-gold);
  border-radius:8px;
  color:var(--jss-gold) !important;
  font-family:var(--jss-font-heading);
  font-size:.82rem;
  font-weight:700;
  line-height:1.2;
}
.jss-schedule-link:hover,.jss-schedule-link:focus{
  color:var(--jss-black) !important;
  background:var(--jss-gold);
}
.jss-schedule-link svg{
  width:18px;
  height:18px;
  flex:0 0 auto;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media(max-width:680px){
  .jss-footer__main{
    padding-top:1.8rem !important;
    padding-bottom:1.5rem !important;
  }
}
