/* city.css: the directory's stylesheet. Tokens, faces and the header live in critical.css.
   Every repeating component defines its rows once (icon row, title row, body), so
   siblings line up whatever their content; nothing is positioned by what its
   neighbour happens to hold. */

@font-face{font-family:'Fraunces';font-style:normal;font-weight:900;font-display:swap;src:url(/dist/fonts/fraunces-900-latin.woff2) format('woff2')}

/* ---------- primitives ---------- */
.muted{color:var(--ink-3)}
.wrap{max-width:74rem}
.city-page-title{font-family:var(--font-heading);font-weight:700;line-height:1.02;letter-spacing:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:3rem;padding:0 var(--s-5);border:2px solid var(--ink);border-radius:6px;background:var(--ink);color:#fff;font-weight:700;text-decoration:none;cursor:pointer;font:700 var(--step-0)/1 var(--font-text);transition:transform var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.btn:hover{background:var(--brand);border-color:var(--brand);color:#fff;transform:translateY(-2px);box-shadow:0 8px 18px -10px rgba(0,0,0,.4)}
.btn:active{transform:translateY(0);box-shadow:none}
.city-btn{border-radius:6px;letter-spacing:0}
.city-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
.city-btn--primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}
.city-btn--secondary{background:#fff;border-color:var(--line);color:var(--ink)}
.city-btn--secondary:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}
.city-btn--contrast{background:#fff;border-color:#fff;color:var(--ink)}
.city-btn--contrast:hover{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-deep)}
.btn-2{background:transparent;border-color:var(--brand);color:var(--brand)}
.btn-2:hover{background:var(--brand);color:#fff}
.btn-paper{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.btn-paper:hover{background:var(--ink);border-color:var(--ink);color:var(--sun)}
.btn-line{background:transparent;border-color:currentColor;color:inherit}
.btn-line:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}
[id]{scroll-margin-top:calc(var(--stuck) + var(--s-3))}
.hd [id]{scroll-margin-top:0}
.fam-1{--fam:var(--f1);--fam-vivid:var(--f1-vivid);--fam-soft:var(--f1-soft);--fam-on:var(--f1-on)}
.fam-2{--fam:var(--f2);--fam-vivid:var(--f2-vivid);--fam-soft:var(--f2-soft);--fam-on:var(--f2-on)}
.fam-3{--fam:var(--f3);--fam-vivid:var(--f3-vivid);--fam-soft:var(--f3-soft);--fam-on:var(--f3-on)}
.fam-4{--fam:var(--f4);--fam-vivid:var(--f4-vivid);--fam-soft:var(--f4-soft);--fam-on:var(--f4-on)}
.fam-5{--fam:var(--f5);--fam-vivid:var(--f5-vivid);--fam-soft:var(--f5-soft);--fam-on:var(--f5-on)}
.fam-6{--fam:var(--f6);--fam-vivid:var(--f6-vivid);--fam-soft:var(--f6-soft);--fam-on:var(--f6-on)}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes glow{to{fill-opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes sunrise{from{transform:translateY(38px)}to{transform:none}}
@keyframes drift{from{transform:translateY(0)}to{transform:translateY(-6px)}}
@keyframes settle{from{transform:translateY(24px)}to{transform:none}}
@keyframes nudge{0%{transform:none}35%{transform:rotate(-8deg) scale(1.08)}70%{transform:rotate(5deg) scale(1.04)}100%{transform:none}}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.6);opacity:.55}}
.js [data-reveal].is-armed{opacity:0;transform:translateY(16px)}
.js [data-reveal].is-in{opacity:1;transform:none;transition:opacity .55s var(--ease),transform .55s var(--ease);transition-delay:calc(var(--i,0) * 55ms)}
.kicker{display:inline-flex;align-items:center;gap:var(--s-2);margin:0 0 var(--s-2);font:700 var(--step--1)/1.2 var(--font-text);letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.kicker::before{content:"";width:.6em;height:.6em;border-radius:50%;background:var(--sun);box-shadow:0 0 0 2px var(--brand)}
.sec-title{font-size:var(--step-3);letter-spacing:-.03em;margin:0;text-wrap:balance}
.sec-lead{margin:var(--s-3) 0 0;color:var(--ink-2);max-width:56ch;font-size:var(--step-1)}
.sec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s-3) var(--s-5);margin-bottom:var(--s-5)}
.sec-head .btn{flex:0 0 auto}

/* ---------- bands: the rhythm down the page ---------- */
.band{padding-block:var(--s-7)}
.band-paper2{background:var(--paper-2)}
.band-sun{background:var(--sun);color:var(--ink)}
.band-sun .kicker{color:var(--ink)}.band-sun .kicker::before{background:var(--ink);box-shadow:none}
.band-sun .sec-lead{color:var(--ink)}
.band-coral{background:var(--coral);color:var(--ink)}
.band-coral .kicker{color:var(--ink)}.band-coral .kicker::before{background:var(--paper);box-shadow:0 0 0 2px var(--ink)}
.band-coral .sec-lead{color:var(--ink)}
.band-soft{background:var(--brand-soft)}
.band-round{border-radius:var(--r-4)}
.band-in{margin-inline:var(--s-2)}

/* ---------- chips ---------- */
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}
.chip{display:inline-flex;align-items:center;gap:var(--s-2);min-height:var(--tap);padding:0 var(--s-4);border:2px solid var(--ink);border-radius:var(--r-pill);background:var(--card);color:var(--ink);font-weight:700;font-size:var(--step--1);text-decoration:none;line-height:1.2;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
a.chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep);transform:none}
.chip.is-current{background:var(--brand);border-color:var(--brand);color:#fff}
.chip-n{font-size:.85em;padding:.1em .5em;border-radius:var(--r-pill);background:var(--paper-2);color:var(--ink-2)}
.chip.is-current .chip-n{background:rgba(255,255,255,.18);color:inherit}
a.chip:hover .chip-n{background:rgba(20,107,74,.1);color:var(--accent-deep)}
.chip-flat{border-style:dashed;border-color:var(--line);color:var(--ink-2);background:transparent}
.chip-fam{border-color:var(--fam-on);background:var(--fam-on);color:var(--fam)}
.chip-fam .chip-n{background:var(--fam-soft);color:var(--fam)}
a.chip-fam:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}
.chip-cat{min-height:2rem;padding:0 var(--s-3);border:0;border-radius:6px;background:var(--accent-soft);color:var(--accent-deep);font-size:.8rem}
.chip-cat::before{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--accent)}
a.chip-cat:hover{background:var(--accent-soft);color:var(--accent-deep)}
a.chip-cat:hover::before{background:var(--accent)}

/* ---------- breadcrumb: one line box, everything on it ---------- */
.crumbs{padding-top:var(--s-3);font-size:var(--step--1);color:var(--ink-2);overflow-x:auto;scrollbar-width:none}
.crumbs::-webkit-scrollbar{display:none}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:nowrap;align-items:center;width:max-content;min-width:100%}
.crumbs li{display:inline-flex;align-items:center;flex:0 0 auto;max-width:18rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:var(--tap)}
.crumbs li:last-child{max-width:min(24rem,55vw)}
.crumbs a,.crumbs [aria-current]{display:inline;font-size:inherit;font-weight:600;color:var(--ink-2);text-decoration:none;line-height:inherit}
.crumbs a{padding-block:var(--s-2)}
.crumbs a:hover{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--sun)}
.crumbs [aria-current]{color:var(--ink);font-weight:700}
.crumb-sep{display:inline-block;width:1em;height:1em;margin-inline:var(--s-1);vertical-align:-.16em;color:var(--ink-3);stroke-width:2.2}
.on-vivid .crumbs,.on-vivid .crumbs a,.on-vivid .crumbs [aria-current],.on-vivid .crumb-sep{color:inherit}

/* ---------- home hero ---------- */
.hero{background:var(--brand);color:var(--brand-on);border-radius:0 0 var(--r-4) var(--r-4);overflow:hidden;position:relative}
.hero-in{display:grid;gap:var(--s-5);padding-top:var(--s-7)}
.hero-title{font-size:var(--step-5);line-height:.9;letter-spacing:-.04em;color:#fff;margin:0;text-wrap:balance;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:anywhere}
.hero-pre{display:block;font-size:max(1.3rem,.3em);line-height:1.1;letter-spacing:-.01em;color:var(--sun);margin-bottom:.35em;hyphens:manual}
.hero-lead{margin:var(--s-4) 0 0;font-size:var(--step-0);max-width:34ch;color:var(--brand-on);opacity:.94;text-wrap:pretty}
.hero-stats{list-style:none;margin:var(--s-5) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-6)}
.hero-stat{display:grid;gap:.1em}
.hero-stat .num{font-size:clamp(2.4rem,7vw,3.4rem);line-height:1;color:var(--sun);display:inline-block;min-width:var(--w,2ch);text-align:left}
.hero-stat span{font-size:var(--step--1);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.hero-scene{display:block;width:100%;height:auto;margin-top:var(--s-2);overflow:visible}
.scene-sun{fill:var(--sun)}
.scene-hill-1{fill:var(--brand-deep)}
.scene-hill-2{fill:var(--brand-night)}
.scene-motif{stroke:var(--paper);stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.scene-motif .m-sun{display:none}
.scene-motif .m-win{fill:var(--sun);fill-opacity:0;stroke:var(--sun)}
.scene-motif .m-roof{stroke:var(--sun)}
.js .scene-sun{animation:sunrise 1.6s var(--ease) both,drift 5s ease-in-out 1.6s infinite alternate}
.js .scene-hill-1{animation:settle 1.1s var(--ease) both}
.js .scene-hill-2{animation:settle 1.1s var(--ease) .12s both}
.js .scene-motif path,.js .scene-motif circle{stroke-dasharray:1;stroke-dashoffset:1;animation:draw .9s var(--ease) forwards;animation-delay:calc(.1s + var(--i,0) * 32ms)}
.js .scene-motif .m-win{animation:draw .8s var(--ease) forwards,glow .7s ease forwards;animation-delay:calc(.1s + var(--i,0) * 32ms),calc(.9s + var(--i,0) * 32ms)}

/* ---------- category tiles: a bento with one internal grid for every tile ---------- */
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(10.5rem,auto);gap:var(--s-3);grid-auto-flow:dense}
.tile{position:relative;display:grid;grid-template-rows:3rem minmax(2.4em,auto) 1fr;align-content:start;gap:var(--s-2);padding:var(--s-4);border-radius:var(--r-3);background:var(--fam-vivid);color:var(--fam-on);overflow:hidden;transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease)}
.tile:hover,.tile:focus-within{transform:translateY(-3px);box-shadow:0 18px 30px -20px rgba(16,33,26,.55)}
.tile-xl{grid-column:span 2}
.tile-link{text-decoration:none;color:inherit}
.tile-link::after{content:"";position:absolute;inset:0;border-radius:inherit}
.tile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2);height:3rem}
.cat-ico{width:3rem;height:3rem;color:var(--fam-on);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;transform-origin:50% 60%}
.cat-ico .ico-acc{fill:currentColor;stroke:none;opacity:.3}
.tile:hover .cat-ico,.tile:focus-within .cat-ico{animation:nudge .7s var(--ease)}
.tile:hover .cat-ico *,.tile:focus-within .cat-ico *,.tile:active .cat-ico *{stroke-dasharray:1;stroke-dashoffset:1;animation:draw .9s var(--ease) forwards}
.tile:hover .cat-ico .ico-acc,.tile:focus-within .cat-ico .ico-acc{animation:glow .6s ease .5s forwards;fill-opacity:0}
.tile-count{font-size:1.1rem;line-height:1;padding:.45em .55em;border-radius:var(--r-2);background:var(--paper);color:var(--ink)}
.tile-name{font-size:var(--step-1);line-height:1.12;text-wrap:balance;hyphens:auto;overflow-wrap:break-word;align-self:start}
.tile-subs{display:none;list-style:none;margin:0;padding:0;flex-wrap:wrap;gap:0 var(--s-3);font-size:var(--step--1);align-self:start;position:relative;z-index:1}
.tile-subs a{display:inline-block;padding-block:.3em;color:inherit;text-decoration:none;border-bottom:1.5px solid transparent;font-weight:600}
.tile-subs a:hover{border-bottom-color:currentColor}
.tile-subs .num{font-family:var(--font-text);font-weight:400;margin-left:.3em;opacity:.8}
.tile-more{font-weight:700}

/* ---------- districts: an abstract mosaic sized by count, not a map ---------- */
.mosaic{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:5.75rem;gap:var(--s-2);grid-auto-flow:dense}
.mo{position:relative;display:grid;grid-template-rows:auto 1fr;align-content:start;gap:var(--s-1);height:100%;padding:var(--s-3);border-radius:var(--r-2);background:var(--card);color:var(--ink);text-decoration:none;overflow:hidden;--w:0%;transition:transform var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.mo::after{content:"";position:absolute;left:0;bottom:0;height:8px;width:var(--w);background:var(--brand);transition:width .8s var(--ease)}
.mo-2{grid-column:span 2;background:var(--brand-soft)}
.mo-4{grid-column:span 2;grid-row:span 2;background:var(--brand);color:#fff}
.mo-4::after{background:var(--sun)}
.mo-name{font-weight:700;font-size:var(--step--1);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mo-2 .mo-name{font-size:var(--step-0)}
.mo-4 .mo-name{font-size:var(--step-1)}
.mo-n{align-self:end;font-size:1.5rem;line-height:1;color:var(--brand)}
.mo-2 .mo-n{font-size:2rem}
.mo-4 .mo-n{font-size:3.2rem;color:var(--sun)}
a.mo:hover,a.mo:focus-visible{background:var(--brand);color:#fff;transform:translateY(-2px)}
a.mo:hover .mo-n,a.mo:focus-visible .mo-n{color:var(--sun)}
a.mo:hover::after{background:var(--sun)}
.mo-flat{background:transparent;border:1.5px dashed rgba(16,33,26,.4);color:var(--ink-2)}
.mo-flat .mo-n{color:var(--ink-2)}
.mo-note{margin:var(--s-4) 0 0;font-size:var(--step--1);color:var(--ink)}

/* ---------- listing rows: name row, meta row, summary, actions ---------- */
.rows{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}
.row{position:relative;display:grid;grid-template-rows:auto auto auto auto;align-content:start;gap:var(--s-2);padding:var(--s-5);background:var(--card);border:1px solid #d7dcd8;border-radius:6px;overflow:hidden;box-shadow:none}
.row::before{content:"";position:absolute;left:0;top:var(--s-4);bottom:var(--s-4);width:3px;background:var(--accent)}
.row-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);min-height:1.9rem}
.row-name{font-family:var(--font-heading);font-size:1.45rem;line-height:1.15;letter-spacing:0;color:#17201c}
.row-name a{text-decoration:none}
.row-name a:hover{color:var(--accent-deep);text-decoration:none}
.badge{display:inline-flex;align-items:center;gap:var(--s-2);min-height:2.25rem;padding:0 var(--s-3);border:1px solid var(--accent);border-radius:4px;background:var(--accent-soft);color:var(--accent-deep);font-size:.78rem;font-weight:700;text-decoration:none;line-height:1;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.badge:hover{background:var(--accent);color:var(--accent-on);transform:translateY(-1px)}
.ico-s{width:.9em;height:.9em}
.pill-open{display:inline-flex;align-items:center;gap:.4em;min-height:1.9rem;padding:0 .7em;border-radius:var(--r-pill);background:var(--open-soft);color:var(--open);font-size:.8rem;font-weight:700;line-height:1}
.pill-open::before{content:"";width:.55em;height:.55em;border-radius:50%;background:var(--open);animation:pulse 2.2s ease-in-out infinite}
.pill-closed{display:inline-flex;align-items:center;gap:.4em;min-height:1.9rem;padding:0 .7em;border-radius:var(--r-pill);background:var(--paper-2);color:var(--ink-2);font-size:.8rem;font-weight:700;line-height:1}
.row-meta{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);color:var(--ink-2);font-size:var(--step--1);min-height:2rem}
.row-district{font-weight:700;color:var(--district)}
.row-summary{margin:0;color:var(--ink-2);max-width:70ch}
.acts{list-style:none;margin:var(--s-1) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-2)}
.act{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--tap);padding:0 var(--s-4);border:1px solid var(--ink);border-radius:6px;background:var(--ink);color:#fff;font:700 var(--step--1)/1 var(--font-text);text-decoration:none;cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.act:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff;transform:translateY(-2px);box-shadow:0 8px 16px -12px rgba(0,0,0,.65)}
.act:active{transform:none;box-shadow:none}
.act[data-click="phone"],.act[data-click="whatsapp"]{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
.act[data-click="email"],.act[data-click="website"],.act[data-click="directions"]{background:#fff;border-color:var(--line);color:var(--ink)}
.act[data-click="email"]:hover,.act[data-click="website"]:hover,.act[data-click="directions"]:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}
.act-detail{background:#fff;border-color:var(--line);color:var(--ink)}
.act-detail:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}
.act-own,.act[data-click="landing"]{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.act-own:hover,.act[data-click="landing"]:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.acts .city-btn{min-height:var(--tap);padding:0 var(--s-4);border-width:1px;font-size:var(--step--1)}
.acts .city-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
.acts .city-btn--primary:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.acts .city-btn--secondary{background:#fff;border-color:var(--line);color:var(--ink)}
.acts .city-btn--secondary:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}
.acts .act-own{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}
.acts .act-own:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.act.is-revealed{font-weight:600}
.act .ico{width:1.2em;height:1.2em}
.empty{color:var(--ink-3);padding-block:var(--s-5);border-top:1px solid var(--rule)}
.notice{color:var(--ink-3);font-size:var(--step--1);border-top:1px solid var(--rule);padding-top:var(--s-4)}

/* ---------- page bands (category, business, district) ---------- */
.page-band{position:relative;overflow:hidden;background:var(--fam-vivid,var(--brand));color:var(--fam-on,var(--brand-on));border-radius:0 0 var(--r-4) var(--r-4);padding-block:0 var(--s-6)}
.page-band.on-brand{--fam-vivid:var(--brand);--fam-on:var(--brand-on);--fam-soft:var(--brand-soft);--fam:var(--brand)}
.page-head{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:var(--s-2) var(--s-4);align-items:center;padding-top:var(--s-5)}
.page-head .cat-ico{width:4rem;height:4rem;grid-row:1 / span 2;color:inherit}
.js .page-head .cat-ico *{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.1s var(--ease) forwards;animation-delay:calc(var(--i,0) * 90ms)}
.page-head:hover .cat-ico{animation:nudge .7s var(--ease)}
.page-title{font-size:var(--step-4);line-height:.95;letter-spacing:-.035em;text-wrap:balance;grid-column:2;hyphens:auto;overflow-wrap:anywhere}
.page-count{margin:0;font-size:var(--step-1);grid-column:2}
.page-count .num{font-size:1.5em;line-height:1}
.page-head-plain{grid-template-columns:minmax(0,1fr)}
.page-head-plain .page-title,.page-head-plain .page-count{grid-column:1}
.page-band .chips{margin-top:var(--s-5)}
.page-band .sec-kicker{margin:var(--s-5) 0 var(--s-2);font:700 var(--step--1)/1.2 var(--font-text);letter-spacing:.14em;text-transform:uppercase}
.page-band .prose{color:inherit;opacity:.94}

/* ---------- the district filter: a sticky bar under the header ---------- */
.filter{position:sticky;top:var(--stuck);z-index:30;background:var(--paper);border-bottom:1px solid var(--rule);margin-block:var(--s-4) var(--s-5)}
.filter-row{position:relative;display:flex;align-items:center;gap:var(--s-3);min-height:3.5rem;flex-wrap:wrap}
.filter-label{font-weight:700;font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.filter-dd{position:static}
.filter-btn{display:inline-flex;align-items:center;gap:var(--s-2);min-height:var(--tap);padding:0 var(--s-4);border:2px solid var(--ink);border-radius:var(--r-pill);background:var(--card);font-weight:700;cursor:pointer;list-style:none;user-select:none;color:var(--ink)}
.filter-btn::-webkit-details-marker{display:none}
.filter-btn::after{content:"";width:.5em;height:.5em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-.15em);transition:transform var(--t-fast) var(--ease)}
.filter-dd[open] .filter-btn::after{transform:rotate(-135deg) translateY(-.1em)}
.filter-dd[open] .filter-btn{background:var(--ink);color:var(--sun)}
.filter-panel{position:absolute;left:0;top:calc(100% + 6px);z-index:31;width:min(calc(100vw - 2 * var(--gutter)),40rem);max-height:60vh;overflow:auto;overscroll-behavior:contain;margin:0;padding:var(--s-3);background:var(--card);border:2px solid var(--ink);border-radius:var(--r-3);box-shadow:0 28px 56px -28px rgba(16,33,26,.5)}
.filter-current{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:700;color:var(--brand)}
.filter-reset{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--s-3);font-weight:700;color:var(--coral-deep);text-decoration:none;border-radius:var(--r-1)}
.filter-reset:hover{text-decoration:underline}
.filter-count{display:none;margin-left:auto;font-weight:700;color:var(--ink-2);font-size:var(--step--1)}
@media (min-width:40em){.filter-count{display:inline}}
.list{padding-top:var(--s-2)}

/* ---------- the business profile ---------- */
.biz-band .page-head{grid-template-columns:minmax(0,1fr)}
.biz-band .page-title,.biz-band .page-count{grid-column:1}
.biz-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);margin:var(--s-4) 0 0;font-weight:600}
.biz-meta .pill-open,.biz-meta .pill-closed{background:var(--paper);color:var(--ink)}
.biz-meta .pill-open::before{background:var(--brand)}
.biz-grid{display:grid;gap:var(--s-5);padding-top:var(--s-6)}
.biz-main{display:grid;gap:var(--s-5);min-width:0}
.card{background:var(--card);border:1.5px solid var(--rule);border-radius:var(--r-3);padding:var(--s-5)}
.card-title{font-size:var(--step-2);letter-spacing:-.02em;margin:0 0 var(--s-3)}
.card-kicker{margin:0 0 var(--s-2);font:700 var(--step--1)/1.2 var(--font-text);letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.card .prose{font-size:var(--step-0)}
.addr{font-style:normal;line-height:1.5}
.addr .btn{margin-top:var(--s-3)}
.hours{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.hours th,.hours td{padding:.55rem .5rem;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}
.hours th{font-weight:600;width:6.5rem;color:var(--ink-2)}
.hours tr.is-today th,.hours tr.is-today td{background:var(--brand-soft);color:var(--ink);font-weight:700}
.hours tr:last-child th,.hours tr:last-child td{border-bottom:0}
.hours-state{margin:0 0 var(--s-3);font-weight:700;color:var(--open)}
.hours-state.is-closed{color:var(--ink-2)}
.biz-actions{display:none;list-style:none;margin:0;padding:0;gap:var(--s-2)}
.biz-actions .act{justify-content:flex-start;width:100%;min-height:3rem;font-size:var(--step-0)}
.biz-aside{display:grid;gap:var(--s-5);align-content:start}
.landing{background:var(--ink);color:var(--paper);border-radius:var(--r-3);padding:var(--s-5);display:grid;gap:var(--s-3)}
.landing .card-kicker{color:var(--sun)}
.landing-title{font-size:var(--step-2);letter-spacing:-.02em;color:#fff}
.landing p{margin:0;opacity:.9}
.landing .btn{justify-self:start;background:var(--sun);border-color:var(--sun);color:var(--ink)}
.landing .btn:hover{background:#fff;border-color:#fff}
.bar{position:fixed;left:0;right:0;bottom:0;z-index:35;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;padding:var(--s-1) var(--s-1) max(var(--s-1),env(safe-area-inset-bottom));background:var(--ink);box-shadow:0 -12px 32px -20px rgba(16,33,26,.6)}
.bar .act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:3.5rem;padding:0 .25rem;border-radius:var(--r-2);font-size:.72rem;line-height:1;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar .act .ico{width:1.4em;height:1.4em}
.has-bar{padding-bottom:5rem}
.related{padding-top:var(--s-7)}
.related .rows{margin-top:var(--s-4)}

/* ---------- district page ---------- */
.city-district-page{--district-green:#0b4b36;--district-lime:#c8f169;--district-ink:#17201c;--district-paper:#f5f6f2;background:#fff;color:var(--district-ink)}
.city-district-hero{background:var(--district-green);color:#fff;border-bottom:8px solid var(--district-lime)}
.city-district-hero .crumbs,.city-district-hero .crumbs a,.city-district-hero .crumbs [aria-current]{color:#fff}
.city-district-hero .crumb-sep{color:var(--district-lime)}
.city-district-hero__inner{padding-bottom:var(--s-8)}
.city-district-hero__head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--s-7);padding-top:var(--s-7)}
.city-district-eyebrow,.city-district-group__eyebrow{margin:0 0 var(--s-2);font-size:.76rem;font-weight:800;line-height:1.2;letter-spacing:.1em;text-transform:uppercase}
.city-district-eyebrow{color:var(--district-lime)}
.city-district-hero .city-page-title{max-width:14ch;color:#fff;font-size:clamp(3rem,7vw,5.5rem);line-height:.95;letter-spacing:0}
.city-district-hero__lead{max-width:42rem;margin:var(--s-4) 0 0;color:#d6e2dc;font-size:var(--step-1)}
.city-district-hero__stat{display:grid;min-width:11rem;padding:var(--s-5);border-left:1px solid rgba(255,255,255,.3)}
.city-district-hero__stat strong{font:700 3.25rem/1 var(--font-heading);color:var(--district-lime)}
.city-district-hero__stat span{margin-top:var(--s-2);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.city-district-index{border-bottom:1px solid #d7ddd9;background:#fff}
.city-district-index .wrap{display:grid;grid-template-columns:12rem minmax(0,1fr);gap:var(--s-5);align-items:stretch}
.city-district-index__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-4) 0;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.city-district-index__head strong{display:grid;place-items:center;min-width:2rem;height:2rem;background:var(--district-ink);color:#fff}
.city-district-index__list{display:flex;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:thin}
.city-district-index__list li{flex:0 0 auto;border-left:1px solid #d7ddd9}
.city-district-index__list li:last-child{border-right:1px solid #d7ddd9}
.city-district-index__list a{display:grid;grid-template-columns:auto minmax(7rem,auto) auto;align-items:center;gap:var(--s-2);min-height:5rem;padding:0 var(--s-4);color:var(--district-ink);text-decoration:none}
.city-district-index__list a:hover,.city-district-index__list a:focus-visible{background:var(--district-lime)}
.city-district-index__list .ico{width:1.35rem;height:1.35rem;color:var(--district-green)}
.city-district-index__list strong{color:#66716b;font-size:.8rem}
.city-district-results{background:var(--district-paper)}
.city-district-results>.empty{width:var(--wrap);max-width:calc(100% - 2 * var(--gutter));margin-inline:auto;padding-block:var(--s-9)}
.city-district-group{padding-block:var(--s-8);border-bottom:1px solid #cfd6d1}
.city-district-group:nth-child(even){background:#fff}
.city-district-group__head{display:flex;align-items:end;justify-content:space-between;gap:var(--s-6);margin-bottom:var(--s-5);padding-bottom:var(--s-4);border-bottom:1px solid #bfc8c2}
.city-district-group__title{display:flex;align-items:center;gap:var(--s-4);min-width:0}
.city-district-group__index{display:grid;place-items:center;width:3rem;height:3rem;flex:0 0 auto;background:var(--district-green);color:#fff;font-weight:800}
.city-district-group__eyebrow{color:var(--district-green)}
.city-district-group h2{font-family:var(--font-heading);font-size:clamp(2rem,4vw,3.25rem);line-height:1;letter-spacing:0;color:var(--district-ink)}
.city-district-group__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-4);flex-wrap:wrap}
.city-district-group__count{color:#58635d;font-size:.85rem;white-space:nowrap}
.city-district-group__count strong{color:var(--district-ink)}
@media (max-width:47.99em){.city-district-hero__head{grid-template-columns:1fr;gap:var(--s-5)}.city-district-hero__stat{grid-template-columns:auto 1fr;align-items:end;gap:var(--s-3);min-width:0;padding:var(--s-4) 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.3)}.city-district-hero__stat strong{font-size:2.5rem}.city-district-index .wrap{grid-template-columns:1fr;gap:0}.city-district-index__head{border-bottom:1px solid #d7ddd9}.city-district-index__list{margin-inline:calc(-1 * var(--gutter));padding-left:var(--gutter)}.city-district-group{padding-block:var(--s-7)}.city-district-group__head{align-items:flex-start;flex-direction:column}.city-district-group__actions{width:100%;justify-content:space-between}.city-district-group__title{align-items:flex-start}.city-district-group__index{width:2.5rem;height:2.5rem}.city-district-group h2{font-size:2rem}}

/* ---------- offers (get listed) ---------- */
.offer{display:grid;gap:var(--s-4);margin-top:var(--s-5)}
.offer-item{display:grid;grid-template-rows:auto auto auto;grid-auto-rows:auto;align-content:start;gap:var(--s-3);border-radius:var(--r-3);padding:var(--s-5);background:var(--card);color:var(--ink)}
.offer-item.is-ink{background:var(--ink);color:var(--paper)}
.offer-kicker{margin:0;font:700 var(--step--1)/1.2 var(--font-text);letter-spacing:.14em;text-transform:uppercase;color:var(--brand)}
.is-ink .offer-kicker{color:var(--sun)}
.offer-title{font-size:var(--step-2);letter-spacing:-.02em}
.is-ink .offer-title{color:#fff}
.offer-item p{margin:0;max-width:48ch}
.offer-item .btn{justify-self:start;margin-top:var(--s-2)}
.is-ink .btn{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.is-ink .btn:hover{background:#fff;border-color:#fff;color:var(--ink)}
.offer-list{margin:0;padding-left:1.2em;display:grid;gap:var(--s-1)}
.steps{list-style:none;margin:var(--s-5) 0 0;padding:0;display:grid;gap:var(--s-3);counter-reset:step}
.step{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:var(--s-4);align-items:start;counter-increment:step}
.step::before{content:counter(step);display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--ink);color:var(--sun);font:900 1.25rem/1 var(--font-display)}
.step h3{font-size:var(--step-1);margin:0 0 var(--s-1);padding-top:.5rem}
.step p{margin:0;color:var(--ink-2)}

/* ---------- get listed ---------- */
.city-enroll{--enroll-green:#146b4a;--enroll-deep:#0b3f2c;--enroll-lime:#c8f169;--enroll-cream:#f4f1e8;--enroll-ink:#17201c;background:#fff;color:var(--enroll-ink)}
.city-enroll-hero{background:var(--enroll-deep);color:#fff;border-bottom:8px solid var(--enroll-lime)}
.city-enroll-hero .crumbs,.city-enroll-hero .crumbs a,.city-enroll-hero .crumbs [aria-current]{color:#fff}.city-enroll-hero .crumb-sep{color:var(--enroll-lime)}.city-enroll-hero__inner{padding-bottom:var(--s-8)}
.city-enroll-hero__copy{max-width:56rem;padding-top:var(--s-7)}
.city-enroll-eyebrow{display:inline-block;margin:0 0 var(--s-4);padding:var(--s-2) var(--s-3);background:var(--enroll-lime);color:var(--enroll-ink);font-size:.78rem;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.08em}
.city-enroll-hero .page-title{max-width:14ch;font-size:clamp(3rem,7vw,5.5rem);color:#fff;text-wrap:balance}
.city-enroll-hero .page-count{max-width:38rem;margin-top:var(--s-4);color:#d5e1da;font-size:var(--step-1)}
.city-enroll-promises{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:var(--s-7) 0 0;padding:0;border-block:1px solid rgba(255,255,255,.25)}
.city-enroll-promises li{display:grid;align-content:start;gap:var(--s-1);min-width:0;padding:var(--s-4) var(--s-5);border-right:1px solid rgba(255,255,255,.25)}
.city-enroll-promises li:first-child{padding-left:0}.city-enroll-promises li:last-child{border-right:0}
.city-enroll-promises strong{font-size:.9rem;color:var(--enroll-lime)}.city-enroll-promises span{font-size:var(--step--1);color:#d5e1da}
.city-enroll-choices{padding-top:var(--s-8);padding-bottom:var(--s-9)}
.city-enroll-offer{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:var(--s-4);margin:0}
.city-enroll-plan{min-width:0;min-height:42rem;padding:var(--s-7);border:1px solid #cfd7d2;border-radius:6px;background:#fff;box-shadow:none;gap:var(--s-4);overflow:hidden}
.city-enroll-plan--premium{background:var(--enroll-deep);border-color:var(--enroll-deep);color:#fff}
.city-enroll-plan__head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding-bottom:var(--s-4);border-bottom:1px solid #d8ded9}
.city-enroll-plan--premium .city-enroll-plan__head{border-color:rgba(255,255,255,.25)}
.city-enroll-plan .offer-kicker{color:var(--enroll-green)}.city-enroll-plan--premium .offer-kicker{color:var(--enroll-lime)}
.city-enroll-plan__number{font-size:.82rem;color:#6c7770}.city-enroll-plan--premium .city-enroll-plan__number{color:var(--enroll-lime)}
.city-enroll-plan .offer-title{max-width:14ch;font-family:var(--font-heading);font-size:clamp(2rem,4vw,3rem);line-height:1.05;letter-spacing:0}
.city-enroll-plan__intro{min-height:4.8em;color:#4e5a53;font-size:var(--step-0)}.city-enroll-plan--premium .city-enroll-plan__intro{color:#d5e1da}
.city-enroll-benefits{list-style:none;padding:var(--s-4) 0 0;border-top:1px solid #d8ded9;gap:var(--s-3)}.city-enroll-plan--premium .city-enroll-benefits{border-color:rgba(255,255,255,.25)}
.city-enroll-benefits li{position:relative;padding-left:var(--s-6);font-size:.94rem}.city-enroll-benefits li::before{content:'+';position:absolute;left:0;color:var(--enroll-green);font-weight:700}.city-enroll-plan--premium .city-enroll-benefits li::before{color:var(--enroll-lime)}
.city-enroll-plan__actions{display:grid;align-self:end;justify-items:start;gap:var(--s-3);margin-top:auto;padding-top:var(--s-5)}
.city-enroll-action{justify-content:space-between;width:min(100%,21rem)}.city-enroll-action .ico{transition:transform var(--t-fast) var(--ease)}.city-enroll-action:hover .ico{transform:translateX(4px)}
.city-enroll-plan .city-btn--primary{background:var(--enroll-green);border-color:var(--enroll-green);color:#fff}.city-enroll-plan .city-btn--primary:hover{background:var(--enroll-deep);border-color:var(--enroll-deep)}
.city-enroll-plan--premium .city-btn--contrast{background:var(--enroll-lime);border-color:var(--enroll-lime);color:var(--enroll-ink)}.city-enroll-plan--premium .city-btn--contrast:hover{background:#fff;border-color:#fff;color:var(--enroll-ink)}
.city-enroll-account{color:var(--enroll-green);font-size:var(--step--1);font-weight:700;text-underline-offset:.25em}.city-enroll-account:hover{color:var(--enroll-deep)}
.city-enroll-process{padding-block:var(--s-9);background:var(--enroll-cream);border-top:1px solid #d8ded9}
.city-enroll-process__head{display:flex;align-items:end;justify-content:space-between;gap:var(--s-5);padding-bottom:var(--s-5);border-bottom:1px solid #cbd2cd}
.city-enroll-process .kicker{margin:0;color:var(--enroll-green)}.city-enroll-process .kicker::before{background:var(--enroll-lime);box-shadow:0 0 0 2px var(--enroll-green)}
.city-enroll-process .sec-title{font-family:var(--font-heading);font-size:clamp(2.5rem,5vw,4rem);line-height:1.05;letter-spacing:0}
.city-enroll-steps{gap:0;margin-top:var(--s-7);border-top:1px solid #cbd2cd;border-left:1px solid #cbd2cd}
.city-enroll-steps .step{position:relative;display:block;min-height:15rem;padding:var(--s-6);border-right:1px solid #cbd2cd;border-bottom:1px solid #cbd2cd;background:#fff}
.city-enroll-steps .step::before{width:auto;height:auto;place-items:start;background:transparent;color:var(--enroll-green);font-family:var(--font-text);font-size:.8rem}
.city-enroll-steps .step h3{margin-top:var(--s-7);padding:0;font-family:var(--font-heading);font-size:1.7rem;letter-spacing:0}.city-enroll-steps .step p{margin-top:var(--s-3);font-size:.92rem;line-height:1.55}

/* ---------- prose ---------- */
.prose{max-width:66ch;color:var(--ink-2);font-size:var(--step-1)}
.prose p{margin:0 0 var(--s-4)}
.prose p:last-child{margin-bottom:0}
.prose-drop p:first-child::first-letter{font-family:var(--font-display);font-weight:900;font-size:3.2em;line-height:.78;float:left;margin:.05em .12em 0 0;color:inherit}

/* ---------- search page ---------- */
.search-head{padding-top:var(--s-5)}
.search-status{margin:var(--s-3) 0 0;font-size:var(--step-1);color:var(--ink-2)}
.search-status q{quotes:"\201E" "\201C";font-weight:700;color:var(--ink)}
.search-tips{margin:var(--s-4) 0 0}

/* ---------- pagination ---------- */
.pager{padding-block:var(--s-5)}
.pager-status{margin:0 0 var(--s-3);color:var(--ink-2);font-weight:600}
.pager-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}
.pager-link{display:inline-flex;align-items:center;justify-content:center;min-width:var(--tap);min-height:var(--tap);padding:0 var(--s-3);border:2px solid var(--ink);border-radius:var(--r-pill);text-decoration:none;font-weight:700;color:var(--ink);background:var(--card)}
.pager-link:hover{background:var(--ink);color:var(--sun)}
.pager-link.is-current{background:var(--brand);border-color:var(--brand);color:#fff}
.pager-step{color:var(--brand)}
.pager-gap{color:var(--ink-3);padding-inline:var(--s-1)}
.pager-loading{color:var(--ink-3);font-size:var(--step--1);margin:var(--s-3) 0 0}

/* ---------- 404 ---------- */
.oops{padding-block:var(--s-7)}
.oops-code{font-size:var(--step-5);line-height:.9;letter-spacing:-.05em;color:var(--brand)}
.oops-scene{max-width:26rem;margin-top:var(--s-5)}
.oops-scene .scene-sun{fill:var(--coral)}
.oops-scene .scene-motif{stroke:var(--ink)}
.oops-scene .scene-motif .m-win{fill:none;stroke:var(--ink)}
.oops-scene .scene-motif .m-roof{stroke:var(--coral-deep)}
.oops .chips{margin-top:var(--s-5)}

/* ---------- footer ---------- */
.ft{margin-top:var(--s-8);background:var(--brand-deep);color:var(--paper);padding-block:var(--s-7) var(--s-5);border-radius:var(--r-4) var(--r-4) 0 0}
.ft-head{display:grid;gap:var(--s-5);margin-bottom:var(--s-6)}
.ft-city{font-family:var(--font-display);font-weight:900;font-size:var(--step-4);color:#fff;margin:0;line-height:.95;letter-spacing:-.035em;hyphens:auto;overflow-wrap:anywhere}
.ft-tag{margin:var(--s-3) 0 0;font-size:var(--step-1);color:var(--paper);opacity:.9;max-width:34ch}
.ft-motif{width:100%;max-width:18rem;color:var(--paper);opacity:.9}
.ft-motif .m-win{fill:none;stroke:var(--sun)}
.ft-motif .m-sun{fill:var(--sun);stroke:var(--sun)}
.ft-motif .m-roof{stroke:var(--sun)}
.ft-cols{display:grid;gap:var(--s-5);grid-template-columns:repeat(2,minmax(0,1fr))}
.ft-title{font:700 var(--step--1)/1.3 var(--font-text);text-transform:uppercase;letter-spacing:.14em;color:var(--sun);margin:0 0 var(--s-2)}
.ft-col ul{list-style:none;margin:0;padding:0}
.ft-col li{margin:0}
/* `max-width:100%` and a break opportunity because German compounds do not
   wrap on their own: "Rückerstattungsrichtlinie" is one 25 character word, and
   as an inline-block it rendered 144px wide inside a 105px column, 15px past
   the viewport at 768. Every other locale here is shorter, so this only ever
   showed in German. */
.ft-col a{display:inline-block;max-width:100%;overflow-wrap:anywhere;hyphens:auto;color:var(--paper);text-decoration:none;font-size:var(--step--1);line-height:1.4;min-height:var(--tap);padding-block:calc((var(--tap) - 1.4em) / 2)}
.ft-col a:hover{color:#fff;text-decoration:underline;text-decoration-color:var(--sun);text-decoration-thickness:2px}
.ft-col a.ft-cat{display:inline-flex;align-items:center;gap:var(--s-2)}
.ft-col-wide ul{columns:2;column-gap:var(--s-4)}
.ft-col-wide li{break-inside:avoid}
.ft-cat .ico{opacity:.85;width:1.05em;height:1.05em}
.ft-muted{opacity:.7;font-size:var(--step--1)}
.ft-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-2) var(--s-4);margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid rgba(251,249,243,.25);font-size:var(--step--1)}
.ft-bottom p{margin:0}
.ft-bottom a{color:var(--paper);display:inline-block;padding-block:var(--s-1)}
/* ---------- language menu ---------- */
.lang-item{display:flex;align-items:center;gap:var(--s-3);min-height:var(--tap);padding:0 var(--s-3);width:100%;border:0;border-radius:var(--r-1);background:transparent;color:var(--ink);font:inherit;text-decoration:none;text-align:left;cursor:pointer}
.lang-item:hover{background:var(--brand-soft)}
.lang-item.is-current{font-weight:700}
.app-nav-flag{width:20px;height:14px;flex:0 0 auto}

/* ---------- legal pages ---------- */
.city-legal{--legal-deep:#0b3f2c;--legal-green:#146b4a;--legal-lime:#c8f169;--legal-mint:#e6f1eb;background:#fff;color:#17201c}
.city-legal-hero{padding:0 0 var(--s-8);border-bottom:8px solid var(--legal-lime);background:var(--legal-deep);color:#fff}
.city-legal-hero .crumbs,.city-legal-hero .crumbs a,.city-legal-hero .crumbs [aria-current]{color:#fff}.city-legal-hero .crumb-sep{color:var(--legal-lime)}
.city-legal-hero__copy{max-width:54rem;padding-top:var(--s-7)}
.city-legal-eyebrow{display:inline-block;margin-bottom:var(--s-4);padding:var(--s-2) var(--s-3);background:var(--legal-lime);color:#17201c;font-size:.78rem;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.08em}
.app-pagehero h1{font-size:clamp(3rem,7vw,5.25rem);color:#fff;text-wrap:balance}
.app-pagehero-sub{max-width:52rem;margin-top:var(--s-4);color:#d5e1da;font-size:var(--step-1);line-height:1.55}
.app-pagehero-meta{margin-top:var(--s-5)}
.app-pagehero-chip{display:inline-flex;align-items:center;min-height:2.25rem;padding:0 var(--s-3);border:1px solid rgba(255,255,255,.3);border-radius:6px;color:#fff;font-size:var(--step--1);font-weight:700}
.app-legal-shell{display:grid;gap:var(--s-6);padding-top:var(--s-8);padding-bottom:var(--s-9)}
.app-legal-toc{display:none}
.app-legal-toc-mobile{border:1px solid #d7dcd8;border-radius:6px;background:#f7f8f7}
.app-legal-toc-mobile summary{cursor:pointer;font-weight:700;min-height:var(--tap);display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);padding-inline:var(--s-4);color:var(--legal-deep)}
.app-legal-toc-mobile ol{margin:0;padding:0 var(--s-4) var(--s-4) 2.5rem;color:var(--ink-2)}
.app-legal-toc-list{margin:0;padding:0;list-style:none;counter-reset:legal-toc}
.app-legal-toc-list li{counter-increment:legal-toc;border-top:1px solid #d7dcd8}
.app-legal-toc-list a{display:grid;grid-template-columns:1.75rem 1fr;gap:var(--s-2);padding-block:var(--s-3);color:#46524b;text-decoration:none;font-size:.88rem;line-height:1.35}
.app-legal-toc-list a::before{content:counter(legal-toc,decimal-leading-zero);color:var(--legal-green);font-size:.72rem;font-weight:700}
.app-legal-toc-list a:hover{color:var(--legal-green)}
.app-legal-toc-title{margin:0 0 var(--s-3);font:700 .75rem/1.3 var(--font-text);text-transform:uppercase;letter-spacing:.1em;color:var(--legal-green)}
.app-legal-toc-pages{list-style:none;padding:0;margin:0;border-top:1px solid #d7dcd8}
.app-legal-toc-pages a{display:block;padding-block:var(--s-3);border-bottom:1px solid #d7dcd8;color:#46524b;text-decoration:none;font-size:.88rem;font-weight:700}.app-legal-toc-pages a:hover{color:var(--legal-green)}
.app-legal-summary{margin-bottom:var(--s-6);padding:var(--s-5);border:1px solid #bcd3c7;border-left:4px solid var(--legal-green);border-radius:6px;background:var(--legal-mint);color:#34443b}
.app-legal-summary-title{margin:0 0 var(--s-2);color:var(--legal-deep);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem}
.app-legal-article{max-width:48rem;counter-reset:legal-section}
.app-legal-section{position:relative;padding-block:var(--s-6);border-top:1px solid #cfd5d0;counter-increment:legal-section}
.app-legal-section::before{content:counter(legal-section,decimal-leading-zero);display:block;margin-bottom:var(--s-3);color:var(--legal-green);font-size:.78rem;font-weight:700}
.app-legal-section h2{margin-bottom:var(--s-4);font-family:var(--font-heading);font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.12}
.app-legal-section h3{margin:var(--s-5) 0 var(--s-2);font-size:var(--step-1)}
.app-legal-section p,.app-legal-section li{color:#46524b;line-height:1.7}
.app-legal-section p+p{margin-top:var(--s-3)}.app-legal-section ul,.app-legal-section ol{display:grid;gap:var(--s-2);margin:var(--s-3) 0 0;padding-left:1.25rem}
.app-legal-section a{color:var(--legal-green);font-weight:700}
.app-legal-contact{max-width:48rem;margin-top:var(--s-6);padding:var(--s-6);border-radius:6px;background:var(--legal-deep);color:#fff}
.app-legal-contact h2{margin-bottom:var(--s-2);font-size:1.65rem;color:#fff}.app-legal-contact p{color:#d5e1da}
.app-legal-related{margin-top:var(--s-8);padding-top:var(--s-6);border-top:1px solid #cfd5d0}
.app-legal-related-title{margin:0 0 var(--s-4);font:700 .75rem/1.3 var(--font-text);text-transform:uppercase;letter-spacing:.1em;color:var(--legal-green)}
.app-legal-related-grid{display:grid;gap:var(--s-3)}
.app-legal-related-card{position:relative;display:block;min-height:11rem;padding:var(--s-5);border:1px solid #d7dcd8;border-radius:6px;background:#fff;color:#46524b;text-decoration:none;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.app-legal-related-card::after{content:'\2192';position:absolute;right:var(--s-4);top:var(--s-4);color:var(--legal-green);font-size:1.2rem}
.app-legal-related-card:hover{border-color:#9fb9ab;background:#f7faf8;transform:translateY(-2px)}
.app-legal-related-card h3{max-width:12rem;margin-bottom:var(--s-2);padding-right:var(--s-5);font-family:var(--font-heading);font-size:1.35rem;color:#17201c}.app-legal-related-card p{margin:0;font-size:var(--step--1);line-height:1.5}
.min-w-0{min-width:0}
.mt-8{margin-top:var(--s-6)}
[class^="icon-"]{display:none}

/* ---------- widths ---------- */
@media (min-width:40em){
  .offer{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app-legal-related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mosaic{grid-template-columns:repeat(5,minmax(0,1fr))}
  .hero-scene{max-width:44rem;justify-self:end}
}
@media (min-width:48em){
  .hd{min-height:4.75rem}.hd-search{height:4.75rem}
  .band{padding-block:var(--s-8)}
  .band-in{margin-inline:var(--s-4)}
  .hero-in{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:end;gap:var(--s-6);padding-top:var(--s-8)}
  .hero-scene{margin-top:0;align-self:end}
  .hero-lead{font-size:var(--step-1)}
  .tiles{gap:var(--s-4);grid-auto-rows:minmax(12rem,auto)}
  .tile{padding:var(--s-5);grid-template-rows:3.25rem minmax(2.4em,auto) 1fr}
  .tile-head{height:3.25rem}
  .cat-ico{width:3.25rem;height:3.25rem}
  .tile-subs{display:flex}
  .tile-name{font-size:var(--step-2)}
  .ft-head{grid-template-columns:minmax(0,1fr) auto;align-items:end}
  .row{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;column-gap:var(--s-5);padding-left:calc(var(--s-5) + 4px)}
  .row-head,.row-meta,.row-summary{grid-column:1}
  .acts{grid-column:2;grid-row:1 / span 3;margin-top:0;flex-direction:column;align-items:stretch}
  .act{justify-content:flex-start}
  .biz-grid{grid-template-columns:minmax(0,1fr) 19rem;align-items:start}
  .biz-actions{display:grid}
  .bar{display:none}
  .has-bar{padding-bottom:0}
  .app-legal-shell{grid-template-columns:14rem minmax(0,1fr)}
  .app-legal-toc{display:block;position:sticky;top:calc(var(--stuck) + var(--s-4))}
  .app-legal-toc-mobile{display:none}
  .steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .filter-panel{width:min(calc(100vw - 2 * var(--gutter)),44rem)}
}
@media (min-width:64em){
  .tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tile-xl{grid-column:span 2;grid-row:span 2}
  .tile-xl .tile-name{font-size:var(--step-3)}
  .mosaic{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:6.25rem}
  .ft-cols{grid-template-columns:minmax(0,2fr) minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)}
  .acts{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;max-width:30rem}
  .biz-grid{grid-template-columns:minmax(0,1fr) 22rem;gap:var(--s-7)}
}

/* ---------- landing redesign: civic editorial directory ---------- */
.page-home{--home-green:#146b4a;--home-green-dark:#0b3f2c;--home-lime:#c8f169;--home-mint:#e6f1eb;--home-cream:#f4f1e8;--home-charcoal:#17201c;background:#fff;color:#17201c}
.hd-row{min-height:4rem}
.hd-city{font-family:'Fraunces',Georgia,serif;font-size:1.3rem;font-weight:900;letter-spacing:0;color:#17201c}
.hd-logo{display:block;width:2rem;height:2rem;flex:0 0 2rem}
.hd-link{color:#17201c;border-bottom:2px solid #17201c;border-radius:0;padding-inline:0;margin-right:var(--s-3);font-weight:700}
.hd-link:hover{color:#146b4a;border-color:#146b4a;text-decoration:none}
.lang-btn{border:1px solid #c9cec9;border-radius:6px;background:#fff}
.page-home .hero{min-height:min(46rem,calc(100vh - 4.75rem));border-radius:0;background:var(--home-green-dark);isolation:isolate;display:grid;align-items:stretch}
.page-home .hero-photo,.page-home .hero-shade{position:absolute;inset:0;width:100%;height:100%}
.page-home .hero-photo{object-fit:cover;object-position:58% center;z-index:-2}
.page-home .hero-shade{z-index:-1;background:rgba(7,28,20,.58)}
.page-home .hero-in{display:flex;align-items:center;padding-top:var(--s-8);padding-bottom:var(--s-8);min-height:inherit}
.page-home .hero-text{width:100%;max-width:52rem;min-width:0}
.page-home .hero-eyebrow{display:inline-block;margin:0 0 var(--s-3);padding:var(--s-2) var(--s-3);background:var(--home-lime);color:var(--home-charcoal);font-size:.78rem;line-height:1;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.page-home .hero-title{font-size:5.5rem;color:#fff;overflow-wrap:normal;word-break:normal;text-shadow:0 2px 20px rgba(0,0,0,.2)}
.page-home .hero-lead{max-width:40rem;margin-top:var(--s-5);color:#fff;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.45;opacity:1}
.page-home .city-search--hero{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;width:min(42rem,100%);height:4.25rem;margin-top:var(--s-6);background:#fff;border:3px solid #fff;border-radius:6px;box-shadow:0 16px 44px rgba(0,0,0,.26);transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease),transform var(--t) var(--ease)}
.page-home .city-search--hero:focus-within{border-color:var(--home-lime);box-shadow:0 18px 46px rgba(0,0,0,.3);transform:translateY(-1px)}
.page-home .city-search--hero>.ico{width:1.35rem;height:1.35rem;margin-left:var(--s-4);color:var(--home-green)}
.page-home .city-search--hero input{width:100%;height:100%;min-width:0;border:0;padding:0 var(--s-4);font:600 1rem/1 var(--font-text);color:var(--home-charcoal);background:#fff;outline:0}
.page-home .city-search--hero input::placeholder{color:#626b66;opacity:1}
.page-home .city-search--hero>button{height:100%;padding:0 var(--s-5);border:0;border-radius:3px;background:var(--home-green);color:#fff;font:700 1rem/1 var(--font-text);cursor:pointer;transition:background var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.page-home .city-search--hero>button:hover{background:var(--home-green-dark)}
.page-home .city-search--hero>button:active{transform:scale(.98)}
.page-home .city-search--hero .city-suggest{left:-3px;right:-3px;top:calc(100% + var(--s-2));color:var(--home-charcoal);border-radius:6px;text-align:left}
.page-home .hero-stats{display:grid;grid-template-columns:repeat(3,max-content);gap:var(--s-6);margin-top:var(--s-6)}
.page-home .hero-stats li{display:flex;align-items:baseline;gap:var(--s-2);padding-left:var(--s-3);border-left:3px solid var(--home-lime)}
.page-home .hero-stats .num{min-width:var(--w,2ch);font-size:1.6rem;line-height:1;color:#fff}
.page-home .hero-stats span{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff}
.home-nav{display:grid;grid-template-columns:repeat(3,1fr);padding-top:0;padding-bottom:0;border-bottom:1px solid #dfe2df}
.home-nav a{display:flex;justify-content:space-between;align-items:center;min-height:4.75rem;padding:0 var(--s-5);border-left:1px solid #dfe2df;text-decoration:none;font-weight:700;color:var(--home-charcoal)}
.home-nav a:last-child{border-right:1px solid #dfe2df}
.home-nav a span{font-size:1.25rem;color:var(--home-green)}
.home-nav a:hover{background:var(--home-cream)}
.page-home .band{padding-block:var(--s-9)}
.page-home .kicker{margin-bottom:var(--s-3);color:var(--home-green);font-size:.76rem;letter-spacing:.12em}
.page-home .kicker::before{width:.5rem;height:.5rem;border-radius:1px;background:var(--home-green);box-shadow:none}
.page-home .sec-title{font-family:var(--font-heading);font-size:clamp(2.2rem,5vw,4rem);line-height:1.05;letter-spacing:0;color:var(--home-charcoal)}
.page-home .sec-head{margin-bottom:var(--s-7);padding-bottom:var(--s-5);border-bottom:1px solid #bfc6c1}
.page-home .tiles{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:0;border-top:1px solid #cdd2ce;border-left:1px solid #cdd2ce}
.page-home .tile,.page-home .tile-xl{grid-column:span 1;grid-row:span 1;grid-template-rows:auto auto 1fr;min-height:18rem;padding:var(--s-5);gap:var(--s-4);border-right:1px solid #cdd2ce;border-bottom:1px solid #cdd2ce;border-radius:0;background:#fff;color:var(--home-charcoal);overflow:hidden;box-shadow:none;transform:none}
.page-home .tile:hover,.page-home .tile:focus-within{background:var(--home-cream);transform:none;box-shadow:none}
.page-home .tile-head{height:auto;align-items:center}
.page-home .cat-ico{width:2.75rem;height:2.75rem;color:var(--home-green)}
.page-home .tile-count{padding:0;background:transparent;color:#657069;font-size:.9rem}
.page-home .tile-count::after{content:' listings';font-family:var(--font-text);font-weight:400}
.page-home .tile-name,.page-home .tile-xl .tile-name{font-family:var(--font-heading);font-size:1.55rem;line-height:1.1;letter-spacing:0}
.page-home .tile-subs{display:flex;flex-direction:column;flex-wrap:nowrap;gap:0;align-self:end;color:#4f5a54}
.page-home .tile-subs li{border-top:1px solid #dfe2df}
.page-home .tile-subs a{display:flex;justify-content:space-between;width:100%;padding:var(--s-2) 0;border:0;font-weight:500}
.page-home .tile-subs a:hover{color:var(--home-green)}
.page-home #bezirke{margin:0;border-radius:0;background:var(--home-charcoal);color:#fff}
.page-home #bezirke .kicker,.page-home #bezirke .sec-lead{color:#cfd6d1}
.page-home #bezirke .sec-title{color:#fff}
.page-home #bezirke .sec-head{border-color:#445049}
.page-home #bezirke .kicker::before{background:var(--home-lime)}
.page-home .mosaic{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;gap:0;border-top:1px solid #445049;border-left:1px solid #445049}
.page-home .mosaic li{grid-column:span 1!important;grid-row:span 1!important}
.page-home .mo,.page-home .mo-2,.page-home .mo-4{display:flex;align-items:center;justify-content:space-between;min-height:5rem;height:auto;padding:var(--s-4);border-radius:0;border-right:1px solid #445049;border-bottom:1px solid #445049;background:transparent;color:#fff}
.page-home .mo::after{display:none}
.page-home .mo-name,.page-home .mo-2 .mo-name,.page-home .mo-4 .mo-name{font-size:.95rem;white-space:normal}
.page-home .mo-n,.page-home .mo-2 .mo-n,.page-home .mo-4 .mo-n{font-size:.85rem;color:var(--home-lime)}
.page-home a.mo:hover,.page-home a.mo:focus-visible{background:var(--home-lime);color:var(--home-charcoal);transform:none}
.page-home a.mo:hover .mo-n{color:var(--home-charcoal)}
.page-home .mo-flat{opacity:.55}
.page-home .mo-note{color:#9ea8a1}
.page-home #neu{background:var(--home-cream)}
.page-home .rows{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4)}
.page-home .row{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;gap:var(--s-3)}
.page-home .row-head,.page-home .row-meta,.page-home .row-summary,.page-home .acts{grid-column:1}
.page-home .acts{grid-row:auto;flex-direction:row;justify-content:flex-start;max-width:none}
/* The home rows use tighter actions, but never below the tap target: 2.5rem
   is 40px and every contact button on the busiest page of the site failed the
   44px minimum at both 390 and 1440. Padding and type stay small; only the
   height goes back to the token. */
.page-home .act{min-height:var(--tap);padding:0 var(--s-3);border-radius:4px;font-size:.76rem}
.page-home .pill-open,.page-home .badge{border-radius:3px}
.page-home #eintragen{margin:0;border-radius:0;background:var(--home-cream);color:var(--home-charcoal);border-top:1px solid #d8ddd9}
.page-home #eintragen .kicker{color:var(--home-charcoal)}
.page-home #eintragen .kicker::before{background:var(--home-charcoal)}
.page-home #eintragen .sec-lead{color:var(--home-charcoal)}
.page-home .offer{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--s-3);background:transparent;border:0}
.page-home .offer-item,.page-home .offer-item.is-ink{position:relative;padding:var(--s-7);border:1px solid rgba(23,32,28,.35);border-radius:0;background:#fff;color:var(--home-charcoal)}
.page-home .offer-item.is-ink{background:var(--home-green-dark);border-color:var(--home-green-dark);color:#fff}
.page-home .city-offer__top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding-bottom:var(--s-4);border-bottom:1px solid rgba(23,32,28,.22)}
.page-home .offer-premium .city-offer__top{border-color:rgba(255,255,255,.25)}
.page-home .city-offer__index{font-size:.8rem;color:#66716b}
.page-home .offer-premium .city-offer__index,.page-home .offer-premium .offer-kicker{color:#fff}
.page-home .offer-title{font-family:var(--font-heading);font-size:2.15rem;line-height:1.08;letter-spacing:0;margin-top:var(--s-3)}
.page-home .offer-premium .offer-title{font-size:2.35rem;max-width:14ch}
.page-home .city-offer__benefits{display:flex;flex-wrap:wrap;gap:var(--s-2);list-style:none;margin:var(--s-2) 0 0;padding:0}
.page-home .city-offer__benefits li{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border:1px solid rgba(255,255,255,.28);font-size:.82rem;font-weight:700}
.page-home .city-offer__benefits li::before{content:'+';color:var(--home-lime);font-size:1rem}
.page-home .offer-item .btn{justify-self:start;border-radius:4px;background:var(--home-green);border-color:var(--home-green);color:#fff}
.page-home .offer-item.is-ink .btn{background:var(--home-lime);border-color:var(--home-lime);color:var(--home-charcoal)}
.page-home .city-offer__action{justify-content:space-between;min-width:min(100%,18rem);margin-top:var(--s-4)}
.page-home .city-offer__action .ico{transition:transform var(--t-fast) var(--ease)}
.page-home .city-offer__action:hover .ico{transform:translateX(4px)}
.page-home #ueber{background:#fff;color:var(--home-charcoal);border-bottom:1px solid #dfe2df}
.page-home #ueber .kicker{color:var(--home-green)}
.page-home #ueber .kicker::before{background:var(--home-green)}
.page-home #ueber .sec-title{color:var(--home-charcoal)}
.page-home #ueber .prose{max-width:48rem;font-size:1.2rem;color:#4f5a54}
.ft{--footer-lime:#c8f169;--footer-charcoal:#17201c;position:relative;margin-top:0;padding-block:var(--s-9) var(--s-5);border-radius:0;border-top:8px solid var(--footer-lime);background:var(--footer-charcoal);color:#fff}
.ft-head{grid-template-columns:minmax(0,1fr);margin-bottom:var(--s-8);padding-bottom:var(--s-7);border-bottom:1px solid #465149}
.ft-city{font-family:'Fraunces',Georgia,serif;font-size:4rem;line-height:.95;letter-spacing:0;overflow-wrap:normal;color:#fff}
.ft-tag{max-width:50rem;margin-top:var(--s-4);font-size:1.15rem;color:#cbd2cd;opacity:1}
.ft-motif{display:none}
.ft-cols{grid-template-columns:minmax(0,2fr) minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s-7)}
.ft-title{padding-bottom:var(--s-3);border-bottom:1px solid #465149;color:var(--footer-lime);letter-spacing:.1em}
.ft-col-wide ul{columns:2;column-gap:var(--s-5)}
.ft-col a{color:#dce1dd}
.ft-col a:hover{color:#fff;text-decoration-color:var(--footer-lime)}
.ft-cat .ico{color:var(--footer-lime)}
.ft-bottom{margin-top:var(--s-8);padding-top:var(--s-4);border-color:#465149;color:#aeb8b1}
.city-back-top{position:fixed;right:var(--s-4);bottom:var(--s-4);z-index:45;display:grid;place-items:center;width:3rem;height:3rem;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:6px;background:#17201c;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.24);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(var(--s-3));transition:opacity var(--t) var(--ease),transform var(--t) var(--ease),visibility var(--t) var(--ease),background var(--t-fast) var(--ease)}
.city-back-top.is-visible{opacity:1;visibility:visible;transform:none}
.city-back-top:hover{background:#146b4a}
.city-back-top .ico{width:1.25rem;height:1.25rem}
@media (max-width:63.99em){.page-home .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.page-home .mosaic{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:47.99em){
  .page-home .hero{min-height:min(42rem,calc(100svh - 7.5rem))}
  .page-home .hero-photo{object-position:64% center}.page-home .hero-shade{background:rgba(7,28,20,.66)}
  .page-home .hero-in{padding-top:var(--s-6);padding-bottom:var(--s-6);align-items:flex-end}.page-home .hero-title{font-size:2.7rem;line-height:.94}
  .page-home .hero-text{width:100%;max-width:100%;overflow:hidden}
  .page-home .hero-lead{width:100%;max-width:100%}
  .page-home .city-search--hero{width:100%;max-width:100%;height:3.75rem;grid-template-columns:2.5rem minmax(0,1fr) 5.25rem}.page-home .city-search--hero>button{width:5.25rem;padding:0}
  .page-home .city-search--hero>.ico{margin-left:var(--s-3)}.page-home .city-search--hero input{padding-inline:var(--s-2);font-size:.9rem}
  .page-home .hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:var(--s-2)}.page-home .hero-stats li{display:grid;gap:0;padding-left:var(--s-2);min-width:0}
  .page-home .hero-stats .num{font-size:1.3rem}.page-home .hero-stats span{font-size:.63rem}
  .home-nav{grid-template-columns:1fr;padding-inline:var(--gutter)}.home-nav a{min-height:3.5rem;padding:0;border-left:0;border-bottom:1px solid #dfe2df}.home-nav a:last-child{border-right:0}
  .page-home .band{padding-block:var(--s-8)}.page-home .tiles{grid-template-columns:1fr}.page-home .tile,.page-home .tile-xl{min-height:15rem}
  .page-home .mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}.page-home .rows{grid-template-columns:1fr}.page-home .offer{grid-template-columns:1fr}
  .page-home .offer-item,.page-home .offer-item.is-ink{padding:var(--s-5)}
  .page-home .offer-premium .offer-title{font-size:2.25rem}
  .ft{padding-top:var(--s-8)}.ft-head{margin-bottom:var(--s-7);padding-bottom:var(--s-6)}.ft-city{font-size:2.5rem;overflow-wrap:anywhere}
  .ft-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-6) var(--s-4)}.ft-col-wide ul{columns:1}
  .city-back-top{right:var(--s-3);bottom:var(--s-3)}
}

/* ---------- category page: editorial directory workflow ---------- */
.city-category-page{--city-category-ink:#17201c;--city-category-green:#146b4a;--city-category-green-dark:#0b3f2c;--city-category-mint:#e6f1eb;--city-category-cream:#f4f1e8;background:#f7f8f7;color:var(--city-category-ink)}
.city-category-hero{padding-block:0 var(--s-8);border-radius:0;border-top:1px solid var(--rule);background:var(--city-category-cream);color:var(--city-category-ink);overflow:visible}
.city-category-hero .crumbs,.city-category-hero .crumbs a,.city-category-hero .crumbs [aria-current],.city-category-hero .crumb-sep{color:var(--city-category-green-dark)}
.city-category-hero .crumbs a:hover{color:var(--city-category-green)}
.city-category-hero__head{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto;align-items:center;gap:var(--s-5);padding-top:var(--s-7)}
.city-category-hero__icon{display:grid;place-items:center;width:6rem;height:6rem;border:1px solid #bfc8c1;background:#fff;color:var(--city-category-green)}
.city-category-hero__head .cat-ico{grid-row:auto;width:3.5rem;height:3.5rem;color:inherit}
.city-category-hero__copy{min-width:0}
.city-category-hero__eyebrow,.city-category-results__eyebrow{margin:0 0 var(--s-2);color:var(--city-category-green);font:700 .75rem/1.2 var(--font-text);letter-spacing:.1em;text-transform:uppercase}
.city-category-hero .page-title{grid-column:auto;font-size:clamp(2.5rem,5vw,4.5rem);color:var(--city-category-ink);text-wrap:balance}
.city-category-hero .page-count{grid-column:auto;margin-top:var(--s-3);color:#4f5a54;font-size:1rem}
.city-category-hero .page-count .num{color:var(--city-category-green-dark);font-size:1.2em}
.city-category-hero__description{max-width:48rem;margin-top:var(--s-5);color:#4f5a54;opacity:1}
.city-category-subs{margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid #cbd1cc}
.city-category-subs .sec-kicker{margin:0 0 var(--s-3);color:#59645e;letter-spacing:.1em}
.city-category-subs__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#cbd1cc;border:1px solid #cbd1cc}
.city-category-subs__list li{min-width:0;background:#fff}
.city-category-subs__link{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;width:100%;min-height:4rem;padding:0 var(--s-4);border:0;border-radius:0;background:#fff;color:var(--city-category-ink);font-size:.9rem;text-align:left}
.city-category-subs__link .chip-n{background:transparent;color:#68726c}
.city-category-subs__link .ico{width:1rem;height:1rem;color:var(--city-category-green);transition:transform var(--t-fast) var(--ease)}
a.city-category-subs__link:hover{background:var(--city-category-mint);color:var(--city-category-green-dark);transform:none}
a.city-category-subs__link:hover .ico{transform:translateX(3px)}
.city-category-body{padding-top:var(--s-5);padding-bottom:var(--s-9)}
.city-category-filter{top:var(--stuck);margin:0 0 var(--s-6);border:1px solid #d7dcd8;background:rgba(255,255,255,.97);box-shadow:0 8px 24px -22px rgba(0,0,0,.5);backdrop-filter:blur(10px)}
.city-category-filter .filter-row{min-height:4rem;padding-inline:var(--s-4)}
.city-category-filter .filter-label{color:#647069;letter-spacing:.08em}
.city-category-filter .filter-btn{min-height:2.5rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--city-category-ink);transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.city-category-filter .filter-btn:hover{border-color:#9cb8a9;background:#f5faf7;color:var(--city-category-green-dark);box-shadow:0 3px 10px -8px rgba(0,67,45,.65)}
.city-category-filter .filter-btn:focus-visible{outline:3px solid rgba(25,126,87,.2);outline-offset:2px;border-color:var(--city-category-green)}
.city-category-filter .filter-dd[open] .filter-btn{border-color:var(--city-category-green);background:var(--city-category-mint);color:var(--city-category-green-dark)}
.city-category-filter .filter-panel{top:calc(100% + var(--s-2));border:1px solid var(--line);border-radius:6px;box-shadow:0 24px 50px -24px rgba(0,0,0,.42)}
/* A closed <details> still lays its content out in Chromium, and in that
   hidden slot `left:0` resolves against the summary rather than the row: the
   panel measured 358px wide starting at x=115 on a 390 viewport, 83px past the
   edge. It painted nothing and the document never scrolled sideways, but an
   off-viewport box on every category page is the kind of thing that becomes a
   real scrollbar after the next layout change. Closed means not laid out. */
.filter-dd:not([open]) .filter-panel{display:none}
.city-category-filter .filter-panel .chip{border:1px solid var(--line);border-radius:4px;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.city-category-filter .filter-panel a.chip:hover{border-color:#a9c4b6;background:var(--city-category-mint);color:var(--city-category-green-dark);transform:none}
.city-category-filter .filter-panel a.chip:hover .chip-n{background:rgba(25,126,87,.1);color:var(--city-category-green-dark)}
.city-category-filter .filter-panel .chip.is-current{border-color:var(--city-category-green);background:var(--city-category-green);color:#fff}
.city-category-filter .filter-panel .chip.is-current:hover{border-color:var(--city-category-green-dark);background:var(--city-category-green-dark);color:#fff}
.city-category-filter .filter-reset{color:var(--city-category-green);text-decoration:underline}
.city-category-results{padding-top:0}
.city-results-head{display:flex;align-items:end;justify-content:space-between;gap:var(--s-5);margin-bottom:var(--s-5);padding-bottom:var(--s-4);border-bottom:1px solid #cfd5d0}
.city-results-head h2{font-family:var(--font-heading);font-size:2.25rem;line-height:1.08;letter-spacing:0}
.city-results-eyebrow,.city-category-results__eyebrow{margin:0 0 var(--s-2);color:var(--accent);font:700 .75rem/1.2 var(--font-text);letter-spacing:.1em;text-transform:uppercase}
.city-category-results .rows{gap:var(--s-3)}
.city-category-results .pager-link{border:1px solid var(--line);border-radius:6px}
.city-category-results .pager-link:hover,.city-category-results .pager-link.is-current{border-color:var(--city-category-green);background:var(--city-category-green);color:#fff}

/* ---------- business profile redesign ---------- */
.biz-band{--biz-green:#146b4a;--biz-deep:#0b3f2c;--biz-lime:#c8f169;--biz-mint:#e6f1eb;background:var(--biz-deep);color:#fff;border-radius:0;border-bottom:8px solid var(--biz-lime);padding-bottom:var(--s-7)}
.biz-band .crumbs,.biz-band .crumbs a,.biz-band .crumbs [aria-current]{color:#fff}.biz-band .crumb-sep{color:var(--biz-lime)}.biz-band .page-head{display:block;padding-top:var(--s-6)}
.city-business-eyebrow{display:inline-block;margin-bottom:var(--s-4);padding:var(--s-2) var(--s-3);background:var(--biz-lime);color:#17201c;font-size:.78rem;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.08em}
.biz-band .page-title{max-width:18ch;font-size:clamp(2.75rem,6vw,4.75rem);color:#fff;text-wrap:balance}
.biz-band .page-count{margin-top:var(--s-3);color:#d5e1da;font-size:var(--step-1)}
.biz-band .biz-meta{margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid rgba(255,255,255,.25)}
.biz-band .chip{border-color:rgba(255,255,255,.35);background:transparent;color:#fff}.biz-band a.chip:hover{border-color:var(--biz-lime);background:var(--biz-lime);color:#17201c;transform:none}
.city-business-profile{padding-bottom:var(--s-9)}.city-business-profile .biz-grid{min-width:0;max-width:100%;padding-top:var(--s-8)}
.city-business-profile .card{position:relative;min-width:0;max-width:100%;padding:var(--s-6);border:1px solid #d7dcd8;border-radius:6px;background:#fff;box-shadow:0 16px 36px -34px rgba(11,63,44,.55);overflow:hidden}
.city-business-profile .card::before{content:"";position:absolute;left:0;top:var(--s-5);bottom:var(--s-5);width:3px;background:var(--biz-green)}
.city-business-profile .card-kicker{color:var(--biz-green)}
.city-business-profile .card-title{font-family:var(--font-heading);font-size:clamp(1.75rem,3vw,2.4rem);line-height:1.08;letter-spacing:0}
.city-business-profile .card .prose{color:#3f4b44;line-height:1.7}
.city-business-profile .hours-state{display:inline-flex;padding:var(--s-2) var(--s-3);background:var(--biz-mint);color:var(--biz-deep);font-size:.85rem}
.city-business-profile .hours{table-layout:fixed}.city-business-profile .hours tr.is-today th,.city-business-profile .hours tr.is-today td{background:var(--biz-mint);color:var(--biz-deep)}
.city-business-profile .biz-aside{position:sticky;top:calc(var(--stuck) + var(--s-5))}
.city-contact-panel{padding:var(--s-5);border:1px solid #d7dcd8;border-radius:6px;background:#f4f7f5;box-shadow:0 16px 36px -34px rgba(11,63,44,.55)}
.city-contact-panel h2{margin-bottom:var(--s-4);font-family:var(--font-heading);font-size:1.6rem;line-height:1.1}
.city-business-profile .biz-actions{padding:0;border:0;background:transparent;box-shadow:none}
.city-business-profile .biz-actions .city-btn{justify-content:flex-start;width:100%}
.city-business-profile .landing{padding:var(--s-6);border-radius:6px;background:var(--biz-deep);color:#fff}
.city-business-profile .landing .card-kicker{color:var(--biz-lime)}
.city-business-profile .landing-title{font-family:var(--font-heading);font-size:2rem;line-height:1.08;letter-spacing:0}
.city-business-profile .landing .city-btn--contrast{background:var(--biz-lime);border-color:var(--biz-lime);color:#17201c}.city-business-profile .landing .city-btn--contrast:hover{background:#fff;border-color:#fff;color:#17201c}
.city-business-profile .related{margin-top:var(--s-8);padding-top:var(--s-7);border-top:1px solid #cfd5d0}
@media (max-width:63.99em){.city-category-subs__list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:47.99em){
  .hd-city{font-size:1.05rem}.hd-logo{width:1.75rem;height:1.75rem;flex-basis:1.75rem}.hd-link{margin-right:0;padding-inline:var(--s-1)}.lang-btn{padding-inline:var(--s-2)}
  .city-enroll-hero__inner{padding-bottom:var(--s-7)}.city-enroll-hero__copy{padding-top:var(--s-5)}.city-enroll-hero .page-title{font-size:2.55rem;overflow-wrap:anywhere}
  .city-enroll-promises{grid-template-columns:1fr}.city-enroll-promises li,.city-enroll-promises li:first-child{padding:var(--s-3) 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.25)}.city-enroll-promises li:last-child{border-bottom:0}
  .city-enroll-choices{padding-block:var(--s-7)}.city-enroll-offer{grid-template-columns:1fr}.city-enroll-plan{min-height:0;padding:var(--s-5)}.city-enroll-plan__intro{min-height:0}
  .city-enroll-process{padding-block:var(--s-7)}.city-enroll-process__head{display:block}.city-enroll-process__head .sec-title{margin-top:var(--s-3)}.city-enroll-steps{grid-template-columns:1fr}.city-enroll-steps .step{min-height:12rem}
  .biz-band{padding-bottom:var(--s-6)}.biz-band .page-head{padding-top:var(--s-5)}.biz-band .page-title{font-size:2.55rem;overflow-wrap:anywhere}.city-business-profile .biz-grid{padding-top:var(--s-5)}.city-business-profile .card{padding:var(--s-4)}.city-business-profile .biz-aside{position:static}
  .city-category-hero{padding-bottom:var(--s-7)}.city-category-hero__head{grid-template-columns:1fr;gap:var(--s-4);padding-top:var(--s-5)}
  .city-category-hero__icon{width:4.5rem;height:4.5rem}.city-category-hero__head .cat-ico{width:2.75rem;height:2.75rem}
  .city-category-hero .page-title{font-size:2.5rem}.city-category-subs{margin-top:var(--s-6)}.city-category-subs__list{grid-template-columns:1fr}
  .city-category-body{padding-top:var(--s-4)}.city-category-filter{margin-bottom:var(--s-5)}.city-category-filter .filter-row{padding-block:var(--s-2)}
  .city-category-filter .filter-count{display:none}.city-category-results__head{align-items:start;flex-direction:column;gap:var(--s-2)}
  .row{padding:var(--s-4)}.row .acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .row .acts li{min-width:0}.row .act{width:100%;padding-inline:var(--s-2)}
}
