/* TPT Homepage Live v1.0.0 */

/* ---------------------------------------------------------------
   Events carousel
--------------------------------------------------------------- */
.tpt-ev{position:relative;width:100%;}
.tpt-ev-track{
  display:flex;
  gap:18px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:4px 2px 14px;
  scrollbar-width:none;
}
.tpt-ev-track::-webkit-scrollbar{display:none}
.tpt-ev-card{
  flex:0 0 calc((100% - 36px) / 3);
  min-width:0;
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 14px 34px rgba(15,23,42,.07);
  scroll-snap-align:start;
}
.tpt-ev-media{
  position:relative;
  display:block;
  aspect-ratio:16/9;
  overflow:hidden;
  background:linear-gradient(135deg,#eef4f9 0%,#dbeafe 100%);
}
.tpt-ev-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 35%;
  display:block;
  transition:transform .55s ease;
}
.tpt-ev-card:hover .tpt-ev-media img{transform:scale(1.04)}
.tpt-ev-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#8aa3bb;opacity:.55}
.tpt-ev-placeholder svg{width:46px;height:46px}
.tpt-ev-date{
  position:absolute;
  left:14px;
  top:14px;
  display:grid;
  place-items:center;
  min-width:46px;
  padding:6px 8px;
  border-radius:14px;
  background:#fff;
  color:#133256;
  line-height:1;
  text-align:center;
  box-shadow:0 8px 20px rgba(15,23,42,.18);
}
.tpt-ev-date b{display:block;font-size:18px;font-weight:900}
.tpt-ev-date small{display:block;margin-top:2px;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.tpt-ev-body{display:flex;flex-direction:column;gap:8px;flex:1;padding:18px}
.tpt-ev-kicker{display:inline-flex;align-self:flex-start;margin:0;padding:4px 8px;border-radius:999px;background:#EEF4F9;color:#133256;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.tpt-ev-title{
  margin:0;
  color:#133256;
  font-family:Raleway,Arial,sans-serif;
  font-size:21px;
  font-weight:800;
  line-height:1.15;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.tpt-ev-title a{color:#133256!important;text-decoration:none}
.tpt-ev-title a:hover{color:#3D5979!important}
.tpt-ev-when{display:flex;align-items:center;gap:6px;margin:0;color:#133256;font-size:14px;font-weight:800;line-height:1.3}
.tpt-ev-when svg{width:14px;height:14px;flex:0 0 14px;color:#3D5979}
.tpt-ev-location{display:flex;align-items:flex-start;gap:6px;margin:0;color:#5F7388;font-size:12.5px;font-weight:600;line-height:1.35}
.tpt-ev-location svg{width:14px;height:14px;flex:0 0 14px;margin-top:1px;color:#3D5979}
.tpt-ev-location span{min-width:0;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.tpt-ev-meta{
  margin:0;
  color:#5f7388;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.tpt-ev-desc{
  margin:0;
  color:#4a5b6d;
  font-size:13px;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.tpt-ev-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.tpt-ev-cta{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#133256!important;
  font-size:12px;
  font-weight:800;
  text-decoration:none;
  border-bottom:2px solid #F8B133;
  padding-bottom:2px;
}
.tpt-ev-cta:hover{color:#3D5979!important}
.tpt-ev-title a:hover{color:#3D5979!important}
.tpt-ev-signup{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:999px;
  background:#133256;
  color:#fff!important;
  font-size:11px;
  font-weight:800;
  text-decoration:none;
}
.tpt-ev-signup:hover{background:#3D5979;color:#fff!important}
.tpt-ev-nav{display:flex;justify-content:flex-end;gap:8px;padding:4px 2px 0}
.tpt-ev-nav button{
  width:38px;
  height:38px;
  border:1px solid #dbe3ec;
  border-radius:999px;
  background:#fff;
  color:#133256;
  font-size:22px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(15,23,42,.08);
  transition:background .18s ease,color .18s ease,opacity .18s ease;
}
.tpt-ev-nav button:hover{background:#133256;color:#fff}
.tpt-ev-nav button.is-disabled{opacity:.35;cursor:default;pointer-events:none}
.tpt-ev-empty{padding:24px;border:1px dashed #dbe3ec;border-radius:20px;background:#f8fbfe;color:#5f7388;text-align:center}

@media (max-width:1024px){
  .tpt-ev-card{flex-basis:calc((100% - 18px) / 2)}
}
@media (max-width:640px){
  .tpt-ev-track{gap:14px;padding-bottom:10px}
  .tpt-ev-card{flex-basis:86%;border-radius:20px}
  .tpt-ev-body{padding:15px}
  .tpt-ev-title{font-size:18px}
  .tpt-ev-nav{justify-content:center;padding-top:6px}
}

/* ---------------------------------------------------------------
   Live activity rotator
--------------------------------------------------------------- */
.elementor-widget-tpt_activity_rotator,
.elementor-widget-tpt_activity_rotator > .elementor-widget-container{height:100%}
.tpt-live{
  position:relative;
  isolation:isolate;
  height:100%;
  min-height:440px;
  border-radius:0;
  overflow:hidden;
  background:#133256;
  box-shadow:none;
}
.tpt-live-slides{position:absolute;inset:0}
.tpt-live-slide{
  position:absolute;
  inset:0;
  display:block;
  color:#fff;
  text-decoration:none;
  opacity:0;
  visibility:hidden;
  z-index:1;
  transition:opacity .65s ease,visibility .65s ease;
}
.tpt-live-slide.is-active{opacity:1;visibility:visible;z-index:2}
.tpt-live-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center 35%;
  transform:scale(1.02);
  transition:transform 9s ease;
}
.tpt-live-slide.is-active .tpt-live-bg{transform:scale(1.08)}
.tpt-live-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,26,43,.10) 0%,rgba(7,26,43,.48) 42%,rgba(7,26,43,.94) 100%);
}
.tpt-live-slide[data-has-image="0"] .tpt-live-shade{
  background:linear-gradient(140deg,var(--tpt-accent,#A80606) 0%,#133256 100%);
}
.tpt-live-content{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:3;
  display:flex;
  flex-direction:column;
  gap:9px;
  padding:26px;
}
.tpt-live-kicker{
  display:inline-flex;
  align-self:flex-start;
  padding:6px 10px;
  border-radius:999px;
  background:var(--tpt-accent,#A80606);
  color:var(--tpt-accent-text,#fff);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.tpt-live-title{
  color:#fff;
  font-family:Raleway,Arial,sans-serif;
  font-size:clamp(20px,2.4vw,28px);
  font-weight:800;
  line-height:1.12;
  text-wrap:balance;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.tpt-live-meta{color:rgba(255,255,255,.82);font-size:13px;font-weight:700;line-height:1.3}
.tpt-live-excerpt{
  color:rgba(255,255,255,.86);
  font-size:14px;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.tpt-live-cta{
  display:inline-flex;
  align-self:flex-start;
  align-items:center;
  gap:8px;
  margin-top:4px;
  color:#fff!important;
  font-size:13px;
  font-weight:800;
  text-decoration:underline;
  text-decoration-color:#F8B133;
  text-underline-offset:3px;
}
.tpt-live a.tpt-live-cta:hover{color:#F8B133!important}
.tpt-live-icon{
  position:absolute;
  top:22px;
  right:22px;
  z-index:4;
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:17px;
  background:rgba(255,255,255,.14);
  color:#fff;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.tpt-live-icon svg{width:27px;height:27px}
.tpt-live-dots{
  position:absolute;
  right:22px;
  bottom:22px;
  z-index:5;
  display:flex;
  align-items:center;
  gap:6px;
}
.tpt-live-dot{
  appearance:none!important;
  -webkit-appearance:none!important;
  flex:0 0 7px!important;
  width:7px!important;
  min-width:7px!important;
  max-width:7px!important;
  height:7px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.38);
  cursor:pointer;
  transition:width .2s ease,background .2s ease,flex-basis .2s ease;
}
.tpt-live-dot.is-active{flex-basis:22px!important;width:22px!important;min-width:22px!important;max-width:22px!important;background:#fff}
.tpt-live-week .tpt-live-content{padding:22px;gap:7px}
.tpt-live-week .tpt-live-title{font-size:clamp(19px,2.2vw,24px);-webkit-line-clamp:2}
.tpt-live-week .tpt-live-cta{margin-top:4px}
.tpt-live-week-list{list-style:none;margin:2px 0 4px;padding:0;display:grid;gap:0}
.tpt-live-week-item{border-bottom:1px solid rgba(255,255,255,.16)}
.tpt-live-week-item:last-child{border-bottom:0}
.tpt-live-week-row{display:grid;grid-template-columns:70px 52px minmax(0,1fr);gap:8px;align-items:baseline;padding:6px 0;text-decoration:none;color:#fff}
.tpt-live-week-row:hover .tpt-live-week-title{color:#F8B133}
.tpt-live-week-day{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#F8B133;white-space:nowrap}
.tpt-live-week-time{font-size:11px;font-weight:800;color:#fff;white-space:nowrap}
.tpt-live-week-title{font-size:12px;font-weight:600;color:rgba(255,255,255,.92);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1024px){.tpt-live-week-row{grid-template-columns:64px 46px minmax(0,1fr)}}
@media (max-width:640px){.tpt-live-week-row{grid-template-columns:60px 44px minmax(0,1fr);padding:5px 0}.tpt-live-week-title{font-size:11.5px}}

@media (max-width:1024px){
  .tpt-live{min-height:390px}
}
@media (max-width:640px){
  .tpt-live{min-height:350px;border-radius:20px}
  .tpt-live-content{padding:20px}
  .tpt-live-title{font-size:22px}
  .tpt-live-excerpt{font-size:13px}
  .tpt-live-icon{top:16px;right:16px;width:46px;height:46px;border-radius:14px}
  .tpt-live-dots{right:16px;bottom:16px}
}

/* ---------------------------------------------------------------
   Slim responsive header (scoped to Elementor header section)
--------------------------------------------------------------- */
.tpt-header-slim .elementor-element-0b2ba38{
  background-color:#133256 !important;
  background-image:none !important;
  filter:none !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}
.tpt-header-slim .elementor-element-0b2ba38 > .elementor-background-overlay{
  opacity:.14 !important;
  mix-blend-mode:luminosity !important;
  background-color:#133256 !important;
  filter:none !important;
}
.tpt-header-slim .elementor-element-0b2ba38 > .elementor-container{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  flex-wrap:nowrap !important;
  gap:20px !important;
  min-height:42px !important;
  max-width:1400px !important;
  margin:0 auto !important;
  padding:0 18px !important;
  box-sizing:border-box !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-column{
  width:auto !important;
  max-width:none !important;
  flex:0 0 auto !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-column > .elementor-widget-wrap{
  padding:0 !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-b65b96a,
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-880e570{
  display:none !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-column,
.tpt-header-slim .elementor-element-0b2ba38 .elementor-column > .elementor-widget-wrap{
  padding:0 !important;
  margin:0 !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .tpt-app-download-btn{
  margin:0 !important;
  padding:6px 10px !important;
  font-size:11px !important;
  box-shadow:none !important;
  background:#F8B133 !important;
  color:#0A2239 !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .tpt-app-download-btn span{
  color:#0A2239 !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .tpt-app-download-btn:hover{
  background:#FFD06A !important;
  color:#0A2239 !important;
}
@media (min-width:1025px){
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-4eefaf9{display:none !important}
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-e50190f{
  order:1;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-items{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:16px !important;
  margin:0 !important;
  padding:0 !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-item{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1.2 !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-icon,
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-icon i,
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-icon svg{
  color:#FFFFFF !important;
  fill:currentColor !important;
  font-size:12px !important;
  line-height:1 !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-icon i{
  color:#FFFFFF !important;
  font-size:12px !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-text{
  color:#fff !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.2 !important;
  letter-spacing:.01em !important;
  padding-left:0 !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf a{
  color:inherit !important;
  text-decoration:none !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-social-icon{
  width:26px !important;
  height:26px !important;
  font-size:10px !important;
  border-radius:999px !important;
  background-color:rgba(255,255,255,.13) !important;
  color:#fff !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-social-icon:hover{
  background-color:#A80606 !important;
  color:#fff !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-social-icons-wrapper{
  gap:5px !important;
}
.tpt-header-slim .elementor-element-0b2ba38 .elementor-widget-container{
  margin:0 !important;
}

/* Desktop: hide the first spacer/social column, show contact + social on the right */
@media (min-width:1025px){
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-e69bbc5{display:none !important}
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-dca2c3b{display:flex !important;order:2}
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-e50190f{display:flex !important}
}

/* Tablet: one centred row, using the social icons from the first column */
@media (min-width:768px) and (max-width:1024px){
  .tpt-header-slim .elementor-element-0b2ba38 > .elementor-container{
    justify-content:center !important;
    gap:14px !important;
    min-height:44px !important;
    padding:0 12px !important;
  }
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-e69bbc5{display:flex !important;order:3;width:auto !important;max-width:max-content !important}
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-205bf73{width:auto !important;max-width:none !important}
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-4eefaf9{display:flex !important;order:2;width:auto !important}
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-dca2c3b{display:none !important}
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-items{justify-content:center !important}
}

/* Mobile: two compact centred rows */
@media (max-width:767px){
  .tpt-header-slim .elementor-element-0b2ba38 > .elementor-container{
    flex-direction:column !important;
    justify-content:center !important;
    gap:3px !important;
    min-height:0 !important;
    padding:6px 10px !important;
  }
  .tpt-header-slim .elementor-element-0b2ba38 > .elementor-container{
    flex-direction:row !important;
    flex-wrap:wrap !important;
    justify-content:center !important;
    gap:6px 12px !important;
  }
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-e50190f,
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-e69bbc5,
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-4eefaf9{
    display:flex !important;
    width:auto !important;
    flex:0 0 auto !important;
    justify-content:center !important;
    align-items:center !important;
  }
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-e50190f{order:1;width:100% !important}
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-4eefaf9{order:2}
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-e69bbc5{order:3;width:auto !important;max-width:max-content !important}
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-205bf73{width:auto !important;max-width:none !important}
  .tpt-header-slim .elementor-element-0b2ba38 .tpt-app-download-btn{padding:5px 9px !important;font-size:10.5px !important;gap:5px !important;height:26px !important}
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-items{
    justify-content:center !important;
    gap:2px 12px !important;
    flex-wrap:wrap !important;
  }
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-item{
    white-space:nowrap !important;
  }
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-element-36cbebf .elementor-icon-list-text{
    font-size:10.5px !important;
  }
  .tpt-header-slim .elementor-element-0b2ba38 .elementor-social-icon{
    width:24px !important;
    height:24px !important;
    font-size:9px !important;
  }
}

/* Ticker iframe: keep the red bar visible while the embed loads. */
#tpt-news-ticker{background:#A80606;min-height:44px;}


/* TPT_TICKER_ENTRANCE_V1_20261107: hide the red bar until we know whether
   the ticker has live announcements, then give it an obvious entrance. */
html.tpt-ticker-js .elementor-element-4c74889{visibility:hidden}
html.tpt-ticker-js .elementor-element-4c74889:not(.tpt-ticker-enter){animation:none!important}
@keyframes tptTickerDrop{
  0%{transform:translateY(-120%) scaleY(.92);opacity:0}
  45%{transform:translateY(0) scaleY(1.05);opacity:1}
  65%{transform:translateY(0) scaleY(.99)}
  82%{transform:translateY(0) scaleY(1.01)}
  100%{transform:translateY(0) scaleY(1);opacity:1}
}
@keyframes tptTickerGlow{
  0%,100%{box-shadow:inset 0 0 0 0 rgba(248,177,51,0);filter:none}
  20%{box-shadow:inset 0 0 0 6px rgba(248,177,51,1);filter:brightness(1.18)}
  45%{box-shadow:inset 0 0 0 3px rgba(248,177,51,.75);filter:brightness(1.08)}
  70%{box-shadow:inset 0 0 0 5px rgba(248,177,51,.9);filter:brightness(1.12)}
}
@keyframes tptTickerShine{
  0%{transform:translateX(-130%) skewX(-12deg)}
  100%{transform:translateX(130%) skewX(-12deg)}
}
.elementor-element-4c74889.tpt-ticker-enter{
  position:relative;
  overflow:hidden;
  animation:tptTickerDrop .95s cubic-bezier(.18,.9,.28,1.08) both,
            tptTickerGlow 1.5s ease .1s 1 !important;
  will-change:transform,filter;
}
.elementor-element-4c74889.tpt-ticker-enter::after{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:5;
  pointer-events:none;
  background:linear-gradient(100deg,transparent 25%,rgba(255,220,130,.75) 45%,rgba(255,220,130,.15) 55%,transparent 75%);
  animation:tptTickerShine .95s ease .12s 1 both;
}
@media (prefers-reduced-motion: reduce){
  .elementor-element-4c74889.tpt-ticker-enter{animation:none !important}
  .elementor-element-4c74889.tpt-ticker-enter::after{animation:none !important}
}/**
 * TPT Hub Showcase - scoped front-end styles.
 * Marker: TPT_HUB_SHOWCASE_WP_V1_20261106
 */

.tpt-hub-showcase {
    --tpt-navy: #0a2239;
    --tpt-gold: #f5b324;
    --tpt-cream: #fbf7ee;
    --tpt-ink: #1d2b36;
    --tpt-muted: #5c6b76;
    --tpt-line: #e6dfd1;
    box-sizing: border-box;
    margin: 1.75rem 0;
    color: var(--tpt-ink);
    font-family: inherit;
}

.tpt-hub-showcase *,
.tpt-hub-showcase *::before,
.tpt-hub-showcase *::after {
    box-sizing: border-box;
}

.tpt-hub-showcase__title {
    margin: 0 0 0.4rem;
    color: var(--tpt-navy);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    line-height: 1.2;
}

.tpt-hub-showcase__intro {
    margin: 0 0 1.1rem;
    max-width: 52rem;
    color: var(--tpt-muted);
    font-size: 1rem;
    line-height: 1.55;
}

.tpt-hub-showcase__grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.tpt-hub-showcase__card {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--tpt-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(10, 34, 57, 0.06);
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.tpt-hub-showcase__card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(10, 34, 57, 0.12);
}

.tpt-hub-showcase__card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.tpt-hub-showcase__media {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 132px;
    background: linear-gradient(135deg, var(--tpt-navy), #143b5e);
    overflow: hidden;
}

.tpt-hub-showcase__media img {
    display: block;
    width: 100%;
    height: 168px;
    object-fit: cover;
}

.tpt-hub-showcase__date {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.45rem 0.8rem;
    border-radius: 999px;
    background: var(--tpt-gold);
    color: var(--tpt-navy);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-align: center;
}

.tpt-hub-showcase__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 1rem 1.05rem 1.15rem;
}

.tpt-hub-showcase__eyebrow {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: var(--tpt-cream);
    color: #7a5a10;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.tpt-hub-showcase__name {
    margin: 0.15rem 0 0;
    color: var(--tpt-navy);
    font-size: 1.08rem;
    line-height: 1.3;
}

.tpt-hub-showcase__meta {
    margin: 0;
    color: var(--tpt-muted);
    font-size: 0.86rem;
    line-height: 1.45;
}

.tpt-hub-showcase__summary {
    margin: 0.15rem 0 0;
    color: var(--tpt-ink);
    font-size: 0.9rem;
    line-height: 1.5;
}

.tpt-hub-showcase__pill {
    display: inline-block;
    margin-top: 0.25rem;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    background: #e8f4ec;
    color: #1f6b3a;
    font-size: 0.75rem;
    font-weight: 700;
}

.tpt-hub-showcase__cta {
    margin-top: auto;
    padding-top: 0.65rem;
    color: var(--tpt-navy);
    font-size: 0.88rem;
    font-weight: 700;
}

.tpt-hub-showcase__cta span {
    color: var(--tpt-gold);
}

/* TPT_HUB_SHOWCASE_VOLUNTEER_ELEMENTS_V1_20261106: real direct Apply button. */
.tpt-hub-showcase__button {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: auto;
    padding: 0.55rem 0.95rem;
    border-radius: 999px;
    background: var(--tpt-navy);
    color: #fff;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    transition: background 150ms ease;
}

.tpt-hub-showcase__button:hover,
.tpt-hub-showcase__button:focus {
    background: #143b5e;
    color: #fff;
    text-decoration: none;
}

.tpt-hub-showcase__button span {
    color: var(--tpt-gold);
}

.tpt-hub-showcase__footer {
    margin-top: 1rem;
}

.tpt-hub-showcase__more {
    color: var(--tpt-navy);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: var(--tpt-gold);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.tpt-hub-showcase__empty {
    margin: 0.5rem 0;
    padding: 1rem;
    border: 1px dashed var(--tpt-line);
    border-radius: 12px;
    background: var(--tpt-cream);
    color: var(--tpt-muted);
}

/* List layout: one item per row with media on the left. */
.tpt-hub-showcase--list .tpt-hub-showcase__grid {
    grid-template-columns: 1fr;
}

.tpt-hub-showcase--list .tpt-hub-showcase__card-link,
.tpt-hub-showcase--list .tpt-hub-showcase__card--opportunity {
    flex-direction: row;
    align-items: stretch;
}

.tpt-hub-showcase--list .tpt-hub-showcase__media,
.tpt-hub-showcase--list .tpt-hub-showcase__card--opportunity .tpt-hub-showcase__media {
    flex: 0 0 190px;
    min-height: 100%;
}

.tpt-hub-showcase--list .tpt-hub-showcase__media img {
    height: 100%;
    min-height: 132px;
}

.tpt-hub-showcase--list .tpt-hub-showcase__body,
.tpt-hub-showcase--list .tpt-hub-showcase__card--opportunity .tpt-hub-showcase__body {
    justify-content: center;
}

/* Compact layout: text-only rows. */
.tpt-hub-showcase--compact .tpt-hub-showcase__grid {
    grid-template-columns: 1fr;
    gap: 0.6rem;
}

.tpt-hub-showcase--compact .tpt-hub-showcase__card {
    border-radius: 10px;
    box-shadow: none;
}

.tpt-hub-showcase--compact .tpt-hub-showcase__body {
    padding: 0.75rem 0.9rem;
}

.tpt-hub-showcase--compact .tpt-hub-showcase__name {
    font-size: 0.98rem;
}

.tpt-hub-showcase--compact .tpt-hub-showcase__cta {
    padding-top: 0.3rem;
}

@media (max-width: 560px) {
    .tpt-hub-showcase__grid {
        grid-template-columns: 1fr;
    }

    .tpt-hub-showcase--list .tpt-hub-showcase__card-link {
        flex-direction: column;
    }

    .tpt-hub-showcase--list .tpt-hub-showcase__media {
        flex-basis: auto;
    }

    .tpt-hub-showcase--list .tpt-hub-showcase__media img {
        height: 168px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tpt-hub-showcase__card {
        transition: none;
    }
}

/* Visitor search */
.tpt-hub-showcase__search {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin: 0 0 1.1rem;
}

.tpt-hub-showcase__search input[type="search"] {
    flex: 1 1 240px;
    min-height: 44px;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--tpt-line);
    border-radius: 10px;
    background: #fff;
    color: var(--tpt-ink);
    font: inherit;
}

.tpt-hub-showcase__search input[type="search"]:focus {
    border-color: var(--tpt-gold);
    outline: 2px solid rgba(245, 179, 36, 0.35);
    outline-offset: 1px;
}

.tpt-hub-showcase__search button {
    min-height: 44px;
    padding: 0.55rem 1.1rem;
    border: 0;
    border-radius: 10px;
    background: var(--tpt-navy);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.tpt-hub-showcase__search button:hover,
.tpt-hub-showcase__search button:focus {
    background: #143b5e;
}

.tpt-hub-showcase__clear {
    color: var(--tpt-muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.tpt-hub-showcase__section-title {
    margin: 1.4rem 0 0.7rem;
    color: var(--tpt-navy);
    font-size: 1.12rem;
    line-height: 1.25;
}

.tpt-hub-showcase__section-title:first-of-type {
    margin-top: 0.2rem;
}

.tpt-hub-showcase__grid--events,
.tpt-hub-showcase__grid--roles {
    margin-bottom: 0.35rem;
}

@media (max-width: 560px) {
    .tpt-hub-showcase__search {
        align-items: stretch;
    }

    .tpt-hub-showcase__search button {
        width: 100%;
    }
}/**
 * TPT Seasonal Logo Badge & Theme
 * Marker: TPT_SEASONAL_LOGO_BADGE_V23B_20261107
 */

/* ---------------------------------------------------------------
   Badge host and base badge
   --------------------------------------------------------------- */
.tpt-seasonal-badge-host {
    position: relative;
}

.tpt-seasonal-badge {
    position: absolute;
    z-index: 9;
    display: block;
    width: 38px;
    height: 38px;
    line-height: 0;
    pointer-events: auto;
    cursor: help;
    transform: rotate(-6deg);
}

.tpt-seasonal-badge img,
.tpt-seasonal-badge svg {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    border: 0;
    pointer-events: none;
}

.tpt-seasonal-badge svg {
    overflow: visible;
}

.tpt-seasonal-badge--poppy img,
.tpt-seasonal-badge--daffodil img,
.tpt-seasonal-badge--poppy svg,
.tpt-seasonal-badge--daffodil svg {
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
    animation: tpt-glow 3.2s ease-in-out infinite;
}

.tpt-seasonal-badge--poppy {
    animation: tpt-sway-l 5s ease-in-out infinite;
    transform-origin: 50% 8%;
}

.tpt-seasonal-badge--daffodil {
    animation: tpt-sway-l 4.2s ease-in-out infinite;
    transform-origin: 50% 8%;
}

.tpt-seasonal-badge--top-left.tpt-seasonal-badge--poppy,
.tpt-seasonal-badge--top-left.tpt-seasonal-badge--daffodil {
    animation-name: tpt-sway-r;
}

.tpt-seasonal-badge--festival {
    transform: none;
    animation: none;
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.4));
}

/* Placement — the default is bottom right, sitting slightly over the corner. */
.tpt-seasonal-badge--bottom-right {
    bottom: -10%;
    right: -10%;
}

.tpt-seasonal-badge--bottom-left {
    bottom: -16%;
    left: -16%;
}

.tpt-seasonal-badge--top-right {
    top: -16%;
    right: -16%;
}

.tpt-seasonal-badge--top-left {
    top: -16%;
    left: -16%;
}

.tpt-seasonal-badge--festival.tpt-seasonal-badge--bottom-right {
    bottom: -14%;
    right: -14%;
}

.tpt-seasonal-badge--festival.tpt-seasonal-badge--bottom-left {
    bottom: -28%;
    left: -28%;
}

.tpt-seasonal-badge--festival.tpt-seasonal-badge--top-right {
    top: -28%;
    right: -28%;
}

.tpt-seasonal-badge--festival.tpt-seasonal-badge--top-left {
    top: -28%;
    left: -28%;
}

.tpt-seasonal-badge--nativity.tpt-seasonal-badge--bottom-right {
    bottom: -16%;
    right: -16%;
}

.tpt-seasonal-badge--nativity.tpt-seasonal-badge--top-right {
    top: -42%;
    right: -42%;
}

/* Founding anniversary: the hat is worn on top of the logo.
   TPT_ANNIVERSARY_HAT_CURVE_V1_20261107: size the hat against the logo box
   and centre it on the crest of the mark (61.3% across), so the brim follows
   the top of the curve at every breakpoint instead of floating above it. */
.tpt-seasonal-badge.tpt-seasonal-badge--anniversary {
    top: -38%;
    left: 61.3%;
    right: auto;
    bottom: auto;
    width: 63.5%;
    height: 63.5%;
    max-width: none;
    max-height: none;
    transform: translateX(-50%) rotate(3deg);
    transform-origin: 50% 100%;
    animation: tpt-hat-sway 5s ease-in-out infinite;
}

@keyframes tpt-hat-sway {
    0%, 100% { transform: translateX(-50%) rotate(1deg); }
    50%      { transform: translateX(-50%) rotate(4deg); }
}

.tpt-party-number {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-number-pop 3s ease-in-out infinite;
}

@keyframes tpt-number-pop {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.12); }
}

.tpt-confetti-wrap {
    position: absolute;
    inset: -18%;
    z-index: 10;
    pointer-events: none;
}

.tpt-confetti {
    position: absolute;
    display: block;
    width: 5px;
    height: 8px;
    border-radius: 1px;
    opacity: 0;
    animation-name: tpt-confetti-fall;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

@keyframes tpt-confetti-fall {
    0%   { transform: translate3d(0, -10px, 0) rotate(0deg); opacity: 0; }
    15%  { opacity: 1; }
    80%  { opacity: 1; }
    100% { transform: translate3d(8px, 64px, 0) rotate(var(--tpt-confetti-rot, 180deg)); opacity: 0; }
}

/* ---------------------------------------------------------------
   Hover explanation tooltip
   --------------------------------------------------------------- */
.tpt-badge-tip {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 2147483002;
    max-width: 260px;
    padding: 9px 12px;
    border-radius: 8px;
    background: #0d1a2b;
    color: #f6efe0;
    border: 1px solid rgba(240, 180, 41, 0.6);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.4);
    font-family: "Raleway", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    font-size: 12.5px;
    line-height: 1.4;
    text-align: left;
    pointer-events: none;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.tpt-badge-tip.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.tpt-badge-tip::after {
    content: "";
    position: absolute;
    left: var(--tpt-tip-arrow, 50%);
    width: 0;
    height: 0;
    border: 6px solid transparent;
    transform: translateX(-50%);
}

.tpt-badge-tip--above::after {
    bottom: -12px;
    border-top-color: #0d1a2b;
}

.tpt-badge-tip--below::after {
    top: -12px;
    border-bottom-color: #0d1a2b;
}

/* ---------------------------------------------------------------
   Slimline seasonal footer greeting
   --------------------------------------------------------------- */
.tpt-seasonal-footer {
    display: block;
    width: 100%;
    margin: 0;
    padding: 12px 18px;
    text-align: center;
    font-family: "Raleway", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    line-height: 1.3;
    text-transform: uppercase;
    color: #ffe6a1;
    background: linear-gradient(90deg, #0a2a1c 0%, #14532d 50%, #0a2a1c 100%);
    border-top: 1px solid rgba(255, 230, 161, 0.35);
}

.tpt-seasonal-footer-inner {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tpt-seasonal-footer svg {
    display: block;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.tpt-seasonal-footer--easter {
    color: #fff1d6;
    background: linear-gradient(90deg, #26113c 0%, #4b2a6b 50%, #26113c 100%);
    border-top-color: rgba(255, 241, 214, 0.35);
}

/* ---------------------------------------------------------------
   Logo aura + sparkles
   --------------------------------------------------------------- */
.tpt-logo-aura {
    position: absolute;
    inset: -12%;
    border-radius: 50%;
    pointer-events: none;
    z-index: 7;
}

.tpt-logo-aura--gold {
    background: radial-gradient(circle, rgba(255, 224, 130, 0.55) 0%, rgba(255, 224, 130, 0.18) 42%, rgba(255, 224, 130, 0) 68%);
    animation: tpt-aura 3.6s ease-in-out infinite;
}

.tpt-logo-aura--rays {
    background: repeating-conic-gradient(from 0deg, rgba(255, 235, 170, 0.6) 0deg 4deg, rgba(255, 235, 170, 0) 4deg 22deg);
    -webkit-mask: radial-gradient(circle, transparent 40%, #000 52%, #000 74%, transparent 82%);
    mask: radial-gradient(circle, transparent 40%, #000 52%, #000 74%, transparent 82%);
    animation: tpt-rotate 30s linear infinite;
    transform-origin: center;
}

.tpt-logo-aura--fire {
    background: radial-gradient(circle at 50% 72%, rgba(255, 120, 40, 0.5) 0%, rgba(255, 120, 40, 0.12) 45%, rgba(255, 120, 40, 0) 70%);
    animation: tpt-aura 2.4s ease-in-out infinite;
}

.tpt-logo-sparkles {
    position: absolute;
    inset: -14%;
    pointer-events: none;
    z-index: 8;
}

.tpt-sparkle {
    position: absolute;
    display: block;
    width: 4px;
    height: 4px;
    margin: -2px 0 0 -2px;
    border-radius: 50%;
    background: #fff6c8;
    box-shadow: 0 0 6px 1px rgba(255, 233, 160, 0.9);
    animation: tpt-sparkle 2.8s ease-in-out infinite;
}

.tpt-logo-sparkles--fire .tpt-sparkle {
    background: #ffb347;
    box-shadow: 0 0 7px 1px rgba(255, 140, 60, 0.95);
}

/* ---------------------------------------------------------------
   SVG element animations
   --------------------------------------------------------------- */
.tpt-flame {
    transform-box: fill-box;
    transform-origin: 50% 100%;
    animation: tpt-flicker 1.5s ease-in-out infinite;
}

.tpt-twinkle {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-twinkle 2.6s ease-in-out infinite;
}

.tpt-sparkle-path {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-twinkle 2.2s ease-in-out infinite;
}

.tpt-palm {
    transform-box: fill-box;
    transform-origin: 50% 100%;
    animation: tpt-sway-soft 4.5s ease-in-out infinite;
}

.tpt-cross--good {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-solemn 5.5s ease-in-out infinite;
}

.tpt-chalice,
.tpt-float {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-float 4s ease-in-out infinite;
}

.tpt-easter-rays {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-rotate 26s linear infinite;
}

.tpt-dove {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-float 4.5s ease-in-out infinite;
}

.tpt-eastertide {
    transform-box: fill-box;
    transform-origin: 50% 100%;
    animation: tpt-sway-soft 5s ease-in-out infinite;
}

.tpt-nativity-glow {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-aura 4s ease-in-out infinite;
}

/* ---------------------------------------------------------------
   Keyframes
   --------------------------------------------------------------- */
@keyframes tpt-sway-l {
    0%, 100% { transform: rotate(-6deg); }
    50%      { transform: rotate(4deg); }
}

@keyframes tpt-sway-r {
    0%, 100% { transform: rotate(6deg); }
    50%      { transform: rotate(-4deg); }
}

@keyframes tpt-sway-soft {
    0%, 100% { transform: rotate(-3deg); }
    50%      { transform: rotate(3deg); }
}

@keyframes tpt-flicker {
    0%, 100% { transform: scaleY(1) translateY(0); opacity: 0.95; }
    50%      { transform: scaleY(1.12) translateY(-0.5px); opacity: 1; }
}

@keyframes tpt-twinkle {
    0%, 100% { opacity: 0.65; transform: scale(0.94); }
    50%      { opacity: 1; transform: scale(1.08); }
}

@keyframes tpt-sparkle {
    0%, 100% { opacity: 0; transform: scale(0.4); }
    50%      { opacity: 1; transform: scale(1); }
}

@keyframes tpt-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-1.6px); }
}

@keyframes tpt-rotate {
    to { transform: rotate(360deg); }
}

@keyframes tpt-aura {
    0%, 100% { opacity: 0.55; transform: scale(0.97); }
    50%      { opacity: 1; transform: scale(1.05); }
}

@keyframes tpt-solemn {
    0%, 100% { opacity: 0.85; }
    50%      { opacity: 1; }
}

@keyframes tpt-glow {
    0%, 100% { filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35)) drop-shadow(0 0 0 rgba(255, 220, 120, 0)); }
    50%      { filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35)) drop-shadow(0 0 6px rgba(255, 220, 120, 0.9)); }
}

/* ---------------------------------------------------------------
   Winter theme
   --------------------------------------------------------------- */
body.tpt-winter-theme::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9998;
    background:
        radial-gradient(1200px 480px at 50% -8%, rgba(190, 220, 255, 0.22), transparent 62%),
        radial-gradient(900px 500px at 50% 0%, rgba(160, 200, 255, 0.12), transparent 70%);
    mix-blend-mode: screen;
}

.tpt-winter-layer {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9999;
    overflow: hidden;
}

.tpt-snowflake {
    position: absolute;
    top: -8vh;
    display: block;
    width: var(--tpt-snow-size, 5px);
    height: var(--tpt-snow-size, 5px);
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 0 5px rgba(255, 255, 255, 0.9);
    animation-name: tpt-snowfall;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    will-change: transform;
}

@keyframes tpt-snowfall {
    0%   { transform: translate3d(0, -10vh, 0) rotate(0deg); }
    100% { transform: translate3d(var(--tpt-snow-drift, 0px), 112vh, 0) rotate(360deg); }
}

/* ---------------------------------------------------------------
   Full-page Christmas & Easter greetings
   --------------------------------------------------------------- */
body.tpt-overlay-open {
    overflow: hidden;
}

.tpt-seasonal-overlay,
.tpt-seasonal-overlay *,
.tpt-seasonal-overlay *::before,
.tpt-seasonal-overlay *::after {
    box-sizing: border-box;
}

.tpt-seasonal-overlay {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    color: #ffffff;
    font-family: "Raleway", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    transition: opacity 0.55s ease, visibility 0s linear 0.55s;
}

.tpt-seasonal-overlay.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity 0.55s ease;
}

.tpt-seasonal-overlay--nativity {
    background:
        radial-gradient(900px 620px at 50% 84%, rgba(255, 200, 120, 0.22), transparent 64%),
        radial-gradient(1200px 740px at 50% 114%, rgba(255, 170, 80, 0.2), transparent 72%),
        linear-gradient(180deg, #050b17 0%, #0a1730 46%, #122a4a 100%);
}

.tpt-seasonal-overlay--resurrection {
    background:
        radial-gradient(1100px 720px at 50% 86%, rgba(255, 190, 120, 0.45), transparent 64%),
        radial-gradient(820px 540px at 50% 114%, rgba(255, 150, 90, 0.35), transparent 74%),
        linear-gradient(180deg, #120b2e 0%, #35204a 40%, #8a4b55 72%, #e0a26a 100%);
}

.tpt-overlay-inner {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.tpt-overlay-sky {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.tpt-overlay-star-dot {
    position: absolute;
    display: block;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 0 6px rgba(255, 255, 255, 0.9);
    animation: tpt-star-twinkle 3s ease-in-out infinite;
}

@keyframes tpt-star-twinkle {
    0%, 100% { opacity: 0.25; transform: scale(0.8); }
    50%      { opacity: 1; transform: scale(1.25); }
}

.tpt-shooting-star {
    position: absolute;
    top: var(--sy, 10%);
    left: var(--sx, 20%);
    width: 130px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), #ffffff 65%, #ffe6a1);
    box-shadow: 0 0 8px rgba(255, 240, 190, 0.8);
    opacity: 0;
    transform: rotate(34deg);
    animation: tpt-shoot 16s linear infinite;
}

.tpt-shoot-1 { animation-delay: var(--sd, 4s); }
.tpt-shoot-2 { animation-delay: var(--sd, 9s); }
.tpt-shoot-3 { animation-delay: var(--sd, 14s); }

@keyframes tpt-shoot {
    0%, 92% { opacity: 0; transform: translate(0, 0) rotate(34deg); }
    93%     { opacity: 1; }
    97%     { opacity: 1; }
    100%    { opacity: 0; transform: translate(-360px, 250px) rotate(34deg); }
}

.tpt-overlay-bloom {
    position: absolute;
    left: 50%;
    top: 6%;
    width: 80vw;
    height: 56vh;
    transform: translateX(-50%);
    z-index: 1;
    pointer-events: none;
    background: radial-gradient(ellipse at center, rgba(255, 214, 140, 0.2) 0%, rgba(255, 200, 110, 0.06) 42%, rgba(255, 200, 110, 0) 70%);
    animation: tpt-bloom-pulse 7s ease-in-out infinite;
}

@keyframes tpt-bloom-pulse {
    0%, 100% { opacity: 0.65; transform: translateX(-50%) scale(0.96); }
    50%      { opacity: 1; transform: translateX(-50%) scale(1.04); }
}

.tpt-overlay-burst {
    position: absolute;
    z-index: 1;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0;
    background: radial-gradient(circle, rgba(255, 245, 200, 0.75) 0%, rgba(255, 220, 130, 0.35) 35%, rgba(255, 220, 130, 0) 70%);
}

.tpt-seasonal-overlay--nativity .tpt-overlay-burst {
    top: 3%;
    left: 50%;
    transform: translateX(-50%) scale(0.2);
}

.tpt-seasonal-overlay--resurrection .tpt-overlay-burst {
    top: 58%;
    left: 64%;
    transform: translateX(-50%) scale(0.2);
}

.tpt-seasonal-overlay.is-open .tpt-overlay-burst {
    animation: tpt-burst 2.2s ease-out 0.2s both;
}

@keyframes tpt-burst {
    0%   { opacity: 0; transform: translateX(-50%) scale(0.15); }
    20%  { opacity: 1; }
    100% { opacity: 0; transform: translateX(-50%) scale(2.6); }
}

.tpt-overlay-brand {
    position: absolute;
    top: clamp(10px, 2.2vh, 26px);
    left: clamp(10px, 2vw, 28px);
    z-index: 12;
    width: clamp(50px, 5.6vw, 86px);
    pointer-events: none;
    filter: drop-shadow(0 4px 16px rgba(0, 0, 0, 0.55));
}

.tpt-overlay-brand::before {
    content: "";
    position: absolute;
    inset: -38%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 220, 130, 0.22), rgba(255, 220, 130, 0) 70%);
    z-index: -1;
}

.tpt-overlay-brand img {
    display: block;
    width: 100%;
    height: auto;
}

.tpt-overlay-mote {
    position: absolute;
    z-index: 1;
    display: block;
    width: var(--mote-size, 4px);
    height: var(--mote-size, 4px);
    border-radius: 50%;
    pointer-events: none;
    background: radial-gradient(circle, #fff6c8 0%, #ffd166 55%, rgba(255, 209, 102, 0) 100%);
    box-shadow: 0 0 8px rgba(255, 225, 150, 0.8);
    opacity: 0;
    animation-name: tpt-mote;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-delay: var(--mote-delay, 0s);
}

@keyframes tpt-mote {
    0%   { transform: translate3d(0, 26px, 0) scale(0.6); opacity: 0; }
    12%  { opacity: 0.85; }
    55%  { opacity: 0.7; }
    100% { transform: translate3d(var(--mote-drift, 0px), -180px, 0) scale(1); opacity: 0; }
}

.tpt-overlay-bigstar {
    position: absolute;
    top: clamp(8px, 1.8vh, 24px);
    left: 50%;
    width: clamp(64px, 8vw, 110px);
    transform: translateX(-50%);
    z-index: 2;
    pointer-events: none;
    filter: drop-shadow(0 0 26px rgba(255, 220, 120, 0.55));
    transform-origin: 50% 0;
}

.tpt-overlay-bigstar svg {
    width: 100%;
    height: auto;
    display: block;
}

.tpt-overlay-star-glow {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-star-pulse 3.4s ease-in-out infinite;
}

.tpt-overlay-star-rays {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-rotate 44s linear infinite;
}

@keyframes tpt-star-pulse {
    0%, 100% { transform: scale(0.94); }
    50%      { transform: scale(1.06); }
}

.tpt-overlay-angels {
    position: absolute;
    top: clamp(38px, 7vh, 92px);
    left: 50%;
    width: min(1200px, 96vw);
    transform: translateX(-50%);
    z-index: 1;
    pointer-events: none;
    opacity: 0.55;
}

.tpt-overlay-angels svg {
    width: 100%;
    height: auto;
    display: block;
}

.tpt-angel {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-angel-float 6s ease-in-out infinite;
}

@keyframes tpt-angel-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-10px); }
}

.tpt-overlay-main {
    position: relative;
    z-index: 5;
    flex: 0 0 auto;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    padding: clamp(96px, 12vh, 142px) 22px 0;
    text-align: center;
}

.tpt-seasonal-overlay--resurrection .tpt-overlay-main {
    padding-top: clamp(26px, 4.5vh, 54px);
}

.tpt-overlay-kicker {
    margin: 0 0 8px;
    font-family: "Raleway", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    font-size: clamp(10px, 1.1vw, 13px);
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: #ffd98a;
    opacity: 0.95;
}

.tpt-overlay-title {
    margin: 0 0 6px;
    font-family: "Raleway", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    font-weight: 800;
    font-size: clamp(40px, 7.4vw, 88px);
    line-height: 1.02;
    letter-spacing: -0.015em;
    color: #ffe6a1;
    background: linear-gradient(100deg, #ffe6a1 0%, #fff8d8 32%, #f0b429 55%, #ffe6a1 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 3px 20px rgba(0, 0, 0, 0.45));
    animation: tpt-title-shimmer 7s linear infinite;
}

.tpt-seasonal-overlay--resurrection .tpt-overlay-title {
    background: linear-gradient(100deg, #fff3d6 0%, #ffffff 32%, #ffd98a 55%, #fff3d6 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

@keyframes tpt-title-shimmer {
    0%   { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}

.tpt-overlay-sub {
    margin: 0 0 14px;
    font-family: "Raleway", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    font-size: clamp(13px, 1.55vw, 18px);
    font-weight: 500;
    color: #f6efe0;
    opacity: 0.94;
}

.tpt-overlay-verse {
    max-width: 780px;
    margin: 0 auto 14px;
    padding: 10px 18px;
    border-top: 1px solid rgba(255, 230, 161, 0.32);
    border-bottom: 1px solid rgba(255, 230, 161, 0.32);
    border-radius: 10px;
    background: rgba(5, 11, 23, 0.32);
    transition: opacity 0.35s ease, transform 0.35s ease;
}

.tpt-overlay-verse.is-changing {
    opacity: 0;
    transform: translateY(5px);
}

.tpt-overlay-verse-text {
    margin: 0 0 7px;
    font-family: "Raleway", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    font-weight: 500;
    font-style: italic;
    font-size: clamp(13px, 1.5vw, 19px);
    line-height: 1.42;
    color: #fff8e6;
}

.tpt-overlay-verse-ref {
    display: block;
    font-family: "Raleway", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: clamp(10px, 1vw, 12px);
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #ffd98a;
}

.tpt-overlay-enter {
    appearance: none;
    border: 0;
    cursor: pointer;
    font-family: "Raleway", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    font-weight: 800;
    font-size: clamp(12px, 1.15vw, 14px);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 13px 28px;
    border-radius: 999px;
    background: linear-gradient(180deg, #ffe08a, #f0b429 60%, #d99a1a);
    color: #2b2100;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.6);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tpt-overlay-enter:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.tpt-overlay-enter:focus-visible,
.tpt-overlay-skip:focus-visible {
    outline: 2px solid #ffe6a1;
    outline-offset: 3px;
}

.tpt-overlay-attribution {
    max-width: 700px;
    margin: 12px auto 0;
    font-family: "Raleway", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
    font-size: 9.5px;
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.01em;
    color: rgba(255, 255, 255, 0.55);
}

.tpt-overlay-skip {
    position: fixed;
    top: max(14px, env(safe-area-inset-top));
    right: max(14px, env(safe-area-inset-right));
    z-index: 12;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(8, 16, 30, 0.45);
    color: #ffffff;
    cursor: pointer;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.tpt-overlay-scene {
    position: relative;
    z-index: 3;
    transform-origin: 50% 100%;
    flex: 0 0 auto;
    width: 100%;
    height: clamp(230px, 40vh, 520px);
    margin-top: auto;
    pointer-events: none;
}

.tpt-seasonal-overlay--resurrection .tpt-overlay-scene {
    height: clamp(260px, 44vh, 560px);
}

.tpt-overlay-scene svg {
    display: block;
    width: 100%;
    height: 100%;
}

/* Scene animations */
.tpt-nat-mary,
.tpt-nat-joseph {
    transform-box: fill-box;
    transform-origin: 50% 100%;
    animation: tpt-figure-sway 7s ease-in-out infinite;
}

.tpt-nat-joseph {
    animation-delay: -2.4s;
}

@keyframes tpt-figure-sway {
    0%, 100% { transform: rotate(-1.1deg); }
    50%      { transform: rotate(1.1deg); }
}

.tpt-halo {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-halo-pulse 4.5s ease-in-out infinite;
}

@keyframes tpt-halo-pulse {
    0%, 100% { opacity: 0.45; transform: scale(0.96); }
    50%      { opacity: 0.95; transform: scale(1.06); }
}

.tpt-tomb-light {
    animation: tpt-tomb-pulse 4s ease-in-out infinite;
}

@keyframes tpt-tomb-pulse {
    0%, 100% { opacity: 0.82; }
    50%      { opacity: 1; }
}

.tpt-res-cross {
    animation: tpt-solemn 7s ease-in-out infinite;
}

.tpt-nat-baby > circle:first-child {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-aura 4s ease-in-out infinite;
}

.tpt-res-rays {
    transform-box: view-box;
    transform-origin: 600px 440px;
    animation: tpt-rotate 80s linear infinite;
}

.tpt-res-stone {
    transform-box: fill-box;
    transform-origin: center;
}

.tpt-res-stone--play {
    animation: tpt-stone-roll 2.8s cubic-bezier(0.25, 0.8, 0.3, 1) 0.5s forwards;
}

@keyframes tpt-stone-roll {
    0%   { transform: translate(0, 0) rotate(0deg); }
    70%  { transform: translate(96px, 18px) rotate(48deg); }
    100% { transform: translate(116px, 26px) rotate(58deg); }
}

.tpt-res-angel {
    transform-box: fill-box;
    transform-origin: center;
    animation: tpt-angel-float 7s ease-in-out infinite;
}

.tpt-res-tomb {
    animation: tpt-solemn 6s ease-in-out infinite;
}

/* ---------------------------------------------------------------
   Grand entrance sequence (restarts each time the overlay opens)
   --------------------------------------------------------------- */
.tpt-seasonal-overlay.is-open .tpt-overlay-bigstar {
    animation: tpt-star-arrive 1.7s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.tpt-seasonal-overlay.is-open .tpt-overlay-angels {
    animation: tpt-angels-arrive 2.2s cubic-bezier(0.2, 0.8, 0.2, 1) 0.15s both;
}

.tpt-seasonal-overlay.is-open .tpt-overlay-scene {
    animation: tpt-scene-rise 2.4s cubic-bezier(0.2, 0.8, 0.2, 1) 0.2s both, tpt-scene-breathe 18s ease-in-out 2.6s infinite;
}

.tpt-seasonal-overlay.is-open .tpt-overlay-kicker {
    animation: tpt-fade-up 0.8s ease 0.55s backwards;
}

.tpt-seasonal-overlay.is-open .tpt-overlay-title {
    animation: tpt-title-in 1.1s cubic-bezier(0.2, 0.8, 0.2, 1) 0.7s backwards, tpt-title-shimmer 7s linear infinite;
}

.tpt-seasonal-overlay.is-open .tpt-overlay-sub {
    animation: tpt-fade-up 0.8s ease 1.25s backwards;
}

.tpt-seasonal-overlay.is-open .tpt-overlay-verse {
    animation: tpt-fade-up 0.8s ease 1.45s backwards;
}

.tpt-seasonal-overlay.is-open .tpt-overlay-enter {
    animation: tpt-pop-in 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) 1.75s backwards;
}

.tpt-seasonal-overlay.is-open .tpt-overlay-attribution {
    animation: tpt-fade-up 0.8s ease 2s backwards;
}

.tpt-seasonal-overlay.is-open .tpt-overlay-bloom {
    animation: tpt-bloom-in 1.8s ease both, tpt-bloom-pulse 7s ease-in-out 1.8s infinite;
}

.tpt-seasonal-overlay.is-open .tpt-overlay-brand {
    animation: tpt-brand-in 0.9s ease 0.1s backwards, tpt-brand-float 6.5s ease-in-out 1s infinite;
}

@keyframes tpt-brand-in {
    0%   { opacity: 0; transform: scale(0.82) translateY(-8px); }
    100% { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes tpt-brand-float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-4px); }
}

@keyframes tpt-star-arrive {
    0%   { opacity: 0; transform: translateX(-50%) scale(0.15) rotate(-50deg); }
    60%  { opacity: 1; transform: translateX(-50%) scale(1.18) rotate(10deg); }
    100% { opacity: 1; transform: translateX(-50%) scale(1) rotate(0deg); }
}

@keyframes tpt-angels-arrive {
    0%   { opacity: 0; transform: translateX(-50%) translateY(34px) scale(0.9); }
    100% { opacity: 0.55; transform: translateX(-50%) translateY(0) scale(1); }
}

@keyframes tpt-scene-rise {
    0%   { opacity: 0; transform: translateY(46px) scale(0.97); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes tpt-scene-breathe {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.025); }
}

.tpt-seasonal-overlay--resurrection.is-open .tpt-overlay-burst {
    animation-delay: 1.1s;
}

@keyframes tpt-fade-up {
    0%   { opacity: 0; transform: translateY(16px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes tpt-title-in {
    0%   { opacity: 0; transform: translateY(22px) scale(0.96); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes tpt-pop-in {
    0%   { opacity: 0; transform: scale(0.82); }
    100% { opacity: 1; transform: scale(1); }
}

@keyframes tpt-bloom-in {
    0%   { opacity: 0; }
    100% { opacity: 0.75; }
}

/* ---------------------------------------------------------------
   Animation switches
   --------------------------------------------------------------- */
.tpt-no-anim .tpt-seasonal-badge,
.tpt-no-anim .tpt-seasonal-badge *,
.tpt-no-anim .tpt-logo-aura,
.tpt-no-anim .tpt-logo-sparkles,
.tpt-no-anim .tpt-sparkle,
.tpt-no-anim-all .tpt-seasonal-badge,
.tpt-no-anim-all .tpt-seasonal-badge *,
.tpt-no-anim-all .tpt-logo-aura,
.tpt-no-anim-all .tpt-logo-sparkles,
.tpt-no-anim-all .tpt-sparkle,
.tpt-no-anim-all .tpt-winter-layer,
.tpt-no-anim-all .tpt-confetti,
.tpt-no-anim .tpt-confetti,
.tpt-no-anim-all .tpt-seasonal-overlay,
.tpt-no-anim-all .tpt-seasonal-overlay * {
    animation: none !important;
}

/* Tablet */
@media (max-width: 1024px) {
    .tpt-overlay-title {
        font-size: clamp(40px, 8.4vw, 74px);
    }
    .tpt-overlay-main {
        padding-top: clamp(86px, 11vh, 124px);
    }
}

/* Mobile */
@media (max-width: 767px) {
    .tpt-seasonal-badge {
        max-width: 32px;
        max-height: 32px;
    }
    .tpt-seasonal-badge--festival {
        max-width: 40px;
        max-height: 40px;
    }
    .tpt-seasonal-badge--nativity {
        max-width: 46px;
        max-height: 46px;
    }
    .tpt-seasonal-badge--bottom-right { bottom: -12%; right: -12%; }
    .tpt-seasonal-badge--bottom-left { bottom: -24%; left: -24%; }
    .tpt-seasonal-badge--top-right { top: -24%; right: -24%; }
    .tpt-seasonal-badge--top-left { top: -24%; left: -24%; }
    .tpt-seasonal-badge--festival.tpt-seasonal-badge--bottom-right { bottom: -18%; right: -18%; }
    .tpt-seasonal-badge--festival.tpt-seasonal-badge--bottom-left { bottom: -38%; left: -38%; }
    .tpt-seasonal-badge--festival.tpt-seasonal-badge--top-right { top: -38%; right: -38%; }
    .tpt-seasonal-badge--festival.tpt-seasonal-badge--top-left { top: -38%; left: -38%; }
    .tpt-seasonal-badge--nativity.tpt-seasonal-badge--bottom-right { bottom: -24%; right: -24%; }
    .tpt-seasonal-badge--nativity.tpt-seasonal-badge--top-right { top: -48%; right: -48%; }
    /* TPT_ANNIVERSARY_HAT_CURVE_V1_20261107: the anniversary hat scales
       with the logo, so it needs no separate mobile placement. */

    .tpt-seasonal-footer {
        font-size: 11px;
        letter-spacing: 0.1em;
        padding: 10px 14px;
    }
    .tpt-seasonal-footer svg {
        width: 15px;
        height: 15px;
    }

    .tpt-overlay-main {
        padding: clamp(88px, 11vh, 118px) 16px 0;
    }
    .tpt-seasonal-overlay--resurrection .tpt-overlay-main {
        padding-top: clamp(20px, 3.5vh, 40px);
    }
    .tpt-overlay-angels {
        top: 7vh;
        opacity: 0.42;
    }
    .tpt-overlay-bigstar {
        top: 8px;
        width: 64px;
    }
    .tpt-overlay-brand {
        top: 10px;
        left: 12px;
        width: 46px;
    }
    .tpt-overlay-title {
        font-size: clamp(34px, 10vw, 54px);
    }
    .tpt-overlay-sub {
        font-size: 13px;
        margin-bottom: 10px;
    }
    .tpt-overlay-verse {
        padding: 8px 10px;
        margin-bottom: 10px;
    }
    .tpt-overlay-verse-text {
        font-size: 13px;
        line-height: 1.38;
    }
    .tpt-overlay-enter {
        font-size: 12px;
        padding: 11px 22px;
    }
    .tpt-overlay-attribution {
        font-size: 8.5px;
        margin-top: 9px;
    }
    .tpt-overlay-scene {
        height: clamp(210px, 36vh, 340px);
    }
    .tpt-seasonal-overlay--resurrection .tpt-overlay-scene {
        height: clamp(220px, 38vh, 360px);
    }
    .tpt-seasonal-overlay--resurrection .tpt-overlay-scene svg {
        transform: translateX(-7%);
    }
}

/* Short screens */
@media (max-height: 700px) {
    .tpt-overlay-main {
        padding-top: clamp(70px, 10vh, 100px);
    }
    .tpt-seasonal-overlay--resurrection .tpt-overlay-main {
        padding-top: 18px;
    }
    .tpt-overlay-title {
        font-size: clamp(32px, 8vw, 62px);
    }
    .tpt-overlay-verse {
        padding: 7px 12px;
        margin-bottom: 9px;
    }
    .tpt-overlay-verse-text {
        font-size: 13px;
        line-height: 1.35;
    }
    .tpt-overlay-scene {
        height: clamp(180px, 32vh, 300px);
    }
    .tpt-seasonal-overlay--resurrection .tpt-overlay-scene {
        height: clamp(190px, 34vh, 320px);
    }
}

/* Landscape phones and very short windows */
@media (max-height: 480px) {
    .tpt-overlay-main {
        padding-top: 8px;
    }
    .tpt-overlay-kicker {
        display: none;
    }
    .tpt-overlay-title {
        font-size: clamp(24px, 4.2vw, 38px);
        margin-bottom: 3px;
    }
    .tpt-overlay-sub {
        font-size: 11px;
        margin-bottom: 6px;
    }
    .tpt-overlay-verse {
        padding: 5px 8px;
        margin-bottom: 6px;
    }
    .tpt-overlay-verse-text {
        font-size: 11px;
        line-height: 1.3;
        margin-bottom: 3px;
    }
    .tpt-overlay-verse-ref {
        font-size: 9px;
    }
    .tpt-overlay-enter {
        font-size: 10px;
        padding: 8px 18px;
    }
    .tpt-overlay-attribution {
        display: none;
    }
    .tpt-overlay-bigstar {
        width: 48px;
    }
    .tpt-overlay-angels {
        display: none;
    }
    .tpt-overlay-scene,
    .tpt-seasonal-overlay--resurrection .tpt-overlay-scene {
        height: 40vh;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tpt-seasonal-badge,
    .tpt-seasonal-badge *,
    .tpt-logo-aura,
    .tpt-logo-sparkles,
    .tpt-sparkle,
    .tpt-winter-layer,
    .tpt-winter-theme::before,
    .tpt-overlay-star-dot,
    .tpt-shooting-star,
    .tpt-overlay-bloom,
    .tpt-overlay-brand,
    .tpt-overlay-mote,
    .tpt-halo,
    .tpt-tomb-light,
    .tpt-res-cross,
    .tpt-nat-mary,
    .tpt-nat-joseph,
    .tpt-party-number,
    .tpt-confetti,
    .tpt-seasonal-badge--anniversary,
    .tpt-overlay-burst,
    .tpt-overlay-bigstar,
    .tpt-overlay-star-glow,
    .tpt-overlay-star-rays,
    .tpt-overlay-angels,
    .tpt-angel,
    .tpt-res-angel,
    .tpt-res-rays,
    .tpt-res-tomb,
    .tpt-nat-baby > circle:first-child,
    .tpt-overlay-kicker,
    .tpt-overlay-title,
    .tpt-overlay-sub,
    .tpt-overlay-verse,
    .tpt-overlay-enter,
    .tpt-overlay-attribution,
    .tpt-overlay-scene {
        animation: none !important;
    }
    .tpt-winter-layer {
        display: none;
    }
    .tpt-res-stone--play {
        animation: none !important;
        transform: translate(116px, 26px) rotate(58deg) !important;
    }
}:root{--woocommerce:#720eec;--wc-green:#007518;--wc-red:#a00;--wc-orange:#ffba00;--wc-blue:#2ea2cc;--wc-primary:#720eec;--wc-primary-text:#fcfbfe;--wc-secondary:#e9e6ed;--wc-secondary-text:#515151;--wc-highlight:#958e09;--wc-highligh-text:white;--wc-content-bg:#fff;--wc-subtext:#767676;--wc-form-border-color:rgba(32, 7, 7, 0.8);--wc-form-border-radius:4px;--wc-form-border-width:1px;--wc-destructive:#cc1818;--wc-card-border-radius:8px}.woocommerce .woocommerce-error .button,.woocommerce .woocommerce-info .button,.woocommerce .woocommerce-message .button,.woocommerce-page .woocommerce-error .button,.woocommerce-page .woocommerce-info .button,.woocommerce-page .woocommerce-message .button{float:right}.woocommerce .col2-set,.woocommerce-page .col2-set{width:100%}.woocommerce .col2-set::after,.woocommerce .col2-set::before,.woocommerce-page .col2-set::after,.woocommerce-page .col2-set::before{content:" ";display:table}.woocommerce .col2-set::after,.woocommerce-page .col2-set::after{clear:both}.woocommerce .col2-set .col-1,.woocommerce-page .col2-set .col-1{float:left;width:48%}.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-2{float:right;width:48%}.woocommerce img,.woocommerce-page img{height:auto;max-width:100%}.woocommerce #content div.product div.images,.woocommerce div.product div.images,.woocommerce-page #content div.product div.images,.woocommerce-page div.product div.images{float:left;width:48%}.woocommerce #content div.product div.images.woocommerce-product-gallery .flex-viewport,.woocommerce div.product div.images.woocommerce-product-gallery .flex-viewport,.woocommerce-page #content div.product div.images.woocommerce-product-gallery .flex-viewport,.woocommerce-page div.product div.images.woocommerce-product-gallery .flex-viewport{touch-action:pan-y pinch-zoom}.woocommerce #content div.product div.thumbnails::after,.woocommerce #content div.product div.thumbnails::before,.woocommerce div.product div.thumbnails::after,.woocommerce div.product div.thumbnails::before,.woocommerce-page #content div.product div.thumbnails::after,.woocommerce-page #content div.product div.thumbnails::before,.woocommerce-page div.product div.thumbnails::after,.woocommerce-page div.product div.thumbnails::before{content:" ";display:table}.woocommerce #content div.product div.thumbnails::after,.woocommerce div.product div.thumbnails::after,.woocommerce-page #content div.product div.thumbnails::after,.woocommerce-page div.product div.thumbnails::after{clear:both}.woocommerce #content div.product div.thumbnails a,.woocommerce div.product div.thumbnails a,.woocommerce-page #content div.product div.thumbnails a,.woocommerce-page div.product div.thumbnails a{float:left;width:30.75%;margin-right:3.8%;margin-bottom:1em}.woocommerce #content div.product div.thumbnails a.last,.woocommerce div.product div.thumbnails a.last,.woocommerce-page #content div.product div.thumbnails a.last,.woocommerce-page div.product div.thumbnails a.last{margin-right:0}.woocommerce #content div.product div.thumbnails a.first,.woocommerce div.product div.thumbnails a.first,.woocommerce-page #content div.product div.thumbnails a.first,.woocommerce-page div.product div.thumbnails a.first{clear:both}.woocommerce #content div.product div.thumbnails.columns-1 a,.woocommerce div.product div.thumbnails.columns-1 a,.woocommerce-page #content div.product div.thumbnails.columns-1 a,.woocommerce-page div.product div.thumbnails.columns-1 a{width:100%;margin-right:0;float:none}.woocommerce #content div.product div.thumbnails.columns-2 a,.woocommerce div.product div.thumbnails.columns-2 a,.woocommerce-page #content div.product div.thumbnails.columns-2 a,.woocommerce-page div.product div.thumbnails.columns-2 a{width:48%}.woocommerce #content div.product div.thumbnails.columns-4 a,.woocommerce div.product div.thumbnails.columns-4 a,.woocommerce-page #content div.product div.thumbnails.columns-4 a,.woocommerce-page div.product div.thumbnails.columns-4 a{width:22.05%}.woocommerce #content div.product div.thumbnails.columns-5 a,.woocommerce div.product div.thumbnails.columns-5 a,.woocommerce-page #content div.product div.thumbnails.columns-5 a,.woocommerce-page div.product div.thumbnails.columns-5 a{width:16.9%}.woocommerce #content div.product div.summary,.woocommerce div.product div.summary,.woocommerce-page #content div.product div.summary,.woocommerce-page div.product div.summary{float:right;width:48%;clear:none}.woocommerce #content div.product .woocommerce-tabs,.woocommerce div.product .woocommerce-tabs,.woocommerce-page #content div.product .woocommerce-tabs,.woocommerce-page div.product .woocommerce-tabs{clear:both}.woocommerce #content div.product .woocommerce-tabs ul.tabs::after,.woocommerce #content div.product .woocommerce-tabs ul.tabs::before,.woocommerce div.product .woocommerce-tabs ul.tabs::after,.woocommerce div.product .woocommerce-tabs ul.tabs::before,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs::after,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs::before,.woocommerce-page div.product .woocommerce-tabs ul.tabs::after,.woocommerce-page div.product .woocommerce-tabs ul.tabs::before{content:" ";display:table}.woocommerce #content div.product .woocommerce-tabs ul.tabs::after,.woocommerce div.product .woocommerce-tabs ul.tabs::after,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs::after,.woocommerce-page div.product .woocommerce-tabs ul.tabs::after{clear:both}.woocommerce #content div.product .woocommerce-tabs ul.tabs li,.woocommerce div.product .woocommerce-tabs ul.tabs li,.woocommerce-page #content div.product .woocommerce-tabs ul.tabs li,.woocommerce-page div.product .woocommerce-tabs ul.tabs li{display:inline-block}.woocommerce #content div.product #reviews .comment::after,.woocommerce #content div.product #reviews .comment::before,.woocommerce div.product #reviews .comment::after,.woocommerce div.product #reviews .comment::before,.woocommerce-page #content div.product #reviews .comment::after,.woocommerce-page #content div.product #reviews .comment::before,.woocommerce-page div.product #reviews .comment::after,.woocommerce-page div.product #reviews .comment::before{content:" ";display:table}.woocommerce #content div.product #reviews .comment::after,.woocommerce div.product #reviews .comment::after,.woocommerce-page #content div.product #reviews .comment::after,.woocommerce-page div.product #reviews .comment::after{clear:both}.woocommerce #content div.product #reviews .comment img,.woocommerce div.product #reviews .comment img,.woocommerce-page #content div.product #reviews .comment img,.woocommerce-page div.product #reviews .comment img{float:right;height:auto}.woocommerce ul.products,.woocommerce-page ul.products{clear:both}.woocommerce ul.products::after,.woocommerce ul.products::before,.woocommerce-page ul.products::after,.woocommerce-page ul.products::before{content:" ";display:table}.woocommerce ul.products::after,.woocommerce-page ul.products::after{clear:both}.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{float:left;margin:0 3.8% 2.992em 0;padding:0;position:relative;width:22.05%;margin-left:0}.woocommerce ul.products li.first,.woocommerce-page ul.products li.first{clear:both}.woocommerce ul.products li.last,.woocommerce-page ul.products li.last{margin-right:0}.woocommerce ul.products.columns-1 li.product,.woocommerce-page ul.products.columns-1 li.product{width:100%;margin-right:0}.woocommerce ul.products.columns-2 li.product,.woocommerce-page ul.products.columns-2 li.product{width:48%}.woocommerce ul.products.columns-3 li.product,.woocommerce-page ul.products.columns-3 li.product{width:30.75%}.woocommerce ul.products.columns-5 li.product,.woocommerce-page ul.products.columns-5 li.product{width:16.95%}.woocommerce ul.products.columns-6 li.product,.woocommerce-page ul.products.columns-6 li.product{width:13.5%}.woocommerce-page.columns-1 ul.products li.product,.woocommerce.columns-1 ul.products li.product{width:100%;margin-right:0}.woocommerce-page.columns-2 ul.products li.product,.woocommerce.columns-2 ul.products li.product{width:48%}.woocommerce-page.columns-3 ul.products li.product,.woocommerce.columns-3 ul.products li.product{width:30.75%}.woocommerce-page.columns-5 ul.products li.product,.woocommerce.columns-5 ul.products li.product{width:16.95%}.woocommerce-page.columns-6 ul.products li.product,.woocommerce.columns-6 ul.products li.product{width:13.5%}.woocommerce .woocommerce-result-count,.woocommerce-page .woocommerce-result-count{float:left}.woocommerce .woocommerce-ordering,.woocommerce-page .woocommerce-ordering{float:right}.woocommerce .woocommerce-pagination ul.page-numbers::after,.woocommerce .woocommerce-pagination ul.page-numbers::before,.woocommerce-page .woocommerce-pagination ul.page-numbers::after,.woocommerce-page .woocommerce-pagination ul.page-numbers::before{content:" ";display:table}.woocommerce .woocommerce-pagination ul.page-numbers::after,.woocommerce-page .woocommerce-pagination ul.page-numbers::after{clear:both}.woocommerce .woocommerce-pagination ul.page-numbers li,.woocommerce-page .woocommerce-pagination ul.page-numbers li{display:inline-block}.woocommerce #content table.cart img,.woocommerce table.cart img,.woocommerce-page #content table.cart img,.woocommerce-page table.cart img{height:auto}.woocommerce #content table.cart td.actions,.woocommerce table.cart td.actions,.woocommerce-page #content table.cart td.actions,.woocommerce-page table.cart td.actions{text-align:right}.woocommerce #content table.cart td.actions .input-text,.woocommerce table.cart td.actions .input-text,.woocommerce-page #content table.cart td.actions .input-text,.woocommerce-page table.cart td.actions .input-text{width:80px}.woocommerce #content table.cart td.actions .coupon,.woocommerce table.cart td.actions .coupon,.woocommerce-page #content table.cart td.actions .coupon,.woocommerce-page table.cart td.actions .coupon{float:left}.woocommerce .cart-collaterals,.woocommerce-page .cart-collaterals{width:100%}.woocommerce .cart-collaterals::after,.woocommerce .cart-collaterals::before,.woocommerce-page .cart-collaterals::after,.woocommerce-page .cart-collaterals::before{content:" ";display:table}.woocommerce .cart-collaterals::after,.woocommerce-page .cart-collaterals::after{clear:both}.woocommerce .cart-collaterals .related,.woocommerce-page .cart-collaterals .related{width:30.75%;float:left}.woocommerce .cart-collaterals .cross-sells,.woocommerce-page .cart-collaterals .cross-sells{width:48%;float:left}.woocommerce .cart-collaterals .cross-sells ul.products,.woocommerce-page .cart-collaterals .cross-sells ul.products{float:none}.woocommerce .cart-collaterals .cross-sells ul.products li,.woocommerce-page .cart-collaterals .cross-sells ul.products li{width:48%}.woocommerce .cart-collaterals .shipping_calculator,.woocommerce-page .cart-collaterals .shipping_calculator{width:48%;clear:right;float:right}.woocommerce .cart-collaterals .shipping_calculator::after,.woocommerce .cart-collaterals .shipping_calculator::before,.woocommerce-page .cart-collaterals .shipping_calculator::after,.woocommerce-page .cart-collaterals .shipping_calculator::before{content:" ";display:table}.woocommerce .cart-collaterals .shipping_calculator::after,.woocommerce-page .cart-collaterals .shipping_calculator::after{clear:both}.woocommerce .cart-collaterals .shipping_calculator .col2-set .col-1,.woocommerce .cart-collaterals .shipping_calculator .col2-set .col-2,.woocommerce-page .cart-collaterals .shipping_calculator .col2-set .col-1,.woocommerce-page .cart-collaterals .shipping_calculator .col2-set .col-2{width:47%}.woocommerce .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cart_totals{float:right;width:48%}.woocommerce ul.cart_list li::after,.woocommerce ul.cart_list li::before,.woocommerce ul.product_list_widget li::after,.woocommerce ul.product_list_widget li::before,.woocommerce-page ul.cart_list li::after,.woocommerce-page ul.cart_list li::before,.woocommerce-page ul.product_list_widget li::after,.woocommerce-page ul.product_list_widget li::before{content:" ";display:table}.woocommerce ul.cart_list li::after,.woocommerce ul.product_list_widget li::after,.woocommerce-page ul.cart_list li::after,.woocommerce-page ul.product_list_widget li::after{clear:both}.woocommerce ul.cart_list li img,.woocommerce ul.product_list_widget li img,.woocommerce-page ul.cart_list li img,.woocommerce-page ul.product_list_widget li img{float:right;height:auto}.woocommerce form .form-row::after,.woocommerce form .form-row::before,.woocommerce-page form .form-row::after,.woocommerce-page form .form-row::before{content:" ";display:table}.woocommerce form .form-row::after,.woocommerce-page form .form-row::after{clear:both}.woocommerce form .form-row label,.woocommerce-page form .form-row label{display:block}.woocommerce form .form-row label.checkbox,.woocommerce-page form .form-row label.checkbox{display:inline}.woocommerce form .form-row select,.woocommerce-page form .form-row select{width:100%}.woocommerce form .form-row .input-text,.woocommerce-page form .form-row .input-text{box-sizing:border-box;width:100%}.woocommerce form .form-row-first,.woocommerce form .form-row-last,.woocommerce-page form .form-row-first,.woocommerce-page form .form-row-last{width:47%;overflow:visible}.woocommerce form .form-row-first,.woocommerce-page form .form-row-first{float:left}.woocommerce form .form-row-last,.woocommerce-page form .form-row-last{float:right}.woocommerce form .form-row-wide,.woocommerce-page form .form-row-wide{clear:both}.woocommerce form .password-input,.woocommerce-page form .password-input{display:flex;flex-direction:column;justify-content:center;position:relative}.woocommerce form .password-input input[type=password],.woocommerce-page form .password-input input[type=password]{padding-right:2.5rem}.woocommerce form .password-input input::-ms-reveal,.woocommerce-page form .password-input input::-ms-reveal{display:none}.woocommerce form .show-password-input,.woocommerce-page form .show-password-input{background-color:transparent;border-radius:0;border:0;color:var(--wc-form-color-text,#000);cursor:pointer;font-size:inherit;line-height:inherit;margin:0;padding:0;position:absolute;right:.7em;text-decoration:none;top:50%;transform:translateY(-50%);-moz-osx-font-smoothing:inherit;-webkit-appearance:none;-webkit-font-smoothing:inherit}.woocommerce form .show-password-input::before,.woocommerce-page form .show-password-input::before{background-repeat:no-repeat;background-size:cover;background-image:url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z" fill="%23111111"/></svg>');content:"";display:block;height:22px;width:22px}.woocommerce form .show-password-input.display-password::before,.woocommerce-page form .show-password-input.display-password::before{background-image:url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3 9.49999C15 4.89999 8.50002 3.79999 3.90002 7.19999C2.70002 8.09999 1.70002 9.29999 0.900024 10.6C1.10002 11 1.40002 11.4 1.70002 11.8C5.00002 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.79999 18.3 9.49999ZM10.1 7.19999C10.6 6.69999 11.4 6.69999 11.9 7.19999C12.4 7.69999 12.4 8.49999 11.9 8.99999C11.4 9.49999 10.6 9.49999 10.1 8.99999C9.60003 8.49999 9.60003 7.69999 10.1 7.19999ZM10 14.9C6.90002 14.9 4.00002 13.3 2.30002 10.7C3.50002 8.99999 5.10002 7.79999 7.00002 7.19999C6.30002 7.99999 6.00002 8.89999 6.00002 9.89999C6.00002 12.1 7.70002 14 10 14C12.2 14 14.1 12.3 14.1 9.99999V9.89999C14.1 8.89999 13.7 7.89999 13 7.19999C14.9 7.79999 16.5 8.99999 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z" fill="%23111111"/></svg>')}.woocommerce #payment .form-row select,.woocommerce-page #payment .form-row select{width:auto}.woocommerce #payment .terms,.woocommerce #payment .wc-terms-and-conditions,.woocommerce-page #payment .terms,.woocommerce-page #payment .wc-terms-and-conditions{text-align:left;padding:0 1em 0 0;float:left}.woocommerce #payment #place_order,.woocommerce-page #payment #place_order{float:right}.woocommerce .woocommerce-billing-fields::after,.woocommerce .woocommerce-billing-fields::before,.woocommerce .woocommerce-shipping-fields::after,.woocommerce .woocommerce-shipping-fields::before,.woocommerce-page .woocommerce-billing-fields::after,.woocommerce-page .woocommerce-billing-fields::before,.woocommerce-page .woocommerce-shipping-fields::after,.woocommerce-page .woocommerce-shipping-fields::before{content:" ";display:table}.woocommerce .woocommerce-billing-fields::after,.woocommerce .woocommerce-shipping-fields::after,.woocommerce-page .woocommerce-billing-fields::after,.woocommerce-page .woocommerce-shipping-fields::after{clear:both}.woocommerce .woocommerce-terms-and-conditions,.woocommerce-page .woocommerce-terms-and-conditions{margin-bottom:1.618em;padding:1.618em}.woocommerce .woocommerce-oembed,.woocommerce-page .woocommerce-oembed{position:relative}.woocommerce-account .woocommerce-MyAccount-navigation{float:left;width:30%}.woocommerce-account .woocommerce-MyAccount-content{float:right;width:68%}.woocommerce-account .woocommerce-MyAccount-content mark{background-color:transparent;color:inherit;font-weight:700}.woocommerce-page.left-sidebar #content.twentyeleven{width:58.4%;margin:0 7.6%;float:right}.woocommerce-page.right-sidebar #content.twentyeleven{margin:0 7.6%;width:58.4%;float:left}.twentyfourteen .tfwc{padding:12px 10px 0;max-width:474px;margin:0 auto}.twentyfourteen .tfwc .product .entry-summary{padding:0!important;margin:0 0 1.618em!important}.twentyfourteen .tfwc div.product.hentry.has-post-thumbnail{margin-top:0}@media screen and (min-width:673px){.twentyfourteen .tfwc{padding-right:30px;padding-left:30px}}@media screen and (min-width:1040px){.twentyfourteen .tfwc{padding-right:15px;padding-left:15px}}@media screen and (min-width:1110px){.twentyfourteen .tfwc{padding-right:30px;padding-left:30px}}@media screen and (min-width:1218px){.twentyfourteen .tfwc{margin-right:54px}.full-width .twentyfourteen .tfwc{margin-right:auto}}.twentyfifteen .t15wc{padding-left:7.6923%;padding-right:7.6923%;padding-top:7.6923%;margin-bottom:7.6923%;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.15)}.twentyfifteen .t15wc .page-title{margin-left:0}@media screen and (min-width:38.75em){.twentyfifteen .t15wc{margin-right:7.6923%;margin-left:7.6923%;margin-top:8.3333%}}@media screen and (min-width:59.6875em){.twentyfifteen .t15wc{margin-left:8.3333%;margin-right:8.3333%;padding:10%}.single-product .twentyfifteen .entry-summary{padding:0!important}}.twentysixteen .site-main{margin-right:7.6923%;margin-left:7.6923%}.twentysixteen .entry-summary{margin-right:0;margin-left:0}#content .twentysixteen div.product div.images,#content .twentysixteen div.product div.summary{width:46.42857%}@media screen and (min-width:44.375em){.twentysixteen .site-main{margin-right:23.0769%}}@media screen and (min-width:56.875em){.twentysixteen .site-main{margin-right:0;margin-left:0}.no-sidebar .twentysixteen .site-main{margin-right:15%;margin-left:15%}.no-sidebar .twentysixteen .entry-summary{margin-right:0;margin-left:0}}.rtl .woocommerce .col2-set .col-1,.rtl .woocommerce-page .col2-set .col-1{float:right}.rtl .woocommerce .col2-set .col-2,.rtl .woocommerce-page .col2-set .col-2{float:left}