.tgb-ct{--ct-purple:#842cff;--ct-ink:#111536;background:#f3f1ff;color:var(--ct-ink);border-radius:24px;padding:28px;max-width:980px;margin:auto;box-sizing:border-box}.tgb-ct *{box-sizing:border-box}.tgb-ct button,.tgb-ct a{font:inherit}.tgb-ct button{cursor:pointer}.tgb-ct button:focus-visible,.tgb-ct a:focus-visible{outline:3px solid #842cff;outline-offset:4px}.tgb-ct-hero{position:relative;min-height:310px;background:url('../../gamification/bg-fairytale-hills.png.webp') center/cover;border-radius:20px;padding:24px;overflow:hidden}.tgb-ct h2{font-size:clamp(24px,3vw,34px);margin:0 0 16px;color:var(--ct-ink)}.tgb-ct-score{position:relative;z-index:1;display:flex;align-items:center;gap:8px;background:none;border:0;padding:0;color:var(--ct-purple)}.tgb-ct-score img{width:48px;height:48px;object-fit:contain}.tgb-ct-score strong{font-size:clamp(35px,5vw,58px);line-height:1.2}.tgb-ct-score span{color:#777d96;font-size:clamp(18px,2.4vw,28px)}.tgb-ct-hero>p{position:relative;z-index:1;color:#797d99;margin:8px 0}.tgb-ct-journey{position:absolute;right:15px;bottom:0;display:flex;align-items:flex-end;height:175px}.tgb-ct-journey img{height:100%;width:145px;object-fit:contain}.tgb-ct-journey .tgb-ct-chest{height:140px}.tgb-ct-progress-card,.tgb-ct-list{background:#fff;border-radius:24px;padding:24px}.tgb-ct-progress-card{position:relative;margin-top:-2px;text-align:center}.tgb-ct-meter{height:14px;border-radius:20px;background:#e8e9f3;overflow:hidden}.tgb-ct-meter>div{height:100%;background:linear-gradient(90deg,#b478ff,#842cff);border-radius:inherit}.tgb-ct-milestones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.tgb-ct-milestones>div{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:clamp(14px,2vw,20px)}.tgb-ct-milestones img{width:56px;height:56px;object-fit:contain}.tgb-ct-milestones i{width:10px;height:10px;border-radius:50%;background:#d8d9e7}.tgb-ct-milestones .is-unlocked i{background:#842cff}.tgb-ct-target{font-weight:700;margin:24px 0 8px}.tgb-ct-target b,.tgb-ct-purple{color:var(--ct-purple)}.tgb-ct-muted,.tgb-ct-footnote{color:#8589a2;font-size:14px}.tgb-ct-tabs{display:flex;margin:20px 0 16px;border-bottom:2px solid #e0dff0}.tgb-ct-tabs button{flex:1;border:0;background:none;color:#83869e;padding:14px 4px;font-weight:700;border-bottom:3px solid transparent;margin-bottom:-2px}.tgb-ct-tabs [aria-selected=true]{color:var(--ct-purple);border-bottom-color:var(--ct-purple)}.tgb-ct-row{display:flex;align-items:center;gap:16px;padding:20px 0;color:inherit;text-decoration:none}.tgb-ct-row+.tgb-ct-row{border-top:1px solid #eeedf6}.tgb-ct-row>img{width:70px;height:70px;object-fit:contain;flex-shrink:0}.tgb-ct-row>div{flex:1;min-width:0}.tgb-ct-row h3{font-size:clamp(16px,2vw,22px);margin:0 0 4px;color:var(--ct-ink);overflow-wrap:anywhere}.tgb-ct-row p{margin:0;font-size:15px}.tgb-ct-row small{color:#8589a2}.tgb-ct-action{display:inline-flex;justify-content:center;border:0;border-radius:22px;padding:12px 16px;background:#f0e8ff;color:var(--ct-purple);white-space:nowrap;text-decoration:none;font-size:15px!important;font-weight:700!important}.tgb-ct-action.is-disabled{background:#f1f1f6;color:#888ca5}.tgb-ct-row form{margin:0}.tgb-ct-footnote{text-align:center;margin:16px 0}.tgb-ct-rules{display:block;margin:18px auto 0;background:none;border:0;text-decoration:underline;color:var(--ct-purple)}.tgb-ct [hidden]{display:none!important}.tgb-ct dialog{border:0;border-radius:24px;padding:28px;max-width:620px;width:calc(100% - 32px);max-height:85vh;color:var(--ct-ink)}.tgb-ct dialog::backdrop{background:#13153688}.tgb-ct dialog>button{float:right;border:0;border-radius:50%;font-size:24px;background:#f0e8ff}.tgb-ct dialog li{margin:14px 0}.tgb-ct-history{padding:16px 0;border-bottom:1px solid #eeedf6}.tgb-ct-history b{float:right;color:var(--ct-purple)}.tgb-ct-history p{margin:6px 0}.tgb-ct-history small{color:#797d99}@media(max-width:540px){.tgb-ct{padding:12px;border-radius:18px}.tgb-ct-hero{padding:18px 12px;min-height:330px}.tgb-ct-journey{height:160px}.tgb-ct-journey img{width:130px}.tgb-ct-progress-card,.tgb-ct-list{padding:18px 12px;border-radius:20px}.tgb-ct-row{gap:10px;flex-wrap:wrap}.tgb-ct-row>img{width:48px;height:48px}.tgb-ct-row>div{flex-basis:calc(100% - 64px)}.tgb-ct-row>.tgb-ct-action,.tgb-ct-row>form{margin-left:58px}.tgb-ct-action{padding:9px 14px}.tgb-ct-score{gap:5px}.tgb-ct-score img{width:34px;height:34px}.tgb-ct-score strong{font-size:38px}.tgb-ct-score span{font-size:19px}.tgb-ct-milestones img{width:44px;height:44px}.tgb-ct-target{font-size:15px}}

.tgb-ct-milestones{display:block;position:relative;height:96px;margin:0 18px}.tgb-ct-milestones>div{position:absolute;top:-12px;width:65px;transform:translateX(-50%)}.tgb-ct-milestones i{border:3px solid white;width:16px;height:16px}.tgb-ct-meter{margin:0 18px}.tgb-ct-target{margin-top:16px}@media(max-width:380px){.tgb-ct-milestones{margin-left:6px;margin-right:6px}.tgb-ct-meter{margin:0 6px}.tgb-ct-milestones>div{width:48px;font-size:12px}.tgb-ct-milestones img{width:38px;height:38px}}

.tgb-ct-meter-wrap{position:relative;margin-top:28px}.tgb-ct-percent{position:absolute;top:-32px;transform:translateX(-50%);border-radius:14px;background:#954cff;color:white;font-size:14px;font-weight:700;padding:3px 9px;line-height:22px}.tgb-ct-summary{display:block;padding:20px;border-radius:18px;background:#f3f1ff;color:#6020bb;text-decoration:none}

.tgb-ct-meter-wrap{margin-left:18px;margin-right:18px}.tgb-ct-meter-wrap .tgb-ct-meter{margin:0}@media(max-width:380px){.tgb-ct-meter-wrap{margin-left:6px;margin-right:6px}}

/* Keep Rewards colors and controls independent of Elementor/WooCommerce defaults. */
body .tgb-ct .tgb-ct-hero{background:none;isolation:isolate}
body .tgb-ct .tgb-ct-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:url('../../gamification/bg-fairytale-hills.png.webp') center/cover;transform:scaleX(-1);pointer-events:none}
body .tgb-ct h2,body .tgb-ct .tgb-ct-row h3,body .tgb-ct .tgb-ct-target,body .tgb-ct .tgb-ct-milestones strong{color:var(--ct-ink)!important;-webkit-text-fill-color:var(--ct-ink)!important}
body .tgb-ct .tgb-ct-score,body .tgb-ct .tgb-ct-score:hover,body .tgb-ct .tgb-ct-score:focus,body .tgb-ct .tgb-ct-rules,body .tgb-ct .tgb-ct-rules:hover,body .tgb-ct .tgb-ct-rules:focus{border:0!important;box-shadow:none!important;background:transparent!important;color:var(--ct-purple)!important;-webkit-text-fill-color:var(--ct-purple)!important;text-decoration:none!important}
body .tgb-ct .tgb-ct-score{padding:0!important}
body .tgb-ct .tgb-ct-score strong,body .tgb-ct .tgb-ct-target b,body .tgb-ct .tgb-ct-row .tgb-ct-purple,body .tgb-ct .tgb-ct-action,body .tgb-ct .tgb-ct-tabs [aria-selected=true]{color:var(--ct-purple)!important;-webkit-text-fill-color:var(--ct-purple)!important}
body .tgb-ct .tgb-ct-score span,body .tgb-ct .tgb-ct-hero>p,body .tgb-ct .tgb-ct-muted,body .tgb-ct .tgb-ct-footnote,body .tgb-ct .tgb-ct-row p:not(.tgb-ct-purple),body .tgb-ct .tgb-ct-row small,body .tgb-ct .tgb-ct-action.is-disabled,body .tgb-ct .tgb-ct-tabs [aria-selected=false]{color:#8589a2!important;-webkit-text-fill-color:#8589a2!important}
body .tgb-ct .tgb-ct-row,body .tgb-ct .tgb-ct-row *,body .tgb-ct .tgb-ct-action{text-decoration:none!important}
body .tgb-ct .tgb-ct-rules{display:table!important;width:fit-content!important;float:none!important;margin:18px auto 0!important;padding:8px 0!important;text-align:center!important}

/* Elementor's generic button:hover must not paint Rewards tabs pink. */
body .tgb-ct .tgb-ct-tabs button,
body .tgb-ct .tgb-ct-tabs button:hover,
body .tgb-ct .tgb-ct-tabs button:focus,
body .tgb-ct .tgb-ct-tabs button:active{background:transparent!important;background-image:none!important;box-shadow:none!important;border-radius:0!important}
body .tgb-ct .tgb-ct-action:hover,
body .tgb-ct .tgb-ct-action:focus,
body .tgb-ct .tgb-ct-action:active{background:#e8dcff!important;color:var(--ct-purple)!important;-webkit-text-fill-color:var(--ct-purple)!important;border-color:transparent!important;box-shadow:none!important}
body .tgb-ct .tgb-ct-terms h3{font-size:18px;line-height:1.5;margin:24px 0 12px;color:var(--ct-ink)!important;-webkit-text-fill-color:var(--ct-ink)!important}
body .tgb-ct .tgb-ct-terms p,body .tgb-ct .tgb-ct-terms li,body .tgb-ct .tgb-ct-terms td,body .tgb-ct .tgb-ct-terms th{color:var(--ct-ink)!important;-webkit-text-fill-color:var(--ct-ink)!important;font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.tgb-ct-terms table{width:100%;border-collapse:collapse;table-layout:fixed}.tgb-ct-terms th,.tgb-ct-terms td{padding:10px;text-align:left;border:1px solid #e4dff2}.tgb-ct-terms th:first-child,.tgb-ct-terms td:first-child{width:26%}.tgb-ct-terms th{background:#f3f1ff}
body .tgb-ct dialog>[data-ct-close]:hover,body .tgb-ct dialog>[data-ct-close]:focus{background:#f0e8ff!important;color:var(--ct-purple)!important;-webkit-text-fill-color:var(--ct-purple)!important;border:0!important;box-shadow:none!important}

/* Mobile uses the reference's shallow journey and single-line action columns. */
@media(max-width:540px){
  body .tgb-ct{padding:10px}
  body .tgb-ct .tgb-ct-hero{min-height:0;height:clamp(200px,58vw,280px);padding:18px 12px;border-radius:20px}
  body .tgb-ct .tgb-ct-hero h2{font-size:clamp(20px,5.4vw,26px);line-height:1.2;margin:0 0 12px}
  body .tgb-ct .tgb-ct-score strong{font-size:clamp(38px,11vw,54px)}
  body .tgb-ct .tgb-ct-score span{font-size:clamp(16px,4.6vw,23px)}
  body .tgb-ct .tgb-ct-score img{width:34px;height:34px}
  body .tgb-ct .tgb-ct-hero>p{font-size:12px;line-height:1.4;max-width:66%;margin:5px 0 0}
  body .tgb-ct .tgb-ct-journey{right:6px;bottom:0;height:49%;width:51%;gap:0}
  body .tgb-ct .tgb-ct-journey img{width:50%;max-width:50%;height:100%;object-fit:contain}
  body .tgb-ct .tgb-ct-journey .tgb-ct-chest{height:88%}
  body .tgb-ct .tgb-ct-progress-card{padding:14px 14px 12px}
  body .tgb-ct .tgb-ct-meter-wrap{margin-top:22px}
  body .tgb-ct .tgb-ct-meter{height:10px}
  body .tgb-ct .tgb-ct-milestones{height:66px}
  body .tgb-ct .tgb-ct-milestones img{width:40px;height:40px}
  body .tgb-ct .tgb-ct-milestones strong{font-size:13px;line-height:1.2}
  body .tgb-ct .tgb-ct-target{font-size:13px;line-height:1.5;margin:6px 0 4px}
  body .tgb-ct .tgb-ct-muted{font-size:11px;margin:4px 0}
  body .tgb-ct .tgb-ct-tabs{margin:10px 0 12px}
  body .tgb-ct .tgb-ct-tabs button{padding:12px 4px;font-size:14px}
  body .tgb-ct .tgb-ct-list{padding:8px 12px}
  body .tgb-ct .tgb-ct-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:9px;padding:16px 0;min-height:92px}
  body .tgb-ct .tgb-ct-row>img{width:42px;height:48px}
  body .tgb-ct .tgb-ct-row>div{min-width:0}
  body .tgb-ct .tgb-ct-row h3{font-size:13px;line-height:1.35;margin:0 0 4px;overflow-wrap:normal}
  body .tgb-ct .tgb-ct-row p{font-size:11px;line-height:1.4}
  body .tgb-ct .tgb-ct-row small{display:block;font-size:10px;line-height:1.4;margin-top:3px}
  body .tgb-ct .tgb-ct-row>.tgb-ct-action,body .tgb-ct .tgb-ct-row>form{margin:0;justify-self:end}
  body .tgb-ct .tgb-ct-action{font-size:11px!important;padding:9px 10px;min-width:56px;border-radius:18px}
  body .tgb-ct .tgb-ct-footnote{font-size:11px;line-height:1.5;margin:12px 0 0}
  body .tgb-ct .tgb-ct-rules{font-size:12px;margin-top:10px!important}
}
@media(max-width:360px){
  body .tgb-ct .tgb-ct-row{grid-template-columns:34px minmax(0,1fr) auto;gap:7px}
  body .tgb-ct .tgb-ct-row>img{width:34px;height:42px}
  body .tgb-ct .tgb-ct-action{font-size:10px!important;padding:8px;min-width:48px}
  body .tgb-ct .tgb-ct-row h3{font-size:12px}
}

/* Compact mobile summary leaves the lower journey to the larger cat layer. */
@media(max-width:540px){
  body .tgb-ct .tgb-ct-hero{padding-top:14px}
  body .tgb-ct .tgb-ct-hero h2{font-size:clamp(20px,5.2vw,22px);line-height:1.2;margin-bottom:5px}
  body .tgb-ct .tgb-ct-score{gap:4px;flex-wrap:nowrap;white-space:nowrap;line-height:1.1}
  body .tgb-ct .tgb-ct-score strong{font-size:clamp(32px,8.4vw,36px);line-height:1.1}
  body .tgb-ct .tgb-ct-score span{font-size:16px;line-height:1.2}
  body .tgb-ct .tgb-ct-score img{width:26px;height:26px;flex:0 0 26px}
  body .tgb-ct .tgb-ct-hero>p{font-size:12px;line-height:1.3;margin-top:3px;max-width:none}
  body .tgb-ct .tgb-ct-journey{width:68%;height:60%;right:4px;bottom:0}
  body .tgb-ct .tgb-ct-journey .tgb-ct-cat{width:58%;max-width:58%;height:100%}
  body .tgb-ct .tgb-ct-journey .tgb-ct-chest{width:42%;max-width:42%;height:70%}
}
/* The rules header stays outside the scrolling body; touch focus is unobtrusive. */
body .tgb-ct dialog[data-ct-dialog="rules"]{padding:0!important;overflow:hidden;max-height:85vh;max-height:85dvh}
body .tgb-ct dialog[data-ct-dialog="rules"][open]{display:flex;flex-direction:column}
body .tgb-ct .tgb-ct-modal-header{position:relative;flex:0 0 auto;padding:16px 76px 16px 20px;background:#fff;border-bottom:1px solid #eeedf6}
body .tgb-ct .tgb-ct-modal-header h2{font-size:22px;line-height:1.25;margin:0;overflow-wrap:normal}
body .tgb-ct .tgb-ct-modal-header p{font-size:13px;line-height:1.4;margin:4px 0 0;color:#8589a2!important;-webkit-text-fill-color:#8589a2!important}
body .tgb-ct .tgb-ct-modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 20px 20px;scrollbar-gutter:stable}
body .tgb-ct .tgb-ct-close,body .tgb-ct .tgb-ct-close:hover,body .tgb-ct .tgb-ct-close:focus,body .tgb-ct .tgb-ct-close:active{position:absolute;top:16px;right:16px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px!important;height:44px!important;min-width:44px!important;max-width:44px!important;min-height:44px!important;max-height:44px!important;aspect-ratio:1;border-radius:50%!important;padding:0!important;margin:0!important;border:0!important;background:#f0e8ff!important;color:var(--ct-purple)!important;-webkit-text-fill-color:var(--ct-purple)!important;box-shadow:none!important;line-height:1;transform:none}
body .tgb-ct .tgb-ct-close svg{display:block;width:20px;height:20px;flex:0 0 20px;pointer-events:none}
body .tgb-ct .tgb-ct-close:focus:not(:focus-visible){outline:none!important}
body .tgb-ct .tgb-ct-close:focus-visible{outline:2px solid var(--ct-purple)!important;outline-offset:3px!important}
@media(max-width:540px){body .tgb-ct .tgb-ct-modal-header h2{font-size:20px}body .tgb-ct .tgb-ct-modal-header p{font-size:12px}}
body .tgb-ct dialog[data-ct-pointer="true"] .tgb-ct-close{outline:none!important}

/* The source cat's feet are at y=371/400; transparent margins are not the ground. */
body .tgb-ct .tgb-ct-hero{--ct-cat-size:145px;--ct-chest-size:145px;--ct-ground:8px}
body .tgb-ct .tgb-ct-hero>p{font-size:14px;line-height:20px;margin-top:5px}
body .tgb-ct .tgb-ct-journey{display:block;left:0;right:0;bottom:0;width:100%;height:175px}
body .tgb-ct .tgb-ct-cat-anchor{position:absolute;display:block;width:var(--ct-cat-size);aspect-ratio:1;bottom:var(--ct-ground);transform:translateY(7.25%);left:calc(8px + (100% - 20px - var(--ct-chest-size) - var(--ct-cat-size) * .8) * var(--ct-journey-ratio,0))}
body .tgb-ct .tgb-ct-journey .tgb-ct-cat-anchor .tgb-ct-cat{position:absolute;inset:0;width:100%;max-width:none;height:100%;object-fit:contain}
body .tgb-ct .tgb-ct-journey .tgb-ct-chest{position:absolute;right:4px;bottom:0;width:var(--ct-chest-size);max-width:none;height:140px;object-fit:contain}
body .tgb-ct.ct-motion-ready .tgb-ct-cat-anchor{transition:left 1.6s ease-in-out}
@media(max-width:540px){
  body .tgb-ct .tgb-ct-hero{--ct-cat-size:39.44%;--ct-chest-size:28.56%;--ct-ground:14px}
  body .tgb-ct .tgb-ct-hero>p{font-size:12px;line-height:1.3;margin-top:3px}
  body .tgb-ct .tgb-ct-journey{height:60%}
  body .tgb-ct .tgb-ct-journey .tgb-ct-chest{height:70%}
}
@media(prefers-reduced-motion:reduce){body .tgb-ct.ct-motion-ready .tgb-ct-cat-anchor{transition:none}}

/* Desktop-only proportions; mobile sizing and the 310px Hero stay unchanged. */
@media(min-width:1024px){
  body .tgb-ct .tgb-ct-hero{--ct-cat-size:195px;padding:28px}
  body .tgb-ct .tgb-ct-hero h2{font-size:30px;line-height:1.1;margin:0 0 4px}
  body .tgb-ct .tgb-ct-score{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;white-space:nowrap}
  body .tgb-ct .tgb-ct-score strong{font-size:44px;line-height:1.05}
  body .tgb-ct .tgb-ct-score>span{display:inline-flex;align-items:center;gap:6px;font-size:23px;line-height:1.2}
  body .tgb-ct .tgb-ct-score .tgb-ct-history-arrow{font-size:19px;line-height:1}
  body .tgb-ct .tgb-ct-score img{width:34px;height:34px;flex:0 0 34px}
  body .tgb-ct .tgb-ct-hero>p{font-size:13px;line-height:18px;margin:3px 0 0}
}

/* Reserve room for the full 10,000 label at the end of the progress track. */
body .tgb-ct .tgb-ct-meter,body .tgb-ct .tgb-ct-milestones{margin-left:36px;margin-right:36px}
@media(max-width:540px){body .tgb-ct .tgb-ct-meter,body .tgb-ct .tgb-ct-milestones{margin-left:30px;margin-right:30px}}

/* Coupon submit buttons share the Missions action treatment, including theme resets. */
body .tgb-ct .tgb-ct-action:not(.is-disabled){background:#f0e8ff!important;background-image:none!important;border:0!important;box-shadow:none!important}
body .tgb-ct .tgb-ct-action:not(.is-disabled):hover,body .tgb-ct .tgb-ct-action:not(.is-disabled):focus,body .tgb-ct .tgb-ct-action:not(.is-disabled):active{background:#e8dcff!important}

/* One coordinate space for fill, reward centers and the percentage endpoint. */
body .tgb-ct .tgb-ct-meter-wrap{position:relative;margin:36px 36px 0;height:110px}
body .tgb-ct .tgb-ct-meter{position:absolute;inset:0 0 auto;margin:0;height:10px;width:100%;border-radius:999px}
body .tgb-ct .tgb-ct-meter>div{width:calc(clamp(0,var(--ct-journey-ratio),1) * 100%)}
body .tgb-ct .tgb-ct-percent{left:clamp(25px,calc(clamp(0,var(--ct-journey-ratio),1) * 100%),calc(100% - 25px));top:-34px}
body .tgb-ct .tgb-ct-milestones{position:absolute;inset:0;display:block;margin:0;height:100%;width:100%}
body .tgb-ct .tgb-ct-milestones>div{position:absolute;top:5px;width:65px;transform:translateX(-50%);gap:4px}
body .tgb-ct .tgb-ct-milestones i{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);width:14px;height:14px;border:3px solid white;border-radius:50%;margin:0;background:#d8d9e7}
body .tgb-ct .tgb-ct-milestones .is-unlocked i{background:var(--ct-purple)}
body .tgb-ct .tgb-ct-milestones img{margin-top:18px}
@media(max-width:540px){body .tgb-ct .tgb-ct-meter-wrap{margin:34px 30px 0;height:90px}}
