/* Rafting Vendor Manager (RVM) - World-class UI */
:root{
  --rvm-primary:#e85c0d;
  --rvm-text:#4B4F58;
  --rvm-bg:#ffffff;
  --rvm-surface:#ffffff;
  --rvm-border:rgba(19, 31, 53, .10);
  --rvm-muted:rgba(75,79,88,.75);
  --rvm-shadow:0 10px 30px rgba(16,24,40,.08);
  --rvm-shadow-soft:0 6px 18px rgba(16,24,40,.06);
  --rvm-radius:16px;
  --rvm-radius-sm:12px;
  --rvm-focus:0 0 0 4px rgba(232,92,13,.20);
}

.rvm-wrap{
  max-width:1200px;
  margin:0 auto;
  padding:18px 14px;
  color:var(--rvm-text);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;
}

.rvm-muted{ color:var(--rvm-muted); }
.rvm-title{ margin:0 0 6px; font-weight:800; letter-spacing:-.02em; }
.rvm-subtitle, .rvm-section-title{ margin:0 0 8px; font-weight:800; letter-spacing:-.02em; }
.rvm-section-title{ font-size:20px; }
.rvm-card-title{ margin:0 0 6px; font-weight:800; letter-spacing:-.02em; font-size:18px; }
.rvm-price{ font-weight:900; color:var(--rvm-primary); font-size:18px; }
.rvm-divider{ height:1px; background:var(--rvm-border); margin:14px 0; }

.rvm-card{
  background:var(--rvm-surface);
  border:1px solid var(--rvm-border);
  border-radius:var(--rvm-radius);
  box-shadow:var(--rvm-shadow-soft);
  padding:16px;
}

.rvm-actions{ margin-top:12px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }

.rvm-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  text-decoration:none;
  font-weight:800;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .08s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease;
}
.rvm-btn:active{ transform:translateY(1px); }
.rvm-btn:focus{ outline:none; box-shadow:var(--rvm-focus); }

.rvm-btn-primary{
  background:linear-gradient(135deg, var(--rvm-primary), #ff7a2a);
  color:#fff;
  box-shadow:0 10px 22px rgba(232,92,13,.22);
}
.rvm-btn-primary:hover{ box-shadow:0 14px 28px rgba(232,92,13,.28); }

.rvm-btn-ghost{
  background:#fff;
  border-color:var(--rvm-border);
  color:var(--rvm-text);
}
.rvm-btn-ghost:hover{ border-color:rgba(232,92,13,.35); box-shadow:var(--rvm-shadow-soft); }

.rvm-btn-whatsapp{ background:#25D366; color:#fff; }

.rvm-pill{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(232,92,13,.10);
  color:var(--rvm-primary);
  font-weight:800;
  font-size:12px;
}

/* Forms */
.rvm-form label{
  display:block;
  font-weight:800;
  margin:12px 0 6px;
  color:var(--rvm-text);
}
.rvm-form input, .rvm-form textarea, .rvm-form select{
  width:100%;
  border:1px solid var(--rvm-border);
  border-radius:12px;
  padding:11px 12px;
  font-size:14px;
  color:var(--rvm-text);
  background:#fff;
  transition:border-color .12s ease, box-shadow .12s ease;
}
.rvm-form input:focus, .rvm-form textarea:focus, .rvm-form select:focus{
  outline:none;
  border-color:rgba(232,92,13,.55);
  box-shadow:var(--rvm-focus);
}
.rvm-form textarea{ min-height:120px; resize:vertical; }

.rvm-alert{
  border-radius:14px;
  padding:12px 14px;
  margin:0 0 12px;
  border:1px solid var(--rvm-border);
  background:rgba(16,24,40,.03);
}
.rvm-success{ border-color:rgba(46,204,113,.35); background:rgba(46,204,113,.10); }
.rvm-error{ border-color:rgba(231,76,60,.35); background:rgba(231,76,60,.08); }

/* Grid helpers */
.rvm-grid{ display:grid; gap:14px; }
.rvm-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.rvm-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
@media (max-width: 700px){
  .rvm-grid-2, .rvm-grid-3{ grid-template-columns:1fr; }
}

/* Vendor cards grid */
.rvm-cards{ display:grid; gap:14px; }
.rvm-cards-grid{ grid-template-columns:repeat(3, 1fr); }
@media (max-width: 980px){ .rvm-cards-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 640px){ .rvm-cards-grid{ grid-template-columns:1fr; } }

.rvm-thumb img{
  width:100%;
  height:180px;
  object-fit:cover;
  border-radius:14px;
  border:1px solid var(--rvm-border);
}
.rvm-card p{ margin:10px 0; }

/* Search layout (left filters + right results) */
.rvm-search-layout{
  display:grid;
  grid-template-columns: 340px 1fr;
  gap:16px;
  align-items:start;
}
.rvm-search-sidebar{ position:relative; }
.rvm-search-sidebar .rvm-card{ position:sticky; top:16px; }
.rvm-filter-head{ margin-bottom:10px; }
.rvm-field{ margin-top:10px; }
.rvm-field label{ display:block; font-weight:800; margin:0 0 6px; }
.rvm-field input, .rvm-field select{ width:100%; border:1px solid var(--rvm-border); border-radius:12px; padding:11px 12px; }
.rvm-filter-actions{ display:flex; gap:10px; margin-top:14px; }
.rvm-results-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:10px; margin-bottom:10px; }
@media (max-width: 980px){
  .rvm-search-layout{ grid-template-columns:1fr; }
  .rvm-search-sidebar .rvm-card{ position:relative; top:0; }
}

#rvm_results.rvm-loading{
  position:relative;
  opacity:.6;
  pointer-events:none;
}
#rvm_results.rvm-loading:after{
  content:"Loading";
  position:absolute;
  left:12px; top:12px;
  padding:8px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.9);
  border:1px solid var(--rvm-border);
  font-weight:800;
}

/* Vendor hero */
.rvm-vendor-hero{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  border:1px solid var(--rvm-border);
  box-shadow:var(--rvm-shadow);
  margin-bottom:16px;
  background:linear-gradient(135deg, rgba(232,92,13,.08), rgba(16,24,40,.02));
}
.rvm-vendor-hero__bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  filter:blur(14px);
  transform:scale(1.08);
  opacity:.20;
}
.rvm-vendor-hero__content{
  position:relative;
  padding:18px 18px 16px;
}
.rvm-vendor-hero__top{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  flex-wrap:wrap;
}
.rvm-vendor-title{
  margin:0;
  font-size:30px;
  line-height:1.15;
  font-weight:900;
  letter-spacing:-.03em;
}
.rvm-vendor-meta{ display:flex; gap:10px; flex-wrap:wrap; margin-top:10px; align-items:center; }
.rvm-vendor-hero__actions{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.rvm-rating{ margin-top:10px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.rvm-rating__stars{ color:var(--rvm-primary); letter-spacing:1px; font-size:14px; }
.rvm-rating__value{ font-weight:900; }
.rvm-vendor-hero__note{ margin-top:12px; padding-top:10px; border-top:1px solid var(--rvm-border); }

/* Tabs */
.rvm-tabs{
  background:transparent;
}
.rvm-tablist{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  padding:6px;
  border-radius:999px;
  border:1px solid var(--rvm-border);
  background:rgba(255,255,255,.85);
  backdrop-filter:saturate(140%) blur(10px);
  position:sticky;
  top:10px;
  z-index:20;
}
@media (max-width: 640px){
  .rvm-tablist{ border-radius:18px; position:relative; top:0; }
}
.rvm-tab{
  border:none;
  background:transparent;
  padding:10px 14px;
  border-radius:999px;
  font-weight:900;
  color:var(--rvm-text);
  cursor:pointer;
}
.rvm-tab:hover{ background:rgba(232,92,13,.10); }
.rvm-tab.is-active{
  background:linear-gradient(135deg, var(--rvm-primary), #ff7a2a);
  color:#fff;
  box-shadow:0 10px 20px rgba(232,92,13,.18);
}
.rvm-tabpanels{ margin-top:14px; }
.rvm-panel{ display:none; }
.rvm-panel.is-active{ display:block; }

/* Vendor details grid inside details tab */
.vendor-details-grid{
  grid-template-columns: 1.3fr .7fr;
}
@media (max-width: 980px){
  .vendor-details-grid{ grid-template-columns:1fr; }
}

/* Package card */
.rvm-package-card{ position:relative; }
.rvm-package-card__top{ display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.rvm-kv{ display:grid; gap:10px; margin-top:12px; }
.rvm-kv-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width: 700px){ .rvm-kv-3{ grid-template-columns:1fr; } }
.rvm-k{ display:block; font-size:12px; font-weight:900; color:rgba(75,79,88,.72); }
.rvm-v{ display:block; font-weight:900; }

/* Gallery */
.rvm-gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:12px;
}
@media (max-width: 980px){ .rvm-gallery-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width: 640px){ .rvm-gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.rvm-gallery-item{
  display:block;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--rvm-border);
  box-shadow:var(--rvm-shadow-soft);
  background:#fff;
}
.rvm-gallery-item img{
  width:100%;
  height:160px;
  object-fit:cover;
  display:block;
  transition:transform .18s ease;
}
.rvm-gallery-item:hover img{ transform:scale(1.03); }

/* Map */
.rvm-map iframe{
  width:100%;
  height:280px;
  border:0;
  border-radius:16px;
}

/* Reviews */
.rvm-reviews{ display:grid; gap:12px; margin-top:14px; }
.rvm-review{
  padding:14px;
  border-radius:16px;
  border:1px solid var(--rvm-border);
  background:rgba(16,24,40,.02);
}
.rvm-review-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
}
.rvm-stars{ color:var(--rvm-primary); letter-spacing:1px; }

/* Lightbox */
.rvm-no-scroll{ overflow:hidden; }
.rvm-lightbox{
  position:fixed;
  inset:0;
  background:rgba(16,24,40,.82);
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  z-index:9999;
}
.rvm-lightbox.is-open{ display:flex; }
.rvm-lightbox-inner{
  max-width:1100px;
  width:100%;
  border-radius:20px;
  overflow:hidden;
  background:#000;
  box-shadow:0 20px 60px rgba(0,0,0,.45);
  border:1px solid rgba(255,255,255,.12);
}
.rvm-lightbox-inner img{
  width:100%;
  height:auto;
  display:block;
}
.rvm-lightbox-close{
  position:absolute;
  top:14px;
  right:14px;
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.12);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}


/* Info notice */
.rvm-alert.rvm-info{background:rgba(232,92,13,.10);border:1px solid rgba(232,92,13,.25);color:var(--rvm-text);}
.rvm-fee-notice{margin:12px 0;}



/* Vendor Dashboard Website field helper */
.rvm-field-inline{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;}
.rvm-field-grow{flex:1 1 320px;min-width:240px;}
.rvm-field-note{flex:1 1 280px;min-width:240px;}
.rvm-field-note .rvm-muted{margin:28px 0 0;}
@media (max-width: 700px){
  .rvm-field-note .rvm-muted{margin:8px 0 0;}
}



/* Activity badges and grouping */
.rvm-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.08);background:rgba(232,92,13,.08);color:#4B4F58;font-size:12px;font-weight:600;}
.rvm-activity-block{margin-top:14px;}
.rvm-activity-head{display:flex;align-items:center;justify-content:space-between;margin:10px 0;}
.rvm-activity-title{font-size:16px;margin:0;}


/* RVM Final UI Tweaks */
.rvm-wrap{ font-size:14px; line-height:1.45; }
.rvm-title{ font-size:18px; }
.rvm-subtitle{ font-size:15px; }
.rvm-section-title{ font-size:16px; }
.rvm-muted{ font-size:13px; }
.rvm-card-title{ font-size:15px; }
.rvm-tab{ font-size:13px; }
.rvm-field label{ font-size:12px; }
.rvm-form input, .rvm-form textarea, .rvm-form select,
.rvm-filter input, .rvm-filter select, .rvm-filter textarea{
  font-size:13px;
  box-sizing:border-box;
}
.rvm-grid-2{ gap:10px; }
@media (max-width: 900px){
  .rvm-search-layout{ grid-template-columns:1fr; }
  .rvm-search-sidebar{ position:relative; top:auto; }
}
/* Ensure no text truncation/ellipsis anywhere */
.rvm-card p, .rvm-card-title, .rvm-content, .rvm-muted{
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
}
