.fed-directory {
  --fed-button-color:#1d4ed8;
  font-family:inherit;
  color:#0f172a;
}
.fed-directory * { box-sizing:border-box; }
.fed-hero,
.fed-pricing-grid {
  display:grid;
  gap:24px;
}
.fed-hero {
  grid-template-columns:1.1fr .9fr;
  align-items:center;
  background:linear-gradient(135deg,#f8fbff,#ffffff);
  border:1px solid #e5e7eb;
  border-radius:28px;
  padding:28px;
  box-shadow:0 12px 40px rgba(15,23,42,.06);
}
.fed-title { font-size:clamp(28px,4vw,42px); line-height:1.1; margin:8px 0 12px; }
.fed-short-description { font-size:18px; color:#475569; margin:0 0 18px; }
.fed-badge,
.fed-discount-badge,
.fed-popular {
  display:inline-block;
  border-radius:999px;
  padding:8px 12px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}
.fed-featured-badge,
.fed-popular { background:#dbeafe; color:#1d4ed8; }
.fed-top-actions { display:flex; flex-wrap:wrap; gap:12px; margin:16px 0; }
.fed-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:46px;
  padding:12px 18px;
  border-radius:14px;
  text-decoration:none;
  cursor:pointer;
  border:none;
  transition:.2s ease;
  font-weight:700;
}
.fed-btn:hover { transform:translateY(-1px); }
.fed-btn-primary { background:var(--fed-button-color); color:#fff; }
.fed-btn-secondary { background:#eef2ff; color:#1e3a8a; }
.fed-btn-mini {
  min-height:32px;
  padding:7px 10px;
  font-size:11px;
  border-radius:10px;
}
.fed-trust-row {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  color:#475569;
  font-size:14px;
}
.fed-hero-media img,
.fed-gallery-thumbs img {
  max-width:100%;
  height:auto;
  border-radius:18px;
}
.fed-gallery-thumbs { display:flex; gap:12px; flex-wrap:wrap; margin-top:16px; }
.fed-gallery-thumbs a { display:block; width:78px; }
.fed-description-section,
.fed-pricing-section,
.fed-comparison-section,
.fed-related-section {
  margin-top:28px;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:24px;
  padding:28px;
  box-shadow:0 12px 40px rgba(15,23,42,.04);
}
.fed-pricing-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:16px;
}
.fed-price-card {
  position:relative;
  border:1px solid #e2e8f0;
  border-radius:22px;
  padding:24px;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
  transition:.2s ease;
  display:flex;
  flex-direction:column;
}
.fed-price-card:hover { transform:translateY(-3px); }
.fed-price-card.is-popular {
  border-color:#93c5fd;
  box-shadow:0 18px 50px rgba(37,99,235,.15);
}
.fed-price-wrap { margin:12px 0 18px; }
.fed-old-price { text-decoration:line-through; color:#94a3b8; margin-bottom:6px; }
.fed-final-price { font-size:34px; font-weight:800; line-height:1; }
.fed-features { margin:16px 0; padding-left:18px; color:#334155; flex:1; }
.fed-features li { margin:0 0 10px; }
.fed-comparison-table { width:100%; border-collapse:collapse; }
.fed-comparison-table th,
.fed-comparison-table td { border-bottom:1px solid #e5e7eb; padding:14px; text-align:left; }
.fed-modal[hidden] { display:none; }
.fed-modal { position:fixed; inset:0; z-index:9999; }
.fed-modal-backdrop { position:absolute; inset:0; background:rgba(2,6,23,.58); }
.fed-modal-dialog {
  position:relative;
  z-index:2;
  width:min(92vw,560px);
  margin:8vh auto 0;
  background:#fff;
  border-radius:24px;
  padding:24px;
  box-shadow:0 24px 80px rgba(0,0,0,.25);
}
.fed-modal-close {
  position:absolute;
  top:14px;
  right:14px;
  width:36px;
  height:36px;
  border:none;
  border-radius:999px;
  background:#f1f5f9;
  cursor:pointer;
  font-size:22px;
}
.fed-enquiry-form label { display:block; margin-bottom:12px; }
.fed-enquiry-form input,
.fed-enquiry-form textarea {
  width:100%;
  margin-top:6px;
  padding:12px 14px;
  border:1px solid #cbd5e1;
  border-radius:12px;
}
.fed-buy-summary {
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:16px;
  margin:16px 0;
}
.fed-sticky-mobile-bar {
  position:fixed;
  left:12px;
  right:12px;
  bottom:12px;
  display:none;
  gap:10px;
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:18px;
  padding:12px;
  box-shadow:0 14px 40px rgba(15,23,42,.15);
  z-index:999;
}
@media (max-width: 960px) {
  .fed-hero,
  .fed-pricing-grid { grid-template-columns:1fr; }
}
@media (max-width: 768px) {
  .fed-sticky-mobile-bar { display:flex; }
  .fed-description-section,
  .fed-pricing-section,
  .fed-comparison-section,
  .fed-related-section,
  .fed-hero { padding:20px; }
}

.fed-directory-listing {
  display:grid;
  gap:16px;
  align-items:start;
  justify-content:center;
}
.fed-listing-columns-1 { grid-template-columns:1fr; }
.fed-listing-columns-2 { grid-template-columns:repeat(2,12cm); }
.fed-listing-columns-3 { grid-template-columns:repeat(3,12cm); }

.fed-compact-card {
  width:100%;
  min-height:8cm;
  max-width:12cm;
  padding:10px;
  border:1px solid #dbe3ef;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,.06);
  display:flex;
  flex-direction:column;
  gap:10px;
  overflow:hidden;
}
.fed-compact-header {
  display:grid;
  grid-template-columns:76px 1fr;
  gap:10px;
  align-items:start;
}
.fed-compact-image-wrap {
  width:76px;
  height:76px;
  overflow:hidden;
  border-radius:10px;
  background:#f8fafc;
}
.fed-compact-image {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.fed-compact-content,
.fed-compact-headcopy {
  min-width:0;
}
.fed-compact-topline,
.fed-compact-labels,
.fed-readmore-actions {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.fed-compact-topline {
  justify-content:space-between;
  margin-bottom:4px;
  gap:4px 6px;
}
.fed-compact-badge,
.fed-compact-price-label,
.fed-compact-chip {
  display:inline-flex;
  align-items:center;
  min-height:18px;
  padding:2px 7px;
  font-size:10px;
  line-height:1.1;
  border-radius:999px;
}
.fed-compact-badge {
  background:#dbeafe;
  color:#1d4ed8;
  font-weight:700;
}
.fed-compact-price-label {
  background:#eff6ff;
  color:#1e3a8a;
  font-weight:700;
}
.fed-compact-chip {
  background:#f1f5f9;
  color:#475569;
}
.fed-compact-title {
  margin:0 0 4px;
  font-size:13px;
  line-height:1.2;
  font-weight:800;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
  word-break:break-word;
}
.fed-compact-header.no-image {
  grid-template-columns:1fr;
}

.fed-compact-desc {
  margin:0;
  font-size:10px;
  line-height:1.28;
  color:#475569;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}
.fed-compact-plans {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:2px;
}
.fed-compact-plan {
  border:1px solid #e2e8f0;
  border-radius:10px;
  padding:8px 6px;
  text-align:center;
  background:#fff;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:5px;
}
.fed-compact-plan.is-popular {
  border-color:#93c5fd;
  background:#f8fbff;
}
.fed-compact-plan-name {
  font-size:10px;
  line-height:1.15;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fed-compact-plan-price {
  margin-top:1px;
  font-size:14px;
  line-height:1;
  font-weight:800;
}
.fed-compact-plan-meta {
  margin:0;
  font-size:9px;
  line-height:1.1;
  color:#64748b;
}
.fed-btn-micro {
  min-height:24px;
  padding:5px 6px;
  border-radius:8px;
  font-size:9px;
  line-height:1.1;
  width:100%;
}
.fed-readmore {
  margin-top:auto;
  border-top:1px solid #e2e8f0;
  padding-top:8px;
}
.fed-readmore summary {
  list-style:none;
  cursor:pointer;
  font-size:10px;
  font-weight:700;
  color:var(--fed-button-color);
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.fed-readmore summary::-webkit-details-marker { display:none; }
.fed-readmore-body {
  margin-top:6px;
}
.fed-readmore-features {
  font-size:10px;
  line-height:1.35;
  color:#475569;
  margin-bottom:6px;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}
.fed-readmore-actions {
  justify-content:flex-start;
}
.fed-readmore-actions .fed-btn-mini {
  min-height:26px;
  padding:6px 8px;
  font-size:9px;
  border-radius:8px;
  flex:1 1 0;
}
@media (max-width: 1400px) {
  .fed-listing-columns-3 {
    grid-template-columns:repeat(2,12cm);
  }
}
@media (max-width: 1100px) {
  .fed-listing-columns-2,
  .fed-listing-columns-3 {
    grid-template-columns:1fr;
  }
  .fed-compact-card { max-width:none; min-height:auto; }
}
@media (max-width: 640px) {
  .fed-compact-card { padding:10px; }
  .fed-compact-header { grid-template-columns:60px 1fr; }
  .fed-compact-image-wrap { width:60px; height:60px; }
  .fed-compact-plans { gap:6px; }
  .fed-compact-plan { padding:6px 4px; }
  .fed-compact-title { font-size:12px; }
  .fed-compact-desc { font-size:10px; }
}


.fed-readmore-full {
  border-top:1px solid #e2e8f0;
  padding-top:10px;
}
.fed-readmore-header {
  display:grid;
  grid-template-columns:96px 1fr;
  gap:12px;
  align-items:start;
  margin-bottom:12px;
}
.fed-readmore-image {
  width:96px;
  height:96px;
  overflow:hidden;
  border-radius:12px;
  background:#f8fafc;
}
.fed-readmore-image-el {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.fed-readmore-title {
  margin:0 0 4px;
  font-size:18px;
  line-height:1.2;
}
.fed-readmore-subtitle {
  margin:0;
  color:#475569;
  font-size:13px;
  line-height:1.4;
}
.fed-readmore-content {
  font-size:13px;
  line-height:1.55;
  color:#334155;
  margin-bottom:12px;
}
.fed-readmore-content > *:first-child { margin-top:0; }
.fed-readmore-content > *:last-child { margin-bottom:0; }
.fed-readmore-pricing {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.fed-readmore-plan {
  position:relative;
  border:1px solid #dbe3ef;
  border-radius:12px;
  padding:12px;
  background:#fff;
}
.fed-readmore-plan.is-popular {
  border-color:#93c5fd;
  box-shadow:0 8px 18px rgba(37,99,235,.08);
}
.fed-readmore-popular {
  display:inline-block;
  margin-bottom:6px;
  padding:3px 8px;
  border-radius:999px;
  background:#dbeafe;
  color:#1d4ed8;
  font-size:10px;
  font-weight:700;
}
.fed-readmore-plan-name {
  font-size:14px;
  font-weight:800;
  margin-bottom:6px;
}
.fed-readmore-plan-prices {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:baseline;
  margin-bottom:8px;
}
.fed-readmore-old-price {
  color:#94a3b8;
  text-decoration:line-through;
  font-size:12px;
}
.fed-readmore-final-price {
  font-size:20px;
  line-height:1;
  font-weight:800;
}
.fed-readmore-discount {
  color:#1d4ed8;
  background:#eff6ff;
  border-radius:999px;
  padding:2px 7px;
  font-size:10px;
  font-weight:700;
}
.fed-readmore-plan-features {
  margin:0 0 10px 16px;
  padding:0;
  color:#475569;
  font-size:12px;
  line-height:1.45;
}
.fed-readmore-plan-features li { margin:0 0 4px; }
.fed-readmore-plan .fed-btn {
  width:100%;
  min-height:34px;
  font-size:11px;
  border-radius:10px;
}
@media (max-width: 900px) {
  .fed-readmore-pricing { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
  .fed-readmore-header { grid-template-columns:72px 1fr; }
  .fed-readmore-image { width:72px; height:72px; }
  .fed-readmore-title { font-size:15px; }
}
