/* TheraWIDE v2.8 header logo + homepage hero refinements.
   Separate filename intentionally bypasses stale browser/CDN copies of style.css. */

.tw-site-header,
.tw-site-header > .wp-block-group {
  background-color:#08264A;
}

.tw-mainnav{
  min-height:72px;
  width:100%;
  max-width:min(1600px,calc(100vw - 44px))!important;
  margin-inline:auto!important;
  gap:18px!important;
  flex-wrap:nowrap!important;
}

.tw-mainnav .wp-block-site-logo{
  flex:0 0 auto;
  width:auto!important;
  margin-left:clamp(0px,4vw,66px)!important;
}
.tw-mainnav .wp-block-site-logo img{
  width:auto!important;
  max-height:60px!important;
}
.tw-mainnav .wp-block-navigation{
  flex:1 1 auto!important;
  min-width:0!important;
  font-size:.86rem!important;
  font-weight:750!important;
}
.tw-mainnav .wp-block-navigation__container{
  display:flex!important;
  flex-wrap:nowrap!important;
  justify-content:center!important;
  column-gap:clamp(10px,1.05vw,18px)!important;
  row-gap:0!important;
}
.tw-mainnav .wp-block-navigation-item,
.tw-mainnav .wp-block-navigation-item__content{
  white-space:nowrap!important;
}
.tw-mainnav .wp-block-navigation-item__content,
.tw-mainnav .wp-block-navigation a:where(:not(.wp-element-button)),
.tw-mainnav .wp-block-navigation .wp-block-navigation-item__label{
  color:#FFFFFF!important;
}
.tw-mainnav .wp-block-navigation-item__content:hover,
.tw-mainnav .wp-block-navigation a:where(:not(.wp-element-button)):hover,
.tw-mainnav .current-menu-item > .wp-block-navigation-item__content{
  color:#FFD23F!important;
}
.tw-mainnav .wp-block-navigation__responsive-container-open,
.tw-mainnav .wp-block-navigation__responsive-container-close{
  color:#FFFFFF!important;
}
.tw-header-cta{
  flex:0 0 auto!important;
}
.tw-header-cta .wp-block-button__link{
  white-space:nowrap!important;
  padding:12px 20px!important;
}

/* Homepage hero: keep the message, buttons and proof points visible together on desktop. */
.tw-hero-copy{
  padding-block:clamp(32px,3.2vw,48px)!important;
}
.tw-hero-copy h1{
  max-width:700px!important;
  font-size:clamp(2.85rem,3.35vw,3.65rem)!important;
  line-height:1.01!important;
  letter-spacing:-.04em!important;
  margin-top:.35rem!important;
  margin-bottom:1rem!important;
}
.tw-hero-copy > :where(:not(.alignleft):not(.alignright):not(.alignfull)){
  max-width:700px!important;
}
.tw-hero-copy .tw-lead{
  font-size:clamp(1rem,1.15vw,1.16rem)!important;
  line-height:1.55!important;
  margin-top:0!important;
  margin-bottom:1.15rem!important;
}
.tw-hero-copy .wp-block-buttons{
  margin-top:.4rem!important;
  gap:12px!important;
}
.tw-proof-row{
  margin-top:20px!important;
  gap:10px!important;
}
.tw-proof{
  font-size:.84rem!important;
}
.tw-proof-icon{
  width:32px!important;
  height:32px!important;
  flex-basis:32px!important;
}
.tw-hero-photo-wrap{
  min-height:500px!important;
  border-bottom-left-radius:72px!important;
}

@media (max-width:1280px){
  .tw-mainnav{max-width:calc(100vw - 30px)!important;gap:12px!important}
  .tw-mainnav .wp-block-navigation{font-size:.78rem!important}
  .tw-mainnav .wp-block-navigation__container{column-gap:10px!important}
  .tw-mainnav .wp-block-site-logo img{max-height:52px!important}
  .tw-header-cta .wp-block-button__link{padding-left:16px!important;padding-right:16px!important}
  .tw-hero-copy h1{font-size:clamp(2.75rem,4.15vw,3.45rem)!important}
  .tw-hero-photo-wrap{min-height:470px!important}
}

@media (max-width:1100px){
  .tw-header-cta{display:none!important}
  .tw-mainnav .wp-block-navigation{font-size:.82rem!important}
  .tw-hero-copy h1{font-size:clamp(2.65rem,4.7vw,3.35rem)!important}
}

@media (max-width:781px){
  .tw-mainnav{min-height:66px!important}
  .tw-mainnav .wp-block-site-logo img{max-height:46px!important}
  .tw-hero-copy{padding-block:42px 32px!important}
  .tw-hero-copy h1{font-size:clamp(2.45rem,10vw,3.35rem)!important;line-height:1!important}
  .tw-hero-photo-wrap{min-height:390px!important;border-radius:0!important}
}


/* v2.5 audience card icons: replace mixed emoji with consistent line-style icons */
.tw-audience-icon{
  position:relative;
  color:transparent!important;
  font-size:0!important;
  line-height:0!important;
  overflow:hidden;
}
.tw-audience-icon::before{
  content:"";
  position:absolute;
  inset:0;
  margin:auto;
  width:30px;
  height:30px;
  background-repeat:no-repeat;
  background-position:center;
  background-size:30px 30px;
}
.tw-audience-grid .tw-audience-card:nth-child(1) .tw-audience-icon::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2308264A' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5h16v8.5H4z'/%3E%3Cpath d='M2.75 10.5H21.25'/%3E%3Cpath d='M12 3l7 4.25H5z'/%3E%3Cpath d='M9 14v5'/%3E%3Cpath d='M15 14v5'/%3E%3Cpath d='M11 19h2'/%3E%3C/svg%3E");
}
.tw-audience-grid .tw-audience-card:nth-child(2) .tw-audience-icon::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2308264A' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.35-7-9.43C5 8.1 6.84 6.5 9.12 6.5c1.37 0 2.57.66 3.38 1.78.81-1.12 2.01-1.78 3.38-1.78C18.16 6.5 20 8.1 20 10.57 20 15.65 13 20 13 20h-1z'/%3E%3C/svg%3E");
}
.tw-audience-grid .tw-audience-card:nth-child(3) .tw-audience-icon::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2308264A' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4.2'/%3E%3Cpath d='M12 2.5v3'/%3E%3Cpath d='M12 18.5v3'/%3E%3Cpath d='M2.5 12h3'/%3E%3Cpath d='M18.5 12h3'/%3E%3Cpath d='M5.25 5.25 7.4 7.4'/%3E%3Cpath d='M16.6 16.6l2.15 2.15'/%3E%3Cpath d='M18.75 5.25 16.6 7.4'/%3E%3Cpath d='M7.4 16.6l-2.15 2.15'/%3E%3C/svg%3E");
}


/* v2.6 typography refinements: stronger section headings + unified checklist typography */
.tw-section h2.has-x-large-font-size{
  font-size:clamp(2.25rem,4.35vw,3.6rem)!important;
  line-height:1.02!important;
  letter-spacing:-.04em!important;
}

.tw-section .tw-checklist{
  font-size:clamp(1.05rem,1.15vw,1.18rem)!important;
  line-height:1.58!important;
  color:var(--tw-muted)!important;
  font-weight:400!important;
}
.tw-section .tw-checklist li{
  margin:14px 0!important;
  padding-left:38px!important;
  color:inherit!important;
  font-size:inherit!important;
  line-height:inherit!important;
  font-weight:inherit!important;
}
.tw-section .tw-checklist li::before{
  width:24px!important;
  height:24px!important;
  top:.12em!important;
  font-size:.84rem!important;
  font-weight:900!important;
}

@media (max-width:781px){
  .tw-section h2.has-x-large-font-size{
    font-size:clamp(2rem,9vw,2.75rem)!important;
  }
  .tw-section .tw-checklist{
    font-size:1.04rem!important;
  }
}


/* v2.7 homepage hero headline: stronger primary hierarchy */
.tw-hero-copy h1{
  max-width:760px!important;
  font-size:clamp(3.15rem,3.9vw,4.3rem)!important;
  line-height:.98!important;
  letter-spacing:-.045em!important;
}
@media (max-width:1280px){
  .tw-hero-copy h1{
    font-size:clamp(3rem,4.55vw,3.85rem)!important;
  }
}
@media (max-width:1100px){
  .tw-hero-copy h1{
    font-size:clamp(2.85rem,5.1vw,3.55rem)!important;
  }
}
@media (max-width:781px){
  .tw-hero-copy h1{
    font-size:clamp(2.6rem,10.8vw,3.5rem)!important;
    line-height:.99!important;
  }
}


/* v2.8 section-intro alignment system
   The kicker used to be inline-flex while headings participate in Gutenberg's
   constrained layout. That gave them different horizontal origins. Keep the
   kicker block-level so its left edge follows the same content constraint as
   the heading below it. */
.tw-kicker{
  display:flex!important;
  width:100%!important;
  align-items:center!important;
}
.tw-section > .tw-kicker,
.tw-section-tight > .tw-kicker{
  max-width:var(--wp--style--global--content-size,780px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}


/* v2.9 section intro alignment
   Keep intro copy readable, but anchor it to the same left edge as the site's
   wide grids/cards instead of centering the narrower text block. */
.tw-section > :is(.tw-kicker, h1.wp-block-heading, h2.wp-block-heading, .tw-lead),
.tw-section-tight > :is(.tw-kicker, h1.wp-block-heading, h2.wp-block-heading, .tw-lead){
  margin-left:max(0px, calc((100% - var(--wp--style--global--wide-size, 1240px)) / 2))!important;
  margin-right:auto!important;
}

/* Intro groups intentionally use a narrower readable measure inside an
   align-wide wrapper. Keep that measure, but pin it to the wrapper's left edge. */
.tw-section > .wp-block-group.alignwide > :is(.tw-kicker, h1.wp-block-heading, h2.wp-block-heading, .tw-lead),
.tw-section-tight > .wp-block-group.alignwide > :is(.tw-kicker, h1.wp-block-heading, h2.wp-block-heading, .tw-lead){
  margin-left:0!important;
  margin-right:auto!important;
}

@media (max-width:781px){
  .tw-section > :is(.tw-kicker, h1.wp-block-heading, h2.wp-block-heading, .tw-lead),
  .tw-section-tight > :is(.tw-kicker, h1.wp-block-heading, h2.wp-block-heading, .tw-lead){
    margin-left:0!important;
  }
}

/* v3.0 full-width section intro system
   Intro groups marked alignwide should use the same usable width as the wide
   card/grid content that follows them. Gutenberg's custom contentSize values
   (820-900px) previously kept the text artificially narrow. */
.tw-section > .wp-block-group.alignwide.is-layout-constrained,
.tw-section-tight > .wp-block-group.alignwide.is-layout-constrained{
  width:100%!important;
  max-width:var(--wp--style--global--wide-size,1240px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.tw-section > .wp-block-group.alignwide.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.tw-section-tight > .wp-block-group.alignwide.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Keep the actual copy readable while still allowing it to occupy the full
   section width when the viewport has room. */
.tw-section > .wp-block-group.alignwide.is-layout-constrained > .tw-lead,
.tw-section-tight > .wp-block-group.alignwide.is-layout-constrained > .tw-lead{
  max-width:1120px!important;
}

@media (max-width:781px){
  .tw-section > .wp-block-group.alignwide.is-layout-constrained,
  .tw-section-tight > .wp-block-group.alignwide.is-layout-constrained{
    width:100%!important;
  }
}

/* v3.1 homepage hero consistency
   Bring the homepage hero into the same visual system as inner-page heroes:
   centered wide content grid, inset rounded photo, matching kicker treatment,
   and a comparable display-heading scale. No page rebuild is required. */
.tw-hero{
  background:var(--tw-ice)!important;
  padding:clamp(64px,7vw,96px) 22px!important;
  overflow:hidden!important;
}
.tw-hero::before{
  display:none!important;
}
.tw-hero > .wp-block-columns{
  width:100%!important;
  max-width:var(--wp--style--global--wide-size,1240px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  gap:clamp(40px,5vw,68px)!important;
  align-items:center!important;
}
.tw-hero > .wp-block-columns > .wp-block-column:first-child{
  flex-basis:54%!important;
}
.tw-hero > .wp-block-columns > .wp-block-column:last-child{
  flex-basis:46%!important;
}
.tw-hero-copy{
  padding:0!important;
}
.tw-hero-copy > :where(:not(.alignleft):not(.alignright):not(.alignfull)){
  max-width:none!important;
}
.tw-hero .tw-kicker{
  color:var(--tw-blue)!important;
  margin-bottom:.85rem!important;
}
.tw-hero-copy h1{
  max-width:720px!important;
  font-size:clamp(3.6rem,5vw,5rem)!important;
  line-height:.98!important;
  letter-spacing:-.047em!important;
  margin-top:.25rem!important;
  margin-bottom:1.25rem!important;
}
.tw-hero-copy .tw-lead{
  max-width:700px!important;
  color:var(--tw-muted)!important;
  font-size:clamp(1.05rem,1.45vw,1.28rem)!important;
  line-height:1.65!important;
  margin-bottom:1.35rem!important;
}
.tw-hero-photo-wrap{
  min-height:500px!important;
  height:100%!important;
  border-radius:32px!important;
  box-shadow:var(--tw-shadow)!important;
  overflow:hidden!important;
}
.tw-hero-photo-wrap img{
  border-radius:32px!important;
}
.tw-hero-scribble{
  right:4%!important;
  bottom:5%!important;
}
.tw-proof-row{
  margin-top:24px!important;
}

@media (max-width:1280px){
  .tw-hero{
    padding-left:22px!important;
    padding-right:22px!important;
  }
  .tw-hero-copy h1{
    font-size:clamp(3.35rem,5.15vw,4.55rem)!important;
  }
  .tw-hero-photo-wrap{
    min-height:470px!important;
  }
}

@media (max-width:1100px){
  .tw-hero > .wp-block-columns{
    gap:32px!important;
  }
  .tw-hero-copy h1{
    font-size:clamp(3rem,5.4vw,4rem)!important;
  }
}

@media (max-width:781px){
  .tw-hero{
    padding:44px 18px 52px!important;
  }
  .tw-hero > .wp-block-columns{
    gap:30px!important;
  }
  .tw-hero-copy h1{
    font-size:clamp(2.75rem,11vw,3.7rem)!important;
    line-height:.99!important;
  }
  .tw-hero-photo-wrap{
    min-height:390px!important;
    border-radius:26px!important;
  }
  .tw-hero-photo-wrap img{
    border-radius:26px!important;
  }
}
