.gzwp-app{
  /* ===== COLOR THEME — edit these to re-color the whole block ===== */
  --gzwp-accent:#1e4fa3;
  --gzwp-accent-dark:#153b7d;
  --gzwp-card-bg:#f2f6fc;
  --gzwp-tag-bg:#e7effc;
  --gzwp-tag-text:#1e4fa3;
  --gzwp-status-bg:#eaf1ff;
  --gzwp-status-text:#1a3f7a;
  --gzwp-ink:#16202e;
  --gzwp-muted:#5b6b7d;
  --gzwp-line:#dbe4f0;
  /* ================================================================== */

  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--gzwp-ink);

  /* ===== ELEMENTOR FULL-WIDTH COMPATIBILITY =====
     No fixed/restrictive max-width on the main wrapper — it simply fills
     whatever container holds it. Inside a normal boxed page/column it
     stays boxed; inside an Elementor "Full Width" section/container it
     stretches to the full available width automatically. width:100% (not
     100vw) avoids the horizontal-scrollbar bug that 100vw causes. */
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  box-sizing:border-box;
  overflow-x:hidden;
}
.gzwp-app *{ box-sizing:border-box; }
.gzwp-app img{ max-width:100%; height:auto; }

/* Extra safety net: some themes/page-builders put a max-width on generic
   wrapper elements inside their containers. These rules are scoped ONLY to
   .gzwp-app nested in those containers — Elementor's own classes/layout are
   never touched or overridden globally. */
.elementor-widget-container .gzwp-app,
.elementor-element .gzwp-app,
.e-con .gzwp-app,
.e-con-inner .gzwp-app,
.elementor-section .gzwp-app{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}
.gzwp-app a{ color:var(--gzwp-accent-dark); }
.gzwp-app h1{ font-size:28px; margin:0 0 8px; line-height:1.3; }
.gzwp-app h2{ font-size:22px; margin:0 0 6px; line-height:1.35; }
.gzwp-app h3{ font-size:16px; margin:0 0 10px; }
.gzwp-app p{ margin:0 0 16px; }
.gzwp-app .gzwp-sub{ font-size:15px; color:var(--gzwp-muted); margin:0 0 24px; line-height:1.55; }

.gzwp-app .gzwp-controls{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px; }
.gzwp-app .gzwp-search{ flex:1 1 240px; position:relative; }
.gzwp-app .gzwp-search input{
  width:100%; padding:12px 14px 12px 38px; border:1px solid var(--gzwp-line); border-radius:9px;
  font-size:14.5px; background:#fff; outline:none;
}
.gzwp-app .gzwp-search input:focus{ border-color:var(--gzwp-accent); }
.gzwp-app .gzwp-search::before{
  content:"\1F50D"; position:absolute; left:13px; top:50%; transform:translateY(-50%);
  font-size:13px; opacity:.55;
}
.gzwp-app select.gzwp-sel{
  padding:12px; border:1px solid var(--gzwp-line); border-radius:9px; background:#fff;
  font-size:14px; color:var(--gzwp-ink); min-width:150px;
}
.gzwp-app .gzwp-count{ font-size:13px; color:var(--gzwp-muted); margin:0 0 14px; }

.gzwp-app .gzwp-card{
  background:var(--gzwp-card-bg); border:1px solid var(--gzwp-line); border-left:5px solid var(--gzwp-accent);
  border-radius:10px; padding:18px 20px; margin-bottom:16px;
  width:100%; box-sizing:border-box;
}
.gzwp-app .gzwp-card[hidden]{ display:none; }

/* TOP ROW: title left, badges right, same row, vertically centered (flexbox, no absolute positioning) */
.gzwp-app .gzwp-card-top{ display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:8px; }
.gzwp-app .gzwp-card-title{ font-size:17px; font-weight:700; margin:0; line-height:1.4; text-align:left; }
.gzwp-app .gzwp-card-badges{ display:flex; align-items:center; gap:8px; flex:0 0 auto; flex-wrap:wrap; }
.gzwp-app .gzwp-pill{
  flex:0 0 auto; font-size:12px; font-weight:600; padding:5px 12px; border-radius:20px;
  background:var(--gzwp-tag-bg); color:var(--gzwp-tag-text); white-space:nowrap;
}
.gzwp-app .gzwp-status-pill{ background:var(--gzwp-status-bg); color:var(--gzwp-status-text); }

/* Issuing Authority — small identity line under the title, only shown when set */
.gzwp-app .gzwp-card-authority{
  display:flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600;
  color:var(--gzwp-accent-dark); margin:0 0 10px; text-align:left;
}
.gzwp-app .gzwp-card-authority svg{ width:13px; height:13px; flex:0 0 auto; }

/* SUMMARY: directly below header, same left edge as title, full available width */
.gzwp-app .gzwp-card-summary{ font-size:14.5px; color:var(--gzwp-muted); line-height:1.6; margin:0 0 14px; text-align:left; }

/* BOTTOM: Updated/Effective on the left, buttons directly below — normal
   document flow, everything left-aligned (no space-between / margin-left:auto / right:0). */
.gzwp-app .gzwp-card-meta{ text-align:left; font-size:12px; color:var(--gzwp-muted); line-height:1.7; margin:0 0 12px; }
.gzwp-app .gzwp-card-meta b{ color:var(--gzwp-accent-dark); font-weight:700; }
.gzwp-app .gzwp-card-actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

.gzwp-app .gzwp-btn{
  display:inline-flex; align-items:center; gap:7px; border:none; border-radius:8px;
  background:var(--gzwp-accent); color:#fff !important; font-size:13.5px; font-weight:600;
  padding:9px 16px; cursor:pointer; text-decoration:none;
  /* the button text is already "Read More" / "Download" in normal case —
     force-override any theme CSS (e.g. a global `button{text-transform:
     uppercase}` rule) that would otherwise render it in ALL CAPS */
  text-transform:none;
}
.gzwp-app .gzwp-btn:hover{ background:var(--gzwp-accent-dark); }
.gzwp-app .gzwp-btn svg{ width:15px; height:15px; flex:0 0 auto; }

/* Read More + Download on the card: forced to identical outer dimensions
   (measured from the existing Read More button so it matches the current
   design) so neither button's own text/icon length changes its size. */
.gzwp-app .gzwp-card-action-btn{
  width:124px; min-width:124px; height:33px;
  box-sizing:border-box; justify-content:center;
}

.gzwp-app .gzwp-empty{ text-align:center; padding:50px 20px; color:var(--gzwp-muted); font-size:14.5px; display:none; }

.gzwp-app .gzwp-pagination{ display:flex; justify-content:center; align-items:center; gap:6px; flex-wrap:wrap; margin-top:22px; }
.gzwp-app .gzwp-page-btn{
  min-width:36px; height:36px; padding:0 10px; box-sizing:border-box;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--gzwp-line); border-radius:8px; background:#fff;
  color:var(--gzwp-ink); font-size:13.5px; font-weight:600; cursor:pointer;
}
.gzwp-app .gzwp-page-btn:hover{ border-color:var(--gzwp-accent); color:var(--gzwp-accent-dark); }
.gzwp-app .gzwp-page-btn.is-active{ background:var(--gzwp-accent); border-color:var(--gzwp-accent); color:#fff !important; }
.gzwp-app .gzwp-page-btn:disabled{ opacity:.4; cursor:default; }
.gzwp-app .gzwp-page-btn:disabled:hover{ border-color:var(--gzwp-line); color:var(--gzwp-ink); }

.gzwp-app .gzwp-back-link{
  display:inline-flex; align-items:center; gap:6px; font-size:13.5px; color:var(--gzwp-muted);
  text-decoration:none; margin-bottom:18px; cursor:pointer; border:none; background:none; padding:0;
}
.gzwp-app .gzwp-back-link:hover{ color:#5636d9; }

/* ==========================================================
   READ MORE DETAIL PAGE — separate purple/indigo palette,
   scoped entirely to .gzwp-detail-card so the list/card page
   above keeps its own blue theme untouched. */
.gzwp-app .gzwp-detail-card{
  --gzwp-dv-accent:#6d4aff;
  --gzwp-dv-accent-dark:#5636d9;
  --gzwp-dv-accent-tint:#f2eeff;
  --gzwp-dv-green:#0f9d6b;
  --gzwp-dv-green-tint:#e6f7ef;
  --gzwp-dv-green-text:#1c4b3a;
  --gzwp-dv-ink:#1b1e3d;
  --gzwp-dv-muted:#6b7280;
  --gzwp-dv-line:#e7e5f5;

  background:#fff; border:1px solid var(--gzwp-dv-line); border-left:none;
  border-radius:14px; padding:26px 28px;
  box-shadow:0 1px 3px rgba(30,20,80,.06), 0 8px 24px rgba(30,20,80,.06);
}

.gzwp-app .gzwp-detail-title-row{ display:flex; align-items:flex-start; gap:12px; margin:0 0 14px; }
.gzwp-app .gzwp-detail-title-bar{ flex:0 0 4px; width:4px; border-radius:4px; background:var(--gzwp-dv-accent); align-self:stretch; min-height:26px; }
.gzwp-app .gzwp-detail-title{ font-size:21px; font-weight:800; line-height:1.35; color:var(--gzwp-dv-ink); margin:0; }

.gzwp-app .gzwp-detail-badges{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 20px 16px; }
.gzwp-app .gzwp-detail-pill{
  display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700;
  padding:6px 12px; border-radius:20px; background:var(--gzwp-dv-green-tint); color:var(--gzwp-dv-green);
  white-space:nowrap;
}
.gzwp-app .gzwp-detail-pill svg{ width:13px; height:13px; flex:0 0 auto; }
.gzwp-app .gzwp-detail-pill.is-accent{ background:var(--gzwp-dv-accent-tint); color:var(--gzwp-dv-accent-dark); }

.gzwp-app .gzwp-detail-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0 0 24px 16px; }
.gzwp-app .gzwp-detail-gitem{
  display:flex; align-items:flex-start; gap:12px; background:#fafaff;
  border:1px solid var(--gzwp-dv-line); border-radius:12px; padding:14px 16px;
}
.gzwp-app .gzwp-detail-gicon{ flex:0 0 auto; width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; }
.gzwp-app .gzwp-detail-gicon svg{ width:17px; height:17px; flex:0 0 auto; }
.gzwp-app .gzwp-detail-gicon.c-purple{ background:#efe9ff; color:#6d4aff; }
.gzwp-app .gzwp-detail-gicon.c-blue{ background:#e7f0ff; color:#2f6fe4; }
.gzwp-app .gzwp-detail-gicon.c-green{ background:#e6f7ef; color:#0f9d6b; }
.gzwp-app .gzwp-detail-gicon.c-orange{ background:#fff1e6; color:#d9720a; }
.gzwp-app .gzwp-detail-gicon.c-pink{ background:#ffe9f1; color:#d63384; }
.gzwp-app .gzwp-detail-glabel{ font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--gzwp-dv-muted); margin:0 0 3px; }
.gzwp-app .gzwp-detail-gvalue{ font-size:14px; font-weight:700; color:var(--gzwp-dv-ink); line-height:1.4; margin:0; }

.gzwp-app .gzwp-detail-section{ margin:0 0 22px 16px; }
.gzwp-app .gzwp-detail-section-head{ display:flex; align-items:center; gap:9px; margin:0 0 10px; }
.gzwp-app .gzwp-detail-section-head svg{ width:16px; height:16px; flex:0 0 auto; color:var(--gzwp-dv-accent); }
.gzwp-app .gzwp-detail-section-head h3{ font-size:14.5px; font-weight:800; color:var(--gzwp-dv-ink); margin:0; }
.gzwp-app .gzwp-detail-section-body{ font-size:14.5px; line-height:1.7; color:var(--gzwp-dv-muted); margin:0; }

.gzwp-app .gzwp-detail-highlights-box{ background:var(--gzwp-dv-green-tint); border-radius:12px; padding:18px 20px; }
.gzwp-app .gzwp-detail-highlights-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
.gzwp-app .gzwp-detail-highlight-item{ display:flex; align-items:flex-start; gap:9px; font-size:13.5px; line-height:1.55; color:var(--gzwp-dv-green-text); }
.gzwp-app .gzwp-detail-highlight-item svg{ flex:0 0 auto; width:15px; height:15px; color:var(--gzwp-dv-green); margin-top:2px; }

.gzwp-app .gzwp-detail-refbox{ background:var(--gzwp-dv-accent-tint); border-radius:12px; padding:16px 18px; font-size:13.5px; line-height:1.6; color:var(--gzwp-dv-accent-dark); }

.gzwp-app .gzwp-detail-download-btn{
  display:flex; align-items:center; justify-content:center; gap:9px; width:100%; box-sizing:border-box;
  background:var(--gzwp-dv-accent); color:#fff !important; font-size:15px; font-weight:700;
  padding:15px 20px; border-radius:14px; text-decoration:none; margin:6px 0 0; cursor:pointer;
  box-shadow:0 6px 16px rgba(109,74,255,.28); text-transform:none;
}
.gzwp-app .gzwp-detail-download-btn:hover{ background:var(--gzwp-dv-accent-dark); }
.gzwp-app .gzwp-detail-download-btn svg{ width:17px; height:17px; flex:0 0 auto; }

.gzwp-app [hidden]{ display:none !important; }

@media (max-width:600px){
  .gzwp-app h1{ font-size:23px; }
  .gzwp-app .gzwp-detail-card{ padding:20px; }
  .gzwp-app .gzwp-detail-grid,
  .gzwp-app .gzwp-detail-highlights-grid{ grid-template-columns:1fr; }
  .gzwp-app .gzwp-detail-grid,
  .gzwp-app .gzwp-detail-badges,
  .gzwp-app .gzwp-detail-section{ margin-left:0; }
}
