/* TPFF Core — component styles. Colours come from the child theme's :root tokens. */
.tpff-muted{color:var(--tpff-muted,#7a746b);font-size:.9rem}
.tpff-eyebrow{font-family:var(--tpff-display,'Space Grotesk',sans-serif);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--tpff-primary,#df8d2d);margin:0 0 .4rem}
.tpff-grid{display:grid;gap:1.5rem}
.tpff-grid-3{grid-template-columns:repeat(3,1fr)}
.tpff-grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.tpff-grid-4{grid-template-columns:repeat(2,1fr)}.tpff-grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.tpff-grid-4,.tpff-grid-3{grid-template-columns:1fr}}
.tpff-card{background:var(--tpff-card,#faf8f3);border:1px solid var(--tpff-border,#e2dcd2);border-radius:16px;overflow:hidden;transition:border-color .2s,box-shadow .2s}
.tpff-card:hover{border-color:var(--tpff-primary,#df8d2d);box-shadow:0 10px 30px rgba(23,19,16,.08)}
.tpff-card-img img{display:block;width:100%;height:100%;object-fit:cover}
.tpff-card-body{padding:1.25rem}
.tpff-card h3{font-family:var(--tpff-heading,'Playfair Display',serif);font-size:1.2rem;margin:.2rem 0 .4rem}
.tpff-card h3 a{color:inherit;text-decoration:none}
.tpff-poster{aspect-ratio:2/3;background:#2a251f}
.tpff-poster-ph{display:flex;align-items:center;justify-content:center;height:100%;padding:1rem;text-align:center;color:#fbf9f5;font-family:var(--tpff-heading,serif);font-size:1.3rem}
.tpff-price{font-family:var(--tpff-display,sans-serif);font-weight:700;color:var(--tpff-primary,#df8d2d);font-size:1.15rem;margin:.4rem 0 .8rem}
.tpff-badge{display:inline-block;font-family:var(--tpff-display,sans-serif);font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:.25rem .65rem;border-radius:999px;background:rgba(223,141,45,.14);color:#a8631a}
.tpff-cat-screening{background:rgba(59,130,246,.12);color:#2563eb}.tpff-cat-masterclass{background:rgba(147,51,234,.12);color:#7e22ce}
.tpff-cat-workshop{background:rgba(22,163,74,.12);color:#15803d}.tpff-cat-networking{background:rgba(234,88,12,.12);color:#c2410c}
.tpff-cat-party{background:rgba(219,39,119,.12);color:#be185d}
.tpff-btn{display:inline-block;background:var(--tpff-primary,#df8d2d);color:#fff!important;font-family:var(--tpff-display,sans-serif);font-weight:600;font-size:.85rem;padding:.7rem 1.4rem;border:2px solid var(--tpff-primary,#df8d2d);border-radius:10px;text-decoration:none;cursor:pointer;transition:filter .2s}
.tpff-btn:hover{filter:brightness(.92)}
.tpff-btn-outline{background:transparent;color:var(--tpff-primary,#df8d2d)!important}
.tpff-btn-disabled{background:#cfc8bc;border-color:#cfc8bc;cursor:default}
/* Schedule */
.tpff-filters{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-bottom:1.5rem}
.tpff-filter-group{display:flex;flex-wrap:wrap;gap:.5rem}
.tpff-filter-group button{font-family:var(--tpff-display,sans-serif);font-size:.78rem;font-weight:600;padding:.45rem .95rem;border-radius:999px;border:1px solid var(--tpff-border,#e2dcd2);background:transparent;color:inherit;cursor:pointer}
.tpff-filter-group button.is-active{background:var(--tpff-primary,#df8d2d);border-color:var(--tpff-primary,#df8d2d);color:#fff}
.tpff-row{display:flex;align-items:center;gap:1.25rem;padding:1rem 1.25rem;margin-bottom:.75rem;background:var(--tpff-card,#faf8f3);border:1px solid var(--tpff-border,#e2dcd2);border-radius:14px}
.tpff-row-time{width:130px;flex:none;font-family:var(--tpff-display,sans-serif)}
.tpff-row-time strong{display:block;color:var(--tpff-primary,#df8d2d);font-size:.9rem}.tpff-row-time span{font-size:.72rem;color:var(--tpff-muted,#7a746b)}
.tpff-row-main{flex:1}.tpff-row-main h3{font-family:var(--tpff-heading,serif);font-size:1.02rem;margin:0}.tpff-row-main p{margin:.2rem 0 0;font-size:.82rem;color:var(--tpff-muted,#7a746b)}
@media(max-width:620px){.tpff-row{flex-wrap:wrap}.tpff-row-time{width:100%}}
/* Film single */
.tpff-film-single{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:2.5rem}
@media(max-width:800px){.tpff-film-single{grid-template-columns:1fr}}
.tpff-film-poster img{width:100%;border-radius:16px}
.tpff-dl{display:grid;grid-template-columns:120px 1fr;gap:.4rem 1rem;font-size:.95rem}.tpff-dl dt{font-weight:600}.tpff-dl dd{margin:0}
/* People */
.tpff-speaker{text-align:center}.tpff-speaker img{width:128px;height:128px;object-fit:cover;border-radius:16px;border:2px solid var(--tpff-border,#e2dcd2)}
.tpff-speaker h3{font-family:var(--tpff-heading,serif);font-size:1.05rem;margin:.8rem 0 .2rem}
.tpff-tier{font-family:var(--tpff-display,sans-serif);text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;color:var(--tpff-primary,#df8d2d);margin:2rem 0 1rem}
.tpff-sponsor{text-align:center;padding:1rem;border:1px solid var(--tpff-border,#e2dcd2);border-radius:14px;background:var(--tpff-card,#faf8f3)}.tpff-sponsor img{max-width:100%;height:auto}
/* Announcement bar */
.tpff-announce{padding:.65rem 1rem;text-align:center;font-size:.85rem;font-family:var(--tpff-display,sans-serif);background:#171310;color:#fbf9f5}
.tpff-announce strong{margin-right:.5rem;color:var(--tpff-primary,#df8d2d)}
.tpff-sev-important{background:#8a5a12}.tpff-sev-urgent{background:#b45309}.tpff-sev-emergency{background:#b91c1c}
/* Form */
.tpff-form label{display:block;font-family:var(--tpff-display,sans-serif);font-size:.8rem;font-weight:600;margin-bottom:1rem}
.tpff-form input,.tpff-form select,.tpff-form textarea{display:block;width:100%;margin-top:.35rem;padding:.7rem .85rem;border:1px solid var(--tpff-border,#e2dcd2);border-radius:10px;background:#fff;font:inherit;font-weight:400}
.tpff-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.25rem}@media(max-width:700px){.tpff-form-grid{grid-template-columns:1fr}}
.tpff-hp{position:absolute!important;left:-9999px!important}
.tpff-notice{padding:1.25rem 1.5rem;border-radius:14px;margin-bottom:1.5rem}.tpff-ok{background:rgba(22,163,74,.1);border:1px solid rgba(22,163,74,.3)}.tpff-err{background:rgba(185,28,28,.08);border:1px solid rgba(185,28,28,.3)}

/* Rotating highlights banner */
.tpff-hl{position:relative;background:#0e0c0a;color:#fbf9f5;overflow:hidden}
.tpff-hl-track{position:relative;min-height:420px}
.tpff-hl-slide{position:absolute;inset:0;display:flex;align-items:center;opacity:0;visibility:hidden;transition:opacity .6s;background:#0e0c0a center/cover no-repeat}
.tpff-hl-slide:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,12,10,.96),rgba(14,12,10,.75) 55%,rgba(14,12,10,.45))}
.tpff-hl-slide.is-active{opacity:1;visibility:visible;position:relative}
.tpff-hl-inner{position:relative;max-width:1200px;width:100%;margin:0 auto;padding:60px 70px}
.tpff-hl-tag{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--tpff-display,sans-serif);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);margin:0 0 .5rem}
.tpff-hl-dot{width:7px;height:7px;border-radius:50%;background:var(--acc)}
.tpff-hl-price{display:inline-block;font-family:var(--tpff-display,sans-serif);font-size:.72rem;font-weight:600;padding:.25rem .7rem;border-radius:6px;background:var(--acc);color:#fff;margin-bottom:.6rem}
.tpff-hl h2{font-family:var(--tpff-heading,serif);font-size:clamp(2rem,4.5vw,3.2rem);color:#fbf9f5!important;margin:.2rem 0;line-height:1.1}
.tpff-hl-sub{font-family:var(--tpff-display,sans-serif);font-size:1.1rem;color:var(--acc);margin:.2rem 0 1rem}
.tpff-hl-desc{max-width:560px;font-size:.88rem;line-height:1.7;opacity:.75;margin:0 0 1rem}
.tpff-hl-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;font-family:var(--tpff-display,sans-serif);font-size:.72rem;opacity:.7;margin:0 0 1.2rem}
.tpff-hl-btn{display:inline-block;font-family:var(--tpff-display,sans-serif);font-size:.8rem;font-weight:600;padding:.6rem 1.3rem;border-radius:8px;background:var(--acc);color:#fff!important;text-decoration:none;margin-right:.6rem;border:1px solid var(--acc)}
.tpff-hl-btn-ghost{background:transparent;border-color:rgba(251,249,245,.3)}
.tpff-hl-nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:1px solid rgba(251,249,245,.25);background:rgba(14,12,10,.5);color:#fff;font-size:20px;line-height:1;cursor:pointer;z-index:3}
.tpff-hl-prev{left:12px}.tpff-hl-next{right:12px}
.tpff-hl-dots{position:absolute;right:70px;bottom:22px;display:flex;gap:.4rem;z-index:3}
.tpff-hl-dots button{width:7px;height:7px;border-radius:50%;border:0;padding:0;background:rgba(251,249,245,.35);cursor:pointer}
.tpff-hl-dots button.is-active{width:24px;border-radius:6px;background:#10b981}
@media(max-width:700px){.tpff-hl-inner{padding:40px 50px}.tpff-hl-dots{right:50px}}
/* Newsletter */
.tpff-nl{display:flex;gap:.6rem;max-width:420px}
.tpff-nl input[type=email]{flex:1;padding:.7rem 1rem;border-radius:10px;border:1px solid rgba(251,249,245,.2);background:rgba(251,249,245,.06);color:#fbf9f5;font:inherit;font-size:.85rem}
.tpff-nl button{padding:.7rem 1.3rem;border:0;border-radius:10px;background:var(--tpff-primary,#df8d2d);color:#fff;font-family:var(--tpff-display,sans-serif);font-weight:600;cursor:pointer}
.tpff-nl-msg{margin:0 0 .5rem;font-size:.85rem;color:var(--tpff-primary,#df8d2d)}

/* ===== v1.2 components ===== */
.tpff-i{vertical-align:-2px;flex:none}
.tpff-pillx{display:inline-block;font-family:'Space Grotesk',sans-serif;font-size:.62rem;font-weight:600;padding:.2rem .6rem;border-radius:6px;border:1px solid currentColor;background:rgba(0,0,0,.45);color:#fff;position:absolute;top:10px;left:10px;line-height:1.3}
.tpff-pillx-r{left:auto;right:10px}
.tpff-pillx-solid{background:#df8d2d;border-color:#df8d2d;color:#fff}
.tpff-pillx-dark{position:static;background:#3a352f;border-color:#3a352f;color:#d8d2c7;margin-bottom:.6rem}
.tpff-pillx-black{position:static;background:#171310;border-color:#171310;color:#fff;margin-left:.4rem;vertical-align:middle}
.tpff-pillx-free{top:auto;bottom:10px;background:#22c55e;border-color:#22c55e}
.tpff-ser-festival{color:#df8d2d}.tpff-ser-collective{color:#f59e0b}.tpff-ser-prime-story{color:#a78bfa}.tpff-ser-ai-summit{color:#22d3ee}.tpff-ser-x{color:#df8d2d}
.tpff-typ-masterclass{color:#818cf8}.tpff-typ-screening{color:#60a5fa}.tpff-typ-ceremony{color:#fbbf24}.tpff-typ-party{color:#f472b6}.tpff-typ-workshop{color:#4ade80}.tpff-typ-networking{color:#fb923c}.tpff-typ-summit{color:#22d3ee}
.tpff-search{position:relative;max-width:540px}.tpff-search .tpff-i{position:absolute;left:14px;top:50%;transform:translateY(-50%);opacity:.5;color:#fbf9f5}
.tpff-search input{width:100%;padding:.75rem 1rem .75rem 2.6rem;border-radius:10px;border:1px solid rgba(251,249,245,.15);background:rgba(251,249,245,.07);color:#fbf9f5;font:inherit;font-size:.9rem}
/* filter bars */
.tpff-filterbar{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1.6rem}
.tpff-fwrap{background:rgba(23,19,16,.06);border-radius:10px;padding:5px;display:inline-flex}
.tpff-fgroup{display:flex;flex-wrap:wrap;gap:2px}
.tpff-fbtn{border:0;background:transparent;font-family:'Space Grotesk',sans-serif;font-size:.78rem;font-weight:500;color:var(--tpff-muted,#7a746b);padding:.45rem .9rem;border-radius:7px;cursor:pointer}
.tpff-fbtn.is-active{background:#df8d2d;color:#fff}
.tpff-fwrap-dark .tpff-fbtn.is-active{background:#df8d2d}
.tpff-fwrap + .tpff-fwrap-dark .tpff-fbtn.is-active{background:#171310}
/* event cards */
.tpff-ecard{background:#faf8f3;border:1px solid #e2dcd2;border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.tpff-ecard-img{display:block;position:relative;height:150px;background:#2a251f center/cover}
.tpff-ecard-body{padding:1.1rem 1.25rem 1.2rem;display:flex;flex-direction:column;flex:1}
.tpff-ecard h3{font-family:'Playfair Display',serif;font-size:1.05rem;margin:0 0 .4rem;line-height:1.3}
.tpff-ecard-desc{font-size:.8rem;color:#7a746b;margin:0 0 .8rem;line-height:1.5}
.tpff-ecard-meta{list-style:none;margin:0 0 1rem;padding:0;font-size:.78rem;color:#7a746b}.tpff-ecard-meta li{display:flex;gap:.5rem;align-items:center;padding:.12rem 0}.tpff-ecard-meta svg{color:#df8d2d}
.tpff-ecard-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;border-top:1px solid #e2dcd2;padding-top:.9rem}
.tpff-ecard-foot .tpff-price{margin:0;font-size:1.1rem}
.tpff-sbtn{display:inline-flex;align-items:center;gap:.4rem;font-family:'Space Grotesk',sans-serif;font-size:.75rem;font-weight:600;padding:.5rem .9rem;border-radius:8px;border:1px solid #e2dcd2;background:#fff;color:#171310!important;text-decoration:none!important;cursor:pointer}
.tpff-sbtn-solid{background:#df8d2d;border-color:#df8d2d;color:#fff!important}.tpff-sbtn-off{background:#f1ede5;color:#9a948a!important;cursor:default}
/* film cards (home) */
.tpff-fcard{display:block;text-decoration:none!important;color:inherit}
.tpff-fcard-poster{position:relative;aspect-ratio:3/4;border-radius:14px;background:linear-gradient(160deg,#2a251f 40%,#c98a3a);background-size:cover;display:flex;align-items:flex-end;padding:1rem;overflow:hidden}
.tpff-fcard-poster strong{color:#fff;font-family:'Playfair Display',serif;font-size:.95rem;line-height:1.25}
.tpff-fcard h3{font-family:'Playfair Display',serif;font-size:.95rem;margin:.7rem 0 .1rem}
/* film list */
.tpff-flist{display:flex;flex-direction:column;gap:.7rem}
.tpff-frow{display:flex;gap:1.2rem;align-items:center;background:#faf8f3;border:1px solid #e2dcd2;border-radius:14px;padding:.9rem 1.2rem}
.tpff-frow-when{width:96px;flex:none;text-align:center;border-right:1px solid #e2dcd2;padding-right:1rem;font-family:'Space Grotesk',sans-serif}
.tpff-frow-when small{display:block;font-size:.68rem;color:#7a746b}.tpff-frow-when b{display:block;color:#df8d2d;font-size:.9rem}
.tpff-frow-main{flex:1;min-width:0}.tpff-frow-main h3{font-family:'Playfair Display',serif;font-size:1rem;margin:0}
.tpff-frow-dir{margin:.15rem 0 0;font-size:.8rem;color:#7a746b}.tpff-frow-dir.is-notable{color:#df8d2d}
.tpff-frow-desc{margin:.25rem 0 0;font-size:.8rem;color:#7a746b;line-height:1.5}
.tpff-starb{color:#df8d2d;vertical-align:middle}.tpff-starb-img{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.4);border-radius:50%;padding:5px;line-height:0}
.tpff-frow-side{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;flex:none}
.tpff-prem{font-family:'Space Grotesk',sans-serif;font-size:.65rem;font-weight:600;padding:.22rem .6rem;border-radius:6px;background:#ede9fe;color:#7e22ce;border:1px solid rgba(0,0,0,.05)}
.tpff-prem-world-premiere{background:#fdebd3;color:#c2700f}.tpff-prem-usa-premiere{background:#dbeafe;color:#2563eb}.tpff-prem-new-york-premiere{background:#dcfce7;color:#15803d}
.tpff-frow-chips{display:flex;gap:.4rem;align-items:center;font-size:.7rem;color:#7a746b}
.tpff-chip-ip{border:1px solid #e2dcd2;background:#fff;border-radius:999px;padding:.05rem .55rem;font-weight:600;color:#171310;font-family:'Space Grotesk',sans-serif}
.tpff-frow-act{font-size:.72rem;font-family:'Space Grotesk',sans-serif}.tpff-frow-act a{color:#df8d2d;text-decoration:none}.tpff-savebtn.is-on{color:#171310}
@media(max-width:700px){.tpff-frow{flex-wrap:wrap}.tpff-frow-side{align-items:flex-start;width:100%}.tpff-frow-when{width:auto;border:0;text-align:left}}
/* map */
.tpff-mapbar{display:flex;flex-wrap:wrap;gap:.6rem;padding:1rem 0}
.tpff-mapf{display:inline-flex;gap:.5rem;align-items:center;border:1px solid #e2dcd2;background:#faf8f3;border-radius:999px;padding:.4rem .9rem;font-family:'Space Grotesk',sans-serif;font-size:.8rem;cursor:pointer}
.tpff-mapf i,.tpff-mrow i{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}.tpff-mapf.is-active{background:#d4a017;border-color:#d4a017;color:#fff}
.tpff-mapwrap{display:grid;grid-template-columns:380px 1fr;height:740px;border:1px solid #e2dcd2;border-radius:14px;overflow:hidden}
.tpff-maplist{overflow:auto;padding:12px;background:#fbf9f5}.tpff-mapview{height:100%;min-height:400px}
.tpff-mrow{border:1px solid #e2dcd2;background:#faf8f3;border-radius:12px;margin-bottom:10px}
.tpff-mrow>button{display:flex;gap:.8rem;align-items:center;width:100%;text-align:left;background:none;border:0;padding:.9rem;cursor:pointer;font:inherit}
.tpff-mrow b{display:block;font-size:.85rem}.tpff-mrow b.is-primary{color:#df8d2d}.tpff-mrow small{color:#7a746b;font-size:.72rem}
.tpff-mrow-more{display:none;padding:0 .9rem .9rem;font-size:.78rem;color:#7a746b}.tpff-mrow.is-open .tpff-mrow-more{display:block}.tpff-mrow-more a{color:#df8d2d}
.tpff-legend{background:rgba(255,255,255,.92);padding:8px 12px;border-radius:8px;font-size:11px;line-height:1.7}.tpff-legend p{margin:0}.tpff-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
@media(max-width:900px){.tpff-mapwrap{grid-template-columns:1fr;height:auto}.tpff-maplist{max-height:300px}.tpff-mapview{height:420px}}
/* media */
.tpff-mfeat{display:grid;grid-template-columns:1.05fr 1fr;border:1px solid #e2dcd2;border-radius:18px;overflow:hidden;background:#faf8f3;margin-bottom:2rem}
.tpff-mfeat-img{position:relative;min-height:320px;background:center/cover}.tpff-mfeat-img .tpff-pillx{top:12px;left:12px}
.tpff-mfeat-body{padding:2.5rem;align-self:center}.tpff-mfeat-body h2{font-family:'Playfair Display',serif;font-size:1.7rem;margin:.2rem 0 .6rem}
@media(max-width:800px){.tpff-mfeat{grid-template-columns:1fr}}
.tpff-mcard{background:#faf8f3;border:1px solid #e2dcd2;border-radius:16px;overflow:hidden}.tpff-mcard-img{display:block;height:150px;background:#2a251f center/cover}
.tpff-mcard-body{padding:1.1rem 1.25rem}.tpff-mcard h3{font-family:'Playfair Display',serif;font-size:1.05rem;margin:.1rem 0 .4rem;line-height:1.3}.tpff-mcard h3 a{color:inherit;text-decoration:none}.tpff-meta-s{font-size:.72rem;color:#7a746b;margin:.4rem 0 0}
/* shop */
.tpff-shopbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1rem}
.tpff-cartbtn{background:#df8d2d;color:#fff;border:0;border-radius:8px;padding:.5rem .9rem;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.8rem;cursor:pointer}
.tpff-sort{display:flex;gap:.3rem;align-items:center;font-size:.78rem;margin-left:auto;font-family:'Space Grotesk',sans-serif}.tpff-sort button{border:0;background:transparent;padding:.35rem .7rem;border-radius:7px;cursor:pointer;color:#7a746b;font:inherit}.tpff-sort button.is-active{background:#171310;color:#fff}
.tpff-ssec{margin-bottom:2.6rem}.tpff-ssec-h{display:flex;align-items:center;gap:1rem;font-family:'Playfair Display',serif;font-size:1.5rem;margin:0 0 1.1rem}.tpff-ssec-h:after{content:"";flex:1;height:1px;background:#e2dcd2}
.tpff-sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}@media(max-width:1000px){.tpff-sgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.tpff-sgrid{grid-template-columns:1fr}}
.tpff-pcard{background:#faf8f3;border:1px solid #e2dcd2;border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.tpff-pcard-img{position:relative;height:130px;background:#2a251f center/cover}.tpff-pcard-body{padding:.9rem 1rem 1rem;display:flex;flex-direction:column;flex:1}
.tpff-pcard small{font-size:.66rem;color:#7a746b;font-family:'Space Grotesk',sans-serif}.tpff-pcard h3{font-family:'Playfair Display',serif;font-size:.92rem;margin:.15rem 0 .35rem;line-height:1.3}.tpff-pcard .tpff-muted{font-size:.74rem;margin:0 0 .7rem}
.tpff-pcard-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;gap:.4rem}.tpff-pcard-foot .tpff-price{margin:0;font-size:1.05rem}.tpff-price small{font-size:.65rem;color:#7a746b;margin-left:2px}
.tpff-pcard-btns{display:flex;gap:.3rem}
.tpff-cart[hidden]{display:none}.tpff-cart{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99999;display:flex;align-items:center;justify-content:center}
.tpff-cart-box{background:#fbf9f5;border-radius:16px;padding:1.6rem;width:min(440px,92vw)}.tpff-cart-box ul{list-style:none;margin:1rem 0;padding:0}.tpff-cart-box li{display:flex;gap:.6rem;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid #e2dcd2;font-size:.85rem}.tpff-cart-box li button{border:0;background:none;cursor:pointer;font-size:1.1rem}
.tpff-cart-total{display:flex;justify-content:space-between;font-weight:600}
/* spotlights, supporters, dashboard */
.tpff-spot{background:#faf8f3;border:1px solid #e2dcd2;border-radius:16px;padding:1.6rem;margin:0;position:relative}.tpff-spot-q{color:rgba(223,141,45,.3)}
.tpff-spot blockquote{margin:.6rem 0 1.2rem;font-family:'Playfair Display',serif;font-style:italic;font-size:.9rem;line-height:1.6;border:0;padding:0;color:#171310}
.tpff-spot figcaption{display:flex;align-items:center;gap:.7rem;border-top:1px solid #e2dcd2;padding-top:.9rem}.tpff-spot img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid #f3d5a8}
.tpff-spot b{display:block;font-size:.85rem;font-family:'Space Grotesk',sans-serif}.tpff-spot small{font-size:.72rem;color:#7a746b}
.tpff-supporters{text-align:center;margin-top:2.5rem}.tpff-supporters .tpff-eyebrow{color:#7a746b;letter-spacing:.2em}.tpff-supporters p span{display:inline-block;margin:.3rem .9rem;font-size:.78rem;color:#7a746b}
.tpff-dash{display:grid;grid-template-columns:1.6fr 1fr;gap:2.5rem}@media(max-width:900px){.tpff-dash{grid-template-columns:1fr}}
.tpff-dash-h{display:flex;justify-content:space-between;align-items:center;margin:0 0 .9rem}.tpff-dash-h h2{font-family:'Playfair Display',serif;font-size:1.3rem;margin:0}.tpff-dash-h a{font-size:.8rem;color:#df8d2d;text-decoration:none}
.tpff-dcard{background:#faf8f3;border:1px solid #e2dcd2;border-radius:14px;padding:1rem 1.2rem;margin-bottom:.8rem}.tpff-dsaved{display:flex;gap:1rem;align-items:center}.tpff-dsaved>div{flex:1}
.tpff-dic{width:42px;height:42px;border-radius:12px;background:#f9e8cf;color:#df8d2d;display:flex;align-items:center;justify-content:center}
.tpff-dnote.is-new{background:#fbeedb;border-color:#f3d5a8}.tpff-dnote p{margin:.2rem 0 0;font-size:.78rem}
.tpff-dsum{list-style:none;margin:.6rem 0 0;padding:0}.tpff-dsum li{display:flex;justify-content:space-between;font-size:.82rem;padding:.3rem 0;color:#7a746b}
/* banner logo */
.tpff-hl-inner{display:flex;align-items:center;justify-content:space-between}.tpff-hl-text{max-width:680px}
.tpff-hl-logo{width:110px;height:110px;object-fit:contain;opacity:.95;flex:none}
.tpff-hl-ic{display:inline-flex;width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,.1);align-items:center;justify-content:center}
.tpff-hl-pill{display:inline-block;font-family:'Space Grotesk',sans-serif;font-size:.7rem;font-weight:600;padding:.2rem .7rem;border-radius:6px;border:1px solid var(--acc);color:var(--acc);margin-bottom:.6rem}
.tpff-hl-meta span{display:inline-flex;gap:.4rem;align-items:center}
.tpff-hl-btn{color:#171310!important}.tpff-hl-btn-ghost{color:#fbf9f5!important}
.tpff-hl-dots button.is-active{background:var(--acc,#10b981)}
@media(max-width:700px){.tpff-hl-logo{display:none}}
/* page title bars from Avada & legacy */
.tpff-notice h3{margin-top:0}

/* ===== v1.3: home banner — exact Base44 slide layout ===== */
.tpff-hl{position:relative;background:#0e0c0a;color:#fbf9f5;overflow:hidden;--acc:#d4a017}
.tpff-hl-track{position:relative}
.tpff-hl-slide{position:absolute;inset:0;display:flex;align-items:center;opacity:0;visibility:hidden;transition:opacity .7s ease;background:#0e0c0a center/cover no-repeat;padding:80px 0}
.tpff-hl-slide.is-active{position:relative;opacity:1;visibility:visible}
.tpff-hl-slide:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,12,10,.94) 0%,rgba(14,12,10,.78) 55%,rgba(14,12,10,.5) 100%)}
.tpff-hl-slide.is-baked:before{display:none}
.tpff-hl-inner{position:relative;width:100%;max-width:1240px;margin:0 auto;padding:0 12px;display:flex;align-items:center;justify-content:space-between}
.tpff-hl-text{max-width:640px}
.tpff-hl-tag{display:flex;align-items:center;gap:.55rem;font-family:'Space Grotesk',sans-serif!important;font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);margin:0 0 .7rem}
.tpff-hl-ic{display:inline-flex;width:28px;height:28px;border-radius:8px;background:color-mix(in srgb,var(--acc) 22%,transparent);align-items:center;justify-content:center;color:var(--acc)}
.tpff-hl-pill{display:inline-block;font-family:'Space Grotesk',sans-serif!important;font-size:.74rem;font-weight:600;padding:.22rem .65rem;border-radius:6px;border:1px solid color-mix(in srgb,var(--acc) 55%,transparent);background:color-mix(in srgb,var(--acc) 18%,transparent);color:color-mix(in srgb,var(--acc) 85%,#fff);margin-bottom:.75rem}
.tpff-hl h2{font-family:'Playfair Display',serif!important;font-size:clamp(2.1rem,3.6vw,3.05rem)!important;line-height:1.1!important;color:#fbf9f5!important;margin:0!important;font-weight:700}
.tpff-hl-sub{font-family:'Space Grotesk',sans-serif!important;font-size:1.2rem;color:var(--acc);margin:.45rem 0 1.2rem}
.tpff-hl-desc{max-width:520px;font-size:.95rem;line-height:1.55;color:rgba(251,249,245,.72);margin:0 0 1rem}
.tpff-hl-meta{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;font-family:'Space Grotesk',sans-serif!important;font-size:.76rem;color:rgba(251,249,245,.52);margin:0 0 1.4rem}
.tpff-hl-meta span{display:inline-flex;align-items:center;gap:.45rem}.tpff-hl-meta svg{color:var(--acc)}
.tpff-hl-btns{display:flex;gap:.7rem;margin:0}
.tpff-hl-btn{display:inline-block;font-family:'Space Grotesk',sans-serif!important;font-size:.8rem;font-weight:600;padding:.68rem 1.2rem;border-radius:8px;background:var(--acc);border:1px solid var(--acc);color:#fff!important;text-decoration:none!important;margin:0}
.tpff-hl-btn-ghost{background:rgba(14,12,10,.45);border-color:rgba(251,249,245,.28);color:#fbf9f5!important}
.tpff-hl-right{flex:none;width:110px;margin-right:30px;display:flex;flex-direction:column;align-items:center}
.tpff-hl-logo{width:108px;height:auto;max-height:140px;object-fit:contain}
.tpff-hl-nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:1px solid rgba(251,249,245,.28);background:rgba(14,12,10,.55);color:#fff;font-size:20px;line-height:1;cursor:pointer;z-index:4;padding:0}
.tpff-hl-prev{left:12px}.tpff-hl-next{right:12px}
/* dots sit under the logo */
.tpff-hl-dots{position:absolute;z-index:4;display:flex;gap:.45rem;right:max(30px,calc((100% - 1240px)/2 + 30px));bottom:auto;top:calc(50% + 78px);width:110px;justify-content:center}
.tpff-hl-dots button{width:7px;height:7px;border-radius:50%;border:0;padding:0;background:rgba(251,249,245,.35);cursor:pointer}
.tpff-hl-dots button.is-active{width:24px;border-radius:6px;background:var(--acc)}
.tpff-hl-prog{position:absolute;left:0;bottom:0;height:3px;background:var(--acc);width:0;z-index:4}
@keyframes tpffprog{from{width:0}to{width:100%}}
@media(max-width:900px){.tpff-hl-right,.tpff-hl-dots{display:none}.tpff-hl-text{padding:0 40px}.tpff-hl-slide{padding:60px 0}}
