:root {
  --paper: #f6f3ec;
  --paper-2: #ede8dc;
  --ink: #171815;
  --muted: #686960;
  --line: rgba(23,24,21,.15);
  --acid: #d7f34a;
  --coral: #ff765f;
  --blue: #7ea6ff;
  --lav: #c7a7ff;
  --butter: #ffd96a;
  --sage: #a8c9a0;
  --max: 1280px;
  --radius: 26px;
  --shadow: 0 24px 70px rgba(37,36,30,.11);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 10% 8%,rgba(255,79,163,.16),transparent 20%),radial-gradient(circle at 88% 10%,rgba(125,77,255,.13),transparent 22%),radial-gradient(circle at 74% 80%,rgba(77,217,194,.14),transparent 20%),linear-gradient(180deg,#fff9f1,#fff2e2 54%,#fff7ef);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.015em;overflow-x:hidden}
body.modal-open{overflow:hidden}
button,input,select{font:inherit}
a{color:inherit;text-decoration:none}
button{color:inherit}
.noise{position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.38'/%3E%3C/svg%3E")}
.section-shell{width:min(calc(100% - 48px),var(--max));margin-inline:auto}
.site-header{height:86px;position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - var(--max))/2));background:rgba(255,248,239,.86);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);box-shadow:0 12px 28px rgba(67,40,91,.05)}
.brand{display:flex;align-items:center;gap:11px;font-weight:800}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:12px;letter-spacing:-.08em}.brand-name{font-size:20px;letter-spacing:-.055em}.brand-name span{font-weight:450}
.desktop-nav{display:flex;gap:34px;font-size:14px;font-weight:650}.desktop-nav a{position:relative}.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--ink);transition:.3s}.desktop-nav a:hover:after{right:0}
.header-actions{display:flex;gap:9px;align-items:center}.ghost-button,.primary-button{display:inline-flex;align-items:center;justify-content:center;height:42px;padding:0 17px;border-radius:999px;font-size:13px;font-weight:750}.ghost-button{border:1px solid var(--line)}.primary-button{background:var(--ink);color:#fff}.primary-button span{margin-left:12px}
.menu-button{display:none;background:none;border:0;width:42px;height:42px}.menu-button span{display:block;width:23px;height:1.5px;background:var(--ink);margin:6px auto;transition:.25s}.mobile-nav{display:none}
.hero{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:64px;min-height:720px;padding-top:72px;padding-bottom:36px}.hero-copy{padding-top:37px}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800}.eyebrow{display:flex;align-items:center;gap:9px}.eyebrow-dot{width:8px;height:8px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 5px rgba(255,118,95,.16)}
.hero h1{font-size:clamp(62px,7.4vw,112px);line-height:.83;letter-spacing:-.075em;margin:34px 0 32px;font-weight:870}.hero h1 span{font-family:Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.065em}.hero-lead{font-size:19px;line-height:1.55;max-width:610px;color:#464840;margin:0 0 28px}
.hero-search{display:flex;align-items:center;max-width:670px;height:66px;padding:7px 7px 7px 19px;background:rgba(255,255,255,.82);border:1px solid rgba(125,77,255,.13);border-radius:999px;box-shadow:0 14px 34px rgba(125,77,255,.1)}.search-icon{font-size:27px;line-height:1;transform:rotate(-14deg);color:var(--violet)}.hero-search input{min-width:0;flex:1;height:100%;border:0;outline:0;background:transparent;padding:0 13px;font-size:16px}.hero-search button{height:50px;border:0;border-radius:999px;background:var(--ink);color:#fff;padding:0 24px;font-weight:800;cursor:pointer}.quick-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.quick-links button{background:transparent;border:1px solid var(--line);border-radius:999px;padding:8px 12px;font-size:12px;cursor:pointer}.quick-links button:hover{background:var(--ink);color:#fff}
.hero-stage{position:relative;min-height:540px;border-radius:42% 42% 35% 35% / 31% 31% 45% 45%;background:var(--acid);overflow:hidden;isolation:isolate}.hero-stage:before{content:"";position:absolute;width:330px;height:330px;border-radius:50%;background:var(--lav);top:-100px;right:-60px;filter:blur(2px);z-index:-2}.hero-stage:after{content:"";position:absolute;width:290px;height:290px;border-radius:50%;background:var(--coral);bottom:-120px;left:-90px;z-index:-2}.hero-orbit{position:absolute;border:1px solid rgba(23,24,21,.23);border-radius:50%;z-index:-1}.orbit-one{width:430px;height:430px;left:50%;top:48%;transform:translate(-50%,-50%) rotate(20deg)}.orbit-two{width:580px;height:260px;left:50%;top:47%;transform:translate(-50%,-50%) rotate(-35deg)}
.floating-card{position:absolute;background:rgba(255,255,255,.9);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.6);box-shadow:0 22px 55px rgba(45,45,28,.13);cursor:pointer}.card-main{left:9%;right:10%;top:24%;display:grid;grid-template-columns:142px 1fr auto;align-items:center;gap:19px;padding:16px;border-radius:25px;transform:rotate(-3deg);transition:.3s}.card-main:hover{transform:rotate(0deg) translateY(-5px)}.floating-art{height:150px;border-radius:17px;display:grid;place-items:center;background:var(--butter);overflow:hidden;position:relative}.floating-art:before,.floating-art:after{content:"";position:absolute;border:18px solid var(--ink);width:80px;height:80px;border-radius:50%;opacity:.92}.floating-art:before{left:-32px;top:23px}.floating-art:after{right:-26px;bottom:-23px}.floating-art span{position:relative;z-index:2;font-size:45px;font-weight:950;letter-spacing:-.09em}.floating-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.card-main h3{font-size:25px;letter-spacing:-.045em;margin:8px 0}.card-main p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.mini-arrow{align-self:end;width:42px;height:42px;border-radius:50%;background:var(--ink);color:#fff;border:0;cursor:pointer}.card-small{display:flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:16px;transition:.3s}.card-small:hover{transform:translateY(-4px)}.card-top{right:5%;top:7%;transform:rotate(5deg)}.card-bottom{left:4%;bottom:13%;transform:rotate(3deg)}.mini-avatar{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-weight:900;font-size:13px}.art-aroma{background:var(--lav)}.art-textile{background:var(--blue)}.card-small small,.card-small strong{display:block}.card-small small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:3px}.card-small strong{font-size:14px}.hero-stamp{position:absolute;right:9%;bottom:8%;width:88px;height:88px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;align-content:center;gap:2px;transform:rotate(-12deg);font-size:8px;font-weight:850;letter-spacing:.12em}.hero-stamp b{font-size:22px;line-height:1}
.hero-stats{grid-column:1 / -1;display:flex;justify-content:flex-start;gap:0;border-top:1px solid var(--line);padding-top:25px}.hero-stats div{display:flex;align-items:baseline;gap:9px;padding-right:36px;margin-right:36px;border-right:1px solid var(--line)}.hero-stats div:last-child{border:0}.hero-stats strong{font-size:29px;letter-spacing:-.05em}.hero-stats span{font-size:12px;color:var(--muted)}
.ticker{overflow:hidden;border-block:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:14px 0}.ticker-track{width:max-content;display:flex;gap:25px;align-items:center;animation:ticker 28s linear infinite;font-size:12px;letter-spacing:.12em;font-weight:800}.ticker-track b{color:var(--acid)}@keyframes ticker{to{transform:translateX(-50%)}}
.categories{padding-block:120px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:55px}.section-number{display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:999px;width:40px;height:25px;font-size:10px;margin-bottom:18px}.section-kicker{margin:0 0 14px;color:var(--muted)}.section-heading h2,.spotlight h2,.how h2,.cta h2{font-size:clamp(46px,5.4vw,82px);line-height:.94;letter-spacing:-.065em;margin:0;font-weight:820}.section-heading h2 em,.spotlight h2 em,.how h2 em,.cta h2 em{font-family:Georgia,serif;font-weight:400}.heading-note{max-width:360px;margin:0 0 7px;font-size:15px;line-height:1.6;color:var(--muted)}
.category-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:280px 280px;gap:12px}.category-tile{position:relative;border:1px solid rgba(23,24,21,.13);border-radius:24px;padding:20px;text-align:left;overflow:hidden;cursor:pointer;transition:transform .3s,box-shadow .3s}.category-tile:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.tile-large{grid-row:1 / 3;background:var(--butter)}.tile-food{background:var(--coral)}.tile-accessories{background:var(--blue)}.tile-deco{background:var(--lav)}.tile-fashion{background:var(--sage)}.category-index{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.category-illustration{position:absolute;inset:45px 20px 70px;display:grid;place-items:center;font-size:clamp(70px,8vw,130px);font-family:Georgia,serif}.tile-large .category-illustration{font-size:180px}.icon-hands:before,.icon-food:before,.icon-jewel:before,.icon-home:before,.icon-fashion:before{content:"";position:absolute;width:140px;height:140px;border-radius:50%;border:2px solid var(--ink)}.icon-hands:before{width:280px;height:280px}.category-label{position:absolute;left:20px;right:20px;bottom:18px;display:grid;grid-template-columns:27px 1fr auto;align-items:center;border-top:1px solid rgba(23,24,21,.28);padding-top:14px}.category-label small{font-size:10px}.category-label strong{font-size:21px;letter-spacing:-.035em}.category-label span{font-size:22px}
.spotlight{padding-bottom:120px}.spotlight-card{min-height:680px;background:var(--ink);color:#fff;border-radius:34px;padding:64px;display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;overflow:hidden;position:relative}.spotlight-card:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:var(--acid);filter:blur(0);right:-170px;top:-100px}.light{border-color:rgba(255,255,255,.25)}.section-kicker.light{color:#b9baaf}.spotlight-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.spotlight h2{font-size:clamp(48px,5vw,75px)}.spotlight-copy>p:not(.section-kicker){max-width:490px;color:#bcbeb6;line-height:1.7;margin:28px 0}.outline-light{border:1px solid rgba(255,255,255,.4);color:#fff;background:transparent;border-radius:999px;padding:14px 18px;font-weight:750;cursor:pointer}.outline-light span{margin-left:22px}.outline-light:hover{background:#fff;color:var(--ink)}
.spotlight-visual{display:flex;align-items:center;justify-content:center;position:relative}.maker-poster{position:relative;width:min(100%,500px);aspect-ratio:.84;background:var(--acid);color:var(--ink);padding:24px;border-radius:7px;transform:rotate(4deg);box-shadow:0 40px 80px rgba(0,0,0,.3);overflow:hidden}.poster-top,.poster-bottom{font-size:10px;font-weight:900;letter-spacing:.14em;position:relative;z-index:3}.poster-monogram{font-size:clamp(150px,17vw,250px);font-weight:950;letter-spacing:-.12em;line-height:.82;position:absolute;left:18px;top:31%;z-index:2}.poster-shape{position:absolute;border-radius:50%}.shape-a{width:280px;height:280px;background:var(--lav);right:-75px;top:58px}.shape-b{width:240px;height:240px;background:var(--coral);left:-95px;bottom:-60px}.poster-bottom{position:absolute;left:24px;right:24px;bottom:24px;display:flex;justify-content:space-between}.spotlight-note{position:absolute;bottom:6%;left:2%;background:#fff;color:var(--ink);border-radius:14px;padding:13px 16px;font-family:Georgia,serif;font-size:17px;transform:rotate(-4deg);box-shadow:0 15px 40px rgba(0,0,0,.2)}.spotlight-note span{font-family:Inter,sans-serif;text-transform:uppercase;letter-spacing:.08em;font-size:8px;color:var(--muted)}
.directory{padding-block:110px}.directory-heading{margin-bottom:35px}.directory-meta{align-self:flex-end;border-bottom:1px solid var(--ink);padding-bottom:6px;font-size:12px;color:var(--muted)}.directory-meta span{font-weight:850;color:var(--ink)}.filter-panel{display:grid;grid-template-columns:minmax(280px,1.6fr) 1fr auto 1fr;gap:8px;padding:10px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.5)}.filter-search{display:flex;align-items:center;background:#fff;border-radius:11px;padding:0 14px}.filter-search span{font-size:22px}.filter-search input{width:100%;border:0;outline:0;background:transparent;padding:14px 10px}.filter-panel select{appearance:none;border:0;background:#fff;border-radius:11px;padding:0 35px 0 14px;background-image:linear-gradient(45deg,transparent 50%,#777 50%),linear-gradient(135deg,#777 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;font-size:12px;font-weight:700}.toggle-filter{display:flex;align-items:center;gap:10px;padding:0 13px;background:#fff;border-radius:11px;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer}.toggle-filter input{display:none}.toggle-ui{position:relative;width:35px;height:21px;border-radius:999px;background:#d8d8d2;transition:.2s}.toggle-ui:after{content:"";position:absolute;width:15px;height:15px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.2s}.toggle-filter input:checked+.toggle-ui{background:var(--ink)}.toggle-filter input:checked+.toggle-ui:after{left:17px}.chips-scroll{display:flex;gap:7px;margin:16px 0 28px;overflow:auto;padding-bottom:4px;scrollbar-width:none}.chips-scroll::-webkit-scrollbar{display:none}.filter-chip{white-space:nowrap;border:1px solid var(--line);background:transparent;border-radius:999px;padding:9px 14px;font-size:12px;font-weight:700;cursor:pointer}.filter-chip.active,.filter-chip:hover{background:var(--ink);color:#fff}
.entrepreneur-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.entrepreneur-card{position:relative;min-width:0;background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:22px;overflow:hidden;transition:transform .28s,box-shadow .28s;box-shadow:0 10px 24px rgba(67,40,91,.07)}.entrepreneur-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.card-visual{height:230px;padding:16px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.card-visual:before,.card-visual:after{content:"";position:absolute;border:1.5px solid rgba(23,24,21,.7);border-radius:50%}.card-visual:before{width:125px;height:125px}.card-visual:after{width:175px;height:70px;transform:rotate(35deg)}.card-visual .monogram{font-size:64px;font-weight:950;letter-spacing:-.1em;position:relative;z-index:2}.card-visual .micro-tag{position:absolute;top:14px;left:14px;border:1px solid rgba(23,24,21,.5);border-radius:999px;padding:5px 8px;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;z-index:3}.favorite{position:absolute;right:13px;top:13px;z-index:4;border:0;background:rgba(255,255,255,.84);width:35px;height:35px;border-radius:50%;cursor:pointer;font-size:16px;display:grid;place-items:center}.favorite.active{background:var(--ink);color:#fff}.entrepreneur-body{padding:17px 17px 18px}.card-category{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800}.entrepreneur-body h3{font-size:20px;letter-spacing:-.04em;margin:7px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.handle{font-size:11px;color:var(--muted)}.description{font-size:12px;color:#62645c;line-height:1.5;min-height:54px;margin:14px 0}.card-meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:13px;gap:8px}.location{font-size:10px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fair-badge{font-size:9px;border-radius:999px;padding:5px 7px;background:var(--acid);font-weight:800;white-space:nowrap}.profile-link{border:0;background:none;padding:0;font-size:17px;cursor:pointer}.empty-state{text-align:center;padding:80px 20px;border:1px dashed var(--line);border-radius:24px;background:rgba(255,255,255,.6)}.empty-state div{font-size:45px}.empty-state h3{font-size:30px;margin:12px 0 5px}.empty-state p{color:var(--muted)}.empty-state button{border:0;background:var(--ink);color:#fff;border-radius:999px;padding:11px 17px;cursor:pointer}.load-wrap{text-align:center;margin-top:34px}.load-more{display:inline-flex;align-items:center;background:rgba(255,255,255,.58);border:1px solid var(--line);border-radius:999px;padding:13px 18px;font-weight:800;cursor:pointer;box-shadow:0 10px 22px rgba(67,40,91,.06)}.load-more span{margin-left:15px}.load-more:hover{background:var(--ink);color:#fff}
.how{padding:110px 0 130px;display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;border-top:1px solid var(--line)}.how h2{font-size:clamp(47px,5vw,74px)}.how-steps{display:flex;flex-direction:column}.how-steps article{display:grid;grid-template-columns:50px 170px 1fr;gap:18px;padding:27px 0;border-bottom:1px solid var(--line);align-items:start}.how-steps article>span{font-size:10px;border:1px solid var(--line);border-radius:50%;width:28px;height:28px;display:grid;place-items:center}.how-steps h3{font-size:22px;margin:0}.how-steps p{margin:2px 0 0;color:var(--muted);line-height:1.6;font-size:13px}
.cta{padding-bottom:100px}.cta-inner{min-height:520px;border-radius:32px;background:var(--coral);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:55px;position:relative;overflow:hidden}.cta-inner:before,.cta-inner:after{content:"";position:absolute;border:1px solid rgba(23,24,21,.35);border-radius:50%}.cta-inner:before{width:620px;height:620px}.cta-inner:after{width:880px;height:340px;transform:rotate(24deg)}.cta-inner>*{position:relative;z-index:2}.cta-spark{font-size:30px}.cta-inner>p:first-of-type{text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:850;margin:15px 0}.cta h2{font-size:clamp(52px,6vw,88px)}.cta-copy{max-width:520px;line-height:1.6;margin:22px 0!important;text-transform:none!important;letter-spacing:0!important;font-size:14px!important;font-weight:500!important}.cta-button{background:var(--ink);color:#fff;border-radius:999px;padding:14px 20px;font-weight:800;font-size:13px}.cta-button span{margin-left:22px}
footer{background:var(--ink);color:#fff}.footer-top{min-height:190px;display:grid;grid-template-columns:1fr 1fr auto;gap:30px;align-items:center}.footer-brand .brand-mark{background:var(--paper);color:var(--ink)}.footer-top p{font-size:13px;line-height:1.6;color:#aaa;max-width:330px}.back-top{font-size:12px;border-bottom:1px solid #777;padding-bottom:5px}.footer-bottom{border-top:1px solid #353631;padding:20px 0 26px;display:flex;justify-content:space-between;color:#777;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.footer-bottom div{display:flex;gap:18px}
.profile-modal{width:min(720px,calc(100% - 30px));border:0;border-radius:28px;padding:0;background:var(--paper);box-shadow:0 35px 100px rgba(0,0,0,.35)}.profile-modal::backdrop{background:rgba(23,24,21,.55);backdrop-filter:blur(7px)}.modal-close{position:absolute;right:17px;top:17px;z-index:4;width:40px;height:40px;border-radius:50%;border:0;background:#fff;cursor:pointer;font-size:24px}.modal-hero{min-height:250px;padding:45px;display:flex;align-items:flex-end;position:relative;overflow:hidden}.modal-hero:before{content:"";position:absolute;width:270px;height:270px;border:2px solid var(--ink);border-radius:50%;right:-50px;top:-70px}.modal-hero b{font-size:75px;letter-spacing:-.1em;position:relative}.modal-body{padding:30px 34px 36px}.modal-body .category-line{text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:850;color:var(--muted)}.modal-body h2{font-size:38px;letter-spacing:-.055em;margin:8px 0 4px}.modal-body .modal-handle{color:var(--muted);font-size:13px}.modal-body p{line-height:1.65;color:#55584f}.modal-pills{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.modal-pills span{font-size:10px;border:1px solid var(--line);border-radius:999px;padding:7px 10px}.modal-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:18px}.modal-footer small{color:var(--muted)}.modal-footer a{background:var(--ink);color:#fff;border-radius:999px;padding:10px 15px;font-size:11px;font-weight:800}
.reveal{opacity:1;transform:none;transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}.reveal-delay-1{transition-delay:.12s}.reveal-delay-2{transition-delay:.22s}
@media(max-width:1050px){.desktop-nav{display:none}.menu-button{display:block}.mobile-nav{position:fixed;left:16px;right:16px;top:76px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);flex-direction:column;gap:17px}.mobile-nav.open{display:flex}.hero{grid-template-columns:1fr;min-height:auto}.hero-stage{min-height:520px}.hero-copy{padding-top:10px}.hero h1{font-size:clamp(72px,12vw,116px)}.category-grid{grid-template-columns:1fr 1fr;grid-template-rows:360px 260px 260px}.tile-large{grid-row:auto;grid-column:1/-1}.spotlight-card{grid-template-columns:1fr;padding:45px}.maker-poster{max-width:460px}.entrepreneur-grid{grid-template-columns:repeat(3,1fr)}.filter-panel{grid-template-columns:1.5fr 1fr}.toggle-filter{min-height:47px}.how{grid-template-columns:1fr;gap:35px}}
@media(max-width:720px){.section-shell{width:min(calc(100% - 28px),var(--max))}.site-header{height:70px;padding-inline:14px}.desktop-only{display:none}.hero{padding-top:36px;gap:32px}.hero-copy{padding-top:0}.eyebrow{font-size:10px}.hero h1{font-size:clamp(60px,18vw,90px);margin:26px 0 24px}.hero-lead{font-size:16px}.hero-search{height:59px;padding-left:13px}.hero-search button{padding:0 16px}.hero-stage{min-height:425px}.card-main{left:6%;right:6%;top:25%;grid-template-columns:90px 1fr auto;gap:11px}.floating-art{height:100px}.floating-art span{font-size:32px}.card-main h3{font-size:18px;margin:5px 0}.card-main p{font-size:10px}.card-top{right:3%;top:5%}.card-bottom{left:3%;bottom:8%}.hero-stamp{display:none}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding-top:18px}.hero-stats div{display:block;padding-right:10px;margin-right:10px}.hero-stats strong,.hero-stats span{display:block}.hero-stats strong{font-size:24px}.hero-stats span{font-size:9px;margin-top:3px}.categories,.directory{padding-block:80px}.section-heading{display:block;margin-bottom:35px}.section-heading h2{font-size:48px}.heading-note{margin-top:20px}.category-grid{display:flex;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:7px}.category-tile{min-width:84vw;height:380px;scroll-snap-align:center}.tile-large{grid-column:auto}.tile-large .category-illustration{font-size:140px}.spotlight{padding-bottom:80px}.spotlight-card{padding:34px 23px;min-height:auto;border-radius:25px}.spotlight h2{font-size:46px}.spotlight-copy>p:not(.section-kicker){font-size:13px}.spotlight-visual{padding-top:20px}.maker-poster{width:89%}.spotlight-note{left:0}.directory-heading{display:block}.directory-meta{display:inline-block;margin-top:20px}.filter-panel{grid-template-columns:1fr}.filter-search{min-height:50px}.filter-panel select,.toggle-filter{min-height:48px}.entrepreneur-grid{grid-template-columns:1fr 1fr}.card-visual{height:175px}.entrepreneur-body{padding:14px}.entrepreneur-body h3{font-size:17px}.description{display:none}.card-meta{margin-top:13px;display:grid;grid-template-columns:1fr auto}.profile-link{display:none}.how{padding:80px 0 95px}.how h2{font-size:46px}.how-steps article{grid-template-columns:42px 1fr}.how-steps p{grid-column:2}.cta{padding-bottom:60px}.cta-inner{min-height:500px;padding:35px 20px}.cta h2{font-size:52px}.footer-top{grid-template-columns:1fr;gap:15px;padding-block:35px}.footer-bottom{display:block}.footer-bottom div{margin-top:12px}.profile-modal{border-radius:21px}.modal-hero{min-height:190px;padding:28px}.modal-body{padding:23px}.modal-body h2{font-size:30px}}
@media(max-width:430px){.entrepreneur-grid{grid-template-columns:1fr}.card-visual{height:210px}.description{display:block;min-height:auto}.quick-links{display:none}.hero-stage{min-height:390px}.card-top{display:none}.category-tile{min-width:90vw}.hero h1{font-size:60px}}

/* ───────────────────────────────────────────────────────────────────────────
   Agregados sobre el rediseño para la data real.
   El mockup dibuja cada marca con un monograma de color; en la base hay 465
   fotos de perfil cargadas. Se usa la foto cuando existe y el monograma cuando
   no, así la grilla no pierde lo que ya tenemos ni se rompe con los que faltan.
   ─────────────────────────────────────────────────────────────────────────── */

.card-visual.has-photo { padding: 0; }
.card-visual.has-photo::before,
.card-visual.has-photo::after { display: none; }
.card-visual .photo {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block;
}
/* La píldora y el corazón tienen que leerse sobre cualquier foto. */
.card-visual.has-photo .micro-tag {
  background: rgba(255, 255, 255, .92); border-color: transparent;
  backdrop-filter: blur(6px);
}
.card-visual.has-photo .favorite { box-shadow: 0 2px 10px rgba(0, 0, 0, .18); }

/* Fichas de más allá del tope inicial: las dibuja el servidor pero arrancan
   ocultas, así "Ver más" no tiene que pedir nada y el buscador igual las
   encuentra. `display:none` va con !important porque la grilla las pone flex. */
.entrepreneur-card[hidden] { display: none !important; }

/* La feria: en el mockup era una píldora suelta; con datos reales conviene
   decir dónde y cuándo, que es el motivo para venir a esta página. */
.card-fair {
  display: block; margin-top: 11px; padding: 9px 11px;
  background: var(--acid); border-radius: 12px;
}
.card-fair small {
  display: block; font-size: 8px; text-transform: uppercase;
  letter-spacing: .1em; font-weight: 850; opacity: .65;
}
.card-fair strong {
  display: block; font-size: 11px; line-height: 1.35; margin-top: 2px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Modal con foto real. */
.modal-hero.has-photo { padding: 0; min-height: 260px; }
.modal-hero.has-photo img { width: 100%; height: 260px; object-fit: cover; display: block; }
.modal-hero.has-photo::before { display: none; }

.modal-fair {
  background: var(--acid); border-radius: 14px; padding: 13px 15px; margin: 18px 0 0;
}
.modal-fair small { text-transform: uppercase; letter-spacing: .1em; font-size: 9px; font-weight: 850; }
.modal-fair strong { display: block; font-size: 15px; margin-top: 3px; letter-spacing: -.02em; }

/* Aviso de perfil incompleto: hay fichas sin descripción y el hueco se notaba. */
.description.is-empty { color: #9a9c93; font-style: italic; }

/* Nombres reales: en el prototipo eran cortos. "Andreaandrianoaccesorios" se
   salía de la tarjeta del hero y el rótulo de las chicas se cortaba. */
/* Sin min-width:0 la columna del medio no achica y empuja la flecha fuera de
   la tarjeta: los títulos reales son mucho más largos que los del prototipo. */
.card-main > div { min-width: 0; }
.card-main h3 {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.card-main p {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.card-small { max-width: 62%; }
.card-small > span:last-child { min-width: 0; }
.card-small small, .card-small strong {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* El nombre en la ficha del directorio es un link; hereda el estilo del h3. */
.entrepreneur-body h3 a { display: block; overflow: hidden; text-overflow: ellipsis; }

/* Desbordes en móvil que aparecieron con el contenido real:

   1) Los <select> no achican por debajo del texto de su opción más larga, y las
      zonas reales traen el conteo ("Lomas de Zamora (12)"). En una grilla, una
      columna no baja de su min-content, así que el panel entero se pasaba de
      ancho y arrastraba la página.
   2) El pie del prototipo tenía dos links en un flex sin wrap; acá hay cinco. */
.filter-panel > * { min-width: 0; }
.filter-panel select { width: 100%; max-width: 100%; text-overflow: ellipsis; }
.filter-search { min-width: 0; }
.filter-search input { min-width: 0; }
.footer-bottom div { flex-wrap: wrap; }
/* En la portada los atajos son enlaces, no botones: mismo aspecto. */
.quick-links a {
  display: inline-block; background: transparent; border: 1px solid var(--line);
  border-radius: 999px; padding: 8px 12px; font-size: 12px;
}
.quick-links a:hover { background: var(--ink); color: #fff; }

/* ═══════════════════════════════════════════════════════════════════════════
   FUSIÓN CON LA IDENTIDAD GROOVE
   ═══════════════════════════════════════════════════════════════════════════
   La estructura del rediseño con los colores de siempre. Los tokens del
   prototipo se mapean a los de `subdomain-feed.css` / `home-groove.css`, así
   la portada y el directorio se sienten del mismo lugar que los subdominios.

   El verde ácido del prototipo era lo más ajeno a la marca: el campo grande
   del hero pasa al degradado violeta→rosa, que es la firma de EmprenZona, y
   los acentos chicos al amarillo, que sobre texto oscuro se lee bien.
   ═════════════════════════════════════════════════════════════════════════ */
:root {
  --paper:  #fff8ef;   /* --g-bg     */
  --paper-2:#ffedce;
  --ink:    #22152d;   /* --g-text   */
  --muted:  #6b6276;   /* --g-muted  */
  --line:   rgba(52, 22, 77, .12);

  --violet: #7d4dff;
  --pink:   #ff4fa3;
  --coral:  #ff7a59;
  --orange: #ffb703;
  --yellow: #ffd84d;
  --mint:   #4dd9c2;
  --sky:    #66b7ff;
  --lila:   #c9b6ff;

  /* Los nombres del prototipo, apuntando a la paleta de la marca. */
  --acid:   var(--yellow);
  --blue:   var(--sky);
  --lav:    var(--lila);
  --butter: var(--orange);
  --sage:   var(--mint);

  --shadow: 0 18px 46px rgba(67, 40, 91, .14);
}

/* El campo del hero: degradado de marca en vez del verde ácido. */
.hero-stage { background: linear-gradient(140deg, var(--violet), var(--pink) 88%); }
.hero-stage:before { background: rgba(255, 255, 255, .22); }
.hero-stage:after  { background: var(--orange); opacity: .85; }
.hero-orbit { border-color: rgba(255, 255, 255, .42); }
.hero-stamp { border-color: rgba(255, 255, 255, .8); color: #fff; }

/* El punto del antetítulo y el subrayado de la nav, en rosa de marca. */
.eyebrow-dot { background: var(--pink); box-shadow: 0 0 0 5px rgba(255, 79, 163, .18); }

/* Ticker: fondo de marca en vez de negro puro. */
.ticker { background: var(--ink); border-color: var(--ink); }
.ticker-track b { color: var(--yellow); }

/* Bloque oscuro y CTA. */
.spotlight-card { background: linear-gradient(150deg, var(--ink), #3d1b57 68%, #5a2a7d); }
.spotlight-card:after { background: var(--pink); opacity: .55; filter: blur(10px); }
.cta-inner { background: linear-gradient(135deg, var(--violet), var(--pink)); color: #fff; }
.cta-inner:before, .cta-inner:after { border-color: rgba(255, 255, 255, .34); }
.cta-button { background: #fff; color: var(--ink); }
.cta-button:hover { background: var(--ink); color: #fff; }

/* Chips y botones oscuros: el violeta rinde mejor que el negro. */
.filter-chip.active, .filter-chip:hover,
.quick-links button:hover, .quick-links a:hover,
.load-more:hover { background: var(--violet); border-color: var(--violet); color: #fff; }
.toggle-filter input:checked + .toggle-ui { background: var(--violet); }
.favorite.active { background: var(--pink); }
.primary-button { background: var(--violet); }
.primary-button:hover { background: var(--pink); }
.hero-search button { background: var(--violet); }
.hero-search button:hover { background: var(--pink); }
.brand-mark { background: linear-gradient(135deg, var(--violet), var(--pink)); color: #fff; }
.empty-state button { background: var(--violet); }

/* El bloque de feria: amarillo de marca, no lima. */
.card-fair, .modal-fair, .fair-badge { background: var(--yellow); }

/* El logo de la marca, que estaba reemplazado por las letras "EZ". */
/* El <picture> también necesita límite: sin eso toma el ancho natural del PNG
   (839px) y rompe el header entero. */
.brand picture { display: block; line-height: 0; }
.brand-logo { display: block; height: 38px; width: auto; max-width: 220px; }
.footer-brand { gap: 10px; }
.footer-brand img { height: 34px; width: auto; }
.footer-brand .brand-name { color: #fff; }
@media (max-width: 720px) { .brand-logo { height: 32px; } }

/* ── Home principal con vibra subdominio ─────────────────────────────── */
.hero::before {
  content: "";
  position: absolute;
  inset: 18px -3vw auto auto;
  width: 34vw;
  height: 34vw;
  max-width: 460px;
  max-height: 460px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,79,163,.22), transparent 62%);
  pointer-events: none;
  z-index: -1;
}
.categories.section-shell,
.directory.section-shell,
.how.section-shell {
  position: relative;
}
.section-number {
  background: rgba(255,255,255,.62);
  box-shadow: 0 8px 18px rgba(67,40,91,.05);
}
.section-kicker { color: #7d7190; }
.section-heading h2 em,
.spotlight h2 em,
.how h2 em,
.cta h2 em {
  color: var(--violet);
}
.spotlight h2 em,
.cta h2 em { color: #fff; }
.has-event-art {
  align-items: stretch;
  justify-content: flex-start;
  flex-direction: column;
  gap: 10px;
  padding: 18px;
  color: #fff;
  isolation: isolate;
}
.has-event-art::before,
.has-event-art::after {
  border-color: rgba(255,255,255,.34);
  z-index: -1;
}
.has-event-art::before { width: 190px; height: 190px; right: -44px; top: -54px; }
.has-event-art::after { width: 260px; height: 110px; right: -64px; bottom: 16px; transform: rotate(-24deg); }
.event-art-pink { background: linear-gradient(135deg, #ff4fa3, #7d4dff) !important; }
.event-art-violet { background: linear-gradient(135deg, #7d4dff, #ff7a59) !important; }
.event-art-sky { background: linear-gradient(135deg, #66b7ff, #7d4dff) !important; }
.event-art-mint { background: linear-gradient(135deg, #4dd9c2, #7d4dff) !important; }
.event-art-orange { background: linear-gradient(135deg, #ffb703, #ff4fa3) !important; }
.has-event-art .micro-tag,
.floating-art .event-art-date {
  color: var(--ink);
  background: rgba(255,255,255,.86);
  border-color: transparent;
  box-shadow: 0 8px 18px rgba(0,0,0,.08);
}
.event-art-spark {
  position: absolute;
  top: 18px;
  right: 18px;
  font-size: 26px;
  color: var(--yellow);
  text-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.event-art-date {
  margin-top: auto;
  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: end;
  gap: 6px;
  width: max-content;
  line-height: .8;
}
.event-art-date strong {
  font-size: clamp(48px, 7vw, 72px);
  letter-spacing: -.09em;
  font-weight: 950;
}
.event-art-date small {
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .09em;
}
.event-art-title {
  max-width: 86%;
  font-size: 22px;
  line-height: .98;
  letter-spacing: -.05em;
  text-wrap: balance;
}
.event-art-place {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-top: auto;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  color: rgba(255,255,255,.92);
  font-size: 10px;
  font-weight: 850;
}
.floating-art.has-event-art-hero {
  align-items: end;
  justify-items: start;
  padding: 14px;
  background: linear-gradient(135deg, var(--orange), var(--pink)) !important;
  color: #fff;
}
.floating-art.has-event-art-hero::before,
.floating-art.has-event-art-hero::after { border-color: rgba(255,255,255,.38); }
.floating-art .event-art-date {
  position: relative;
  z-index: 2;
  padding: 8px 10px;
  border-radius: 14px;
}
.floating-art .event-art-date strong { font-size: 34px; }
.floating-art .event-art-date small { margin-bottom: 4px; font-size: 9px; }
.floating-art em {
  position: relative;
  z-index: 2;
  display: block;
  max-width: 100%;
  margin-top: 8px;
  font: 850 13px/1.05 Inter, sans-serif;
  letter-spacing: -.03em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.quick-links a {
  background: rgba(255,255,255,.68);
  border-color: rgba(125,77,255,.12);
  box-shadow: 0 8px 18px rgba(67,40,91,.05);
}
.category-tile {
  box-shadow: 0 10px 24px rgba(67,40,91,.07);
}
@media(max-width:430px){
  .quick-links{display:flex;overflow-x:auto;flex-wrap:nowrap;margin-inline:-14px;padding-inline:14px;scrollbar-width:none}.quick-links::-webkit-scrollbar{display:none}.quick-links a{flex:0 0 auto}
  .has-event-art{min-height:210px}.event-art-title{font-size:21px}.event-art-date strong{font-size:56px}
}

/* ── Iteración: iconos coloridos, secciones con ritmo y CTAs claros ── */
.hero-icon-row {
  display: flex;
  gap: 10px;
  margin-top: 18px;
  align-items: center;
}
.color-icon,
.section-icon,
.step-icon {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 16px;
  color: #fff;
  font-style: normal;
  font-weight: 900;
  box-shadow: 0 14px 28px rgba(67,40,91,.13), inset 0 1px 0 rgba(255,255,255,.35);
}
.color-icon--pink,
.section-icon--agenda { background: linear-gradient(135deg, #ff4fa3, #ff7a59); }
.color-icon--violet,
.section-icon--zones { background: linear-gradient(135deg, #7d4dff, #b66cff); }
.color-icon--mint,
.section-icon--how { background: linear-gradient(135deg, #4dd9c2, #66b7ff); }
.color-icon--orange,
.section-icon--rubros { background: linear-gradient(135deg, #ffb703, #ff7a59); }
.section-icon--makers { background: linear-gradient(135deg, #ffd84d, #ff4fa3); }
.section-icon {
  width: 46px;
  height: 46px;
  margin: 0 0 16px 8px;
  vertical-align: top;
}
.section-icon.light {
  box-shadow: 0 18px 34px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.4);
}
.section-band {
  position: relative;
  isolation: isolate;
}
.section-band::before {
  content: "";
  position: absolute;
  inset: 0 calc(50% - 50vw);
  z-index: -1;
  pointer-events: none;
}
.section-band--agenda::before {
  background:
    radial-gradient(circle at 12% 12%, rgba(255,79,163,.18), transparent 22%),
    radial-gradient(circle at 92% 22%, rgba(125,77,255,.12), transparent 24%),
    linear-gradient(180deg, rgba(255,238,247,.96), rgba(255,248,239,.78));
  border-block: 1px solid rgba(125,77,255,.08);
}
.section-band--zones {
  color: #fff;
  padding-top: 96px !important;
  padding-bottom: 112px;
  margin-top: 26px;
}
.section-band--zones::before {
  background:
    radial-gradient(circle at 10% 20%, rgba(255,79,163,.36), transparent 22%),
    radial-gradient(circle at 90% 18%, rgba(77,217,194,.26), transparent 26%),
    linear-gradient(135deg, #22152d, #3b1b55 55%, #7d4dff);
}
.section-band--zones .section-kicker,
.section-band--zones .heading-note { color: rgba(255,255,255,.78); }
.section-band--zones .section-number { color: #fff; border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.12); }
.section-band--zones .section-heading h2 em { color: var(--yellow); }
.section-band--rubros {
  padding-top: 88px !important;
  padding-bottom: 82px;
}
.section-band--rubros::before {
  background:
    radial-gradient(circle at 18% 18%, rgba(77,217,194,.18), transparent 24%),
    radial-gradient(circle at 84% 70%, rgba(255,183,3,.18), transparent 24%),
    linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,238,206,.42));
  border-block: 1px solid rgba(52,22,77,.06);
}
.section-band--how {
  margin-top: 0;
  padding-top: 96px;
  border-top: 0;
}
.section-band--how::before {
  background:
    radial-gradient(circle at 10% 18%, rgba(255,79,163,.12), transparent 24%),
    radial-gradient(circle at 88% 30%, rgba(125,77,255,.12), transparent 26%),
    linear-gradient(180deg, #fff8ef, #fff1dc);
}
.section-band--spotlight { padding-top: 110px; margin-top: 0; }
.section-band--spotlight::before {
  background: linear-gradient(180deg, rgba(255,248,239,0), rgba(255,248,239,.7));
}
.card-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
}
.card-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: -.01em;
  color: var(--violet);
  background: rgba(125,77,255,.08);
  border: 1px solid rgba(125,77,255,.13);
}
.card-action--primary {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(135deg, var(--violet), var(--pink));
  box-shadow: 0 10px 20px rgba(125,77,255,.18);
}
.entrepreneur-card:hover .card-action--primary {
  background: linear-gradient(135deg, var(--pink), var(--violet));
}
.tile-action {
  position: absolute;
  right: 18px;
  top: 18px;
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  color: var(--ink);
  font-size: 11px;
  font-weight: 900;
  box-shadow: 0 12px 24px rgba(67,40,91,.12);
}
.how-steps article {
  grid-template-columns: 50px 54px minmax(150px, 190px) 1fr;
  align-items: center;
}
.how-steps article > span { background: rgba(255,255,255,.7); }
.how-steps .step-icon {
  width: 44px;
  height: 44px;
  border-radius: 15px;
  background: linear-gradient(135deg, var(--violet), var(--pink));
}
.how-steps article:nth-child(2) .step-icon { background: linear-gradient(135deg, var(--orange), var(--pink)); }
.how-steps article:nth-child(3) .step-icon { background: linear-gradient(135deg, var(--mint), var(--sky)); }
@media (min-width: 900px) {
  .section-band--agenda::before,
  .section-band--zones::before,
  .section-band--rubros::before {
    background-attachment: fixed, fixed, scroll;
  }
}
@media (max-width: 720px) {
  .hero-icon-row { margin-top: 14px; gap: 8px; }
  .color-icon { width: 38px; height: 38px; border-radius: 14px; }
  .section-icon { width: 40px; height: 40px; border-radius: 14px; margin-bottom: 14px; }
  .section-band--zones { padding-top: 74px !important; padding-bottom: 86px; margin-top: 10px; }
  .section-band--rubros { padding-top: 72px !important; padding-bottom: 68px; }
  .card-actions { margin-top: 12px; }
  .card-action { flex: 1 1 auto; min-height: 38px; }
  .tile-action { left: 18px; right: auto; top: 18px; }
  .how-steps article { grid-template-columns: 42px 48px 1fr; gap: 12px; }
  .how-steps h3 { grid-column: 3; }
  .how-steps p { grid-column: 2 / -1; }
  .how-steps .step-icon { width: 40px; height: 40px; }
}

/* Ajuste mobile: el CTA de zona no debe pisar el contador de ferias. */
@media (max-width: 720px) {
  .tile-action { left: auto; right: 18px; top: 18px; }
}

/* ── Ajuste: barrios con fotos reales y sin numeración visible ── */
.section-number { display: none !important; }
.zone-card {
  min-height: 280px;
  padding: 20px;
  color: #fff;
  border-color: rgba(255,255,255,.18);
  background: linear-gradient(135deg, #3b1b55, #7d4dff);
  box-shadow: 0 22px 44px rgba(13,7,25,.22);
}
.zone-card.has-zone-photo { background: #20102f; }
.zone-photo,
.zone-photo-wash {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.zone-photo {
  object-fit: cover;
  transform: scale(1.02);
  transition: transform .45s ease, filter .45s ease;
}
.zone-card:hover .zone-photo { transform: scale(1.07); filter: saturate(1.08); }
.zone-photo-wash {
  background:
    linear-gradient(180deg, rgba(17,9,28,.08), rgba(17,9,28,.22) 40%, rgba(17,9,28,.82)),
    radial-gradient(circle at 14% 18%, rgba(255,79,163,.42), transparent 28%),
    radial-gradient(circle at 88% 8%, rgba(125,77,255,.34), transparent 30%);
  z-index: 1;
}
.zone-card > *:not(.zone-photo):not(.zone-photo-wash) {
  position: relative;
  z-index: 2;
}
.zone-card .category-index {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  width: max-content;
  max-width: calc(100% - 132px);
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  color: var(--ink);
  box-shadow: 0 12px 24px rgba(0,0,0,.12);
}
.zone-card .category-label {
  grid-template-columns: 1fr auto;
  border-top-color: rgba(255,255,255,.42);
  text-shadow: 0 2px 18px rgba(0,0,0,.36);
}
.zone-card .category-label strong {
  min-width: 0;
  color: #fff;
  font-size: clamp(25px, 3vw, 42px);
  line-height: .94;
}
.zone-card .category-label span { color: #fff; }
.zone-featured {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 72px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: rgba(255,255,255,.88);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.35;
  text-shadow: 0 2px 14px rgba(0,0,0,.34);
}
.zone-tone-a { background: linear-gradient(135deg, #ff4fa3, #7d4dff); }
.zone-tone-b { background: linear-gradient(135deg, #66b7ff, #22152d); }
.zone-tone-c { background: linear-gradient(135deg, #ff7a59, #7d4dff); }
.zone-tone-d { background: linear-gradient(135deg, #4dd9c2, #3b1b55); }
.zone-tone-e { background: linear-gradient(135deg, #ffb703, #ff4fa3); }
.zone-card .category-illustration { display: none; }
.how-steps article {
  grid-template-columns: 54px minmax(150px, 190px) 1fr;
}
@media (max-width: 720px) {
  .zone-card { min-height: 380px; }
  .zone-card .category-index { max-width: calc(100% - 132px); }
  .zone-featured { bottom: 72px; font-size: 11px; }
  .zone-card .category-label strong { font-size: 30px; }
  .how-steps article { grid-template-columns: 48px 1fr; gap: 12px; }
  .how-steps h3 { grid-column: 2; }
  .how-steps p { grid-column: 2; }
}

/* Refuerzo de layout para que las fotos de barrio no apilen texto arriba. */
.zone-card > .category-index {
  position: absolute !important;
  left: 20px;
  top: 20px;
  z-index: 3;
}
.zone-card > .tile-action {
  position: absolute !important;
  right: 18px;
  top: 18px;
  left: auto;
  z-index: 3;
}
.zone-card > .category-label {
  position: absolute !important;
  left: 20px;
  right: 20px;
  bottom: 18px;
  z-index: 3;
}
.zone-card > .zone-featured {
  position: absolute !important;
  left: 20px;
  right: 20px;
  bottom: 74px;
  z-index: 3;
}
@media (max-width: 720px) {
  .zone-card > .tile-action { right: 18px; top: 18px; left: auto; }
  .zone-card > .zone-featured { bottom: 74px; }
}

/* Priorizar que la foto real del barrio se vea, no que parezca un bloque oscuro. */
.zone-photo { object-position: center; opacity: .92; }
.zone-photo-wash {
  background:
    linear-gradient(180deg, rgba(17,9,28,.02), rgba(17,9,28,.14) 44%, rgba(17,9,28,.72)),
    radial-gradient(circle at 14% 18%, rgba(255,79,163,.28), transparent 30%),
    radial-gradient(circle at 88% 8%, rgba(125,77,255,.24), transparent 30%);
}

/* ── Navegación liviana al scrollear ───────────────────────────── */
.site-header {
  transition: transform .28s ease, height .22s ease, background .22s ease, box-shadow .22s ease, border-color .22s ease;
  will-change: transform, height;
}
.site-header.is-scrolled {
  height: 64px;
  background: rgba(255,248,239,.70);
  border-bottom-color: rgba(52,22,77,.07);
  box-shadow: 0 10px 24px rgba(67,40,91,.08);
}
.site-header.is-hidden:not(.is-menu-open):not(:focus-within) {
  transform: translateY(calc(-100% + 8px));
}
.site-header.is-scrolled .brand-logo { height: 31px; }
.site-header.is-scrolled .desktop-nav {
  gap: 26px;
  font-size: 13px;
}
.site-header.is-scrolled .ghost-button,
.site-header.is-scrolled .primary-button {
  height: 36px;
  padding-inline: 14px;
  font-size: 12px;
}
.site-header.is-scrolled .menu-button {
  width: 38px;
  height: 38px;
}
.site-header.is-scrolled .mobile-nav { top: 64px; }
@media (max-width: 720px) {
  .site-header.is-scrolled {
    height: 56px;
    background: rgba(255,248,239,.62);
    box-shadow: 0 8px 18px rgba(67,40,91,.07);
  }
  .site-header.is-scrolled .brand-logo { height: 27px; }
  .site-header.is-scrolled .menu-button { width: 36px; height: 36px; }
  .site-header.is-scrolled .mobile-nav { top: 60px; }
  .site-header.is-hidden:not(.is-menu-open):not(:focus-within) {
    transform: translateY(calc(-100% + 6px));
  }
}
@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}

/* ── Hero: accesos explícitos a subdominios ───────────────────── */
.hero-portals {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  max-width: 720px;
  margin-top: 18px;
}
.hero-portal {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 62px;
  padding: 10px 11px;
  border-radius: 20px;
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(125,77,255,.12);
  box-shadow: 0 12px 26px rgba(67,40,91,.08);
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.hero-portal:hover {
  transform: translateY(-3px);
  background: rgba(255,255,255,.94);
  box-shadow: 0 18px 34px rgba(67,40,91,.13);
}
.hero-portal__icon {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border-radius: 15px;
  color: #fff;
  font-size: 19px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 10px 20px rgba(67,40,91,.14);
}
.hero-portal--1 .hero-portal__icon { background: linear-gradient(135deg, #ff4fa3, #ff7a59); }
.hero-portal--2 .hero-portal__icon { background: linear-gradient(135deg, #7d4dff, #ff4fa3); }
.hero-portal--3 .hero-portal__icon { background: linear-gradient(135deg, #4dd9c2, #66b7ff); }
.hero-portal--4 .hero-portal__icon { background: linear-gradient(135deg, #ffb703, #7d4dff); }
.hero-portal strong,
.hero-portal small { display: block; min-width: 0; }
.hero-portal strong {
  font-size: 13px;
  line-height: 1.05;
  font-weight: 900;
  letter-spacing: -.03em;
  color: var(--ink);
}
.hero-portal small {
  margin-top: 3px;
  font-size: 10px;
  font-weight: 760;
  color: var(--muted);
}
@media (max-width: 1050px) {
  .hero-portals { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 620px; }
}
@media (max-width: 720px) {
  .hero-portals {
    display: flex;
    overflow-x: auto;
    gap: 8px;
    margin: 15px -14px 0;
    padding: 0 14px 4px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .hero-portals::-webkit-scrollbar { display: none; }
  .hero-portal {
    flex: 0 0 190px;
    min-height: 58px;
    border-radius: 18px;
    scroll-snap-align: start;
  }
  .hero-portal__icon { width: 38px; height: 38px; flex-basis: 38px; border-radius: 14px; }
  .hero-portal strong { font-size: 13px; }
}

/* Corrección: los carruseles del hero no deben ensanchar la página mobile. */
@media (max-width: 720px) {
  .hero,
  .hero-copy,
  .hero-stage {
    min-width: 0;
    max-width: 100%;
  }
  .hero-copy { width: 100%; }
  .hero-search { width: 100%; max-width: 100%; }
  .quick-links,
  .hero-portals {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }
  .hero-portal { flex-basis: min(190px, 76vw); }
}

/* En mobile los accesos a subdominios quedan visibles en 2x2, no escondidos. */
@media (max-width: 720px) {
  .hero-portals {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
    gap: 8px;
  }
  .hero-portal {
    flex: initial;
    min-width: 0;
    width: 100%;
  }
  .hero-portal strong { white-space: normal; }
}

/* La fila de cifras pasó de 3 a 5 datos y es un flex que no envolvía: a 1280
   se pasaba 14px, a 768 casi 50. Que envuelva y que los separadores no dejen
   un borde colgando al final de cada renglón. */
.hero-stats { flex-wrap: wrap; row-gap: 14px; }
.hero-stats div { padding-right: 28px; margin-right: 28px; }
.hero-stats div:last-child { padding-right: 0; margin-right: 0; border-right: 0; }

/* Sello de feria destacada en la portada. Marcar una feria como destacada no
   cambiaba nada acá: el orden por fecha pisaba el `featured` de la consulta. */
.destacada-sello {
  position: absolute; top: 12px; right: 12px; z-index: 3;
  background: var(--ink); color: var(--yellow);
  font-size: .68rem; font-weight: 800; letter-spacing: .04em;
  padding: 4px 10px; border-radius: 999px;
}

/* `100vw` incluye el ancho de la barra de scroll, así que el padding del header
   se calculaba contra un ancho mayor que el del contenido y la página se iba
   14px al costado en escritorio. Con 100% se mide el contenedor real. */
.site-header { padding-inline: max(24px, calc((100% - var(--max)) / 2)); }

/* El arte del hero está diseñado para sangrar fuera de su caja (las manchas de
   color y las órbitas). Eso dejaba sobras de 3 a 14px de scroll horizontal
   según el ancho. Se recorta en `main` con `clip` y no con `hidden`: `hidden`
   crearía un contenedor de scroll y rompería el header sticky. */
main { overflow-x: clip; }

/* Product clarity — shared home/directory shell, existing Groove palette. */
.skip-content { position: fixed; top: 8px; left: 12px; z-index: 100; padding: 12px 18px; background: var(--ink); color: #fff; border-radius: 12px; transform: translateY(-160%); }
.skip-content:focus { transform: none; }
:is(a, button, input, select):focus-visible { outline: 3px solid #5423bd; outline-offset: 4px; }
.hero-search:focus-within, .filter-search:focus-within { box-shadow: 0 0 0 3px #5423bd; }
.search-label { display: block; font-size: 14px; font-weight: 750; margin: 20px 0 8px; }
.mobile-nav[hidden] { display: none; }
.mobile-nav a { min-height: 44px; display: flex; align-items: center; }
.mobile-nav { max-height: calc(100dvh - 100px); overflow-y: auto; overscroll-behavior: contain; }
.menu-button, .site-header.is-scrolled .menu-button { width: 44px; height: 44px; cursor: pointer; }
.no-script-nav { padding: 16px; }
.intent-paths { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding-top: 22px; border-top: 1px solid var(--line); }
.intent-paths a { display: flex; align-items: center; gap: 12px; padding: 18px 12px; border-radius: 16px; }
.intent-paths a:hover { background: #fff; }
.intent-paths a > span:nth-child(2) { flex: 1; min-width: 0; }
.intent-paths strong, .intent-paths small { display: block; }
.intent-paths strong { font-size: 16px; }
.intent-paths small { color: var(--muted); font-size: 13px; margin-top: 5px; }
.intent-icon { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 44px; border-radius: 14px; background: #f2eaff; font-size: 24px; }
.intent-paths a:nth-child(2) .intent-icon { background: #ffe7f2; }
.intent-paths a:nth-child(3) .intent-icon { background: #dbf7ee; }
.cta-options { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 16px; }
.directory-profile-action { display: flex; min-height: 44px; margin-top: 16px; }
.directory-filter-state { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.directory-filter-state[hidden] { display: none; }
.directory-filter-state p { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.ez-directory .favorite { width: 44px; height: 44px; }
.ez-directory .toggle-filter input { display: block; position: absolute; opacity: 0; width: 1px; height: 1px; }
.ez-directory .toggle-filter:focus-within { outline: 3px solid #5423bd; outline-offset: 3px; }
.ez-directory :is(.filter-chip, select) { min-height: 44px; }
.ez-directory #directorio, .ez-home #agenda { scroll-margin-top: 96px; }
.ez-home .hero { min-height: auto; padding-top: 42px; gap: 36px; }
.ez-home .hero-copy { padding-top: 16px; }
.ez-home .hero h1 { margin-top: 24px; }
.ez-home .ticker { display: none; }
@media (max-width: 1050px) {
  .intent-paths { gap: 4px; }
  .intent-paths a { padding-inline: 4px; }
}
@media (max-width: 720px) {
  .site-header { padding-inline: 14px; }
  .ez-home .hero { padding-top: 24px; gap: 24px; }
  .ez-home .hero h1 { margin: 22px 0; }
  .ez-home .hero-stage { min-height: 210px; border-radius: 24px; }
  .ez-home .card-main { top: 24px; bottom: 24px; left: 16px; right: 16px; transform: none; }
  .ez-home .card-small, .ez-home .hero-stamp { display: none; }
  .ez-home .card-main h3 { font-size: 18px; }
  .ez-home .quick-links { display: flex; }
  .ez-home .quick-links a { min-height: 44px; display: inline-flex; align-items: center; }
  .intent-paths { grid-template-columns: 1fr; gap: 0; padding-top: 12px; }
  .intent-paths a { padding: 12px 4px; }
  .ez-home .categories { padding-block: 48px; }
  .ez-home .section-heading h2 { font-size: 40px; }
  .ez-home .heading-note { font-size: 15px; }
  .ez-home .entrepreneur-grid { grid-template-columns: 1fr; }
  .ez-home .entrepreneur-card > a { display: grid !important; grid-template-columns: 100px minmax(0, 1fr); }
  .ez-home .card-visual { height: auto; min-height: 180px; padding: 8px; }
  .ez-home .card-visual .micro-tag { left: 6px; font-size: 10px; }
  .ez-home .destacada-sello { display: none; }
  .ez-home .card-meta { margin-top: 8px; }
  .ez-home .card-action { min-height: 44px; }
  .ez-home .card-visual.has-event-art .event-art-title, .ez-home .event-art-place, .ez-home .event-art-spark { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .ticker-track, .hero-orbit, .floating-card, .reveal, .entrepreneur-card { animation: none; transition: none; }
}
