{"id":23657,"date":"2026-06-04T14:36:40","date_gmt":"2026-06-04T13:36:40","guid":{"rendered":"https:\/\/comuna.pt\/rental-main-page-pt\/rental-catalog\/"},"modified":"2026-06-16T17:47:24","modified_gmt":"2026-06-16T16:47:24","slug":"rental-catalog","status":"publish","type":"page","link":"https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/rental-catalog\/","title":{"rendered":"Rental Catalog"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"23657\" class=\"elementor elementor-23657 elementor-23546\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aa76b78 e-flex e-con-boxed e-con e-parent\" data-id=\"aa76b78\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c5e6028 elementor-widget elementor-widget-html\" data-id=\"c5e6028\" 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<style>\n@font-face {\n  font-family: 'Cygre';\n  src: url('https:\/\/comuna.pt\/wp-content\/uploads\/2026\/04\/Cygre-Regular-BF63eeebf4df0b6-1.ttf') format('truetype');\n  font-weight: 400; font-style: normal; font-display: swap;\n}\n@font-face {\n  font-family: 'Cygre';\n  src: url('https:\/\/comuna.pt\/wp-content\/uploads\/2026\/04\/Cygre-Bold-4.ttf') format('truetype');\n  font-weight: 700; font-style: normal; font-display: swap;\n}\n\n.rc * { box-sizing: border-box !important; }\n\n\/* \u2500\u2500 LAYOUT \u2500\u2500 *\/\n.rc {\n  display: flex !important;\n  align-items: stretch !important;\n  background: #f5f5f5 !important;\n  width: 100% !important;\n  min-height: 600px !important;\n  font-family: 'Cygre', sans-serif !important;\n  overflow-x: hidden !important;\n}\n\n\/* \u2500\u2500 SIDEBAR \u2500\u2500 *\/\n.rc-sidebar-wrap {\n  width: 240px !important;\n  flex-shrink: 0 !important;\n  position: relative !important;\n}\n.rc-sidebar {\n  width: 240px !important;\n  background: #1A1A1A !important;\n  padding: 0 !important;\n  overflow-y: auto !important;\n  scrollbar-width: thin !important;\n  scrollbar-color: #EBFA01 rgba(255,255,255,0.06) !important;\n  max-height: calc(100vh - 120px) !important;\n}\n.rc-sidebar.is-fixed {\n  position: fixed !important;\n  z-index: 50 !important;\n}\n.rc-sidebar::-webkit-scrollbar { width: 4px !important; background: rgba(255,255,255,0.06) !important; }\n.rc-sidebar::-webkit-scrollbar-thumb { background: #EBFA01 !important; border-radius: 0 !important; }\n\n.rc-sidebar-title {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 10px !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.2em !important;\n  text-transform: uppercase !important;\n  color: rgba(255,255,255,0.3) !important;\n  padding: 24px 20px 12px !important;\n  display: block !important;\n}\n\n.rc-cat-list {\n  list-style: none !important;\n  margin: 0 !important;\n  padding: 0 0 20px !important;\n}\n.rc-cat-item {\n  display: block !important;\n}\n.rc-cat-btn {\n  width: 100% !important;\n  background: none !important;\n  border: none !important;\n  cursor: pointer !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  padding: 10px 20px !important;\n  text-align: left !important;\n  transition: background 0.15s !important;\n  gap: 8px !important;\n}\n.rc-cat-btn:hover { background: rgba(255,255,255,0.05) !important; }\n.rc-cat-btn.is-active { background: rgba(235,250,1,0.08) !important; }\n.rc-cat-name {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 12px !important;\n  letter-spacing: 0.08em !important;\n  text-transform: uppercase !important;\n  color: #BFBFBF !important;\n  transition: color 0.15s !important;\n  flex: 1 !important;\n  line-height: 1.3 !important;\n}\n.rc-cat-btn:hover .rc-cat-name,\n.rc-cat-btn.is-active .rc-cat-name { color: #EBFA01 !important; }\n.rc-cat-count {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 10px !important;\n  color: rgba(255,255,255,0.25) !important;\n  flex-shrink: 0 !important;\n}\n.rc-cat-btn.is-active .rc-cat-count { color: rgba(235,250,1,0.4) !important; }\n\n.rc-cat-sep {\n  height: 1px !important;\n  background: rgba(255,255,255,0.06) !important;\n  margin: 4px 20px !important;\n}\n\n\/* \u2500\u2500 MAIN AREA \u2500\u2500 *\/\n.rc-main {\n  flex: 1 !important;\n  min-width: 0 !important;\n  padding: 24px !important;\n}\n\n\/* \u2500\u2500 BREADCRUMB \u2500\u2500 *\/\n.rc-breadcrumb {\n  display: flex !important;\n  align-items: center !important;\n  gap: 6px !important;\n  padding: 0 0 16px !important;\n  flex-wrap: wrap !important;\n}\n.rc-breadcrumb a {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 11px !important;\n  letter-spacing: 0.1em !important;\n  text-transform: uppercase !important;\n  color: rgba(0,0,0,0.35) !important;\n  text-decoration: none !important;\n  transition: color 0.15s !important;\n}\n.rc-breadcrumb a:hover { color: #1A1A1A !important; }\n.rc-breadcrumb-sep {\n  font-size: 10px !important;\n  color: rgba(0,0,0,0.2) !important;\n}\n.rc-breadcrumb-current {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 11px !important;\n  letter-spacing: 0.1em !important;\n  text-transform: uppercase !important;\n  color: #1A1A1A !important;\n  font-weight: 700 !important;\n}\n\n\n\/* \u2500\u2500 TOP BAR \u2500\u2500 *\/\n.rc-topbar {\n  display: flex !important;\n  align-items: center !important;\n  gap: 12px !important;\n  margin-bottom: 12px !important;\n  flex-wrap: wrap !important;\n}\n.rc-topbar.is-fixed {\n  position: fixed !important;\n  z-index: 60 !important;\n  background: #f5f5f5 !important;\n  padding-top: 4px !important;\n  padding-bottom: 10px !important;\n  border-bottom: 1px solid rgba(0,0,0,0.08) !important;\n}\n.rc-topbar-left {\n  display: flex !important;\n  align-items: center !important;\n  gap: 8px !important;\n  flex-shrink: 0 !important;\n}\n.rc-topbar-title {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 18px !important;\n  font-weight: 700 !important;\n  text-transform: uppercase !important;\n  letter-spacing: 0.04em !important;\n  color: #1A1A1A !important;\n}\n.rc-count-badge {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 11px !important;\n  letter-spacing: 0.1em !important;\n  text-transform: uppercase !important;\n  color: rgba(0,0,0,0.4) !important;\n  flex-shrink: 0 !important;\n}\n\/* \u2500\u2500 SORT BUTTONS \u2500\u2500 *\/\n.rc-sort-btns {\n  display: flex !important;\n  gap: 16px !important;\n  flex-shrink: 0 !important;\n}\n.rc-sort-btn {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 11px !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.08em !important;\n  text-transform: uppercase !important;\n  color: rgba(0,0,0,0.4) !important;\n  background: none !important;\n  border: none !important;\n  cursor: pointer !important;\n  display: flex !important;\n  align-items: center !important;\n  gap: 5px !important;\n  padding: 0 !important;\n  transition: color 0.15s !important;\n  white-space: nowrap !important;\n}\n.rc-sort-btn:hover { color: #1A1A1A !important; }\n.rc-sort-btn.is-active { color: #1A1A1A !important; }\n.rc-sort-icon {\n  font-size: 13px !important;\n  line-height: 1 !important;\n  opacity: 0.4 !important;\n}\n.rc-sort-btn.is-active .rc-sort-icon { opacity: 1 !important; }\n\n\/* \u2500\u2500 VIEW TOGGLE \u2500\u2500 *\/\n.rc-view-toggle {\n  display: flex !important;\n  gap: 2px !important;\n  flex-shrink: 0 !important;\n}\n.rc-view-btn {\n  width: 34px !important;\n  height: 34px !important;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  background: #fff !important;\n  border: 1.5px solid rgba(0,0,0,0.12) !important;\n  cursor: pointer !important;\n  transition: background 0.15s, border-color 0.15s !important;\n  padding: 0 !important;\n}\n.rc-view-btn:hover { background: #f0f0f0 !important; }\n.rc-view-btn.is-active { background: #1A1A1A !important; border-color: #1A1A1A !important; }\n.rc-view-btn svg { width: 14px !important; height: 14px !important; fill: rgba(0,0,0,0.4) !important; }\n.rc-view-btn.is-active svg { fill: #EBFA01 !important; }\n.rc-search-wrap {\n  position: relative !important;\n  flex-shrink: 0 !important;\n}\n.rc-search {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 12px !important;\n  letter-spacing: 0.06em !important;\n  background: #fff !important;\n  border: 2px solid #1A1A1A !important;\n  color: #1A1A1A !important;\n  padding: 11px 36px 11px 16px !important;\n  width: 440px !important;\n  outline: none !important;\n  transition: border-color 0.2s, box-shadow 0.2s !important;\n}\n.rc-search::placeholder { color: rgba(0,0,0,0.4) !important; text-transform: uppercase !important; letter-spacing: 0.08em !important; }\n.rc-search:focus { border-color: #1A1A1A !important; box-shadow: 0 0 0 3px rgba(235,250,1,0.3) !important; }\n.rc-search-icon {\n  position: absolute !important;\n  right: 10px !important;\n  top: 50% !important;\n  transform: translateY(-50%) !important;\n  width: 14px !important;\n  height: 14px !important;\n  fill: rgba(0,0,0,0.35) !important;\n  pointer-events: none !important;\n}\n\n\/* \u2500\u2500 PRODUCT GRID \u2500\u2500 *\/\n.rc-grid {\n  display: grid !important;\n  grid-template-columns: repeat(4, 1fr) !important;\n  gap: 2px !important;\n}\n\n\/* \u2500\u2500 LIST VIEW \u2500\u2500 *\/\n.rc-grid.rc-list {\n  grid-template-columns: 1fr !important;\n  gap: 2px !important;\n}\n.rc-list .rc-card {\n  flex-direction: row !important;\n}\n.rc-list .rc-card-img-link {\n  width: 120px !important;\n  height: 120px !important;\n  flex-shrink: 0 !important;\n}\n.rc-list .rc-card-body {\n  flex-direction: row !important;\n  align-items: center !important;\n  gap: 16px !important;\n  padding: 12px 16px !important;\n  flex-wrap: wrap !important;\n}\n.rc-list .rc-card-cat { display: none !important; }\n.rc-list .rc-card-name {\n  font-size: 14px !important;\n  flex: 1 !important;\n  min-width: 160px !important;\n}\n.rc-list .rc-card-footer {\n  margin-top: 0 !important;\n  flex-shrink: 0 !important;\n}\n\n\/* \u2500\u2500 PRODUCT CARD \u2500\u2500 *\/\n.rc-card {\n  background: #fff !important;\n  display: flex !important;\n  flex-direction: column !important;\n  position: relative !important;\n  transition: box-shadow 0.2s !important;\n  border: 1px solid rgba(0,0,0,0.12) !important;\n}\n.rc-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,0.12) !important; border-color: rgba(0,0,0,0.25) !important; z-index: 1 !important; }\n\n.rc-card-img-link {\n  display: block !important;\n  height: 160px !important;\n  overflow: hidden !important;\n  background: #fff !important;\n  text-decoration: none !important;\n  flex-shrink: 0 !important;\n}\n.rc-card-img-link img {\n  width: 100% !important;\n  height: 100% !important;\n  object-fit: contain !important;\n  display: block !important;\n  transition: transform 0.3s !important;\n  padding: 10px !important;\n}\n.rc-card:hover .rc-card-img-link img { transform: scale(1.04) !important; }\n\n.rc-card-body {\n  padding: 14px 16px 16px !important;\n  display: flex !important;\n  flex-direction: column !important;\n  flex: 1 !important;\n  gap: 6px !important;\n}\n.rc-card-cat {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 9px !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.16em !important;\n  text-transform: uppercase !important;\n  color: rgba(0,0,0,0.35) !important;\n}\n.rc-card-name {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 13px !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.02em !important;\n  color: #1A1A1A !important;\n  line-height: 1.35 !important;\n  display: block !important;\n  flex: 1 !important;\n}\n.rc-card-footer {\n  display: flex !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  margin-top: auto !important;\n  padding-top: 8px !important;\n  gap: 8px !important;\n}\n.rc-card-price {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 15px !important;\n  font-weight: 700 !important;\n  color: #1A1A1A !important;\n  letter-spacing: -0.01em !important;\n}\n.rc-card-price-sub {\n  font-size: 10px !important;\n  font-weight: 400 !important;\n  color: rgba(0,0,0,0.35) !important;\n  letter-spacing: 0.06em !important;\n}\n\/* \u2500\u2500 Card buttons \u2500\u2500 *\/\n.rc-card-btn {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 10px !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.12em !important;\n  text-transform: uppercase !important;\n  background: #EBFA01 !important;\n  color: #000 !important;\n  border: none !important;\n  padding: 8px 14px !important;\n  cursor: pointer !important;\n  transition: background 0.2s, color 0.2s !important;\n  white-space: nowrap !important;\n  flex-shrink: 0 !important;\n  text-decoration: none !important;\n  display: inline-flex !important;\n  align-items: center !important;\n}\n.rc-card-btn:hover { background: #1A1A1A !important; color: #EBFA01 !important; }\n.rc-card-btn-more {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 10px !important;\n  font-weight: 400 !important;\n  letter-spacing: 0.08em !important;\n  text-transform: uppercase !important;\n  color: rgba(0,0,0,0.5) !important;\n  text-decoration: none !important;\n  display: inline-block !important;\n  border-bottom: 1px solid rgba(0,0,0,0.25) !important;\n  line-height: 1.4 !important;\n  margin-top: 2px !important;\n  transition: color 0.15s, border-color 0.15s !important;\n}\n.rc-card-btn-more:hover { color: #1A1A1A !important; border-color: #1A1A1A !important; }\n\n\/* \u2500\u2500 STATES \u2500\u2500 *\/\n.rc-loading {\n  grid-column: 1 \/ -1 !important;\n  padding: 60px 20px !important;\n  text-align: center !important;\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 12px !important;\n  letter-spacing: 0.1em !important;\n  text-transform: uppercase !important;\n  color: rgba(0,0,0,0.3) !important;\n}\n.rc-empty {\n  grid-column: 1 \/ -1 !important;\n  padding: 60px 20px !important;\n  text-align: center !important;\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 14px !important;\n  color: rgba(0,0,0,0.4) !important;\n}\n\n\/* \u2500\u2500 INFINITE SCROLL \u2500\u2500 *\/\n.rc-sentinel {\n  height: 1px !important;\n  margin-top: 40px !important;\n}\n.rc-fetch-loading {\n  display: none !important;\n  padding: 32px 0 !important;\n  text-align: center !important;\n}\n.rc-fetch-loading.is-visible { display: block !important; }\n.rc-fetch-loading-inner {\n  display: inline-flex !important;\n  align-items: center !important;\n  gap: 12px !important;\n  background: #1A1A1A !important;\n  padding: 12px 28px !important;\n}\n.rc-fetch-loading-dot {\n  width: 6px !important;\n  height: 6px !important;\n  background: #EBFA01 !important;\n  border-radius: 50% !important;\n  animation: rcDotPulse 1.2s ease-in-out infinite !important;\n}\n.rc-fetch-loading-dot:nth-child(2) { animation-delay: 0.2s !important; }\n.rc-fetch-loading-dot:nth-child(3) { animation-delay: 0.4s !important; }\n.rc-fetch-loading-text {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 11px !important;\n  font-weight: 700 !important;\n  letter-spacing: 0.2em !important;\n  text-transform: uppercase !important;\n  color: #BFBFBF !important;\n}\n@keyframes rcDotPulse {\n  0%, 80%, 100% { opacity: 0.2; transform: scale(0.8); }\n  40% { opacity: 1; transform: scale(1); }\n}\n\n\/* \u2500\u2500 MOBILE \u2500\u2500 *\/\n.rc-mob-bar {\n  display: none !important;\n  background: #1A1A1A !important;\n  padding: 12px 20px !important;\n  align-items: center !important;\n  gap: 12px !important;\n  z-index: 100 !important;\n}\n.rc-mob-select {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 12px !important;\n  letter-spacing: 0.06em !important;\n  text-transform: uppercase !important;\n  background: rgba(255,255,255,0.08) !important;\n  border: 1px solid rgba(255,255,255,0.15) !important;\n  color: #fff !important;\n  padding: 8px 12px !important;\n  flex: 1 !important;\n  outline: none !important;\n  cursor: pointer !important;\n}\n.rc-mob-search {\n  font-family: 'Cygre', sans-serif !important;\n  font-size: 12px !important;\n  background: rgba(255,255,255,0.08) !important;\n  border: 1px solid rgba(255,255,255,0.15) !important;\n  color: #fff !important;\n  padding: 8px 12px !important;\n  width: 140px !important;\n  outline: none !important;\n  flex-shrink: 0 !important;\n}\n.rc-mob-search::placeholder { color: rgba(255,255,255,0.4) !important; }\n\n@media (max-width: 1100px) {\n  .rc-grid { grid-template-columns: repeat(3, 1fr) !important; }\n}\n@media (max-width: 900px) {\n  .rc { flex-direction: column !important; }\n  .rc-sidebar-wrap { display: none !important; width: 100% !important; }\n  .rc-sidebar { display: none !important; width: 100% !important; position: static !important; max-height: none !important; }\n  .rc-mob-bar { display: flex !important; position: fixed !important; left: 0 !important; right: 0 !important; }\n  .rc-main { padding: 16px !important; }\n  .rc-grid { grid-template-columns: repeat(3, 1fr) !important; }\n  .rc-topbar { display: none !important; }\n}\n@media (max-width: 600px) {\n  .rc-grid { grid-template-columns: repeat(2, 1fr) !important; }\n  .rc-mob-bar { flex-direction: column !important; align-items: stretch !important; gap: 8px !important; }\n  .rc-mob-select { width: 100% !important; }\n  .rc-mob-search { width: 100% !important; }\n}\n@media (max-width: 500px) {\n  .rc-card-img-link { height: 120px !important; }\n}\n<\/style>\n\n<div class=\"rc\" id=\"rc\">\n  <!-- Barra m\u00f3vel -->\n  <div class=\"rc-mob-bar\">\n    <select class=\"rc-mob-select\" id=\"rc-mob-select\">\n      <option value=\"\">Todo o Equipamento<\/option>\n    <\/select>\n    <input type=\"search\" class=\"rc-mob-search\" id=\"rc-mob-search\" placeholder=\"Pesquisar\u2026\" autocomplete=\"off\" \/>\n  <\/div>\n\n  <!-- Sidebar -->\n  <div class=\"rc-sidebar-wrap\">\n  <aside class=\"rc-sidebar\">\n    <span class=\"rc-sidebar-title\">Equipamento<\/span>\n    <ul class=\"rc-cat-list\" id=\"rc-cat-list\">\n      <li class=\"rc-cat-item\">\n        <button class=\"rc-cat-btn is-active\" data-slug=\"\" onclick=\"rcSelectCat(this, '', 'Todo o Equipamento')\">\n          <span class=\"rc-cat-name\">Todo o Equipamento<\/span>\n          <span class=\"rc-cat-count\" id=\"rc-total-count\">\u2014<\/span>\n        <\/button>\n      <\/li>\n      <li><div class=\"rc-cat-sep\"><\/div><\/li>\n    <\/ul>\n  <\/aside>\n  <\/div><!-- \/.rc-sidebar-wrap -->\n\n  <!-- Main -->\n  <div class=\"rc-main\">\n    <nav class=\"rc-breadcrumb\" id=\"rc-breadcrumb\">\n      <a href=\"\/pt-pt\/\">In\u00edcio<\/a>\n      <span class=\"rc-breadcrumb-sep\">\u203a<\/span>\n      <a href=\"\/pt-pt\/aluguer-equipamento\/\">Aluguer de Equipamento<\/a>\n      <span class=\"rc-breadcrumb-sep\">\u203a<\/span>\n      <a href=\"\/pt-pt\/aluguer-equipamento\/catalogo\/\">Cat\u00e1logo<\/a>\n      <span class=\"rc-breadcrumb-sep\" id=\"rc-bc-sep2\" style=\"display:none\">\u203a<\/span>\n      <span class=\"rc-breadcrumb-current\" id=\"rc-bc-current\"><\/span>\n    <\/nav>\n    <div class=\"rc-topbar\">\n      <div class=\"rc-topbar-left\">\n        <div class=\"rc-topbar-title\" id=\"rc-topbar-title\">Cat\u00e1logo<\/div>\n        <span class=\"rc-count-badge\" id=\"rc-count-badge\"><\/span>\n      <\/div>\n      <div class=\"rc-search-wrap\" style=\"flex:1;\">\n        <input type=\"search\" class=\"rc-search\" id=\"rc-search\" placeholder=\"Pesquisar equipamento\u2026\" autocomplete=\"off\" style=\"width:100%!important;\" \/>\n        <svg class=\"rc-search-icon\" viewBox=\"0 0 512 512\"><path d=\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"\/><\/svg>\n      <\/div>\n      <div class=\"rc-sort-btns\">\n        <button class=\"rc-sort-btn\" id=\"rc-sort-name\" onclick=\"rcToggleSort('title')\">\n          Por nome <span class=\"rc-sort-icon\" id=\"rc-sort-name-icon\">\u2630<\/span>\n        <\/button>\n        <button class=\"rc-sort-btn\" id=\"rc-sort-price\" onclick=\"rcToggleSort('price')\">\n          Por pre\u00e7o <span class=\"rc-sort-icon\" id=\"rc-sort-price-icon\">\u2630<\/span>\n        <\/button>\n      <\/div>\n      <div class=\"rc-view-toggle\">\n        <button class=\"rc-view-btn is-active\" id=\"rc-btn-grid\" onclick=\"rcSetView('grid')\" title=\"Vista grelha\">\n          <svg viewBox=\"0 0 16 16\"><rect x=\"0\" y=\"0\" width=\"7\" height=\"7\"\/><rect x=\"9\" y=\"0\" width=\"7\" height=\"7\"\/><rect x=\"0\" y=\"9\" width=\"7\" height=\"7\"\/><rect x=\"9\" y=\"9\" width=\"7\" height=\"7\"\/><\/svg>\n        <\/button>\n        <button class=\"rc-view-btn\" id=\"rc-btn-list\" onclick=\"rcSetView('list')\" title=\"Vista lista\">\n          <svg viewBox=\"0 0 16 16\"><rect x=\"0\" y=\"0\" width=\"16\" height=\"3\"\/><rect x=\"0\" y=\"5\" width=\"16\" height=\"3\"\/><rect x=\"0\" y=\"10\" width=\"16\" height=\"3\"\/><rect x=\"0\" y=\"15\" width=\"16\" height=\"1\"\/><\/svg>\n        <\/button>\n      <\/div>\n    <\/div>\n    <div class=\"rc-grid\" id=\"rc-grid\">\n      <div class=\"rc-loading\">A carregar equipamento\u2026<\/div>\n    <\/div>\n    <div class=\"rc-fetch-loading\" id=\"rc-fetch-loading\">\n      <div class=\"rc-fetch-loading-inner\">\n        <div class=\"rc-fetch-loading-dot\"><\/div>\n        <div class=\"rc-fetch-loading-dot\"><\/div>\n        <div class=\"rc-fetch-loading-dot\"><\/div>\n        <span class=\"rc-fetch-loading-text\">A carregar<\/span>\n      <\/div>\n    <\/div>\n    <div class=\"rc-sentinel\" id=\"rc-sentinel\"><\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  var PER_PAGE = 24;\n  var currentSlug = '';\n  var currentName = 'Todo o Equipamento';\n  var currentPage = 1;\n  var searchTimer = null;\n  var currentSearch = '';\n  var isLoading = false;\n  var hasMore = true;\n  var observer = null;\n  var currentOrderby = '';\n  var currentOrder = '';\n\n  \/\/ \u2500\u2500 URL sync \u2500\u2500\n  function updateUrl() {\n    var params = new URLSearchParams();\n    if (currentSlug) params.set('category', currentSlug);\n    if (currentSearch) params.set('search', currentSearch);\n    if (currentPage > 1) params.set('page', String(currentPage));\n    var qs = params.toString();\n    var base = '\/pt-pt\/aluguer-equipamento\/catalogo\/';\n    history.pushState(\n      { slug: currentSlug, name: currentName, page: currentPage, search: currentSearch },\n      '',\n      base + (qs ? '?' + qs : '')\n    );\n  }\n\n  function readUrlParams() {\n    var params = new URLSearchParams(window.location.search);\n    currentSlug   = params.get('category') || '';\n    currentSearch = params.get('search')   || '';\n    currentPage   = parseInt(params.get('page') || '1');\n    document.getElementById('rc-search').value    = currentSearch;\n    document.getElementById('rc-mob-search').value = currentSearch;\n    activateCategoryBtn(currentSlug);\n  }\n\n  function updateSearchPlaceholder() {\n    var label = currentSlug ? 'Pesquisar em ' + currentName + '\u2026' : 'Pesquisar equipamento\u2026';\n    document.getElementById('rc-search').placeholder = label;\n  }\n\n  function updateBreadcrumb() {\n    var sep  = document.getElementById('rc-bc-sep2');\n    var curr = document.getElementById('rc-bc-current');\n    if (currentSearch) {\n      sep.style.display = '';\n      curr.textContent = 'Pesquisa: \"' + currentSearch + '\"';\n    } else if (currentSlug) {\n      sep.style.display = '';\n      curr.textContent = currentName;\n    } else {\n      sep.style.display = 'none';\n      curr.textContent = '';\n    }\n  }\n\n  function activateCategoryBtn(slug) {\n    var found = false;\n    document.querySelectorAll('.rc-cat-btn').forEach(function(b) {\n      var match = b.getAttribute('data-slug') === slug;\n      b.classList.toggle('is-active', match);\n      if (match) {\n        currentName = b.querySelector('.rc-cat-name').textContent;\n        document.getElementById('rc-topbar-title').textContent = currentName;\n        found = true;\n      }\n    });\n    if (!found && !slug) {\n      var allBtn = document.querySelector('.rc-cat-btn[data-slug=\"\"]');\n      if (allBtn) allBtn.classList.add('is-active');\n      document.getElementById('rc-topbar-title').textContent = 'Todo o Equipamento';\n    }\n    var mob = document.getElementById('rc-mob-select');\n    if (mob) mob.value = slug;\n  }\n\n  window.addEventListener('popstate', function(e) {\n    var s = e.state || {};\n    currentSlug   = s.slug   || '';\n    currentName   = s.name   || 'Cat\u00e1logo';\n    currentPage   = s.page   || 1;\n    currentSearch = s.search || '';\n    document.getElementById('rc-search').value     = currentSearch;\n    document.getElementById('rc-mob-search').value = currentSearch;\n    activateCategoryBtn(currentSlug);\n    loadProducts();\n  });\n\n  \/\/ \u2500\u2500 Load categories \u2500\u2500\n  fetch('\/wp-json\/wc\/store\/v1\/products\/categories?per_page=100&hide_empty=true&orderby=name&order=asc')\n    .then(function(r) { return r.json(); })\n    .then(function(cats) {\n      var list = document.getElementById('rc-cat-list');\n      var mob  = document.getElementById('rc-mob-select');\n      var totalCount = 0;\n      cats.forEach(function(cat) { totalCount += cat.count || 0; });\n      document.getElementById('rc-total-count').textContent = totalCount;\n      mob.options[0].textContent = 'Cat\u00e1logo (' + totalCount + ')';\n      cats.forEach(function(cat) {\n        var li = document.createElement('li');\n        li.className = 'rc-cat-item';\n        li.innerHTML = '<button class=\"rc-cat-btn\" data-slug=\"' + cat.slug + '\" onclick=\"rcSelectCat(this,\\'' + cat.slug + '\\',\\'' + cat.name.replace(\/'\/g, \"\\\\'\") + '\\')\">' +\n          '<span class=\"rc-cat-name\">' + cat.name + '<\/span>' +\n          '<span class=\"rc-cat-count\">' + (cat.count || '') + '<\/span>' +\n          '<\/button>';\n        list.appendChild(li);\n        var opt = document.createElement('option');\n        opt.value = cat.slug;\n        opt.textContent = cat.name + ' (' + (cat.count || 0) + ')';\n        mob.appendChild(opt);\n      });\n      activateCategoryBtn(currentSlug);\n    })\n    .catch(function() {});\n\n  \/\/ \u2500\u2500 Select category \u2500\u2500\n  window.rcSelectCat = function(btn, slug, name) {\n    document.querySelectorAll('.rc-cat-btn').forEach(function(b) { b.classList.remove('is-active'); });\n    btn.classList.add('is-active');\n    currentSlug   = slug;\n    currentName   = name;\n    currentPage   = 1;\n    currentSearch = '';\n    document.getElementById('rc-search').value     = '';\n    document.getElementById('rc-mob-search').value = '';\n    document.getElementById('rc-topbar-title').textContent = name;\n    updateUrl();\n    updateBreadcrumb();\n    updateSearchPlaceholder();\n    loadProducts();\n    var rc = document.getElementById('rc');\n    if (rc) {\n      var top = rc.getBoundingClientRect().top + window.scrollY - getHeaderH() - 8;\n      window.scrollTo({ top: top, behavior: 'smooth' });\n    }\n  };\n\n  \/\/ \u2500\u2500 Infinite scroll observer \u2500\u2500\n  function initObserver() {\n    if (observer) observer.disconnect();\n    observer = new IntersectionObserver(function(entries) {\n      if (entries[0].isIntersecting && hasMore && !isLoading) {\n        fetchProducts(false);\n      }\n    }, { rootMargin: '0px' });\n    observer.observe(document.getElementById('rc-sentinel'));\n  }\n\n  \/\/ \u2500\u2500 Load products (reset) \u2500\u2500\n  function loadProducts() {\n    currentPage = 1;\n    hasMore = true;\n    isLoading = false;\n    var grid = document.getElementById('rc-grid');\n    grid.innerHTML = '<div class=\"rc-loading\">A carregar\u2026<\/div>';\n    fetchProducts(true);\n  }\n\n  \/\/ \u2500\u2500 Fetch products \u2500\u2500\n  function setFetchLoading(show) {\n    var el = document.getElementById('rc-fetch-loading');\n    if (el) el.classList.toggle('is-visible', show);\n  }\n\n  function fetchProducts(reset) {\n    if (isLoading || !hasMore) return;\n    isLoading = true;\n    if (!reset) setFetchLoading(true);\n\n    var url = '\/wp-json\/wc\/store\/v1\/products?per_page=' + PER_PAGE + '&page=' + currentPage;\n    if (currentSlug) url += '&category=' + encodeURIComponent(currentSlug);\n    if (currentSearch)  url += '&search='   + encodeURIComponent(currentSearch);\n    if (currentOrderby) url += '&orderby='  + currentOrderby + '&order=' + currentOrder;\n\n    fetch(url)\n      .then(function(r) {\n        var total = parseInt(r.headers.get('X-WP-Total')      || '0');\n        var pages = parseInt(r.headers.get('X-WP-TotalPages') || '1');\n        document.getElementById('rc-count-badge').textContent = total ? total + ' artigos' : '';\n        hasMore = currentPage < pages;\n        return r.json();\n      })\n      .then(function(products) {\n        var grid = document.getElementById('rc-grid');\n        if (reset) grid.innerHTML = '';\n        if (!products || !products.length) {\n          if (reset) grid.innerHTML = '<div class=\"rc-empty\">Nenhum equipamento encontrado' + (currentSearch ? ' para \"' + currentSearch + '\"' : '') + '.<\/div>';\n          hasMore = false;\n          isLoading = false;\n          setFetchLoading(false);\n          return;\n        }\n        var frag = document.createDocumentFragment();\n        products.forEach(function(p) {\n          var img = (p.images && p.images[0]) ? p.images[0].thumbnail : '';\n          var imgTag = img\n            ? '<img decoding=\"async\" src=\"' + img + '\" alt=\"' + (p.name || '') + '\" loading=\"lazy\" \/>'\n            : '<img decoding=\"async\" src=\"\" alt=\"\" style=\"opacity:0;\" \/>';\n          var price = formatPrice(p.prices);\n          var cat   = (p.categories && p.categories[0]) ? p.categories[0].name : '';\n          var card = document.createElement('div');\n          card.className = 'rc-card';\n          card.innerHTML =\n            '<a class=\"rc-card-img-link\" href=\"' + p.permalink + '\">' + imgTag + '<\/a>' +\n            '<div class=\"rc-card-body\">' +\n              (cat ? '<div class=\"rc-card-cat\">' + cat + '<\/div>' : '') +\n              '<div class=\"rc-card-name\">' + p.name + '<\/div>' +\n              '<a class=\"rc-card-btn-more\" href=\"' + p.permalink + '\">Saber mais \u2192<\/a>' +\n              '<div class=\"rc-card-footer\">' +\n                (price ? '<div class=\"rc-card-price\">' + price + '<span class=\"rc-card-price-sub\"> \/dia<\/span><\/div>' : '<div><\/div>') +\n                '<button class=\"rc-card-btn\" onclick=\"rcBook(\\'' + p.slug + '\\',\\'' + p.permalink + '\\')\">Reservar \u2192<\/button>' +\n              '<\/div>' +\n            '<\/div>';\n          frag.appendChild(card);\n        });\n        grid.appendChild(frag);\n        currentPage++;\n        isLoading = false;\n        setFetchLoading(false);\n        initObserver();\n        requestAnimationFrame(function() {\n          if (typeof window.rcSidebarUpdate === 'function') window.rcSidebarUpdate();\n        });\n      })\n      .catch(function() {\n        document.getElementById('rc-grid').innerHTML = '<div class=\"rc-empty\">N\u00e3o foi poss\u00edvel carregar os produtos. Por favor tente novamente.<\/div>';\n        isLoading = false;\n        setFetchLoading(false);\n      });\n  }\n\n  \/\/ \u2500\u2500 Search \u2500\u2500\n  function initSearch() {\n    var inp    = document.getElementById('rc-search');\n    var mobInp = document.getElementById('rc-mob-search');\n    function onSearch(val) {\n      clearTimeout(searchTimer);\n      searchTimer = setTimeout(function() {\n        currentSearch = val.trim();\n        currentPage   = 1;\n        updateUrl();\n        updateBreadcrumb();\n        loadProducts();\n      }, 320);\n    }\n    inp.addEventListener('input',   function() { onSearch(this.value); });\n    mobInp.addEventListener('input', function() { onSearch(this.value); });\n    inp.addEventListener('keydown', function(e) { if (e.key === 'Escape') { this.value = ''; onSearch(''); } });\n  }\n\n  \/\/ \u2500\u2500 Mobile select \u2500\u2500\n  document.getElementById('rc-mob-select').addEventListener('change', function() {\n    currentSlug   = this.value;\n    currentName   = this.options[this.selectedIndex].text.replace(\/ \\(\\d+\\)$\/, '');\n    currentPage   = 1;\n    currentSearch = '';\n    document.getElementById('rc-mob-search').value = '';\n    updateUrl();\n    loadProducts();\n  });\n\n  \/\/ \u2500\u2500 Sort toggle \u2500\u2500\n  window.rcToggleSort = function(field) {\n    var icons = { '': '\u2630', 'asc': '\u2191', 'desc': '\u2193' };\n    if (currentOrderby === field) {\n      currentOrder = currentOrder === 'asc' ? 'desc' : currentOrder === 'desc' ? '' : 'asc';\n      if (!currentOrder) currentOrderby = '';\n    } else {\n      currentOrderby = field;\n      currentOrder = 'asc';\n    }\n    var otherField = field === 'title' ? 'price' : 'title';\n    var otherBtn = document.getElementById('rc-sort-' + (otherField === 'title' ? 'name' : 'price'));\n    var otherIcon = document.getElementById('rc-sort-' + (otherField === 'title' ? 'name' : 'price') + '-icon');\n    if (otherBtn) { otherBtn.classList.remove('is-active'); otherIcon.textContent = '\u2630'; }\n    var btnId = field === 'title' ? 'rc-sort-name' : 'rc-sort-price';\n    var btn  = document.getElementById(btnId);\n    var icon = document.getElementById(btnId + '-icon');\n    if (currentOrderby) { btn.classList.add('is-active'); icon.textContent = icons[currentOrder]; }\n    else { btn.classList.remove('is-active'); icon.textContent = '\u2630'; }\n    loadProducts();\n  };\n\n  \/\/ \u2500\u2500 View toggle \u2500\u2500\n  window.rcSetView = function(view) {\n    var grid = document.getElementById('rc-grid');\n    var btnGrid = document.getElementById('rc-btn-grid');\n    var btnList = document.getElementById('rc-btn-list');\n    if (view === 'list') {\n      grid.classList.add('rc-list');\n      btnList.classList.add('is-active');\n      btnGrid.classList.remove('is-active');\n    } else {\n      grid.classList.remove('rc-list');\n      btnGrid.classList.add('is-active');\n      btnList.classList.remove('is-active');\n    }\n  };\n\n  \/\/ \u2500\u2500 Booqable Book \u2500\u2500\n  window.rcBook = function(slug, permalink) {\n    var id = 'rc-bq-' + slug;\n    var existing = document.getElementById(id);\n    if (existing) {\n      var existingBtn = existing.querySelector('.bq-button');\n      if (existingBtn) { existingBtn.click(); return; }\n    }\n    if (typeof initBooqableComponents !== 'function') {\n      window.location.href = permalink; return;\n    }\n    var container = document.createElement('div');\n    container.id = id;\n    container.style.cssText = 'position:fixed;left:-9999px;top:-9999px;opacity:0;pointer-events:none;';\n    container.innerHTML = '<div class=\"booqable-product-button\" data-id=\"' + slug + '\" data-ui-key=\"' + slug + '\" data-product-group-id=\"' + slug + '\"><\/div>';\n    document.body.appendChild(container);\n    initBooqableComponents();\n    var attempts = 0;\n    var poll = setInterval(function() {\n      var btn = container.querySelector('.bq-button');\n      if (btn) { clearInterval(poll); btn.style.pointerEvents = 'auto'; btn.click(); return; }\n      if (++attempts > 20) {\n        clearInterval(poll);\n        document.body.removeChild(container);\n        window.location.href = permalink;\n      }\n    }, 100);\n  };\n\n  \/\/ \u2500\u2500 Helpers \u2500\u2500\n  function formatPrice(prices) {\n    if (!prices || !prices.price) return '';\n    var symbol   = prices.currency_symbol || '\u20ac';\n    var decimals = parseInt(prices.currency_minor_unit || 2);\n    var amount   = (parseInt(prices.price) \/ Math.pow(10, decimals)).toFixed(2);\n    return symbol + amount;\n  }\n\n  \/\/ \u2500\u2500 Sticky sidebar via JS (CSS sticky blocked by Elementor overflow) \u2500\u2500\n  function getHeaderH() {\n    var ab = document.getElementById('wpadminbar');\n    var h = ab ? ab.offsetHeight : 0;\n    var header = document.querySelector('.cs-header');\n    if (header) {\n      var b = Math.round(header.getBoundingClientRect().bottom);\n      if (b > h) h = b;\n    }\n    document.querySelectorAll('.elementor-sticky--active').forEach(function(el) {\n      var b = Math.round(el.getBoundingClientRect().bottom);\n      if (b > h) h = b;\n    });\n    return h;\n  }\n\n  function initStickySidebar() {\n    var sidebar = document.querySelector('.rc-sidebar');\n    var wrap    = document.querySelector('.rc-sidebar-wrap');\n    var rc      = document.getElementById('rc');\n    if (!sidebar || !wrap || !rc) return;\n\n    function update() {\n      if (window.innerWidth <= 900) {\n        sidebar.classList.remove('is-fixed');\n        sidebar.style.position = sidebar.style.top = sidebar.style.bottom = sidebar.style.left = sidebar.style.width = sidebar.style.maxHeight = '';\n        return;\n      }\n      var headerH  = getHeaderH();\n      var wrapRect = wrap.getBoundingClientRect();\n      var rcBottom = rc.getBoundingClientRect().bottom;\n      var sidebarH = Math.min(sidebar.scrollHeight, window.innerHeight - headerH);\n      var scrollY  = window.scrollY || window.pageYOffset;\n\n      if (wrapRect.top > headerH || scrollY === 0) {\n        sidebar.classList.remove('is-fixed');\n        sidebar.style.position = sidebar.style.top = sidebar.style.bottom = sidebar.style.left = sidebar.style.width = sidebar.style.maxHeight = '';\n      } else if (rcBottom >= headerH + sidebarH) {\n        sidebar.classList.add('is-fixed');\n        sidebar.style.position  = 'fixed';\n        sidebar.style.top       = headerH + 'px';\n        sidebar.style.bottom    = '';\n        sidebar.style.left      = wrapRect.left + 'px';\n        sidebar.style.width     = wrap.offsetWidth + 'px';\n        sidebar.style.overflowY = 'scroll';\n        sidebar.style.maxHeight = (window.innerHeight - headerH) + 'px';\n      } else {\n        sidebar.classList.remove('is-fixed');\n        sidebar.style.position  = 'absolute';\n        sidebar.style.top       = 'auto';\n        sidebar.style.bottom    = '0';\n        sidebar.style.left      = '';\n        sidebar.style.width     = '';\n        sidebar.style.maxHeight = '';\n      }\n    }\n\n    window.addEventListener('scroll', update, { passive: true });\n    window.addEventListener('resize', update, { passive: true });\n    update();\n    window.rcSidebarUpdate = update;\n  }\n\n  function detectFixedHeaderH() {\n    var h = 0;\n    var ab = document.getElementById('wpadminbar');\n    if (ab && ab.offsetHeight) h = ab.offsetHeight;\n    var header = document.querySelector('.cs-header');\n    if (header) {\n      var rect = header.getBoundingClientRect();\n      if (rect.bottom > h) h = Math.round(rect.bottom);\n    }\n    return h;\n  }\n\n  function initStickyTopbar() {\n    var topbar = document.querySelector('.rc-topbar');\n    var main   = document.querySelector('.rc-main');\n    if (!topbar || !main) return;\n\n    var ghost = document.createElement('div');\n    ghost.style.cssText = 'display:none;';\n    topbar.parentNode.insertBefore(ghost, topbar);\n\n    function update() {\n      if (window.innerWidth <= 900) {\n        topbar.classList.remove('is-fixed');\n        topbar.style.top = topbar.style.left = topbar.style.width = '';\n        ghost.style.display = 'none';\n        return;\n      }\n      var headerH  = getHeaderH();\n      var mainRect = main.getBoundingClientRect();\n      var pad      = 24;\n\n      if (mainRect.top <= headerH) {\n        var tbH = ghost.offsetHeight || topbar.offsetHeight;\n        ghost.style.display = 'block';\n        ghost.style.height  = tbH + 'px';\n        topbar.classList.add('is-fixed');\n        topbar.style.top   = headerH + 'px';\n        topbar.style.left  = (mainRect.left + pad) + 'px';\n        topbar.style.width = (main.offsetWidth - pad * 2) + 'px';\n      } else {\n        topbar.classList.remove('is-fixed');\n        topbar.style.top = topbar.style.left = topbar.style.width = '';\n        ghost.style.display = 'none';\n      }\n    }\n\n    window.addEventListener('scroll', update, { passive: true });\n    window.addEventListener('resize', update, { passive: true });\n    update();\n    window.rcTopbarUpdate = update;\n  }\n\n  function initMobBar() {\n    var bar  = document.querySelector('.rc-mob-bar');\n    var main = document.querySelector('.rc-main');\n    if (!bar || !main) return;\n    function update() {\n      if (window.innerWidth > 900) {\n        bar.style.top = '';\n        main.style.paddingTop = '';\n        return;\n      }\n      var headerH = detectFixedHeaderH();\n      bar.style.top = headerH + 'px';\n      main.style.paddingTop = (bar.offsetHeight + 16) + 'px';\n    }\n    setTimeout(update, 150);\n    window.addEventListener('resize', update, { passive: true });\n  }\n\n  \/\/ \u2500\u2500 Init \u2500\u2500\n  history.replaceState(\n    { slug: '', name: 'Cat\u00e1logo', page: 1, search: '' },\n    '',\n    window.location.href\n  );\n  readUrlParams();\n  updateBreadcrumb();\n  updateSearchPlaceholder();\n  loadProducts();\n  initSearch();\n  initObserver();\n  initStickySidebar();\n  initStickyTopbar();\n  initMobBar();\n})();\n<\/script>\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>Todo o Equipamento Equipamento Todo o Equipamento \u2014 In\u00edcio \u203a Aluguer de Equipamento \u203a Cat\u00e1logo \u203a Cat\u00e1logo Por nome ? Por pre\u00e7o ? A carregar equipamento\u2026 A carregar<\/p>\n","protected":false},"author":233335655,"featured_media":0,"parent":23632,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-23657","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.8 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Rental Catalog | Comuna Studios &amp; Equipment Rental<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/rental-catalog\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rental Catalog\" \/>\n<meta property=\"og:description\" content=\"Todo o Equipamento Equipamento Todo o Equipamento \u2014 In\u00edcio \u203a Aluguer de Equipamento \u203a Cat\u00e1logo \u203a Cat\u00e1logo Por nome ? Por pre\u00e7o ? A carregar equipamento\u2026 A carregar\" \/>\n<meta property=\"og:url\" content=\"https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/rental-catalog\/\" \/>\n<meta property=\"og:site_name\" content=\"Comuna Studios &amp; Equipment Rental\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/comuna.rental\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-16T16:47:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/comuna.pt\/wp-content\/uploads\/2023\/08\/r2-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/rental-main-page-pt\\\/rental-catalog\\\/\",\"url\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/rental-main-page-pt\\\/rental-catalog\\\/\",\"name\":\"Rental Catalog | Comuna Studios &amp; Equipment Rental\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/#website\"},\"datePublished\":\"2026-06-04T13:36:40+00:00\",\"dateModified\":\"2026-06-16T16:47:24+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/rental-main-page-pt\\\/rental-catalog\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/rental-main-page-pt\\\/rental-catalog\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/rental-main-page-pt\\\/rental-catalog\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rental MAIN PAGE &#8211; PT\",\"item\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/rental-main-page-pt\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Rental Catalog\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/#website\",\"url\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/\",\"name\":\"Comuna Rental House\",\"description\":\"Photo studios, Podcast &amp; Equipment Rental\",\"publisher\":{\"@id\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/#organization\"},\"alternateName\":\"Comuna Filmmaking Equipment Rental\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/#organization\",\"name\":\"Comuna Rental House\",\"url\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/comuna.pt\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/comuna_logo_website.png\",\"contentUrl\":\"https:\\\/\\\/comuna.pt\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/comuna_logo_website.png\",\"width\":2000,\"height\":262,\"caption\":\"Comuna Rental House\"},\"image\":{\"@id\":\"https:\\\/\\\/comuna.pt\\\/pt-pt\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"http:\\\/\\\/facebook.com\\\/comuna.rental\",\"https:\\\/\\\/www.instagram.com\\\/comuna_rental\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/96410498\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Rental Catalog | Comuna Studios &amp; Equipment Rental","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/rental-catalog\/","og_locale":"pt_PT","og_type":"article","og_title":"Rental Catalog","og_description":"Todo o Equipamento Equipamento Todo o Equipamento \u2014 In\u00edcio \u203a Aluguer de Equipamento \u203a Cat\u00e1logo \u203a Cat\u00e1logo Por nome ? Por pre\u00e7o ? A carregar equipamento\u2026 A carregar","og_url":"https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/rental-catalog\/","og_site_name":"Comuna Studios &amp; Equipment Rental","article_publisher":"http:\/\/facebook.com\/comuna.rental","article_modified_time":"2026-06-16T16:47:24+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/comuna.pt\/wp-content\/uploads\/2023\/08\/r2-scaled.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Tempo estimado de leitura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/rental-catalog\/","url":"https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/rental-catalog\/","name":"Rental Catalog | Comuna Studios &amp; Equipment Rental","isPartOf":{"@id":"https:\/\/comuna.pt\/pt-pt\/#website"},"datePublished":"2026-06-04T13:36:40+00:00","dateModified":"2026-06-16T16:47:24+00:00","breadcrumb":{"@id":"https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/rental-catalog\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/rental-catalog\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/rental-catalog\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/comuna.pt\/pt-pt\/"},{"@type":"ListItem","position":2,"name":"Rental MAIN PAGE &#8211; PT","item":"https:\/\/comuna.pt\/pt-pt\/rental-main-page-pt\/"},{"@type":"ListItem","position":3,"name":"Rental Catalog"}]},{"@type":"WebSite","@id":"https:\/\/comuna.pt\/pt-pt\/#website","url":"https:\/\/comuna.pt\/pt-pt\/","name":"Comuna Rental House","description":"Photo studios, Podcast &amp; Equipment Rental","publisher":{"@id":"https:\/\/comuna.pt\/pt-pt\/#organization"},"alternateName":"Comuna Filmmaking Equipment Rental","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/comuna.pt\/pt-pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/comuna.pt\/pt-pt\/#organization","name":"Comuna Rental House","url":"https:\/\/comuna.pt\/pt-pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/comuna.pt\/pt-pt\/#\/schema\/logo\/image\/","url":"https:\/\/comuna.pt\/wp-content\/uploads\/2024\/03\/comuna_logo_website.png","contentUrl":"https:\/\/comuna.pt\/wp-content\/uploads\/2024\/03\/comuna_logo_website.png","width":2000,"height":262,"caption":"Comuna Rental House"},"image":{"@id":"https:\/\/comuna.pt\/pt-pt\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/facebook.com\/comuna.rental","https:\/\/www.instagram.com\/comuna_rental","https:\/\/www.linkedin.com\/company\/96410498"]}]}},"_links":{"self":[{"href":"https:\/\/comuna.pt\/pt-pt\/wp-json\/wp\/v2\/pages\/23657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/comuna.pt\/pt-pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/comuna.pt\/pt-pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/comuna.pt\/pt-pt\/wp-json\/wp\/v2\/users\/233335655"}],"replies":[{"embeddable":true,"href":"https:\/\/comuna.pt\/pt-pt\/wp-json\/wp\/v2\/comments?post=23657"}],"version-history":[{"count":0,"href":"https:\/\/comuna.pt\/pt-pt\/wp-json\/wp\/v2\/pages\/23657\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/comuna.pt\/pt-pt\/wp-json\/wp\/v2\/pages\/23632"}],"wp:attachment":[{"href":"https:\/\/comuna.pt\/pt-pt\/wp-json\/wp\/v2\/media?parent=23657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}