/* Townline Fresh — light, floral, photo-led theme layer (2026-10-05).
   Loaded last on every /townline/ page by scripts/inject-townline-fresh.mjs.
   Base: lake / cedar / sand. Accents: blossom, coral, lavender, sunflower, leaf, lake turquoise.
   Text rule (WCAG AA): cedar ink on light surfaces; white only over dark photo scrims. */
@font-face{font-family:"TL Playfair";font-style:normal;font-weight:600 700;font-display:swap;src:url(/assets/fonts/playfair-display-latin.woff2) format("woff2")}
@font-face{font-family:"TL Playfair";font-style:italic;font-weight:500 600;font-display:swap;src:url(/assets/fonts/playfair-display-italic-latin.woff2) format("woff2")}
:root,html[data-tl-city],html[data-theme]{
  --tlf-ink:#1f2a24;--tlf-ink-2:#3a4841;--tlf-cream:#fffaf1;--tlf-sand:#f6ecdc;--tlf-white:#ffffff;
  --tlf-blossom:#f9c8db;--tlf-coral:#ffb199;--tlf-lavender:#d9cdf5;--tlf-sun:#ffe08a;--tlf-leaf:#bfe8c2;--tlf-lake:#b4e7e6;
  --tlf-blossom-deep:#a8235a;--tlf-lake-deep:#0a6670;--tlf-leaf-deep:#2c6634;--tlf-lav-deep:#6440b0;--tlf-coral-deep:#a63e22;
  --tlf-btn:linear-gradient(135deg,#f9a8c9 0%,#ffbf9e 50%,#c7b5f6 100%);
  --tlf-btn-soft:linear-gradient(135deg,#ffe3ee 0%,#fff1c9 52%,#dff5ee 100%);
  --tlf-pill:linear-gradient(120deg,#ffe0ec 0%,#fff0c4 50%,#e2f6ef 100%);
  --tlf-wash:linear-gradient(180deg,rgba(255,250,241,.92) 0%,rgba(255,250,241,.80) 50%,rgba(255,247,238,.90) 100%);
  --tlf-frost:rgba(255,255,255,.88);--tlf-line:rgba(168,35,90,.16);
  --tlf-shadow:0 14px 40px rgba(120,70,60,.12);
  /* re-point legacy Townline tokens at the light palette */
  --accent:#a8235a!important;--accent-2:#0a6670!important;--on-accent:#fff!important;
  --ink:#1f2a24!important;--muted:#3a4841!important;--bg:#fffaf1!important;--bg-2:#fff6ea!important;--bg-3:#f6ecdc!important;
  --panel:rgba(255,255,255,.88)!important;--line:rgba(168,35,90,.16)!important;--paper:#fffaf1!important;--navy:#fffaf1!important;
  --display:"TL Playfair","Playfair Display",Georgia,serif;
}
html body.tlf{background:var(--tlf-cream)!important;color:var(--tlf-ink)!important}
/* photo backdrop under the whole page so nothing is ever flat */
html body.tlf::before{content:"";position:fixed;inset:0;z-index:-5;pointer-events:none;background:var(--tlf-wash),var(--tlf-page-img,url(/townline/art/lake.jpg)) center/cover no-repeat}
html body.tlf :is(h1,h2,h3,h4){color:var(--tlf-ink)}
html body.tlf :is(h2,.head h2,section h2){font-family:var(--display)!important;letter-spacing:-.01em!important;color:var(--tlf-ink)!important}
html body.tlf :is(.kicker,.ey,.eyebrow,.tagline):not(.tlf-photohero *){font-family:var(--display)!important;font-style:italic!important;text-transform:none!important;letter-spacing:.01em!important;font-size:15px!important;font-weight:600!important;color:var(--tlf-blossom-deep)!important;opacity:1!important}
html body.tlf :is(p,li,small,.lead,.muted,.fine,.head p):not(.tlf-photohero *):not(.tlf-dark *){color:var(--tlf-ink-2)!important}
html body.tlf a.more,html body.tlf .go{color:var(--tlf-blossom-deep)!important;font-weight:700!important}
html body.tlf ::placeholder{color:#5b6a62!important;opacity:1}
/* pills / eyebrows: watercolor */
html body.tlf :is(.ey,.chip,.pill,.badge):not(.tlf-photohero *){background:var(--tlf-pill)!important;border:1px solid rgba(168,35,90,.22)!important;color:var(--tlf-blossom-deep)!important}
/* buttons: floral gradient with white text, soft variants with ink */
html body.tlf :is(.btn,button.btn,a.btn,.button,.cta a,.join,.links .join):not(.ghost):not(.line):not(.iconbtn){background:var(--tlf-btn)!important;color:var(--tlf-ink)!important;border:1px solid rgba(168,35,90,.28)!important;text-shadow:none!important;font-weight:800!important;box-shadow:0 8px 22px rgba(214,90,140,.22)!important}
html body.tlf :is(.btn.ghost,.btn.line,.btn.soft,.btn:not(.primary):not(.orange):not(.green)):not(.iconbtn){background:var(--tlf-btn-soft)!important;color:var(--tlf-ink)!important;border:1px solid rgba(168,35,90,.25)!important}
html body.tlf .tlf-photohero .btn.ghost{background:rgba(255,255,255,.9)!important;color:var(--tlf-ink)!important}
html body.tlf :is(.btn,.button,.join) *{color:inherit!important}
/* frosted light cards */
html body.tlf :is(.card,.panel,.place,.reason,.tile,.house>*,.member,.cal,.agenda,.status,.wx,.notice,.score,.alert,.stat,.mo,.calgrid){background:var(--tlf-frost)!important;color:var(--tlf-ink)!important;border:1px solid var(--tlf-line)!important;box-shadow:var(--tlf-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
html body.tlf :is(.card,.panel,.place,.reason,.tile,.house>*,.member,.wx,.notice,.score,.alert) :is(h2,h3,h4,b,strong){color:var(--tlf-ink)!important}
html body.tlf .notice{background:linear-gradient(135deg,#fff0f5,#fff7df)!important}
html body.tlf .score{background:rgba(255,255,255,.95)!important;color:var(--tlf-ink)!important}
html body.tlf .score *{color:var(--tlf-ink)!important}
html body.tlf select,html body.tlf input,html body.tlf textarea{background:#fff!important;color:var(--tlf-ink)!important;border:1px solid rgba(58,72,65,.35)!important}
/* sections: full-bleed town photo under a soft light wash */
html body.tlf .tlf-sec{background:var(--tlf-wash),var(--tlf-sec-img) center/cover no-repeat!important;position:relative}
html body.tlf .tlf-sec.tlf-alt{background:linear-gradient(180deg,rgba(255,244,248,.92),rgba(255,250,236,.80) 50%,rgba(240,250,246,.90)),var(--tlf-sec-img) center/cover no-repeat!important}
html body.tlf .section.tlf-sec{padding-bottom:clamp(36px,6vw,72px)!important}
/* card photo headers added by townline-fresh.js */
html body.tlf .tlf-ph{display:block;flex:0 0 auto;width:100%;height:132px;border-radius:14px;margin:0 0 12px;background:#f6ecdc center/cover no-repeat;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
html body.tlf .tlf-wrapflex{flex-wrap:wrap!important}
html body.tlf .tlf-wrapflex>.tlf-ph{flex:0 0 100%}
html body.tlf .tile.tlf-tilephoto{background:linear-gradient(rgba(255,255,255,.80),rgba(255,255,255,.86)),var(--tlf-tile-img) center/cover no-repeat!important}
/* lightened blocks (formerly dark) */
html body.tlf .tlf-lit{background:linear-gradient(135deg,rgba(255,245,249,.94),rgba(255,251,238,.92) 55%,rgba(238,250,246,.94))!important;color:var(--tlf-ink)!important;border-color:var(--tlf-line)!important}
/* signature spots rail */
html body.tlf .place.spot{width:min(250px,72vw)!important;padding:0 0 14px!important;overflow:hidden;gap:6px!important}
html body.tlf .place.spot .spotimg{display:block;width:100%;height:170px;object-fit:cover;border-radius:16px 16px 0 0;margin:0 0 6px}
html body.tlf .place.spot>:not(img){margin-left:14px!important;margin-right:14px!important}
html body.tlf .place.spot .ico{display:none}
html body.tlf .signature .rail{padding-bottom:18px}
/* postcard hero (town pages) */
html body.tlf[data-tlf-town] .tlf-photohero{min-height:100svh!important;color:#fff!important}
html body.tlf[data-tlf-town] .tlf-photohero .wrap>div:first-child{min-height:calc(100svh - 190px);display:flex;flex-direction:column;justify-content:flex-end}
html body.tlf .tlf-photohero .bg{animation:tlfZoom 30s ease-in-out infinite alternate;transform-origin:50% 60%}
@keyframes tlfZoom{from{scale:1}to{scale:1.09}}
@media (prefers-reduced-motion:reduce){html body.tlf .tlf-photohero .bg{animation:none!important}}
html body.tlf .tlf-photohero .bg:before{background:linear-gradient(90deg,rgba(14,30,38,.30),rgba(14,30,38,0) 70%)!important}
html body.tlf .tlf-photohero:after{background:linear-gradient(180deg,rgba(14,30,38,.18) 0%,rgba(14,30,38,0) 26%,rgba(14,30,38,.10) 50%,rgba(14,30,38,.66) 82%,rgba(14,30,38,.74) 100%)!important}
html body.tlf .tlf-photohero :is(h1,.greet,.tagline,p){color:#fff!important;text-shadow:0 2px 18px rgba(0,0,0,.45)!important;opacity:1!important}
html body.tlf .tlf-photohero h1{font-family:var(--display)!important;font-weight:700!important;letter-spacing:-.01em}
html body.tlf .tlf-photohero .greet:before{background:#ffd1e1!important}
html body.tlf .tlf-photohero .tagline{font-family:inherit!important;font-style:normal!important;font-size:12px!important;letter-spacing:.18em!important;text-transform:uppercase!important}
html body.tlf .tlf-photohero .wx{background:rgba(255,252,246,.94)!important;color:var(--tlf-ink)!important}
html body.tlf .tlf-photohero .wx :is(.lbl,small,.cond,b,.temp){color:var(--tlf-ink)!important;opacity:1!important;text-shadow:none!important}
html body.tlf .tlf-photohero .wx .lbl{color:var(--tlf-blossom-deep)!important}
html body.tlf .tlf-photohero .wx .chip,html body.tlf #aqi{background:var(--tlf-pill)!important;color:var(--tlf-lake-deep)!important;border:1px solid rgba(10,102,112,.3)!important;opacity:1!important}
html body.tlf .tlf-photohero .credit,html body.tlf .tlf-photohero .credit a{color:#fff!important}
/* chrome: nav, ticker, app bar, footer */
html body.tlf :is(header.top,.top,.ticker){background:rgba(255,250,241,.94)!important;color:var(--tlf-ink)!important;border-color:var(--tlf-line)!important}
html body.tlf :is(header.top,.top) :is(a,b,span,label,select){color:var(--tlf-ink)!important}
html body.tlf .ticker .live{color:var(--tlf-blossom-deep)!important}
html body.tlf .ticker :is(li,b,span){color:var(--tlf-ink)!important}
html body.tlf .appbar{background:rgba(255,250,241,.96)!important}
html body.tlf .appbar a{color:var(--tlf-ink)!important}
html body.tlf .appbar a.post{background:var(--tlf-btn)!important;color:var(--tlf-ink)!important}html body.tlf .appbar a.post svg{stroke:var(--tlf-ink)!important}
html body.tlf .appbar a.on{color:var(--tlf-blossom-deep)!important}
html body.tlf footer,html body.tlf .footer,html body.tlf .tl-master-footer{background:linear-gradient(160deg,#fff0f5 0%,#fff6dc 45%,#e3f6f1 100%)!important;color:var(--tlf-ink)!important}
html body.tlf :is(footer,.footer,.tl-master-footer) :is(a,p,h4,b,span,small,strong){color:var(--tlf-ink)!important}
html body.tlf .mark{background:linear-gradient(135deg,#f9c8db,#b4e7e6)!important;color:var(--tlf-ink)!important;box-shadow:none!important}
/* injected Townline modules that shipped dark */
html body.tlf :is(.townline-shady-radar-city,.townline-intelligence-brand,.tl-live-four,.townline-breaking-news,.townline-ticket-hub-city,#west-coast-news .card){background:linear-gradient(135deg,rgba(255,245,249,.95),rgba(255,251,238,.93) 55%,rgba(238,250,246,.95))!important;color:var(--tlf-ink)!important;border:1px solid var(--tlf-line)!important}
html body.tlf :is(.townline-shady-radar-city,.townline-intelligence-brand,.tl-live-four,.townline-breaking-news,.townline-ticket-hub-city) :is(h2,h3,h4,p,a,span,b,strong,small,li,div){color:var(--tlf-ink)!important}
html body.tlf :is(.townline-shady-radar-city,.townline-intelligence-brand,.tl-live-four,.townline-breaking-news,.townline-ticket-hub-city) :is(a.btn,.btn,[class*=__a],a[class*=button]){background:var(--tlf-btn)!important;color:var(--tlf-ink)!important}
html body.tlf .townline-breaking-news__flag{background:var(--tlf-btn)!important;color:var(--tlf-ink)!important}
html body.tlf .place .portfolio-logo-fallback,html body.tlf .tlf-sec .portfolio-logo-fallback:not(.brand *){display:none!important}
html body.tlf .hero:not(.tlf-photohero){background:linear-gradient(160deg,#fff0f5 0%,#fff7df 45%,#e3f6f1 100%)!important;color:var(--tlf-ink)!important}
html body.tlf .hero:not(.tlf-photohero) :is(h1,h2,p,.lead){color:var(--tlf-ink)!important}
html body.tlf .hero:not(.tlf-photohero) h1 span{color:var(--tlf-blossom-deep)!important}
/* photo cards: town rail + quick tiles — light caption plates instead of dark scrims */
html body.tlf .tile::before,html body.tlf .tile::after{display:none!important}
html body.tlf .tile,html body.tlf .tile :is(span,small,b){color:var(--tlf-ink)!important;opacity:1!important;text-shadow:none!important}
html body.tlf .tile svg{stroke:var(--tlf-lake-deep)!important;fill:none}
html body.tlf .town::after,html body.tlf .town::before{background:linear-gradient(180deg,rgba(255,250,241,0) 55%,rgba(255,250,241,.25))!important}
html body.tlf .town>div:not(.img){position:relative;z-index:2;background:rgba(255,255,255,.92)!important;border-radius:12px;padding:10px 12px!important;margin:8px!important;box-shadow:0 6px 18px rgba(80,50,40,.14)}
html body.tlf .town>div:not(.img) :is(b,strong,span){color:var(--tlf-ink)!important;text-shadow:none!important}
html body.tlf .town>div:not(.img) small{color:var(--tlf-blossom-deep)!important;text-shadow:none!important}
/* arrival film overlay (assets/site-arrival.js): light floral letterbox, frosted plate, floral buttons — logic untouched */
html body.tlf #arqs-site-arrival{background:linear-gradient(160deg,#fff0f5 0%,#fff7df 45%,#e3f6f1 100%)!important}
html body.tlf #arqs-site-arrival .arrival-brand{background:rgba(255,255,255,.92)!important;color:var(--tlf-ink)!important;box-shadow:0 8px 24px rgba(120,70,60,.16)}
html body.tlf #arqs-site-arrival .arrival-brand :is(strong,span){color:var(--tlf-ink)!important}
html body.tlf #arqs-site-arrival button{background:var(--tlf-btn)!important;color:var(--tlf-ink)!important;border:1px solid rgba(168,35,90,.3)!important}
/* postcard hero on phones: headline + lead sit above the fixed app bar, bigger serif town name */
@media (max-width:760px){
  html body.tlf[data-tlf-town] .tlf-photohero .wrap>div:first-child{min-height:calc(100svh - 300px)!important;padding-bottom:8px}
  html body.tlf .tlf-photohero h1{font-size:clamp(58px,17vw,96px)!important;line-height:.95!important;margin:10px 0 12px!important}
  html body.tlf .tlf-photohero .wrap{padding-bottom:96px!important}
}

/* ---------- 2026-10-06 founder fixes: full-strength photos, frosted copy panels, crisp pills, readable footnotes ---------- */
html body.tlf .tlf-sec,html body.tlf .tlf-sec.tlf-alt{background:linear-gradient(180deg,rgba(255,250,241,.30),rgba(255,250,241,.12) 50%,rgba(255,247,238,.30)),var(--tlf-sec-img) center/cover no-repeat!important}
/* copy that sits straight on a section photo gets a frosted panel (AA ink on ~#fbf6ef) */
html body.tlf .tlf-glass{background:rgba(255,252,247,.94)!important;border-radius:16px!important;padding:12px 16px!important;box-shadow:0 8px 26px rgba(90,50,40,.12)!important;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--tlf-ink)!important;box-sizing:border-box}
html body.tlf .tlf-glass :is(p,li,small,span,div,.fine,.note,.muted,.lead){color:var(--tlf-ink-2)!important;opacity:1!important}
html body.tlf .tlf-glass :is(h1,h2,h3,h4,strong,b){color:var(--tlf-ink)!important}
html body.tlf .tlf-notice{min-height:200px;display:flex!important;align-items:center;padding-top:28px!important;padding-bottom:28px!important}
html body.tlf .tlf-glass-wrap{max-width:760px;margin:0 auto}
/* footnotes (e.g. "Secure checkout powered by Stripe…") — wording untouched, AA ink */
html body.tlf :is(.fine,.note,.disclaimer,.footnote,.legal,.small-print,p[style*="#91a7b7"],p[style*="color:#9"],p[style*="color: #9"],small):not(.tlf-photohero *):not(.tlf-herofill *){color:#3a4841!important;opacity:1!important}
html body.tlf .tlf-sec > .wrap > p[style*="#91a7b7"],html body.tlf .tlf-sec p[style*="#91a7b7"]{background:rgba(255,252,247,.94)!important;border-radius:12px;padding:10px 14px!important;display:inline-block}
/* hero: a real photo at full strength under a proper scrim, white type */
html body.tlf .tlf-herofill{position:relative;color:#fff!important;border-bottom:0!important}
html body.tlf .tlf-herofill :is(h1,h2,h3,.lead,p,.sub,.intro,.dek,.tagline):not(.tlf-glass *):not(.tlf-inlight *):not(.tlf-inlight){color:#fff!important;text-shadow:0 2px 14px rgba(0,0,0,.55)!important;opacity:1!important}
html body.tlf .tlf-photohero :is(.card,.panel,article,details,[class*=card],.tlf-glass) :is(h1,h2,h3,h4,p,li,span,small,strong,b){color:var(--tlf-ink)!important;text-shadow:none!important}
html body.tlf .tlf-herofill .hero-credit{color:#fff!important;background:rgba(12,26,34,.6)!important}
/* eyebrow pills: crisp white pill, deep-blossom border and text (AA ~8:1), upright */
html body.tlf :is(.kicker,.ey,.eyebrow,.tag,.sumtag,.pill,.badge):not(.wx *):not(#aqi){display:inline-block!important;width:fit-content!important;max-width:100%;background:#fff!important;border:1.5px solid #c84c80!important;color:#8c1d4d!important;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif!important;font-style:normal!important;font-weight:800!important;font-size:11.5px!important;line-height:1.3!important;letter-spacing:.11em!important;text-transform:uppercase!important;padding:5px 12px!important;border-radius:999px!important;box-shadow:0 2px 8px rgba(140,29,77,.14)!important;opacity:1!important;text-shadow:none!important}
html body.tlf .chip:not(.wx *):not(#aqi){background:#fff!important;border:1.5px solid #c84c80!important;color:#8c1d4d!important;opacity:1!important}
/* plan rows and Stripe tiles: photo header */
html body.tlf .tlf-ph-sum{flex:0 0 100%!important;width:100%;height:96px;margin:0 0 10px!important;border-radius:12px}
html body.tlf a[href*="buy.stripe.com"]>.tlf-ph{height:110px;margin:-6px 0 12px}
/* placeholder frame when a photo is missing: soft floral gradient, picture icon, label */
html body.tlf .tlf-ph.tlf-ph-empty{position:relative;background:linear-gradient(135deg,#ffe3ee 0%,#fff1c9 52%,#dff5ee 100%)!important;border:1.5px dashed rgba(168,35,90,.35);display:flex!important;align-items:center;justify-content:center;flex-direction:column;gap:6px}
html body.tlf .tlf-ph.tlf-ph-empty:before{content:"";width:34px;height:34px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238c1d4d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='9' cy='10' r='2'/%3E%3Cpath d='M21 16l-5-5-8 8'/%3E%3C/svg%3E") center/contain no-repeat}
html body.tlf .tlf-ph.tlf-ph-empty:after{content:"Photo coming soon";font:700 12px/1.2 Inter,system-ui,sans-serif;color:#8c1d4d;letter-spacing:.04em}
html body.tlf .tlf-sec.tlf-panel,html body.tlf .tlf-sec.tlf-panel.tlf-alt{background:linear-gradient(180deg,rgba(255,250,241,.90),rgba(255,250,241,.80) 50%,rgba(255,247,238,.90)),var(--tlf-sec-img) center/cover no-repeat!important}
html body.tlf .tlf-herofill .tlf-inlight,html body.tlf .tlf-herofill .tlf-inlight :is(h1,h2,h3,h4,p,li,span,small,strong,b,a,div,em,label){color:#1f2a24!important;text-shadow:none!important}
html body.tlf .tlf-herofill .tlf-inlight :is(.kicker,.ey,.eyebrow,.tag,.pill,.badge){color:#8c1d4d!important}
/* photo heroes that hold an image + copy side by side stack on narrow screens; long headline words never clip */
html body.tlf .tlf-herofill{flex-wrap:wrap!important}
html body.tlf .tlf-herofill>:is(.wrap,img,figure,picture){min-width:0;max-width:100%}
html body.tlf .tlf-herofill h1{overflow-wrap:break-word}
@media (max-width:600px){html body.tlf .tlf-herofill{grid-template-columns:1fr!important}html body.tlf .tlf-herofill>:is(.wrap,img,figure,picture){flex:1 1 100%!important}html body.tlf .tlf-herofill h1{font-size:clamp(34px,11vw,54px)!important;line-height:1.02!important}}
html body.tlf .tlf-herofill .tlf-lit,html body.tlf .tlf-herofill .tlf-lit :is(h1,h2,h3,h4,p,li,span,small,strong,b,div,em,label){color:#1f2a24!important;text-shadow:none!important}
