:root{
    --bg:#FFFFFF;
    --bg-soft:#F5F4F0;
    --ink:#14181A;
    --ink-soft:#5B6660;
    --line:rgba(20,24,26,.11);
    --accent:#FF5B35;
    --accent-deep:#C23F1F;
    --teal:#1F6F5C;
    --gold:#C98A2B;
    --radius:18px;
    --shadow:0 20px 44px rgba(20,24,26,.10);
    --maxw:1240px;
  }
  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0; background:var(--bg); color:var(--ink);
    font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  }
  h1,h2,h3,h4{ font-family:'Bricolage Grotesque',sans-serif; margin:0; letter-spacing:-.01em; }
  a{ color:inherit; text-decoration:none; }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }
  .mono{ font-family:'IBM Plex Mono',monospace; }

  ::selection{ background:var(--accent); color:#fff; }

  .btn{
    font-family:'Inter',sans-serif; font-weight:600; font-size:14px;
    padding:13px 24px; border-radius:999px; border:1.5px solid var(--ink);
    background:transparent; cursor:pointer; display:inline-flex; align-items:center; gap:8px;
    transition:transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
  }
  .btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
  .btn.fill{ background:var(--accent); border-color:var(--accent); color:#fff; }
  .btn.fill:hover{ background:var(--accent-deep); border-color:var(--accent-deep); }
  .btn.dark{ background:var(--ink); border-color:var(--ink); color:#fff; }
  .btn.small{ padding:9px 16px; font-size:12.5px; }
  .btn[disabled]{ opacity:.42; cursor:not-allowed; pointer-events:none; transform:none; box-shadow:none; }

  /* ---------- TOP UTILITY BAR ---------- */
  .topbar{ background:var(--ink); color:#fff; font-size:12px; }
  .topbar .wrap{ display:flex; justify-content:space-between; align-items:center; height:36px; }
  .topbar-left{ display:flex; gap:22px; opacity:.85; }
  .chip-live{ display:flex; align-items:center; gap:6px; }
  .dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); animation:pulse 1.6s ease-in-out infinite; }
  @keyframes pulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(255,91,53,.55);} 50%{ box-shadow:0 0 0 5px rgba(255,91,53,0);} }
  .lang{ display:flex; gap:10px; opacity:.85; }
  .lang span{ cursor:pointer; }
  .lang span.active{ color:var(--accent); font-weight:700; }

  /* ---------- HEADER ---------- */
  header{
    position:sticky; top:0; z-index:200; background:rgba(255,255,255,.92);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid transparent; transition:border-color .3s ease, padding .3s ease;
  }
  header.scrolled{ border-color:var(--line); box-shadow:0 8px 24px rgba(20,24,26,.05); }
  .header-inner{ display:flex; align-items:center; justify-content:space-between; padding:20px 0; transition:padding .3s ease; position:relative; z-index:2; }
  header.scrolled .header-inner{ padding:13px 0; }
  .logo{ font-size:23px; font-weight:700; letter-spacing:-.02em; display:flex; align-items:center; gap:10px; }
  .logo img{ height:36px; width:auto; display:block; background:transparent; }
  .logo .brand-txt{ display:flex; align-items:baseline; gap:0; line-height:1; }
  .logo .brand-txt .uy{ color:var(--accent); font-size:.78em; }
  footer .logo img{ height:32px; filter:none; background:transparent; }
  nav.mainnav{ display:flex; align-items:center; gap:26px; }
  nav.mainnav-drawer{ display:none; }
  nav.mainnav a:not(.btn){ font-size:14.5px; font-weight:600; position:relative; padding:4px 0; }
  nav.mainnav a:not(.btn)::after{ content:''; position:absolute; left:0; bottom:-1px; height:2px; width:0; background:var(--accent); transition:width .28s ease; }
  nav.mainnav a:not(.btn):hover::after{ width:100%; }
  .navtoggle{
    display:none; width:44px; height:44px; align-items:center; justify-content:center;
    background:none; border:none; cursor:pointer; padding:0; position:relative; z-index:220;
  }
  .navtoggle span{
    display:block; width:22px; height:2px; background:var(--ink); border-radius:2px;
    transition:transform .28s ease, opacity .2s ease, background .2s ease;
    position:absolute; left:50%; margin-left:-11px;
  }
  .navtoggle span:nth-child(1){ transform:translateY(-7px); }
  .navtoggle span:nth-child(2){ transform:translateY(0); }
  .navtoggle span:nth-child(3){ transform:translateY(7px); }
  .navtoggle.is-open span:nth-child(1){ transform:translateY(0) rotate(45deg); }
  .navtoggle.is-open span:nth-child(2){ opacity:0; }
  .navtoggle.is-open span:nth-child(3){ transform:translateY(0) rotate(-45deg); }
  .nav-backdrop{
    display:none; position:fixed; inset:0; background:rgba(20,24,26,.45); z-index:180;
    opacity:0; pointer-events:none; transition:opacity .28s ease; border:none; padding:0; cursor:pointer;
  }
  .nav-backdrop.is-open{ opacity:1; pointer-events:auto; }
  body.nav-open{ overflow:hidden; }

  /* ---------- HERO ---------- */
  .ad-slot{
    border:1.5px dashed rgba(20,24,26,.22); border-radius:14px; background:rgba(245,244,240,.65);
    min-height:90px; display:flex; align-items:center; justify-content:center; flex-direction:column;
    gap:4px; color:var(--ink-soft); text-align:center; padding:16px;
  }
  .ad-slot .ad-label{ font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; opacity:.7; }
  .ad-slot .ad-size{ font-size:12.5px; }
  .ad-wrap{ margin-top:36px; }
  .bus-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
  @media (max-width:980px){ .bus-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width:680px){ .bus-grid{ grid-template-columns:1fr 1fr; } }

  .hero{ position:relative; padding:72px 0 80px; text-align:center; z-index:40; }
  .hero-bg{
    position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none;
  }
  .hero-bg::after{
    content:''; position:absolute; inset:-20%; filter:blur(60px); opacity:.55;
    background:
      radial-gradient(circle at 20% 10%, #FFD9CB 0%, transparent 42%),
      radial-gradient(circle at 85% 30%, #CFE7DC 0%, transparent 40%),
      radial-gradient(circle at 45% 95%, #F6E4BE 0%, transparent 45%);
    animation:float1 18s ease-in-out infinite;
  }
  .blob{ display:none; }
  .hero > .wrap{ position:relative; z-index:1; }
  @keyframes float1{ 0%,100%{ transform:translate(0,0) scale(1);} 50%{ transform:translate(30px,20px) scale(1.06);} }

  .eyebrow{
    font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--accent-deep); margin-bottom:18px; opacity:0; animation:fadeUp .6s .1s ease forwards;
  }
  .logo img, .hero-logo{
    background:transparent;
    image-rendering:auto;
  }
  .hero-logo{
    width:min(200px,40vw); height:auto; margin:0 auto 22px; display:block;
    opacity:0; animation:fadeUp .6s .05s ease forwards;
  }
  .hero h1{
    font-size:clamp(42px,8vw,72px); line-height:.95; font-weight:800; letter-spacing:-.03em;
    margin-bottom:14px; opacity:0; animation:fadeUp .65s .15s ease forwards;
  }
  .hero h1 .uy{ color:var(--accent); }
  .hero p.dek{
    font-size:18px; color:var(--ink-soft); max-width:40ch; margin:0 auto 36px;
    opacity:0; animation:fadeUp .7s .35s ease forwards;
  }
  .hero p.dek strong{ color:var(--accent); font-weight:700; }

  .searchbar{
    max-width:620px; margin:0 auto; opacity:0; animation:fadeUp .7s .5s ease forwards; position:relative; z-index:50;
  }
  .searchbar-inner{
    display:flex; align-items:center; gap:12px; background:#fff; border:1.5px solid var(--ink);
    border-radius:999px; padding:8px 8px 8px 22px; box-shadow:var(--shadow);
    transition:box-shadow .3s ease, border-color .3s ease; position:relative; z-index:2;
  }
  .searchbar-inner:focus-within{ border-color:var(--accent); box-shadow:0 22px 50px rgba(255,91,53,.20); }
  .searchbar-inner svg{ flex-shrink:0; opacity:.55; }
  .searchbar-inner input{
    flex:1; border:none; outline:none; font-family:'Inter',sans-serif; font-size:16px; padding:10px 0; background:transparent;
    min-width:0;
  }
  .searchbar-inner button{
    background:var(--ink); color:#fff; border:none; border-radius:999px; padding:12px 22px;
    font-weight:600; font-size:14px; cursor:pointer; transition:background .25s ease; flex-shrink:0;
  }
  .searchbar-inner button:hover{ background:var(--accent-deep); }

  .search-results{
    position:absolute; left:0; right:0; top:calc(100% + 10px); background:#fff; border:1.5px solid var(--ink);
    border-radius:16px; box-shadow:var(--shadow); text-align:left; overflow:hidden; z-index:60;
    max-height:0; opacity:0; pointer-events:none; transform:translateY(-6px);
    transition:max-height .3s ease, opacity .2s ease, transform .2s ease;
  }
  .search-results.open{
    max-height:min(360px, 55vh); opacity:1; pointer-events:auto; overflow-y:auto; transform:translateY(0);
  }
  .result-row{ display:flex; align-items:center; gap:14px; padding:13px 20px; border-top:1px solid var(--line); cursor:pointer; transition:background .15s ease; }
  .result-row:first-child{ border-top:none; }
  .result-row:hover{ background:var(--bg-soft); }
  .result-ic{ width:36px; height:36px; border-radius:10px; background:var(--bg-soft); display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0; }
  .result-row div b{ font-size:14px; display:block; }
  .result-row div span{ font-size:12px; color:var(--ink-soft); }
  .no-results{ padding:20px; text-align:center; color:var(--ink-soft); font-size:13.5px; }

  .quickchips{
    display:flex; justify-content:center; gap:10px; margin-top:22px; flex-wrap:wrap;
    opacity:0; animation:fadeUp .7s .65s ease forwards;
    position:relative; z-index:1;
    transition:opacity .2s ease, visibility .2s ease;
  }
  .quickchips.is-hidden{
    opacity:0 !important; visibility:hidden; pointer-events:none;
  }

  /* ---------- BIENVENIDA ---------- */
  .welcome{
    display:grid; grid-template-columns:1.05fr 1fr; gap:40px; align-items:center;
    background:#fff; border:1.5px solid var(--ink); border-radius:24px; overflow:hidden;
    opacity:0; transform:translateY(20px);
  }
  .welcome.revealed{ animation:fadeUp .7s ease forwards; }
  .welcome-media{ background:var(--bg-soft); min-height:280px; display:flex; align-items:center; justify-content:center; padding:28px; }
  .welcome-media img{ width:100%; max-width:420px; height:auto; display:block; }
  .welcome-body{ padding:36px 40px 36px 8px; }
  .welcome-body .eyebrow{ opacity:1; animation:none; margin-bottom:10px; }
  .welcome-body h2{ font-size:clamp(26px,3.2vw,34px); margin-bottom:14px; }
  .welcome-body p{ color:var(--ink-soft); font-size:15px; line-height:1.65; margin:0 0 12px; }
  .welcome-body .actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:22px; }
  .chip{
    font-family:'IBM Plex Mono',monospace; font-size:12px; padding:7px 14px; border-radius:999px;
    border:1px solid var(--line); color:var(--ink-soft); cursor:pointer; transition:all .2s ease;
  }
  .chip:hover{ border-color:var(--ink); color:var(--ink); background:var(--bg-soft); }

  @keyframes fadeUp{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:translateY(0);} }

  /* ---------- CATEGORY GRID ---------- */
  .section{ padding:80px 0; position:relative; z-index:1; }
  .section.soft{ background:var(--bg-soft); }
  .section-head{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:36px; gap:20px; flex-wrap:wrap; }
  .section-head .eyebrow{ margin-bottom:8px; opacity:1; animation:none; }
  .section-head h2{ font-size:34px; }
  .section-head p{ color:var(--ink-soft); font-size:14.5px; max-width:44ch; margin:6px 0 0; }

  .cat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
  .cat-tile{
    background:#fff; border:1.5px solid var(--ink); border-radius:var(--radius); padding:26px 22px;
    display:flex; flex-direction:column; gap:14px; cursor:pointer;
    opacity:0; transform:translateY(20px); transition:transform .3s ease, box-shadow .3s ease, background .3s ease;
  }
  .cat-tile.revealed{ animation:fadeUp .6s ease forwards; }
  .cat-tile:hover{ transform:translateY(-6px); box-shadow:var(--shadow); background:var(--ink); color:#fff; border-color:var(--ink); }
  .cat-tile:hover .cat-ic{ background:var(--accent); transform:scale(1.08) rotate(-6deg); }
  .cat-tile:hover .cat-sub{ color:rgba(255,255,255,.7); }
  .cat-ic{
    width:48px; height:48px; border-radius:13px; background:var(--bg-soft); display:flex; align-items:center; justify-content:center;
    font-size:22px; transition:transform .3s ease, background .3s ease;
  }
  .cat-tile h4{ font-size:16.5px; font-weight:700; }
  .cat-sub{ font-size:12.5px; color:var(--ink-soft); transition:color .3s ease; }

  /* ---------- DESTACADOS: horizontal scroll ---------- */
  .hscroll{
    display:flex; gap:20px; overflow-x:auto; padding-bottom:10px; scroll-snap-type:x mandatory;
    scrollbar-width:thin; scrollbar-color:var(--accent) var(--bg-soft);
    -webkit-overflow-scrolling:touch;
  }
  .hscroll::-webkit-scrollbar{ height:8px; display:block; }
  .hscroll::-webkit-scrollbar-track{
    background:var(--bg-soft); border-radius:999px; margin:0 4px;
  }
  .hscroll::-webkit-scrollbar-thumb{
    background:var(--accent); border-radius:999px;
  }
  .hscroll::-webkit-scrollbar-thumb:hover{ background:var(--accent-deep); }
  .feat-card{
    scroll-snap-align:start; flex:0 0 300px; background:#fff; border:1.5px solid var(--ink); border-radius:var(--radius);
    overflow:hidden; opacity:0; transform:translateY(20px); transition:transform .3s ease, box-shadow .3s ease;
  }
  .feat-card.revealed{ animation:fadeUp .6s ease forwards; }
  .feat-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
  .feat-img{ height:170px; position:relative; overflow:hidden; background:var(--bg-soft); }
  .feat-img img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center; display:block;
  }
  .feat-img .ph{ position:absolute; inset:0; transition:transform .5s ease; }
  .feat-card:hover .feat-img .ph{ transform:scale(1.08); }
  .feat-img .badge{
    position:absolute; top:12px; left:12px; background:#fff; border-radius:999px; padding:5px 12px;
    font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:500; text-transform:uppercase; letter-spacing:.05em;
  }
  .feat-body{ padding:18px 20px 22px; }
  .feat-body h4{ font-size:16.5px; font-weight:700; margin-bottom:6px; line-height:1.25; }
  .feat-body p{ font-size:13px; color:var(--ink-soft); margin:0 0 10px; line-height:1.5; }
  .feat-meta{ display:flex; justify-content:space-between; align-items:center; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft); }

  .ph-1{ background:linear-gradient(135deg,#FF5B35,#C23F1F); }
  .ph-2{ background:linear-gradient(135deg,#1F6F5C,#0F3E32); }
  .ph-3{ background:linear-gradient(135deg,#C98A2B,#8A611C); }
  .ph-4{ background:linear-gradient(135deg,#14181A,#3A4A44); }
  .ph-pattern{ position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.18) 1.5px, transparent 1.5px); background-size:14px 14px; }

  .stat-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:56px; padding-top:44px; border-top:1px solid var(--line); }
  .stat{ text-align:center; }
  .stat h3{ font-size:40px; font-weight:700; }
  .stat span{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); }

  /* CTA */
  .cta-strip{
    margin-top:10px; border-radius:24px; padding:52px 48px; display:flex; align-items:center; justify-content:space-between;
    gap:24px; flex-wrap:wrap; background:var(--ink); color:#fff;
    opacity:0; transform:translateY(20px);
  }
  .cta-strip.revealed{ animation:fadeUp .7s ease forwards; }
  .cta-strip h3{ font-size:28px; margin-bottom:8px; }
  .cta-strip p{ margin:0; color:rgba(255,255,255,.7); font-size:14.5px; max-width:44ch; }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--ink); color:var(--bg-soft); padding:64px 0 28px; }
  .foot-subscribe{
    display:flex; flex-wrap:wrap; align-items:flex-end; gap:20px 28px;
    margin-bottom:40px; padding-bottom:36px;
    border-bottom:1px solid rgba(245,244,240,.14);
  }
  .foot-subscribe-copy{ flex:1; min-width:220px; }
  .foot-subscribe-copy h5{ margin-bottom:8px; }
  .foot-subscribe-copy p{ margin:0; font-size:13.5px; color:rgba(245,244,240,.62); max-width:36ch; }
  .foot-subscribe-form{
    display:flex; flex-wrap:wrap; gap:10px; align-items:center; flex:1.2; min-width:260px;
  }
  .foot-subscribe-form input[type="email"]{
    flex:1; min-width:180px; padding:12px 14px; border-radius:12px;
    border:1.5px solid rgba(245,244,240,.28); background:rgba(255,255,255,.06);
    color:#fff; font:inherit; font-size:14px;
  }
  .foot-subscribe-form input[type="email"]::placeholder{ color:rgba(245,244,240,.4); }
  .foot-subscribe-form input[type="email"]:focus{
    outline:none; border-color:var(--accent); background:rgba(255,255,255,.1);
  }
  .foot-subscribe-form .hp{
    position:absolute; left:-9999px; width:1px; height:1px; opacity:0; pointer-events:none;
  }
  .foot-subscribe-form .btn{ white-space:nowrap; }
  .foot-subscribe-msg{
    flex-basis:100%; margin:0; font-size:13px; color:rgba(245,244,240,.78);
  }
  .foot-subscribe-msg.is-ok{ color:#9be7b8; }
  .foot-subscribe-msg.is-err{ color:#ffb4a4; }
  .sr-only{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  .foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr 1fr; gap:32px; margin-bottom:48px; }
  footer .logo{ color:#fff; margin-bottom:14px; }
  footer p.desc{ font-size:13px; color:rgba(245,244,240,.6); max-width:30ch; }
  footer h5{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); margin-bottom:16px; }
  footer a{ display:block; font-size:13.5px; color:rgba(245,244,240,.72); margin-bottom:10px; transition:color .2s ease; }
  footer a:hover{ color:#fff; }
  .foot-bottom{ border-top:1px solid rgba(245,244,240,.14); padding-top:22px; display:flex; justify-content:space-between; font-family:'IBM Plex Mono',monospace; font-size:11px; color:rgba(245,244,240,.5); flex-wrap:wrap; gap:10px; }

  .totop{
    position:fixed; right:26px; bottom:26px; width:48px; height:48px; border-radius:50%; background:var(--ink); color:#fff;
    border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow);
    opacity:0; pointer-events:none; transform:translateY(10px); transition:opacity .3s ease, transform .3s ease, background .2s ease; z-index:70;
  }
  .totop.show{ opacity:1; pointer-events:auto; transform:translateY(0); }
  .totop:hover{ background:var(--accent); }

  /* ---------- POPUP EN CONSTRUCCIÓN ---------- */
  .wip-overlay{
    position:fixed; inset:0; z-index:500; background:rgba(20,24,26,.55);
    display:flex; align-items:center; justify-content:center; padding:24px;
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .28s ease, visibility .28s ease;
  }
  .wip-overlay.is-open{ opacity:1; visibility:visible; pointer-events:auto; }
  .wip-modal{
    width:min(440px,100%); background:#fff; border:1.5px solid var(--ink);
    border-radius:22px; padding:32px 28px 28px; text-align:center;
    box-shadow:var(--shadow); transform:translateY(12px) scale(.98);
    transition:transform .3s ease;
  }
  .wip-overlay.is-open .wip-modal{ transform:translateY(0) scale(1); }
  .wip-modal img{ width:72px; height:auto; margin:0 auto 16px; display:block; }
  .wip-modal .wip-tag{
    font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--accent-deep); margin-bottom:10px;
  }
  .wip-modal h2{ font-size:24px; margin-bottom:12px; }
  .wip-modal p{ margin:0 0 10px; color:var(--ink-soft); font-size:14.5px; line-height:1.55; }
  .wip-modal .btn{ margin-top:18px; width:100%; justify-content:center; }
  body.wip-open{ overflow:hidden; }

  @media (max-width:980px){
    .cat-grid{ grid-template-columns:repeat(3,1fr); }
    .foot-grid{ grid-template-columns:1fr 1fr 1fr; }
    .stat-strip{ grid-template-columns:1fr 1fr; row-gap:24px; }
    .welcome{ grid-template-columns:1fr; }
    .welcome-body{ padding:8px 28px 32px; }
    .welcome-media{ padding:24px 24px 8px; min-height:0; }
  }
  @media (max-width:680px){
    /* backdrop-filter atrapa position:fixed — lo apagamos en móvil */
    header{
      backdrop-filter:none; -webkit-backdrop-filter:none; background:#fff;
    }
    .mainnav-desktop{ display:none !important; }
    .nav-backdrop{ display:block; }
    nav.mainnav-drawer{
      display:flex; position:fixed; top:0; right:0; bottom:0; left:auto;
      width:min(320px, 86vw); height:100dvh; max-height:100vh;
      background:#fff; flex-direction:column; align-items:flex-start;
      padding:88px 28px 32px; gap:8px;
      transform:translateX(110%);
      transition:transform .32s ease, visibility .32s ease;
      box-shadow:-12px 0 40px rgba(0,0,0,.18);
      z-index:210;
      visibility:hidden; pointer-events:none;
      overflow-y:auto;
    }
    nav.mainnav-drawer.open{
      transform:translateX(0);
      visibility:visible; pointer-events:auto;
    }
    nav.mainnav-drawer[hidden]{ display:flex !important; }
    nav.mainnav-drawer a:not(.btn){
      font-size:18px; padding:12px 0; width:100%;
      border-bottom:1px solid var(--line);
    }
    nav.mainnav-drawer a:not(.btn)::after{ display:none; }
    nav.mainnav-drawer a.btn{ margin-top:18px; width:100%; justify-content:center; }
    .navtoggle{ display:flex; }
    .cat-grid{ grid-template-columns:1fr 1fr; }
    .foot-grid{ grid-template-columns:1fr 1fr; }
    .stat-strip{ grid-template-columns:1fr 1fr; }
    .cta-strip{ padding:36px 26px; }
    .wrap{ padding:0 20px; }
    .logo .brand-txt{ font-size:18px; }
    .hero{ padding:48px 0 56px; }
    .searchbar-inner{ padding:6px 6px 6px 16px; gap:8px; }
    .searchbar-inner button{ padding:10px 14px; font-size:13px; }
    .search-results.open{ max-height:min(280px, 45vh); }
  }
  /* ---------- FICHA NEGOCIO (estilo perfil-negocio) ---------- */
  .ficha-crumb{
    font-size:13px; color:var(--ink-soft); padding:14px 0 0; line-height:1.4;
  }
  .ficha-crumb a:hover{ color:var(--ink); }

  .ficha-cover{
    height:220px; position:relative; overflow:hidden;
    background:linear-gradient(135deg,#1F6F5C,#0F3E32); margin-top:8px;
  }
  .ficha-cover.has-img{ background:#14181A; }
  .ficha-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
  .ficha-cover .ph-pattern{
    position:absolute; inset:0;
    background-image:radial-gradient(rgba(255,255,255,.16) 1.5px, transparent 1.5px);
    background-size:16px 16px;
  }
  .ficha-cover.is-locked .ph-pattern{ filter:blur(5px); opacity:.55; }
  .ficha-cover-lock{
    position:absolute; inset:0; display:none; align-items:center; justify-content:center;
    flex-direction:column; gap:8px; text-align:center; padding:20px; z-index:2;
  }
  .ficha-cover.is-locked .ficha-cover-lock{ display:flex; }
  .ficha-cover-lock .ic{
    width:42px; height:42px; border-radius:50%; background:var(--ink); color:#fff;
    display:flex; align-items:center; justify-content:center;
  }
  .ficha-cover-lock span{
    font-size:13px; font-weight:600; color:#fff; max-width:28ch;
    text-shadow:0 1px 8px rgba(0,0,0,.35);
  }

  .ficha-biz-header{ padding:0 0 28px; }
  .ficha-biz-header .biz-top{ display:flex; gap:20px; align-items:flex-end; margin-top:-48px; }
  .biz-avatar{
    width:96px; height:96px; border-radius:22px; background:var(--accent); color:#fff;
    font-size:32px; font-weight:700; display:flex; align-items:center; justify-content:center;
    border:4px solid #fff; box-shadow:var(--shadow); flex-shrink:0;
    font-family:'Bricolage Grotesque',sans-serif;
  }
  .biz-title-row{ flex:1; padding-top:52px; min-width:0; }
  .badges{ display:flex; gap:8px; align-items:center; margin-bottom:8px; flex-wrap:wrap; }
  .badge{
    font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase;
    letter-spacing:.05em; padding:4px 11px; border-radius:999px;
  }
  .badge.verificado{ background:rgba(31,111,92,.12); color:var(--teal); }
  .badge.destacado{ background:var(--accent); color:#fff; }
  .badge.cat{ background:var(--bg-soft); color:var(--ink-soft); }
  .biz-title-row h1{ font-size:clamp(24px,4vw,32px); margin-bottom:10px; }
  .biz-meta{
    display:flex; gap:14px 18px; flex-wrap:wrap; font-size:13.5px;
    color:var(--ink-soft); align-items:center;
  }
  .biz-meta > span{ display:inline-flex; align-items:center; gap:6px; }

  .ficha-biz-header .action-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
  .action-btn{ position:relative; }
  .action-btn .tip{
    position:absolute; bottom:calc(100% + 8px); left:0; transform:translateY(4px);
    background:var(--ink); color:#fff; font-size:11.5px; padding:7px 12px; border-radius:8px;
    white-space:normal; max-width:200px; opacity:0; pointer-events:none;
    transition:opacity .2s ease, transform .2s ease; z-index:5; line-height:1.35;
  }
  @media (hover:hover){
    .action-btn:hover .tip{ opacity:1; transform:translateY(0); }
  }

  .ficha-layout{
    display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:36px; align-items:start;
  }
  .ficha-card{
    background:#fff; border:1.5px solid var(--ink); border-radius:var(--radius);
    padding:24px; margin-bottom:22px;
  }
  .ficha-card h3{ font-size:18px; margin:0 0 14px; display:flex; align-items:center; gap:8px; }
  .ficha-card > p, .ficha-card .ficha-text{
    font-size:14.5px; line-height:1.65; color:var(--ink-soft); margin:0;
  }

  .ficha-lock-wrap{ position:relative; }
  .ficha-locked{ filter:blur(4px); opacity:.45; pointer-events:none; user-select:none; }
  .ficha-lock-badge{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    flex-direction:column; gap:8px; z-index:5; text-align:center; padding:12px; pointer-events:none;
  }
  .ficha-lock-badge .ic{
    width:38px; height:38px; border-radius:50%; background:var(--ink); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:16px;
  }
  .ficha-lock-badge span{
    font-size:12.5px; font-weight:600; max-width:22ch; color:var(--ink);
    background:rgba(255,255,255,.88); padding:6px 10px; border-radius:8px;
  }

  .ficha-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
  .ficha-gallery .ph{ aspect-ratio:1; border-radius:12px; background:linear-gradient(135deg,#FF5B35,#C23F1F); }
  .ficha-gallery .ph:nth-child(2){ background:linear-gradient(135deg,#1F6F5C,#0F3E32); }
  .ficha-gallery .ph:nth-child(3){ background:linear-gradient(135deg,#C98A2B,#8A611C); }

  .rank-strip{
    display:flex; align-items:center; gap:12px; flex-wrap:wrap;
    background:linear-gradient(90deg, rgba(255,91,53,.10), transparent);
    border:1.5px solid var(--accent); border-radius:12px; padding:14px 18px; margin-bottom:18px;
  }
  .rank-strip b{ font-size:14px; }
  .rank-strip span{ font-size:12px; color:var(--ink-soft); }

  .map-ph{
    height:150px; border-radius:12px; background:var(--bg-soft);
    position:relative; overflow:hidden; margin-bottom:14px;
  }
  .map-ph::before{
    content:''; position:absolute; inset:0;
    background-image:linear-gradient(var(--line) 1px, transparent 1px),
      linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:20px 20px;
  }
  .map-pin{ position:absolute; top:50%; left:50%; transform:translate(-50%,-60%); font-size:26px; z-index:1; }

  .claim-card{ background:var(--ink); color:#fff; text-align:center; }
  .claim-card h3{ color:#fff; justify-content:center; }
  .claim-card p{ color:rgba(255,255,255,.65); font-size:13.5px; margin:0 0 14px; }

  .ficha-form .field{ margin-bottom:12px; }
  .ficha-form label{ display:block; font-size:13px; font-weight:600; }
  .ficha-form input, .ficha-form select, .ficha-form textarea{
    width:100%; margin-top:6px; padding:12px 14px; border:1.5px solid var(--ink);
    border-radius:12px; font:inherit; background:#fff;
  }
  .ficha-form .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }

  @media (max-width:900px){
    .ficha-layout{ grid-template-columns:1fr; gap:0; }
    .ficha-gallery{ grid-template-columns:repeat(2,1fr); }
    .ficha-cover{ height:160px; }
    .biz-title-row{ padding-top:56px; }
  }
  @media (max-width:520px){
    .biz-avatar{ width:76px; height:76px; font-size:24px; border-radius:18px; }
    .ficha-biz-header .biz-top{ margin-top:-38px; }
    .biz-title-row{ padding-top:44px; }
    .ficha-biz-header .action-row .btn{ padding:10px 14px; font-size:13px; }
    .ficha-form .field-row{ grid-template-columns:1fr; }
  }

  /* ---------- Media eventos / noticias ---------- */
  .media-hero{
    width:100%; aspect-ratio:16 / 9; margin:0 0 20px;
    border-radius:18px; overflow:hidden; border:1.5px solid var(--ink);
    background:var(--bg-soft); position:relative;
  }
  .media-hero img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center; display:block;
  }
  .news-row{
    display:grid; grid-template-columns:148px 1fr; gap:16px; align-items:center;
    border-bottom:1px solid var(--line); padding:20px 0; color:inherit;
  }
  .news-row.no-thumb{ grid-template-columns:1fr; }
  .news-row-thumb{
    width:148px; aspect-ratio:4 / 3; border-radius:12px; overflow:hidden;
    border:1.5px solid var(--line); background:var(--bg-soft); position:relative; flex-shrink:0;
  }
  .news-row-thumb img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center; display:block;
  }
  .admin-media-preview{
    width:100%; max-width:280px; aspect-ratio:16 / 9; margin-top:12px;
    border-radius:12px; overflow:hidden; border:1px solid var(--line);
    background:var(--bg-soft); position:relative;
  }
  .admin-media-preview img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center; display:block;
  }
  @media (max-width:560px){
    .news-row{ grid-template-columns:1fr; }
    .news-row-thumb{ width:100%; aspect-ratio:16 / 9; }
    .media-hero{ aspect-ratio:3 / 2; border-radius:14px; }
  }
