{"id":26,"date":"2024-12-11T14:53:09","date_gmt":"2024-12-11T14:53:09","guid":{"rendered":"https:\/\/rentamac.io\/?page_id=26"},"modified":"2026-04-22T11:50:46","modified_gmt":"2026-04-22T11:50:46","slug":"la-tarification","status":"publish","type":"page","link":"https:\/\/rentamac.io\/fr\/pricing\/","title":{"rendered":"Tarification"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"26\" class=\"elementor elementor-26\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-892b957 e-flex e-con-boxed e-con e-parent\" data-id=\"892b957\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1d9ab08 elementor-widget elementor-widget-html\" data-id=\"1d9ab08\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- RentaMac Pricing Component for WordPress -->\r\n<!-- Add this to your theme's functions.php or use a plugin to load Inter font:\r\n     wp_enqueue_style('google-fonts-inter', 'https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800&display=swap');\r\n-->\r\n<style>\r\n    \/* ============================================\r\n       CONFIGURATION - Easy to modify pricing\r\n       ============================================ *\/\r\n\r\n    .rentamac-pricing {\r\n      \/* Colors *\/\r\n      --bg: #0a0a0f;\r\n      --bg-card: rgba(255, 255, 255, 0.03);\r\n      --bg-card-hover: rgba(255, 255, 255, 0.05);\r\n      --stroke: rgba(255, 255, 255, 0.08);\r\n      --stroke-hover: rgba(255, 255, 255, 0.15);\r\n      --text: #f0f2f5;\r\n      --text-secondary: #8b919e;\r\n      --text-muted: #5c6370;\r\n\r\n      \/* Accent colors *\/\r\n      --accent-blue: #3b82f6;\r\n      --accent-blue-glow: rgba(59, 130, 246, 0.2);\r\n      --accent-purple: #a855f7;\r\n      --accent-green: #22c55e;\r\n      --accent-green-glow: rgba(34, 197, 94, 0.15);\r\n      --accent-orange: #f97316;\r\n\r\n      \/* Gradients *\/\r\n      --gradient-primary: linear-gradient(135deg, #3b82f6, #8b5cf6);\r\n      --gradient-success: linear-gradient(135deg, #22c55e, #10b981);\r\n\r\n      \/* Shadows *\/\r\n      --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.3);\r\n      --shadow-md: 0 8px 32px rgba(0, 0, 0, 0.4);\r\n      --shadow-lg: 0 16px 64px rgba(0, 0, 0, 0.5);\r\n      --shadow-glow: 0 0 40px var(--accent-blue-glow);\r\n\r\n      \/* Base styles for the component *\/\r\n      font-family: 'Inter', system-ui, -apple-system, sans-serif;\r\n      color: var(--text);\r\n      -webkit-font-smoothing: antialiased;\r\n      line-height: 1.5;\r\n      box-sizing: border-box;\r\n    }\r\n\r\n    .rentamac-pricing *,\r\n    .rentamac-pricing *::before,\r\n    .rentamac-pricing *::after {\r\n      box-sizing: border-box;\r\n    }\r\n\r\n    \/* Container *\/\r\n    .rentamac-pricing .container {\r\n      max-width: 720px;\r\n      margin: 0 auto;\r\n      padding: 4px 24px 24px;\r\n    }\r\n\r\n    \/* Header *\/\r\n    .rentamac-pricing .header {\r\n      text-align: center;\r\n      margin-top: 0;\r\n      margin-bottom: 4px;\r\n    }\r\n\r\n    .rentamac-pricing .header h1 {\r\n      font-size: clamp(32px, 5vw, 48px);\r\n      font-weight: 800;\r\n      letter-spacing: -0.5px;\r\n      margin-top: 0;\r\n      margin-bottom: 10px;\r\n      color: #ffffff; \/* White fallback color for browsers that don't support gradient text *\/\r\n    }\r\n\r\n    @supports (-webkit-background-clip: text) or (background-clip: text) {\r\n      .rentamac-pricing .header h1 {\r\n        background: linear-gradient(135deg, #ffffff 0%, rgba(255, 255, 255, 0.8) 100%);\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        background-clip: text;\r\n      }\r\n    }\r\n\r\n    \/* Main Card *\/\r\n    .rentamac-pricing .pricing-card {\r\n      background: var(--bg);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 24px;\r\n      padding: 24px 32px 32px;\r\n      box-shadow: var(--shadow-lg);\r\n    }\r\n\r\n    \/* Device Info *\/\r\n    .rentamac-pricing .device-info {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 6px;\r\n      padding-bottom: 10px;\r\n      border-bottom: 1px solid var(--stroke);\r\n      margin-bottom: 10px;\r\n    }\r\n\r\n    .rentamac-pricing .device-image {\r\n      width: 100px;\r\n      height: 56px;\r\n      object-fit: contain;\r\n      filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.4));\r\n    }\r\n\r\n    .rentamac-pricing .device-details h2 {\r\n      font-size: 22px;\r\n      font-weight: 700;\r\n      margin-bottom: 4px;\r\n    }\r\n\r\n    .rentamac-pricing .device-specs {\r\n      display: flex;\r\n      flex-wrap: wrap;\r\n      gap: 8px;\r\n    }\r\n\r\n    .rentamac-pricing .spec-badge {\r\n      background: rgba(255, 255, 255, 0.06);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 6px;\r\n      padding: 4px 10px;\r\n      font-size: 12px;\r\n      font-weight: 500;\r\n      color: var(--text-secondary);\r\n      display: inline-flex;\r\n      align-items: center;\r\n      gap: 4px;\r\n      position: relative;\r\n    }\r\n\r\n    .rentamac-pricing .spec-badge .feature-info {\r\n      width: 14px;\r\n      height: 14px;\r\n      margin-left: 2px;\r\n    }\r\n\r\n    .rentamac-pricing .spec-badge .feature-info svg {\r\n      width: 12px;\r\n      height: 12px;\r\n      color: var(--text-muted);\r\n    }\r\n\r\n    .rentamac-pricing .spec-badge .feature-info:hover svg {\r\n      color: var(--accent-blue);\r\n    }\r\n\r\n    .rentamac-pricing .spec-badge .feature-info .tooltip {\r\n      width: 240px;\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n    }\r\n\r\n    .rentamac-pricing .spec-badge {\r\n      cursor: help;\r\n    }\r\n\r\n    .rentamac-pricing .spec-badge:hover .feature-info svg {\r\n      color: var(--accent-blue);\r\n    }\r\n\r\n    .rentamac-pricing .spec-badge:hover .feature-info .tooltip {\r\n      opacity: 1;\r\n      visibility: visible;\r\n    }\r\n\r\n    \/* Section Titles *\/\r\n    .rentamac-pricing .section-title {\r\n      font-size: 13px;\r\n      font-weight: 600;\r\n      color: var(--text-muted);\r\n      text-transform: uppercase;\r\n      letter-spacing: 0.5px;\r\n      margin-bottom: 3px;\r\n    }\r\n\r\n    \/* Cycle Selector *\/\r\n    .rentamac-pricing .cycle-section {\r\n      margin-bottom: 4px;\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tabs {\r\n      display: flex;\r\n      gap: 4px;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab {\r\n      flex: 1;\r\n      min-width: 80px;\r\n      background: rgba(255, 255, 255, 0.04);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 12px;\r\n      padding: 14px 12px;\r\n      cursor: pointer;\r\n      transition: all 0.2s ease;\r\n      text-align: center;\r\n      position: relative;\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab:hover {\r\n      background: rgba(255, 255, 255, 0.06);\r\n      border-color: var(--stroke-hover);\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab.active {\r\n      background: rgba(59, 130, 246, 0.1);\r\n      border-color: var(--accent-blue);\r\n      box-shadow: 0 0 20px var(--accent-blue-glow);\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab .cycle-name {\r\n      font-size: 14px;\r\n      font-weight: 600;\r\n      color: var(--text);\r\n      display: block;\r\n      margin-top: 6px;\r\n      margin-bottom: 2px;\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab .cycle-price {\r\n      font-size: 12px;\r\n      color: var(--text-secondary);\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab.active .cycle-name {\r\n      color: var(--accent-blue);\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab .savings-badge {\r\n      display: inline-block;\r\n      background: var(--gradient-success);\r\n      color: #000;\r\n      font-size: 10px;\r\n      font-weight: 700;\r\n      padding: 2px 6px;\r\n      border-radius: 4px;\r\n      margin-top: 6px;\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab .popular-badge {\r\n      position: absolute;\r\n      top: -8px;\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n      background: var(--accent-blue);\r\n      color: #fff;\r\n      font-size: 9px;\r\n      font-weight: 700;\r\n      padding: 3px 8px;\r\n      border-radius: 4px;\r\n      text-transform: uppercase;\r\n      letter-spacing: 0.5px;\r\n    }\r\n\r\n    \/* Unavailable cycle tab (e.g. daily plan low stock) *\/\r\n    .rentamac-pricing .cycle-tab.unavailable {\r\n      cursor: not-allowed;\r\n      position: relative;\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab.unavailable .cycle-name,\r\n    .rentamac-pricing .cycle-tab.unavailable .cycle-price {\r\n      opacity: 0.4;\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab.unavailable:hover {\r\n      background: rgba(255, 255, 255, 0.04);\r\n      border-color: var(--stroke);\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab.unavailable::after {\r\n      content: 'Disabled when availability is low. Join the waitlist to be notified.';\r\n      position: absolute;\r\n      bottom: 100%;\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n      background: var(--accent-orange);\r\n      color: #fff;\r\n      padding: 8px 14px;\r\n      border-radius: 8px;\r\n      font-size: 12px;\r\n      font-weight: 600;\r\n      white-space: nowrap;\r\n      opacity: 0;\r\n      visibility: hidden;\r\n      transition: all 0.2s ease;\r\n      pointer-events: none;\r\n      z-index: 10;\r\n      margin-bottom: 10px;\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab.unavailable::before {\r\n      content: '';\r\n      position: absolute;\r\n      bottom: 100%;\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n      border: 6px solid transparent;\r\n      border-top-color: var(--accent-orange);\r\n      opacity: 0;\r\n      visibility: hidden;\r\n      transition: all 0.2s ease;\r\n      margin-bottom: -2px;\r\n      z-index: 10;\r\n    }\r\n\r\n    .rentamac-pricing .cycle-tab.unavailable:hover::after,\r\n    .rentamac-pricing .cycle-tab.unavailable:hover::before {\r\n      opacity: 1;\r\n      visibility: visible;\r\n    }\r\n\r\n    \/* Storage Section *\/\r\n    .rentamac-pricing .storage-section {\r\n      margin-bottom: 4px;\r\n    }\r\n\r\n    .rentamac-pricing .storage-options {\r\n      display: flex;\r\n      gap: 5px;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .rentamac-pricing .storage-option {\r\n      flex: 1;\r\n      min-width: 140px;\r\n      background: rgba(255, 255, 255, 0.04);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 12px;\r\n      padding: 16px;\r\n      cursor: pointer;\r\n      transition: all 0.2s ease;\r\n      text-align: center;\r\n      position: relative;\r\n    }\r\n\r\n    .rentamac-pricing .storage-option:hover:not(.disabled) {\r\n      background: rgba(255, 255, 255, 0.06);\r\n      border-color: var(--stroke-hover);\r\n    }\r\n\r\n    .rentamac-pricing .storage-option.active {\r\n      background: rgba(34, 197, 94, 0.08);\r\n      border-color: var(--accent-green);\r\n    }\r\n\r\n    .rentamac-pricing .storage-option.disabled {\r\n      cursor: not-allowed;\r\n    }\r\n    .rentamac-pricing .storage-option.disabled .storage-content {\r\n      opacity: 0.6;\r\n      filter: blur(1.5px);\r\n    }\r\n    .rentamac-pricing .storage-option.disabled:hover .storage-content {\r\n      filter: blur(1px);\r\n    }\r\n    .rentamac-pricing .storage-option.disabled::after {\r\n      content: 'Storage add-ons are only available on weekly or higher plans';\r\n      position: absolute;\r\n      bottom: 100%;\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n      background: rgba(0, 0, 0, 0.9);\r\n      color: var(--text);\r\n      padding: 8px 12px;\r\n      border-radius: 8px;\r\n      font-size: 12px;\r\n      font-weight: 500;\r\n      white-space: nowrap;\r\n      opacity: 0;\r\n      visibility: hidden;\r\n      transition: all 0.2s ease;\r\n      pointer-events: none;\r\n      z-index: 10;\r\n      margin-bottom: 8px;\r\n      border: 1px solid var(--stroke);\r\n    }\r\n    .rentamac-pricing .storage-option.disabled::before {\r\n      content: '';\r\n      position: absolute;\r\n      bottom: 100%;\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n      border: 6px solid transparent;\r\n      border-top-color: rgba(0, 0, 0, 0.9);\r\n      opacity: 0;\r\n      visibility: hidden;\r\n      transition: all 0.2s ease;\r\n      margin-bottom: 2px;\r\n    }\r\n    .rentamac-pricing .storage-option.disabled:hover::after,\r\n    .rentamac-pricing .storage-option.disabled:hover::before {\r\n      opacity: 1;\r\n      visibility: visible;\r\n    }\r\n\r\n    .rentamac-pricing .storage-option.unavailable {\r\n      cursor: not-allowed;\r\n      position: relative;\r\n    }\r\n\r\n    .rentamac-pricing .storage-option.unavailable .storage-content {\r\n      opacity: 0.6;\r\n      filter: blur(1.5px);\r\n    }\r\n\r\n    .rentamac-pricing .storage-option.unavailable:hover .storage-content {\r\n      filter: blur(1px);\r\n    }\r\n\r\n    .rentamac-pricing .storage-option.unavailable::after {\r\n      content: 'Unavailable due to high demand';\r\n      position: absolute;\r\n      bottom: 100%;\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n      background: rgba(0, 0, 0, 0.9);\r\n      color: var(--text);\r\n      padding: 8px 12px;\r\n      border-radius: 8px;\r\n      font-size: 12px;\r\n      font-weight: 500;\r\n      white-space: nowrap;\r\n      opacity: 0;\r\n      visibility: hidden;\r\n      transition: all 0.2s ease;\r\n      pointer-events: none;\r\n      z-index: 10;\r\n      margin-bottom: 8px;\r\n      border: 1px solid var(--stroke);\r\n    }\r\n\r\n    .rentamac-pricing .storage-option.unavailable::before {\r\n      content: '';\r\n      position: absolute;\r\n      bottom: 100%;\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n      border: 6px solid transparent;\r\n      border-top-color: rgba(0, 0, 0, 0.9);\r\n      opacity: 0;\r\n      visibility: hidden;\r\n      transition: all 0.2s ease;\r\n      margin-bottom: 2px;\r\n    }\r\n\r\n    .rentamac-pricing .storage-option.unavailable:hover::after,\r\n    .rentamac-pricing .storage-option.unavailable:hover::before {\r\n      opacity: 1;\r\n      visibility: visible;\r\n    }\r\n\r\n\r\n    .rentamac-pricing .storage-option .storage-size {\r\n      font-size: 18px;\r\n      font-weight: 700;\r\n      color: var(--text);\r\n      margin-bottom: 4px;\r\n    }\r\n\r\n    .rentamac-pricing .storage-option.active .storage-size {\r\n      color: var(--accent-green);\r\n    }\r\n\r\n    .rentamac-pricing .storage-option .storage-label {\r\n      font-size: 12px;\r\n      color: var(--text-secondary);\r\n      margin-bottom: 4px;\r\n    }\r\n\r\n    .rentamac-pricing .storage-option .storage-sublabel {\r\n      font-size: 10px;\r\n      color: var(--text-muted);\r\n      margin-bottom: 6px;\r\n      text-transform: uppercase;\r\n      letter-spacing: 0.3px;\r\n    }\r\n\r\n    .rentamac-pricing .storage-option .storage-price {\r\n      font-size: 13px;\r\n      font-weight: 600;\r\n      color: var(--text-muted);\r\n    }\r\n\r\n    .rentamac-pricing .storage-option.active .storage-price {\r\n      color: var(--accent-green);\r\n    }\r\n\r\n    .rentamac-pricing .storage-option .default-badge {\r\n      position: absolute;\r\n      top: -8px;\r\n      right: 12px;\r\n      background: var(--accent-blue);\r\n      color: #fff;\r\n      font-size: 9px;\r\n      font-weight: 700;\r\n      padding: 3px 8px;\r\n      border-radius: 4px;\r\n      text-transform: uppercase;\r\n      letter-spacing: 0.5px;\r\n    }\r\n\r\n    \/* Features List *\/\r\n    .rentamac-pricing .features-section {\r\n      margin-bottom: 4px;\r\n      padding-top: 10px;\r\n    }\r\n\r\n    .rentamac-pricing .features-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(2, 1fr);\r\n      gap: 6px;\r\n    }\r\n\r\n    @media (max-width: 500px) {\r\n      .rentamac-pricing .features-grid {\r\n        grid-template-columns: 1fr;\r\n      }\r\n    }\r\n\r\n    .rentamac-pricing .feature-item {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n      font-size: 14px;\r\n      color: var(--text-secondary);\r\n      cursor: help;\r\n    }\r\n\r\n    .rentamac-pricing .feature-item:hover .feature-info svg {\r\n      color: var(--accent-blue);\r\n    }\r\n\r\n    .rentamac-pricing .feature-item:hover .feature-info .tooltip {\r\n      opacity: 1;\r\n      visibility: visible;\r\n    }\r\n\r\n    .rentamac-pricing .feature-icon {\r\n      width: 20px;\r\n      height: 20px;\r\n      border-radius: 6px;\r\n      background: rgba(34, 197, 94, 0.15);\r\n      border: 1px solid rgba(34, 197, 94, 0.3);\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      color: var(--accent-green);\r\n      font-size: 11px;\r\n      flex-shrink: 0;\r\n    }\r\n\r\n    \/* Info icon tooltip styles *\/\r\n    .rentamac-pricing .feature-info {\r\n      position: relative;\r\n      display: inline-flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      width: 16px;\r\n      height: 16px;\r\n      margin-left: 6px;\r\n      cursor: help;\r\n      flex-shrink: 0;\r\n    }\r\n\r\n    .rentamac-pricing .feature-info svg {\r\n      width: 14px;\r\n      height: 14px;\r\n      color: var(--text-muted);\r\n      transition: color 0.2s ease;\r\n    }\r\n\r\n    .rentamac-pricing .feature-info:hover svg {\r\n      color: var(--accent-blue);\r\n    }\r\n\r\n    .rentamac-pricing .feature-info .tooltip {\r\n      position: absolute;\r\n      bottom: calc(100% + 8px);\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n      background: rgba(15, 15, 20, 0.98);\r\n      border: 1px solid var(--stroke-hover);\r\n      border-radius: 10px;\r\n      padding: 12px 14px;\r\n      width: 260px;\r\n      font-size: 13px;\r\n      line-height: 1.5;\r\n      color: var(--text-secondary);\r\n      text-align: left;\r\n      opacity: 0;\r\n      visibility: hidden;\r\n      transition: all 0.2s ease;\r\n      pointer-events: none;\r\n      z-index: 100;\r\n      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);\r\n    }\r\n\r\n    .rentamac-pricing .feature-info .tooltip::after {\r\n      content: '';\r\n      position: absolute;\r\n      top: 100%;\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n      border: 6px solid transparent;\r\n      border-top-color: rgba(15, 15, 20, 0.98);\r\n    }\r\n\r\n    .rentamac-pricing .feature-info:hover .tooltip {\r\n      opacity: 1;\r\n      visibility: visible;\r\n    }\r\n\r\n    @media (max-width: 600px) {\r\n      .rentamac-pricing .feature-info .tooltip {\r\n        width: 220px;\r\n        left: auto;\r\n        right: -10px;\r\n        transform: none;\r\n      }\r\n\r\n      .rentamac-pricing .feature-info .tooltip::after {\r\n        left: auto;\r\n        right: 16px;\r\n        transform: none;\r\n      }\r\n    }\r\n\r\n    \/* Price Display *\/\r\n    .rentamac-pricing .price-section {\r\n      text-align: center;\r\n      padding: 10px 0;\r\n      border-bottom: 1px solid var(--stroke);\r\n      margin-bottom: 10px;\r\n    }\r\n\r\n    .rentamac-pricing .total-label {\r\n      font-size: 13px;\r\n      color: var(--text-muted);\r\n      margin-bottom: 8px;\r\n    }\r\n\r\n    .rentamac-pricing .total-price {\r\n      font-size: 52px;\r\n      font-weight: 800;\r\n      letter-spacing: -2px;\r\n      margin-bottom: 8px;\r\n      color: var(--text);\r\n    }\r\n\r\n    .rentamac-pricing .price-breakdown {\r\n      font-size: 15px;\r\n      color: var(--text-secondary);\r\n    }\r\n\r\n    .rentamac-pricing .storage-addon-note {\r\n      font-size: 13px;\r\n      color: var(--text-muted);\r\n      margin-top: 8px;\r\n    }\r\n\r\n    \/* CTA Button *\/\r\n    .rentamac-pricing .cta-button {\r\n      width: 100%;\r\n      padding: 18px 24px;\r\n      font-size: 17px;\r\n      font-weight: 700;\r\n      border: none;\r\n      border-radius: 14px;\r\n      cursor: pointer;\r\n      background: var(--accent-blue);\r\n      color: white;\r\n      transition: all 0.2s ease;\r\n      box-shadow: var(--shadow-md), 0 0 30px var(--accent-blue-glow);\r\n    }\r\n\r\n    .rentamac-pricing .cta-button:hover {\r\n      transform: translateY(-2px);\r\n      box-shadow: var(--shadow-lg), 0 0 50px var(--accent-blue-glow);\r\n    }\r\n\r\n    .rentamac-pricing .cta-button:active {\r\n      transform: translateY(0);\r\n    }\r\n\r\n    \/* Help Text *\/\r\n    .rentamac-pricing .help-text {\r\n      text-align: center;\r\n      margin-top: 20px;\r\n      font-size: 14px;\r\n      color: var(--text-muted);\r\n    }\r\n\r\n    .rentamac-pricing .help-text a {\r\n      color: var(--accent-blue);\r\n      text-decoration: none;\r\n    }\r\n\r\n    .rentamac-pricing .help-text a:hover {\r\n      text-decoration: underline;\r\n    }\r\n\r\n    \/* Animations *\/\r\n    @keyframes rentamacFadeIn {\r\n      from { opacity: 0; transform: translateY(10px); }\r\n      to { opacity: 1; transform: translateY(0); }\r\n    }\r\n\r\n    .rentamac-pricing .pricing-card {\r\n      animation: rentamacFadeIn 0.4s ease-out;\r\n    }\r\n\r\n    \/* Responsive *\/\r\n    @media (max-width: 600px) {\r\n      .rentamac-pricing .container {\r\n        padding: 32px 16px;\r\n      }\r\n\r\n      .rentamac-pricing .pricing-card {\r\n        padding: 24px 20px;\r\n      }\r\n\r\n      .rentamac-pricing .device-info {\r\n        flex-direction: column;\r\n        text-align: center;\r\n      }\r\n\r\n      .rentamac-pricing .device-specs {\r\n        justify-content: center;\r\n      }\r\n\r\n      .rentamac-pricing .cycle-tabs {\r\n        flex-wrap: wrap;\r\n      }\r\n\r\n      .rentamac-pricing .cycle-tab {\r\n        min-width: calc(33.333% - 6px);\r\n        padding: 12px 8px;\r\n      }\r\n\r\n      .rentamac-pricing .cycle-tab.unavailable::after {\r\n        white-space: normal;\r\n        width: 220px;\r\n        text-align: center;\r\n      }\r\n\r\n      .rentamac-pricing .total-price {\r\n        font-size: 42px;\r\n      }\r\n    }\r\n\r\n    \/* Compact layout for short viewports (e.g. 1080x720) *\/\r\n    @media (max-height: 820px) {\r\n      .rentamac-pricing .container {\r\n        padding-top: 0;\r\n      }\r\n\r\n      .rentamac-pricing .header {\r\n        margin-bottom: 2px;\r\n      }\r\n\r\n      .rentamac-pricing .header h1 {\r\n        font-size: clamp(24px, 4vw, 36px);\r\n        margin-bottom: 2px;\r\n      }\r\n\r\n      .rentamac-pricing .pricing-card {\r\n        padding: 20px 28px;\r\n      }\r\n\r\n      .rentamac-pricing .device-info {\r\n        padding-bottom: 6px;\r\n        margin-bottom: 6px;\r\n      }\r\n\r\n      .rentamac-pricing .cycle-section {\r\n        margin-bottom: 2px;\r\n      }\r\n\r\n      .rentamac-pricing .cycle-tab {\r\n        padding: 10px 10px;\r\n      }\r\n\r\n      .rentamac-pricing .storage-section {\r\n        margin-bottom: 2px;\r\n      }\r\n\r\n      .rentamac-pricing .storage-option {\r\n        padding: 10px;\r\n      }\r\n\r\n      .rentamac-pricing .features-section {\r\n        margin-bottom: 2px;\r\n        padding-top: 6px;\r\n      }\r\n\r\n      .rentamac-pricing .features-grid {\r\n        gap: 2px;\r\n      }\r\n\r\n      .rentamac-pricing .price-section {\r\n        padding: 6px 0;\r\n        margin-bottom: 6px;\r\n      }\r\n\r\n      .rentamac-pricing .total-price {\r\n        font-size: 40px;\r\n        margin-bottom: 4px;\r\n      }\r\n\r\n      .rentamac-pricing .total-label {\r\n        margin-bottom: 4px;\r\n      }\r\n\r\n      .rentamac-pricing .cta-button {\r\n        padding: 14px 24px;\r\n      }\r\n    }\r\n\r\n    \/* No storage available message *\/\r\n    .rentamac-pricing .no-storage-message {\r\n      background: rgba(249, 115, 22, 0.1);\r\n      border: 1px solid rgba(249, 115, 22, 0.2);\r\n      border-radius: 10px;\r\n      padding: 12px 16px;\r\n      text-align: center;\r\n      color: var(--accent-orange);\r\n      font-size: 13px;\r\n      font-weight: 500;\r\n    }\r\n\r\n    .rentamac-pricing .storage-addon-disabled-note {\r\n      display: none !important;\r\n    }\r\n\r\n    \/* Availability Dialog *\/\r\n    .rentamac-pricing .availability-overlay {\r\n      position: fixed;\r\n      inset: 0;\r\n      background: rgba(0, 0, 0, 0.7);\r\n      backdrop-filter: blur(8px);\r\n      z-index: 1000;\r\n      animation: rentamacFadeIn 0.25s ease-out forwards;\r\n    }\r\n\r\n    .rentamac-pricing .availability-dialog {\r\n      position: fixed;\r\n      top: 50%;\r\n      left: 50%;\r\n      transform: translate(-50%, -50%);\r\n      background: var(--bg);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 20px;\r\n      padding: 32px;\r\n      max-width: 480px;\r\n      width: calc(100% - 48px);\r\n      z-index: 1010;\r\n      animation: rentamacDialogSlide 0.3s ease-out forwards;\r\n    }\r\n\r\n    @keyframes rentamacDialogSlide {\r\n      from { opacity: 0; transform: translate(-50%, calc(-50% - 20px)); }\r\n      to { opacity: 1; transform: translate(-50%, -50%); }\r\n    }\r\n\r\n    .rentamac-pricing .availability-dialog__header {\r\n      display: flex;\r\n      justify-content: space-between;\r\n      align-items: center;\r\n      margin-bottom: 16px;\r\n    }\r\n\r\n    .rentamac-pricing .availability-dialog__title {\r\n      font-size: 22px;\r\n      font-weight: 700;\r\n      color: var(--text);\r\n      margin: 0;\r\n    }\r\n\r\n    .rentamac-pricing .availability-dialog__close {\r\n      background: transparent;\r\n      border: none;\r\n      color: var(--text-secondary);\r\n      font-size: 24px;\r\n      cursor: pointer;\r\n      transition: color 0.2s ease;\r\n      line-height: 1;\r\n    }\r\n\r\n    .rentamac-pricing .availability-dialog__close:hover {\r\n      color: var(--text);\r\n    }\r\n\r\n    .rentamac-pricing .availability-dialog p {\r\n      color: var(--text-secondary);\r\n      line-height: 1.6;\r\n      margin: 0 0 20px;\r\n    }\r\n\r\n    .rentamac-pricing .availability-form {\r\n      display: flex;\r\n      gap: 12px;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .rentamac-pricing .availability-form input[type=\"email\"] {\r\n      flex: 1;\r\n      min-width: 200px;\r\n      padding: 14px 16px;\r\n      border-radius: 12px;\r\n      border: 1px solid var(--stroke);\r\n      background: rgba(0, 0, 0, 0.3);\r\n      color: var(--text);\r\n      font-size: 15px;\r\n      outline: none;\r\n      transition: border-color 0.2s ease;\r\n    }\r\n\r\n    .rentamac-pricing .availability-form input[type=\"email\"]:focus {\r\n      border-color: var(--accent-blue);\r\n    }\r\n\r\n    .rentamac-pricing .availability-form button {\r\n      padding: 14px 24px;\r\n      border-radius: 12px;\r\n      border: none;\r\n      background: var(--gradient-primary);\r\n      color: white;\r\n      font-weight: 600;\r\n      font-size: 15px;\r\n      cursor: pointer;\r\n      transition: transform 0.2s ease, opacity 0.2s ease;\r\n    }\r\n\r\n    .rentamac-pricing .availability-form button:hover {\r\n      transform: translateY(-1px);\r\n    }\r\n\r\n    .rentamac-pricing .availability-form button:disabled {\r\n      opacity: 0.6;\r\n      cursor: not-allowed;\r\n      transform: none;\r\n    }\r\n\r\n    .rentamac-pricing .availability-feedback {\r\n      width: 100%;\r\n      margin-top: 12px;\r\n      font-size: 14px;\r\n      min-height: 20px;\r\n    }\r\n\r\n    .rentamac-pricing .availability-feedback.success { color: var(--accent-green); }\r\n    .rentamac-pricing .availability-feedback.error { color: #ef4444; }\r\n    .rentamac-pricing .availability-feedback.info { color: var(--text-muted); }\r\n\r\n    .rentamac-pricing .availability-disclaimer {\r\n      font-size: 12px;\r\n      color: var(--text-muted);\r\n      margin-top: 16px;\r\n    }\r\n\r\n    .rentamac-pricing .is-hidden { display: none !important; }\r\n\r\n    .rentamac-pricing .sr-only {\r\n      position: absolute;\r\n      width: 1px;\r\n      height: 1px;\r\n      padding: 0;\r\n      margin: -1px;\r\n      overflow: hidden;\r\n      clip: rect(0, 0, 0, 0);\r\n      border: 0;\r\n    }\r\n\r\n    \/* Out of stock button state *\/\r\n    .rentamac-pricing .cta-button.out-of-stock {\r\n      background: rgba(255, 255, 255, 0.1);\r\n      box-shadow: none;\r\n    }\r\n\r\n    .rentamac-pricing .cta-button.out-of-stock:hover {\r\n      transform: none;\r\n      box-shadow: none;\r\n    }\r\n\r\n    \/* Purchase Info Dropdown *\/\r\n    .rentamac-pricing .purchase-info {\r\n      margin-top: 32px;\r\n      text-align: center;\r\n    }\r\n\r\n    .rentamac-pricing .purchase-dropdown {\r\n      max-width: 480px;\r\n      margin: 0 auto;\r\n    }\r\n\r\n    .rentamac-pricing .purchase-dropdown-trigger {\r\n      width: 100%;\r\n      background: rgba(255, 255, 255, 0.06);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 12px;\r\n      padding: 16px 20px;\r\n      color: var(--text);\r\n      font-size: 15px;\r\n      font-weight: 600;\r\n      cursor: pointer;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      transition: all 0.2s ease;\r\n      position: relative;\r\n    }\r\n\r\n    .rentamac-pricing .purchase-dropdown-trigger:hover {\r\n      background: rgba(255, 255, 255, 0.08);\r\n      border-color: var(--stroke-hover);\r\n    }\r\n\r\n    .rentamac-pricing .purchase-dropdown-icon {\r\n      position: absolute;\r\n      right: 20px;\r\n      opacity: 0.6;\r\n      transition: transform 0.2s ease;\r\n    }\r\n\r\n    .rentamac-pricing .purchase-dropdown-trigger[aria-expanded=\"true\"] .purchase-dropdown-icon {\r\n      transform: rotate(180deg);\r\n    }\r\n\r\n    .rentamac-pricing .purchase-dropdown-content {\r\n      overflow: hidden;\r\n      max-height: 0;\r\n      opacity: 0;\r\n      transition: all 0.3s ease;\r\n      background: rgba(255, 255, 255, 0.04);\r\n      border: 1px solid var(--stroke);\r\n      border-top: none;\r\n      border-radius: 0 0 12px 12px;\r\n      margin-top: -1px;\r\n    }\r\n\r\n    .rentamac-pricing .purchase-dropdown-content.expanded {\r\n      max-height: 200px;\r\n      opacity: 1;\r\n      padding: 16px 20px;\r\n    }\r\n\r\n    .rentamac-pricing .purchase-dropdown-content p {\r\n      font-size: 14px;\r\n      color: var(--text-secondary);\r\n      margin: 0;\r\n      line-height: 1.6;\r\n      text-align: center;\r\n    }\r\n\r\n    \/* Help Section *\/\r\n    .rentamac-pricing .help-section {\r\n      margin-top: 64px;\r\n      text-align: center;\r\n    }\r\n\r\n    .rentamac-pricing .help-header {\r\n      margin-bottom: 40px;\r\n    }\r\n\r\n    .rentamac-pricing .help-header h3 {\r\n      font-size: 28px;\r\n      font-weight: 700;\r\n      margin: 0 0 8px;\r\n      color: var(--text);\r\n    }\r\n\r\n    .rentamac-pricing .help-subtitle {\r\n      font-size: 16px;\r\n      color: var(--text-secondary);\r\n      margin: 0;\r\n    }\r\n\r\n    .rentamac-pricing .help-cards {\r\n      display: grid;\r\n      grid-template-columns: repeat(2, 1fr);\r\n      gap: 24px;\r\n      max-width: 720px;\r\n      margin: 0 auto 48px;\r\n    }\r\n\r\n    @media (max-width: 600px) {\r\n      .rentamac-pricing .help-cards {\r\n        grid-template-columns: 1fr;\r\n        gap: 20px;\r\n      }\r\n    }\r\n\r\n    .rentamac-pricing .help-card {\r\n      background: var(--bg);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 20px;\r\n      padding: 32px 24px;\r\n      text-align: center;\r\n      transition: all 0.3s ease;\r\n      position: relative;\r\n      overflow: hidden;\r\n    }\r\n\r\n    .rentamac-pricing .help-card::before {\r\n      content: '';\r\n      position: absolute;\r\n      top: 0;\r\n      left: 0;\r\n      right: 0;\r\n      height: 3px;\r\n      background: var(--gradient-primary);\r\n      opacity: 0;\r\n      transition: opacity 0.3s ease;\r\n    }\r\n\r\n    .rentamac-pricing .help-card:hover {\r\n      transform: translateY(-4px);\r\n      border-color: var(--stroke-hover);\r\n      box-shadow: var(--shadow-lg);\r\n    }\r\n\r\n    .rentamac-pricing .help-card:hover::before {\r\n      opacity: 1;\r\n    }\r\n\r\n    .rentamac-pricing .help-icon {\r\n      width: 56px;\r\n      height: 56px;\r\n      margin: 0 auto 20px;\r\n      background: rgba(255, 255, 255, 0.06);\r\n      border-radius: 16px;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      color: var(--text);\r\n      transition: all 0.3s ease;\r\n    }\r\n\r\n    .rentamac-pricing .help-card:hover .help-icon {\r\n      background: rgba(255, 255, 255, 0.1);\r\n      transform: scale(1.05);\r\n    }\r\n\r\n    .rentamac-pricing .help-card h4 {\r\n      font-size: 20px;\r\n      font-weight: 700;\r\n      margin: 0 0 12px;\r\n      color: var(--text);\r\n    }\r\n\r\n    .rentamac-pricing .help-card p {\r\n      color: var(--text-secondary);\r\n      margin: 0 0 24px;\r\n      font-size: 14px;\r\n      line-height: 1.5;\r\n    }\r\n\r\n    .rentamac-pricing .help-btn {\r\n      border: none;\r\n      border-radius: 12px;\r\n      padding: 12px 24px;\r\n      font-weight: 600;\r\n      cursor: pointer;\r\n      font-size: 14px;\r\n      transition: all 0.2s ease;\r\n      display: inline-flex;\r\n      align-items: center;\r\n      gap: 8px;\r\n    }\r\n\r\n    .rentamac-pricing .help-btn.secondary {\r\n      background: rgba(255, 255, 255, 0.08);\r\n      color: var(--text);\r\n      border: 1px solid var(--stroke);\r\n    }\r\n\r\n    .rentamac-pricing .help-btn.secondary:hover {\r\n      background: rgba(255, 255, 255, 0.12);\r\n      transform: translateY(-2px);\r\n    }\r\n\r\n    .rentamac-pricing .help-footer {\r\n      margin-top: 48px;\r\n      padding-top: 40px;\r\n      border-top: 1px solid var(--stroke);\r\n    }\r\n\r\n    .rentamac-pricing .help-footer-text {\r\n      font-size: 16px;\r\n      color: var(--text-secondary);\r\n      margin: 0 0 20px;\r\n    }\r\n\r\n    .rentamac-pricing .help-portal-btn {\r\n      background: rgba(255, 255, 255, 0.06);\r\n      color: var(--text);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 14px;\r\n      padding: 14px 24px;\r\n      font-weight: 600;\r\n      font-size: 15px;\r\n      cursor: pointer;\r\n      transition: all 0.2s ease;\r\n      display: inline-flex;\r\n      align-items: center;\r\n      gap: 10px;\r\n    }\r\n\r\n    .rentamac-pricing .help-portal-btn:hover {\r\n      background: rgba(255, 255, 255, 0.1);\r\n      border-color: var(--stroke-hover);\r\n      transform: translateY(-2px);\r\n    }\r\n\r\n    \/* Enterprise Section *\/\r\n    .rentamac-pricing .enterprise-section {\r\n      margin-top: 8px;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-card {\r\n      background: var(--bg);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 24px;\r\n      padding: 28px;\r\n      max-width: 520px;\r\n      margin: 0 auto;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-card .card-header {\r\n      text-align: center;\r\n      margin-bottom: 4px;\r\n      padding-bottom: 3px;\r\n      border-bottom: 1px solid var(--stroke);\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-card .card-title {\r\n      font-size: 24px;\r\n      font-weight: 700;\r\n      margin: 0 0 8px;\r\n      color: var(--text);\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-card .card-subtitle {\r\n      font-size: 14px;\r\n      color: var(--text-secondary);\r\n      margin: 0;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-benefits {\r\n      display: flex;\r\n      gap: 4px;\r\n      margin-bottom: 4px;\r\n    }\r\n\r\n    .rentamac-pricing .benefit-item {\r\n      flex: 1;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      gap: 10px;\r\n      padding: 12px;\r\n      background: rgba(255, 255, 255, 0.04);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 10px;\r\n    }\r\n\r\n    .rentamac-pricing .benefit-icon {\r\n      width: 32px;\r\n      height: 32px;\r\n      background: rgba(249, 115, 22, 0.15);\r\n      border-radius: 8px;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      color: var(--accent-orange);\r\n      flex-shrink: 0;\r\n    }\r\n\r\n    .rentamac-pricing .benefit-item h4 {\r\n      font-size: 13px;\r\n      font-weight: 600;\r\n      color: var(--text);\r\n      margin: 0;\r\n    }\r\n\r\n    \/* Sliders *\/\r\n    .rentamac-pricing .slider-group {\r\n      margin-bottom: 4px;\r\n    }\r\n\r\n    .rentamac-pricing .slider-label-row {\r\n      display: flex;\r\n      justify-content: space-between;\r\n      align-items: center;\r\n      margin-bottom: 3px;\r\n    }\r\n\r\n    .rentamac-pricing .slider-label {\r\n      font-size: 14px;\r\n      font-weight: 600;\r\n      color: var(--text);\r\n    }\r\n\r\n    .rentamac-pricing .slider-value {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 8px;\r\n    }\r\n\r\n    .rentamac-pricing .slider-value-number {\r\n      background: rgba(249, 115, 22, 0.12);\r\n      border: 1px solid rgba(249, 115, 22, 0.25);\r\n      border-radius: 8px;\r\n      padding: 4px 12px;\r\n      font-size: 16px;\r\n      font-weight: 700;\r\n      color: var(--accent-orange);\r\n      min-width: 40px;\r\n      text-align: center;\r\n    }\r\n\r\n    .rentamac-pricing .slider-discount-badge {\r\n      background: rgba(249, 115, 22, 0.15);\r\n      border: 1px solid rgba(249, 115, 22, 0.3);\r\n      border-radius: 12px;\r\n      padding: 4px 10px;\r\n      font-size: 11px;\r\n      font-weight: 700;\r\n      color: var(--accent-orange);\r\n      opacity: 0;\r\n      transform: scale(0.9);\r\n      transition: all 0.3s ease;\r\n    }\r\n\r\n    .rentamac-pricing .slider-discount-badge.active {\r\n      opacity: 1;\r\n      transform: scale(1);\r\n    }\r\n\r\n    .rentamac-pricing .slider-discount-badge.bounce {\r\n      animation: rentamacDiscountBounce 0.6s ease;\r\n    }\r\n\r\n    .rentamac-pricing .slider-value-number.bounce {\r\n      animation: rentamacNumberBounce 0.5s ease;\r\n    }\r\n\r\n    @keyframes rentamacDiscountBounce {\r\n      0%, 100% { transform: scale(1); }\r\n      25% { transform: scale(1.2); }\r\n      50% { transform: scale(0.95); }\r\n      75% { transform: scale(1.1); }\r\n    }\r\n\r\n    @keyframes rentamacNumberBounce {\r\n      0%, 100% { transform: scale(1); }\r\n      30% { transform: scale(1.15); }\r\n      60% { transform: scale(0.98); }\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-slider {\r\n      -webkit-appearance: none;\r\n      appearance: none;\r\n      width: 100%;\r\n      height: 6px;\r\n      border-radius: 10px;\r\n      background: rgba(255, 255, 255, 0.08);\r\n      outline: none;\r\n      cursor: pointer;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-slider::-webkit-slider-thumb {\r\n      -webkit-appearance: none;\r\n      appearance: none;\r\n      width: 20px;\r\n      height: 20px;\r\n      border-radius: 50%;\r\n      background: var(--accent-orange);\r\n      cursor: grab;\r\n      box-shadow: 0 2px 12px rgba(249, 115, 22, 0.4);\r\n      transition: all 0.2s ease;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-slider::-webkit-slider-thumb:hover {\r\n      transform: scale(1.2);\r\n      box-shadow: 0 4px 16px rgba(249, 115, 22, 0.6);\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-slider::-moz-range-thumb {\r\n      width: 20px;\r\n      height: 20px;\r\n      border-radius: 50%;\r\n      background: var(--accent-orange);\r\n      cursor: grab;\r\n      border: none;\r\n      box-shadow: 0 2px 12px rgba(249, 115, 22, 0.4);\r\n    }\r\n\r\n    .rentamac-pricing .slider-range-labels {\r\n      display: flex;\r\n      justify-content: space-between;\r\n      margin-top: 8px;\r\n      font-size: 12px;\r\n      color: var(--text-muted);\r\n    }\r\n\r\n    \/* Enterprise pricing display *\/\r\n    .rentamac-pricing .enterprise-pricing {\r\n      text-align: center;\r\n      padding: 20px 0;\r\n      border-top: 1px solid var(--stroke);\r\n      margin-top: 8px;\r\n    }\r\n\r\n    .rentamac-pricing .non-cumulative-notice {\r\n      background: rgba(34, 197, 94, 0.08);\r\n      border: 1px solid rgba(34, 197, 94, 0.2);\r\n      border-radius: 10px;\r\n      padding: 10px 16px;\r\n      margin-bottom: 16px;\r\n      font-size: 13px;\r\n      color: var(--accent-green);\r\n      font-weight: 600;\r\n      display: none;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-pricing .price-amount {\r\n      font-size: 42px;\r\n      font-weight: 800;\r\n      color: var(--text);\r\n      letter-spacing: -1px;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-pricing .price-label {\r\n      font-size: 16px;\r\n      color: var(--text-secondary);\r\n      margin-left: 4px;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-pricing .discount-text {\r\n      font-size: 14px;\r\n      color: var(--text-muted);\r\n      margin: 8px 0 4px;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-pricing .discount-text.active {\r\n      color: var(--accent-orange);\r\n      font-weight: 700;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-pricing .price-breakdown {\r\n      font-size: 13px;\r\n      color: var(--text-muted);\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-cta {\r\n      margin-top: 20px;\r\n      text-align: center;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-btn {\r\n      width: 100%;\r\n      padding: 16px 24px;\r\n      font-size: 16px;\r\n      font-weight: 700;\r\n      border: none;\r\n      border-radius: 12px;\r\n      cursor: pointer;\r\n      background: linear-gradient(135deg, var(--accent-orange), #ea580c);\r\n      color: white;\r\n      transition: all 0.2s ease;\r\n      box-shadow: 0 8px 24px rgba(249, 115, 22, 0.3);\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-btn:hover {\r\n      transform: translateY(-2px);\r\n      box-shadow: 0 12px 32px rgba(249, 115, 22, 0.4);\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-contact {\r\n      margin-top: 12px;\r\n      font-size: 14px;\r\n      color: var(--text-muted);\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-contact a {\r\n      color: var(--accent-orange);\r\n      text-decoration: none;\r\n    }\r\n\r\n    .rentamac-pricing .enterprise-contact a:hover {\r\n      text-decoration: underline;\r\n    }\r\n\r\n    @media (max-width: 500px) {\r\n      .rentamac-pricing .enterprise-benefits {\r\n        flex-direction: column;\r\n      }\r\n    }\r\n\r\n    \/* Google Reviews Section *\/\r\n    .rentamac-pricing .reviews-section {\r\n      margin-top: 48px;\r\n      padding: 20px 0;\r\n      \/* Break out of container to wider width *\/\r\n      width: 90vw;\r\n      max-width: 1000px;\r\n      position: relative;\r\n      left: 50%;\r\n      transform: translateX(-50%);\r\n    }\r\n\r\n    .rentamac-pricing .reviews-header {\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      gap: 12px;\r\n      margin-bottom: 20px;\r\n    }\r\n\r\n    .rentamac-pricing .google-icon-small {\r\n      width: 24px;\r\n      height: 24px;\r\n      flex-shrink: 0;\r\n    }\r\n\r\n    .rentamac-pricing .reviews-header .rating-stars {\r\n      display: flex;\r\n      gap: 2px;\r\n    }\r\n\r\n    .rentamac-pricing .reviews-header .rating-stars svg {\r\n      width: 18px;\r\n      height: 18px;\r\n    }\r\n\r\n    .rentamac-pricing .reviews-meta {\r\n      font-size: 15px;\r\n      color: var(--text-secondary);\r\n    }\r\n\r\n    .rentamac-pricing .reviews-meta .rating-number {\r\n      font-weight: 700;\r\n      color: var(--text);\r\n    }\r\n\r\n    .rentamac-pricing .reviews-meta a {\r\n      color: var(--text-secondary);\r\n      text-decoration: none;\r\n    }\r\n\r\n    .rentamac-pricing .reviews-meta a:hover {\r\n      color: var(--text);\r\n    }\r\n\r\n    \/* Reviews Carousel *\/\r\n    .rentamac-pricing .reviews-carousel-container {\r\n      position: relative;\r\n      overflow: hidden;\r\n      -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);\r\n      mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%);\r\n    }\r\n\r\n    .rentamac-pricing .reviews-carousel {\r\n      display: flex;\r\n      gap: 20px;\r\n      animation: rentamacScrollReviews 60s linear infinite;\r\n      width: max-content;\r\n    }\r\n\r\n    .rentamac-pricing .reviews-carousel:hover {\r\n      animation-play-state: paused;\r\n    }\r\n\r\n    @keyframes rentamacScrollReviews {\r\n      0% {\r\n        transform: translateX(0);\r\n      }\r\n      100% {\r\n        transform: translateX(-50%);\r\n      }\r\n    }\r\n\r\n    .rentamac-pricing .review-card {\r\n      flex: 0 0 300px;\r\n      background: var(--bg);\r\n      border: 1px solid var(--stroke);\r\n      border-radius: 16px;\r\n      padding: 24px;\r\n      min-height: 180px;\r\n      display: flex;\r\n      flex-direction: column;\r\n    }\r\n\r\n    .rentamac-pricing .review-header {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 12px;\r\n      margin-bottom: 12px;\r\n    }\r\n\r\n    .rentamac-pricing .reviewer-avatar {\r\n      width: 40px;\r\n      height: 40px;\r\n      border-radius: 50%;\r\n      background: linear-gradient(135deg, var(--accent-blue), var(--accent-purple));\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      font-size: 16px;\r\n      font-weight: 700;\r\n      color: white;\r\n      flex-shrink: 0;\r\n    }\r\n\r\n    .rentamac-pricing .reviewer-avatar img {\r\n      width: 100%;\r\n      height: 100%;\r\n      border-radius: 50%;\r\n      object-fit: cover;\r\n    }\r\n\r\n    .rentamac-pricing .reviewer-info {\r\n      flex: 1;\r\n      min-width: 0;\r\n    }\r\n\r\n    .rentamac-pricing .reviewer-name {\r\n      font-size: 14px;\r\n      font-weight: 600;\r\n      color: var(--text);\r\n      white-space: nowrap;\r\n      overflow: hidden;\r\n      text-overflow: ellipsis;\r\n    }\r\n\r\n    .rentamac-pricing .review-date {\r\n      font-size: 12px;\r\n      color: var(--text-muted);\r\n    }\r\n\r\n    .rentamac-pricing .review-stars {\r\n      display: flex;\r\n      gap: 2px;\r\n      margin-bottom: 12px;\r\n    }\r\n\r\n    .rentamac-pricing .review-stars svg {\r\n      width: 16px;\r\n      height: 16px;\r\n      color: #FBBC04;\r\n    }\r\n\r\n    .rentamac-pricing .review-text {\r\n      font-size: 14px;\r\n      line-height: 1.6;\r\n      color: var(--text-secondary);\r\n      flex: 1;\r\n      overflow: hidden;\r\n      display: -webkit-box;\r\n      -webkit-line-clamp: 5;\r\n      -webkit-box-orient: vertical;\r\n    }\r\n\r\n    .rentamac-pricing .review-google-icon {\r\n      margin-top: 12px;\r\n      opacity: 0.5;\r\n    }\r\n\r\n    .rentamac-pricing .review-google-icon svg {\r\n      height: 16px;\r\n      width: auto;\r\n    }\r\n\r\n    @media (max-width: 600px) {\r\n      .rentamac-pricing .review-card {\r\n        flex: 0 0 260px;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n<div class=\"rentamac-pricing\">\r\n<!-- Availability Dialog -->\r\n  <div id=\"availabilityOverlay\" class=\"availability-overlay is-hidden\" aria-hidden=\"true\"><\/div>\r\n  <div id=\"availabilityDialog\" class=\"availability-dialog is-hidden\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"availabilityDialogTitle\">\r\n    <div class=\"availability-dialog__header\">\r\n      <h2 id=\"availabilityDialogTitle\" class=\"availability-dialog__title\">All instances are currently allocated<\/h2>\r\n      <button type=\"button\" id=\"availabilityDialogClose\" class=\"availability-dialog__close\" aria-label=\"Close dialog\">&times;<\/button>\r\n    <\/div>\r\n    <p>\r\n      We're at full capacity right now, but we can let you know the moment a Mac becomes available again.\r\n      Leave your email below and you'll be first in line when we spin up new instances.\r\n    <\/p>\r\n    <form id=\"availabilityForm\" class=\"availability-form\" novalidate>\r\n      <label for=\"availabilityEmail\" class=\"sr-only\">Email address<\/label>\r\n      <input\r\n        id=\"availabilityEmail\"\r\n        name=\"email\"\r\n        type=\"email\"\r\n        inputmode=\"email\"\r\n        autocomplete=\"email\"\r\n        placeholder=\"your@email.com\"\r\n        aria-label=\"Email address\"\r\n        required\r\n      \/>\r\n      <button type=\"submit\">Notify me<\/button>\r\n    <\/form>\r\n    <div id=\"availabilityFeedback\" class=\"availability-feedback info\" role=\"status\"><\/div>\r\n    <p class=\"availability-disclaimer\">We only use this email to update you about availability. No spam.<\/p>\r\n  <\/div>\r\n\r\n  <div class=\"container\">\r\n    <header class=\"header\">\r\n      <h1>Choose Your Plan<\/h1>\r\n    <\/header>\r\n\r\n    <div class=\"pricing-card\">\r\n      <!-- Device Info -->\r\n      <div class=\"device-info\">\r\n        <img decoding=\"async\"\r\n          src=\"https:\/\/rentamac.io\/wp-content\/uploads\/2025\/09\/mm24-front-cut-1.png\"\r\n          alt=\"Mac Mini M4\"\r\n          class=\"device-image\"\r\n        \/>\r\n        <div class=\"device-details\">\r\n          <h2>Dedicated Mac Mini M4<\/h2>\r\n          <div class=\"device-specs\">\r\n            <span class=\"spec-badge\">\r\n              M4 10-core\r\n              <span class=\"feature-info\">\r\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                  <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                  <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                  <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n                <\/svg>\r\n                <span class=\"tooltip\">Apple M4 chip with 10-core CPU (4 performance cores + 6 efficiency cores) and 10-core GPU. Delivers exceptional single-threaded and multi-threaded performance for development, builds, and creative workloads.<\/span>\r\n              <\/span>\r\n            <\/span>\r\n            <span class=\"spec-badge\">\r\n              16 GB RAM\r\n              <span class=\"feature-info\">\r\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                  <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                  <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                  <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n                <\/svg>\r\n                <span class=\"tooltip\">16 GB of unified memory shared between CPU and GPU. Unlike traditional RAM, unified memory eliminates the need to copy data between processors, resulting in faster performance and better efficiency.<\/span>\r\n              <\/span>\r\n            <\/span>\r\n            <span class=\"spec-badge\">\r\n              256 GB SSD\r\n              <span class=\"feature-info\">\r\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                  <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                  <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                  <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n                <\/svg>\r\n                <span class=\"tooltip\">256 GB internal NVMe solid-state drive with read speeds up to 3.4 GB\/s. Fast enough for Xcode builds, Docker containers, and large project files. Additional external storage available as add-on.<\/span>\r\n              <\/span>\r\n            <\/span>\r\n            <span class=\"spec-badge\">\r\n              Tahoe 26.1+\r\n              <span class=\"feature-info\">\r\n                <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                  <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                  <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                  <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n                <\/svg>\r\n                <span class=\"tooltip\">macOS Tahoe (version 26.1 or later) \u2014 Apple's latest operating system. Includes the newest Xcode, Swift, and development tools. Always kept up to date with the latest security patches.<\/span>\r\n              <\/span>\r\n            <\/span>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Billing Cycle -->\r\n      <div class=\"cycle-section\">\r\n        <div class=\"section-title\">Billing Cycle<\/div>\r\n        <div class=\"cycle-tabs\" id=\"cycleTabs\">\r\n          <!-- Populated by JavaScript -->\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Storage -->\r\n      <div class=\"storage-section\">\r\n        <div class=\"section-title\">Storage<\/div>\r\n        <div id=\"storageContainer\">\r\n          <div class=\"storage-options\" id=\"storageOptions\">\r\n            <!-- Populated by JavaScript -->\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Features -->\r\n      <div class=\"features-section\">\r\n        <div class=\"section-title\">Included<\/div>\r\n        <div class=\"features-grid\">\r\n          <div class=\"feature-item\">\r\n            <span class=\"feature-icon\">&#10003;<\/span>\r\n            <span id=\"accessDuration\">1 month access<\/span>\r\n            <span class=\"feature-info\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n              <\/svg>\r\n              <span class=\"tooltip\">Continuous 24\/7 access \u2014 not working days or limited hours. Your access starts immediately after payment and auto-renews unless you cancel from the User Portal.<\/span>\r\n            <\/span>\r\n          <\/div>\r\n          <div class=\"feature-item\">\r\n            <span class=\"feature-icon\">&#10003;<\/span>\r\n            <span>Remote desktop connection<\/span>\r\n            <span class=\"feature-info\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n              <\/svg>\r\n              <span class=\"tooltip\">Connect via DeskIn remote desktop software. After purchase, you'll receive credentials by email. DeskIn offers the highest frame rate and lowest latency among remote desktop products.<\/span>\r\n            <\/span>\r\n          <\/div>\r\n          <div class=\"feature-item\">\r\n            <span class=\"feature-icon\">&#10003;<\/span>\r\n            <span>Admin user access<\/span>\r\n            <span class=\"feature-info\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n              <\/svg>\r\n              <span class=\"tooltip\">Full administrator privileges (Root access) with no restrictions. Install any software, configure development environments, and have complete control over the system.<\/span>\r\n            <\/span>\r\n          <\/div>\r\n          <div class=\"feature-item\">\r\n            <span class=\"feature-icon\">&#10003;<\/span>\r\n            <span>Dedicated Mac<\/span>\r\n            <span class=\"feature-info\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n              <\/svg>\r\n              <span class=\"tooltip\">The Mac Mini M4 is fully dedicated to you \u2014 no virtual machines or multi-user environment. You get the entire physical machine exclusively for your use.<\/span>\r\n            <\/span>\r\n          <\/div>\r\n          <div class=\"feature-item\">\r\n            <span class=\"feature-icon\">&#10003;<\/span>\r\n            <span>Immediate access<\/span>\r\n            <span class=\"feature-info\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n              <\/svg>\r\n              <span class=\"tooltip\">Instances are already running. You'll receive your credentials immediately after payment and can start using your Mac right away \u2014 no waiting time.<\/span>\r\n            <\/span>\r\n          <\/div>\r\n          <div class=\"feature-item\">\r\n            <span class=\"feature-icon\">&#10003;<\/span>\r\n            <span>1 Gbps internet<\/span>\r\n            <span class=\"feature-info\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n              <\/svg>\r\n              <span class=\"tooltip\">High-speed connection from our Cyprus datacenter: up to 1 Gbps download and ~200 Mbps upload. Perfect for large file transfers and CI\/CD workflows.<\/span>\r\n            <\/span>\r\n          <\/div>\r\n          <div class=\"feature-item\" id=\"sipFeature\" style=\"display: none;\">\r\n            <span class=\"feature-icon\">&#10003;<\/span>\r\n            <span>SIP customization<\/span>\r\n            <span class=\"feature-info\">\r\n              <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n                <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"><\/line>\r\n                <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"><\/line>\r\n              <\/svg>\r\n              <span class=\"tooltip\">Since SIP introduces additional hardware risk, we offer customization only on 6-month plans. After purchase, contact support to have it enabled as it requires manual intervention.<\/span>\r\n            <\/span>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <!-- Price Display -->\r\n      <div class=\"price-section\">\r\n        <div class=\"total-label\">Total<\/div>\r\n        <div class=\"total-price\" id=\"totalPrice\">$99<\/div>\r\n        <div class=\"price-breakdown\" id=\"priceBreakdown\">$99 billed monthly<\/div>\r\n        <div class=\"storage-addon-note\" id=\"storageNote\"><\/div>\r\n      <\/div>\r\n\r\n      <!-- CTA -->\r\n      <button class=\"cta-button\" id=\"ctaButton\">\r\n        Buy Plan\r\n      <\/button>\r\n    <\/div>\r\n\r\n    <!-- Purchase Information -->\r\n    <section class=\"purchase-info\">\r\n      <div class=\"purchase-dropdown\">\r\n        <button class=\"purchase-dropdown-trigger\" id=\"purchaseDropdownTrigger\" type=\"button\" aria-expanded=\"false\" aria-controls=\"purchaseDropdownContent\">\r\n          <span>What happens after purchase?<\/span>\r\n          <svg class=\"purchase-dropdown-icon\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n            <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\"\/>\r\n          <\/svg>\r\n        <\/button>\r\n        <div class=\"purchase-dropdown-content\" id=\"purchaseDropdownContent\" aria-hidden=\"true\">\r\n          <p>Once your payment is processed, you will be taken to our User Portal, where you can find your Mac credentials and manage your subscription. An email will also be sent to you with all the necessary information using the email from checkout.<\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- Google Reviews Section -->\r\n    <section class=\"reviews-section\">\r\n      <div class=\"reviews-header\">\r\n        <!-- Google \"G\" Icon -->\r\n        <svg class=\"google-icon-small\" viewBox=\"0 0 24 24\">\r\n          <path fill=\"#4285F4\" d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\/>\r\n          <path fill=\"#34A853\" d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\/>\r\n          <path fill=\"#FBBC05\" d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"\/>\r\n          <path fill=\"#EA4335\" d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\/>\r\n        <\/svg>\r\n        <div class=\"rating-stars\" id=\"avgStars\"><\/div>\r\n        <span class=\"reviews-meta\">\r\n          <span class=\"rating-number\" id=\"avgRating\">5.0<\/span>\r\n          <a href=\"https:\/\/maps.app.goo.gl\/v55edKD7K2gePhTh9\" target=\"_blank\" rel=\"noopener nofollow\">on Google<\/a>\r\n        <\/span>\r\n      <\/div>\r\n\r\n      <div class=\"reviews-carousel-container\">\r\n        <div class=\"reviews-carousel\" id=\"reviewsCarousel\">\r\n          <!-- Reviews will be populated by JS -->\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- Enterprise Section -->\r\n    <section class=\"enterprise-section\">\r\n      <div class=\"enterprise-card\">\r\n        <div class=\"card-header\">\r\n          <h2 class=\"card-title\">Enterprise<\/h2>\r\n          <p class=\"card-subtitle\">Mac Mini M4 - Volume pricing<\/p>\r\n        <\/div>\r\n\r\n        <div class=\"enterprise-benefits\">\r\n          <div class=\"benefit-item\">\r\n            <div class=\"benefit-icon\">\r\n              <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n                <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\/>\r\n              <\/svg>\r\n            <\/div>\r\n            <h4>Volume discounts<\/h4>\r\n          <\/div>\r\n          <div class=\"benefit-item\">\r\n            <div class=\"benefit-icon\">\r\n              <svg width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n                <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.031 9-11.622 0-1.042-.133-2.052-.382-3.016z\"\/>\r\n              <\/svg>\r\n            <\/div>\r\n            <h4>SLA guarantees<\/h4>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Quantity Slider -->\r\n        <div class=\"slider-group\">\r\n          <div class=\"slider-label-row\">\r\n            <span class=\"slider-label\">Number of Instances<\/span>\r\n            <div class=\"slider-value\">\r\n              <span class=\"slider-value-number\" id=\"quantityValue\">1<\/span>\r\n              <span class=\"slider-discount-badge\" id=\"quantityDiscountBadge\">10% OFF<\/span>\r\n            <\/div>\r\n          <\/div>\r\n          <input type=\"range\" id=\"quantitySlider\" min=\"1\" max=\"15\" value=\"1\" class=\"enterprise-slider\" \/>\r\n          <div class=\"slider-range-labels\">\r\n            <span>1<\/span>\r\n            <span>15+<\/span>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Duration Slider -->\r\n        <div class=\"slider-group\">\r\n          <div class=\"slider-label-row\">\r\n            <span class=\"slider-label\">Duration (Months)<\/span>\r\n            <div class=\"slider-value\">\r\n              <span class=\"slider-value-number\" id=\"durationValue\">1<\/span>\r\n              <span class=\"slider-discount-badge\" id=\"durationDiscountBadge\">10% OFF<\/span>\r\n            <\/div>\r\n          <\/div>\r\n          <input type=\"range\" id=\"durationSlider\" min=\"1\" max=\"12\" value=\"1\" class=\"enterprise-slider\" \/>\r\n          <div class=\"slider-range-labels\">\r\n            <span>1 month<\/span>\r\n            <span>12 months<\/span>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <!-- Pricing Display -->\r\n        <div class=\"enterprise-pricing\">\r\n          <div class=\"non-cumulative-notice\" id=\"nonCumulativeNotice\">\r\n            Discounts are not cumulative\r\n          <\/div>\r\n          <div>\r\n            <span class=\"price-amount\" id=\"enterprisePrice\">$99<\/span>\r\n            <span class=\"price-label\">total<\/span>\r\n          <\/div>\r\n          <p class=\"discount-text\" id=\"discountBadge\">Standard pricing<\/p>\r\n          <p class=\"price-breakdown\" id=\"priceBreakdownEnterprise\">$99.00\/month per instance<\/p>\r\n        <\/div>\r\n\r\n        <div class=\"enterprise-cta\">\r\n          <button class=\"enterprise-btn\" onclick=\"if(typeof $crisp !== 'undefined') $crisp.push(['do', 'chat:open']); else window.location.href='mailto:support@rentamac.io';\">\r\n            Get custom quote\r\n          <\/button>\r\n          <p class=\"enterprise-contact\">or email <a href=\"mailto:support@rentamac.io\">support@rentamac.io<\/a><\/p>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- Help Section -->\r\n    <section class=\"help-section\">\r\n      <div class=\"help-header\">\r\n        <h3>Need help deciding?<\/h3>\r\n        <p class=\"help-subtitle\">See it in action or get your questions answered<\/p>\r\n      <\/div>\r\n\r\n      <div class=\"help-cards\">\r\n        <div class=\"help-card\">\r\n          <div class=\"help-icon\">\r\n            <svg width=\"28\" height=\"28\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z\"\/>\r\n            <\/svg>\r\n          <\/div>\r\n          <h4>Watch live demo<\/h4>\r\n          <p>See our Mac Mini cloud service in action with a live demonstration. No signup required!<\/p>\r\n          <button class=\"help-btn secondary\" onclick=\"navigateWithLanguage('\/demo\/');\">\r\n            <span>View Demo<\/span>\r\n            <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 7l5 5m0 0l-5 5m5-5H6\"\/>\r\n            <\/svg>\r\n          <\/button>\r\n        <\/div>\r\n\r\n        <div class=\"help-card\">\r\n          <div class=\"help-icon\">\r\n            <svg width=\"28\" height=\"28\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8.228 9c.549-1.165 2.03-2 3.772-2 2.21 0 4 1.343 4 3 0 1.4-1.278 2.575-3.006 2.907-.542.104-.994.54-.994 1.093m0 3h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\/>\r\n            <\/svg>\r\n          <\/div>\r\n          <h4>Get answers<\/h4>\r\n          <p>Find detailed answers to common questions about setup, pricing, and features.<\/p>\r\n          <button class=\"help-btn secondary\" onclick=\"navigateWithLanguage('\/faq\/');\">\r\n            <span>Browse FAQ<\/span>\r\n            <svg width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 7l5 5m0 0l-5 5m5-5H6\"\/>\r\n            <\/svg>\r\n          <\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"help-footer\">\r\n        <p class=\"help-footer-text\">Prefer to create your account first?<\/p>\r\n        <button class=\"help-portal-btn\" onclick=\"window.open('https:\/\/portal.rentamac.io\/register', '_blank');\">\r\n          <svg width=\"20\" height=\"20\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n            <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z\"\/>\r\n          <\/svg>\r\n          <span>Create Account<\/span>\r\n        <\/button>\r\n      <\/div>\r\n    <\/section>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n    (function() {\r\n    \/\/ ============================================\r\n    \/\/ PRICING CONFIGURATION - Edit these values\r\n    \/\/ ============================================\r\n\r\n    const PRICING_CONFIG = {\r\n      cycles: {\r\n        daily: {\r\n          name: 'Daily',\r\n          basePrice: 15,\r\n          billingLabel: 'billed daily',\r\n          pricePerDay: 15,\r\n          support: 'Standard support',\r\n          accessDuration: '24 hours access',\r\n          hasStorage: false, \/\/ No storage add-ons for daily\r\n          savings: null\r\n        },\r\n        weekly: {\r\n          name: 'Weekly',\r\n          basePrice: 49,\r\n          billingLabel: 'billed weekly',\r\n          pricePerDay: 7,\r\n          support: 'Priority support',\r\n          accessDuration: '7 days access',\r\n          hasStorage: true,\r\n          savings: null\r\n        },\r\n        monthly: {\r\n          name: 'Monthly',\r\n          basePrice: 99,\r\n          billingLabel: 'billed monthly',\r\n          pricePerDay: 3.3,\r\n          support: 'Priority support',\r\n          accessDuration: '1 month access',\r\n          hasStorage: true,\r\n          savings: null,\r\n          popular: true\r\n        },\r\n        '3month': {\r\n          name: '3 Months',\r\n          basePrice: 282,\r\n          billingLabel: 'billed every 3 months',\r\n          pricePerDay: 3.13,\r\n          support: 'Priority support',\r\n          accessDuration: '3 months access',\r\n          hasStorage: true,\r\n          savings: 'Save 5%'\r\n        },\r\n        '6month': {\r\n          name: '6 Months',\r\n          basePrice: 535,\r\n          billingLabel: 'billed every 6 months',\r\n          pricePerDay: 2.97,\r\n          support: 'Premium support',\r\n          accessDuration: '6 months access',\r\n          hasStorage: true,\r\n          savings: 'Save 10%'\r\n        }\r\n      },\r\n\r\n      storage: {\r\n        base: {\r\n          size: 256,\r\n          label: 'Internal SSD',\r\n          price: 0,\r\n          isDefault: true\r\n        },\r\n        addon256: {\r\n          size: 512, \/\/ 256 base + 256 addon\r\n          label: '256 GB + 256 GB external',\r\n          monthlyPrice: 9.90, \/\/ Base monthly price\r\n          \/\/ Multipliers for longer terms\r\n          '3monthMultiplier': 3,\r\n          '6monthMultiplier': 6\r\n        },\r\n        addon512: {\r\n          size: 768, \/\/ 256 base + 512 addon\r\n          label: '256 GB + 512 GB external',\r\n          monthlyPrice: 14.90, \/\/ Base monthly price\r\n          '3monthMultiplier': 3,\r\n          '6monthMultiplier': 6\r\n        }\r\n      },\r\n\r\n      \/\/ Checkout URLs - Stripe links (base storage)\r\n      checkoutUrls: {\r\n        daily: 'https:\/\/buy.stripe.com\/6oU3cwdor7WM6BX8Bzgw00b',\r\n        weekly: 'https:\/\/buy.stripe.com\/6oUfZi2JN5OE8K57xvgw00c',\r\n        monthly: 'https:\/\/buy.stripe.com\/dRm5kE3NR90Q1hD4ljgw00d',\r\n        '3month': 'https:\/\/buy.stripe.com\/3cI3cw98bb8Y5xTaJHgw00v',\r\n        '6month': 'https:\/\/buy.stripe.com\/cNi00kbgj2Cs6BXcRPgw00e'\r\n      },\r\n\r\n      \/\/ Checkout URLs for storage add-ons\r\n      storageCheckoutUrls: {\r\n        weekly: {\r\n          addon256: 'https:\/\/buy.stripe.com\/00w7sMacfcd2e4pg41gw00j',\r\n          addon512: 'https:\/\/buy.stripe.com\/4gM9AU847b8YaSdg41gw00n'\r\n        },\r\n        monthly: {\r\n          addon256: 'https:\/\/buy.stripe.com\/6oU3cwgADa4U6BXdVTgw00k',\r\n          addon512: 'https:\/\/buy.stripe.com\/dRm4gA2JN4KA4tP2dbgw00o'\r\n        },\r\n        '3month': {\r\n          addon256: 'https:\/\/buy.stripe.com\/aFa4gAbgj90Qe4p7xvgw00w',\r\n          addon512: 'https:\/\/buy.stripe.com\/7sY28s5VZcd2gcx7xvgw00x'\r\n        },\r\n        '6month': {\r\n          addon256: 'https:\/\/buy.stripe.com\/6oU00kbgj4KA7G1053gw00l',\r\n          addon512: 'https:\/\/buy.stripe.com\/3cIcN6fwz90QbWhcRPgw00p'\r\n        }\r\n      }\r\n    };\r\n\r\n    \/\/ ============================================\r\n    \/\/ API ENDPOINTS\r\n    \/\/ ============================================\r\n\r\n    const ENDPOINT_STATUS = \"https:\/\/api.rentamac.io\/api\/website\/availability\/status\"\r\n    const ENDPOINT_SUBSCRIBE = \"https:\/\/api.rentamac.io\/api\/website\/availability\/subscribe\"\r\n    const ENDPOINT_AD_TRACKING = \"https:\/\/api.rentamac.io\/api\/website\/adt\"\r\n\r\n    \/\/ ============================================\r\n    \/\/ STATE\r\n    \/\/ ============================================\r\n\r\n    let selectedCycle = 'monthly';\r\n    let selectedStorage = 'base';\r\n    \/\/ Default all availability counts high so everything appears available while the API loads.\r\n    \/\/ The API response is the only thing that can mark an option as unavailable.\r\n    let currentAvailableDevices = 999;\r\n    let availableDevicesWith256GbDrive = 999;\r\n    let availableDevicesWith512GbDrive = 999;\r\n    let dailyPlanAvailabilityThreshold = 3; \/\/ Threshold from API, defaults to 3\r\n    let formSubmittedSuccessfully = false;\r\n    let currentPricingOption = null; \/\/ Tracks which availability newsletter to subscribe to (enum value)\r\n\r\n    \/\/ AvailabilityNotificationType enum values (must match backend)\r\n    const AvailabilityNotificationType = {\r\n      Daily: 0,        \/\/ Daily plan - triggers when availableDevices > dailyPlanAvailabilityThreshold\r\n      BaseStorage: 1,  \/\/ Base 256GB storage - triggers when any device available\r\n      External256Gb: 2, \/\/ 256GB external drive - triggers when 256GB external available\r\n      External512Gb: 3  \/\/ 512GB external drive - triggers when 512GB external available\r\n    };\r\n\r\n    \/\/ ============================================\r\n    \/\/ DOM ELEMENTS (lazy-loaded)\r\n    \/\/ ============================================\r\n\r\n    let availabilityDialog, availabilityOverlay, availabilityDialogClose, \r\n        availabilityForm, availabilityFeedback, availabilityEmail;\r\n\r\n    \/\/ ============================================\r\n    \/\/ TRACKING FUNCTIONS\r\n    \/\/ ============================================\r\n\r\n    function generateGuid() {\r\n      return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\/[xy]\/g, function(c) {\r\n        const r = Math.random() * 16 | 0;\r\n        const v = c === 'x' ? r : (r & 0x3 | 0x8);\r\n        return v.toString(16);\r\n      });\r\n    }\r\n\r\n    function getAdtPayload() {\r\n      try {\r\n        const payloadStr = localStorage.getItem('adtPayload');\r\n        if (payloadStr) {\r\n          return JSON.parse(payloadStr);\r\n        }\r\n        return null;\r\n      } catch (e) {\r\n        console.error('Failed to get adtPayload', e);\r\n        return null;\r\n      }\r\n    }\r\n\r\n    async function ensureAdtPayload() {\r\n      let payload = getAdtPayload();\r\n\r\n      if (!payload) {\r\n        const urlParams = new URLSearchParams(window.location.search);\r\n        const gclid = urlParams.get('gclid') || null;\r\n\r\n        payload = {\r\n          ClientReferenceId: generateGuid(),\r\n          Gclid: gclid,\r\n          LandingPageUrl: window.location.href\r\n        };\r\n\r\n        localStorage.setItem('adtPayload', JSON.stringify(payload));\r\n        console.log('Created adtPayload in localStorage:', payload);\r\n\r\n        try {\r\n          fetch(ENDPOINT_AD_TRACKING, {\r\n            method: 'POST',\r\n            headers: { 'Content-Type': 'application\/json' },\r\n            body: JSON.stringify(payload)\r\n          }).catch(err => {\r\n            console.error('ADT API call failed:', err);\r\n          });\r\n        } catch (e) {\r\n          console.error('Failed to send ADT request:', e);\r\n        }\r\n      }\r\n\r\n      return payload;\r\n    }\r\n\r\n    function getMetaTrackingParams() {\r\n      try {\r\n        const cookies = document.cookie.split(';');\r\n        let fbp = null;\r\n        let fbc = null;\r\n\r\n        for (let cookie of cookies) {\r\n          const [name, value] = cookie.trim().split('=');\r\n          if (name === '_fbp') fbp = value;\r\n          if (name === '_fbc') fbc = value;\r\n        }\r\n\r\n        return { fbp, fbc };\r\n      } catch (e) {\r\n        console.error('Failed to get Meta tracking params:', e);\r\n        return { fbp: null, fbc: null };\r\n      }\r\n    }\r\n\r\n    async function trackAdConversion(clientReferenceId, planType) {\r\n      try {\r\n        const adtPayload = getAdtPayload();\r\n        const metaParams = getMetaTrackingParams();\r\n        const urlParams = new URLSearchParams(window.location.search);\r\n        const metaClickId = urlParams.get('fbclid') || null;\r\n\r\n        const payload = {\r\n          clientReferenceId: clientReferenceId,\r\n          Gclid: adtPayload?.Gclid || null,\r\n          LandingPageUrl: adtPayload?.LandingPageUrl || null,\r\n          OriginalClientReferenceId: adtPayload?.ClientReferenceId || null,\r\n          metaClickId: metaClickId,\r\n          metaFbp: metaParams.fbp,\r\n          metaFbc: metaParams.fbc,\r\n          planType: planType\r\n        };\r\n\r\n        fetch(ENDPOINT_AD_TRACKING, {\r\n          method: 'POST',\r\n          headers: { 'Content-Type': 'application\/json' },\r\n          body: JSON.stringify(payload)\r\n        }).catch(err => {\r\n          console.error('Ad tracking failed:', err);\r\n        });\r\n      } catch (e) {\r\n        console.error('Ad tracking error:', e);\r\n      }\r\n    }\r\n\r\n    \/\/ ============================================\r\n    \/\/ AVAILABILITY FUNCTIONS\r\n    \/\/ ============================================\r\n\r\n    async function fetchAvailabilityStatus() {\r\n      try {\r\n        const response = await fetch(ENDPOINT_STATUS, { method: \"GET\" });\r\n        if (!response.ok) {\r\n          throw new Error(`Status API responded with ${response.status}`);\r\n        }\r\n\r\n        const payload = await response.json();\r\n        const available = Number(payload?.availableDevices ?? 0);\r\n\r\n        if (Number.isNaN(available)) {\r\n          throw new Error(\"Status API returned an invalid payload\");\r\n        }\r\n\r\n        currentAvailableDevices = available;\r\n\r\n        \/\/ Update storage drive availability based on devices with drives attached\r\n        availableDevicesWith256GbDrive = Number(payload?.availableDevicesWith256GbDrive ?? 0);\r\n        availableDevicesWith512GbDrive = Number(payload?.availableDevicesWith512GbDrive ?? 0);\r\n        dailyPlanAvailabilityThreshold = Number(payload?.dailyPlanAvailabilityThreshold ?? 3);\r\n\r\n        \/\/ Re-render storage options first (this auto-selects available storage)\r\n        renderStorageOptions();\r\n        \/\/ Then update CTA button based on the new selection\r\n        updateCtaButtonState();\r\n      } catch (error) {\r\n        console.error(\"Failed to fetch availability status\", error);\r\n        \/\/ On error, keep everything available - the API never explicitly said anything was unavailable.\r\n        currentAvailableDevices = 999;\r\n        availableDevicesWith256GbDrive = 999;\r\n        availableDevicesWith512GbDrive = 999;\r\n        renderStorageOptions();\r\n        updateCtaButtonState();\r\n      }\r\n    }\r\n\r\n    function updateCtaButtonState() {\r\n      const ctaButton = document.getElementById('ctaButton');\r\n\r\n      \/\/ Check availability based on selected storage option\r\n      let isSelectedStorageOutOfStock = false;\r\n      if (selectedStorage === 'base') {\r\n        isSelectedStorageOutOfStock = currentAvailableDevices === 0;\r\n      } else if (selectedStorage === 'addon256') {\r\n        isSelectedStorageOutOfStock = availableDevicesWith256GbDrive === 0;\r\n      } else if (selectedStorage === 'addon512') {\r\n        isSelectedStorageOutOfStock = availableDevicesWith512GbDrive === 0;\r\n      }\r\n\r\n      \/\/ Check if daily plan is selected but not enough devices available\r\n      const isDailyPlanUnavailable = selectedCycle === 'daily' && getTotalAvailableDevices() <= dailyPlanAvailabilityThreshold;\r\n\r\n      if (isSelectedStorageOutOfStock || isDailyPlanUnavailable) {\r\n        ctaButton.textContent = 'Join Waitlist';\r\n        ctaButton.classList.add('out-of-stock');\r\n      } else {\r\n        ctaButton.textContent = 'Buy Plan';\r\n        ctaButton.classList.remove('out-of-stock');\r\n      }\r\n    }\r\n\r\n    function openAvailabilityDialog(pricingOption) {\r\n      currentPricingOption = pricingOption !== undefined ? pricingOption : null;\r\n\r\n      \/\/ Update dialog content based on the reason\r\n      const titleEl = document.getElementById('availabilityDialogTitle');\r\n      const descEl = availabilityDialog.querySelector('p');\r\n      if (pricingOption === AvailabilityNotificationType.Daily) {\r\n        titleEl.textContent = 'Daily plan temporarily unavailable';\r\n        descEl.textContent = 'The daily plan is currently unavailable due to high demand. Weekly, monthly, and longer plans are still available. Leave your email below and we\\u2019ll notify you as soon as the daily plan is back.';\r\n      } else {\r\n        titleEl.textContent = 'All instances are currently allocated';\r\n        descEl.textContent = 'We\\u2019re at full capacity right now, but we can let you know the moment a Mac becomes available again. Leave your email below and you\\u2019ll be first in line when we spin up new instances.';\r\n      }\r\n\r\n      availabilityDialog.classList.remove(\"is-hidden\");\r\n      availabilityOverlay.classList.remove(\"is-hidden\");\r\n      availabilityOverlay.setAttribute(\"aria-hidden\", \"false\");\r\n      availabilityEmail.focus({ preventScroll: true });\r\n    }\r\n\r\n    function closeAvailabilityDialog() {\r\n      availabilityDialog.classList.add(\"is-hidden\");\r\n      availabilityOverlay.classList.add(\"is-hidden\");\r\n      availabilityOverlay.setAttribute(\"aria-hidden\", \"true\");\r\n\r\n      if (formSubmittedSuccessfully) {\r\n        formSubmittedSuccessfully = false;\r\n        const submitButton = availabilityForm.querySelector(\"button\");\r\n        submitButton.textContent = \"Notify me\";\r\n        submitButton.style.background = \"\";\r\n        submitButton.style.color = \"\";\r\n        availabilityFeedback.textContent = \"\";\r\n        availabilityFeedback.className = \"availability-feedback info\";\r\n      }\r\n      currentPricingOption = null;\r\n    }\r\n\r\n    async function submitAvailabilityForm(event) {\r\n      event.preventDefault();\r\n\r\n      if (formSubmittedSuccessfully) {\r\n        closeAvailabilityDialog();\r\n        return;\r\n      }\r\n\r\n      const email = availabilityEmail.value.trim();\r\n      if (!email) {\r\n        availabilityFeedback.textContent = \"Please enter a valid email address.\";\r\n        availabilityFeedback.className = \"availability-feedback error\";\r\n        availabilityEmail.focus();\r\n        return;\r\n      }\r\n\r\n      const submitButton = availabilityForm.querySelector(\"button\");\r\n\r\n      try {\r\n        submitButton.disabled = true;\r\n        availabilityFeedback.textContent = \"Saving your request...\";\r\n        availabilityFeedback.className = \"availability-feedback info\";\r\n\r\n        const response = await fetch(ENDPOINT_SUBSCRIBE, {\r\n          method: \"POST\",\r\n          headers: { \"Content-Type\": \"application\/json\" },\r\n          body: JSON.stringify({ email, pricingOption: currentPricingOption })\r\n        });\r\n\r\n        if (!response.ok) {\r\n          if (response.status === 429) {\r\n            throw new Error(\"You're going too fast. Please try again later.\");\r\n          }\r\n          const errorBody = await response.json().catch(() => ({}));\r\n          throw new Error(errorBody?.error ?? \"Sorry, something went wrong. Please try again later.\");\r\n        }\r\n\r\n        availabilityEmail.value = \"\";\r\n        formSubmittedSuccessfully = true;\r\n        availabilityFeedback.textContent = \"You're on the list! We'll email you the moment a Mac spins up.\";\r\n        availabilityFeedback.className = \"availability-feedback success\";\r\n\r\n        submitButton.textContent = \"Close\";\r\n        submitButton.disabled = false;\r\n        submitButton.style.background = \"rgba(255,255,255,.1)\";\r\n        submitButton.style.color = \"var(--text)\";\r\n      } catch (error) {\r\n        availabilityFeedback.textContent = error instanceof Error ? error.message : \"Sorry, something went wrong.\";\r\n        availabilityFeedback.className = \"availability-feedback error\";\r\n        submitButton.disabled = false;\r\n      }\r\n    }\r\n\r\n    \/\/ ============================================\r\n    \/\/ GOOGLE REVIEWS CONFIGURATION\r\n    \/\/ ============================================\r\n\r\n    const REVIEWS_CONFIG = {\r\n      \/\/ Google Maps URL for \"Read all reviews\" link\r\n      googleMapsUrl: 'https:\/\/maps.app.goo.gl\/v55edKD7K2gePhTh9',\r\n\r\n      \/\/ Reviews data - Update these manually when new reviews come in\r\n      fallbackData: {\r\n        rating: 5.0,\r\n        totalReviews: 28,\r\n        reviews: [\r\n          {\r\n            author_name: \"Ahmed Monsef\",\r\n            rating: 5,\r\n            text: \"Excellent service in every aspect. Response time is outstanding, and the technical support team is very cooperative and follows up until the issue is completely resolved. Any inquiry or problem is handled with professionalism and great care. A smooth experience and truly exceptional service \u2014 highly recommended without hesitation.\",\r\n            relative_time_description: \"6 days ago\",\r\n            profile_photo_url: null\r\n          },\r\n          {\r\n            author_name: \"Elena Saladini\",\r\n            rating: 5,\r\n            text: \"Great and very helpful service! Thank you.\",\r\n            relative_time_description: \"a week ago\",\r\n            profile_photo_url: null\r\n          },\r\n          {\r\n            author_name: \"Emama Shakery\",\r\n            rating: 5,\r\n            text: \"Super easy to rent a Mac! Fast delivery and great condition. Highly recommend\",\r\n            relative_time_description: \"2 weeks ago\",\r\n            profile_photo_url: null\r\n          },\r\n          {\r\n            author_name: \"Malak Alwazeer\",\r\n            rating: 5,\r\n            text: \"Great pricing, easy setup, and outstanding customer communication. Support was fast and very helpful. Highly recommended!\",\r\n            relative_time_description: \"2 weeks ago\",\r\n            profile_photo_url: null\r\n          },\r\n          {\r\n            author_name: \"Suman\",\r\n            rating: 5,\r\n            text: \"The performance are awesome of the mac. And i never face any issue on online mac running on cloud. The best part is it's affordable for me to code on mac from my Windows pc.\",\r\n            relative_time_description: \"4 weeks ago\",\r\n            profile_photo_url: null\r\n          },\r\n          {\r\n            author_name: \"Hassan AL-Oraibi\",\r\n            rating: 5,\r\n            text: \"Great service with excellent support. The Mac Mini M4 runs smoothly and the setup was quick. Highly recommended for developers!\",\r\n            relative_time_description: \"a month ago\",\r\n            profile_photo_url: null\r\n          }\r\n        ]\r\n      }\r\n    };\r\n\r\n    \/\/ ============================================\r\n    \/\/ REVIEWS CAROUSEL\r\n    \/\/ ============================================\r\n\r\n    let reviewsData = null;\r\n    let currentReviewSlide = 0;\r\n\r\n    function generateStarsHtml(rating, size = 16) {\r\n      let html = '';\r\n      for (let i = 1; i <= 5; i++) {\r\n        if (i <= rating) {\r\n          html += `<svg width=\"${size}\" height=\"${size}\" viewBox=\"0 0 24 24\" fill=\"#FBBC04\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>`;\r\n        } else {\r\n          html += `<svg width=\"${size}\" height=\"${size}\" viewBox=\"0 0 24 24\" fill=\"rgba(255,255,255,0.2)\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>`;\r\n        }\r\n      }\r\n      return html;\r\n    }\r\n\r\n    function getRelativeTime(timestamp) {\r\n      const now = Date.now() \/ 1000;\r\n      const diff = now - timestamp;\r\n\r\n      if (diff < 86400) return 'Today';\r\n      if (diff < 86400 * 2) return 'Yesterday';\r\n      if (diff < 86400 * 7) return `${Math.floor(diff \/ 86400)} days ago`;\r\n      if (diff < 86400 * 30) return `${Math.floor(diff \/ (86400 * 7))} weeks ago`;\r\n      if (diff < 86400 * 365) return `${Math.floor(diff \/ (86400 * 30))} months ago`;\r\n      return `${Math.floor(diff \/ (86400 * 365))} years ago`;\r\n    }\r\n\r\n    function getInitials(name) {\r\n      return name.split(' ').map(n => n[0]).join('').toUpperCase().substring(0, 2);\r\n    }\r\n\r\n    function renderReviewCard(review) {\r\n      const initials = getInitials(review.author_name);\r\n      const relativeTime = review.relative_time_description || getRelativeTime(review.time);\r\n\r\n      return `\r\n        <div class=\"review-card\">\r\n          <div class=\"review-header\">\r\n            <div class=\"reviewer-avatar\">\r\n              ${review.profile_photo_url\r\n                ? `<img decoding=\"async\" src=\"${review.profile_photo_url}\" alt=\"${review.author_name}\" \/>`\r\n                : initials\r\n              }\r\n            <\/div>\r\n            <div class=\"reviewer-info\">\r\n              <div class=\"reviewer-name\">${review.author_name}<\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"review-stars\">\r\n            ${generateStarsHtml(review.rating)}\r\n          <\/div>\r\n          <div class=\"review-text\">${review.text}<\/div>\r\n          <div class=\"review-google-icon\">\r\n            <svg viewBox=\"0 0 24 24\" height=\"18\">\r\n              <path fill=\"#4285F4\" d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\/>\r\n              <path fill=\"#34A853\" d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\/>\r\n              <path fill=\"#FBBC05\" d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"\/>\r\n              <path fill=\"#EA4335\" d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\/>\r\n            <\/svg>\r\n          <\/div>\r\n        <\/div>\r\n      `;\r\n    }\r\n\r\n    function renderReviews(data) {\r\n      reviewsData = data;\r\n\r\n      \/\/ Update summary (smaller stars for header)\r\n      const avgRatingEl = document.getElementById('avgRating');\r\n      const avgStarsEl = document.getElementById('avgStars');\r\n      const carousel = document.getElementById('reviewsCarousel');\r\n\r\n      if (!avgRatingEl || !avgStarsEl || !carousel) {\r\n        console.error('RentaMac Pricing: Reviews elements not found');\r\n        return;\r\n      }\r\n\r\n      avgRatingEl.textContent = data.rating.toFixed(1);\r\n      avgStarsEl.innerHTML = generateStarsHtml(Math.round(data.rating), 18);\r\n\r\n      \/\/ Render review cards (duplicate for infinite scroll)\r\n      const reviewsHtml = data.reviews.map(renderReviewCard).join('');\r\n      \/\/ Duplicate reviews for seamless infinite scroll\r\n      carousel.innerHTML = reviewsHtml + reviewsHtml;\r\n    }\r\n\r\n    function loadGoogleReviews() {\r\n      \/\/ Load reviews from config\r\n      renderReviews(REVIEWS_CONFIG.fallbackData);\r\n    }\r\n\r\n    \/\/ ============================================\r\n    \/\/ ENTERPRISE PRICING CALCULATOR\r\n    \/\/ ============================================\r\n\r\n    let quantitySlider, durationSlider, quantityValue, durationValue,\r\n        quantityDiscountBadge, durationDiscountBadge, enterprisePrice,\r\n        discountBadgeEl, priceBreakdownEnterprise, nonCumulativeNotice;\r\n\r\n    const BASE_PRICE_PER_MONTH = 99;\r\n    let previousQuantityDiscount = 0;\r\n    let previousTimeDiscount = 0;\r\n\r\n    function calculateEnterprisePrice() {\r\n      if (!quantitySlider || !durationSlider) return;\r\n\r\n      const quantity = parseInt(quantitySlider.value);\r\n      const duration = parseInt(durationSlider.value);\r\n\r\n      \/\/ Determine price per month based on duration\r\n      let pricePerMonth = BASE_PRICE_PER_MONTH;\r\n      let timeDiscount = 0;\r\n\r\n      if (duration >= 3 && duration < 6) {\r\n        \/\/ 3-5 months: Match 3-month plan pricing ($282 \/ 3 = $94.00\/month)\r\n        pricePerMonth = 282 \/ 3;\r\n        timeDiscount = 0.05;\r\n      } else if (duration >= 6) {\r\n        \/\/ 6+ months: Match 6-month plan pricing ($535 \/ 6 = $89.17\/month)\r\n        pricePerMonth = 535 \/ 6;\r\n        timeDiscount = 0.10;\r\n      }\r\n\r\n      \/\/ Calculate quantity-based discount\r\n      let quantityDiscount = 0;\r\n      if (quantity >= 5 && quantity <= 14) {\r\n        quantityDiscount = 0.05; \/\/ 5% discount\r\n      } else if (quantity >= 15) {\r\n        quantityDiscount = 0.10; \/\/ 10% discount\r\n      }\r\n\r\n      \/\/ Apply the higher discount\r\n      let finalPricePerMonth = pricePerMonth;\r\n      let appliedDiscount = timeDiscount;\r\n\r\n      if (quantityDiscount > timeDiscount) {\r\n        finalPricePerMonth = BASE_PRICE_PER_MONTH * (1 - quantityDiscount);\r\n        appliedDiscount = quantityDiscount;\r\n      }\r\n\r\n      \/\/ Update quantity discount badge\r\n      if (quantityDiscount > 0) {\r\n        const quantityPercent = Math.round(quantityDiscount * 100);\r\n        quantityDiscountBadge.textContent = quantityPercent + \"% OFF\";\r\n        quantityDiscountBadge.classList.add(\"active\");\r\n\r\n        if (quantityDiscount !== previousQuantityDiscount) {\r\n          quantityDiscountBadge.classList.remove(\"bounce\");\r\n          void quantityDiscountBadge.offsetWidth;\r\n          quantityDiscountBadge.classList.add(\"bounce\");\r\n          quantityValue.classList.remove(\"bounce\");\r\n          void quantityValue.offsetWidth;\r\n          quantityValue.classList.add(\"bounce\");\r\n\r\n          setTimeout(() => {\r\n            quantityDiscountBadge.classList.remove(\"bounce\");\r\n            quantityValue.classList.remove(\"bounce\");\r\n          }, 600);\r\n        }\r\n      } else {\r\n        quantityDiscountBadge.classList.remove(\"active\");\r\n      }\r\n\r\n      \/\/ Update duration discount badge\r\n      if (timeDiscount > 0) {\r\n        const timePercent = Math.round(timeDiscount * 100);\r\n        durationDiscountBadge.textContent = timePercent + \"% OFF\";\r\n        durationDiscountBadge.classList.add(\"active\");\r\n\r\n        if (timeDiscount !== previousTimeDiscount) {\r\n          durationDiscountBadge.classList.remove(\"bounce\");\r\n          void durationDiscountBadge.offsetWidth;\r\n          durationDiscountBadge.classList.add(\"bounce\");\r\n          durationValue.classList.remove(\"bounce\");\r\n          void durationValue.offsetWidth;\r\n          durationValue.classList.add(\"bounce\");\r\n\r\n          setTimeout(() => {\r\n            durationDiscountBadge.classList.remove(\"bounce\");\r\n            durationValue.classList.remove(\"bounce\");\r\n          }, 600);\r\n        }\r\n      } else {\r\n        durationDiscountBadge.classList.remove(\"active\");\r\n      }\r\n\r\n      \/\/ Show non-cumulative notice when both have discounts\r\n      if (nonCumulativeNotice) {\r\n        nonCumulativeNotice.style.display = (quantityDiscount > 0 && timeDiscount > 0) ? \"block\" : \"none\";\r\n      }\r\n\r\n      \/\/ Generate discount text\r\n      let discountText = \"Standard pricing\";\r\n      if (appliedDiscount > 0) {\r\n        discountText = Math.round(appliedDiscount * 100) + \"% discount applied\";\r\n      }\r\n\r\n      \/\/ Calculate total price\r\n      const totalPrice = quantity * duration * finalPricePerMonth;\r\n\r\n      \/\/ Update UI\r\n      quantityValue.textContent = quantity >= 15 ? \"15+\" : quantity;\r\n      durationValue.textContent = duration;\r\n      enterprisePrice.textContent = \"$\" + totalPrice.toLocaleString('en-US', { minimumFractionDigits: 0, maximumFractionDigits: 0 });\r\n\r\n      if (appliedDiscount > 0) {\r\n        discountBadgeEl.classList.add(\"active\");\r\n      } else {\r\n        discountBadgeEl.classList.remove(\"active\");\r\n      }\r\n      discountBadgeEl.textContent = discountText;\r\n\r\n      priceBreakdownEnterprise.textContent = \"$\" + finalPricePerMonth.toFixed(2) + \"\/month per instance\";\r\n\r\n      previousQuantityDiscount = quantityDiscount;\r\n      previousTimeDiscount = timeDiscount;\r\n    }\r\n\r\n    \/\/ ============================================\r\n    \/\/ NAVIGATION HELPER\r\n    \/\/ ============================================\r\n\r\n    function navigateWithLanguage(targetPath) {\r\n      const currentPath = window.location.pathname;\r\n      const langCodes = ['tr', 'ar', 'fr', 'pt', 'es', 'en'];\r\n      const pathSegments = currentPath.split('\/').filter(segment => segment.length > 0);\r\n\r\n      if (pathSegments.length > 0 && langCodes.includes(pathSegments[0].toLowerCase())) {\r\n        const langCode = pathSegments[0];\r\n        window.location.href = `\/${langCode}${targetPath}`;\r\n      } else {\r\n        window.location.href = targetPath;\r\n      }\r\n    }\r\n\r\n    \/\/ ============================================\r\n    \/\/ PRICING FUNCTIONS\r\n    \/\/ ============================================\r\n\r\n    function getStoragePrice(storageKey, cycleKey) {\r\n      const storage = PRICING_CONFIG.storage[storageKey];\r\n      if (!storage || storage.price === 0) return 0;\r\n\r\n      \/\/ For weekly and monthly, use the monthly price\r\n      if (cycleKey === 'weekly' || cycleKey === 'monthly') {\r\n        return storage.monthlyPrice;\r\n      }\r\n\r\n      \/\/ For 3 months\r\n      if (cycleKey === '3month') {\r\n        return storage.monthlyPrice * (storage['3monthMultiplier'] || 3);\r\n      }\r\n\r\n      \/\/ For 6 months\r\n      if (cycleKey === '6month') {\r\n        return storage.monthlyPrice * (storage['6monthMultiplier'] || 6);\r\n      }\r\n\r\n      return 0;\r\n    }\r\n\r\n    function calculateTotal() {\r\n      const cycle = PRICING_CONFIG.cycles[selectedCycle];\r\n      const basePrice = cycle.basePrice;\r\n      const storagePrice = getStoragePrice(selectedStorage, selectedCycle);\r\n      return basePrice + storagePrice;\r\n    }\r\n\r\n    function formatPrice(price) {\r\n      if (price % 1 === 0) {\r\n        return `$${price}`;\r\n      }\r\n      return `$${price.toFixed(2)}`;\r\n    }\r\n\r\n    function getTotalAvailableDevices() {\r\n      return currentAvailableDevices + availableDevicesWith256GbDrive + availableDevicesWith512GbDrive;\r\n    }\r\n\r\n    function renderCycleTabs() {\r\n      const container = document.getElementById('cycleTabs');\r\n      if (!container) {\r\n        console.error('RentaMac Pricing: #cycleTabs element not found');\r\n        return;\r\n      }\r\n      container.innerHTML = '';\r\n\r\n      Object.entries(PRICING_CONFIG.cycles).forEach(([key, cycle]) => {\r\n        const tab = document.createElement('div');\r\n        const isDailyUnavailable = key === 'daily' && getTotalAvailableDevices() <= dailyPlanAvailabilityThreshold;\r\n        tab.className = `cycle-tab ${key === selectedCycle ? 'active' : ''} ${isDailyUnavailable ? 'unavailable' : ''}`;\r\n        tab.dataset.cycle = key;\r\n\r\n        let html = `\r\n          <span class=\"cycle-name\">${cycle.name}<\/span>\r\n          <span class=\"cycle-price\">${formatPrice(cycle.pricePerDay)}\/day<\/span>\r\n        `;\r\n\r\n        if (cycle.popular) {\r\n          html += `<span class=\"popular-badge\">Popular<\/span>`;\r\n        } else if (cycle.savings) {\r\n          html += `<span class=\"savings-badge\">${cycle.savings}<\/span>`;\r\n        }\r\n\r\n        tab.innerHTML = html;\r\n        tab.addEventListener('click', () => {\r\n          if (isDailyUnavailable) {\r\n            openAvailabilityDialog(AvailabilityNotificationType.Daily);\r\n            return;\r\n          }\r\n          selectCycle(key);\r\n        });\r\n        container.appendChild(tab);\r\n      });\r\n    }\r\n\r\n    function renderStorageOptions() {\r\n      const container = document.getElementById('storageContainer');\r\n      if (!container) {\r\n        console.error('RentaMac Pricing: #storageContainer element not found');\r\n        return;\r\n      }\r\n      const cycle = PRICING_CONFIG.cycles[selectedCycle];\r\n      const hasStorage = cycle.hasStorage;\r\n\r\n      \/\/ Reset to base storage if current cycle doesn't support addons\r\n      if (!hasStorage && selectedStorage !== 'base') {\r\n        selectedStorage = 'base';\r\n      }\r\n\r\n      \/\/ Check if current selected storage is unavailable\r\n      const isCurrentSelectionUnavailable =\r\n        (selectedStorage === 'base' && currentAvailableDevices === 0) ||\r\n        (selectedStorage === 'addon256' && availableDevicesWith256GbDrive === 0) ||\r\n        (selectedStorage === 'addon512' && availableDevicesWith512GbDrive === 0);\r\n\r\n      \/\/ Auto-select first available storage option if current selection is unavailable\r\n      if (isCurrentSelectionUnavailable && hasStorage) {\r\n        if (currentAvailableDevices > 0) {\r\n          selectedStorage = 'base';\r\n        } else if (availableDevicesWith256GbDrive > 0) {\r\n          selectedStorage = 'addon256';\r\n        } else if (availableDevicesWith512GbDrive > 0) {\r\n          selectedStorage = 'addon512';\r\n        }\r\n        \/\/ If nothing is available, keep current selection (will show Join Waitlist)\r\n      } else if (isCurrentSelectionUnavailable && !hasStorage) {\r\n        \/\/ For daily plan, just keep base even if unavailable\r\n        selectedStorage = 'base';\r\n      }\r\n\r\n      const optionsContainer = document.createElement('div');\r\n      optionsContainer.className = 'storage-options';\r\n      optionsContainer.id = 'storageOptions';\r\n\r\n      Object.entries(PRICING_CONFIG.storage).forEach(([key, storage]) => {\r\n        const isAddon = key !== 'base';\r\n        const isDisabled = isAddon && !hasStorage;\r\n\r\n        \/\/ Check availability dynamically based on API response (devices with drives attached)\r\n        let isUnavailable = false;\r\n        if (key === 'base') {\r\n          isUnavailable = currentAvailableDevices === 0;\r\n        } else if (key === 'addon256') {\r\n          isUnavailable = availableDevicesWith256GbDrive === 0;\r\n        } else if (key === 'addon512') {\r\n          isUnavailable = availableDevicesWith512GbDrive === 0;\r\n        }\r\n\r\n        const option = document.createElement('div');\r\n        let classes = 'storage-option';\r\n        if (key === selectedStorage && !isUnavailable) classes += ' active';\r\n        if (isDisabled) classes += ' disabled';\r\n        else if (isUnavailable) classes += ' unavailable';\r\n        option.className = classes;\r\n        option.dataset.storage = key;\r\n\r\n        \/\/ For disabled\/unavailable addons, show monthly price as reference\r\n        let price, priceLabel;\r\n        if ((isDisabled || isUnavailable) && storage.monthlyPrice) {\r\n          price = storage.monthlyPrice;\r\n          priceLabel = `+${formatPrice(price)}\/mo`;\r\n        } else {\r\n          price = getStoragePrice(key, selectedCycle);\r\n          priceLabel = price === 0 ? 'Included' : `+${formatPrice(price)}`;\r\n        }\r\n\r\n        let contentHtml = `\r\n          <div class=\"storage-size\">${storage.size} GB<\/div>\r\n          <div class=\"storage-label\">${storage.label}<\/div>\r\n          <div class=\"storage-price\">${priceLabel}<\/div>\r\n        `;\r\n\r\n        if (storage.isDefault) {\r\n          contentHtml += `<span class=\"default-badge\">Default<\/span>`;\r\n        }\r\n\r\n        \/\/ Wrap content in a div for unavailable\/disabled options so blur doesn't affect tooltip\r\n        if (isUnavailable || isDisabled) {\r\n          option.innerHTML = `<div class=\"storage-content\">${contentHtml}<\/div>`;\r\n        } else {\r\n          option.innerHTML = contentHtml;\r\n        }\r\n\r\n        if (!isDisabled && !isUnavailable) {\r\n          option.addEventListener('click', () => selectStorage(key));\r\n        }\r\n\r\n        optionsContainer.appendChild(option);\r\n      });\r\n\r\n      container.innerHTML = '';\r\n      container.appendChild(optionsContainer);\r\n\r\n      \/\/ Add note when storage addons are disabled\r\n      if (!hasStorage) {\r\n        const note = document.createElement('div');\r\n        note.className = 'storage-addon-disabled-note';\r\n        note.textContent = 'Storage add-ons are not available for the daily plan. Select a weekly or longer billing cycle to add extra storage.';\r\n        container.appendChild(note);\r\n      }\r\n    }\r\n\r\n    function updatePriceDisplay() {\r\n      const total = calculateTotal();\r\n      const cycle = PRICING_CONFIG.cycles[selectedCycle];\r\n\r\n      const totalPriceEl = document.getElementById('totalPrice');\r\n      const priceBreakdownEl = document.getElementById('priceBreakdown');\r\n      const accessDurationEl = document.getElementById('accessDuration');\r\n      const storageNote = document.getElementById('storageNote');\r\n\r\n      if (!totalPriceEl || !priceBreakdownEl) {\r\n        console.error('RentaMac Pricing: Price display elements not found');\r\n        return;\r\n      }\r\n\r\n      totalPriceEl.textContent = formatPrice(total);\r\n      priceBreakdownEl.textContent = cycle.billingLabel.charAt(0).toUpperCase() + cycle.billingLabel.slice(1);\r\n      if (accessDurationEl) accessDurationEl.textContent = cycle.accessDuration;\r\n\r\n      \/\/ Storage note\r\n      if (storageNote) {\r\n        if (selectedStorage !== 'base') {\r\n          const storagePrice = getStoragePrice(selectedStorage, selectedCycle);\r\n          const storage = PRICING_CONFIG.storage[selectedStorage];\r\n          storageNote.textContent = `Includes ${storage.label} storage (+${formatPrice(storagePrice)})`;\r\n        } else {\r\n          storageNote.textContent = '';\r\n        }\r\n      }\r\n    }\r\n\r\n    function selectCycle(cycleKey) {\r\n      selectedCycle = cycleKey;\r\n\r\n      \/\/ Reset storage to base if new cycle doesn't support storage\r\n      if (!PRICING_CONFIG.cycles[cycleKey].hasStorage) {\r\n        selectedStorage = 'base';\r\n      }\r\n\r\n      \/\/ Show SIP customization feature only for 6-month plans\r\n      const sipFeature = document.getElementById('sipFeature');\r\n      if (sipFeature) {\r\n        sipFeature.style.display = cycleKey === '6month' ? '' : 'none';\r\n      }\r\n\r\n      renderCycleTabs();\r\n      renderStorageOptions();\r\n      updatePriceDisplay();\r\n      updateCtaButtonState();\r\n    }\r\n\r\n    function selectStorage(storageKey) {\r\n      if (!PRICING_CONFIG.cycles[selectedCycle].hasStorage) return;\r\n\r\n      \/\/ Prevent selecting unavailable storage options (no devices with that drive available)\r\n      if (storageKey === 'addon256' && availableDevicesWith256GbDrive === 0) return;\r\n      if (storageKey === 'addon512' && availableDevicesWith512GbDrive === 0) return;\r\n\r\n      selectedStorage = storageKey;\r\n      renderStorageOptions();\r\n      updatePriceDisplay();\r\n      updateCtaButtonState();\r\n    }\r\n\r\n    async function handleCheckout() {\r\n      \/\/ Check if selected storage option is out of stock - show availability dialog\r\n      let isSelectedStorageOutOfStock = false;\r\n      if (selectedStorage === 'base') {\r\n        isSelectedStorageOutOfStock = currentAvailableDevices === 0;\r\n      } else if (selectedStorage === 'addon256') {\r\n        isSelectedStorageOutOfStock = availableDevicesWith256GbDrive === 0;\r\n      } else if (selectedStorage === 'addon512') {\r\n        isSelectedStorageOutOfStock = availableDevicesWith512GbDrive === 0;\r\n      }\r\n\r\n      if (isSelectedStorageOutOfStock) {\r\n        \/\/ Determine which pricing option newsletter to subscribe to (using enum values)\r\n        let pricingOption = AvailabilityNotificationType.BaseStorage;\r\n        if (selectedStorage === 'addon256') {\r\n          pricingOption = AvailabilityNotificationType.External256Gb;\r\n        } else if (selectedStorage === 'addon512') {\r\n          pricingOption = AvailabilityNotificationType.External512Gb;\r\n        }\r\n        openAvailabilityDialog(pricingOption);\r\n        return;\r\n      }\r\n\r\n      \/\/ Special logic for daily plan - requires more devices than the threshold\r\n      if (selectedCycle === 'daily' && getTotalAvailableDevices() <= dailyPlanAvailabilityThreshold) {\r\n        openAvailabilityDialog(AvailabilityNotificationType.Daily);\r\n        return;\r\n      }\r\n\r\n      const cycle = selectedCycle;\r\n      const storage = selectedStorage;\r\n\r\n      \/\/ Ensure ADT payload exists\r\n      const adtPayload = await ensureAdtPayload();\r\n      const clientReferenceId = adtPayload?.ClientReferenceId ?? generateGuid();\r\n\r\n      \/\/ Get the checkout URL\r\n      let url = PRICING_CONFIG.checkoutUrls[cycle] || '#';\r\n\r\n      \/\/ If storage add-on is selected, use storage-specific URL if available\r\n      if (storage !== 'base' && PRICING_CONFIG.storageCheckoutUrls) {\r\n        const storageUrl = PRICING_CONFIG.storageCheckoutUrls[cycle]?.[storage];\r\n        if (storageUrl) {\r\n          url = storageUrl;\r\n        }\r\n      }\r\n\r\n      \/\/ Append client_reference_id for tracking\r\n      url += '?client_reference_id=' + encodeURIComponent(clientReferenceId);\r\n\r\n      \/\/ Open checkout in new tab\r\n      const newWindow = window.open(url, '_blank');\r\n\r\n      \/\/ Track conversion (fire and forget)\r\n      if (newWindow) {\r\n        trackAdConversion(clientReferenceId, cycle);\r\n      }\r\n    }\r\n\r\n    \/\/ ============================================\r\n    \/\/ INITIALIZATION\r\n    \/\/ ============================================\r\n\r\n    function initRentamacPricing() {\r\n      \/\/ Check if already initialized to prevent double init\r\n      if (window.rentamacPricingInitialized) return;\r\n      window.rentamacPricingInitialized = true;\r\n\r\n      \/\/ Initialize DOM element references\r\n      availabilityDialog = document.getElementById(\"availabilityDialog\");\r\n      availabilityOverlay = document.getElementById(\"availabilityOverlay\");\r\n      availabilityDialogClose = document.getElementById(\"availabilityDialogClose\");\r\n      availabilityForm = document.getElementById(\"availabilityForm\");\r\n      availabilityFeedback = document.getElementById(\"availabilityFeedback\");\r\n      availabilityEmail = document.getElementById(\"availabilityEmail\");\r\n\r\n      quantitySlider = document.getElementById(\"quantitySlider\");\r\n      durationSlider = document.getElementById(\"durationSlider\");\r\n      quantityValue = document.getElementById(\"quantityValue\");\r\n      durationValue = document.getElementById(\"durationValue\");\r\n      quantityDiscountBadge = document.getElementById(\"quantityDiscountBadge\");\r\n      durationDiscountBadge = document.getElementById(\"durationDiscountBadge\");\r\n      enterprisePrice = document.getElementById(\"enterprisePrice\");\r\n      discountBadgeEl = document.getElementById(\"discountBadge\");\r\n      priceBreakdownEnterprise = document.getElementById(\"priceBreakdownEnterprise\");\r\n      nonCumulativeNotice = document.getElementById(\"nonCumulativeNotice\");\r\n\r\n      \/\/ Render UI\r\n      renderCycleTabs();\r\n      renderStorageOptions();\r\n      updatePriceDisplay();\r\n\r\n      \/\/ CTA button\r\n      const ctaButton = document.getElementById('ctaButton');\r\n      if (ctaButton) ctaButton.addEventListener('click', handleCheckout);\r\n\r\n      \/\/ Availability dialog events\r\n      availabilityForm?.addEventListener(\"submit\", submitAvailabilityForm);\r\n      availabilityEmail?.addEventListener(\"input\", () => {\r\n        availabilityFeedback.textContent = \"We only email you about availability.\";\r\n        availabilityFeedback.className = \"availability-feedback info\";\r\n      });\r\n      availabilityDialogClose?.addEventListener(\"click\", closeAvailabilityDialog);\r\n      availabilityOverlay?.addEventListener(\"click\", closeAvailabilityDialog);\r\n\r\n      \/\/ Fetch availability status\r\n      fetchAvailabilityStatus();\r\n\r\n      \/\/ Ensure ADT payload exists on page load\r\n      ensureAdtPayload();\r\n\r\n      \/\/ Purchase dropdown toggle\r\n      const purchaseDropdownTrigger = document.getElementById('purchaseDropdownTrigger');\r\n      const purchaseDropdownContent = document.getElementById('purchaseDropdownContent');\r\n\r\n      purchaseDropdownTrigger?.addEventListener('click', () => {\r\n        const isExpanded = purchaseDropdownTrigger.getAttribute('aria-expanded') === 'true';\r\n        purchaseDropdownTrigger.setAttribute('aria-expanded', !isExpanded);\r\n        purchaseDropdownContent.setAttribute('aria-hidden', isExpanded);\r\n        purchaseDropdownContent.classList.toggle('expanded');\r\n      });\r\n\r\n      \/\/ Enterprise slider events\r\n      quantitySlider?.addEventListener(\"input\", calculateEnterprisePrice);\r\n      durationSlider?.addEventListener(\"input\", calculateEnterprisePrice);\r\n\r\n      \/\/ Initial enterprise calculation\r\n      if (quantitySlider && durationSlider) {\r\n        calculateEnterprisePrice();\r\n      }\r\n\r\n      \/\/ Load Google Reviews\r\n      loadGoogleReviews();\r\n    }\r\n\r\n    \/\/ Run init: if DOM already loaded, run immediately; otherwise wait\r\n    if (document.readyState === 'loading') {\r\n      document.addEventListener('DOMContentLoaded', initRentamacPricing);\r\n    } else {\r\n      \/\/ DOM already loaded (common in WordPress embeds)\r\n      initRentamacPricing();\r\n    }\r\n\r\n    \/\/ Expose navigateWithLanguage to global scope for onclick handlers\r\n    window.navigateWithLanguage = navigateWithLanguage;\r\n    })();\r\n  <\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>All instances are currently allocated &times; We&#8217;re at full capacity right now, but we can let you know the moment a Mac becomes available again. Leave your email below and you&#8217;ll be first in line when we spin up new instances. Email address Notify me We only use this email to update you about availability. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-26","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/rentamac.io\/fr\/wp-json\/wp\/v2\/pages\/26","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rentamac.io\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rentamac.io\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rentamac.io\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rentamac.io\/fr\/wp-json\/wp\/v2\/comments?post=26"}],"version-history":[{"count":592,"href":"https:\/\/rentamac.io\/fr\/wp-json\/wp\/v2\/pages\/26\/revisions"}],"predecessor-version":[{"id":4443,"href":"https:\/\/rentamac.io\/fr\/wp-json\/wp\/v2\/pages\/26\/revisions\/4443"}],"wp:attachment":[{"href":"https:\/\/rentamac.io\/fr\/wp-json\/wp\/v2\/media?parent=26"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}