{"id":29359,"date":"2021-05-25T09:30:23","date_gmt":"2021-05-25T09:30:23","guid":{"rendered":"http:\/\/portatrad.e6318.servidornet.com\/accueil\/"},"modified":"2026-11-11T08:58:22","modified_gmt":"2026-11-11T08:58:22","slug":"accueil","status":"publish","type":"page","link":"https:\/\/www.portamediterranea.com\/fr\/","title":{"rendered":"Accueil"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n.ov-hidden {overflow:hidden;}\n#pmh4{--ola:#359caf;--olo:#2a8191;--tinta:#13262b;--gris:#5b6e73;background:#f4f7f8;padding:clamp(28px,5vh,72px) 0;font-family:Montserrat,Helvetica,Arial,sans-serif}\n#pmh4 *{box-sizing:border-box}\n#pmh4 .rej{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,80px);align-items:center;max-width:1714px;margin:0 auto;padding:0 16px}\n#pmh4 .etq{font:600 11px Montserrat,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--olo)}\n#pmh4 .tit{font-family:Fraunces,Georgia,serif;font-weight:300;font-size:clamp(36px,4.4vw,68px);line-height:1.03;margin:18px 0 22px;color:var(--tinta);text-transform:none;letter-spacing:0}\n#pmh4 .tit strong{font-weight:300;font-style:italic;color:var(--ola)}\n#pmh4 p.t{max-width:52ch;font-size:14.5px;line-height:1.7;color:var(--gris);margin:0 0 14px}\n#pmh4 p.t strong{color:var(--tinta);font-weight:600}\n#pmh4 .btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}\n#pmh4 .b{display:inline-flex;align-items:center;padding:15px 26px;font:600 12px Montserrat,sans-serif;letter-spacing:.12em;text-transform:uppercase;background:var(--ola);color:#fff!important;text-decoration:none;border:1px solid var(--ola);transition:background .2s}\n#pmh4 .b:hover{background:var(--olo)}\n#pmh4 .b.l{background:transparent;color:var(--tinta)!important;border-color:var(--tinta)}\n#pmh4 .b.l:hover{background:var(--tinta);color:#fff!important}\n#pmh4 .mos{position:relative;display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:min(66vh,540px);min-height:380px}\n#pmh4 .mos a{display:block;background-size:cover;background-position:center;position:relative;overflow:hidden}\n#pmh4 .mos a span{position:absolute;left:0;bottom:0;right:0;padding:26px 14px 10px;background:linear-gradient(transparent,rgba(15,45,55,.75));color:#fff;font:600 10px Montserrat,sans-serif;letter-spacing:.16em;text-transform:uppercase}\n#pmh4 .m1{grid-row:1\/3;border-radius:200px 200px 0 0}\n#pmh4 .tj{position:absolute;left:-26px;bottom:44px;background:#fff;padding:16px 22px;box-shadow:0 18px 40px -18px rgba(15,45,55,.5);min-width:190px}\n#pmh4 .tj small{font:600 9.5px Montserrat,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}\n#pmh4 .tj b{display:block;font:300 24px Fraunces,Georgia,serif;margin-top:2px;color:var(--olo)}\n@media(max-width:860px){#pmh4 .rej{grid-template-columns:1fr}#pmh4 .tj{left:10px}#pmh4 .mos{order:-1;height:56vh}}\n<\/style>\n<section id=\"pmh4\" aria-label=\"Programmes \u00e0 la une\"><div class=\"rej\"><div><span class=\"etq\">Costa del Azahar<\/span><h1 class=\"tit\">Programmes neufs \u00e0&nbsp;<strong>Alcossebre<\/strong><\/h1>\n<p class=\"t\">Chez&nbsp;<strong>Porta Mediterr\u00e1nea Homes<\/strong>&nbsp;nous misons sur la qualit\u00e9 de vie et le confort. C\u2019est pourquoi tous nos projets sont con\u00e7us pour que vous profitiez pleinement de votre temps libre.<\/p>\n<p class=\"t\">Nous avons cr\u00e9\u00e9 des espaces de r\u00eave avec nos&nbsp;<strong>programmes neufs<\/strong>, id\u00e9als pour y vivre et pour que vous et vos proches profitiez d\u2019un logement tout confort, pr\u00e8s de la plage.<\/p>\n<div class=\"btns\"><a class=\"b\" href=\"\/fr\/nouveaux-logements-a-vendre\/\">Voir les programmes \u2192<\/a><a class=\"b l\" href=\"tel:+34964090154\">Appeler \u00b7 964 09 01 54<\/a><\/div><\/div>\n<div class=\"mos\"><a class=\"m1 pmh4-foto\" href=\"\/fr\/nouveaux-logements-a-vendre\/residence-the-edge\/\" style=\"background-image:url(https:\/\/www.portamediterranea.com\/wp-content\/uploads\/2024\/02\/promociones-theedge.webp)\"><span>The Edge<\/span><\/a>\n<a class=\"pmh4-foto\" href=\"\/fr\/nouveaux-logements-a-vendre\/batiment-porta-dirta\/\" style=\"background-image:url(https:\/\/www.portamediterranea.com\/wp-content\/uploads\/2024\/02\/porta-dirta.webp)\"><span>Porta d\u2019Irta<\/span><\/a>\n<a class=\"pmh4-foto\" href=\"\/fr\/nouveaux-logements-a-vendre\/batiment-porta-dirta\/\" style=\"background-image:url(https:\/\/www.portamediterranea.com\/wp-content\/uploads\/2024\/02\/porta-dirta-slider-1.webp)\"><span>Porta d\u2019Irta \u00b7 au coucher du soleil<\/span><\/a>\n<div class=\"tj\"><small>The Edge \u00b7 \u00e0 partir de<\/small><b>415 000 \u20ac<\/b><\/div><\/div><\/div><\/section>\n\n\n\n<style>\n.pmk {\n  --pmk-max: 1714px;\n  --pmk-pad: 16px;\n  --pmk-pad-v: 96px;\n  --pmk-ink: #1a1a1a;\n  --pmk-mute: #6b6b6b;\n  --pmk-soft: #ededed;\n  --pmk-line: #e0e0e0;\n  --pmk-bg: #fafafa;\n  --pmk-accent: #0ec2ff;\n  --pmk-dur: 5000ms;\n  --pmk-fade: 1000ms;\n  width: 100%;\n  background-color: #ffffff;\n}\n\n.pmk *,\n.pmk *::before,\n.pmk *::after { box-sizing: border-box; }\n\n.pmk__wrap {\n  width: 100%;\n  max-width: var(--pmk-max);\n  margin-left: auto;\n  margin-right: auto;\n  padding: var(--pmk-pad-v) var(--pmk-pad);\n}\n\n.pmk__head { margin-bottom: 48px; }\n\n.pmk__rule {\n  width: 44px;\n  height: 2px;\n  margin-bottom: 20px;\n  background-color: var(--pmk-accent);\n}\n\n.pmk__eyebrow {\n  margin: 0 0 12px;\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .26em;\n  text-transform: uppercase;\n  color: var(--pmk-mute);\n}\n\n.pmk__title {\n  margin: 0;\n  font-size: clamp(26px, 2.4vw, 40px);\n  font-weight: 300;\n  line-height: 1.1;\n  letter-spacing: -.01em;\n  color: var(--pmk-ink);\n}\n\n.pmk__title strong {\n  display: block;\n  font-weight: 600;\n}\n\n.pmk__grid {\n  display: grid;\n  grid-template-columns: 320px minmax(0, 1fr);\n  column-gap: 56px;\n  align-items: start;\n}\n\n.pmk__index {\n  display: flex;\n  flex-direction: column;\n  border-top: 1px solid var(--pmk-soft);\n}\n\n.pmk__item {\n  position: relative;\n  display: grid;\n  grid-template-columns: 34px minmax(0, 1fr);\n  align-items: start;\n  width: 100%;\n  margin: 0;\n  padding: 18px 4px 18px 16px;\n  border: 0;\n  border-bottom: 1px solid var(--pmk-soft);\n  background: none;\n  font: inherit;\n  text-align: left;\n  cursor: pointer;\n}\n\n.pmk__item::before {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  width: 2px;\n  background-color: var(--pmk-accent);\n  transform: scaleY(0);\n  transform-origin: top;\n  transition: transform 380ms cubic-bezier(.2, .7, .3, 1);\n}\n\n.pmk__item[aria-selected=\"true\"]::before { transform: scaleY(1); }\n\n.pmk__num {\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .1em;\n  line-height: 1.9;\n  color: var(--pmk-line);\n  transition: color 300ms ease;\n}\n\n.pmk__item:hover .pmk__num { color: var(--pmk-mute); }\n.pmk__item[aria-selected=\"true\"] .pmk__num { color: var(--pmk-accent); }\n\n.pmk__itemname {\n  display: block;\n  font-size: 16px;\n  font-weight: 500;\n  line-height: 1.3;\n  color: var(--pmk-mute);\n  transition: color 300ms ease, transform 380ms cubic-bezier(.2, .7, .3, 1);\n}\n\n.pmk__item:hover .pmk__itemname { color: var(--pmk-ink); transform: translateX(4px); }\n\n.pmk__item[aria-selected=\"true\"] .pmk__itemname {\n  font-weight: 600;\n  color: var(--pmk-ink);\n  transform: translateX(4px);\n}\n\n.pmk__itemloc {\n  display: block;\n  overflow: hidden;\n  max-height: 0;\n  margin-top: 0;\n  font-size: 12px;\n  font-weight: 400;\n  letter-spacing: .02em;\n  color: var(--pmk-mute);\n  opacity: 0;\n  transform: translateX(4px);\n  transition: max-height 380ms ease, opacity 300ms ease, margin-top 380ms ease;\n}\n\n.pmk__item[aria-selected=\"true\"] .pmk__itemloc {\n  max-height: 32px;\n  margin-top: 5px;\n  opacity: 1;\n}\n\n.pmk__item:focus-visible {\n  outline: 2px solid var(--pmk-accent);\n  outline-offset: 2px;\n}\n\n.pmk__all {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  margin-top: 24px;\n  padding: 0 0 0 16px;\n  font-size: 12px;\n  font-weight: 600;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  text-decoration: none;\n  color: var(--pmk-mute);\n  transition: color 260ms ease, gap 260ms ease;\n}\n\n.pmk__all:hover { color: var(--pmk-ink); gap: 13px; }\n\n.pmk__all svg {\n  width: 15px;\n  height: 15px;\n  fill: none;\n  stroke: currentColor;\n  stroke-width: 1.7;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n.pmk__stage {\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  width: 100%;\n  border-radius: 10px;\n  background-color: var(--pmk-soft);\n  aspect-ratio: 16 \/ 9;\n  max-height: 500px;\n  touch-action: pan-y;\n}\n\n.pmk__stage::after {\n  content: \"\";\n  position: absolute;\n  inset: auto 0 0 0;\n  height: 45%;\n  z-index: 1;\n  background: linear-gradient(to top, rgba(6, 24, 29, .45), rgba(6, 24, 29, 0));\n  pointer-events: none;\n}\n\n.pmk__img {\n  position: absolute;\n  inset: 0;\n  background-size: cover;\n  background-position: center;\n  background-repeat: no-repeat;\n  opacity: 0;\n  transition: opacity var(--pmk-fade) ease;\n}\n\n.pmk__img.is-on {\n  opacity: 1;\n  animation: pmkZoom 7000ms linear forwards;\n}\n\n@keyframes pmkZoom {\n  from { transform: scale(1.055); }\n  to   { transform: scale(1); }\n}\n\n.pmk__bars {\n  position: absolute;\n  z-index: 3;\n  top: 18px;\n  right: 18px;\n  display: flex;\n  gap: 6px;\n}\n\n.pmk__bar {\n  width: 28px;\n  height: 3px;\n  padding: 0;\n  border: 0;\n  border-radius: 2px;\n  overflow: hidden;\n  background-color: rgba(255, 255, 255, .35);\n  box-shadow: 0 0 10px rgba(0, 0, 0, .25);\n  cursor: pointer;\n}\n\n.pmk__fill {\n  display: block;\n  width: 100%;\n  height: 100%;\n  background-color: #ffffff;\n  transform: scaleX(0);\n  transform-origin: left;\n}\n\n.pmk__bar.is-done .pmk__fill { transform: scaleX(1); }\n.pmk__bar.is-live .pmk__fill { animation: pmkFill var(--pmk-dur) linear forwards; }\n.pmk__stage.is-paused .pmk__fill { animation-play-state: paused; }\n\n@keyframes pmkFill {\n  from { transform: scaleX(0); }\n  to   { transform: scaleX(1); }\n}\n\n.pmk__arrow {\n  position: absolute;\n  z-index: 3;\n  top: 50%;\n  width: 42px;\n  height: 42px;\n  margin-top: -21px;\n  padding: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border: 1px solid rgba(255, 255, 255, .5);\n  border-radius: 50%;\n  background-color: rgba(255, 255, 255, .14);\n  backdrop-filter: blur(6px);\n  color: #ffffff;\n  cursor: pointer;\n  opacity: 0;\n  transition: opacity 300ms ease, background-color 300ms ease, transform 300ms ease;\n}\n\n.pmk__stage:hover .pmk__arrow { opacity: 1; }\n.pmk__arrow:focus-visible { opacity: 1; outline: 2px solid #ffffff; outline-offset: 2px; }\n.pmk__arrow:hover { background-color: rgba(255, 255, 255, .3); }\n.pmk__arrow--prev { left: 16px; }\n.pmk__arrow--next { right: 16px; }\n.pmk__arrow--prev:hover { transform: translateX(-3px); }\n.pmk__arrow--next:hover { transform: translateX(3px); }\n\n.pmk__arrow svg {\n  width: 18px;\n  height: 18px;\n  fill: none;\n  stroke: currentColor;\n  stroke-width: 1.7;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n.pmk__card {\n  position: relative;\n  z-index: 4;\n  max-width: 660px;\n  margin: -76px 0 0 44px;\n  padding: 28px 32px 26px;\n  border-radius: 10px;\n  background-color: #ffffff;\n  box-shadow: 0 26px 54px -26px rgba(0, 0, 0, .3);\n}\n\n.pmk__logo {\n  position: absolute;\n  top: 24px;\n  right: 28px;\n  width: auto;\n  height: 50px;\n  max-width: 140px;\n  object-fit: contain;\n  object-position: right center;\n  opacity: .9;\n  pointer-events: none;\n}\n\n.pmk__name {\n  position: relative;\n  max-width: calc(100% - 150px);\n  margin: 0;\n  font-size: clamp(19px, 1.4vw, 24px);\n  font-weight: 600;\n  line-height: 1.2;\n  letter-spacing: .01em;\n  text-transform: uppercase;\n  color: var(--pmk-ink);\n}\n\n.pmk__loc {\n  position: relative;\n  margin: 8px 0 0;\n  font-size: 14px;\n  letter-spacing: .02em;\n  color: var(--pmk-mute);\n}\n\n.pmk__meta {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin: 18px 0 0;\n  padding: 0;\n}\n\n.pmk__meta span {\n  padding: 4px 13px;\n  border-radius: 100px;\n  border: 1px solid var(--pmk-line);\n  background-color: var(--pmk-bg);\n  font-size: 12px;\n  letter-spacing: .03em;\n  color: var(--pmk-mute);\n}\n\n.pmk__meta span.is-price {\n  border-color: var(--pmk-ink);\n  background-color: #ffffff;\n  font-weight: 600;\n  color: var(--pmk-ink);\n}\n\n.pmk__cta {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  margin-top: 24px;\n  padding: 13px 26px;\n  border: 1px solid var(--pmk-ink);\n  border-radius: 3px;\n  background-color: var(--pmk-ink);\n  font-size: 12px;\n  font-weight: 600;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  text-decoration: none;\n  color: #ffffff;\n  transition: background-color 300ms ease, border-color 300ms ease, color 300ms ease, gap 300ms ease, box-shadow 300ms ease;\n}\n\n.pmk__cta:hover,\n.pmk__cta:focus-visible {\n  gap: 16px;\n  border-color: var(--pmk-accent);\n  background-color: var(--pmk-accent);\n  color: #06181d;\n  box-shadow: 0 14px 30px -14px rgba(14, 194, 255, .55);\n}\n\n.pmk__cta svg {\n  width: 16px;\n  height: 16px;\n  fill: none;\n  stroke: currentColor;\n  stroke-width: 1.7;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n.pmk__note {\n  margin: 14px 0 0;\n  font-size: 11px;\n  line-height: 1.5;\n  color: #9a9a9a;\n}\n\n.pmk__desc {\n  max-width: 78ch;\n  margin: 30px 0 0 44px;\n  font-size: 15px;\n  line-height: 1.7;\n  color: var(--pmk-mute);\n}\n\n.pmk__card,\n.pmk__desc { transition: opacity 300ms ease, transform 300ms cubic-bezier(.2, .7, .3, 1); }\n.pmk__card.is-out { opacity: 0; transform: translateY(12px); }\n.pmk__desc.is-out { opacity: 0; transform: translateY(12px); }\n\n@media (max-width: 980px) {\n  .pmk { --pmk-pad-v: 48px; }\n\n  .pmk__head { margin-bottom: 28px; }\n\n  .pmk__grid {\n    grid-template-columns: minmax(0, 1fr);\n    row-gap: 22px;\n  }\n\n  .pmk__index {\n    flex-direction: row;\n    border-top: 0;\n    border-bottom: 1px solid var(--pmk-soft);\n    overflow-x: auto;\n    scrollbar-width: none;\n  }\n\n  .pmk__index::-webkit-scrollbar { display: none; }\n\n  .pmk__item {\n    flex: 0 0 auto;\n    width: auto;\n    grid-template-columns: auto auto;\n    column-gap: 8px;\n    align-items: center;\n    padding: 12px 16px 12px 14px;\n    border-bottom: 0;\n    white-space: nowrap;\n  }\n\n  .pmk__item::before {\n    left: 0;\n    right: 0;\n    top: auto;\n    bottom: 0;\n    width: auto;\n    height: 2px;\n    transform: scaleX(0);\n    transform-origin: left;\n  }\n\n  .pmk__item[aria-selected=\"true\"]::before { transform: scaleX(1); }\n\n  .pmk__num { line-height: 1.4; }\n  .pmk__itemname { font-size: 14px; }\n  .pmk__item:hover .pmk__itemname { transform: none; }\n  .pmk__item[aria-selected=\"true\"] .pmk__itemname { transform: none; }\n  .pmk__itemloc { display: none; }\n  .pmk__all { display: none; }\n\n  .pmk__stage { aspect-ratio: 4 \/ 3; border-radius: 8px; }\n  .pmk__arrow { display: none; }\n\n  .pmk__card {\n    max-width: none;\n    margin: -34px 12px 0;\n    padding: 22px 20px;\n    border-radius: 8px;\n  }\n\n  .pmk__logo { height: 36px; max-width: 100px; top: 20px; right: 18px; }\n  .pmk__name { max-width: calc(100% - 106px); }\n  .pmk__cta { width: 100%; justify-content: center; }\n  .pmk__desc { margin: 24px 0 0; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .pmk__img,\n  .pmk__card,\n  .pmk__desc,\n  .pmk__itemname,\n  .pmk__itemloc,\n  .pmk__item::before { transition-duration: 1ms; }\n  .pmk__img.is-on { animation: none; }\n  .pmk__bar.is-live .pmk__fill { animation: none; transform: scaleX(1); }\n}\n<\/style>\n\n<section class=\"pmk\" id=\"pmk-root\" aria-label=\"Programmes en vente\">\n  <div class=\"pmk__wrap\">\n    <header class=\"pmk__head\">\n      <div class=\"pmk__rule\"><\/div>\n      <p class=\"pmk__eyebrow\">C\u2019est le moment d\u2019acheter<\/p>\n      <h2 class=\"pmk__title\">D\u00e9couvrez les projets<strong>en phase de remise des cl\u00e9s<\/strong><\/h2>\n    <\/header>\n\n    <div class=\"pmk__grid\">\n      <div>\n        <nav class=\"pmk__index\" id=\"pmk-index\" role=\"tablist\" aria-orientation=\"vertical\" aria-label=\"Choisir un programme\"><\/nav>\n        <a class=\"pmk__all\" href=\"https:\/\/www.portamediterranea.com\/fr\/nouveaux-logements-a-vendre\/\">\n          Voir tous les programmes\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 12h15m0 0-6-6m6 6-6 6\"><\/path><\/svg>\n        <\/a>\n      <\/div>\n\n      <div>\n        <div class=\"pmk__stage\" id=\"pmk-stage\">\n          <div class=\"pmk__bars\" id=\"pmk-bars\" role=\"group\" aria-label=\"Choisir une image\"><\/div>\n          <button type=\"button\" class=\"pmk__arrow pmk__arrow--prev\" id=\"pmk-prev\" aria-label=\"Image pr\u00e9c\u00e9dente\">\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M15 5l-7 7 7 7\"><\/path><\/svg>\n          <\/button>\n          <button type=\"button\" class=\"pmk__arrow pmk__arrow--next\" id=\"pmk-next\" aria-label=\"Image suivante\">\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M9 5l7 7-7 7\"><\/path><\/svg>\n          <\/button>\n        <\/div>\n\n        <div class=\"pmk__card\" id=\"pmk-card\" role=\"tabpanel\" tabindex=\"0\">\n          <img decoding=\"async\" class=\"pmk__logo\" id=\"pmk-logo\" src=\"\" alt=\"\" aria-hidden=\"true\">\n          <h3 class=\"pmk__name\" id=\"pmk-name\"><\/h3>\n          <p class=\"pmk__loc\" id=\"pmk-loc\"><\/p>\n          <div class=\"pmk__meta\" id=\"pmk-meta\"><\/div>\n          <a class=\"pmk__cta\" id=\"pmk-cta\" href=\"#\">\n            Voir le projet\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 12h15m0 0-6-6m6 6-6 6\"><\/path><\/svg>\n          <\/a>\n          <p class=\"pmk__note\">Place de parking et cave incluses. Taxes non incluses.<\/p>\n        <\/div>\n\n        <p class=\"pmk__desc\" id=\"pmk-desc\"><\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(function () {\n  var UP = 'https:\/\/www.portamediterranea.com\/wp-content\/uploads\/';\n  var SITE = 'https:\/\/www.portamediterranea.com\/fr\/nouveaux-logements-a-vendre\/';\n\n  var DATA = [\n    {\n      name: 'R\u00e9sidence The Edge',\n      title: 'R\u00c9SIDENCE THE EDGE',\n      loc: 'Punta del Cargador \u2013 Playa Romana',\n      meta: ['2 et 3 chambres', '29 logements'],\n      price: '\u00c0 partir de 415 000 \u20ac',\n      href: SITE + 'urbanizacion-the-edge\/',\n      logo: UP + '2021\/06\/logo-the-edge.png',\n      desc: 'Un ensemble r\u00e9sidentiel spectaculaire, id\u00e9alement situ\u00e9 \u00e0 Alcossebre, entre deux des plus belles plages des environs, o\u00f9 la piscine se fond avec la mer dans une m\u00eame ligne harmonieuse. Avec seulement 29 logements exclusifs, son architecture respecte les codes contemporains les plus avant-gardistes et la construction durable dans chaque d\u00e9tail, et nos clients l\u2019appr\u00e9cient tout particuli\u00e8rement : de quoi en \u00eatre fiers partout o\u00f9 nous allons.',\n      imgs: [\n        UP + '2024\/02\/slider-the-edge-noctura.webp',\n        UP + '2021\/08\/slider-residencial-the-edge.jpg',\n        UP + '2021\/06\/The-Edge1.jpg'\n      ]\n    },\n    {\n      name: 'Domaine Porta d\u2019Irta',\n      title: 'DOMAINE PORTA D\u2019IRTA',\n      loc: 'Playas de Ribamar \u2013 Cala Blanca',\n      meta: ['2 et 3 chambres', '36 logements'],\n      price: '\u00c0 partir de 319 800 \u20ac',\n      href: SITE + 'urbanizacion-porta-dirta\/',\n      logo: UP + '2023\/12\/logo-porta-d-irta-mediterranea.png',\n      desc: 'Un ensemble r\u00e9sidentiel sp\u00e9cialement con\u00e7u pour profiter de la vie en plein air. Au pied d\u2019une sierra class\u00e9e Parc naturel prot\u00e9g\u00e9 et au bord de la M\u00e9diterran\u00e9e, avec de superbes criques qui permettent de choisir entre l\u2019animation des plages et la tranquillit\u00e9 de ces lieux pr\u00e9serv\u00e9s. Logements de 2 et 3 chambres, avec des attiques offrant des vues spectaculaires et des rez-de-chauss\u00e9e dont l\u2019espace priv\u00e9 se prolonge dans les vastes parties communes : jardins, piscine et court de padel.',\n      imgs: [\n        UP + '2024\/02\/porta-dirta-slider-1.webp',\n        UP + '2023\/11\/porta-mediterranea-dirta-003.jpg',\n        UP + '2023\/11\/porta-mediterranea-dirta-008.jpg'\n      ]\n    }\n  ];\n\n  var PHOTO_MS = 5000;\n\n  function pad(n) {\n    if (n > 9) { return String(n); }\n    return '0' + n;\n  }\n\n  function init() {\n    var root = document.getElementById('pmk-root');\n    if (!root) { return; }\n    if (root.getAttribute('data-ready') === '1') { return; }\n    root.setAttribute('data-ready', '1');\n    root.style.setProperty('--pmk-dur', PHOTO_MS + 'ms');\n\n    var index = document.getElementById('pmk-index');\n    var stage = document.getElementById('pmk-stage');\n    var barsBox = document.getElementById('pmk-bars');\n    var card = document.getElementById('pmk-card');\n    var elLogo = document.getElementById('pmk-logo');\n    var elName = document.getElementById('pmk-name');\n    var elLoc = document.getElementById('pmk-loc');\n    var elMeta = document.getElementById('pmk-meta');\n    var elCta = document.getElementById('pmk-cta');\n    var elDesc = document.getElementById('pmk-desc');\n    var btnPrev = document.getElementById('pmk-prev');\n    var btnNext = document.getElementById('pmk-next');\n\n    var reduce = false;\n    if (window.matchMedia) {\n      reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    }\n\n    DATA.forEach(function (p) {\n      p.imgs.forEach(function (src) {\n        var pre = new Image();\n        pre.src = src;\n      });\n      var pl = new Image();\n      pl.src = p.logo;\n    });\n\n    var tabs = [];\n    var layers = [];\n    var bars = [];\n    var current = -1;\n    var photo = 0;\n    var timer = null;\n    var inView = true;\n    var hovering = false;\n\n    function stopTimer() {\n      if (timer) { clearInterval(timer); timer = null; }\n      stage.classList.add('is-paused');\n    }\n\n    function startTimer() {\n      if (timer) { clearInterval(timer); timer = null; }\n      if (reduce) { return; }\n      if (!inView) { return; }\n      if (hovering) { return; }\n      if (document.hidden) { return; }\n      if (layers.length === 1) { return; }\n      stage.classList.remove('is-paused');\n      timer = setInterval(nextPhoto, PHOTO_MS);\n    }\n\n    function paintPhoto(k) {\n      layers.forEach(function (L, j) {\n        if (j === k) { L.classList.add('is-on'); } else { L.classList.remove('is-on'); }\n      });\n      bars.forEach(function (b, j) {\n        b.classList.remove('is-done');\n        b.classList.remove('is-live');\n        b.setAttribute('aria-current', j === k ? 'true' : 'false');\n        if (k > j) { b.classList.add('is-done'); }\n      });\n      var live = bars[k];\n      if (live) {\n        var fill = live.firstChild;\n        if (fill) {\n          fill.style.animation = 'none';\n          void fill.offsetWidth;\n          fill.style.animation = '';\n        }\n        live.classList.add('is-live');\n      }\n      photo = k;\n    }\n\n    function nextPhoto() { paintPhoto((photo + 1) % layers.length); }\n    function prevPhoto() { paintPhoto((photo - 1 + layers.length) % layers.length); }\n\n    function buildStage(p) {\n      layers.forEach(function (L) {\n        if (L.parentNode) { L.parentNode.removeChild(L); }\n      });\n      layers = [];\n      while (barsBox.firstChild) { barsBox.removeChild(barsBox.firstChild); }\n      bars = [];\n\n      p.imgs.forEach(function (src, j) {\n        var L = document.createElement('div');\n        L.className = 'pmk__img';\n        L.style.backgroundImage = 'url(\"' + src + '\")';\n        stage.insertBefore(L, barsBox);\n        layers.push(L);\n\n        var b = document.createElement('button');\n        b.type = 'button';\n        b.className = 'pmk__bar';\n        b.setAttribute('aria-label', 'Image ' + (j + 1));\n        var fill = document.createElement('span');\n        fill.className = 'pmk__fill';\n        b.appendChild(fill);\n        b.addEventListener('click', function () {\n          paintPhoto(j);\n          startTimer();\n        });\n        barsBox.appendChild(b);\n        bars.push(b);\n      });\n\n      if (p.imgs.length === 1) { barsBox.style.display = 'none'; }\n      else { barsBox.style.display = ''; }\n\n      photo = 0;\n      paintPhoto(0);\n    }\n\n    function fillInfo(p) {\n      elLogo.src = p.logo;\n      elLogo.alt = p.name;\n      elName.textContent = p.title;\n      elLoc.textContent = p.loc;\n      elDesc.textContent = p.desc;\n      elCta.href = p.href;\n\n      while (elMeta.firstChild) { elMeta.removeChild(elMeta.firstChild); }\n      p.meta.forEach(function (m) {\n        var sp = document.createElement('span');\n        sp.textContent = m;\n        elMeta.appendChild(sp);\n      });\n      if (p.price) {\n        var pr = document.createElement('span');\n        pr.className = 'is-price';\n        pr.textContent = p.price;\n        elMeta.appendChild(pr);\n      }\n    }\n\n    function ensureVisible(b) {\n      var box = index.getBoundingClientRect();\n      var r = b.getBoundingClientRect();\n      if (box.left > r.left) {\n        index.scrollLeft = index.scrollLeft - (box.left - r.left) - 16;\n      }\n      if (r.right > box.right) {\n        index.scrollLeft = index.scrollLeft + (r.right - box.right) + 16;\n      }\n    }\n\n    function select(idx, focusTab) {\n      if (idx === current) { return; }\n      current = idx;\n\n      tabs.forEach(function (b, j) {\n        var on = (j === idx);\n        b.setAttribute('aria-selected', on ? 'true' : 'false');\n        b.setAttribute('tabindex', on ? '0' : '-1');\n      });\n\n      var p = DATA[idx];\n      card.classList.add('is-out');\n      elDesc.classList.add('is-out');\n      buildStage(p);\n      startTimer();\n\n      setTimeout(function () {\n        fillInfo(p);\n        card.classList.remove('is-out');\n        elDesc.classList.remove('is-out');\n      }, reduce ? 0 : 300);\n\n      ensureVisible(tabs[idx]);\n      if (focusTab) { tabs[idx].focus(); }\n    }\n\n    DATA.forEach(function (p, idx) {\n      var b = document.createElement('button');\n      b.type = 'button';\n      b.className = 'pmk__item';\n      b.setAttribute('role', 'tab');\n      b.setAttribute('aria-selected', 'false');\n      b.setAttribute('tabindex', '-1');\n      b.setAttribute('aria-controls', 'pmk-card');\n\n      var num = document.createElement('span');\n      num.className = 'pmk__num';\n      num.textContent = pad(idx + 1);\n\n      var txt = document.createElement('span');\n      var nm = document.createElement('span');\n      nm.className = 'pmk__itemname';\n      nm.textContent = p.name;\n      var lc = document.createElement('span');\n      lc.className = 'pmk__itemloc';\n      lc.textContent = p.loc;\n      txt.appendChild(nm);\n      txt.appendChild(lc);\n\n      b.appendChild(num);\n      b.appendChild(txt);\n      b.addEventListener('click', function () { select(idx, false); });\n      index.appendChild(b);\n      tabs.push(b);\n    });\n\n    index.addEventListener('keydown', function (e) {\n      var last = DATA.length - 1;\n      if (e.key === 'ArrowDown') { e.preventDefault(); select(current === last ? 0 : current + 1, true); }\n      if (e.key === 'ArrowRight') { e.preventDefault(); select(current === last ? 0 : current + 1, true); }\n      if (e.key === 'ArrowUp') { e.preventDefault(); select(current === 0 ? last : current - 1, true); }\n      if (e.key === 'ArrowLeft') { e.preventDefault(); select(current === 0 ? last : current - 1, true); }\n      if (e.key === 'Home') { e.preventDefault(); select(0, true); }\n      if (e.key === 'End') { e.preventDefault(); select(last, true); }\n    });\n\n    btnPrev.addEventListener('click', function () { prevPhoto(); startTimer(); });\n    btnNext.addEventListener('click', function () { nextPhoto(); startTimer(); });\n\n    stage.addEventListener('mouseenter', function () { hovering = true; stopTimer(); });\n    stage.addEventListener('mouseleave', function () { hovering = false; startTimer(); });\n\n    var touchX = 0;\n    stage.addEventListener('touchstart', function (e) {\n      if (e.touches.length === 1) { touchX = e.touches[0].clientX; }\n    }, { passive: true });\n\n    stage.addEventListener('touchend', function (e) {\n      if (!e.changedTouches.length) { return; }\n      var dx = e.changedTouches[0].clientX - touchX;\n      if (Math.abs(dx) > 45) {\n        if (dx > 0) { prevPhoto(); } else { nextPhoto(); }\n        startTimer();\n      }\n    }, { passive: true });\n\n    document.addEventListener('visibilitychange', function () {\n      if (document.hidden) { stopTimer(); } else { startTimer(); }\n    });\n\n    if (window.IntersectionObserver) {\n      new IntersectionObserver(function (entries) {\n        entries.forEach(function (en) {\n          inView = en.isIntersecting;\n          if (inView) { startTimer(); } else { stopTimer(); }\n        });\n      }, { threshold: 0.2 }).observe(root);\n    }\n\n    select(0, false);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n<\/script>\n\n\n\n\n\n<style>\n.pmq {\n  --pmq-max: 1714px;\n  --pmq-gut: max(16px, calc((100vw - 1714px) \/ 2 + 16px));\n  --pmq-paper: #f7f9fa;\n  --pmq-ink: #14262b;\n  --pmq-mute: #5c6b70;\n  --pmq-dim: #8b979b;\n  --pmq-hair: rgba(20, 38, 43, .14);\n  --pmq-accent: #0ec2ff;\n  --pmq-open: #24d07f;\n  --pmq-shut: #ff9d7a;\n  position: relative;\n  width: 100%;\n  background-color: var(--pmq-paper);\n  color: var(--pmq-ink);\n}\n\n.pmq *,\n.pmq *::before,\n.pmq *::after { box-sizing: border-box; }\n\n.pmq__grid {\n  display: grid;\n  grid-template-columns: minmax(0, 45fr) minmax(0, 55fr);\n  align-items: stretch;\n}\n\n\/* ---------- mitad imagen ---------- *\/\n\n.pmq__visual {\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  min-height: 560px;\n  background-color: #0d2b33;\n}\n\n.pmq__photo {\n  position: absolute;\n  inset: 0;\n  z-index: -2;\n  background-image: url(\"https:\/\/www.portamediterranea.com\/wp-content\/uploads\/2022\/07\/oficina-ventas-porta-mediterranea.jpeg\");\n  background-size: cover;\n  background-position: center;\n  transform: scale(1.04);\n  transition: transform 1200ms cubic-bezier(.2, .7, .3, 1), opacity 500ms ease;\n}\n\n.pmq.is-in .pmq__photo { transform: scale(1); }\n\n.pmq__visual::after {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  z-index: -1;\n  background:\n    linear-gradient(to top, rgba(6, 24, 29, .92) 0%, rgba(6, 24, 29, .68) 34%, rgba(6, 24, 29, .16) 68%, rgba(6, 24, 29, .05) 100%);\n  pointer-events: none;\n  transition: opacity 400ms ease;\n}\n\n.pmq__frame {\n  position: absolute;\n  inset: 0;\n  z-index: 1;\n  width: 100%;\n  height: 100%;\n  border: 0;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity 450ms ease;\n}\n\n.pmq__visual.is-map .pmq__frame { opacity: 1; pointer-events: auto; }\n.pmq__visual.is-map .pmq__photo { opacity: 0; }\n.pmq__visual.is-map::after { opacity: 0; }\n.pmq__visual.is-map .pmq__over { opacity: 0; pointer-events: none; }\n\n.pmq__switch {\n  position: absolute;\n  z-index: 3;\n  top: 26px;\n  right: 26px;\n  display: flex;\n  gap: 3px;\n  padding: 3px;\n  border-radius: 100px;\n  border: 1px solid rgba(255, 255, 255, .3);\n  background-color: rgba(10, 30, 36, .4);\n  backdrop-filter: blur(8px);\n}\n\n.pmq__tab {\n  padding: 7px 15px;\n  border: 0;\n  border-radius: 100px;\n  background-color: transparent;\n  font: inherit;\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: .16em;\n  text-transform: uppercase;\n  color: rgba(255, 255, 255, .72);\n  cursor: pointer;\n  transition: background-color 260ms ease, color 260ms ease;\n}\n\n.pmq__tab[aria-pressed=\"true\"] { background-color: #ffffff; color: #0d2b33; }\n.pmq__tab:focus-visible { outline: 2px solid #ffffff; outline-offset: 2px; }\n\n.pmq__over {\n  position: absolute;\n  z-index: 2;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  padding: 0 40px 46px var(--pmq-gut);\n  color: #ffffff;\n  transition: opacity 400ms ease;\n}\n\n.pmq__badge {\n  display: inline-flex;\n  align-items: center;\n  gap: 8px;\n  margin-bottom: 16px;\n  padding: 6px 14px 6px 11px;\n  border-radius: 100px;\n  border: 1px solid rgba(255, 255, 255, .28);\n  background-color: rgba(255, 255, 255, .1);\n  backdrop-filter: blur(6px);\n  font-size: 10px;\n  font-weight: 700;\n  letter-spacing: .16em;\n  text-transform: uppercase;\n  color: #ffffff;\n}\n\n.pmq__dot {\n  width: 7px;\n  height: 7px;\n  border-radius: 50%;\n  background-color: #ffffff;\n  flex: 0 0 auto;\n}\n\n.pmq__badge.is-open .pmq__dot {\n  background-color: var(--pmq-open);\n  box-shadow: 0 0 0 3px rgba(36, 208, 127, .28);\n}\n\n.pmq__badge.is-shut .pmq__dot {\n  background-color: var(--pmq-shut);\n  box-shadow: 0 0 0 3px rgba(255, 157, 122, .24);\n}\n\n.pmq__vtitle {\n  margin: 0;\n  font-size: clamp(26px, 2.4vw, 38px);\n  font-weight: 300;\n  line-height: 1.05;\n  letter-spacing: -.02em;\n  text-transform: none;\n  color: #ffffff;\n}\n\n.pmq__vtitle strong { font-weight: 600; }\n\n.pmq__addr {\n  margin: 18px 0 0;\n  padding-left: 14px;\n  border-left: 2px solid var(--pmq-accent);\n  font-size: 16px;\n  font-weight: 500;\n  line-height: 1.45;\n  text-transform: none;\n  color: #ffffff;\n}\n\n.pmq__addr span {\n  display: block;\n  margin-top: 3px;\n  font-size: 13px;\n  font-weight: 400;\n  color: rgba(255, 255, 255, .75);\n}\n\n.pmq__acts {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 10px;\n  margin-top: 24px;\n}\n\n.pmq__go,\n.pmq__ring {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  padding: 13px 22px;\n  border-radius: 3px;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  text-decoration: none;\n  transition: background-color 300ms ease, border-color 300ms ease, color 300ms ease, gap 300ms ease, box-shadow 300ms ease;\n}\n\n.pmq__go {\n  border: 1px solid #ffffff;\n  background-color: #ffffff;\n  color: #0d2b33;\n}\n\n.pmq__go:hover,\n.pmq__go:focus-visible {\n  gap: 15px;\n  border-color: var(--pmq-accent);\n  background-color: var(--pmq-accent);\n  color: #06181d;\n  box-shadow: 0 16px 34px -16px rgba(14, 194, 255, .7);\n}\n\n.pmq__ring {\n  border: 1px solid rgba(255, 255, 255, .45);\n  background-color: rgba(255, 255, 255, .08);\n  backdrop-filter: blur(4px);\n  color: #ffffff;\n}\n\n.pmq__ring:hover,\n.pmq__ring:focus-visible { gap: 15px; border-color: #ffffff; background-color: rgba(255, 255, 255, .18); }\n\n.pmq__go svg,\n.pmq__ring svg,\n.pmq__cta svg {\n  width: 15px;\n  height: 15px;\n  fill: none;\n  stroke: currentColor;\n  stroke-width: 1.8;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n\/* ---------- mitad papel ---------- *\/\n\n.pmq__paper {\n  display: flex;\n  align-items: center;\n  background-color: var(--pmq-paper);\n}\n\n.pmq__inner {\n  width: 100%;\n  padding: 58px var(--pmq-gut) 58px 64px;\n}\n\n.pmq__rule {\n  width: 40px;\n  height: 2px;\n  margin-bottom: 16px;\n  background-color: var(--pmq-accent);\n}\n\n.pmq__eyebrow {\n  margin: 0 0 10px;\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .24em;\n  text-transform: uppercase;\n  color: var(--pmq-dim);\n}\n\n.pmq__title {\n  margin: 0 0 22px;\n  font-size: clamp(28px, 3.1vw, 46px);\n  font-weight: 300;\n  line-height: 1.04;\n  letter-spacing: -.02em;\n  text-transform: none;\n  color: var(--pmq-ink);\n}\n\n.pmq__title strong {\n  display: block;\n  font-weight: 600;\n}\n\n.pmq__cols {\n  display: grid;\n  grid-template-columns: repeat(2, minmax(0, 1fr));\n  column-gap: 36px;\n}\n\n.pmq__lead {\n  margin: 0;\n  font-size: 14.5px;\n  line-height: 1.7;\n  text-transform: none;\n  color: var(--pmq-mute);\n}\n\n.pmq__stats {\n  display: flex;\n  gap: 44px;\n  margin-top: 26px;\n  padding-top: 20px;\n  border-top: 1px solid var(--pmq-hair);\n}\n\n.pmq__stat {\n  opacity: 0;\n  transform: translateY(12px);\n  transition: opacity 560ms ease, transform 560ms cubic-bezier(.2, .7, .3, 1);\n}\n\n.pmq.is-in .pmq__stat { opacity: 1; transform: none; }\n.pmq.is-in .pmq__stat:nth-child(1) { transition-delay: 120ms; }\n.pmq.is-in .pmq__stat:nth-child(2) { transition-delay: 210ms; }\n.pmq.is-in .pmq__stat:nth-child(3) { transition-delay: 300ms; }\n\n.pmq__num {\n  display: block;\n  font-size: clamp(30px, 2.6vw, 44px);\n  font-weight: 300;\n  line-height: 1;\n  letter-spacing: -.035em;\n  text-transform: none;\n  color: var(--pmq-ink);\n  font-variant-numeric: tabular-nums;\n}\n\n.pmq__label {\n  display: block;\n  margin-top: 8px;\n  font-size: 10px;\n  font-weight: 600;\n  letter-spacing: .16em;\n  text-transform: uppercase;\n  color: var(--pmq-dim);\n}\n\n.pmq__values {\n  list-style: none;\n  display: grid;\n  row-gap: 10px;\n  margin: 22px 0 0;\n  padding: 20px 0 0!important;\n  border-top: 1px solid var(--pmq-hair);\n}\n\n.pmq__values li {\n  display: grid;\n  grid-template-columns: 19px minmax(0, 1fr);\n  column-gap: 12px;\n  align-items: start;\n  font-size: 13.5px;\n  line-height: 1.55;\n  text-transform: none;\n  color: var(--pmq-mute);\n  opacity: 0;\n  transform: translateY(10px);\n  transition: opacity 520ms ease, transform 520ms cubic-bezier(.2, .7, .3, 1);\n}\n\n.pmq.is-in .pmq__values li { opacity: 1; transform: none; }\n.pmq.is-in .pmq__values li:nth-child(1) { transition-delay: 340ms; }\n.pmq.is-in .pmq__values li:nth-child(2) { transition-delay: 410ms; }\n.pmq.is-in .pmq__values li:nth-child(3) { transition-delay: 480ms; }\n\n.pmq__values li::before { content: none; }\n\n.pmq__values svg {\n  width: 17px;\n  height: 17px;\n  margin-top: 2px;\n  fill: none;\n  stroke: var(--pmq-accent);\n  stroke-width: 2;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n.pmq__values b {\n  font-weight: 600;\n  color: var(--pmq-ink);\n}\n\n.pmq__values em { font-style: normal; }\n\n.pmq__cta {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  margin-top: 24px;\n  padding: 13px 26px;\n  border: 1px solid var(--pmq-ink);\n  border-radius: 3px;\n  background-color: transparent;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  text-decoration: none;\n  color: var(--pmq-ink);\n  transition: background-color 300ms ease, border-color 300ms ease, color 300ms ease, gap 300ms ease, box-shadow 300ms ease;\n}\n\n.pmq__cta:hover,\n.pmq__cta:focus-visible {\n  gap: 15px;\n  border-color: var(--pmq-accent);\n  background-color: var(--pmq-accent);\n  color: #06181d;\n  box-shadow: 0 14px 30px -14px rgba(14, 194, 255, .55);\n}\n\n\/* ---------- responsive ---------- *\/\n\n@media (max-width: 1280px) {\n  .pmq__grid { grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); }\n  .pmq__inner { padding-left: 48px; }\n  .pmq__cols { grid-template-columns: minmax(0, 1fr); row-gap: 12px; }\n  .pmq__stats { gap: 32px; }\n}\n\n@media (max-width: 900px) {\n  .pmq__grid { grid-template-columns: minmax(0, 1fr); }\n\n  .pmq__over { padding: 0 20px 28px; }\n  .pmq__switch { top: 18px; right: 18px; }\n  .pmq__addr { font-size: 15px; }\n  .pmq__acts { margin-top: 20px; }\n  .pmq__go, .pmq__ring { flex: 1 1 auto; justify-content: center; }\n\n  .pmq__inner { padding: 44px 20px 48px; }\n  .pmq__stats { gap: 0; justify-content: space-between; }\n  .pmq__label { font-size: 9px; letter-spacing: .1em; }\n  .pmq__values em { display: none; }\n  .pmq__values li { font-size: 14px; }\n  .pmq__cta { width: 100%; justify-content: center; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .pmq__photo,\n  .pmq__stat,\n  .pmq__values li { transition: none; transform: none; opacity: 1; }\n}\n\/* Bloque de la oficina: tarjeta redondeada con m\u00e1rgenes (publicado el 10\/11\/2026, opci\u00f3n B). Para volver al dise\u00f1o anterior, borrar este tramo. *\/\n.pmq { --pmq-gut: 44px; background-color: #f4f7f8; padding: clamp(40px, 5vw, 80px) 16px; }\n.pmq .pmq__grid { max-width: calc(var(--pmq-max) - 32px); margin: 0 auto; border-radius: 28px; overflow: hidden; box-shadow: 0 30px 60px -30px rgba(15, 45, 55, .45); }\n.pmq .pmq__paper { background-color: #fff; }\n.pmq .pmq__inner { padding: 58px 56px; }\n@media (max-width: 900px) {\n  .pmq .pmq__inner { padding: 44px 24px 48px; }\n  .pmq .pmq__over { padding-left: 24px; }\n}\n<\/style>\n\n<section class=\"pmq\" id=\"pmq-root\" aria-label=\"Porta Mediterr\u00e1nea Homes\">\n  <div class=\"pmq__grid\">\n\n    <div class=\"pmq__visual\" id=\"pmq-visual\">\n      <div class=\"pmq__photo\"><\/div>\n\n      <div class=\"pmq__switch\" role=\"group\" aria-label=\"Voir le bureau ou le plan\">\n        <button type=\"button\" class=\"pmq__tab\" id=\"pmq-tab-foto\" aria-pressed=\"true\">Bureau<\/button>\n        <button type=\"button\" class=\"pmq__tab\" id=\"pmq-tab-mapa\" aria-pressed=\"false\">Plan<\/button>\n      <\/div>\n\n      <div class=\"pmq__over\" id=\"pmq-over\">\n        <span class=\"pmq__badge\" id=\"pmq-badge\">\n          <span class=\"pmq__dot\"><\/span>\n          <span id=\"pmq-badgetext\">Bureau de vente<\/span>\n        <\/span>\n\n        <h3 class=\"pmq__vtitle\">Venez nous <strong>rendre visite<\/strong><\/h3>\n\n        <p class=\"pmq__addr\">\n          Calle San Benito, 1 \u2013 Plaza Constituci\u00f3n\n          <span>Alcossebre, Castell\u00f3n \u00b7 Du lundi au samedi, de 9 h \u00e0 14 h<\/span>\n        <\/p>\n\n        <div class=\"pmq__acts\">\n          <a class=\"pmq__go\" id=\"pmq-dir\" href=\"https:\/\/www.google.com\/maps\" target=\"_blank\" rel=\"noopener\">\n            Itin\u00e9raire\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 12h15m0 0-6-6m6 6-6 6\"><\/path><\/svg>\n          <\/a>\n          <a class=\"pmq__ring\" href=\"tel:+34964090154\">\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6.5 4h3l1.6 4-2 1.4a11.5 11.5 0 005.5 5.5l1.4-2 4 1.6v3a2 2 0 01-2.2 2A16.5 16.5 0 014.5 6.2 2 2 0 016.5 4z\"><\/path><\/svg>\n            964 09 01 54\n          <\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"pmq__paper\">\n      <div class=\"pmq__inner\">\n        <div class=\"pmq__rule\"><\/div>\n        <p class=\"pmq__eyebrow\">Programmes immobiliers neufs<\/p>\n        <h2 class=\"pmq__title\">Porta <strong>Mediterr\u00e1nea Homes<\/strong><\/h2>\n\n        <div class=\"pmq__cols\">\n          <p class=\"pmq__lead\">Porta Mediterr\u00e1nea Homes se consacre \u00e0 l\u2019am\u00e9nagement de terrains et \u00e0 la promotion d\u2019op\u00e9rations d\u2019urbanisme et de construction sur la c\u00f4te m\u00e9diterran\u00e9enne. Son activit\u00e9 principale porte aujourd\u2019hui sur le d\u00e9veloppement urbain et r\u00e9sidentiel de diff\u00e9rents secteurs d\u2019Alcossebre, sur la Costa del Azahar.<\/p>\n          <p class=\"pmq__lead\">Chez Porta Mediterr\u00e1nea Homes, nous intervenons \u00e0 chaque \u00e9tape du cycle immobilier, avec une offre de services globale fond\u00e9e sur un engagement total envers chaque projet. Nous soignons chaque d\u00e9tail, de la toute premi\u00e8re id\u00e9e jusqu\u2019\u00e0 la r\u00e9alisation du projet.<\/p>\n        <\/div>\n\n        <div class=\"pmq__stats\">\n          <div class=\"pmq__stat\">\n            <span class=\"pmq__num\" data-pmq-to=\"7\">0<\/span>\n            <span class=\"pmq__label\">Projets livr\u00e9s<\/span>\n          <\/div>\n          <div class=\"pmq__stat\">\n            <span class=\"pmq__num\" data-pmq-to=\"6\">0<\/span>\n            <span class=\"pmq__label\">En cours<\/span>\n          <\/div>\n          <div class=\"pmq__stat\">\n            <span class=\"pmq__num\" data-pmq-to=\"155\">0<\/span>\n            <span class=\"pmq__label\">Logements<\/span>\n          <\/div>\n        <\/div>\n\n        <ul class=\"pmq__values\">\n          <li>\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12.5l5 5 10-11\"><\/path><\/svg>\n            <span><b>Sant\u00e9 et s\u00e9curit\u00e9 au travail<\/b> <em>avec une mise \u00e0 jour permanente des mesures de pr\u00e9vention des risques professionnels adapt\u00e9es \u00e0 chaque poste.<\/em><\/span>\n          <\/li>\n          <li>\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12.5l5 5 10-11\"><\/path><\/svg>\n            <span><b>Gestion des talents et d\u00e9veloppement professionnel<\/b> <em>dans un cadre de travail fond\u00e9 sur l\u2019\u00e9galit\u00e9 des chances et le respect de la diversit\u00e9.<\/em><\/span>\n          <\/li>\n          <li>\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12.5l5 5 10-11\"><\/path><\/svg>\n            <span><b>Protection de l\u2019environnement<\/b> <em>gr\u00e2ce \u00e0 une planification urbaine ordonn\u00e9e.<\/em><\/span>\n          <\/li>\n        <\/ul>\n\n        <a class=\"pmq__cta\" href=\"https:\/\/www.portamediterranea.com\/fr\/qui-sommes-nous\/\">\n          Qui sommes-nous\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 12h15m0 0-6-6m6 6-6 6\"><\/path><\/svg>\n        <\/a>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/section>\n\n<script>\n(function () {\n  var AMP = String.fromCharCode(38);\n  var PLACE = 'Calle San Benito 1, 12579 Alcossebre, Castell\u00f3n';\n\n  function init() {\n    var root = document.getElementById('pmq-root');\n    if (!root) { return; }\n    if (root.getAttribute('data-ready') === '1') { return; }\n    root.setAttribute('data-ready', '1');\n\n    var visual = document.getElementById('pmq-visual');\n    var tabFoto = document.getElementById('pmq-tab-foto');\n    var tabMapa = document.getElementById('pmq-tab-mapa');\n    var dir = document.getElementById('pmq-dir');\n    var badge = document.getElementById('pmq-badge');\n    var badgeText = document.getElementById('pmq-badgetext');\n    var nums = root.querySelectorAll('[data-pmq-to]');\n\n    var q = encodeURIComponent(PLACE);\n    dir.href = 'https:\/\/www.google.com\/maps\/dir\/?api=1' + AMP + 'destination=' + q;\n\n    var frame = null;\n\n    tabMapa.addEventListener('click', function () {\n      if (!frame) {\n        frame = document.createElement('iframe');\n        frame.className = 'pmq__frame';\n        frame.setAttribute('loading', 'lazy');\n        frame.setAttribute('title', 'Plan du bureau de vente');\n        frame.setAttribute('referrerpolicy', 'no-referrer-when-downgrade');\n        frame.src = 'https:\/\/maps.google.com\/maps?q=' + q + AMP + 'z=16' + AMP + 'output=embed';\n        visual.appendChild(frame);\n      }\n      visual.classList.add('is-map');\n      tabMapa.setAttribute('aria-pressed', 'true');\n      tabFoto.setAttribute('aria-pressed', 'false');\n    });\n\n    tabFoto.addEventListener('click', function () {\n      visual.classList.remove('is-map');\n      tabMapa.setAttribute('aria-pressed', 'false');\n      tabFoto.setAttribute('aria-pressed', 'true');\n    });\n\n    function stamp() {\n      try {\n        var f = new Intl.DateTimeFormat('en-GB', {\n          timeZone: 'Europe\/Madrid',\n          weekday: 'short',\n          hour: '2-digit',\n          minute: '2-digit',\n          hour12: false\n        });\n        var o = { day: '', h: 0, m: 0 };\n        f.formatToParts(new Date()).forEach(function (p) {\n          if (p.type === 'weekday') { o.day = p.value; }\n          if (p.type === 'hour') { o.h = parseInt(p.value, 10); }\n          if (p.type === 'minute') { o.m = parseInt(p.value, 10); }\n        });\n        return o;\n      } catch (e) {\n        return null;\n      }\n    }\n\n    function paintBadge() {\n      var t = stamp();\n      if (!t) { return; }\n\n      var mins = t.h * 60 + t.m;\n      var open = false;\n      var msg = '';\n\n      if (t.day === 'Sun') {\n        msg = 'Ferm\u00e9 \u00b7 ouverture lundi \u00e0 9 h';\n      } else {\n        if (mins >= 540) {\n          if (840 > mins) { open = true; msg = 'Ouvert \u00b7 jusqu\u2019\u00e0 14 h'; }\n        }\n        if (!open) {\n          if (mins >= 1080) {\n            if (0 > mins) { open = true; msg = 'Ouvert \u00b7 jusqu\u2019\u00e0 22 h'; }\n          }\n        }\n        if (!open) {\n          if (540 > mins) { msg = 'Ferm\u00e9 \u00b7 ouverture aujourd\u2019hui \u00e0 9 h'; }\n          else if (0 > mins) { msg = 'Ferm\u00e9 \u00b7 ouverture aujourd\u2019hui \u00e0 18 h'; }\n          else if (t.day === 'Sat') { msg = 'Ferm\u00e9 \u00b7 ouverture lundi \u00e0 9 h'; }\n          else { msg = 'Ferm\u00e9 \u00b7 ouverture demain \u00e0 9 h'; }\n        }\n      }\n\n      badgeText.textContent = msg;\n      badge.classList.remove('is-open');\n      badge.classList.remove('is-shut');\n      badge.classList.add(open ? 'is-open' : 'is-shut');\n    }\n\n    paintBadge();\n    setInterval(paintBadge, 60000);\n\n    var reduce = false;\n    if (window.matchMedia) {\n      reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    }\n\n    var counted = false;\n\n    function countUp() {\n      if (counted) { return; }\n      counted = true;\n      Array.prototype.forEach.call(nums, function (el) {\n        var target = parseInt(el.getAttribute('data-pmq-to'), 10) || 0;\n        if (reduce) { el.textContent = String(target); return; }\n        var dur = 1400;\n        var t0 = 0;\n        function step(now) {\n          if (!t0) { t0 = now; }\n          var k = (now - t0) \/ dur;\n          if (k > 1) { k = 1; }\n          var eased = 1 - Math.pow(1 - k, 3);\n          el.textContent = String(Math.round(target * eased));\n          if (k === 1) { return; }\n          requestAnimationFrame(step);\n        }\n        requestAnimationFrame(step);\n      });\n    }\n\n    if (window.IntersectionObserver) {\n      new IntersectionObserver(function (entries, obs) {\n        entries.forEach(function (en) {\n          if (en.isIntersecting) {\n            root.classList.add('is-in');\n            countUp();\n            obs.disconnect();\n          }\n        });\n      }, { threshold: 0.18 }).observe(root);\n    } else {\n      root.classList.add('is-in');\n      countUp();\n    }\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n<\/script>\n\n\n\n<style>\n.pmx {\n  --pmx-max: 1714px;\n  --pmx-pad: 16px;\n  --pmx-pad-v: 96px;\n  --pmx-ink: #1a1a1a;\n  --pmx-mute: #6b6b6b;\n  --pmx-soft: #ededed;\n  --pmx-line: #e0e0e0;\n  --pmx-bg: #fafafa;\n  --pmx-accent: #0ec2ff;\n  --pmx-dur: 5000ms;\n  --pmx-fade: 1000ms;\n  width: 100%;\n  background-color: #ffffff;\n}\n\n.pmx *,\n.pmx *::before,\n.pmx *::after { box-sizing: border-box; }\n\n.pmx__wrap {\n  width: 100%;\n  max-width: var(--pmx-max);\n  margin-left: auto;\n  margin-right: auto;\n  padding: var(--pmx-pad-v) var(--pmx-pad);\n}\n\n.pmx__head { margin-bottom: 48px; }\n\n.pmx__rule {\n  width: 44px;\n  height: 2px;\n  margin-bottom: 20px;\n  background-color: var(--pmx-accent);\n}\n\n.pmx__eyebrow {\n  margin: 0 0 12px;\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .26em;\n  text-transform: uppercase;\n  color: var(--pmx-mute);\n}\n\n.pmx__title {\n  margin: 0;\n  font-size: clamp(26px, 2.4vw, 40px);\n  font-weight: 300;\n  line-height: 1.1;\n  letter-spacing: -.01em;\n  color: var(--pmx-ink);\n}\n\n.pmx__title strong {\n  display: block;\n  font-weight: 600;\n}\n\n.pmx__grid {\n  display: grid;\n  grid-template-columns: 320px minmax(0, 1fr);\n  column-gap: 56px;\n  align-items: start;\n}\n\n.pmx__index {\n  display: flex;\n  flex-direction: column;\n  border-top: 1px solid var(--pmx-soft);\n}\n\n.pmx__item {\n  position: relative;\n  display: grid;\n  grid-template-columns: 34px minmax(0, 1fr);\n  align-items: start;\n  width: 100%;\n  margin: 0;\n  padding: 18px 4px 18px 16px;\n  border: 0;\n  border-bottom: 1px solid var(--pmx-soft);\n  background: none;\n  font: inherit;\n  text-align: left;\n  cursor: pointer;\n}\n\n.pmx__item::before {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  top: 0;\n  bottom: 0;\n  width: 2px;\n  background-color: var(--pmx-accent);\n  transform: scaleY(0);\n  transform-origin: top;\n  transition: transform 380ms cubic-bezier(.2, .7, .3, 1);\n}\n\n.pmx__item[aria-selected=\"true\"]::before { transform: scaleY(1); }\n\n.pmx__num {\n  font-size: 11px;\n  font-weight: 600;\n  letter-spacing: .1em;\n  line-height: 1.9;\n  color: var(--pmx-line);\n  transition: color 300ms ease;\n}\n\n.pmx__item:hover .pmx__num { color: var(--pmx-mute); }\n.pmx__item[aria-selected=\"true\"] .pmx__num { color: var(--pmx-accent); }\n\n.pmx__itemname {\n  display: block;\n  font-size: 16px;\n  font-weight: 500;\n  line-height: 1.3;\n  color: var(--pmx-mute);\n  transition: color 300ms ease, transform 380ms cubic-bezier(.2, .7, .3, 1);\n}\n\n.pmx__item:hover .pmx__itemname { color: var(--pmx-ink); transform: translateX(4px); }\n\n.pmx__item[aria-selected=\"true\"] .pmx__itemname {\n  font-weight: 600;\n  color: var(--pmx-ink);\n  transform: translateX(4px);\n}\n\n.pmx__itemloc {\n  display: block;\n  overflow: hidden;\n  max-height: 0;\n  margin-top: 0;\n  font-size: 12px;\n  font-weight: 400;\n  letter-spacing: .02em;\n  color: var(--pmx-mute);\n  opacity: 0;\n  transform: translateX(4px);\n  transition: max-height 380ms ease, opacity 300ms ease, margin-top 380ms ease;\n}\n\n.pmx__item[aria-selected=\"true\"] .pmx__itemloc {\n  max-height: 32px;\n  margin-top: 5px;\n  opacity: 1;\n}\n\n.pmx__item:focus-visible {\n  outline: 2px solid var(--pmx-accent);\n  outline-offset: 2px;\n}\n\n.pmx__stage {\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  width: 100%;\n  border-radius: 10px;\n  background-color: var(--pmx-soft);\n  aspect-ratio: 16 \/ 9;\n  max-height: 500px;\n  touch-action: pan-y;\n}\n\n.pmx__stage::after {\n  content: \"\";\n  position: absolute;\n  inset: auto 0 0 0;\n  height: 45%;\n  z-index: 1;\n  background: linear-gradient(to top, rgba(6, 24, 29, .45), rgba(6, 24, 29, 0));\n  pointer-events: none;\n}\n\n.pmx__img {\n  position: absolute;\n  inset: 0;\n  background-size: cover;\n  background-position: center;\n  background-repeat: no-repeat;\n  opacity: 0;\n  transition: opacity var(--pmx-fade) ease;\n}\n\n.pmx__img.is-on {\n  opacity: 1;\n  animation: pmxZoom 7000ms linear forwards;\n}\n\n@keyframes pmxZoom {\n  from { transform: scale(1.055); }\n  to   { transform: scale(1); }\n}\n\n.pmx__bars {\n  position: absolute;\n  z-index: 3;\n  top: 18px;\n  right: 18px;\n  display: flex;\n  gap: 6px;\n}\n\n.pmx__bar {\n  width: 28px;\n  height: 3px;\n  padding: 0;\n  border: 0;\n  border-radius: 2px;\n  overflow: hidden;\n  background-color: rgba(255, 255, 255, .35);\n  box-shadow: 0 0 10px rgba(0, 0, 0, .25);\n  cursor: pointer;\n}\n\n.pmx__fill {\n  display: block;\n  width: 100%;\n  height: 100%;\n  background-color: #ffffff;\n  transform: scaleX(0);\n  transform-origin: left;\n}\n\n.pmx__bar.is-done .pmx__fill { transform: scaleX(1); }\n.pmx__bar.is-live .pmx__fill { animation: pmxFill var(--pmx-dur) linear forwards; }\n.pmx__stage.is-paused .pmx__fill { animation-play-state: paused; }\n\n@keyframes pmxFill {\n  from { transform: scaleX(0); }\n  to   { transform: scaleX(1); }\n}\n\n.pmx__arrow {\n  position: absolute;\n  z-index: 3;\n  top: 50%;\n  width: 42px;\n  height: 42px;\n  margin-top: -21px;\n  padding: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  border: 1px solid rgba(255, 255, 255, .5);\n  border-radius: 50%;\n  background-color: rgba(255, 255, 255, .14);\n  backdrop-filter: blur(6px);\n  color: #ffffff;\n  cursor: pointer;\n  opacity: 0;\n  transition: opacity 300ms ease, background-color 300ms ease, transform 300ms ease;\n}\n\n.pmx__stage:hover .pmx__arrow { opacity: 1; }\n.pmx__arrow:focus-visible { opacity: 1; outline: 2px solid #ffffff; outline-offset: 2px; }\n.pmx__arrow:hover { background-color: rgba(255, 255, 255, .3); }\n.pmx__arrow--prev { left: 16px; }\n.pmx__arrow--next { right: 16px; }\n.pmx__arrow--prev:hover { transform: translateX(-3px); }\n.pmx__arrow--next:hover { transform: translateX(3px); }\n\n.pmx__arrow svg {\n  width: 18px;\n  height: 18px;\n  fill: none;\n  stroke: currentColor;\n  stroke-width: 1.7;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n.pmx__card {\n  position: relative;\n  z-index: 4;\n  max-width: 620px;\n  margin: -76px 0 0 44px;\n  padding: 28px 32px 26px;\n  border-radius: 10px;\n  background-color: #ffffff;\n  box-shadow: 0 26px 54px -26px rgba(0, 0, 0, .3);\n}\n\n.pmx__ghost {\n  position: absolute;\n  top: 14px;\n  right: 22px;\n  margin: 0;\n  font-size: 46px;\n  font-weight: 700;\n  line-height: 1;\n  letter-spacing: -.03em;\n  color: #f2f2f2;\n  pointer-events: none;\n}\n\n.pmx__name {\n  position: relative;\n  margin: 0;\n  font-size: clamp(19px, 1.4vw, 24px);\n  font-weight: 600;\n  line-height: 1.2;\n  letter-spacing: .01em;\n  text-transform: uppercase;\n  color: var(--pmx-ink);\n}\n\n.pmx__loc {\n  position: relative;\n  margin: 8px 0 0;\n  font-size: 14px;\n  letter-spacing: .02em;\n  color: var(--pmx-mute);\n}\n\n.pmx__meta {\n  position: relative;\n  display: flex;\n  flex-wrap: wrap;\n  gap: 8px;\n  margin: 18px 0 0;\n  padding: 0;\n}\n\n.pmx__meta span {\n  padding: 4px 13px;\n  border-radius: 100px;\n  border: 1px solid var(--pmx-line);\n  background-color: var(--pmx-bg);\n  font-size: 12px;\n  letter-spacing: .03em;\n  color: var(--pmx-mute);\n}\n\n.pmx__desc {\n  max-width: 78ch;\n  margin: 30px 0 0 44px;\n  font-size: 15px;\n  line-height: 1.7;\n  color: var(--pmx-mute);\n}\n\n.pmx__card,\n.pmx__desc { transition: opacity 300ms ease, transform 300ms cubic-bezier(.2, .7, .3, 1); }\n.pmx__card.is-out { opacity: 0; transform: translateY(12px); }\n.pmx__desc.is-out { opacity: 0; transform: translateY(12px); }\n\n@media (max-width: 980px) {\n  .pmx { --pmx-pad-v: 48px; }\n\n  .pmx__head { margin-bottom: 28px; }\n\n  .pmx__grid {\n    grid-template-columns: minmax(0, 1fr);\n    row-gap: 22px;\n  }\n\n  .pmx__index {\n    flex-direction: row;\n    border-top: 0;\n    border-bottom: 1px solid var(--pmx-soft);\n    overflow-x: auto;\n    scrollbar-width: none;\n  }\n\n  .pmx__index::-webkit-scrollbar { display: none; }\n\n  .pmx__item {\n    flex: 0 0 auto;\n    width: auto;\n    grid-template-columns: auto auto;\n    column-gap: 8px;\n    align-items: center;\n    padding: 12px 16px 12px 14px;\n    border-bottom: 0;\n    white-space: nowrap;\n  }\n\n  .pmx__item::before {\n    left: 0;\n    right: 0;\n    top: auto;\n    bottom: 0;\n    width: auto;\n    height: 2px;\n    transform: scaleX(0);\n    transform-origin: left;\n  }\n\n  .pmx__item[aria-selected=\"true\"]::before { transform: scaleX(1); }\n\n  .pmx__num { line-height: 1.4; }\n  .pmx__itemname { font-size: 14px; }\n  .pmx__item:hover .pmx__itemname { transform: none; }\n  .pmx__item[aria-selected=\"true\"] .pmx__itemname { transform: none; }\n  .pmx__itemloc { display: none; }\n\n  .pmx__stage { aspect-ratio: 4 \/ 3; border-radius: 8px; }\n  .pmx__arrow { display: none; }\n\n  .pmx__card {\n    max-width: none;\n    margin: -34px 12px 0;\n    padding: 22px 20px;\n    border-radius: 8px;\n  }\n\n  .pmx__ghost { font-size: 34px; top: 12px; right: 16px; }\n  .pmx__desc { margin: 24px 0 0; }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .pmx__img,\n  .pmx__card,\n  .pmx__desc,\n  .pmx__itemname,\n  .pmx__itemloc,\n  .pmx__item::before { transition-duration: 1ms; }\n  .pmx__img.is-on { animation: none; }\n  .pmx__bar.is-live .pmx__fill { animation: none; transform: scaleX(1); }\n}\n<\/style>\n\n<section class=\"pmx\" id=\"pmx-root\" aria-label=\"Prochains programmes neufs\">\n  <div class=\"pmx__wrap\">\n    <header class=\"pmx__head\">\n      <div class=\"pmx__rule\"><\/div>\n      <p class=\"pmx__eyebrow\">Projets en cours<\/p>\n      <h2 class=\"pmx__title\">Prochains programmes<strong>de logements neufs \u00e0 Alcossebre<\/strong><\/h2>\n    <\/header>\n\n    <div class=\"pmx__grid\">\n      <nav class=\"pmx__index\" id=\"pmx-index\" role=\"tablist\" aria-orientation=\"vertical\" aria-label=\"Choisir un programme\"><\/nav>\n\n      <div>\n        <div class=\"pmx__stage\" id=\"pmx-stage\">\n          <div class=\"pmx__bars\" id=\"pmx-bars\" role=\"group\" aria-label=\"Choisir une image\"><\/div>\n          <button type=\"button\" class=\"pmx__arrow pmx__arrow--prev\" id=\"pmx-prev\" aria-label=\"Image pr\u00e9c\u00e9dente\">\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M15 5l-7 7 7 7\"><\/path><\/svg>\n          <\/button>\n          <button type=\"button\" class=\"pmx__arrow pmx__arrow--next\" id=\"pmx-next\" aria-label=\"Image suivante\">\n            <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M9 5l7 7-7 7\"><\/path><\/svg>\n          <\/button>\n        <\/div>\n\n        <div class=\"pmx__card\" id=\"pmx-card\" role=\"tabpanel\" tabindex=\"0\">\n          <p class=\"pmx__ghost\" id=\"pmx-ghost\" aria-hidden=\"true\">01<\/p>\n          <h3 class=\"pmx__name\" id=\"pmx-name\"><\/h3>\n          <p class=\"pmx__loc\" id=\"pmx-loc\"><\/p>\n          <div class=\"pmx__meta\" id=\"pmx-meta\"><\/div>\n        <\/div>\n\n        <p class=\"pmx__desc\" id=\"pmx-desc\"><\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<script>\n(function () {\n  var UP = 'https:\/\/www.portamediterranea.com\/wp-content\/uploads\/';\n\n  var DATA = [\n    {\n      name: 'Villas Mediterr\u00e0nia Life',\n      title: 'VILLAS MEDITERR\u00c0NIA LIFE',\n      loc: 'Playa del Moro \u2013 Tres Playas',\n      meta: ['3 et 4 chambres', '6 logements'],\n      desc: '6 maisons individuelles exclusives aux finitions excellentes, dont l\u2019acqu\u00e9reur peut adapter l\u2019agencement \u00e0 ses besoins ou \u00e0 ses go\u00fbts. Situ\u00e9es dans un quartier r\u00e9sidentiel tr\u00e8s calme, \u00e0 quelques m\u00e8tres de Tres Playas et de la Playa del Moro, elles offrent \u00e0 votre r\u00e9sidence \u00e0 Alcossebre toute la valeur de la proximit\u00e9 de la mer.',\n      imgs: [\n        UP + '2024\/02\/slider-villas-mediterranea-life.webp',\n        UP + '2022\/02\/villas-mediterranea-life11.jpg',\n        UP + '2021\/07\/villas-mediterrania-life3.jpg'\n      ]\n    },\n    {\n      name: 'Ensemble r\u00e9sidentiel Le Blanc',\n      title: 'ENSEMBLE R\u00c9SIDENTIEL LE BLANC',\n      loc: 'Promenade maritime \u2013 Port de plaisance',\n      meta: ['2 et 3 chambres', '52 logements'],\n      desc: '\u00c0 c\u00f4t\u00e9 de la promenade maritime et du port de plaisance, ce projet a \u00e9t\u00e9 con\u00e7u sur 3 plateformes horizontales en gradins, cr\u00e9ant une sensation d\u2019intimit\u00e9 pour des logements qui b\u00e9n\u00e9ficieront de superbes vues en front de mer. Les logements s\u2019organisent autour d\u2019un grand espace central ouvert sur la mer, qui accueille les espaces verts, la piscine, le court de padel, la salle de sport et la piscine int\u00e9rieure.',\n      imgs: [\n        UP + '2024\/02\/slider-residencial-le-blanc.webp',\n        UP + '2022\/07\/LeBlanc-casa1.jpg',\n        UP + '2022\/07\/LeBlanc-casa3.jpg'\n      ]\n    },\n    {\n      name: 'Immeuble Porta Romana',\n      title: 'IMMEUBLE PORTA ROMANA',\n      loc: 'Playa Romana',\n      meta: ['2 et 3 chambres', '27 logements'],\n      desc: 'Pour l\u2019ensemble Porta Romana, nous avons con\u00e7u une r\u00e9sidence de 27 logements au total. Comme pour tous nos projets, nous l\u2019avons dessin\u00e9e selon la nouvelle esth\u00e9tique m\u00e9diterran\u00e9enne. Des logements de 2 et 3 chambres, uniques par leur emplacement en front de mer et de plage.',\n      imgs: [\n        UP + '2024\/02\/slider2-porta-romana.webp',\n        UP + '2024\/02\/porta-romana-promocion.webp',\n        UP + '2024\/02\/porta-romana-terraza.webp'\n      ]\n    },\n    {\n      name: 'Immeuble Porta Prima',\n      title: 'IMMEUBLE PORTA PRIMA',\n      loc: 'Centre-ville',\n      meta: ['2 chambres', '4 appartements'],\n      desc: 'Un petit plaisir pour ceux qui pr\u00e9f\u00e8rent \u00eatre proches du centre sans s\u2019\u00e9loigner de la plage. Ce projet compte 4 appartements de 2 chambres aux finitions et \u00e9quipements exceptionnels, pour profiter davantage de votre temps libre.',\n      imgs: [\n        UP + '2024\/02\/viviendas-obra-nueva-porta-prima.webp',\n        UP + '2021\/06\/fachada-obra-nueva-porta-prima.jpg',\n        UP + '2021\/07\/edificio-porta-prima-alcossebre.jpg'\n      ]\n    }\n  ];\n\n  var PHOTO_MS = 5000;\n\n  function pad(n) {\n    if (n > 9) { return String(n); }\n    return '0' + n;\n  }\n\n  function init() {\n    var root = document.getElementById('pmx-root');\n    if (!root) { return; }\n    if (root.getAttribute('data-ready') === '1') { return; }\n    root.setAttribute('data-ready', '1');\n    root.style.setProperty('--pmx-dur', PHOTO_MS + 'ms');\n\n    var index = document.getElementById('pmx-index');\n    var stage = document.getElementById('pmx-stage');\n    var barsBox = document.getElementById('pmx-bars');\n    var card = document.getElementById('pmx-card');\n    var ghost = document.getElementById('pmx-ghost');\n    var elName = document.getElementById('pmx-name');\n    var elLoc = document.getElementById('pmx-loc');\n    var elMeta = document.getElementById('pmx-meta');\n    var elDesc = document.getElementById('pmx-desc');\n    var btnPrev = document.getElementById('pmx-prev');\n    var btnNext = document.getElementById('pmx-next');\n\n    var reduce = false;\n    if (window.matchMedia) {\n      reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    }\n\n    DATA.forEach(function (p) {\n      p.imgs.forEach(function (src) {\n        var pre = new Image();\n        pre.src = src;\n      });\n    });\n\n    var tabs = [];\n    var layers = [];\n    var bars = [];\n    var current = -1;\n    var photo = 0;\n    var timer = null;\n    var inView = true;\n    var hovering = false;\n\n    function stopTimer() {\n      if (timer) { clearInterval(timer); timer = null; }\n      stage.classList.add('is-paused');\n    }\n\n    function startTimer() {\n      if (timer) { clearInterval(timer); timer = null; }\n      if (reduce) { return; }\n      if (!inView) { return; }\n      if (hovering) { return; }\n      if (document.hidden) { return; }\n      if (layers.length === 1) { return; }\n      stage.classList.remove('is-paused');\n      timer = setInterval(nextPhoto, PHOTO_MS);\n    }\n\n    function paintPhoto(k) {\n      layers.forEach(function (L, j) {\n        if (j === k) { L.classList.add('is-on'); } else { L.classList.remove('is-on'); }\n      });\n      bars.forEach(function (b, j) {\n        b.classList.remove('is-done');\n        b.classList.remove('is-live');\n        b.setAttribute('aria-current', j === k ? 'true' : 'false');\n        if (k > j) { b.classList.add('is-done'); }\n      });\n      var live = bars[k];\n      if (live) {\n        var fill = live.firstChild;\n        if (fill) {\n          fill.style.animation = 'none';\n          void fill.offsetWidth;\n          fill.style.animation = '';\n        }\n        live.classList.add('is-live');\n      }\n      photo = k;\n    }\n\n    function nextPhoto() { paintPhoto((photo + 1) % layers.length); }\n    function prevPhoto() { paintPhoto((photo - 1 + layers.length) % layers.length); }\n\n    function buildStage(p) {\n      layers.forEach(function (L) {\n        if (L.parentNode) { L.parentNode.removeChild(L); }\n      });\n      layers = [];\n      while (barsBox.firstChild) { barsBox.removeChild(barsBox.firstChild); }\n      bars = [];\n\n      p.imgs.forEach(function (src, j) {\n        var L = document.createElement('div');\n        L.className = 'pmx__img';\n        L.style.backgroundImage = 'url(\"' + src + '\")';\n        stage.insertBefore(L, barsBox);\n        layers.push(L);\n\n        var b = document.createElement('button');\n        b.type = 'button';\n        b.className = 'pmx__bar';\n        b.setAttribute('aria-label', 'Image ' + (j + 1));\n        var fill = document.createElement('span');\n        fill.className = 'pmx__fill';\n        b.appendChild(fill);\n        b.addEventListener('click', function () {\n          paintPhoto(j);\n          startTimer();\n        });\n        barsBox.appendChild(b);\n        bars.push(b);\n      });\n\n      if (p.imgs.length === 1) { barsBox.style.display = 'none'; }\n      else { barsBox.style.display = ''; }\n\n      photo = 0;\n      paintPhoto(0);\n    }\n\n    function fillInfo(p, idx) {\n      ghost.textContent = pad(idx + 1);\n      elName.textContent = p.title;\n      elLoc.textContent = p.loc;\n      elDesc.textContent = p.desc;\n      while (elMeta.firstChild) { elMeta.removeChild(elMeta.firstChild); }\n      p.meta.forEach(function (m) {\n        var sp = document.createElement('span');\n        sp.textContent = m;\n        elMeta.appendChild(sp);\n      });\n    }\n\n    function ensureVisible(b) {\n      var box = index.getBoundingClientRect();\n      var r = b.getBoundingClientRect();\n      if (box.left > r.left) {\n        index.scrollLeft = index.scrollLeft - (box.left - r.left) - 16;\n      }\n      if (r.right > box.right) {\n        index.scrollLeft = index.scrollLeft + (r.right - box.right) + 16;\n      }\n    }\n\n    function select(idx, focusTab) {\n      if (idx === current) { return; }\n      current = idx;\n\n      tabs.forEach(function (b, j) {\n        var on = (j === idx);\n        b.setAttribute('aria-selected', on ? 'true' : 'false');\n        b.setAttribute('tabindex', on ? '0' : '-1');\n      });\n\n      var p = DATA[idx];\n      card.classList.add('is-out');\n      elDesc.classList.add('is-out');\n      buildStage(p);\n      startTimer();\n\n      setTimeout(function () {\n        fillInfo(p, idx);\n        card.classList.remove('is-out');\n        elDesc.classList.remove('is-out');\n      }, reduce ? 0 : 300);\n\n      ensureVisible(tabs[idx]);\n      if (focusTab) { tabs[idx].focus(); }\n    }\n\n    DATA.forEach(function (p, idx) {\n      var b = document.createElement('button');\n      b.type = 'button';\n      b.className = 'pmx__item';\n      b.setAttribute('role', 'tab');\n      b.setAttribute('aria-selected', 'false');\n      b.setAttribute('tabindex', '-1');\n      b.setAttribute('aria-controls', 'pmx-card');\n\n      var num = document.createElement('span');\n      num.className = 'pmx__num';\n      num.textContent = pad(idx + 1);\n\n      var txt = document.createElement('span');\n      var nm = document.createElement('span');\n      nm.className = 'pmx__itemname';\n      nm.textContent = p.name;\n      var lc = document.createElement('span');\n      lc.className = 'pmx__itemloc';\n      lc.textContent = p.loc;\n      txt.appendChild(nm);\n      txt.appendChild(lc);\n\n      b.appendChild(num);\n      b.appendChild(txt);\n      b.addEventListener('click', function () { select(idx, false); });\n      index.appendChild(b);\n      tabs.push(b);\n    });\n\n    index.addEventListener('keydown', function (e) {\n      var last = DATA.length - 1;\n      if (e.key === 'ArrowDown') { e.preventDefault(); select(current === last ? 0 : current + 1, true); }\n      if (e.key === 'ArrowRight') { e.preventDefault(); select(current === last ? 0 : current + 1, true); }\n      if (e.key === 'ArrowUp') { e.preventDefault(); select(current === 0 ? last : current - 1, true); }\n      if (e.key === 'ArrowLeft') { e.preventDefault(); select(current === 0 ? last : current - 1, true); }\n      if (e.key === 'Home') { e.preventDefault(); select(0, true); }\n      if (e.key === 'End') { e.preventDefault(); select(last, true); }\n    });\n\n    btnPrev.addEventListener('click', function () { prevPhoto(); startTimer(); });\n    btnNext.addEventListener('click', function () { nextPhoto(); startTimer(); });\n\n    stage.addEventListener('mouseenter', function () { hovering = true; stopTimer(); });\n    stage.addEventListener('mouseleave', function () { hovering = false; startTimer(); });\n\n    var touchX = 0;\n    stage.addEventListener('touchstart', function (e) {\n      if (e.touches.length === 1) { touchX = e.touches[0].clientX; }\n    }, { passive: true });\n\n    stage.addEventListener('touchend', function (e) {\n      if (!e.changedTouches.length) { return; }\n      var dx = e.changedTouches[0].clientX - touchX;\n      if (Math.abs(dx) > 45) {\n        if (dx > 0) { prevPhoto(); } else { nextPhoto(); }\n        startTimer();\n      }\n    }, { passive: true });\n\n    document.addEventListener('visibilitychange', function () {\n      if (document.hidden) { stopTimer(); } else { startTimer(); }\n    });\n\n    if (window.IntersectionObserver) {\n      new IntersectionObserver(function (entries) {\n        entries.forEach(function (en) {\n          inView = en.isIntersecting;\n          if (inView) { startTimer(); } else { stopTimer(); }\n        });\n      }, { threshold: 0.2 }).observe(root);\n    }\n\n    select(0, false);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Costa del Azahar Programmes neufs \u00e0&nbsp;Alcossebre Chez&nbsp;Porta Mediterr\u00e1nea Homes&nbsp;nous misons sur la qualit\u00e9 de vie et le confort. C\u2019est pourquoi tous nos projets sont con\u00e7us pour que vous profitiez pleinement de votre temps libre. Nous avons cr\u00e9\u00e9 des espaces de r\u00eave avec nos&nbsp;programmes neufs, id\u00e9als pour y vivre et pour que vous et vos proches &#8230; <a title=\"Accueil\" class=\"read-more\" href=\"https:\/\/www.portamediterranea.com\/fr\/\" aria-label=\"En savoir plus sur Accueil\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"bc-bloques","meta":{"footnotes":""},"class_list":["post-29359","page","type-page","status-publish"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Porta Mediterr\u00e1nea : Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n<\/title>\n<meta name=\"description\" content=\"Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n. Maisons avec tout le confort de luxe et \u00e0 proximit\u00e9 de la plage. 2-3 chambres \u00e0 coucher. Contactez nous !\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.portamediterranea.com\/fr\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Porta Mediterr\u00e1nea : Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n\" \/>\n<meta property=\"og:description\" content=\"Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n. Maisons avec tout le confort de luxe et \u00e0 proximit\u00e9 de la plage. 2-3 chambres \u00e0 coucher. Contactez nous !\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.portamediterranea.com\/fr\/\" \/>\n<meta property=\"og:site_name\" content=\"Porta Mediterr\u00e1nea Homes\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-11T08:58:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.portamediterranea.com\/wp-content\/uploads\/2021\/05\/icono1.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.portamediterranea.com\/fr\/\",\"url\":\"https:\/\/www.portamediterranea.com\/fr\/\",\"name\":\"Porta Mediterr\u00e1nea : Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n\",\"isPartOf\":{\"@id\":\"https:\/\/www.portamediterranea.com\/fr\/#website\"},\"datePublished\":\"2021-05-25T09:30:23+00:00\",\"dateModified\":\"2026-11-11T08:58:22+00:00\",\"description\":\"Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n. Maisons avec tout le confort de luxe et \u00e0 proximit\u00e9 de la plage. 2-3 chambres \u00e0 coucher. Contactez nous !\",\"breadcrumb\":{\"@id\":\"https:\/\/www.portamediterranea.com\/fr\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.portamediterranea.com\/fr\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.portamediterranea.com\/fr\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.portamediterranea.com\/fr\/accueil\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Accueil\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.portamediterranea.com\/fr\/#website\",\"url\":\"https:\/\/www.portamediterranea.com\/fr\/\",\"name\":\"Porta Mediterr\u00e1nea Homes\",\"description\":\"Espacios para vivir y casas para disfrutar\",\"publisher\":{\"@id\":\"https:\/\/www.portamediterranea.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.portamediterranea.com\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.portamediterranea.com\/fr\/#organization\",\"name\":\"Porta Mediterr\u00e1nea\",\"url\":\"https:\/\/www.portamediterranea.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.portamediterranea.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.portamediterranea.com\/wp-content\/uploads\/2021\/06\/logo-porta-mediterranea-blanco.jpg\",\"contentUrl\":\"https:\/\/www.portamediterranea.com\/wp-content\/uploads\/2021\/06\/logo-porta-mediterranea-blanco.jpg\",\"width\":300,\"height\":211,\"caption\":\"Porta Mediterr\u00e1nea\"},\"image\":{\"@id\":\"https:\/\/www.portamediterranea.com\/fr\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Porta Mediterr\u00e1nea : Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n","description":"Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n. Maisons avec tout le confort de luxe et \u00e0 proximit\u00e9 de la plage. 2-3 chambres \u00e0 coucher. Contactez nous !","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:\/\/www.portamediterranea.com\/fr\/","og_locale":"fr_FR","og_type":"article","og_title":"Porta Mediterr\u00e1nea : Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n","og_description":"Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n. Maisons avec tout le confort de luxe et \u00e0 proximit\u00e9 de la plage. 2-3 chambres \u00e0 coucher. Contactez nous !","og_url":"https:\/\/www.portamediterranea.com\/fr\/","og_site_name":"Porta Mediterr\u00e1nea Homes","article_modified_time":"2026-11-11T08:58:22+00:00","og_image":[{"url":"https:\/\/www.portamediterranea.com\/wp-content\/uploads\/2021\/05\/icono1.jpg"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.portamediterranea.com\/fr\/","url":"https:\/\/www.portamediterranea.com\/fr\/","name":"Porta Mediterr\u00e1nea : Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n","isPartOf":{"@id":"https:\/\/www.portamediterranea.com\/fr\/#website"},"datePublished":"2021-05-25T09:30:23+00:00","dateModified":"2026-11-11T08:58:22+00:00","description":"Nouvelle construction d\u00e9veloppements \u00e0 Alcossebre, Castell\u00f3n. Maisons avec tout le confort de luxe et \u00e0 proximit\u00e9 de la plage. 2-3 chambres \u00e0 coucher. Contactez nous !","breadcrumb":{"@id":"https:\/\/www.portamediterranea.com\/fr\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.portamediterranea.com\/fr\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.portamediterranea.com\/fr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.portamediterranea.com\/fr\/accueil\/"},{"@type":"ListItem","position":2,"name":"Accueil"}]},{"@type":"WebSite","@id":"https:\/\/www.portamediterranea.com\/fr\/#website","url":"https:\/\/www.portamediterranea.com\/fr\/","name":"Porta Mediterr\u00e1nea Homes","description":"Espacios para vivir y casas para disfrutar","publisher":{"@id":"https:\/\/www.portamediterranea.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.portamediterranea.com\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.portamediterranea.com\/fr\/#organization","name":"Porta Mediterr\u00e1nea","url":"https:\/\/www.portamediterranea.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.portamediterranea.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.portamediterranea.com\/wp-content\/uploads\/2021\/06\/logo-porta-mediterranea-blanco.jpg","contentUrl":"https:\/\/www.portamediterranea.com\/wp-content\/uploads\/2021\/06\/logo-porta-mediterranea-blanco.jpg","width":300,"height":211,"caption":"Porta Mediterr\u00e1nea"},"image":{"@id":"https:\/\/www.portamediterranea.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.portamediterranea.com\/fr\/wp-json\/wp\/v2\/pages\/29359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.portamediterranea.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.portamediterranea.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.portamediterranea.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.portamediterranea.com\/fr\/wp-json\/wp\/v2\/comments?post=29359"}],"version-history":[{"count":5,"href":"https:\/\/www.portamediterranea.com\/fr\/wp-json\/wp\/v2\/pages\/29359\/revisions"}],"predecessor-version":[{"id":32231,"href":"https:\/\/www.portamediterranea.com\/fr\/wp-json\/wp\/v2\/pages\/29359\/revisions\/32231"}],"wp:attachment":[{"href":"https:\/\/www.portamediterranea.com\/fr\/wp-json\/wp\/v2\/media?parent=29359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}