/* PrintMarks Premium Redesign Layer
   Non-destructive overrides on top of existing styles.css.
   Preserves all IDs, forms, and JS hooks. */

@import url("./tokens.css");

/* --------------------------------------------------------------------------
   Global polish
   -------------------------------------------------------------------------- */
html {
  scroll-behavior: smooth;
  color-scheme: light only;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  font-family: var(--pm-font-sans) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

::selection {
  background: rgba(37, 99, 235, 0.25);
  color: var(--pm-navy-900);
}

:focus-visible {
  outline: 2px solid var(--pm-blue-500) !important;
  outline-offset: 3px !important;
}

/* --------------------------------------------------------------------------
   Top bar — refined glass header
   -------------------------------------------------------------------------- */
.topbar {
  backdrop-filter: blur(18px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.4) !important;
  background: rgba(7, 17, 31, 0.82) !important;
  border-bottom: 1px solid var(--pm-border-subtle) !important;
  transition: box-shadow var(--pm-duration-normal) var(--pm-ease-out),
              background var(--pm-duration-normal) var(--pm-ease-out) !important;
}

.topbar.is-scrolled {
  background: rgba(4, 10, 20, 0.92) !important;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.28) !important;
}

.topbar nav a {
  letter-spacing: var(--pm-tracking-wide) !important;
  font-weight: 600 !important;
  transition: color var(--pm-duration-fast) var(--pm-ease-out),
              opacity var(--pm-duration-fast) var(--pm-ease-out) !important;
}

.topbar nav a[aria-current="page"] {
  color: var(--pm-blue-400) !important;
}

.topbar .primary,
.topbar button.primary,
header .primary {
  border-radius: var(--pm-radius-full) !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  box-shadow: 0 4px 16px var(--pm-blue-glow) !important;
  transition: transform var(--pm-duration-fast) var(--pm-ease-out),
              box-shadow var(--pm-duration-fast) var(--pm-ease-out),
              background var(--pm-duration-fast) var(--pm-ease-out) !important;
}

.topbar .primary:hover,
.topbar button.primary:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 8px 24px var(--pm-blue-glow) !important;
}

.topbar .primary:active,
.topbar button.primary:active {
  transform: translateY(0) !important;
}

/* --------------------------------------------------------------------------
   Hero — cinematic, clearer hierarchy
   -------------------------------------------------------------------------- */
.hero-final,
section.hero#home {
  position: relative !important;
  overflow: hidden !important;
  background:
    radial-gradient(ellipse 80% 60% at 70% 20%, rgba(37, 99, 235, 0.18), transparent 55%),
    radial-gradient(ellipse 50% 40% at 15% 80%, rgba(139, 92, 246, 0.12), transparent 50%),
    linear-gradient(165deg, var(--pm-navy-950) 0%, var(--pm-navy-900) 40%, var(--pm-navy-800) 100%) !important;
}

.hero-final::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.03) 0%, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(37,99,235,0.06) 0%, transparent 35%);
  pointer-events: none;
  z-index: 0;
}

.hero-final-inner,
.hero-inner {
  position: relative;
  z-index: 1;
}

.hero-final-copy h1,
.hero-copy h1 {
  font-weight: 800 !important;
  letter-spacing: var(--pm-tracking-tight) !important;
  line-height: var(--pm-leading-tight) !important;
  background: linear-gradient(135deg, #ffffff 0%, #c7d7f0 55%, #93c5fd 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.hero-final-copy p,
.hero-copy > p {
  color: var(--pm-text-secondary) !important;
  max-width: 36rem !important;
  line-height: var(--pm-leading-relaxed) !important;
}

.hero-final-actions .primary,
.hero-actions .primary {
  border-radius: var(--pm-radius-full) !important;
  min-height: 52px !important;
  padding-inline: 28px !important;
  font-weight: 800 !important;
  font-size: 1.05rem !important;
  background: linear-gradient(135deg, var(--pm-blue-500), var(--pm-blue-700)) !important;
  border: 0 !important;
  box-shadow: 0 8px 28px var(--pm-blue-glow), inset 0 1px 0 rgba(255,255,255,0.2) !important;
  transition: transform var(--pm-duration-fast) var(--pm-ease-out),
              box-shadow var(--pm-duration-fast) var(--pm-ease-out) !important;
}

.hero-final-actions .primary:hover,
.hero-actions .primary:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 14px 36px var(--pm-blue-glow), inset 0 1px 0 rgba(255,255,255,0.25) !important;
}

.hero-final-actions .secondary,
.hero-actions .secondary,
.hero-final-actions a.secondary {
  border-radius: var(--pm-radius-full) !important;
  min-height: 52px !important;
  padding-inline: 24px !important;
  font-weight: 700 !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid var(--pm-border-medium) !important;
  color: var(--pm-text-primary) !important;
  backdrop-filter: blur(8px);
  transition: background var(--pm-duration-fast) var(--pm-ease-out),
              border-color var(--pm-duration-fast) var(--pm-ease-out),
              transform var(--pm-duration-fast) var(--pm-ease-out) !important;
}

.hero-final-actions .secondary:hover,
.hero-actions .secondary:hover {
  background: rgba(255,255,255,0.12) !important;
  border-color: var(--pm-border-strong) !important;
  transform: translateY(-1px) !important;
}

.trust-row,
.hero-final-trust {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px 14px !important;
}

.trust-row span,
.hero-final-trust span,
.hero-final-benefits span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 12px !important;
  border-radius: var(--pm-radius-full) !important;
  background: rgba(255,255,255,0.05) !important;
  border: 1px solid var(--pm-border-subtle) !important;
  color: var(--pm-text-secondary) !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
}

/* Device stage depth */
.pm4-stage {
  perspective: 1400px !important;
}

.pm-laptop-device,
.pm-tablet-device,
.pm-phone-device {
  transition: transform var(--pm-duration-slower) var(--pm-ease-out) !important;
  will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
  .pm4-stage:hover .pm-laptop-device { transform: translateY(-6px) rotateX(2deg) !important; }
  .pm4-stage:hover .pm-tablet-device { transform: translateY(-10px) rotateY(-4deg) !important; }
  .pm4-stage:hover .pm-phone-device { transform: translateY(-8px) rotateY(6deg) !important; }
}

@media (prefers-reduced-motion: reduce) {
  .pm-laptop-device,
  .pm-tablet-device,
  .pm-phone-device {
    transition: none !important;
  }
  .pm4-stage:hover .pm-laptop-device,
  .pm4-stage:hover .pm-tablet-device,
  .pm4-stage:hover .pm-phone-device {
    transform: none !important;
  }
}

/* --------------------------------------------------------------------------
   Section headings — clearer scan hierarchy
   -------------------------------------------------------------------------- */
.section-heading {
  max-width: 40rem !important;
  margin-inline: auto !important;
  text-align: center !important;
}

.section-heading .eyebrow,
.eyebrow {
  display: inline-block !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: var(--pm-tracking-wider) !important;
  text-transform: uppercase !important;
  color: var(--pm-blue-500) !important;
  margin-bottom: 10px !important;
}

.section-heading h2 {
  font-weight: 800 !important;
  letter-spacing: var(--pm-tracking-tight) !important;
  line-height: var(--pm-leading-tight) !important;
  color: var(--pm-text-on-light) !important;
}

.section-heading p {
  color: var(--pm-text-on-light-muted) !important;
  line-height: var(--pm-leading-relaxed) !important;
}

/* Dark sections */
.hero .section-heading h2,
[class*="dark"] .section-heading h2 {
  color: var(--pm-text-primary) !important;
}

/* --------------------------------------------------------------------------
   Cards — premium surfaces
   -------------------------------------------------------------------------- */
.feature-grid article,
.r31-feature-card,
.plan-column,
.shop-directory-card,
.shop-page-card,
.support-card,
.spec-card,
.price-card {
  border-radius: var(--pm-radius-lg) !important;
  border: 1px solid var(--pm-border-light) !important;
  box-shadow: var(--pm-shadow-card) !important;
  transition: transform var(--pm-duration-normal) var(--pm-ease-out),
              box-shadow var(--pm-duration-normal) var(--pm-ease-out),
              border-color var(--pm-duration-normal) var(--pm-ease-out) !important;
}

.feature-grid article:hover,
.r31-feature-card:hover,
.plan-column:hover,
.shop-directory-card:hover,
.support-card:hover,
.spec-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--pm-shadow-card-hover) !important;
  border-color: rgba(37, 99, 235, 0.2) !important;
}

@media (prefers-reduced-motion: reduce) {
  .feature-grid article:hover,
  .r31-feature-card:hover,
  .plan-column:hover,
  .shop-directory-card:hover {
    transform: none !important;
  }
}

/* Plan columns */
.plan-column {
  position: relative !important;
  overflow: hidden !important;
}

.plan-column.recommended,
.plan-column.featured,
.plan-column.premium-plan {
  border-color: rgba(37, 99, 235, 0.35) !important;
  box-shadow: var(--pm-shadow-card), 0 0 0 1px rgba(37, 99, 235, 0.15) !important;
}

.plan-column .plan-label {
  font-weight: 800 !important;
  letter-spacing: var(--pm-tracking-wide) !important;
  font-size: 0.72rem !important;
}

.plan-column button,
.plan-btn {
  border-radius: var(--pm-radius-full) !important;
  font-weight: 700 !important;
  min-height: 48px !important;
  transition: transform var(--pm-duration-fast) var(--pm-ease-out),
              box-shadow var(--pm-duration-fast) var(--pm-ease-out) !important;
}

.plan-column button.primary:hover,
.plan-btn.primary:hover {
  transform: translateY(-2px) !important;
}

/* --------------------------------------------------------------------------
   Buttons — system-wide refinement
   -------------------------------------------------------------------------- */
button.primary,
.primary.large,
a.primary {
  border-radius: var(--pm-radius-md) !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}

button.secondary,
.secondary.large,
a.secondary {
  border-radius: var(--pm-radius-md) !important;
  font-weight: 600 !important;
}

button:disabled,
.primary:disabled {
  opacity: 0.55 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

/* --------------------------------------------------------------------------
   Shop directory cards
   -------------------------------------------------------------------------- */
.shop-directory-card {
  background: var(--pm-surface-card-elevated) !important;
  overflow: hidden !important;
}

.shop-directory-card img {
  transition: transform var(--pm-duration-slow) var(--pm-ease-out) !important;
}

.shop-directory-card:hover img {
  transform: scale(1.03) !important;
}

@media (prefers-reduced-motion: reduce) {
  .shop-directory-card:hover img { transform: none !important; }
}

/* Online / offline / open status chips */
[data-online="true"],
.status-online,
.shop-online-badge {
  color: var(--pm-success) !important;
}

[data-online="false"],
.status-offline {
  color: var(--pm-text-muted) !important;
}

/* --------------------------------------------------------------------------
   Standalone shop page — distraction-free premium profile
   -------------------------------------------------------------------------- */
.standalone-shop-page {
  background: var(--pm-off-white) !important;
}

.standalone-shop-topbar {
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  background: rgba(255, 255, 255, 0.92) !important;
  border-bottom: 1px solid var(--pm-border-light) !important;
}

.shop-page-card {
  background: var(--pm-white) !important;
}

.standalone-mobile-actions {
  backdrop-filter: blur(20px) saturate(1.3) !important;
  -webkit-backdrop-filter: blur(20px) saturate(1.3) !important;
}

/* --------------------------------------------------------------------------
   Auth modal — cleaner panel
   -------------------------------------------------------------------------- */
#authModal .modal-card,
#authModal .auth-form-shell,
.auth-form-shell {
  border-radius: var(--pm-radius-xl) !important;
  box-shadow: var(--pm-shadow-xl) !important;
  border: 1px solid var(--pm-border-light) !important;
}

.auth-security-row {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 12px 0 8px !important;
}

.auth-security-row span {
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  padding: 4px 10px !important;
  border-radius: var(--pm-radius-full) !important;
  background: rgba(37, 99, 235, 0.08) !important;
  color: var(--pm-blue-700) !important;
}

.auth-password-wrap {
  position: relative !important;
  display: block !important;
}

.auth-password-toggle {
  position: absolute !important;
  right: 10px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
  opacity: 0.6 !important;
  font-size: 0.9rem !important;
  padding: 4px !important;
}

.auth-password-meter {
  display: flex !important;
  gap: 4px !important;
  margin-top: 8px !important;
}

.auth-password-meter i {
  flex: 1 !important;
  height: 4px !important;
  border-radius: 2px !important;
  background: var(--pm-silver-300) !important;
  transition: background var(--pm-duration-fast) !important;
}

.auth-password-meter[data-strength="1"] i:nth-child(1) { background: var(--pm-danger) !important; }
.auth-password-meter[data-strength="2"] i:nth-child(-n+2) { background: var(--pm-warning) !important; }
.auth-password-meter[data-strength="3"] i:nth-child(-n+3) { background: var(--pm-blue-500) !important; }
.auth-password-meter[data-strength="4"] i { background: var(--pm-success) !important; }

.auth-account-preview {
  display: flex !important;
  gap: 12px !important;
  align-items: flex-start !important;
  margin-top: 10px !important;
  padding: 12px !important;
  border-radius: var(--pm-radius-md) !important;
  background: rgba(37, 99, 235, 0.06) !important;
  border: 1px solid rgba(37, 99, 235, 0.12) !important;
}

.auth-account-preview i {
  display: grid !important;
  place-items: center !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 10px !important;
  background: var(--pm-blue-600) !important;
  color: white !important;
  font-size: 0.65rem !important;
  font-weight: 900 !important;
  font-style: normal !important;
  flex-shrink: 0 !important;
}

.auth-account-preview b {
  display: block !important;
  font-size: 0.9rem !important;
  color: var(--pm-text-on-light) !important;
}

.auth-account-preview small {
  color: var(--pm-text-on-light-muted) !important;
  font-size: 0.78rem !important;
  line-height: 1.4 !important;
}

/* --------------------------------------------------------------------------
   Forms — clearer states
   -------------------------------------------------------------------------- */
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select,
textarea {
  border-radius: var(--pm-radius-sm) !important;
  transition: border-color var(--pm-duration-fast) var(--pm-ease-out),
              box-shadow var(--pm-duration-fast) var(--pm-ease-out) !important;
}

input:not([type="checkbox"]):not([type="radio"]):focus,
select:focus,
textarea:focus {
  border-color: var(--pm-blue-500) !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15) !important;
}

/* --------------------------------------------------------------------------
   Payment surfaces
   -------------------------------------------------------------------------- */
.payment-hero {
  border-radius: var(--pm-radius-lg) var(--pm-radius-lg) 0 0 !important;
}

.payment-card {
  border-radius: var(--pm-radius-xl) !important;
  overflow: hidden !important;
  box-shadow: var(--pm-shadow-xl) !important;
}

/* --------------------------------------------------------------------------
   Messenger drawer
   -------------------------------------------------------------------------- */
#messengerDrawer,
.messenger-drawer {
  border-radius: var(--pm-radius-xl) 0 0 var(--pm-radius-xl) !important;
  box-shadow: var(--pm-shadow-xl) !important;
}

/* --------------------------------------------------------------------------
   Feature showcase with real product screenshots
   -------------------------------------------------------------------------- */
.pm-feature-visual {
  border-radius: var(--pm-radius-lg) !important;
  overflow: hidden !important;
  border: 1px solid var(--pm-border-light) !important;
  box-shadow: var(--pm-shadow-md) !important;
  background: var(--pm-white) !important;
}

.pm-feature-visual img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}

/* --------------------------------------------------------------------------
   Reveal animations (respect reduced motion)
   -------------------------------------------------------------------------- */
.pm-reveal,
.phase5-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity var(--pm-duration-slow) var(--pm-ease-out),
              transform var(--pm-duration-slow) var(--pm-ease-out);
}

.pm-reveal.pm-visible,
.pm-reveal.is-visible,
.phase5-reveal.is-visible,
.phase5-reveal.pm-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .pm-reveal,
  .phase5-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* --------------------------------------------------------------------------
   Toast
   -------------------------------------------------------------------------- */
#toast {
  border-radius: var(--pm-radius-md) !important;
  box-shadow: var(--pm-shadow-lg) !important;
  font-weight: 600 !important;
  backdrop-filter: blur(12px) !important;
}

/* --------------------------------------------------------------------------
   Back to top
   -------------------------------------------------------------------------- */
#backToTop {
  border-radius: var(--pm-radius-full) !important;
  box-shadow: var(--pm-shadow-md) !important;
  transition: opacity var(--pm-duration-normal) var(--pm-ease-out),
              transform var(--pm-duration-normal) var(--pm-ease-out) !important;
}

#backToTop.visible:hover {
  transform: translateY(-3px) !important;
}

/* --------------------------------------------------------------------------
   Mobile navigation polish
   -------------------------------------------------------------------------- */
@media (max-width: 960px) {
  #primaryNavigation.mobile-open {
    background: rgba(4, 10, 20, 0.97) !important;
    backdrop-filter: blur(20px) !important;
    box-shadow: var(--pm-shadow-xl) !important;
  }

  #mobileNavBackdrop.visible {
    background: rgba(4, 10, 20, 0.5) !important;
    backdrop-filter: blur(4px) !important;
  }
}

/* --------------------------------------------------------------------------
   Account / shop manager spacing
   -------------------------------------------------------------------------- */
#account,
#shopNetworkForm,
.developer-portal {
  scroll-margin-top: calc(var(--pm-header-height) + 16px);
}

/* --------------------------------------------------------------------------
   Skeleton / empty states
   -------------------------------------------------------------------------- */
.empty-state {
  padding: var(--pm-space-10) var(--pm-space-6) !important;
  text-align: center !important;
  color: var(--pm-text-on-light-muted) !important;
  border-radius: var(--pm-radius-lg) !important;
  background: rgba(15, 33, 58, 0.03) !important;
  border: 1px dashed var(--pm-border-light) !important;
}

/* --------------------------------------------------------------------------
   Network live stats strip
   -------------------------------------------------------------------------- */
.network-live-stats strong,
.stat-strip strong {
  font-variant-numeric: tabular-nums !important;
  font-weight: 800 !important;
}

/* --------------------------------------------------------------------------
   Reduce clutter: tighten long marketing sections slightly on large screens
   -------------------------------------------------------------------------- */
@media (min-width: 1280px) {
  .section {
    padding-block: clamp(3.5rem, 6vw, 5.5rem) !important;
  }
}

/* --------------------------------------------------------------------------
   Print / low-power: simplify decorative layers
   -------------------------------------------------------------------------- */
@media print {
  .pm4-stage,
  .pm5-device-ambient,
  #backToTop,
  .standalone-mobile-actions {
    display: none !important;
  }
}

/* ==========================================================================
   Realistic tablet + phone device shells (replace toy-like mockups)
   ========================================================================== */

/* --- Tablet: iPad-like aluminum frame --- */
.hero-final .pm-tablet-device[data-pm4-device="tablet"],
.pm-tablet-device[data-pm4-device="tablet"] {
  position: absolute !important;
  left: 2% !important;
  bottom: 4% !important;
  width: min(34%, 280px) !important;
  z-index: 4 !important;
  padding: 14px 12px !important;
  border-radius: 28px !important;
  border: 1.5px solid #3a4556 !important;
  background:
    linear-gradient(160deg, #2a3344 0%, #1a222e 40%, #0d1219 100%) !important;
  box-shadow:
    0 2px 0 rgba(255,255,255,0.12) inset,
    0 -1px 0 rgba(0,0,0,0.4) inset,
    0 28px 50px rgba(0,0,0,0.45),
    0 8px 16px rgba(0,0,0,0.25),
    0 0 0 1px rgba(0,0,0,0.5) !important;
  transform: perspective(900px) rotateY(12deg) rotateX(4deg) rotate(-3deg) !important;
  filter: drop-shadow(0 20px 30px rgba(0,0,0,0.35)) !important;
}

.pm-tablet-device .pm4-tablet-camera {
  position: absolute !important;
  top: 50% !important;
  right: 5px !important;
  width: 7px !important;
  height: 7px !important;
  border-radius: 50% !important;
  background: radial-gradient(circle at 35% 35%, #4a5568, #1a2030 70%) !important;
  box-shadow: 0 0 0 1.5px #0a0e14, inset 0 0 2px #000 !important;
  transform: translateY(-50%) !important;
  z-index: 3 !important;
}

.pm-tablet-device .pm4-tablet-screen {
  position: relative !important;
  height: 300px !important;
  overflow: hidden !important;
  padding: 14px 12px !important;
  border-radius: 16px !important;
  background: linear-gradient(180deg, #fbfdff 0%, #f0f4f9 100%) !important;
  color: #0f1a2a !important;
  font-family: -apple-system, "SF Pro Text", Inter, "Segoe UI", sans-serif !important;
  box-shadow:
    0 0 0 2px #0a0e14,
    inset 0 0 0 1px rgba(255,255,255,0.5) !important;
}

/* Screen glare */
.pm-tablet-device .pm4-tablet-screen::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: 16px !important;
  background: linear-gradient(
    125deg,
    rgba(255,255,255,0.28) 0%,
    rgba(255,255,255,0) 38%,
    transparent 55%
  ) !important;
  pointer-events: none !important;
  z-index: 2 !important;
}

.pm-tablet-device .pm4-tablet-screen > * {
  position: relative !important;
  z-index: 1 !important;
}

.pm-tablet-device .pm4-tablet-screen header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 8px !important;
}

.pm-tablet-device .pm4-tablet-screen header > div {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.pm-tablet-device .pm4-tablet-screen header span {
  display: grid !important;
  place-items: center !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 8px !important;
  background: linear-gradient(135deg, #3b82f6, #1d4ed8) !important;
  color: #fff !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  box-shadow: 0 2px 6px rgba(37,99,235,0.35) !important;
}

.pm-tablet-device .pm4-tablet-screen header b {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #0f1a2a !important;
}

.pm-tablet-device .pm4-tablet-screen header em {
  padding: 4px 9px !important;
  border-radius: 999px !important;
  background: #dcfce7 !important;
  color: #166534 !important;
  font-size: 8px !important;
  font-style: normal !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
}

.pm-tablet-device .pm4-tablet-screen > small {
  display: block !important;
  color: #2563eb !important;
  font-size: 8px !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 4px !important;
}

.pm-tablet-device .pm4-tablet-screen h3 {
  margin: 0 0 12px !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  color: #0f1a2a !important;
  letter-spacing: -0.02em !important;
}

.pm-tablet-device .pm4-tablet-options {
  display: flex !important;
  gap: 6px !important;
  margin-bottom: 12px !important;
}

.pm-tablet-device .pm4-tablet-options span {
  flex: 1 !important;
  padding: 8px 4px !important;
  border: 1px solid #d5dee9 !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #64748b !important;
  font-size: 8px !important;
  font-weight: 600 !important;
  text-align: center !important;
}

.pm-tablet-device .pm4-tablet-options span.active {
  border-color: #2563eb !important;
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  box-shadow: 0 0 0 1px rgba(37,99,235,0.2) !important;
}

.pm-tablet-device .pm4-tablet-upload {
  display: grid !important;
  place-items: center !important;
  gap: 4px !important;
  padding: 18px 10px !important;
  border: 1.5px dashed #93c5fd !important;
  border-radius: 12px !important;
  background: #f0f7ff !important;
  margin-bottom: 12px !important;
}

.pm-tablet-device .pm4-tablet-upload b {
  font-size: 11px !important;
  color: #1d4ed8 !important;
}

.pm-tablet-device .pm4-tablet-upload small {
  font-size: 8px !important;
  color: #64748b !important;
}

.pm-tablet-device .pm4-tablet-screen button {
  width: 100% !important;
  min-height: 36px !important;
  border: 0 !important;
  border-radius: 11px !important;
  background: linear-gradient(135deg, #3b82f6, #1d4ed8) !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  box-shadow: 0 4px 12px rgba(37,99,235,0.35) !important;
}

.pm-tablet-device .pm4-device-label {
  padding: 10px 4px 2px !important;
  text-align: center !important;
}

.pm-tablet-device .pm4-device-label b {
  display: block !important;
  color: #e2eaf5 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
}

.pm-tablet-device .pm4-device-label span {
  color: #8b9cb3 !important;
  font-size: 9px !important;
}

/* --- Phone: modern smartphone shell --- */
.hero-final .pm-phone-device[data-pm4-device="phone"],
.pm-phone-device[data-pm4-device="phone"] {
  position: absolute !important;
  right: 1% !important;
  bottom: 2% !important;
  width: min(20%, 168px) !important;
  z-index: 5 !important;
  padding: 11px 9px 14px !important;
  border-radius: 32px !important;
  border: 1.5px solid #2c3648 !important;
  background:
    linear-gradient(165deg, #2e3748 0%, #161c28 45%, #0a0e16 100%) !important;
  box-shadow:
    0 1.5px 0 rgba(255,255,255,0.14) inset,
    0 -1px 0 rgba(0,0,0,0.5) inset,
    0 30px 55px rgba(0,0,0,0.5),
    0 10px 20px rgba(0,0,0,0.3),
    0 0 0 1px rgba(0,0,0,0.55) !important;
  transform: perspective(900px) rotateY(-14deg) rotateX(3deg) rotate(4deg) !important;
  filter: drop-shadow(0 22px 32px rgba(0,0,0,0.4)) !important;
}

/* Dynamic Island / notch */
.pm-phone-device .pm4-phone-speaker {
  position: absolute !important;
  top: 14px !important;
  left: 50% !important;
  width: 42% !important;
  height: 12px !important;
  border-radius: 20px !important;
  background: #0a0e14 !important;
  box-shadow:
    0 0 0 1px #1a2030,
    inset 0 0 4px rgba(0,0,0,0.8) !important;
  transform: translateX(-50%) !important;
  z-index: 4 !important;
}

/* Side buttons hint */
.pm-phone-device::before {
  content: "" !important;
  position: absolute !important;
  left: -2px !important;
  top: 28% !important;
  width: 2.5px !important;
  height: 28px !important;
  border-radius: 2px 0 0 2px !important;
  background: linear-gradient(180deg, #4a5568, #2a3344) !important;
}

.pm-phone-device::after {
  content: "" !important;
  position: absolute !important;
  right: -2px !important;
  top: 22% !important;
  width: 2.5px !important;
  height: 48px !important;
  border-radius: 0 2px 2px 0 !important;
  background: linear-gradient(180deg, #4a5568, #2a3344) !important;
}

.pm-phone-device .pm4-phone-screen {
  position: relative !important;
  height: 290px !important;
  overflow: hidden !important;
  padding: 22px 10px 12px !important;
  border-radius: 24px !important;
  background: linear-gradient(180deg, #ffffff 0%, #f5f8fc 100%) !important;
  color: #0f1a2a !important;
  font-family: -apple-system, "SF Pro Text", Inter, "Segoe UI", sans-serif !important;
  box-shadow:
    0 0 0 2.5px #0a0e14,
    inset 0 0 0 0.5px rgba(255,255,255,0.4) !important;
}

.pm-phone-device .pm4-phone-screen::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: 24px !important;
  background: linear-gradient(
    140deg,
    rgba(255,255,255,0.35) 0%,
    rgba(255,255,255,0) 32%,
    transparent 50%
  ) !important;
  pointer-events: none !important;
  z-index: 2 !important;
}

.pm-phone-device .pm4-phone-screen > * {
  position: relative !important;
  z-index: 1 !important;
}

.pm-phone-device .pm4-phone-status {
  display: flex !important;
  justify-content: space-between !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  color: #334155 !important;
  margin-bottom: 8px !important;
  padding: 0 2px !important;
}

.pm-phone-device .pm4-phone-screen header {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 10px !important;
}

.pm-phone-device .pm4-phone-screen header > span {
  display: grid !important;
  place-items: center !important;
  width: 26px !important;
  height: 26px !important;
  border-radius: 8px !important;
  background: linear-gradient(135deg, #3b82f6, #1d4ed8) !important;
  color: #fff !important;
  font-size: 8px !important;
  font-weight: 900 !important;
}

.pm-phone-device .pm4-phone-screen header div {
  display: grid !important;
  gap: 1px !important;
}

.pm-phone-device .pm4-phone-screen header b {
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #0f1a2a !important;
}

.pm-phone-device .pm4-phone-screen header small {
  font-size: 8px !important;
  color: #16a34a !important;
  font-weight: 600 !important;
}

.pm-phone-device .pm4-phone-screen > small {
  display: block !important;
  color: #2563eb !important;
  font-size: 7px !important;
  font-weight: 800 !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 3px !important;
}

.pm-phone-device .pm4-phone-screen h3 {
  margin: 0 0 12px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #0f1a2a !important;
  letter-spacing: -0.02em !important;
  line-height: 1.25 !important;
}

.pm-phone-device .pm4-phone-screen label {
  display: grid !important;
  gap: 2px !important;
  margin: 0 0 8px !important;
  padding: 8px 10px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: 0 1px 2px rgba(15,23,42,0.04) !important;
}

.pm-phone-device .pm4-phone-screen label span {
  color: #94a3b8 !important;
  font-size: 7px !important;
  font-weight: 600 !important;
}

.pm-phone-device .pm4-phone-screen label b {
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #0f1a2a !important;
}

.pm-phone-device .pm4-phone-upload {
  display: grid !important;
  place-items: center !important;
  padding: 14px 8px !important;
  border: 1.5px dashed #93c5fd !important;
  border-radius: 10px !important;
  background: #f0f7ff !important;
  color: #1d4ed8 !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  margin: 4px 0 10px !important;
}

.pm-phone-device .pm4-phone-screen button {
  width: 100% !important;
  min-height: 34px !important;
  border: 0 !important;
  border-radius: 11px !important;
  background: linear-gradient(135deg, #3b82f6, #1d4ed8) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  box-shadow: 0 4px 12px rgba(37,99,235,0.35) !important;
}

.pm-phone-device .pm4-device-label {
  padding: 10px 2px 0 !important;
  text-align: center !important;
}

.pm-phone-device .pm4-device-label b {
  display: block !important;
  color: #e2eaf5 !important;
  font-size: 10px !important;
  font-weight: 700 !important;
}

.pm-phone-device .pm4-device-label span {
  color: #8b9cb3 !important;
  font-size: 8px !important;
}

/* Laptop shell polish for consistency */
.hero-final .pm-laptop-device[data-pm4-device="laptop"] {
  filter: drop-shadow(0 30px 45px rgba(0,0,0,0.4)) !important;
}

.pm4-laptop-shell {
  border: 1.5px solid #3a4a60 !important;
  background: linear-gradient(155deg, #2a3a50 0%, #121c2b 50%, #0a1018 100%) !important;
  box-shadow:
    0 2px 0 rgba(255,255,255,0.1) inset,
    0 0 0 1px rgba(0,0,0,0.4) !important;
}

/* Hover: subtle realistic tilt (desktop only) */
@media (hover: hover) and (pointer: fine) {
  .pm4-stage:hover .pm-tablet-device[data-pm4-device="tablet"] {
    transform: perspective(900px) rotateY(8deg) rotateX(2deg) rotate(-2deg) translateY(-8px) !important;
  }
  .pm4-stage:hover .pm-phone-device[data-pm4-device="phone"] {
    transform: perspective(900px) rotateY(-10deg) rotateX(2deg) rotate(3deg) translateY(-10px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pm-tablet-device[data-pm4-device="tablet"],
  .pm-phone-device[data-pm4-device="phone"] {
    transition: none !important;
  }
  .pm4-stage:hover .pm-tablet-device[data-pm4-device="tablet"],
  .pm4-stage:hover .pm-phone-device[data-pm4-device="phone"] {
    transform: perspective(900px) rotateY(12deg) rotateX(4deg) rotate(-3deg) !important;
  }
  .pm4-stage:hover .pm-phone-device[data-pm4-device="phone"] {
    transform: perspective(900px) rotateY(-14deg) rotateX(3deg) rotate(4deg) !important;
  }
}

/* Mobile/tablet breakpoints: flatten perspective so they stay readable */
@media (max-width: 820px) {
  .hero-final .pm-tablet-device[data-pm4-device="tablet"],
  .hero-final .pm-phone-device[data-pm4-device="phone"] {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 320px !important;
    transform: none !important;
    filter: drop-shadow(0 12px 24px rgba(0,0,0,0.25)) !important;
  }
  .pm-tablet-device .pm4-tablet-screen {
    height: 280px !important;
  }
  .pm-phone-device .pm4-phone-screen {
    height: 300px !important;
  }
  .pm-phone-device::before,
  .pm-phone-device::after {
    display: none !important;
  }
}

/* ==========================================================================
   Photorealistic device photos (generated product shots)
   ========================================================================== */

.pm-realistic-devices.pm4-stage {
  position: relative !important;
  width: 100% !important;
  height: 560px !important;
  min-height: 520px !important;
}

.pm-device-photo {
  position: absolute !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  filter: drop-shadow(0 28px 40px rgba(0, 0, 0, 0.45)) !important;
  transition: transform 0.55s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.pm-device-photo img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  object-fit: contain !important;
  pointer-events: none !important;
  user-select: none !important;
}

.pm-device-photo figcaption {
  display: grid !important;
  gap: 1px !important;
  margin-top: 8px !important;
  text-align: center !important;
}

.pm-device-photo figcaption b {
  color: #e8eef6 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
}

.pm-device-photo figcaption span {
  color: #8b9cb3 !important;
  font-size: 9px !important;
}

/* Laptop — center-back, largest */
.pm-device-laptop {
  left: 8% !important;
  top: 2% !important;
  width: 78% !important;
  z-index: 2 !important;
}

/* Tablet — front left */
.pm-device-tablet {
  left: 0% !important;
  bottom: 2% !important;
  width: 32% !important;
  z-index: 4 !important;
  transform: rotate(-4deg) !important;
}

/* Phone — front right */
.pm-device-phone {
  right: 2% !important;
  bottom: 0% !important;
  width: 18% !important;
  z-index: 5 !important;
  transform: rotate(5deg) !important;
}

@media (hover: hover) and (pointer: fine) {
  .pm4-stage:hover .pm-device-laptop {
    transform: translateY(-6px) !important;
  }
  .pm4-stage:hover .pm-device-tablet {
    transform: rotate(-3deg) translateY(-10px) !important;
  }
  .pm4-stage:hover .pm-device-phone {
    transform: rotate(4deg) translateY(-12px) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pm-device-photo {
    transition: none !important;
  }
  .pm4-stage:hover .pm-device-laptop,
  .pm4-stage:hover .pm-device-tablet,
  .pm4-stage:hover .pm-device-phone {
    transform: none !important;
  }
  .pm-device-tablet { transform: rotate(-4deg) !important; }
  .pm-device-phone { transform: rotate(5deg) !important; }
}

@media (max-width: 1024px) {
  .pm-realistic-devices.pm4-stage {
    height: 480px !important;
  }
  .pm-device-laptop { width: 82% !important; left: 6% !important; }
  .pm-device-tablet { width: 34% !important; }
  .pm-device-phone { width: 20% !important; }
}

@media (max-width: 820px) {
  .pm-realistic-devices.pm4-stage {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 12px 0 24px !important;
  }
  .pm-realistic-devices .pm4-backdrop,
  .pm-realistic-devices .pm4-floating-note {
    display: none !important;
  }
  .pm-device-photo {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100% !important;
    transform: none !important;
    filter: drop-shadow(0 14px 24px rgba(0,0,0,0.3)) !important;
  }
  .pm-device-laptop {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 560px !important;
    justify-self: center !important;
  }
  .pm-device-tablet,
  .pm-device-phone {
    max-width: 280px !important;
    justify-self: center !important;
  }
}

@media (max-width: 560px) {
  .pm-realistic-devices.pm4-stage {
    grid-template-columns: 1fr !important;
  }
  .pm-device-tablet,
  .pm-device-phone {
    max-width: 240px !important;
  }
}

/* ==========================================================================
   FINAL POLISH — integrated design system (2026-08-05)
   ========================================================================== */

/* Page shell */
html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Header glass refinement */
.site-header,
header.site-header,
.top-nav,
.pm-header {
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
}

/* Primary CTAs */
.btn-primary,
button.primary,
a.btn-primary,
.hero-final .btn-primary,
[data-cta="trial"],
.cta-primary {
  border-radius: 12px !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  box-shadow: 0 4px 16px rgba(37, 99, 235, 0.35) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease !important;
}
.btn-primary:hover,
button.primary:hover,
a.btn-primary:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 8px 24px rgba(37, 99, 235, 0.45) !important;
  filter: brightness(1.05) !important;
}
.btn-primary:active,
button.primary:active {
  transform: translateY(0) !important;
}

/* Secondary / ghost */
.btn-secondary,
button.secondary,
a.btn-secondary {
  border-radius: 12px !important;
  font-weight: 600 !important;
}

/* Feature / plan / shop cards */
.r31-feature-card,
.plan-card,
.shop-card,
.pm-feature-slide,
.premium-feature-card {
  border-radius: 16px !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}
@media (hover: hover) and (pointer: fine) {
  .r31-feature-card:hover,
  .plan-card:hover,
  .shop-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 16px 40px rgba(4, 10, 20, 0.14) !important;
  }
}

/* Premium crown badge */
.premium-crown-badge {
  letter-spacing: 0.04em !important;
  font-weight: 800 !important;
}

/* Device photo labels under images */
.pm-device-photo figcaption {
  margin-top: 10px !important;
}
.pm-device-photo figcaption b {
  font-size: 12px !important;
  color: #e8eef6 !important;
}
.pm-device-photo figcaption span {
  font-size: 10px !important;
  color: #8b9cb3 !important;
}

/* Floating notes on hero */
.pm4-floating-note {
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25) !important;
}

/* Forms focus */
input:focus,
select:focus,
textarea:focus,
button:focus-visible {
  outline: 2px solid var(--pm-blue-500, #2563eb) !important;
  outline-offset: 2px !important;
}

/* Modals */
.modal-card,
.auth-card,
.payment-card {
  border-radius: 18px !important;
  box-shadow: 0 24px 64px rgba(4, 10, 20, 0.28) !important;
}

/* Section spacing rhythm */
.section {
  scroll-margin-top: 88px;
}

/* Shop directory cards */
#publicShopGrid article,
.shop-card {
  border-radius: 14px !important;
}

/* Messenger drawer */
#messengerDrawer,
.messenger-drawer {
  border-radius: 16px 0 0 16px !important;
}

/* Footer */
footer,
.site-footer {
  border-top: 1px solid rgba(168, 184, 204, 0.12) !important;
}

/* Image defaults */
img {
  max-width: 100%;
  height: auto;
}
.pm-device-photo img {
  max-width: none !important;
}

/* Selection */
::selection {
  background: rgba(37, 99, 235, 0.35);
  color: #fff;
}

/* Print */
@media print {
  .site-header,
  .pm4-floating-note,
  .btn-primary {
    box-shadow: none !important;
  }
}

/* Force device photos visible */
.pm-realistic-devices .pm-device-photo {
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
}
.pm-realistic-devices .pm-device-photo img {
  opacity: 1 !important;
  visibility: visible !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  background: transparent !important;
}
.pm-device-laptop { z-index: 2 !important; }
.pm-device-tablet { z-index: 4 !important; }
.pm-device-phone { z-index: 5 !important; }

.pm-realistic-devices .pm-device-photo,.pm-realistic-devices .pm-device-photo img{opacity:1!important;visibility:visible!important;display:block!important}
.pm-realistic-devices .pm-device-photo img{width:100%!important;height:auto!important;object-fit:contain!important;background:transparent!important}

/* R72 final hero contrast correction */
.hero-final[data-hero-revision="CLOUDFLARE-FIRST-V4"] .hero-final-copy > p {
  color: #b9c8dc !important;
}
.hero-final[data-hero-revision="CLOUDFLARE-FIRST-V4"] .hero-final-actions .secondary {
  color: #102d58 !important;
  background: rgba(255, 255, 255, 0.94) !important;
  border-color: rgba(255, 255, 255, 0.78) !important;
}
.hero-final[data-hero-revision="CLOUDFLARE-FIRST-V4"] .hero-final-actions .ghost {
  color: #f4f8ff !important;
  border-color: rgba(255, 255, 255, 0.34) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}
.hero-final[data-hero-revision="CLOUDFLARE-FIRST-V4"] .hero-final-actions .ghost:hover {
  background: rgba(255, 255, 255, 0.14) !important;
}

/* R72 device-stage stacking correction: keep ambient backdrops behind real PNG devices. */
.pm-realistic-devices.pm4-stage {
  isolation: isolate !important;
}
.pm-realistic-devices .pm4-backdrop {
  z-index: 0 !important;
  pointer-events: none !important;
}
.pm-realistic-devices .pm-device-laptop { z-index: 2 !important; }
.pm-realistic-devices .pm-device-tablet { z-index: 4 !important; }
.pm-realistic-devices .pm-device-phone { z-index: 5 !important; }
.pm-realistic-devices .pm4-floating-note { z-index: 7 !important; }

/* Avoid Chromium/GPU compositing dropouts on large transparent device PNGs. */
.pm-realistic-devices .pm-device-photo {
  filter: none !important;
}

/* R72 small-screen header and hidden-state correction. */
[hidden] { display: none !important; }
@media (max-width: 430px) {
  .topbar .brand > span:last-child i { display: none !important; }
  .topbar .brand > span:last-child { font-size: 1rem !important; }
  .brand-logo { width: 48px !important; height: 48px !important; flex-basis: 48px !important; }
}
