/*
 * TSS Adventskalender 0.1.4 – Premium Frontend Design
 * Konzept & Entwicklung: Lutz Kadner / TSS GROUP
 * Scoped to .tssa to avoid conflicts with the Joomla template.
 */
.tssa{--tssa-green:#163d34;--tssa-green2:#255349;--tssa-gold:#b58b3d;--tssa-cream:#f8f6f1;--tssa-text:#19372e;--tssa-gray:#566b61;color:var(--tssa-text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.55}
.tssa *{box-sizing:border-box}.tssa a{text-decoration:none}.tssa a:focus-visible,.tssa button:focus-visible{outline:3px solid #d7a53c;outline-offset:3px}.tssa p{margin-top:0}
.tssa-hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 8% 23%,rgba(221,167,76,.23),transparent 31%),radial-gradient(ellipse at 92% 65%,rgba(226,166,70,.32),transparent 24%),radial-gradient(ellipse at 83% 4%,rgba(235,200,133,.15),transparent 22%),linear-gradient(115deg,#103329,#1b4138 58%,#365247);padding:48px 22px 65px;color:white}
.tssa-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.38;background-image:radial-gradient(circle,#ebc684 1px,transparent 2px),radial-gradient(circle,#e7caa2 2px,transparent 3px),radial-gradient(circle,rgba(255,255,255,.8) 1px,transparent 2px);background-size:59px 84px,132px 121px,97px 107px;background-position:11px 9px,81px 49px,35px 91px}
.tssa-hero-inner{max-width:1100px;margin:0 auto;text-align:center}.tssa-small-heading,.tssa-kicker{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:#b48a3f}.tssa-hero .tssa-small-heading{color:#e9d39a}.tssa-hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;line-height:1.13;color:#fff;font-size:clamp(2.35rem,4vw,4.2rem);margin:10px 0}.tssa-lead{font-size:clamp(1rem,1.8vw,1.28rem);margin:0 auto 30px;max-width:760px;color:#f5f2e9}
.tssa-day-feature{display:grid;grid-template-columns:126px minmax(160px, .85fr) minmax(250px,1.2fr);text-align:left;align-items:stretch;background:#fffcf7;border:2px solid #c7a15e;border-radius:20px;box-shadow:0 18px 45px rgba(0,0,0,.2);overflow:hidden;color:var(--tssa-text)}
.tssa-day-number{background:#173d34;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:20px 10px}.tssa-day-number span,.tssa-day-number small{font-size:.72rem;letter-spacing:.11em;color:#e8d6ab}.tssa-day-number strong{font-family:Georgia,serif;font-size:5.3rem;font-weight:400;line-height:1.2}
.tssa-feature-logo{display:flex;align-items:center;justify-content:center;background:#fff;padding:28px;border-right:1px solid #e0dbd1;min-height:230px}.tssa-feature-logo img{max-width:100%;max-height:135px;object-fit:contain}.tssa-feature-copy{padding:26px 32px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.tssa-feature-copy h2{font-family:Georgia,serif;font-size:clamp(1.35rem,2.2vw,2rem);margin:6px 0;color:var(--tssa-text)}.tssa-feature-copy p{font-size:1rem;color:#4b5e55;margin:0 0 16px}.tssa-button{display:inline-block;border-radius:30px;color:#fff!important;background:linear-gradient(120deg,#ac8236,#c39c51);padding:12px 23px;font-weight:700}.tssa-button:hover{filter:brightness(.92)}
.tssa-hero-info{max-width:750px;margin:24px auto 0;padding:22px 26px;background:rgba(250,250,250,.92);color:#23443b;border:1px solid #cfbb8b;border-radius:14px}
.tssa-content{max-width:1120px;padding:40px 22px 65px;margin:0 auto}.tssa-years{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 23px}.tssa-years a{padding:7px 14px;background:#eceae1;border-radius:99px;color:var(--tssa-green)}.tssa-years a[aria-current="page"]{background:var(--tssa-green);color:white}
.tssa-doors{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.tssa-door{position:relative;min-width:0;isolation:isolate;aspect-ratio:1/1;display:flex;flex-direction:column;align-items:stretch;background:#fffcf7;border-radius:14px;border:1px solid #e4ddd0;box-shadow:0 5px 12px rgba(30,40,35,.09);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.tssa-door:hover{transform:translateY(-3px);box-shadow:0 10px 18px rgba(30,40,35,.13)}
.tssa-door-main{display:flex;flex:1;flex-direction:column;justify-content:center;align-items:center;padding:14px 4px 35px;min-height:0;color:var(--tssa-text)!important}.tssa-door-main strong{font-family:Georgia,serif;font-weight:400;font-size:clamp(2rem,3.2vw,3.2rem);line-height:1.15}.tssa-door-main small{color:#57695e;font-size:.83rem}.tssa-door-state{display:inline-block;color:#46665a;margin-top:8px;font-size:.71rem;line-height:1.3;font-weight:700}.tssa-door.is-locked .tssa-door-state{color:#8a8172}.tssa-door.is-today{background:#173d34;border:2px solid #c79b4f}.tssa-door.is-today .tssa-door-main,.tssa-door.is-today small,.tssa-door.is-today .tssa-door-state{color:#fff!important}.tssa-door.is-today .tssa-door-state{background:#bd934d;padding:4px 11px;border-radius:20px}
.tssa-sponsor-toggle{position:absolute;bottom:0;left:0;width:100%;height:29px;z-index:4;color:#6d6453;background:#f6f1e8;border:0;border-top:1px solid #e8dfd0;font-size:.65rem;cursor:pointer}.tssa-door.is-today .tssa-sponsor-toggle{background:#244e43;color:white;border-top:1px solid #3e6757}.tssa-logo-preview{position:absolute;inset:0 0 29px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;background:#fff;opacity:0;visibility:hidden;pointer-events:none;z-index:3;transition:opacity .18s}.tssa-logo-preview img{display:block;width:100%;max-height:78%;object-fit:contain}.tssa-logo-preview small{margin-top:7px;text-align:center;color:#394f46;font-size:.65rem}.tssa-door:has(.tssa-sponsor-toggle):hover .tssa-logo-preview,.tssa-door:focus-within .tssa-logo-preview{opacity:1;visibility:visible}
.tssa-how{padding:46px 0 12px}.tssa-how h2{text-align:center;font-family:Georgia,serif;font-size:clamp(1.75rem,2.4vw,2.2rem);font-weight:500;margin:0 0 28px}.tssa-how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:27px}.tssa-how-grid>div{border-left:2px solid #cebb8d;padding-left:14px}.tssa-how-grid span{display:block;color:#b28b45;font-size:.78rem;font-weight:900;letter-spacing:.13em}.tssa-how-grid h3{font-size:1rem;margin:5px 0}.tssa-how-grid p{color:#576a60;font-size:.91rem;margin:0}.tssa-test-note{margin:35px 0 0;padding:14px 17px;background:#fff8e8;border:1px solid #dec68f;border-radius:9px;color:#6c542a;font-size:.9rem}
.tssa-single{background:#f8f6f1;min-height:60vh}.tssa-single .tssa-content{padding-top:22px}.tssa-back{display:inline-block;color:#365a48!important;margin:0 0 22px;font-weight:700}.tssa-single-head{padding:22px 0;text-align:center}.tssa-single-head span{color:#a37e43;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}.tssa-single-head h1{font-family:Georgia,serif;font-size:clamp(1.9rem,3.4vw,3.1rem);color:#183d34;font-weight:500}.tssa-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.tssa-detail-panel{padding:30px;background:#fff;border:1px solid #e8e1d6;border-radius:18px;min-width:0;box-shadow:0 6px 20px rgba(20,34,27,.06)}.tssa-detail-panel h2{font-family:Georgia,serif;color:#173d34;font-size:1.6rem}.tssa-sponsor-large{background:#fff;min-height:180px;display:flex;align-items:center;justify-content:center;border:1px solid #efefef;border-radius:14px;margin:15px 0;padding:25px}.tssa-sponsor-large img{max-width:100%;max-height:160px;object-fit:contain}.tssa-win-image{display:block;max-width:100%;max-height:310px;object-fit:contain;margin:0 auto 15px;border-radius:9px}.tssa-muted{color:#596c62;font-size:.9rem}.tssa-question{margin-top:23px;padding:28px 30px;border:1px solid #ded8ce;border-radius:18px;background:#fff}.tssa-question h2{font-size:1.3rem;color:#1e4035;margin:9px 0}.tssa-door-navigation{display:flex;justify-content:space-between;gap:10px;margin:25px 0}.tssa-door-navigation a{color:#174c3d;font-weight:700}.tssa-info{padding:35px;background:#fff;border:1px solid #e8dfd0;border-radius:14px}
@media(max-width:1050px){.tssa-doors{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:790px){.tssa-day-feature{grid-template-columns:90px 1fr;}.tssa-day-number{grid-row:span 2}.tssa-feature-logo{min-height:110px;border-right:0;border-bottom:1px solid #e0dbd1}.tssa-feature-copy{padding:19px}.tssa-detail-grid{grid-template-columns:1fr}.tssa-doors{grid-template-columns:repeat(3,minmax(0,1fr))}.tssa-how-grid{grid-template-columns:1fr;gap:18px}}
@media(max-width:540px){.tssa-hero{padding:32px 13px 36px}.tssa-hero-inner h1{font-size:2.3rem}.tssa-content{padding:24px 13px 40px}.tssa-day-feature{grid-template-columns:1fr}.tssa-day-number{grid-row:auto;flex-direction:row;gap:10px;padding:9px}.tssa-day-number strong{font-size:2.5rem}.tssa-feature-logo{min-height:115px;padding:14px}.tssa-feature-logo img{max-height:94px}.tssa-feature-copy{padding:16px}.tssa-doors{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tssa-door-main strong{font-size:2.7rem}.tssa-detail-panel,.tssa-question{padding:19px}.tssa-hero-info{padding:18px}}
@media(prefers-reduced-motion:reduce){.tssa-door,.tssa-logo-preview{transition:none}.tssa-door:hover{transform:none}}

/* Version 0.1.4 – read-only question preview */
.tssa-answer-preview{border:0;padding:0;margin:16px 0;display:grid;gap:10px;opacity:1}
.tssa-answer-preview label{display:flex;gap:12px;align-items:center;margin:0;padding:12px 15px;background:#f9f7f1;border:1px solid #e5ded0;border-radius:10px;font-weight:500;cursor:default;color:#31483e}
.tssa-answer-preview input{accent-color:#1e5747;flex:none}

/* 0.1.4 – human-friendly winner copy and explicit single/multi choice guidance */
.tssa-win-count{color:#265449;font-weight:700;background:#f3f6f1;border-left:3px solid #b38d43;padding:10px 13px;border-radius:5px;margin-top:16px}
.tssa-answer-help{margin:14px 0 0;color:#234e40;background:#eff5ee;padding:12px 14px;border-radius:9px}
.tssa-answer-preview input[type=checkbox]{width:17px;height:17px}
.tssa-answer-key{border:1px solid #c4d9cc;background:#f0f7f2;color:#1e4833;border-radius:9px;padding:15px;margin:15px 0}
.tssa-answer-key p{margin:9px 0 0}
/* TSS Adventskalender 0.2.0: Anmeldung/Profilergänzung. */
.tssa-account-card{max-width:760px;margin:32px auto;padding:32px;background:#fff;border:1px solid #e6dfd4;border-radius:18px;box-shadow:0 7px 30px rgba(21,45,36,.06)}
.tssa-account-card h1{font-size:clamp(1.5rem,3vw,2.2rem);margin:0 0 12px;color:#19483f}
.tssa-account-card form{display:flex;flex-direction:column;gap:16px;margin:20px 0}
.tssa-account-card label:not(.tssa-checkbox){display:flex;flex-direction:column;gap:5px;font-weight:600;color:#234c40}
.tssa-account-card input:not([type="checkbox"]):not([type="radio"]){width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding:11px;border:1px solid #bbc9c0;border-radius:7px;background:#fff;color:#172c22}
.tssa-account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.tssa-membership{padding:16px;border-radius:10px;border:1px solid #d7dfd9;display:flex;flex-direction:column;gap:12px}
.tssa-membership legend{font-weight:700;color:#19483f;padding:0 6px}
.tssa-account-card .tssa-checkbox{display:flex;align-items:flex-start;gap:8px;font-weight:500;line-height:1.5}
.tssa-account-card .tssa-checkbox input{width:auto;flex-shrink:0;margin-top:5px}
.tssa-membership .tssa-tss-id,.tssa-membership .tssa-olw-id{display:none}
.tssa-membership:has(input[name="membership"][value="tss"]:checked) .tssa-tss-id,
.tssa-membership:has(input[name="membership"][value="both"]:checked) .tssa-tss-id,
.tssa-membership:has(input[name="membership"][value="olw"]:checked) .tssa-olw-id,
.tssa-membership:has(input[name="membership"][value="both"]:checked) .tssa-olw-id{display:block}
.tssa-account-card .tssa-native-field{margin:6px 0}
.tssa-account-card .tssa-trap{position:absolute;left:-9999px;height:1px;overflow:hidden}
@media(max-width:620px){.tssa-account-card{padding:19px}.tssa-account-grid{grid-template-columns:1fr}}

.tssa-account-cta{margin:35px auto;padding:22px;background:#fff9ed;border:1px solid #e9dfc8;border-radius:14px;text-align:center}
.tssa-account-cta .tssa-button{display:inline-flex;margin:7px}
.tssa-account-secondary{background:#fff!important;color:#19483f!important;border:1px solid #19483f}

/* 0.2.3 – centrally standardized rich text and link buttons. */
.tssa .tssa-rich-text{color:#23453c;line-height:1.62;overflow-wrap:anywhere}
.tssa .tssa-rich-text p{margin:0 0 13px}
.tssa .tssa-rich-text strong{font-weight:750;color:#173c33}
.tssa .tssa-rich-text ul,.tssa .tssa-rich-text ol{margin:8px 0 16px;padding-left:24px}
.tssa .tssa-rich-text li{margin:4px 0;padding-left:2px}
.tssa .tssa-sponsor-links{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 4px}
.tssa .tssa-sponsor-links a{max-width:100%;display:inline-flex;align-items:center;gap:8px;border:1px solid #d8e2da;border-radius:9px;padding:9px 12px;color:#19483f;background:#f6f8f5;font-weight:650;line-height:1.25;overflow-wrap:anywhere;transition:background .15s,border-color .15s}
.tssa .tssa-sponsor-links a:hover{background:#eaf1e9;border-color:#a8c3b2}
.tssa .tssa-sponsor-links svg{width:19px;height:19px;flex:0 0 19px}
@media(max-width:520px){.tssa .tssa-sponsor-links{flex-direction:column}.tssa .tssa-sponsor-links a{width:100%}}

/* 0.3.0 - genuine daily entry and no-write past knowledge test. */
.tssa-entry-form fieldset,.tssa-learning fieldset{display:grid;gap:10px;border:0;padding:0;margin:15px 0}
.tssa-entry-form legend,.tssa-learning legend{font-weight:700;margin:0 0 10px;color:#19483f}
.tssa-entry-form label,.tssa-learning label{display:flex;gap:11px;align-items:center;border:1px solid #e5ded0;border-radius:10px;background:#f9f7f1;padding:12px 15px;cursor:pointer;line-height:1.45}
.tssa-entry-form input,.tssa-learning input{accent-color:#1d5547;width:18px;height:18px;flex:none}
.tssa-entry-form label:has(input:checked),.tssa-learning label:has(input:checked){border-color:#5b947b;background:#f1f7f2}
.tssa-answer-result{margin:19px 0;padding:17px 20px;background:#eff5ee;color:#19483f;border:1px solid #cbdecf;border-radius:11px}
.tssa-answer-result h3{margin:0 0 7px;font-size:1.1rem}.tssa-answer-result p{margin:8px 0}.tssa-answer-result small{color:#597569}
.tssa-learning .tssa-button{margin-top:2px}.tssa-personal{display:flex;gap:9px 17px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e3e1d8;border-radius:12px;padding:15px 19px;margin-bottom:24px;color:#19483f}
.tssa-personal strong{font-size:1.1rem}.tssa-personal span{font-size:.92rem}

/* 0.3.2 – Premium Detailseite: konsistente Karten, Typografie und Fragebereich. */
.tssa.tssa-single{background:#f8f6f1;min-height:60vh;overflow-wrap:break-word}
.tssa-single-hero{position:relative;isolation:isolate;overflow:hidden;
  background:radial-gradient(ellipse at 5% 35%,rgba(229,183,91,.16),transparent 33%),
    radial-gradient(ellipse at 94% 65%,rgba(234,184,88,.16),transparent 32%),
    linear-gradient(116deg,#12372d,#1b4339 56%,#2d5145);
  color:#fff;padding:24px 0 128px}
.tssa-single-hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.27;
  background-image:radial-gradient(circle,#ebc684 1px,transparent 1.9px),radial-gradient(circle,rgba(255,255,255,.78) 1px,transparent 2px);
  background-size:75px 96px,117px 135px;background-position:17px 22px,54px 70px}
.tssa-single-hero:after{content:"";position:absolute;width:40%;height:1px;max-width:420px;bottom:52px;left:30%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(223,194,131,.65),transparent)}
.tssa.tssa-single .tssa-single-hero-content{max-width:1120px;padding:0 22px;margin:0 auto;position:relative;z-index:1}
.tssa.tssa-single .tssa-back{display:inline-flex;align-items:center;gap:8px;color:#f7f1df!important;margin:0 0 12px;font-size:.93rem;font-weight:650}
.tssa.tssa-single .tssa-back:hover{text-decoration:underline}
.tssa-status-banner{display:flex;flex-wrap:wrap;gap:5px 13px;align-items:center;max-width:900px;margin:0 auto 16px;
  padding:10px 15px;background:rgba(255,250,239,.96);border:1px solid #e0c991;border-radius:10px;color:#68512b;
  box-shadow:0 4px 16px rgba(16,32,26,.09);font-size:.86rem;line-height:1.5}
.tssa-status-banner strong{font-weight:750;color:#624922}.tssa-status-banner span{color:#66532e}
.tssa-single-head{text-align:center;max-width:870px;margin:0 auto;padding:18px 0 0}
.tssa-single-head:before{content:"✦";display:block;font-family:Georgia,serif;font-size:1.35rem;line-height:1;color:#dcc08b;margin-bottom:17px}
.tssa-single-head span{display:block;color:#f1d8a3!important;font-size:.77rem;letter-spacing:.18em;text-transform:uppercase;font-weight:750;margin:0 0 12px}
.tssa-single-head h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,3.6vw,3.4rem);font-weight:500;line-height:1.15;
  letter-spacing:-.017em;color:#fff!important;max-width:860px;hyphens:auto;overflow-wrap:anywhere;margin:0 auto}
.tssa-single-teaser{color:#f6efe1;margin:15px auto 0;max-width:750px;font-size:clamp(.96rem,1.65vw,1.12rem);line-height:1.55;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.tssa.tssa-single .tssa-single-body{max-width:1120px;position:relative;z-index:2;margin:-75px auto 0;padding:0 22px 55px}
.tssa-single-body .tssa-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:22px}
.tssa-single-body .tssa-detail-panel{display:flex;flex-direction:column;min-width:0;min-height:100%;padding:29px 30px 27px;
  background:#fffefa;border:1px solid #e7ddce;border-radius:20px;box-shadow:0 12px 30px rgba(18,48,39,.08)}
.tssa-single-body .tssa-detail-panel .tssa-kicker,.tssa-single-body .tssa-question .tssa-kicker{
  font-size:.7rem;font-weight:800;letter-spacing:.16em;color:#ab803d}
.tssa-single-body .tssa-detail-panel h2{font-family:Georgia,"Times New Roman",serif;color:#173d34;
  font-size:clamp(1.45rem,2.15vw,1.93rem);font-weight:600;line-height:1.25;min-height:2.5em;
  margin:8px 0 18px;overflow-wrap:anywhere}
.tssa-single-body .tssa-win-media,.tssa-single-body .tssa-sponsor-large{display:flex;align-items:center;justify-content:center;
  width:100%;height:260px;min-height:0;max-height:none;margin:0 0 20px;padding:18px;border:1px solid #eee9df;border-radius:14px;background:#fff}
.tssa-single-body .tssa-win-image{display:block;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;object-fit:contain;border-radius:8px}
.tssa-single-body .tssa-sponsor-large img{display:block;max-width:100%;max-height:100%;height:auto;width:auto;object-fit:contain}
.tssa-single-body .tssa-detail-panel .tssa-rich-text{color:#29463d;font-size:1rem;line-height:1.68;overflow-wrap:anywhere}
.tssa-single-body .tssa-detail-panel .tssa-rich-text p{margin:0 0 13px}
.tssa-single-body .tssa-detail-panel .tssa-rich-text ul,.tssa-single-body .tssa-detail-panel .tssa-rich-text ol{margin:8px 0 16px;padding-left:23px}
.tssa-single-body .tssa-detail-panel .tssa-rich-text li{padding-left:2px;margin:4px 0}
.tssa-single-body .tssa-win-count{margin:auto 0 0;padding:14px 15px 0;border:0;border-top:1px solid #eadfcd;border-radius:0;
  background:transparent;color:#255346;font-weight:750;line-height:1.5}
.tssa-single-body .tssa-sponsor-links{margin:auto 0 0;padding-top:19px;display:flex;flex-wrap:wrap;gap:9px}
.tssa-single-body .tssa-sponsor-links a{display:inline-flex;align-items:center;gap:8px;padding:10px 13px;
  background:#f6f7f2;color:#19483f!important;border:1px solid #dce4da;border-radius:10px;
  font-size:.91rem;font-weight:650;line-height:1.25;min-height:42px}
.tssa-single-body .tssa-sponsor-links a:hover{background:#edf2ec;border-color:#adc7b3}
.tssa-single-body .tssa-sponsor-links svg{width:19px;height:19px;flex:0 0 19px}
.tssa-single-body .tssa-question{margin:27px 0 0;padding:31px 34px 34px;background:#fffefa;
  border:1px solid #e7ddce;border-radius:20px;box-shadow:0 10px 30px rgba(18,48,39,.055)}
.tssa-single-body .tssa-question:before{content:"";display:block;height:2px;width:65px;background:#c29d5b;margin:0 0 22px}
.tssa-single-body .tssa-question h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.4rem,2vw,1.82rem);font-weight:600;line-height:1.35;
  margin:9px 0 16px;color:#193d32;overflow-wrap:anywhere}
.tssa-single-body .tssa-answer-help{margin:0 0 18px;padding:11px 15px;border:1px solid #dfe9de;border-radius:11px;
  background:#f0f5ee;color:#284e40;font-size:.95rem}
.tssa-single-body .tssa-answer-preview,.tssa-single-body .tssa-entry-form fieldset,.tssa-single-body .tssa-learning fieldset{border:0;padding:0;margin:13px 0;display:grid;gap:10px}
.tssa-single-body .tssa-answer-preview label,.tssa-single-body .tssa-entry-form label,.tssa-single-body .tssa-learning label{
  display:flex;gap:12px;align-items:center;min-width:0;margin:0;padding:13px 16px;
  background:#faf9f5;border:1px solid #e9e2d6;border-radius:10px;color:#29433a;font-size:.98rem;line-height:1.45}
.tssa-single-body .tssa-entry-form label:hover,.tssa-single-body .tssa-learning label:hover{border-color:#adbcad;background:#f6f8f3}
.tssa-single-body .tssa-entry-form label:has(input:checked),.tssa-single-body .tssa-learning label:has(input:checked){background:#edf5ed;border-color:#7d9c83}
.tssa-single-body .tssa-answer-preview input,.tssa-single-body .tssa-entry-form input,.tssa-single-body .tssa-learning input{flex:none;margin:0;accent-color:#1f5446}
.tssa-single-body .tssa-answer-result{margin-top:18px;padding:18px 20px;background:#eff5ee;color:#23493e;border:1px solid #d0e1d2;border-radius:12px}
.tssa-single-body .tssa-door-navigation{display:flex;justify-content:space-between;gap:15px;margin:28px 0 4px;flex-wrap:wrap}
.tssa-single-body .tssa-door-navigation a{font-weight:700;color:#174c3d}
@media(max-width:900px){
  .tssa.tssa-single .tssa-single-body .tssa-detail-grid{grid-template-columns:1fr}
  .tssa-single-body .tssa-detail-panel h2{min-height:0}
}
@media(max-width:560px){
  .tssa-single-hero{padding:18px 0 108px}
  .tssa.tssa-single .tssa-single-hero-content{padding:0 14px}
  .tssa.tssa-single .tssa-single-body{padding:0 14px 36px;margin-top:-70px}
  .tssa-single-head{padding-top:12px}
  .tssa-single-head:before{margin-bottom:13px}
  .tssa-single-head span{font-size:.68rem;letter-spacing:.1em}
  .tssa-single-head h1{font-size:clamp(1.85rem,8.2vw,2.7rem)}
  .tssa-single-teaser{font-size:.95rem}
  .tssa-single-body .tssa-detail-panel,.tssa-single-body .tssa-question{padding:22px 19px;border-radius:16px}
  .tssa-single-body .tssa-win-media,.tssa-single-body .tssa-sponsor-large{height:210px;padding:14px}
  .tssa-single-body .tssa-question h2{font-size:1.5rem}
  .tssa-status-banner{font-size:.82rem;padding:9px 12px}
}
@media(prefers-reduced-motion:reduce){.tssa-single-body .tssa-sponsor-links a{transition:none}}

/* 0.3.4 – ruhige, rahmenlose Sponsorlogofläche (weißer Hintergrund bleibt). */
.tssa.tssa-single .tssa-single-body .tssa-sponsor-large {
  border: 0;
  box-shadow: none;
  outline: 0;
  background: #fff;
}
/* 0.5.0 – Gewinnerannahme: bewusst schlicht, barrierearm und ohne weitere Datenanforderung */
.tssa-claim-page .tssa-hero{padding-bottom:68px}.tssa-claim-card{max-width:760px;margin:-32px auto 20px;position:relative;box-shadow:0 15px 35px rgba(20,50,35,.12)}
.tssa-claim-form{display:grid;gap:18px;margin-top:24px}.tssa-claim-form label{display:flex;align-items:flex-start;gap:13px;padding:18px;border:1px solid #d9dfd5;background:#f3f7f1;border-radius:12px}.tssa-claim-form input{width:20px;height:20px;accent-color:#1f604a;flex:none;margin-top:3px}.tssa-claim-form button{justify-self:start}

/* TSS 0.5.6: industry field and eligibility explanations */
.tssa-account-card select[name="industry"]{width:100%;padding:12px;border:1px solid #bbc9c0;border-radius:9px;background:#fff;color:#173d34;line-height:1.4}
.tssa-industry-info{margin:12px 0 17px;padding:13px 16px;background:#f5f5ed;border-left:3px solid #b48a3f;border-radius:9px;color:#345549;font-size:.94rem;line-height:1.6}
.tssa-industry-info a{color:#19573f!important;text-decoration:underline!important;font-weight:700}

/* 0.5.11: Registrierung optisch stabil und zugänglich – kein Eingriff in CAPTCHA-Logik. */
.tssa .tssa-account-card form label.tssa-checkbox{
    display:flex!important;
    flex-direction:row!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    flex-wrap:nowrap!important;
    width:100%;
    gap:12px;
    font-weight:500;
    line-height:1.6;
    text-align:left;
    color:#234c40;
    cursor:pointer;
}
.tssa .tssa-account-card form label.tssa-checkbox>input[type="checkbox"]{
    display:block;
    width:19px!important;
    height:19px!important;
    min-width:19px;
    flex:0 0 19px;
    margin:4px 0 0;
    accent-color:#1b5645;
}
.tssa .tssa-account-card form label.tssa-checkbox>span{
    display:block;
    flex:1 1 auto;
    min-width:0;
    overflow-wrap:break-word;
}
.tssa .tssa-account-card form label.tssa-checkbox a{
    color:#235e4c;
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:2px;
}
.tssa .tssa-account-card .tssa-native-field label:not(.tssa-checkbox){
    display:block!important;
    font-weight:700;
    margin:0 0 8px;
    line-height:1.4;
}
.tssa .tssa-account-card .tssa-native-field .control-label{
    margin-bottom:8px;
}
.tssa .tssa-account-card .tssa-native-field .controls{
    min-width:0;
}
.tssa .tssa-account-card form button.tssa-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    align-self:flex-start;
    width:auto;
    max-width:100%;
    min-height:46px;
    padding:12px 25px;
    border:0;
    border-radius:999px;
    font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
    font-size:1rem;
    font-weight:700;
    line-height:1.35;
    letter-spacing:0;
    text-transform:none;
    white-space:normal;
    text-align:center;
    cursor:pointer;
}
@media(max-width:620px){
    .tssa .tssa-account-card form button.tssa-button{width:100%;align-self:stretch;}
}

/* 0.5.17 - Dedicated first-login password setup, without Joomla profile fields. */
.tssa .tssa-first-password{max-width:480px;margin:0 auto;text-align:left}
.tssa .tssa-first-password-symbol{display:flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:13px;background:#eaf3ec;font-size:24px;margin-bottom:16px}
.tssa .tssa-first-password>p{line-height:1.6;color:#43594d;margin:0 0 20px}
.tssa .tssa-first-password h1{margin:0 0 12px}
.tssa .tssa-first-password form{gap:16px;margin:0}
.tssa .tssa-first-password label{font-size:1rem}
.tssa .tssa-first-password input[type=password]{min-height:48px}
.tssa .tssa-first-password .tssa-password-hint{font-size:.9rem;color:#58665e;line-height:1.5;margin:0}
.tssa .tssa-first-password .tssa-button{width:100%;justify-content:center;min-height:48px}

/* 0.5.18: Kalenderüberschrift unabhängig von Joomla-Template-Regeln mittig halten. */
.tssa .tssa-hero .tssa-hero-inner > h1 {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0;
  padding-right: 0;
  text-align: center !important;
}


/* 0.5.19 – In-place feedback after a daily answer / knowledge quiz. */
.tssa [hidden]{display:none!important}
.tssa.tssa-single .tssa-single-body .tssa-answer-result--centered{
  max-width:740px;margin:22px auto 12px;padding:30px 32px;
  text-align:center;background:#f2f7f0;border:1px solid #cddfcf;
  border-radius:18px;box-shadow:0 8px 22px rgba(20,54,39,.07);
  scroll-margin-top:115px;overflow-wrap:anywhere;
}
.tssa .tssa-answer-result--centered .tssa-result-eyebrow{
  display:block;color:#416b54;font-size:.72rem;letter-spacing:.14em;
  font-weight:800;text-transform:uppercase;margin:0 0 12px;
}
.tssa.tssa-single .tssa-answer-result--centered h3{
  font-family:Georgia,"Times New Roman",serif;font-weight:600;
  font-size:clamp(1.45rem,2.5vw,2rem);line-height:1.22;
  color:#184636;margin:0 0 16px;
}
.tssa.tssa-single .tssa-answer-result--centered p{margin:9px auto;max-width:630px;line-height:1.6}
.tssa.tssa-single .tssa-answer-result--centered small{display:block;margin:18px auto 0;color:#4f6658}
.tssa.tssa-single .tssa-answer-result--centered .tssa-result-retry{
  margin-top:20px;cursor:pointer;border:0;font-size:1rem;
}
@media(max-width:560px){
  .tssa.tssa-single .tssa-single-body .tssa-answer-result--centered{
    padding:24px 17px;scroll-margin-top:80px;
  }
}


/* 0.5.20 – Align the daily question heading with the centered result card. */
.tssa.tssa-single .tssa-single-body .tssa-question::before {
  margin-left: auto;
  margin-right: auto;
}
.tssa.tssa-single .tssa-single-body .tssa-question > .tssa-kicker {
  display: block;
  width: 100%;
  text-align: center;
}
.tssa.tssa-single .tssa-single-body .tssa-question > h2 {
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  text-wrap: balance;
}


/* 0.5.22 – Einheitliche Türchengestaltung und freundlichere Kalenderbeschriftung. */
/* Türchentitel und Teaser: stets mittig, auch bei Überschreibungen des Joomla-Templates. */
.tssa.tssa-single .tssa-single-head,
.tssa.tssa-single .tssa-single-head h1,
.tssa.tssa-single .tssa-single-head .tssa-single-teaser {
  text-align:center!important;
}
.tssa.tssa-single .tssa-single-head h1,
.tssa.tssa-single .tssa-single-head .tssa-single-teaser {
  margin-left:auto!important;
  margin-right:auto!important;
}
/* Einheitliche Kopfbereiche der Gewinn- und Sponsorenkarte. Langer Beschreibungstext bleibt linksbündig. */
.tssa.tssa-single .tssa-single-body .tssa-detail-panel > .tssa-kicker,
.tssa.tssa-single .tssa-single-body .tssa-detail-panel > h2 {
  display:block;
  width:100%;
  text-align:center!important;
}
.tssa.tssa-single .tssa-single-body .tssa-detail-panel > h2 {
  text-wrap:balance;
}
.tssa.tssa-single .tssa-single-body .tssa-detail-panel .tssa-rich-text,
.tssa.tssa-single .tssa-single-body .tssa-detail-panel .tssa-rich-text p {
  text-align:left;
}
/* Richtig/falsch: Ergebnisüberschrift mittig, auch wenn das Template h3 anders formatiert. */
.tssa.tssa-single .tssa-single-body .tssa-answer-result--centered > h3 {
  display:block;
  width:100%;
  text-align:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
/* Sponsorlinks sind als Gruppe umbrochen und zeilenweise mittig ausgerichtet. */
.tssa.tssa-single .tssa-single-body .tssa-sponsor-links {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:10px;
}
.tssa.tssa-single .tssa-single-body .tssa-sponsor-links a {
  min-height:44px;
  max-width:100%;
  border-radius:999px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  text-align:center;
  white-space:normal;
  overflow-wrap:anywhere;
}
/* Etwas längerer, einladender Sponsorvorschau-Text auf den Kalenderkarten. */
.tssa .tssa-door-main {padding-bottom:39px}
.tssa .tssa-sponsor-toggle {
  height:34px;
  padding:0 5px;
  font-size:clamp(.62rem,.8vw,.7rem);
  line-height:1.2;
  font-weight:650;
}
.tssa .tssa-logo-preview {inset:0 0 34px}
/* Teilnahmeinformation nur im Login-/Registrierungsbereich der Kalenderübersicht. */
.tssa .tssa-account-cta .tssa-calendar-eligibility {
  max-width:850px;
  margin:18px auto 0;
  text-align:left;
}

/* 0.5.23 – Klare Anzeige, wenn einem Test-/Bestandskonto Angaben fehlen. */
.tssa.tssa-single .tssa-profile-gate {
  max-width:740px;
  margin:20px auto 0;
  padding:22px 24px;
  text-align:center;
  background:#fffaf0;
  border:1px solid #e3d5b6;
  border-radius:14px;
  color:#24453b;
}
.tssa.tssa-single .tssa-profile-gate p { margin:0 0 12px; line-height:1.6; }
.tssa.tssa-single .tssa-profile-gate .tssa-button { margin-top:6px; }

/* 0.5.31 – sponsor-PDFs beneath social links, only when present. */
.tssa.tssa-single .tssa-sponsor-documents{margin-top:22px;padding:17px 0 0;border-top:1px solid #e9e4d9;display:flex;flex-direction:column;gap:8px}
.tssa.tssa-single .tssa-sponsor-documents-heading{text-align:center;color:#a77c36;font-size:.73rem;letter-spacing:.12em;text-transform:uppercase;font-weight:750;margin:0 0 5px}
.tssa.tssa-single .tssa-sponsor-documents a{display:flex;align-items:center;gap:12px;max-width:100%;padding:11px 13px;color:#18463c!important;background:#f7f8f4;border:1px solid #dfe6db;border-radius:10px;text-decoration:none;font-weight:650;line-height:1.4}
.tssa.tssa-single .tssa-sponsor-documents a:hover,.tssa.tssa-single .tssa-sponsor-documents a:focus-visible{background:#edf4ec;border-color:#b6cbb5}
.tssa.tssa-single .tssa-sponsor-documents a>svg{flex:none;color:#b28540}
.tssa.tssa-single .tssa-sponsor-documents a>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
.tssa.tssa-single .tssa-sponsor-document-type{font-size:.68rem;letter-spacing:.06em;color:#66756b;font-weight:750}


/* 0.5.32 – Gleichmäßiges 2-Spalten-Raster für Sponsorlinks, passend zu den PDF-Dokumenten. */
.tssa.tssa-single .tssa-single-body .tssa-sponsor-links {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  justify-content:stretch;
  width:100%;
  gap:10px 12px;
  padding-top:19px;
}
.tssa.tssa-single .tssa-single-body .tssa-sponsor-links a {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  min-width:0;
  width:100%;
  min-height:48px;
  padding:11px 13px;
  border:1px solid #dce5da;
  border-radius:11px;
  background:#f7f8f4;
  color:#18463c!important;
  text-align:left;
  text-decoration:none;
  font-weight:700;
  line-height:1.4;
  overflow-wrap:anywhere;
  box-shadow:none;
}
.tssa.tssa-single .tssa-single-body .tssa-sponsor-links a:hover,
.tssa.tssa-single .tssa-single-body .tssa-sponsor-links a:focus-visible {
  background:#edf4ec;
  border-color:#b6cbb5;
}
.tssa.tssa-single .tssa-single-body .tssa-sponsor-links a:focus-visible {
  outline:2px solid #256b50;
  outline-offset:2px;
}
.tssa.tssa-single .tssa-single-body .tssa-sponsor-link-platform {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 22px;
}
.tssa.tssa-single .tssa-single-body .tssa-sponsor-link-platform svg {
  display:block;
  width:22px;
  height:22px;
}
.tssa.tssa-single .tssa-single-body .tssa-sponsor-link-label {
  min-width:0;
  flex:1 1 auto;
  font-size:.91rem;
  text-align:left;
}
.tssa.tssa-single .tssa-single-body .tssa-sponsor-links .tssa-sponsor-link-external {
  display:block;
  width:16px;
  height:16px;
  flex:0 0 16px;
  opacity:.75;
}
@media(max-width:440px) {
  .tssa.tssa-single .tssa-single-body .tssa-sponsor-links {grid-template-columns:minmax(0,1fr)}
}


/* 0.5.33 – winterliche Gestaltung nur innerhalb der Adventskalender-Komponente. */
.tssa:not(.tssa-claim-page){
  background-color:#0a312e;
  background-image:linear-gradient(180deg,rgba(3,29,28,.08),rgba(10,41,36,.22)),url('../images/winter-background.svg');
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
  min-height:75vh;
}
.tssa:not(.tssa-claim-page) .tssa-hero,
.tssa.tssa-single .tssa-single-hero{
  background:linear-gradient(180deg,rgba(3,35,32,.16),rgba(3,35,32,.35)),url('../images/winter-background.svg') center top / cover no-repeat;
}
.tssa:not(.tssa-claim-page) .tssa-hero:before,
.tssa.tssa-single .tssa-single-hero:before{opacity:.12}
.tssa:not(.tssa-claim-page) .tssa-content > .tssa-years,
.tssa:not(.tssa-claim-page) .tssa-content > .tssa-personal,
.tssa:not(.tssa-claim-page) .tssa-content > .tssa-doors,
.tssa:not(.tssa-claim-page) .tssa-content > .tssa-how,
.tssa:not(.tssa-claim-page) .tssa-content > .tssa-account-cta{position:relative;z-index:1}
.tssa .tssa-how{background:rgba(255,252,246,.96);border-radius:20px;padding:28px;margin-top:26px}
.tssa.tssa-single .tssa-single-body .tssa-detail-panel,
.tssa.tssa-single .tssa-single-body .tssa-question{background:#fffdf8;box-shadow:0 14px 32px rgba(2,31,28,.14)}
.tssa:not(.tssa-claim-page) .tssa-door{box-shadow:0 9px 24px rgba(0,30,28,.18)}
.tssa:not(.tssa-claim-page) .tssa-hero .tssa-small-heading{font-weight:850;letter-spacing:.13em}
.tssa:not(.tssa-claim-page) .tssa-hero h1{color:#f7dca0!important;text-shadow:0 3px 12px rgba(0,0,0,.35)}
.tssa.tssa-single .tssa-single-hero .tssa-back{color:#fff!important}
.tssa .tssa-test-note{background:#fffaf1;border-color:#d2ae6a}
@media(max-width:680px){
  .tssa:not(.tssa-claim-page){background-size:auto 100%;background-position:center top}
  .tssa .tssa-how{padding:18px}
}

.tssa.tssa-single .tssa-door-navigation a{color:#f8e8bd!important;text-shadow:0 1px 4px #062c27}
.tssa.tssa-single .tssa-door-navigation a:focus-visible{outline-color:#e0b45f}


/* 0.5.36 – Eine durchgehende Winterkulisse fuer die gesamte Advents-Komponente.
 * Nur der aeussere .tssa-Container traegt ein Bild; Hero und Content haben
 * keine unabhaengig skalierten Hintergruende oder grafischen Schnittkanten.
 * Bilddaten wurden vor den horizontalen Kanten der Quelldateien beschnitten,
 * die beiden Szenen sind in einem Asset weich ineinander uebergeblendet.
 * Die Joomla-Templateelemente ausserhalb .tssa werden nicht angefasst.
 */
.tssa:not(.tssa-claim-page) {
  background-color:#0d443b;
  background-image:url('../images/winter-unified-2026.webp');
  background-position:center top;
  background-size:cover;
  background-repeat:no-repeat;
  min-height:75vh;
}
/* Echte Transparenz: weder zweites Bild noch farbige Kante am Hero-Ende. */
.tssa:not(.tssa-claim-page) .tssa-hero,
.tssa.tssa-single .tssa-single-hero {
  background:transparent;
  background-color:transparent;
}
.tssa:not(.tssa-claim-page) .tssa-hero::before,
.tssa.tssa-single .tssa-single-hero::before {
  display:none;
  content:none;
}
.tssa:not(.tssa-claim-page) .tssa-hero {
  padding-top:51px;
  padding-bottom:78px;
}
.tssa:not(.tssa-claim-page) .tssa-hero h1 {
  color:#f8dfad!important;
  text-shadow:0 3px 18px rgba(0,18,16,.62);
}
.tssa:not(.tssa-claim-page) .tssa-hero .tssa-lead,
.tssa.tssa-single .tssa-single-teaser {
  text-shadow:0 2px 9px rgba(0,22,18,.57);
}
.tssa.tssa-single .tssa-single-hero:after {
  background:linear-gradient(90deg,transparent,rgba(223,194,131,.55),transparent);
}
.tssa:not(.tssa-claim-page) .tssa-content {
  position:relative;
  z-index:1;
}
.tssa:not(.tssa-claim-page) .tssa-how,
.tssa:not(.tssa-claim-page) .tssa-account-cta,
.tssa:not(.tssa-claim-page) .tssa-personal {
  box-shadow:0 12px 35px rgba(0,27,25,.12);
}
@media(max-width:700px) {
  .tssa:not(.tssa-claim-page) {
    background-image:url('../images/winter-unified-mobile-2026.webp');
    background-position:center top;
    background-size:cover;
    background-repeat:no-repeat;
  }
  .tssa:not(.tssa-claim-page) .tssa-hero {
    padding-top:38px;
    padding-bottom:64px;
  }
  .tssa:not(.tssa-claim-page) .tssa-hero h1 {
    font-size:clamp(1.75rem,7.25vw,2.25rem);
    overflow-wrap:break-word;
  }
}

/* 0.5.43 - Uniform, composed Advent-door cards on desktop.
 * Independent layers: CSS background, transparent door artwork, dynamic day
 * number, optional small ornaments, and HTML status / sponsor-preview buttons.
 * No screenshot of the full calendar is used as an image.
 * Existing mobile cards (<791px) and all participation logic stay untouched.
 */
.tssa .tssa-door-artwork {display:none}
@media (min-width:791px) {
  .tssa:not(.tssa-single) .tssa-doors {gap:16px}
  .tssa:not(.tssa-single) .tssa-doors .tssa-door {
    aspect-ratio:1.49 / 1;
    border:1px solid #d7b46f;
    border-radius:16px;
    background:linear-gradient(155deg,#073a31,#042b26 70%,#042620);
    box-shadow:0 5px 15px rgba(0,24,19,.2),inset 0 1px rgba(255,237,180,.05);
    overflow:hidden;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door.is-today {
    border:2px solid #edc16c;
    box-shadow:0 0 0 2px rgba(247,194,86,.27),0 9px 24px rgba(0,24,19,.31);
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door:hover,
  .tssa:not(.tssa-single) .tssa-doors .tssa-door:focus-within {
    transform:translateY(-2px);
    box-shadow:0 9px 21px rgba(0,24,19,.3);
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door-main {
    position:relative;
    display:block;
    width:100%;height:100%;padding:0;min-height:0;
    isolation:isolate;
    color:#fff7dc!important;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door-artwork {
    display:block;position:absolute;inset:0;
    background:
      radial-gradient(circle at 82% 23%,rgba(230,189,109,.14) 0,transparent 5%),
      radial-gradient(circle at 26% 75%,rgba(201,157,73,.1) 0,transparent 10%),
      radial-gradient(ellipse at center 35%,rgba(23,93,70,.24) 0,transparent 64%);
    background-color:transparent;
    pointer-events:none;
  }
  /* The same transparent door is centered on every card. Unlike the old six
     precomposed photos it cannot drift or be cropped differently. */
  .tssa:not(.tssa-single) .tssa-doors .tssa-door-figure {
    position:absolute;left:50%;top:4.2%;height:80%;
    aspect-ratio:282 / 299;width:auto;max-width:62%;
    transform:translateX(-50%);
    background:url('../images/banner-door-blank.webp') center / contain no-repeat;
    z-index:1;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door-artwork-number {
    /* The red door panel in banner-door-blank.webp is centred at 59% of
       the image width (snow and foliage extend further on the left). */
    position:absolute;left:59%;top:51%;transform:translate(-50%,-50%);
    z-index:2;
    font-family:Georgia,'Times New Roman',serif;
    font-size:clamp(1.45rem,2.25vw,1.95rem);
    font-weight:500;letter-spacing:-.045em;line-height:1;
    color:#ffeab5;
    text-shadow:0 1px 3px #5d1b08,0 0 8px rgba(255,174,56,.68),0 0 17px rgba(255,139,43,.35);
    white-space:nowrap;
  }
  /* Delicate corner foliage comes from a separate transparent crop. */
  .tssa:not(.tssa-single) .tssa-doors .tssa-door-artwork::after {
    content:"";position:absolute;left:0;top:0;width:30%;height:46%;
    background:url('../images/calendar-sprig-corner.webp') left top / contain no-repeat;
    opacity:.86;z-index:0;pointer-events:none;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door-ornament {
    display:none;position:absolute;z-index:2;bottom:27px;
    width:22%;height:32%;max-width:50px;max-height:52px;
    background-position:center bottom;background-size:contain;background-repeat:no-repeat;
    pointer-events:none;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door:nth-child(6n + 1) .tssa-door-ornament,
  .tssa:not(.tssa-single) .tssa-doors .tssa-door:nth-child(15n + 5) .tssa-door-ornament {
    display:block;left:8%;background-image:url('../images/calendar-star.svg');
    filter:drop-shadow(0 0 3px rgba(236,184,74,.5));
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door:nth-child(7n + 3) .tssa-door-ornament {
    display:block;left:auto;right:6%;background-image:url('../images/calendar-gift.svg');
    filter:drop-shadow(1px 2px 3px rgba(0,12,8,.4));
  }
  /* The textual number and date still exist for accessibility; on desktop
     they are represented visually by the centered, dynamic number. */
  .tssa:not(.tssa-single) .tssa-doors .tssa-door-main > strong,
  .tssa:not(.tssa-single) .tssa-doors .tssa-door-main > small {
    position:absolute!important;width:1px!important;height:1px!important;
    padding:0!important;margin:-1px!important;overflow:hidden!important;
    clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door-state,
  .tssa:not(.tssa-single) .tssa-doors .tssa-sponsor-toggle {
    position:absolute;left:50%;bottom:6px;transform:translateX(-50%);
    z-index:3;display:flex;align-items:center;justify-content:center;
    width:max-content;max-width:calc(100% - 20px);min-width:58%;height:23px;
    margin:0;padding:1px 10px;
    border:1px solid #c8a260;border-radius:999px;
    background:rgba(4,40,32,.95);color:#fff0cc!important;
    box-shadow:0 1px 5px rgba(0,15,11,.35);
    font-family:Georgia,'Times New Roman',serif;
    font-size:clamp(.62rem,.78vw,.76rem);
    font-weight:600;letter-spacing:0;line-height:1.1;
    white-space:nowrap;text-align:center;
    pointer-events:none;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door.is-locked .tssa-door-state {
    background:rgba(4,40,32,.95);color:#fff0cc!important;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door.is-today .tssa-door-state {
    background:#bb8a31;color:#fff!important;border-color:#f1d395;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door.is-answered .tssa-door-state {
    background:#216d50;color:#fff!important;border-color:#bbd3b3;
  }
  /* Existing sponsor reveal keeps its own real button and keyboard focus. */
  .tssa:not(.tssa-single) .tssa-doors .tssa-sponsor-toggle {
    cursor:pointer;pointer-events:auto;text-transform:uppercase;min-width:74%;
    border-top:1px solid #c8a260;
    font-size:clamp(.56rem,.7vw,.69rem);
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-sponsor-toggle:hover {background:#13503d}
  .tssa:not(.tssa-single) .tssa-doors .tssa-door:has(.tssa-sponsor-toggle) .tssa-door-state {
    position:absolute!important;width:1px!important;height:1px!important;
    padding:0!important;margin:-1px!important;overflow:hidden!important;
    clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-logo-preview {
    inset:8px 8px 36px;padding:9px;border-radius:12px;
    background:rgba(255,253,247,.99);
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door:focus-within {
    outline:2px solid #ecd08f;outline-offset:3px;
  }
}
@media(min-width:1051px) {
  /* Widen the calendar only; login/help panels retain their previous width. */
  .tssa:not(.tssa-single) .tssa-content:has(> .tssa-doors) {max-width:1330px}
  .tssa:not(.tssa-single) .tssa-content:has(> .tssa-doors) > :not(.tssa-doors) {
    max-width:1120px;margin-left:auto;margin-right:auto;
  }
  /* 24 days = four complete rows at 6 columns; no orphan last row. */
  .tssa:not(.tssa-single) .tssa-doors {
    display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;
  }
  .tssa:not(.tssa-single) .tssa-doors .tssa-door {
    flex:none;width:auto;
  }
}
@media(min-width:791px) and (max-width:900px) {
  .tssa:not(.tssa-single) .tssa-doors .tssa-door-state,
  .tssa:not(.tssa-single) .tssa-doors .tssa-sponsor-toggle {
    font-size:.62rem;min-width:64%;max-width:calc(100% - 12px);padding-inline:5px;
  }
}

/* 0.5.44 - Responsive grid also in Joomla's narrower embedded time-travel
   preview: use the actual content width rather than the browser viewport.
   The existing mobile presentation (viewport < 791px) stays unchanged. */
@media (min-width:791px) {
  .tssa:not(.tssa-single) .tssa-content:has(> .tssa-doors) {
    container-type:inline-size;
  }
}
@container (max-width:1149px) {
  .tssa:not(.tssa-single) .tssa-doors {
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@container (max-width:779px) {
  .tssa:not(.tssa-single) .tssa-doors {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@container (max-width:559px) {
  .tssa:not(.tssa-single) .tssa-doors {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Plain-text solution explanations: visually recognizable, wrapping external links. */
.tssa .tssa-explanation{overflow-wrap:anywhere}
.tssa .tssa-explanation a{color:#135b4b;text-decoration:underline;text-underline-offset:2px;font-weight:600}
.tssa .tssa-explanation a:hover,.tssa .tssa-explanation a:focus{color:#094031;text-decoration-thickness:2px}

/* 0.5.66: voluntary daily mail opt-in, unobtrusive within the calendar */
.tssa-daily-reminder{max-width:950px;margin:24px auto;padding:22px 25px;background:#f6f8f3;border:1px solid #d6e4d9;border-radius:16px;color:#1b4037}
.tssa-daily-reminder h2{font-size:1.35rem;margin:0 0 8px}
.tssa-daily-reminder p{margin:0 0 15px;line-height:1.55}
.tssa-daily-reminder form{display:flex;gap:15px;flex-wrap:wrap;align-items:center}
.tssa-daily-reminder .tssa-reminder-consent{display:flex;align-items:flex-start;gap:10px;line-height:1.5;flex-basis:100%;font-size:.95rem}
.tssa-daily-reminder .tssa-reminder-consent input{flex:none;margin-top:4px;width:17px;height:17px}


/* 0.5.67: compact consent form in the EngageBox slide-in. */
.tssa-daily-reminder.tssa-reminder-in-popup {
  max-width:none; margin:0; padding:8px 2px 4px; background:transparent;
  border:0; border-radius:0; box-shadow:none; color:#173d32;
}
.tssa-daily-reminder.tssa-reminder-in-popup h2 {font-size:1.25rem;margin:0 0 10px}
.tssa-daily-reminder.tssa-reminder-in-popup p {font-size:.94rem;line-height:1.55;margin:0 0 14px}
.tssa-daily-reminder.tssa-reminder-in-popup form {gap:14px}
.tssa-daily-reminder.tssa-reminder-in-popup .tssa-reminder-consent {font-size:.91rem}
.tssa-daily-reminder.tssa-reminder-in-popup .tssa-button {border:0;cursor:pointer;width:100%;text-align:center}
