/* Moraira.info directory tier patch v1 */
#dirPremium,
#dirPartner,
#dirBasic{
  gap:18px !important;
  align-items:stretch;
}
#dirPremium[data-tier-patch-ready="1"],
#dirPartner[data-tier-patch-ready="1"],
#dirBasic[data-tier-patch-ready="1"]{
  display:grid !important;
}
.dir-grid-premium{ grid-template-columns:repeat(auto-fit,minmax(320px,1fr)) !important; }
.dir-grid-partner{ grid-template-columns:repeat(auto-fit,minmax(270px,1fr)) !important; }
.dir-grid-basic{ grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important; }

.dir-card2{
  position:relative;
  display:flex;
  flex-direction:column;
  height:100%;
  overflow:hidden;
  padding:0;
  border-radius:22px;
  border:1px solid color-mix(in oklab, var(--text) 10%, transparent);
  background:var(--bg);
  box-shadow:0 12px 28px color-mix(in oklab, var(--text) 8%, transparent);
}
.dir-card2:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 34px color-mix(in oklab, var(--text) 12%, transparent);
}

.dir-card2__media,
.dir-card2__media-link{
  position:relative;
  display:block;
  aspect-ratio:16/9;
  overflow:hidden;
  background:linear-gradient(180deg, color-mix(in oklab, var(--surface) 94%, white 6%), color-mix(in oklab, var(--surface-2) 88%, var(--bg)));
  color:inherit;
  text-decoration:none;
}
.dir-card2__media img,
.dir-card2__media-link img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .3s ease;
}
.dir-card2--premium:hover .dir-card2__media img,
.dir-card2--premium:hover .dir-card2__media-link img{
  transform:scale(1.03);
}
.dir-card2__media-fallback{
  width:100%;
  height:100%;
  padding:20px;
  display:flex;
  align-items:flex-end;
  background:
    radial-gradient(120% 140% at 10% 10%, color-mix(in oklab, var(--accent) 22%, transparent), transparent 60%),
    radial-gradient(120% 160% at 100% 0%, color-mix(in oklab, var(--accent-2) 22%, transparent), transparent 58%),
    linear-gradient(180deg, color-mix(in oklab, var(--surface) 86%, var(--bg)), var(--bg));
}
.dir-card2__media-fallback strong{
  display:block;
  font-size:1rem;
  line-height:1.35;
}

.dir-card2__logo-wrap{
  padding:20px 20px 0;
}
.dir-card2__logo-wrap--compact{
  padding-bottom:0;
}
.dir-card2__logo-box{
  height:120px;
  padding:18px;
  border-radius:18px;
  border:1px solid color-mix(in oklab, var(--text) 10%, transparent);
  background:linear-gradient(180deg, color-mix(in oklab, var(--surface) 92%, white 8%), color-mix(in oklab, var(--surface) 94%, var(--bg)));
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.dir-card2--premium .dir-card2__logo-box{
  height:148px;
}
.dir-card2--basic .dir-card2__logo-box{
  height:108px;
}
.dir-card2__logo-box img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center;
}

.dir-tier-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:18px 20px 0;
}
.dir-card2--premium .dir-tier-badges{
  position:absolute;
  top:14px;
  left:14px;
  right:14px;
  z-index:2;
  padding:0;
}
.dir-tier-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 11px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  box-shadow:0 6px 16px color-mix(in oklab, var(--text) 8%, transparent);
}
.dir-tier-pill--premium{
  background:var(--accent);
  color:#fff;
}
.dir-tier-pill--partner{
  background:color-mix(in oklab, var(--accent) 10%, var(--surface));
  color:var(--text);
  border:1px solid color-mix(in oklab, var(--text) 12%, transparent);
}
.dir-tier-pill--featured{
  background:rgba(255,255,255,.92);
  color:var(--accent);
  border:1px solid color-mix(in oklab, var(--accent) 22%, transparent);
}

.dir-card2__body{
  display:flex;
  flex-direction:column;
  gap:12px;
  flex:1;
  padding:18px 20px 14px;
}
.dir-card2__title{
  margin:0;
  font-size:clamp(20px, 2.1vw, 26px);
  line-height:1.22;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.dir-card2__title-link{
  color:inherit;
  text-decoration:none;
}
.dir-card2__title-link:hover{
  text-decoration:none;
}
.dir-card2__description{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.55;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.dir-card2__description--compact{
  -webkit-line-clamp:1;
}
.dir-card2__highlights{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.dir-card2__highlights li{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  background:color-mix(in oklab, var(--accent) 7%, var(--surface));
  border:1px solid color-mix(in oklab, var(--text) 10%, transparent);
  color:var(--text);
  font-size:13px;
  line-height:1.35;
}

.dir-card2__footer{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 20px 18px;
  margin-top:auto;
  border-top:1px solid color-mix(in oklab, var(--text) 8%, transparent);
}
.dir-card2__footer--premium{
  justify-content:space-between;
}
.dir-card2__primary.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  box-shadow:none;
}
.dir-card2__textlink{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--text);
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
}
.dir-card2__textlink:hover{
  text-decoration:none;
}
.dir-card2__textlink--external::after{
  content:'↗';
  font-size:13px;
}

.dir-card2--premium{
  border-color:color-mix(in oklab, var(--accent) 22%, transparent);
  background:linear-gradient(180deg, color-mix(in oklab, var(--accent) 6%, var(--bg)), var(--bg));
}
.dir-card2--partner{
  background:color-mix(in oklab, var(--bg) 95%, var(--surface));
}
.dir-card2--basic{
  background:var(--bg);
}
.dir-card2--basic .dir-card2__body{
  gap:10px;
}
.dir-card2--basic .dir-card2__title{
  font-size:19px;
}

.dir-card2__media-link:focus-visible,
.dir-card2__title-link:focus-visible,
.dir-card2__textlink:focus-visible,
.dir-card2__primary.btn:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
  border-radius:12px;
}

.dir-section + .dir-section{
  margin-top:34px;
}

@media (max-width: 920px){
  .dir-grid-premium{ grid-template-columns:repeat(auto-fit,minmax(280px,1fr)) !important; }
  .dir-grid-partner{ grid-template-columns:repeat(auto-fit,minmax(250px,1fr)) !important; }
}

@media (max-width: 640px){
  #dirPremium,
  #dirPartner,
  #dirBasic{
    gap:14px !important;
  }
  .dir-grid-premium,
  .dir-grid-partner,
  .dir-grid-basic{
    grid-template-columns:1fr !important;
  }
  .dir-card2{
    border-radius:18px;
  }
  .dir-card2__logo-wrap,
  .dir-card2__body,
  .dir-card2__footer{
    padding-left:16px;
    padding-right:16px;
  }
  .dir-card2__logo-wrap{
    padding-top:16px;
  }
  .dir-card2__logo-box,
  .dir-card2--basic .dir-card2__logo-box{
    height:102px;
  }
  .dir-card2--premium .dir-card2__logo-box{
    height:132px;
  }
  .dir-card2__body{
    padding-top:16px;
    padding-bottom:12px;
    gap:10px;
  }
  .dir-card2__title{
    font-size:20px;
  }
  .dir-card2__description{
    font-size:14px;
  }
  .dir-card2__highlights li:nth-child(n+3){
    display:none;
  }
  .dir-card2__footer,
  .dir-card2__footer--premium{
    align-items:flex-start;
    flex-direction:column;
  }
  .dir-card2__primary.btn{
    width:100%;
  }
}


/* mobile CTA refinement + clickable basic logos */
.dir-card .dir-card__media-link,
.dir-card .dir-card__title-link{
  color: inherit;
  text-decoration: none;
}

.dir-card .dir-card__media-link:focus-visible,
.dir-card .dir-card__title-link:focus-visible{
  outline: 2px solid var(--brand, #0b72b9);
  outline-offset: 3px;
  border-radius: 14px;
}

@media (max-width: 640px){
  .dir-card .dir-highlights{
    display: none !important;
  }

  .dir-card .dir-card__body{
    padding-bottom: 14px !important;
  }

  .dir-card .dir-card__summary{
    margin-bottom: 12px !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }

  .dir-card .dir-card__actions{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    align-items: stretch !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: 0 !important;
  }

  .dir-card .dir-card__actions .btn,
  .dir-card .dir-card__actions .dir-card__website-link{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 42px !important;
    width: 100% !important;
    padding: 10px 14px !important;
    border-radius: 999px !important;
    text-decoration: none !important;
    font-weight: 700 !important;
    margin: 0 !important;
  }

  .dir-card .dir-card__actions .btn{
    box-shadow: none !important;
  }

  .dir-card .dir-card__actions .dir-card__website-link{
    border: 1px solid var(--line, #d7e2ea) !important;
    background: #fff !important;
    color: var(--ink, #12263a) !important;
  }

  .dir-card .dir-card__actions .dir-card__website-link::after{
    content: none !important;
  }

  .dir-card.dir-card--basic .dir-card__body,
  .dir-card.dir-card--partner .dir-card__body{
    padding-top: 14px !important;
  }

  .dir-card.dir-card--basic .dir-card__logo-box,
  .dir-card.dir-card--partner .dir-card__logo-box{
    min-height: 112px !important;
  }
}


@media (max-width: 640px){
  .dir-grid-premium,
  .dir-grid-partner,
  .dir-grid-basic{
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .dir-card2{
    border-radius: 18px;
  }

  .dir-card2__media,
  .dir-card2__media-link{
    aspect-ratio: 16/8.7;
  }

  .dir-card2__logo-wrap{
    padding: 14px 14px 0;
  }

  .dir-card2__logo-box{
    height: 92px;
    padding: 14px;
    border-radius: 14px;
  }

  .dir-card2--premium .dir-card2__logo-box{
    height: 112px;
  }

  .dir-card2--basic .dir-card2__logo-box,
  .dir-card2--partner .dir-card2__logo-box{
    height: 92px;
  }

  .dir-card2__body{
    gap: 10px;
    padding: 14px 14px 10px;
  }

  .dir-card2__title{
    font-size: 19px;
    line-height: 1.24;
    -webkit-line-clamp: 2;
  }

  .dir-card2__description{
    font-size: 14px;
    line-height: 1.5;
    -webkit-line-clamp: 2;
  }

  .dir-card2__highlights{
    display: none !important;
  }

  .dir-card2__footer{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    align-items: stretch !important;
    padding: 0 14px 14px !important;
    border-top: 0 !important;
  }

  .dir-card2__primary.btn,
  .dir-card2__textlink{
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 42px !important;
    padding: 10px 14px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    white-space: normal !important;
  }

  .dir-card2__textlink{
    gap: 0 !important;
    border: 1px solid color-mix(in oklab, var(--text) 12%, transparent) !important;
    background: var(--surface) !important;
    color: var(--text) !important;
  }

  .dir-card2__textlink--external::after{
    content: none !important;
  }

  .dir-card2__footer:empty{
    display: none !important;
  }
}
