/* ============================
   PLATE VIEW (CLEAN)
============================ */
.plate-view-page{
  padding:28px 0 60px;
  background:#f3f4f6;
}
.plate-view-page .container{
  max-width:1100px;
  margin:0 auto;
  padding:0 16px;
}

/* Flash */
.pv-flash{
  border-radius:14px;
  padding:10px 12px;
  margin:0 0 12px;
  font-weight:800;
  font-size:13px;
}
.pv-flash--success{ background:#ecfdf5; border:1px solid #10b981; color:#065f46; }
.pv-flash--error{ background:#fef2f2; border:1px solid #ef4444; color:#7f1d1d; }

/* Breadcrumbs */
.pv-bc{ font-size:12px; color:#9ca3af; margin-bottom:10px; }
.pv-bc a{ color:#6b7280; text-decoration:none; }
.pv-bc a:hover{ text-decoration:underline; }
.pv-bc span{ margin:0 6px; color:#cbd5e1; }

/* Header */
.pv-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.pv-title{ margin:0; font-size:34px; font-weight:900; color:#111827; letter-spacing:-0.02em; }
.pv-sub{ margin-top:6px; font-size:13px; color:#6b7280; }
.pv-price{ text-align:right; flex:0 0 auto; }
.pv-price-main{ font-size:30px; font-weight:900; color:#ef4444; line-height:1.05; }
.pv-price-note{ font-size:12px; color:#9ca3af; margin-top:4px; }

/* Layout */
.pv-grid{
  display:grid;
  grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);
  gap:18px;
  align-items:start;
}
.pv-col{ min-width:0; }
@media (max-width:960px){
  .pv-head{ flex-direction:column; }
  .pv-price{ text-align:left; }
  .pv-grid{ grid-template-columns:1fr; }
}

/* Cards */
.pv-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:20px;
  padding:18px 20px;
  box-shadow:0 18px 45px rgba(15,23,42,.08);
}
.pv-card + .pv-card{ margin-top:14px; }

/* Plate block */
.pv-plate-wrap{ display:flex; justify-content:center; }
.pv-plate{
  width:100%;
  max-width:760px;
  min-height:150px;
  position:relative;
  background:#fff;  
  border:4px solid #0b0b0b;
  border-radius:26px;
  overflow:hidden;
  display:grid;
  grid-template-columns:120px 1fr 1fr; /* code | logo | digits */
  align-items:center;
  padding:26px 22px;
}
.pv-plate::after{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:18px;
  border:2px solid rgba(17,24,39,.12);
  pointer-events:none;
}
.pv-code{
  text-align:center;
  font-weight:900;
  font-size:clamp(44px,5vw,72px);
  line-height:1;
  color:#111827;
  position:relative;
}
.pv-code::after{
  content:"";
  position:absolute;
  right:-6px;
  top:18px;
  bottom:18px;
  width:1px;
  background:rgba(0,0,0,.18);
}
.pv-logo-wrap{ display:flex; align-items:center; justify-content:center; }
.pv-plate-logo{ display:block; width:auto; max-height:56px; max-width:220px; object-fit:contain; }
.pv-plate-logo-fallback{ font-weight:900; font-size:14px; letter-spacing:.08em; color:#111827; opacity:.7; }
.pv-digits{
  text-align:right;
  font-weight:900;
  font-size:clamp(54px,6.8vw,96px);
  line-height:1;
  color:#111827;
  letter-spacing:.06em;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
/* -----------------------------
   Plate digits overflow fix (mobile)
------------------------------ */

/* general small screens */
@media (max-width: 520px){
  .pv-plate{
    grid-template-columns: 40px 1fr 1fr; /* give digits more space */
    padding: 18px 12px;
    min-height: 118px;
    column-gap: 6px;
  }
  .pv-code{
    font-size: clamp(18px, 7vw, 32px);
  }
  .pv-plate-logo{
    max-height: 34px;
    max-width: 140px;
  }
  .pv-digits{
    font-size: clamp(20px, 10vw, 40px);
    letter-spacing: .02em;     /* was too wide */
    text-align: right;
  }
}

/* extra tiny phones */
@media (max-width: 390px){
  .pv-plate{
    grid-template-columns: 50px 1fr 1.75fr;
    padding: 16px 10px;
  }
  .pv-digits{
    font-size: clamp(28px, 12.5vw, 50px);
    letter-spacing: .01em;
  }
}

/* Details */
.pv-details{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 14px; }
@media (max-width:640px){ .pv-details{ grid-template-columns:1fr; } }
.pv-item{ display:flex; flex-direction:column; gap:2px; }
.pv-label{ font-size:12px; color:#9ca3af; }
.pv-val{ font-size:14px; font-weight:700; color:#111827; }
.pv-desc{ font-size:14px; color:#374151; line-height:1.7; }

/* Dealer card (boats feel) */
.pv-dealer-top{ display:flex; gap:12px; align-items:center; }
.pv-dealer-logo-box{
  width:64px;height:64px;
  border-radius:18px;
  background:#fff;
  border:1px solid #e5e7eb;
  display:grid;place-items:center;
  overflow:hidden;
}
.pv-dealer-logo{ width:100%;height:100%;object-fit:contain;display:block; }
.pv-dealer-logo-fallback{
  width:100%;height:100%;
  display:grid;place-items:center;
  font-weight:900;font-size:20px;
  color:#111827;background:#f3f4f6;
}
.pv-dealer-name{ font-size:20px;font-weight:900;color:#111827; line-height:1.15; }
.pv-dealer-city{ margin-top:2px;font-size:14px;color:#6b7280; }
.pv-dealer-tag{ margin-top:6px;font-size:12px;font-weight:900;letter-spacing:.08em;color:#9ca3af; }
.pv-dealer-btn{
  margin-top:14px;
  width:100%;
  display:flex;align-items:center;justify-content:center;
  height:52px;
  border-radius:999px;
  background:#ef4444;color:#fff;
  font-weight:900;
  text-decoration:none;
}
.pv-dealer-btn:hover{ background:#dc2626; }

/* Contact seller */
.pv-contact-title{ font-size:22px; font-weight:900; margin:0 0 6px; }
.pv-contact-sub{ margin:0 0 14px; color:#6b7280; font-size:14px; }

.pv-showphone, .pv-sendmsg{
  width:100%;
  height:44px;
  border-radius:12px;
  border:1px solid #e5e7eb;
  background:#fff;
  font-weight:800;
  cursor:pointer;
}
.pv-sendmsg{ margin-top:10px; }
.pv-showphone:hover, .pv-sendmsg:hover{ background:#f9fafb; }

.pv-hint{
  margin-top:10px;
  padding:12px 14px;
  border-radius:12px;
  background:#f3f4f6;
  border:1px solid #e5e7eb;
  text-align:center;
  font-weight:800;
  color:#111827;
}

.pv-pills{ margin-top:12px; display:flex; gap:10px; flex-wrap:wrap; }
.pv-pill{
  display:inline-flex; align-items:center; justify-content:center;
  height:46px; padding:0 18px;
  border-radius:999px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
  border:1px solid #e5e7eb;
  background:#fff;
  color:#111827;
}
#pvCallNow{ background:#ef4444; border-color:#ef4444; color:#fff; }
#pvCallNow:hover{ background:#dc2626; border-color:#dc2626; }
#pvWaBtn{ background:#22c55e; border-color:#16a34a; color:#fff; }
#pvWaBtn:hover{ background:#16a34a; border-color:#15803d; }

.pv-phone-number{
  margin-top:12px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid #e5e7eb;
  background:#f9fafb;
  font-weight:900;
  text-align:center;
  font-size:18px;
}

/* Modal */
.no-scroll{ overflow:hidden; }
.pv-modal{
  position:fixed; inset:0;
  z-index:99999;
  display:flex; align-items:center; justify-content:center;
  padding:16px;
}
.pv-modal[hidden]{ display:none !important; }
.pv-modal-backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.55); }
.pv-modal-card{
  position:relative; z-index:1;
  width:min(520px, 92vw);
  background:#fff;
  border-radius:18px;
  padding:18px;
  box-shadow:0 20px 70px rgba(0,0,0,.28);
}
.pv-modal-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.pv-modal-title{ font-size:20px; font-weight:900; color:#111827; }
.pv-modal-sub{ font-size:13px; color:#6b7280; margin-top:4px; }
.pv-modal-x{
  border:0; background:transparent;
  font-size:28px; line-height:1;
  cursor:pointer; color:#111827; opacity:.75;
}
.pv-modal-x:hover{ opacity:1; }


.pv-stickybar .pv-stickbtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:48px;
  border-radius:14px;
  border:1px solid #e5e7eb;
  background:#fff;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
  width:100%;
}
#pvStickyCall{ background:#ef4444; border-color:#ef4444; color:#fff; }
#pvStickyWa{ background:#22c55e; border-color:#16a34a; color:#fff; }

@media (max-width:768px){
  .pv-pills{ display:none !important; }          /* avoid duplicates */
  .plate-view-page{ padding-bottom:96px; }      /* space for sticky */
  .pv-stickybar{ display:grid; grid-template-columns:1fr 1fr; }
  .pv-stickybar.has-wa{ grid-template-columns:1fr 1fr 1fr; }
}

/* Make [hidden] always win */
[hidden]{ display:none !important; }
/* iOS modal polish */
.pv-modal-card input{
  height:44px;
}
.pv-modal-actions .pv-modal-btn{
  height:46px;
}
/* ===========================
   FIX: Call/Enquiry modal form layout (mobile Safari)
   =========================== */

/* Make form a clean vertical stack */
#pvCallModal .pv-form,
#pvEnqModal  .pv-form{
  display:grid !important;
  gap:10px !important;
}

/* The bug: labels were inline -> they sit next to inputs */
#pvCallModal .pv-form label,
#pvEnqModal  .pv-form label{
  display:block !important;
  margin:0 !important;
}

/* Force inputs to take full row */
#pvCallModal .pv-form input,
#pvCallModal .pv-form textarea,
#pvEnqModal  .pv-form input,
#pvEnqModal  .pv-form textarea{
  display:block !important;
  width:100% !important;
  box-sizing:border-box !important;
}

/* Nice on iPhone (prevents awkward heights) */
#pvCallModal .pv-form input,
#pvEnqModal  .pv-form input{
  height:44px !important;
}

/* If content is taller than screen, allow scroll inside modal */
#pvCallModal .pv-modal-card,
#pvEnqModal  .pv-modal-card{
  max-height:85vh !important;
  overflow:auto !important;
}
#pvCallModal .pv-form button,
#pvEnqModal  .pv-form button{
  border:0;
  border-radius:12px;
  height:44px;
  font-weight:900;
  cursor:pointer;
}

#pvCallModal .pv-form button[type="submit"]{ background:#ef4444; color:#fff; }
#pvCallModal #pvCallCancel{ background:#f3f4f6; color:#111827; }

#pvCallModal .pv-form button[type="submit"]:hover{ background:#dc2626; }
/* Mobile: use sticky bar only (hide in-card actions) */
@media (max-width: 768px){
  /* hide in-card show phone + send message + hint */
  #pvShowPhoneBtn,
  .pv-showphone,
  #pvSendMsgBtn,
  .pv-sendmsg,
  .pv-hint{
    display:none !important;
  }

  /* ensure sticky bar visible */
  .pv-stickybar{
    display:grid !important;
    grid-template-columns:1fr 1fr; /* Call + Enquiry */
    gap:10px;
  }
  .pv-stickybar.has-wa{
    grid-template-columns:1fr 1fr 1fr; /* Call + Enquiry + WhatsApp */
  }

  /* avoid overlap */
  .plate-view-page{ padding-bottom:96px; }
}
/* Make "Show phone" big + full width (premium) */
.pv-contact-card #pvShowPhoneBtn,
.pv-contact-card .pv-showphone{
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 16px;
  font-size: 15px;
  font-weight: 900;
  border-radius: 14px;
  border: 0;
  cursor: pointer;
  line-height: 1;
}

.pv-contact-card #pvShowPhoneBtn{
  background: #ef4444;
  color: #fff;
  box-shadow: 0 10px 22px rgba(239,68,68,.18);
}
.pv-contact-card #pvShowPhoneBtn:hover{ filter: brightness(.97); }
.pv-contact-card #pvShowPhoneBtn:active{ transform: translateY(1px); }

/* phone box after reveal */
.pv-phone-number{
  margin-top: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f3f4f6;
  font-weight: 900;
  text-align: center;
  font-size: 18px;
}
.pv-phone-link{ text-decoration:none; color:inherit; }
/* Make Show Phone button full width + premium */
.pv-showphone{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:14px 16px;
  border-radius:14px;
  font-weight:900;
  font-size:15px;
  border:0;
  cursor:pointer;
  background:#ef4444;
  color:#fff;
  letter-spacing:.2px;
}

.pv-showphone:hover{ filter:brightness(.98); }
.pv-showphone:active{ transform:translateY(1px); }
/* Sticky bottom bar — hidden on desktop, visible on mobile */
#pvStickyBar{
  display:none;
}

@media (max-width: 980px){
  #pvStickyBar{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:10px;
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:999999;            /* must be above everything */
    padding:10px;
    background:#fff;
    border:1px solid rgba(0,0,0,.10);
    border-radius:16px;
    box-shadow:0 10px 30px rgba(0,0,0,.12);
  }

  #pvStickyBar.has-wa{
    grid-template-columns: 1fr 1fr 1fr;
  }

  /* iPhone safe area */
  @supports (padding: max(0px)){
    #pvStickyBar{ bottom: calc(12px + env(safe-area-inset-bottom)); }
  }

  /* prevent content hidden behind sticky bar */
  body{ padding-bottom: 110px; }
}
/* Number Plates: show action buttons only on mobile */
.np-mobile-actions{
  display: flex;
  gap: 12px;
  margin-top: 14px;
}
/* Sticky bottom bar — hidden on desktop, visible on mobile */
#pvStickyBar{ display:none; }

@media (max-width: 980px){
  #pvStickyBar{
    display:grid;
    grid-template-columns:1fr 1fr; /* Call + Enquiry */
    gap:10px;
    position:fixed;
    left:12px; right:12px; bottom:12px;
    z-index:999999;
    padding:10px;
    background:#fff;
    border:1px solid rgba(0,0,0,.10);
    border-radius:16px;
    box-shadow:0 10px 30px rgba(0,0,0,.12);
  }

  #pvStickyBar.has-wa{ grid-template-columns:1fr 1fr 1fr; }

  @supports (padding: max(0px)){
    #pvStickyBar{ bottom: calc(12px + env(safe-area-inset-bottom)); }
  }
}
/* Desktop/tablet: hide */
@media (min-width: 992px){
  .np-mobile-actions{ display: none !important; }
}

/* Mobile: show */
@media (max-width: 991.98px){
  .np-mobile-actions{ display: flex !important; }
}