:root{
    --paper:#faf6ee;
    --ink:#2b2620;
    --ink-soft:#6b6459;
    --line:#e5ddcc;
    --yellow:#e0a11c;
    --yellow-d:#8a6110;
    --pink:#b23a6b;
    --pink-d:#6e2340;
    --teal:#1c7a72;
    --teal-d:#0f4a44;
    --blue:#2b4c7e;
    --blue-d:#1a2f4d;
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',system-ui,sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:640px;margin:0 auto;padding:0 0 4rem;}
  .flores{
    width:100%;
    display:block;
    margin:0;
  }
  .logo-row{
    display:flex;
    justify-content:center;
    padding:1.1rem 1.25rem 0;
  }
  .logo-row img{
    max-width:400px;
    width:100%;
    height:auto;
    display:block;
  }
  header{padding:1.4rem 1.25rem 1.25rem;}
  .ribbon{height:5px;display:flex;}
  .ribbon span{flex:1;}
  .ribbon .r1{background:var(--yellow);}
  .ribbon .r2{background:var(--pink);}
  .ribbon .r3{background:var(--teal);}
  .ribbon .r4{background:var(--blue);}
  h1{
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:2.1rem;
    margin:0.9rem 0 0.15rem;
    letter-spacing:-0.01em;
    text-align:center;
  }
  .subtitle{
    color:var(--ink-soft);
    font-size:0.95rem;
    margin:0 auto 1.4rem;
    line-height:1.6;
    max-width:480px;
    text-align:center;
  }
  .search-box{
    position:sticky;
    top:0;
    background:var(--paper);
    padding:0.6rem 1.25rem 0.9rem;
    z-index:10;
    border-bottom:1px solid var(--line);
  }
  .search-box input{
    width:100%;
    padding:0.85rem 1rem;
    font-size:1rem;
    font-family:inherit;
    border:1.5px solid var(--line);
    border-radius:10px;
    background:#fff;
    color:var(--ink);
    outline:none;
  }
  .search-box input:focus{border-color:var(--teal);}
  .count{
    font-size:0.82rem;
    color:var(--ink-soft);
    padding:0.7rem 1.25rem 0;
  }
  .country-group{margin-top:1.6rem;}
  .country-head{
    display:flex;
    align-items:center;
    gap:0.5rem;
    padding:0 1.25rem;
    margin-bottom:0.6rem;
  }
  .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
  .country-head h2{
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:1.05rem;
    margin:0;
    text-transform:uppercase;
    letter-spacing:0.04em;
  }
  .entry{
    padding:0.85rem 1.25rem;
    border-top:1px solid var(--line);
  }
  .entry .place{
    font-weight:600;
    font-size:0.98rem;
    margin:0 0 0.15rem;
  }
  .entry .meta{
    font-size:0.87rem;
    color:var(--ink-soft);
    margin:0 0 0.5rem;
  }
  .emails{display:flex;flex-wrap:wrap;gap:0.4rem;}
  .emails a{
    display:inline-flex;
    align-items:center;
    gap:0.35rem;
    font-size:0.83rem;
    text-decoration:none;
    padding:0.3rem 0.6rem;
    border-radius:7px;
    border:1px solid;
    font-weight:500;
  }
  .empty{
    text-align:center;
    padding:3rem 1.25rem;
    color:var(--ink-soft);
    font-size:0.95rem;
  }
  footer{
    text-align:center;
    padding:1.75rem 1.25rem;
    color:var(--ink-soft);
    font-size:0.8rem;
    line-height:1.8;
  }
  footer img{
    max-width:200px;
    width:60%;
    height:auto;
    display:block;
    margin:0 auto 0.9rem;
  }
  footer a{
    color:var(--teal-d);
    text-decoration:none;
    font-weight:500;
  }
  footer a:hover{text-decoration:underline;}
