/* =====================================================================
   AL HARAM CABS — REVIEWS SYSTEM CSS
   Powers the home-page reviews section AND the dedicated reviews page.
   Add this to the end of your style.css (or link it as a separate file).

   Reuses your existing theme tokens (--green, --gold, --ink, --muted,
   --line, --green-soft, --green-line, --shadow-sm, --radius, --ease…).
   Only a few review-specific tokens are added below; if any are missing
   from your :root they fall back to sensible values.
   ===================================================================== */
:root{
  --rv-google:#4285f4;         /* Google blue (source badge / accents) */
  --rv-fb:#1877f2;             /* Facebook blue */
  --rv-wa:#25d366;             /* WhatsApp green */
  --rv-star:#f5a623;           /* review star gold (slightly warmer than --gold) */
  --rv-card-radius:18px;
}

/* ---------- shared bits ---------- */
.rv-stars{display:inline-flex;gap:2px;color:var(--rv-star);font-size:.95rem;line-height:1;white-space:nowrap}
.rv-stars .bi-star{color:#d9e2dc}
.rv-src{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.12);font-size:.8rem;flex-shrink:0}
.rv-src.google{color:var(--rv-google)}
.rv-src.facebook{color:var(--rv-fb)}
.rv-src.whatsapp{color:var(--rv-wa)}
.rv-src.manual{color:var(--muted,#647069)}
.rv-src.customer{color:var(--green,#12a063)}
.rv-src i{font-size:.82rem;line-height:1}

/* average stars (supports a fractional fill, e.g. 4.8) */
.rv-stars-avg{position:relative;display:inline-block;white-space:nowrap;font-size:1.15rem;line-height:1;letter-spacing:2px}
.rv-stars-avg .base{color:#d9e2dc}
.rv-stars-avg .fill{position:absolute;left:0;top:0;overflow:hidden;color:var(--rv-star);white-space:nowrap}

/* Review card (used on both home slider and page grid) */
.rv-card{
  background:#fff;border:1px solid var(--line,#e4ebe6);border-radius:var(--rv-card-radius);
  padding:22px 22px 20px;display:flex;flex-direction:column;gap:13px;height:100%;
  box-shadow:var(--shadow-sm,0 10px 26px -18px rgba(11,80,50,.4));
  transition:transform .28s var(--ease,ease),box-shadow .28s,border-color .28s;position:relative;
}
.rv-card:hover{transform:translateY(-5px);box-shadow:0 26px 50px -30px rgba(11,80,50,.5);border-color:var(--green-line,rgba(18,160,99,.18))}
.rv-card-top{display:flex;align-items:center;gap:13px}
.rv-avatar{width:50px;height:50px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-weight:800;font-size:1.15rem;color:#fff;overflow:hidden;box-shadow:0 6px 16px -8px rgba(11,80,50,.5)}
.rv-avatar img{width:100%;height:100%;object-fit:cover}
.rv-id{display:flex;flex-direction:column;min-width:0;gap:2px;flex:1}
.rv-name{display:flex;align-items:center;gap:7px;font-weight:800;font-size:1rem;color:var(--ink,#17241d);line-height:1.2}
.rv-name .rv-verified{display:inline-flex;align-items:center;color:var(--green,#12a063);font-size:.9rem}
.rv-sub{display:flex;align-items:center;gap:8px;color:var(--muted,#647069);font-size:.82rem}
.rv-sub .dot{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.5}
.rv-body{color:var(--ink-2,#20302a);font-size:.95rem;line-height:1.65;margin:0}
/* clamped text on the home slider; full text on the page (see .rv-grid .rv-body) */
.rv-slider .rv-body{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.rv-quote{position:absolute;right:16px;top:14px;font-size:2.2rem;line-height:1;color:var(--green-soft,#e9f7ef);pointer-events:none}
.rv-readmore{align-self:flex-start;margin-top:auto;padding:0;background:none;border:none;color:var(--green-dark,#0e8250);font-weight:700;font-size:.86rem;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.rv-readmore:hover{text-decoration:underline}

/* =====================================================================
   RATING SUMMARY  (compact on home, full on page)
   ===================================================================== */
.rv-summary{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(18px,4vw,44px);justify-content:center}
.rv-summary-score{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}
.rv-summary-score .num{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:clamp(2.8rem,7vw,3.8rem);line-height:1;color:var(--ink,#17241d)}
.rv-summary-score .rv-stars{font-size:1.15rem}
.rv-summary-score .count{color:var(--muted,#647069);font-size:.86rem;font-weight:600}
.rv-summary-score .gbadge{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-size:.8rem;font-weight:700;color:var(--ink-2,#20302a)}
.rv-summary-bars{flex:1;min-width:230px;max-width:420px;display:flex;flex-direction:column;gap:7px}
.rv-bar{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--muted,#647069)}
.rv-bar .lbl{width:34px;text-align:right;font-weight:700;color:var(--ink-2,#20302a);display:inline-flex;align-items:center;gap:3px;justify-content:flex-end}
.rv-bar .lbl i{color:var(--rv-star);font-size:.72rem}
.rv-bar .track{flex:1;height:9px;border-radius:5px;background:#eef3f0;overflow:hidden}
.rv-bar .fill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--gold,#d4af37),var(--rv-star));width:0;transition:width .9s var(--ease,ease)}
.rv-bar .pct{width:38px;text-align:right;font-variant-numeric:tabular-nums}

/* =====================================================================
   HOME SECTION
   ===================================================================== */
.reviews-home{position:relative;overflow:hidden;
  background:radial-gradient(1100px 420px at 50% -10%, rgba(212,175,55,.10), transparent 62%),linear-gradient(180deg,#fbfdfb,#fff 60%)}
.reviews-home .rv-summary{margin:clamp(18px,3vw,30px) auto clamp(6px,2vw,14px)}

/* slider */
.rv-slider-wrap{position:relative;margin-top:clamp(20px,3vw,34px)}
.rv-slider{overflow:hidden;padding:10px 4px}
.rv-track{display:flex;transition:transform .6s var(--ease,cubic-bezier(.4,0,.2,1));will-change:transform}
.rv-slide{flex:0 0 33.3333%;padding:0 clamp(8px,1vw,14px);box-sizing:border-box;min-width:0}
@media (max-width:1000px){.rv-slide{flex:0 0 50%}}
@media (max-width:640px){.rv-slide{flex:0 0 100%}}

.rv-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:clamp(16px,2vw,24px)}
.rv-btn{width:48px;height:48px;border-radius:50%;border:1px solid var(--line,#e4ebe6);background:#fff;color:var(--ink,#17241d);display:grid;place-items:center;cursor:pointer;font-size:1.15rem;transition:.22s;box-shadow:var(--shadow-sm,0 10px 26px -18px rgba(11,80,50,.4))}
.rv-btn:hover{background:var(--green,#12a063);color:#fff;border-color:var(--green,#12a063);transform:translateY(-2px)}
.rv-dots{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:220px}
.rv-dots button{width:9px;height:9px;border-radius:50%;border:none;background:#c9d8d0;cursor:pointer;transition:.25s;padding:0}
.rv-dots button.on{background:var(--gold,#d4af37);width:26px;border-radius:5px}

.rv-cta-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:clamp(22px,3vw,34px)}

/* =====================================================================
   DEDICATED PAGE
   ===================================================================== */
.reviews-page-hero{position:relative;overflow:hidden;padding:clamp(34px,6vw,70px) 0 clamp(26px,4vw,44px);
  background:radial-gradient(1000px 380px at 50% -20%, rgba(18,160,99,.10), transparent 60%),linear-gradient(180deg,#f4faf6,#fff)}
.reviews-page-hero .rv-summary{margin-top:clamp(22px,3vw,34px)}
.reviews-page-hero .rv-cta-row{margin-top:clamp(24px,3vw,32px)}

/* toolbar: filters + sort + search */
.rv-toolbar{position:sticky;top:74px;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);
  border-top:1px solid var(--line,#e4ebe6);border-bottom:1px solid var(--line,#e4ebe6);padding:14px 0}
.rv-toolbar-inner{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.rv-chips{display:flex;flex-wrap:wrap;gap:8px}
.rv-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:999px;border:1px solid var(--line,#e4ebe6);background:#fff;color:var(--ink-2,#20302a);font-weight:700;font-size:.85rem;cursor:pointer;transition:.2s;white-space:nowrap}
.rv-chip:hover{border-color:var(--green-line,rgba(18,160,99,.18));background:var(--green-soft,#e9f7ef)}
.rv-chip.on{background:var(--green,#12a063);border-color:var(--green,#12a063);color:#fff}
.rv-chip i{font-size:.9rem}
.rv-chip .cnt{font-size:.72rem;opacity:.75;font-weight:800}
.rv-tools-right{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.rv-search{position:relative;display:flex;align-items:center}
.rv-search i{position:absolute;left:12px;color:var(--muted,#647069);font-size:.9rem;pointer-events:none}
.rv-search input{padding:9px 14px 9px 34px;border:1px solid var(--line,#e4ebe6);border-radius:10px;font:inherit;font-size:.86rem;min-width:190px;background:#fff;color:var(--ink)}
.rv-search input:focus{outline:none;border-color:var(--green,#12a063);box-shadow:0 0 0 3px var(--green-soft,#e9f7ef)}
.rv-sort{display:flex;align-items:center;gap:7px;font-size:.85rem;color:var(--muted,#647069);font-weight:600}
.rv-sort select{padding:9px 12px;border:1px solid var(--line,#e4ebe6);border-radius:10px;font:inherit;font-size:.86rem;background:#fff;color:var(--ink);cursor:pointer}
.rv-sort select:focus{outline:none;border-color:var(--green,#12a063)}

/* grid of all reviews */
.rv-page-body{padding:clamp(28px,4vw,52px) 0 clamp(40px,6vw,80px)}
.rv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px)}
@media (max-width:980px){.rv-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.rv-grid{grid-template-columns:1fr}}
.rv-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--muted,#647069)}
.rv-empty i{font-size:2.4rem;color:var(--green-line,rgba(18,160,99,.35));display:block;margin-bottom:12px}
.rv-loadmore-wrap{display:flex;justify-content:center;margin-top:clamp(26px,4vw,40px)}
.rv-count-note{text-align:center;color:var(--muted,#647069);font-size:.85rem;margin-top:14px}

/* leave-a-review band */
.rv-band{background:linear-gradient(120deg,var(--green-deep,#0a5c3d),var(--green-2,#0b6f43));color:#fff;
  border-radius:var(--radius-card,16px);padding:clamp(26px,4vw,44px);text-align:center;position:relative;overflow:hidden}
.rv-band::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 200px at 50% 0,rgba(212,175,55,.25),transparent 60%);pointer-events:none}
.rv-band h3{font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.5rem,3.5vw,2.1rem);position:relative}
.rv-band p{opacity:.92;margin-top:10px;position:relative;max-width:560px;margin-inline:auto}
.rv-band .rv-cta-row{margin-top:22px}

/* buttons used by the system (fall back gracefully if your .btn exists) */
.rv-btn-primary,.rv-btn-google,.rv-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:700;font-size:.95rem;padding:13px 24px;border-radius:12px;border:2px solid transparent;cursor:pointer;transition:.22s;text-decoration:none}
.rv-btn-primary{background:var(--gold,#d4af37);color:#20301f}
.rv-btn-primary:hover{background:var(--gold-dark,#b8912a);transform:translateY(-2px)}
.rv-btn-google{background:#fff;color:#3c4043;border-color:#dadce0}
.rv-btn-google:hover{box-shadow:0 8px 20px -10px rgba(66,133,244,.6);transform:translateY(-2px);border-color:var(--rv-google)}
.rv-btn-google .g{font-weight:800;font-size:1.05rem;background:conic-gradient(from -45deg,#ea4335 0 25%,#fbbc05 0 50%,#34a853 0 75%,#4285f4 0);-webkit-background-clip:text;background-clip:text;color:transparent}
.rv-btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.rv-btn-ghost:hover{background:#fff;color:var(--green-deep,#0a5c3d);transform:translateY(-2px)}

/* =====================================================================
   READ-MORE LIGHTBOX (full review popup — used on home slider cards)
   ===================================================================== */
.rv-modal{position:fixed;inset:0;z-index:4000;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(8,24,16,.78);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s}
.rv-modal.show{display:flex;opacity:1}
.rv-modal-card{background:#fff;border-radius:20px;max-width:540px;width:100%;max-height:88vh;overflow:auto;padding:clamp(24px,4vw,34px);position:relative;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);transform:translateY(14px) scale(.98);transition:transform .35s var(--ease,ease)}
.rv-modal.show .rv-modal-card{transform:none}
.rv-modal-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:none;background:var(--green-soft,#e9f7ef);color:var(--green-deep,#0a5c3d);font-size:1.05rem;cursor:pointer;display:grid;place-items:center;transition:.2s}
.rv-modal-close:hover{background:var(--green,#12a063);color:#fff;transform:rotate(90deg)}
.rv-modal .rv-card-top{margin-bottom:14px}
.rv-modal .rv-body{font-size:1rem}

/* =====================================================================
   RESPONSIVE polish
   ===================================================================== */
@media (max-width:768px){
  .rv-toolbar{top:0}
  .rv-toolbar-inner{justify-content:center}
  .rv-tools-right{width:100%;justify-content:center}
  .rv-search input{flex:1;min-width:0}
}
@media (max-width:480px){
  .rv-card{padding:18px}
  .rv-avatar{width:44px;height:44px;font-size:1.05rem}
  .rv-cta-row .rv-btn-primary,.rv-cta-row .rv-btn-google,.rv-cta-row .rv-btn-ghost{width:100%}
}

/* =====================================================================
   SUBMISSION FORM  (submit-review.html)  +  ADMIN  (admin.html)
   ===================================================================== */
.rv-page{min-height:100vh;display:flex;flex-direction:column;background:
  radial-gradient(1000px 420px at 50% -10%, rgba(18,160,99,.10), transparent 60%),linear-gradient(180deg,#f4faf6,#fff)}
.rv-wrap{width:100%;max-width:640px;margin:0 auto;padding:clamp(24px,5vw,56px) 4%}
.rv-wrap.wide{max-width:1160px}
.rv-brandbar{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:22px}
.rv-brandbar img{height:46px;width:auto}
.rv-brandbar b{font-weight:800;color:var(--ink,#17241d);font-size:1.05rem;line-height:1}
.rv-brandbar span{display:block;font-size:.6rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold-deep,#96751f);font-weight:800}

.rv-card-lg{background:#fff;border:1px solid var(--line,#e4ebe6);border-radius:20px;box-shadow:var(--shadow-lg,0 30px 60px -32px rgba(11,80,50,.42));padding:clamp(24px,4vw,40px);position:relative;overflow:hidden}
.rv-card-lg .rv-head{text-align:center;margin-bottom:24px}
.rv-card-lg .rv-head .kicker{margin-bottom:14px}
.rv-card-lg h1{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:clamp(1.5rem,4vw,2.1rem);line-height:1.15;color:var(--ink,#17241d)}
.rv-card-lg .sub{color:var(--muted,#647069);margin-top:10px;font-size:.98rem}

.rv-field{margin-bottom:18px}
.rv-field label{display:block;font-weight:700;font-size:.88rem;color:var(--ink-2,#20302a);margin-bottom:7px}
.rv-field label .req{color:#c0392b}
.rv-input,.rv-textarea,.rv-select{width:100%;padding:12px 14px;border:1.5px solid var(--line,#e4ebe6);border-radius:11px;font:inherit;font-size:.95rem;background:#fff;color:var(--ink);transition:.18s}
.rv-textarea{min-height:120px;resize:vertical;line-height:1.6}
.rv-input:focus,.rv-textarea:focus,.rv-select:focus{outline:none;border-color:var(--green,#12a063);box-shadow:0 0 0 3px var(--green-soft,#e9f7ef)}
.rv-field.err .rv-input,.rv-field.err .rv-textarea{border-color:#c0392b}
.rv-err{display:none;color:#c0392b;font-size:.8rem;margin-top:6px}
.rv-field.err .rv-err{display:block}
.rv-help{color:var(--muted,#647069);font-size:.78rem;margin-top:6px}
.rv-row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:560px){.rv-row2{grid-template-columns:1fr}}

/* star input */
.rv-starinput{display:inline-flex;gap:6px;font-size:2rem;line-height:1;cursor:pointer}
.rv-starinput i{color:#dfe7e2;transition:.12s;cursor:pointer}
.rv-starinput i.on{color:var(--rv-star,#f5a623);transform:scale(1.05)}
.rv-starinput:hover i{color:#dfe7e2}
/* the JS marks the hovered/selected stars .on — this has to out-rank the
   :hover reset above it, or hovering would grey out every star and the
   rating preview would never show */
.rv-starinput:hover i.on{color:var(--rv-star,#f5a623)}
.rv-starinput i:focus-visible{outline:2px solid var(--green,#12a063);outline-offset:3px;border-radius:4px}
.rv-rate-label{margin-left:10px;font-size:.9rem;font-weight:700;color:var(--muted,#647069);vertical-align:middle}

.rv-submit{width:100%;margin-top:8px}
.rv-note-small{text-align:center;color:var(--muted,#647069);font-size:.8rem;margin-top:16px}
.rv-note-small i{color:var(--green,#12a063)}

/* success state */
.rv-success{text-align:center;padding:12px 0}
.rv-success .tick{width:76px;height:76px;border-radius:50%;background:var(--green,#12a063);color:#fff;display:grid;place-items:center;font-size:2.2rem;margin:0 auto 18px;box-shadow:0 16px 34px -14px rgba(18,160,99,.8)}
.rv-success h2{font-family:'Playfair Display',Georgia,serif;font-size:1.7rem;color:var(--ink,#17241d)}
.rv-success p{color:var(--muted,#647069);margin-top:10px}

/* demo banner */
.rv-demo-banner{background:#fff7e0;border:1px solid #f0d98a;color:#7a5c00;border-radius:12px;padding:10px 14px;font-size:.82rem;text-align:center;margin-bottom:18px}
.rv-demo-banner b{color:#6b4e00}

/* =====================================================================
   ADMIN
   ===================================================================== */
.adm-topbar{background:#fff;border-bottom:1px solid var(--line,#e4ebe6);position:sticky;top:0;z-index:30}
.adm-topbar-inner{max-width:1160px;margin:0 auto;padding:12px 4%;display:flex;align-items:center;justify-content:space-between;gap:14px}
.adm-brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--green-deep,#0a5c3d)}
.adm-brand i{font-size:1.3rem;color:var(--green,#12a063)}
.adm-user{display:flex;align-items:center;gap:12px;font-size:.85rem;color:var(--muted,#647069)}
.adm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
@media (max-width:760px){.adm-stats{grid-template-columns:repeat(2,1fr)}}
.adm-stat{background:#fff;border:1px solid var(--line,#e4ebe6);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow-sm,0 10px 26px -18px rgba(11,80,50,.4))}
.adm-stat .n{font-size:1.9rem;font-weight:800;line-height:1;color:var(--ink,#17241d)}
.adm-stat .l{font-size:.8rem;color:var(--muted,#647069);margin-top:6px;display:flex;align-items:center;gap:6px}
.adm-stat.pending .n{color:#d99a00}
.adm-stat.approved .n{color:var(--green,#12a063)}

.adm-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px}
.adm-tabs{display:flex;gap:8px;flex-wrap:wrap}
.adm-actions{display:flex;gap:10px;flex-wrap:wrap}

.adm-list{display:flex;flex-direction:column;gap:12px}
.adm-item{background:#fff;border:1px solid var(--line,#e4ebe6);border-radius:14px;padding:16px;display:flex;gap:14px;align-items:flex-start;box-shadow:var(--shadow-sm,0 10px 26px -18px rgba(11,80,50,.4))}
.adm-item .thumb{width:54px;height:54px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;font-weight:800;color:#fff;overflow:hidden;background:var(--green,#12a063)}
.adm-item .thumb img{width:100%;height:100%;object-fit:cover}
.adm-item .grow{flex:1;min-width:0}
.adm-item .line1{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.adm-item .nm{font-weight:800;color:var(--ink,#17241d)}
.adm-item .rv-stars{font-size:.85rem}
.adm-item .meta{color:var(--muted,#647069);font-size:.8rem;margin-top:2px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.adm-item .txt{margin-top:8px;color:var(--ink-2,#20302a);font-size:.92rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* a review whose text never made it into the database — it is hidden on the
   public site, and flagged here so it can be found and typed back in */
.adm-item .txt-missing{display:flex;align-items:center;gap:8px;color:#a15c00;background:#fff6e5;border:1px solid #f0d9ad;border-radius:10px;padding:8px 11px;font-size:.86rem;font-weight:600;line-height:1.45}
.adm-item .ops{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
@media (max-width:640px){.adm-item{flex-wrap:wrap}.adm-item .ops{flex-direction:row;flex-wrap:wrap;width:100%}}

.badge{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;font-weight:800;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px}
.badge.pending{background:#fff3d6;color:#8a6400}
.badge.approved{background:var(--green-soft,#e9f7ef);color:var(--green-deep,#0a5c3d)}
.badge.rejected{background:#fdecea;color:#b23025}
.badge.src{background:#eef3ff;color:#2b5bd7;text-transform:none}
.badge.feat{background:var(--gold-soft,#faf3dc);color:var(--gold-deep,#96751f)}

.iconbtn{border:1px solid var(--line,#e4ebe6);background:#fff;border-radius:9px;padding:7px 11px;font-size:.82rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:var(--ink-2,#20302a);transition:.18s;white-space:nowrap}
.iconbtn:hover{border-color:var(--green-line,rgba(18,160,99,.18));background:var(--green-soft,#e9f7ef)}
.iconbtn.approve{color:var(--green-dark,#0e8250)} .iconbtn.approve:hover{background:var(--green,#12a063);color:#fff;border-color:var(--green)}
.iconbtn.reject:hover{background:#fdecea;color:#b23025;border-color:#f3b6ae}
.iconbtn.del:hover{background:#fdecea;color:#b23025;border-color:#f3b6ae}
.iconbtn.feat.on{background:var(--gold,#d4af37);color:#20301f;border-color:var(--gold)}

/* image dropzone (admin add screenshot) */
.rv-drop{border:2px dashed var(--green-line,rgba(18,160,99,.35));border-radius:12px;padding:20px;text-align:center;color:var(--muted,#647069);cursor:pointer;transition:.18s;background:#fbfdfb}
.rv-drop:hover,.rv-drop.drag{background:var(--green-soft,#e9f7ef);border-color:var(--green,#12a063)}
.rv-drop i{font-size:1.8rem;color:var(--green,#12a063);display:block;margin-bottom:8px}
.rv-drop .preview{max-width:120px;max-height:180px;border-radius:10px;margin:10px auto 0;box-shadow:var(--shadow-sm,0 10px 26px -18px rgba(11,80,50,.4))}

.adm-empty{text-align:center;color:var(--muted,#647069);padding:50px 20px;background:#fff;border:1px dashed var(--line,#e4ebe6);border-radius:14px}
.adm-empty i{font-size:2.2rem;color:var(--green-line,rgba(18,160,99,.4));display:block;margin-bottom:10px}

/* editor modal reuses .rv-modal; add a form width */
.rv-modal-card.editor{max-width:600px}
.rv-seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.rv-seg button{border:none;background:#fff;padding:9px 14px;font-weight:700;font-size:.85rem;cursor:pointer;color:var(--ink-2)}
.rv-seg button.on{background:var(--green);color:#fff}

/* =====================================================================
   WHATSAPP SCREENSHOT SLIDER — dynamic mount (data-driven from the store)
   Gives the phones a height context outside the special 90vh section.
   Reuses your existing .wa-* classes for the phone look.
   ===================================================================== */
.wa-dyn{position:relative}
.wa-dyn .wa-slider{position:relative}
.wa-dyn .wa-viewport{height:clamp(380px,52vh,560px);overflow:hidden;padding:6px 2px 8px}
.wa-dyn .wa-track{display:flex;height:100%;align-items:stretch;transition:transform .6s var(--ease,cubic-bezier(.4,0,.2,1))}
.wa-dyn .wa-slide{flex:0 0 33.3333%;min-width:0;padding:0 clamp(8px,1vw,14px);display:flex;justify-content:center}
.wa-dyn .wa-controls{margin-top:clamp(14px,2vw,22px)}
@media (max-width:1000px){.wa-dyn .wa-slide{flex:0 0 50%}}
@media (max-width:680px){.wa-dyn .wa-slide{flex:0 0 100%}}
/* fallbacks in case the main WhatsApp CSS isn't loaded on this page */
.wa-dyn .wa-item{height:100%;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer}
.wa-dyn .wa-phone{flex:1;min-height:0;max-width:100%;aspect-ratio:718/1600;position:relative;border-radius:22px;overflow:hidden;background:#0b141a;box-shadow:0 22px 50px -24px rgba(11,40,30,.6)}
.wa-dyn .wa-phone img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wa-dyn .wa-cap-stars{color:var(--gold,#d4af37);font-size:1.15rem;letter-spacing:3px}
/* self-contained controls/pills for the dynamic WhatsApp slider */
.wa-dyn .wa-btn{position:absolute;top:42%;transform:translateY(-50%);z-index:6;width:clamp(42px,5vw,52px);height:clamp(42px,5vw,52px);border-radius:50%;border:1px solid var(--line,#e4ebe6);background:#fff;color:var(--ink,#17241d);display:grid;place-items:center;cursor:pointer;font-size:1.2rem;box-shadow:0 14px 30px -12px rgba(11,80,50,.5);transition:.2s}
.wa-dyn .wa-btn:hover{background:var(--rv-wa,#25d366);color:#fff;border-color:var(--rv-wa,#25d366)}
.wa-dyn #wa-reviews-home .wa-btn,.wa-dyn .wa-btn[data-dir="-1"]{left:clamp(0px,.5vw,10px)}
.wa-dyn .wa-btn[data-dir="1"]{right:clamp(0px,.5vw,10px)}
.wa-dyn .wa-dots{display:flex;gap:8px;justify-content:center}
.wa-dyn .wa-dots button{width:9px;height:9px;border-radius:50%;border:none;background:#c1d2ca;cursor:pointer;padding:0;transition:.2s}
.wa-dyn .wa-dots button.on{background:var(--rv-wa,#25d366);width:26px;border-radius:5px}
.wa-dyn .wa-verified{position:absolute;top:10px;right:10px;z-index:3;display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:800;color:#0a5c3d;background:rgba(255,255,255,.95);border:1px solid var(--green-line,rgba(18,160,99,.18));padding:5px 9px;border-radius:999px}
.wa-dyn .wa-verified i{color:var(--rv-wa,#25d366)}
.wa-dyn .wa-zoom{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);z-index:3;display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;color:var(--wa-deep,#075e54);background:rgba(255,255,255,.95);border:1px solid var(--green-line,rgba(18,160,99,.18));padding:6px 12px;border-radius:999px}
