:root{--bg:#eef8f1;--surface:#fff;--ink:#15371f;--muted:#5b7463;--line:rgba(13,105,45,.15);--glass:rgba(255,255,255,.58);--green:#087b32;--green-strong:#045d23;--green-soft:#dff3e5;--lime:#91cf50;--shadow:0 24px 65px rgba(14,83,37,.14),0 8px 24px rgba(14,83,37,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 12% 4%,#d9f2df 0,transparent 30%),radial-gradient(circle at 90% 20%,#e8f7d8 0,transparent 25%),linear-gradient(145deg,#f8fcf9,#edf8f0);color:var(--ink);font-family:Manrope,system-ui,sans-serif;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(8,123,50,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(8,123,50,.025) 1px,transparent 1px);background-size:45px 45px;pointer-events:none}.glass{background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(241,250,244,.68));border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}a{color:inherit;text-decoration:none}.topbar{height:82px;max-width:1240px;margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:11px;font-size:19px;font-weight:800}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--green),var(--lime));color:white;font-size:24px;box-shadow:0 9px 25px rgba(8,123,50,.2)}nav{display:flex;align-items:center;gap:28px;font-size:13px;font-weight:700;color:#46654f}nav a:hover{color:var(--green)}main{max-width:1180px;margin:auto;padding:0 24px}.hero{padding:82px 0 58px;text-align:center}.hero-copy{max-width:820px;margin:auto}.eyebrow{font-size:11px;letter-spacing:.22em;font-weight:800;color:#54715d}.eyebrow span{display:inline-block;width:24px;height:2px;background:var(--green);vertical-align:middle;margin-right:10px}.hero h1{font-size:clamp(40px,6vw,70px);line-height:1.04;letter-spacing:-.055em;margin:18px 0}.hero h1 em{font-style:normal;color:var(--green)}.lead{max-width:640px;margin:auto;color:var(--muted);font-size:17px;line-height:1.7}.search-panel{max-width:940px;margin:38px auto 0;padding:12px;border-radius:24px;text-align:left}.search-field{height:66px;display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 18px}.search-icon{font-size:32px;color:var(--green);margin-right:14px}.search-field input{width:100%;background:none;border:0;outline:0;color:var(--ink);font:600 17px Manrope}.search-field input::placeholder{color:#829487}.select-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;padding-top:11px}.select-row label{padding:7px 15px}.select-row label span{display:block;font-size:9px;letter-spacing:.13em;color:#75897b;font-weight:800;text-transform:uppercase}.select-row select{width:100%;border:0;background:transparent;color:var(--ink);font:700 13px Manrope;outline:0;padding:5px 0}.select-row button,.empty button{border:0;border-radius:14px;padding:0 25px;color:white;background:linear-gradient(135deg,var(--green),var(--green-strong));font:800 14px Manrope;cursor:pointer}.select-row button span{margin-left:18px}.trust-row{display:flex;justify-content:center;gap:18px;color:#74877a;font-size:11px;margin-top:22px}.trust-row b{color:var(--green-strong)}.categories,.results{padding:48px 0}.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:25px}.section-title h2{font-size:30px;margin:8px 0 0;letter-spacing:-.035em}.section-title p{margin:0;color:#74877a;font-size:12px}.link-button{border:0;background:none;color:var(--green);font:800 12px Manrope;cursor:pointer}.category-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.category-chip{border-radius:18px;padding:20px 8px;color:var(--ink);cursor:pointer;text-align:center;transition:.25s}.category-chip:hover{transform:translateY(-4px);border-color:rgba(8,123,50,.4);background:#f4fbf6}.category-chip i{display:grid;place-items:center;margin:0 auto 12px;width:45px;height:45px;border-radius:14px;background:var(--green-soft);font-style:normal;font-size:22px}.category-chip span{font-size:11px;font-weight:800}.business-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;transition:.2s}.business-grid.loading{opacity:.5}.business-card{border-radius:22px;padding:22px;position:relative;overflow:hidden;min-height:300px;display:flex;flex-direction:column;transition:.25s}.business-card:hover{transform:translateY(-4px);border-color:rgba(8,123,50,.34)}.business-card.featured{border-color:rgba(8,123,50,.42)}.featured-label{position:absolute;right:0;top:0;padding:7px 13px;background:var(--green-soft);color:var(--green-strong);font-size:8px;letter-spacing:.14em;font-weight:900;border-radius:0 0 0 12px}.card-head{display:flex;gap:15px;align-items:center}.card-head img{width:72px;height:72px;object-fit:contain;padding:4px;border-radius:17px;background:white;border:1px solid var(--line)}.badge{display:inline-block;color:var(--green-strong);background:var(--green-soft);padding:5px 9px;border-radius:8px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.card-head h3{margin:7px 0 4px;font-size:17px}.card-head p{font-size:10px;color:#718476;margin:0}.description{color:var(--muted);font-size:12px;line-height:1.7;margin:18px 0}.card-actions{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.card-button{min-height:39px;padding:8px 5px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;gap:4px;color:var(--green-strong);background:#f7fcf8;text-align:center;font-size:9px;font-weight:800;transition:.2s}.card-button:hover{background:var(--green-soft);border-color:rgba(8,123,50,.34)}.card-button.primary{background:var(--green);border-color:var(--green);color:white}.card-button.disabled{opacity:.45;cursor:not-allowed}.empty{text-align:center;border-radius:24px;padding:50px}.empty>span{font-size:44px;color:var(--green)}.empty h3{margin-bottom:6px}.empty p{color:var(--muted)}.empty button{padding:12px 20px}.cta{margin:60px 0 90px;border-radius:28px;padding:40px 45px;display:flex;align-items:center;justify-content:space-between}.cta h2{margin:7px 0;font-size:29px}.cta>div>p:last-child{color:var(--muted);font-size:13px}.cta>a,.visit{background:linear-gradient(135deg,var(--green),var(--green-strong));color:white;font-weight:800;padding:17px 22px;border-radius:14px}.cta>a span{margin-left:20px}.detail{max-width:800px;margin:80px auto;padding:38px;border-radius:28px}.back{font-size:12px;color:var(--green)}.detail-main{display:flex;align-items:center;gap:28px;margin:35px 0}.detail-main img{width:135px;height:135px;object-fit:contain;padding:6px;border-radius:28px;background:white;border:1px solid var(--line)}.detail h1{font-size:42px;margin:10px 0}.detail p{color:var(--muted);line-height:1.7}.detail .location{color:#46654f}.detail-actions{display:flex;flex-wrap:wrap;gap:10px}.detail-actions .visit.secondary{background:#f4fbf6;color:var(--green-strong);border:1px solid var(--line)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}footer{max-width:1180px;margin:auto;border-top:1px solid var(--line);padding:25px 24px 40px;display:flex;justify-content:space-between;color:#708276;font-size:11px}
@media(max-width:850px){.hero{padding-top:62px}.select-row{grid-template-columns:1fr 1fr}.select-row button{grid-column:1/-1;height:50px}.category-strip{grid-template-columns:repeat(3,1fr)}.business-grid{grid-template-columns:repeat(2,1fr)}.cta{align-items:flex-start;gap:25px;flex-direction:column}}
@media(max-width:560px){.topbar{padding:0 18px;height:70px}.hero{padding:45px 0 35px}.hero h1{font-size:42px}.lead{font-size:14px}.search-panel{border-radius:20px}.search-field{height:58px;padding:0 8px}.search-field input{font-size:14px}.select-row{grid-template-columns:1fr}.select-row button{grid-column:auto}.trust-row{flex-wrap:wrap;gap:8px}.categories,.results{padding:34px 0}.section-title{align-items:flex-start}.section-title h2{font-size:25px}.category-strip{grid-template-columns:repeat(2,1fr)}.business-grid{grid-template-columns:1fr}.cta{padding:28px;margin:40px 0 65px}.detail{margin:40px auto;padding:24px}.detail-main{align-items:flex-start;flex-direction:column}.detail h1{font-size:34px}footer{flex-direction:column;gap:8px}}

/* Acabado glassmorphism claro v2.1 */
body{background:radial-gradient(circle at 8% 4%,rgba(22,160,71,.24) 0,transparent 28%),radial-gradient(circle at 92% 17%,rgba(144,207,80,.28) 0,transparent 25%),radial-gradient(circle at 52% 54%,rgba(8,123,50,.08) 0,transparent 32%),linear-gradient(145deg,#f9fcfa,#eaf7ee);background-attachment:fixed}
body:before{background-image:linear-gradient(rgba(8,123,50,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(8,123,50,.03) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,black,transparent 80%)}
.glass{background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(235,249,240,.43));border:1px solid rgba(255,255,255,.92);outline:1px solid rgba(8,123,50,.08);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.98),inset 0 -1px 0 rgba(8,123,50,.05);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%)}
.search-panel{box-shadow:0 30px 80px rgba(10,91,38,.16),0 8px 24px rgba(10,91,38,.09),inset 0 1px 0 #fff;border-radius:28px}
.business-card{background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(231,248,237,.44));box-shadow:0 22px 55px rgba(12,85,36,.12),inset 0 1px 0 rgba(255,255,255,.98)}
.business-card:hover{transform:translateY(-6px);box-shadow:0 30px 70px rgba(12,85,36,.17),inset 0 1px 0 #fff}
.category-chip{background:linear-gradient(145deg,rgba(255,255,255,.68),rgba(235,249,240,.42));box-shadow:0 14px 38px rgba(12,85,36,.09),inset 0 1px 0 #fff}
.empty{background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(232,248,238,.46));min-height:260px;display:grid;place-content:center}
.empty[hidden]{display:none}

/* Buscador v2.2 */
.search-panel{display:grid;grid-template-columns:1fr 1fr auto;gap:10px}
.search-field{grid-column:1/-1;grid-row:1}
.filter-grid{grid-column:1/3;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.filter-grid label{padding:7px 15px}
.filter-grid label span{display:block;font-size:9px;letter-spacing:.13em;color:#75897b;font-weight:800;text-transform:uppercase}
.filter-grid select{width:100%;border:0;background:transparent;color:var(--ink);font:700 13px Manrope;outline:0;padding:5px 0}
.search-submit{grid-column:3;grid-row:2;border:0;border-radius:14px;padding:0 28px;color:#fff;background:linear-gradient(135deg,var(--green),var(--green-strong));font:800 14px Manrope;cursor:pointer;box-shadow:0 10px 24px rgba(8,123,50,.2)}
.search-submit span{margin-left:18px}
.card-actions{grid-template-columns:repeat(auto-fit,minmax(76px,1fr))}
.search-fab{position:fixed;right:26px;bottom:26px;z-index:30;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--green),var(--green-strong));color:#fff;font-size:32px;font-weight:800;border:1px solid rgba(255,255,255,.65);box-shadow:0 16px 38px rgba(4,93,35,.3),inset 0 1px 0 rgba(255,255,255,.45);transition:.2s}
.search-fab:hover{transform:translateY(-3px) scale(1.03)}

@media(max-width:560px){
  .hero h1{font-size:34px;line-height:1.08}
  .search-panel{display:flex;flex-direction:column;gap:10px;padding:12px}
  .filter-grid{order:1;display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
  .filter-grid label{padding:10px 9px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.45)}
  .filter-grid select{font-size:11px}
  .search-field{order:2;width:100%;border:1px solid var(--line);border-radius:13px;padding:0 12px;background:rgba(255,255,255,.45)}
  .search-submit{order:3;width:100%;height:49px}
  .search-fab{right:18px;bottom:18px;width:54px;height:54px;font-size:29px}
}

/* Jerarquía comercial y destacados v3 */
.promoted{padding:48px 0}.promoted-grid{align-items:stretch}.results[hidden]{display:none}
.business-number{position:absolute;left:18px;top:8px;color:#7a8f80;font-size:8px;font-weight:800;letter-spacing:.08em}.business-card .card-head{margin-top:9px}
.tier-label{position:absolute;right:0;top:0;padding:7px 13px;font-size:8px;letter-spacing:.14em;font-weight:900;border-radius:0 0 0 12px}
.business-card.featured{min-height:210px;border:1px solid rgba(8,123,50,.45);background:linear-gradient(145deg,rgba(247,255,249,.9),rgba(218,244,227,.58));box-shadow:0 24px 58px rgba(8,105,42,.17),inset 0 1px 0 #fff}
.featured-label{background:#d9f5e2;color:#056326}
.business-card.pro{min-height:225px;border:2px solid rgba(170,126,20,.6);background:radial-gradient(circle at 90% 0,rgba(255,222,120,.3),transparent 28%),linear-gradient(145deg,rgba(255,255,255,.96),rgba(225,247,232,.72));box-shadow:0 30px 75px rgba(79,92,18,.22),0 10px 28px rgba(8,105,42,.14),inset 0 1px 0 #fff;transform:translateY(-3px)}
.business-card.pro:hover{transform:translateY(-8px)}.pro-label{background:linear-gradient(135deg,#c89519,#f0c95b);color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.15)}
.business-card.pro .badge{background:#f8edc9;color:#71520b}.business-card.pro .card-button.primary{background:linear-gradient(135deg,#087b32,#b1871f)}
.load-more-wrap{text-align:center;margin-top:26px}.load-more{border:1px solid rgba(8,123,50,.3);border-radius:13px;padding:13px 24px;background:rgba(255,255,255,.68);color:var(--green-strong);font:800 11px Manrope;cursor:pointer;box-shadow:0 12px 30px rgba(8,105,42,.1)}.load-more:hover{background:var(--green);color:#fff}.load-more[hidden]{display:none}.load-error{grid-column:1/-1;text-align:center;color:var(--muted)}
.admin-stats{grid-template-columns:repeat(5,minmax(120px,1fr))}
@media(max-width:1050px){.admin-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.promoted{padding:30px 0}.business-card.pro,.business-card.featured{min-height:200px;transform:none}.admin-stats{grid-template-columns:repeat(2,1fr)}}

/* Dashboard administrativo */
.admin-page{background:#eef5f0}
.admin-page main{max-width:none;padding:0}
.admin-page>footer{display:none}
.admin-dashboard{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr);gap:0}
.admin-sidebar{position:sticky;top:0;height:100vh;border-radius:0;padding:25px 18px;display:flex;flex-direction:column;z-index:10;background:linear-gradient(160deg,rgba(255,255,255,.82),rgba(226,244,232,.66))}
.admin-brand{display:flex;align-items:center;gap:11px;padding:0 8px 24px;border-bottom:1px solid var(--line)}
.admin-brand div{display:flex;flex-direction:column}.admin-brand strong{font-size:13px}.admin-brand small{font-size:9px;color:var(--muted);margin-top:3px}
.admin-menu{display:flex;flex-direction:column;align-items:stretch;gap:7px;margin-top:25px}
.admin-menu a{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:12px;color:#52705c;font-size:12px;font-weight:800}
.admin-menu a span{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:rgba(8,123,50,.08);font-size:15px}
.admin-menu a:hover,.admin-menu a.active{background:linear-gradient(135deg,var(--green),var(--green-strong));color:#fff;box-shadow:0 10px 24px rgba(8,123,50,.18)}
.admin-menu a.active span,.admin-menu a:hover span{background:rgba(255,255,255,.16)}
.admin-sidebar-foot{margin-top:auto;padding:18px 8px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.admin-sidebar-foot a{font-size:10px;font-weight:700;color:var(--muted)}
.admin-content{padding:42px clamp(24px,4vw,58px) 70px;min-width:0}
.admin-content-head{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:28px}.admin-content-head h1{font-size:40px;letter-spacing:-.04em;margin:8px 0}.admin-content-head>div>p:last-child{font-size:12px;color:var(--muted);margin:0}
.admin-primary{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:13px 18px;background:linear-gradient(135deg,var(--green),var(--green-strong));color:#fff;font:800 11px Manrope;cursor:pointer;box-shadow:0 10px 24px rgba(8,123,50,.18)}
.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:22px}.admin-stats article{padding:20px;border-radius:18px;display:flex;flex-direction:column;gap:7px}.admin-stats span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:800}.admin-stats strong{font-size:28px;color:var(--green-strong)}
.admin-table-card{border-radius:20px;overflow:hidden}.admin-table-title{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.admin-table-title h2{font-size:16px;margin:0}.admin-table-title span{font-size:10px;color:var(--muted)}.admin-table-scroll{overflow:auto}.admin-table-card table{width:100%;border-collapse:collapse;min-width:680px}.admin-table-card th,.admin-table-card td{text-align:left;padding:15px 18px;border-bottom:1px solid var(--line);font-size:11px}.admin-table-card th{font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#6b806f}.admin-table-card td small{display:block;color:var(--green);font-size:8px;margin-top:4px}.admin-table-card td form{display:inline}.admin-status{padding:5px 8px;border-radius:8px;background:var(--green-soft);color:var(--green-strong);font-size:9px;font-weight:800}.table-edit{color:var(--green);font-weight:800;margin-right:8px}.table-delete{border:0;background:none;color:#be123c;font:700 10px Manrope;cursor:pointer}.admin-notice,.admin-error{padding:12px 15px;border-radius:11px;margin-bottom:18px;font-size:11px;font-weight:700}.admin-notice{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.admin-error{background:#fff1f2;color:#9f1239;border:1px solid #fecdd3}
.admin-manage-grid{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:20px;align-items:start}.admin-editor{padding:24px;border-radius:20px}.admin-editor h2{font-size:18px;margin:0 0 22px}.admin-editor label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#5f7766;font-weight:800;margin:15px 0}.admin-editor input{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.7);color:var(--ink);font:600 12px Manrope}.admin-editor>div{display:flex;align-items:center;gap:14px;margin-top:20px}.admin-editor>div a{font-size:10px;color:var(--muted)}.admin-icon-cell{font-size:22px!important}
.edit-shell{padding:0!important}.edit-form{max-width:900px!important}.admin-content .edit-form{margin:0}
@media(max-width:850px){.admin-dashboard{grid-template-columns:1fr}.admin-sidebar{position:relative;height:auto;padding:15px}.admin-brand{padding-bottom:14px}.admin-menu{margin-top:14px;display:grid;grid-template-columns:repeat(3,1fr)}.admin-menu a{justify-content:center;padding:9px}.admin-menu a span{display:none}.admin-sidebar-foot{display:none}.admin-content{padding:28px 18px 55px}.admin-manage-grid{grid-template-columns:1fr}.admin-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.admin-menu a{font-size:9px}.admin-content-head{align-items:flex-start;flex-direction:column}.admin-content-head h1{font-size:32px}.admin-stats{gap:8px}.admin-stats article{padding:14px}.admin-stats strong{font-size:21px}.admin-content .edit-form{padding:22px}.admin-content .form-grid{grid-template-columns:1fr}.admin-content .wide{grid-column:auto}}

/* Ajustes compactos v2.3 */
.business-card{min-height:200px}
@media(max-width:560px){
  .hero{padding:26px 0 22px}
  .hero-copy{max-width:330px}
  .hero .eyebrow{font-size:8px;letter-spacing:.16em;margin:0}
  .hero .eyebrow span{width:17px;margin-right:6px}
  .hero h1{font-size:27px;line-height:1.08;letter-spacing:-.04em;margin:10px 0 8px}
  .hero .lead{font-size:12px;line-height:1.45;max-width:290px}
  .search-panel{margin-top:20px}
  .trust-row{margin-top:14px;font-size:9px}
  .business-card{min-height:200px;padding:18px}
  .description{margin:12px 0;line-height:1.5}
}
