{"id":729,"date":"2022-05-09T08:38:28","date_gmt":"2022-05-09T08:38:28","guid":{"rendered":"https:\/\/www.obadifferentbyluxury.ro\/site2\/?page_id=729"},"modified":"2026-04-14T10:48:39","modified_gmt":"2026-04-14T07:48:39","slug":"oba-residence-apartamente-noi-mamaia-nord","status":"publish","type":"page","link":"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/proiecte\/oba-residence-apartamente-noi-mamaia-nord\/","title":{"rendered":"Apartamente Mamaia Nord &#8211; O.B.A. RESIDENCE"},"content":{"rendered":"\n<!-- ================== OBA URBAN RESIDENCE \u2014 PROJECT HERO ================== -->\n\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\" crossorigin>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link rel=\"preload\" as=\"style\" crossorigin\n  href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&#038;family=Outfit:wght@300;400;500;600;700&#038;display=swap\"\n  onload=\"this.onload=null;this.rel='stylesheet'\">\n<noscript><link rel=\"stylesheet\"\n  href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&#038;family=Outfit:wght@300;400;500;600;700&#038;display=swap\">\n<\/noscript>\n\n<header id=\"oba-res-hero\">\n<style>\n\n#oba-res-hero {\n  --gold: #c9a84c;\n  --gold-light: #e8c97a;\n  --gold-dark: #8a6820;\n  --black: #060606;\n  --white: #f7f4ef;\n  position: relative;\n  width: 100vw;\n  left: 50%;\n  transform: translateX(-50%);\n  background: var(--black);\n  font-family: 'Outfit', system-ui, sans-serif;\n  color: var(--white);\n  overflow: hidden;\n}\n\n\/* \u2500\u2500 BG IMAGE \u2500\u2500 *\/\n#oba-res-hero .bg-image {\n  position: relative;\n  height: clamp(520px, 88vh, 860px);\n  overflow: hidden;\n  contain: layout size;\n}\n#oba-res-hero .bg-image img {\n  position: absolute; inset: 0;\n  width: 100%; height: 100%;\n  object-fit: cover; object-position: center 50%;\n  display: block;\n}\n#oba-res-hero.res-loaded .bg-image img {\n  animation: resZoom 14s ease-out forwards;\n}\n@keyframes resZoom {\n  from { transform: scale(1.06); }\n  to   { transform: scale(1.00); }\n}\n\n\/* \u2500\u2500 OVERLAY \u2500\u2500 *\/\n#oba-res-hero .overlay {\n  position: absolute; inset: 0;\n  background:\n    linear-gradient(180deg, rgba(6,6,6,.12) 0%, rgba(6,6,6,.08) 30%, rgba(6,6,6,.58) 70%, rgba(6,6,6,.94) 100%),\n    linear-gradient(105deg, rgba(6,6,6,.72) 0%, rgba(6,6,6,.32) 45%, rgba(6,6,6,0) 70%);\n  z-index: 1;\n}\n\n\/* \u2500\u2500 CONTENT \u2500\u2500 *\/\n#oba-res-hero .hero-content {\n  position: absolute; inset: 0; z-index: 2;\n  display: flex; align-items: flex-end;\n  padding-bottom: clamp(40px, 6vh, 80px);\n}\n#oba-res-hero .container {\n  width: min(1380px, 92vw);\n  margin: 0 auto;\n}\n\n\/* \u2500\u2500 BADGE \u2500\u2500 *\/\n#oba-res-hero .badge {\n  display: inline-flex; align-items: center; gap: 10px;\n  background: rgba(201,168,76,.15);\n  border: 1px solid rgba(201,168,76,.50);\n  color: var(--gold-light);\n  font-size: 11px; font-weight: 600;\n  letter-spacing: .20em; text-transform: uppercase;\n  padding: 8px 18px; border-radius: 100px;\n  margin-bottom: 24px;\n}\n@media (min-width: 769px) { #oba-res-hero .badge { backdrop-filter: blur(6px); } }\n#oba-res-hero .badge::before {\n  content: '';\n  width: 6px; height: 6px; border-radius: 50%;\n  background: var(--gold);\n  animation: resPulse 2s infinite;\n}\n@keyframes resPulse {\n  0%,100% { opacity:1; transform:scale(1); }\n  50%      { opacity:.4; transform:scale(1.5); }\n}\n\n\/* \u2500\u2500 ANIMA\u021aII INTRO \u2500\u2500 *\/\n#oba-res-hero.res-loaded .badge     { animation: resFadeUp .7s .3s ease both; }\n#oba-res-hero.res-loaded h1         { animation: resFadeUp .8s .5s ease both; }\n#oba-res-hero.res-loaded .lead      { animation: resFadeUp .8s .7s ease both; }\n#oba-res-hero.res-loaded .hero-cta  { animation: resFadeUp .8s .9s ease both; }\n#oba-res-hero.res-loaded .stats-strip { animation: resFadeUp .8s 1.1s ease both; }\n@keyframes resFadeUp {\n  from { opacity:0; transform:translateY(20px); }\n  to   { opacity:1; transform:translateY(0); }\n}\n\n\/* \u2500\u2500 H1 \u2500\u2500 *\/\n#oba-res-hero h1 {\n  font-family: 'Playfair Display', Georgia, serif;\n  font-size: clamp(40px, 5.2vw, 78px);\n  font-weight: 900; line-height: 1.06;\n  margin: 0 0 6px; max-width: 820px;\n  color: var(--white);\n  letter-spacing: -.02em;\n}\n#oba-res-hero h1 em { font-style: italic; color: var(--gold-light); }\n\n\/* \u2500\u2500 LEAD \u2500\u2500 *\/\n#oba-res-hero .lead {\n  font-size: clamp(14px, 1.5vw, 18px);\n  font-weight: 300; line-height: 1.8;\n  color: rgba(247,244,239,.80);\n  max-width: 560px; margin: 20px 0 36px;\n}\n\n\/* \u2500\u2500 BUTOANE \u2500\u2500 *\/\n#oba-res-hero .hero-cta { display: flex; gap: 14px; flex-wrap: wrap; }\n\n#oba-res-hero .btn-primary {\n  background: linear-gradient(135deg, var(--gold) 0%, var(--gold-dark) 100%);\n  color: var(--black);\n  font-family: 'Outfit', system-ui, sans-serif;\n  font-size: 14px; font-weight: 700;\n  letter-spacing: .06em; text-transform: uppercase;\n  border: none; padding: 16px 36px; border-radius: 6px;\n  cursor: pointer; text-decoration: none;\n  display: inline-flex; align-items: center; gap: 10px;\n  transition: transform .3s, box-shadow .3s;\n  box-shadow: 0 6px 32px rgba(201,168,76,.35);\n}\n#oba-res-hero .btn-primary:hover {\n  transform: translateY(-2px);\n  box-shadow: 0 12px 44px rgba(201,168,76,.50);\n}\n#oba-res-hero .btn-secondary {\n  background: rgba(247,244,239,.08);\n  color: var(--white);\n  font-family: 'Outfit', system-ui, sans-serif;\n  font-size: 14px; font-weight: 500;\n  letter-spacing: .06em; text-transform: uppercase;\n  border: 1px solid rgba(247,244,239,.25);\n  padding: 16px 32px; border-radius: 6px;\n  cursor: pointer; text-decoration: none;\n  display: inline-flex; align-items: center; gap: 10px;\n  transition: background .3s, border-color .3s;\n}\n@media (min-width: 769px) { #oba-res-hero .btn-secondary { backdrop-filter: blur(8px); } }\n#oba-res-hero .btn-secondary:hover {\n  background: rgba(247,244,239,.14);\n  border-color: rgba(201,168,76,.50);\n}\n\n\/* \u2500\u2500 GOLD LINE \u2500\u2500 *\/\n#oba-res-hero .gold-line {\n  position: absolute; bottom: 0; left: 0; right: 0; height: 2px;\n  background: linear-gradient(90deg, transparent 0%, var(--gold-dark) 20%, var(--gold) 50%, var(--gold-dark) 80%, transparent 100%);\n  z-index: 3;\n}\n\n\/* \u2500\u2500 STATS \u2500\u2500 *\/\n#oba-res-hero .stats-strip {\n  position: absolute; bottom: 0; right: 0; z-index: 3; display: flex;\n}\n#oba-res-hero .stat {\n  padding: 18px 28px;\n  background: rgba(6,6,6,.65);\n  border-top: 1px solid rgba(201,168,76,.30);\n  border-left: 1px solid rgba(201,168,76,.15);\n  text-align: center;\n}\n@media (min-width: 769px) { #oba-res-hero .stat { backdrop-filter: blur(12px); } }\n#oba-res-hero .stat-num {\n  display: block;\n  font-family: 'Playfair Display', Georgia, serif;\n  font-size: 26px; font-weight: 700;\n  color: var(--gold-light); line-height: 1;\n}\n#oba-res-hero .stat-label {\n  display: block;\n  font-size: 10px; font-weight: 400;\n  letter-spacing: .12em; text-transform: uppercase;\n  color: rgba(247,244,239,.45); margin-top: 4px;\n}\n\n\/* \u2500\u2500 BENEFITS BAR \u2500\u2500 *\/\n#oba-res-hero .benefits-bar {\n  background: var(--black);\n  content-visibility: auto;\n  contain-intrinsic-size: 0 300px;\n}\n#oba-res-hero .benefits-grid {\n  width: min(1380px, 92vw);\n  margin: 0 auto;\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  gap: 1px;\n  background: rgba(201,168,76,.18);\n  border: 1px solid rgba(201,168,76,.18);\n  border-top: none;\n  border-radius: 0 0 16px 16px;\n  overflow: hidden;\n}\n#oba-res-hero .bcard {\n  background: #0d0d0d;\n  padding: 32px 28px;\n  transition: background .3s;\n  position: relative; text-align: center;\n}\n#oba-res-hero .bcard:nth-child(even) { background: #141414; }\n#oba-res-hero .bcard:hover { background: #1a1200; }\n#oba-res-hero .bcard::before {\n  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;\n  background: linear-gradient(90deg, transparent, var(--gold), transparent);\n  opacity: 0; transition: opacity .3s;\n}\n#oba-res-hero .bcard:hover::before { opacity: 1; }\n\n#oba-res-hero .bcard-icon {\n  width: 64px; height: 64px;\n  background: rgba(201,168,76,.08);\n  border: 1px solid rgba(201,168,76,.18);\n  border-radius: 16px;\n  display: flex; align-items: center; justify-content: center;\n  margin: 0 auto 20px;\n  position: relative; overflow: visible;\n  transition: background .3s, border-color .3s;\n}\n#oba-res-hero .bcard:hover .bcard-icon {\n  background: rgba(201,168,76,.16);\n  border-color: rgba(201,168,76,.4);\n}\n#oba-res-hero .bcard-icon svg {\n  width: 28px; height: 28px;\n  stroke: var(--gold); stroke-width: 1.6;\n  fill: none; stroke-linecap: round; stroke-linejoin: round;\n  overflow: visible;\n}\n#oba-res-hero .bcard h3 {\n  font-family: 'Playfair Display', Georgia, serif;\n  font-size: 16px; font-weight: 700;\n  margin: 0 0 8px; color: var(--white); transition: color .3s;\n}\n#oba-res-hero .bcard:hover h3 { color: var(--gold-light); }\n#oba-res-hero .bcard p {\n  margin: 0; font-size: 13px; font-weight: 300;\n  color: rgba(247,244,239,.55); line-height: 1.65; transition: color .3s;\n}\n#oba-res-hero .bcard:hover p { color: rgba(247,244,239,.78); }\n\n\/* \u2500\u2500 ANIMA\u021aII ICONI\u021aE \u2500\u2500 *\/\n\n\/* pin *\/\n#oba-res-hero .pin-body {\n  transform-origin: 50% 85%;\n  animation: resPin 2.6s cubic-bezier(.36,.07,.19,.97) infinite;\n}\n@keyframes resPin {\n  0%,100% { transform: translateY(0) scale(1); }\n  12%     { transform: translateY(-4px) scale(1.08); }\n  22%     { transform: translateY(0) scale(.96); }\n  30%     { transform: translateY(-2px) scale(1.03); }\n  38%     { transform: translateY(0) scale(1); }\n}\n#oba-res-hero .ripple-ring {\n  position: absolute; inset: 0; border-radius: 16px;\n  border: 1px solid rgba(201,168,76,.5);\n  animation: resRipple 2.6s ease-out infinite;\n  pointer-events: none;\n}\n#oba-res-hero .ripple-ring.r2 { animation-delay: .65s; }\n@keyframes resRipple {\n  0%   { transform: scale(1); opacity: .5; }\n  100% { transform: scale(1.8); opacity: 0; }\n}\n\n\/* urban skyline \u2014 ferestre clipesc *\/\n#oba-res-hero .win {\n  animation: resWin 3s ease-in-out infinite;\n  transform-origin: 50% 50%;\n}\n#oba-res-hero .win:nth-child(2) { animation-delay: .5s; }\n#oba-res-hero .win:nth-child(3) { animation-delay: 1s; }\n#oba-res-hero .win:nth-child(4) { animation-delay: 1.5s; }\n@keyframes resWin {\n  0%,100% { fill-opacity: .15; }\n  50%     { fill-opacity: .7; }\n}\n\n\/* plan compartimentare \u2014 linii se deseneaz\u0103 *\/\n#oba-res-hero .plan-line {\n  stroke-dasharray: 20; stroke-dashoffset: 20;\n  animation: resPlan 2.6s ease-in-out infinite;\n}\n#oba-res-hero .plan-line:nth-child(2) { animation-delay: .35s; }\n#oba-res-hero .plan-line:nth-child(3) { animation-delay: .7s; }\n#oba-res-hero .plan-line:nth-child(4) { animation-delay: 1.05s; }\n@keyframes resPlan {\n  0%,10%   { stroke-dashoffset: 20; opacity: .2; }\n  40%,75%  { stroke-dashoffset: 0;  opacity: 1; }\n  92%,100% { stroke-dashoffset: 20; opacity: .2; }\n}\n\n\/* trend *\/\n#oba-res-hero .trend-line {\n  stroke-dasharray: 40; stroke-dashoffset: 40;\n  animation: resTrend 2.4s ease-in-out infinite;\n}\n@keyframes resTrend {\n  0%,10%   { stroke-dashoffset: 40; opacity: .3; }\n  45%,78%  { stroke-dashoffset: 0;  opacity: 1; }\n  95%,100% { stroke-dashoffset: 40; opacity: .3; }\n}\n#oba-res-hero .trend-dot {\n  animation: resDot 2.4s ease-in-out infinite;\n}\n@keyframes resDot {\n  0%,40%  { transform: scale(0); opacity: 0; }\n  60%,80% { transform: scale(1); opacity: 1; }\n  95%     { transform: scale(0); opacity: 0; }\n}\n\n#oba-res-hero .bcard:hover .pin-body,\n#oba-res-hero .bcard:hover .win,\n#oba-res-hero .bcard:hover .plan-line,\n#oba-res-hero .bcard:hover .trend-line,\n#oba-res-hero .bcard:hover .ripple-ring { animation-play-state: paused; }\n\n@media (prefers-reduced-motion: reduce) {\n  #oba-res-hero .pin-body, #oba-res-hero .win, #oba-res-hero .plan-line,\n  #oba-res-hero .trend-line, #oba-res-hero .trend-dot,\n  #oba-res-hero .ripple-ring { animation: none; }\n}\n\n@media (max-width: 1100px) { #oba-res-hero .stats-strip { display: none; } }\n@media (max-width: 860px)  { #oba-res-hero .benefits-grid { grid-template-columns: repeat(2,1fr); } }\n@media (max-width: 540px)  {\n  #oba-res-hero .bg-image { height: 580px; }\n  #oba-res-hero .benefits-grid { grid-template-columns: 1fr; }\n  #oba-res-hero .btn-primary, #oba-res-hero .btn-secondary { width: 100%; justify-content: center; }\n  #oba-res-hero h1 { font-size: 36px; }\n}\n<\/style>\n\n<div class=\"bg-image\">\n  <img\n    src=\"https:\/\/www.obadifferentbyluxury.ro\/wp-content\/uploads\/3-C.jpg\"\n    alt=\"Apartamente noi Mamaia Nord \u2014 O.B.A. Residence, proiect reziden\u021bial modern\"\n    width=\"1920\" height=\"1080\"\n    fetchpriority=\"high\" loading=\"eager\" decoding=\"sync\">\n\n  <div class=\"overlay\"><\/div>\n\n  <div class=\"hero-content\">\n    <div class=\"container\">\n      <div class=\"badge\">Proiect reziden\u021bial \u00b7 Mamaia Nord<\/div>\n\n      <h1 id=\"oba-ur-title\">\n        Apartamente noi<br>\n        <em>O.B.A. Residence<\/em>\n      <\/h1>\n\n      <p class=\"lead\">\n        Proiect echilibrat pentru locuit \u0219i investi\u021bie \u00een Mamaia Nord \u2014 planuri eficiente,\n        spa\u021bii u\u0219or de mobilat \u0219i un stil modern potrivit ritmului urban. Alege tipul de\n        apartament \u0219i solicit\u0103 disponibilit\u0103\u021bi pentru vizionare \u0219i rezervare.\n      <\/p>\n\n      <div class=\"hero-cta\">\n        <a href=\"#oba-apartments\" class=\"btn-primary\">\n          <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" aria-hidden=\"true\"><path d=\"M8 6l6 6-6 6\"\/><\/svg>\n          Vezi apartamentele\n        <\/a>\n        <a href=\"#oba-cta\" class=\"btn-secondary\">\n          <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" aria-hidden=\"true\"><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.8 19.8 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.9.33 1.77.64 2.61a2 2 0 0 1-.45 2.11L8 9.91a16 16 0 0 0 6.09 6.09l1.47-1.3a2 2 0 0 1 2.11-.45c.84.31 1.71.52 2.61.64A2 2 0 0 1 22 16.92z\"\/><\/svg>\n          Solicit\u0103 informa\u021bii\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"stats-strip\">\n    <div class=\"stat\"><span class=\"stat-num\">Mamaia<\/span><span class=\"stat-label\">Nord<\/span><\/div>\n    <div class=\"stat\"><span class=\"stat-num\">A+<\/span><span class=\"stat-label\">Clas\u0103 energetic\u0103<\/span><\/div>\n    <div class=\"stat\"><span class=\"stat-num\">2025<\/span><span class=\"stat-label\">Predare estimat\u0103<\/span><\/div>\n  <\/div>\n\n  <div class=\"gold-line\"><\/div>\n<\/div>\n\n<!-- BENEFITS BAR -->\n<div class=\"benefits-bar\">\n  <div class=\"benefits-grid\">\n\n    <!-- Card 1 \u2014 Loca\u021bie -->\n    <div class=\"bcard\">\n      <div class=\"bcard-icon\">\n        <span class=\"ripple-ring\"><\/span>\n        <span class=\"ripple-ring r2\"><\/span>\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <g class=\"pin-body\">\n            <path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"\/>\n            <circle cx=\"12\" cy=\"10\" r=\"3\"\/>\n          <\/g>\n        <\/svg>\n      <\/div>\n      <h3>Mamaia Nord<\/h3>\n      <p>Zon\u0103 cu cerere constant\u0103, potrivit\u0103 pentru locuire \u0219i randament bun la \u00eenchiriere sezonier\u0103.<\/p>\n    <\/div>\n\n    <!-- Card 2 \u2014 Concept Urban -->\n    <div class=\"bcard\">\n      <div class=\"bcard-icon\">\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <rect x=\"2\" y=\"7\" width=\"7\" height=\"14\" rx=\"1\"\/>\n          <rect class=\"win\" x=\"4\" y=\"9\" width=\"2\" height=\"2\" rx=\".3\" fill=\"#c9a84c\"\/>\n          <rect class=\"win\" x=\"4\" y=\"13\" width=\"2\" height=\"2\" rx=\".3\" fill=\"#c9a84c\"\/>\n          <rect x=\"10\" y=\"3\" width=\"7\" height=\"18\" rx=\"1\"\/>\n          <rect class=\"win\" x=\"12\" y=\"5\" width=\"2\" height=\"2\" rx=\".3\" fill=\"#c9a84c\"\/>\n          <rect class=\"win\" x=\"12\" y=\"9\" width=\"2\" height=\"2\" rx=\".3\" fill=\"#c9a84c\"\/>\n          <rect x=\"18\" y=\"9\" width=\"5\" height=\"12\" rx=\"1\"\/>\n          <rect class=\"win\" x=\"19.5\" y=\"11\" width=\"2\" height=\"2\" rx=\".3\" fill=\"#c9a84c\"\/>\n          <line x1=\"2\" y1=\"21\" x2=\"23\" y2=\"21\" stroke-opacity=\".4\"\/>\n        <\/svg>\n      <\/div>\n      <h3>Concept urban<\/h3>\n      <p>Stil modern, func\u021bional \u0219i aerisit \u2014 integrat natural \u00een via\u021ba de zi cu zi.<\/p>\n    <\/div>\n\n    <!-- Card 3 \u2014 Planuri eficiente -->\n    <div class=\"bcard\">\n      <div class=\"bcard-icon\">\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke-opacity=\".4\"\/>\n          <line class=\"plan-line\" x1=\"3\"  y1=\"10\" x2=\"21\" y2=\"10\"\/>\n          <line class=\"plan-line\" x1=\"12\" y1=\"10\" x2=\"12\" y2=\"21\"\/>\n          <line class=\"plan-line\" x1=\"3\"  y1=\"16\" x2=\"12\" y2=\"16\"\/>\n          <line class=\"plan-line\" x1=\"17\" y1=\"10\" x2=\"17\" y2=\"21\"\/>\n        <\/svg>\n      <\/div>\n      <h3>Planuri eficiente<\/h3>\n      <p>Compartiment\u0103ri g\u00e2ndite pentru mobilare simpl\u0103, spa\u021biu real \u0219i flux corect \u00eentre zone.<\/p>\n    <\/div>\n\n    <!-- Card 4 \u2014 Investi\u021bie -->\n    <div class=\"bcard\">\n      <div class=\"bcard-icon\">\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <polyline class=\"trend-line\" points=\"3,18 8,12 13,15 19,6\"\/>\n          <circle class=\"trend-dot\" cx=\"19\" cy=\"6\" r=\"2.5\" fill=\"#c9a84c\" stroke=\"none\"\/>\n          <line x1=\"3\" y1=\"20\" x2=\"21\" y2=\"20\" stroke-opacity=\".4\"\/>\n        <\/svg>\n      <\/div>\n      <h3>Bun pentru investi\u021bie<\/h3>\n      <p>Randament solid sezonier sau pe termen lung \u2014 \u00een func\u021bie de strategia ta.<\/p>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<\/header>\n\n<script>\n(function(){\n  function activate(){\n    var h = document.getElementById('oba-res-hero');\n    if(h) h.classList.add('res-loaded');\n  }\n  if('requestIdleCallback' in window){\n    requestIdleCallback(activate, { timeout: 2000 });\n  } else {\n    window.addEventListener('load', activate);\n  }\n})();\n<\/script>\n<!-- ================== END OBA URBAN RESIDENCE HERO ================== -->\n\n\n\n<!-- ================== OBA URBAN RESIDENCE \u2014 DESPRE PROIECT ================== -->\n\n<section id=\"oba-res-about\" aria-label=\"Apartamente noi Mamaia Nord \u2013 O.B.A. Residence\">\n<style>\n\n#oba-res-about, #oba-res-about * { box-sizing: border-box; margin: 0; padding: 0; }\n\n#oba-res-about {\n  --gold:  #c9a84c;\n  --gl:    #e8c97a;\n  --gd:    #8a6820;\n  --black: #060606;\n  --ink2:  #0d0d0d;\n  --ink3:  #121212;\n  --white: #f7f4ef;\n  --muted: rgba(247,244,239,.58);\n  --line:  rgba(201,168,76,.14);\n  --serif: 'Playfair Display', Georgia, serif;\n  --sans:  'Outfit', system-ui, sans-serif;\n  background: var(--black);\n  color: var(--white);\n  font-family: var(--sans);\n  padding: clamp(60px, 8vw, 110px) 0;\n  position: relative;\n  overflow: hidden;\n}\n\n#oba-res-about::before {\n  content: '';\n  position: absolute; inset: 0;\n  background:\n    radial-gradient(ellipse 60% 40% at 80% 20%, rgba(201,168,76,.04) 0%, transparent 70%),\n    radial-gradient(ellipse 50% 50% at 10% 80%, rgba(201,168,76,.03) 0%, transparent 70%);\n  pointer-events: none; z-index: 0;\n}\n\n#oba-res-about .wrap {\n  width: min(1320px, 92vw);\n  margin: 0 auto;\n  position: relative; z-index: 1;\n}\n\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\n#oba-res-about .section-header {\n  max-width: 760px;\n  margin: 0 0 64px;\n  padding-left: 24px;\n  border-left: 3px solid var(--gold);\n}\n#oba-res-about .section-badge {\n  display: inline-flex; align-items: center; gap: 8px;\n  background: rgba(201,168,76,.12);\n  border: 1px solid rgba(201,168,76,.3);\n  color: var(--gl);\n  font-size: 10.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;\n  padding: 7px 16px; border-radius: 100px;\n  margin-bottom: 20px;\n}\n#oba-res-about .section-badge::before {\n  content: ''; width: 5px; height: 5px; border-radius: 50%;\n  background: var(--gold);\n  animation: resPulse 2s ease-in-out infinite;\n}\n@keyframes resPulse {\n  0%,100% { opacity:1; transform:scale(1); }\n  50%      { opacity:.4; transform:scale(1.6); }\n}\n#oba-res-about .section-header h2 {\n  font-family: var(--serif);\n  font-size: clamp(28px, 3.8vw, 48px);\n  font-weight: 900; line-height: 1.12;\n  color: var(--white); margin: 0 0 18px;\n  letter-spacing: -.02em;\n}\n#oba-res-about .section-header h2 em { font-style: italic; color: var(--gl); }\n#oba-res-about .section-header p {\n  font-size: clamp(14px, 1.5vw, 17px);\n  font-weight: 300; line-height: 1.8; color: var(--muted);\n}\n#oba-res-about .section-header p strong { color: var(--gl); font-weight: 600; }\n\n\/* \u2500\u2500 FEATURE CARDS \u2500\u2500 *\/\n#oba-res-about .feat-grid {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 1px;\n  background: var(--line);\n  border: 1px solid var(--line);\n  border-radius: 18px;\n  overflow: hidden;\n  margin-bottom: 40px;\n}\n#oba-res-about .feat-card {\n  background: var(--ink2);\n  padding: 36px 28px;\n  position: relative; overflow: hidden;\n  transition: background .32s cubic-bezier(.2,.8,.2,1);\n  text-align: center;\n}\n#oba-res-about .feat-card:nth-child(even) { background: var(--ink3); }\n#oba-res-about .feat-card:hover { background: #1a1200; }\n#oba-res-about .feat-card::before {\n  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;\n  background: linear-gradient(90deg, transparent, var(--gold), transparent);\n  opacity: 0; transition: opacity .32s;\n}\n#oba-res-about .feat-card:hover::before { opacity: 1; }\n\n#oba-res-about .feat-icon {\n  width: 64px; height: 64px;\n  background: rgba(201,168,76,.08);\n  border: 1px solid rgba(201,168,76,.18);\n  border-radius: 16px;\n  display: flex; align-items: center; justify-content: center;\n  margin: 0 auto 20px;\n  position: relative; overflow: visible;\n  transition: background .3s, border-color .3s;\n}\n#oba-res-about .feat-card:hover .feat-icon {\n  background: rgba(201,168,76,.16);\n  border-color: rgba(201,168,76,.4);\n}\n#oba-res-about .feat-icon svg {\n  width: 28px; height: 28px;\n  stroke: var(--gold); stroke-width: 1.6;\n  fill: none; stroke-linecap: round; stroke-linejoin: round;\n  overflow: visible;\n}\n#oba-res-about .feat-card h3 {\n  font-family: var(--serif);\n  font-size: 17px; font-weight: 700;\n  color: var(--white); margin: 0 0 10px; transition: color .3s;\n}\n#oba-res-about .feat-card:hover h3 { color: var(--gl); }\n#oba-res-about .feat-card p {\n  font-size: 13px; font-weight: 300;\n  color: var(--muted); line-height: 1.7; transition: color .3s;\n}\n#oba-res-about .feat-card:hover p { color: rgba(247,244,239,.78); }\n\n\/* \u2500\u2500 MAIN ROW \u2500\u2500 *\/\n#oba-res-about .main-row {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 32px;\n  margin-bottom: 40px;\n  align-items: start;\n}\n\n\/* text *\/\n#oba-res-about .main-text {\n  background: var(--ink2);\n  border: 1px solid var(--line);\n  border-radius: 18px;\n  padding: clamp(28px, 3vw, 44px);\n  position: relative; overflow: hidden;\n}\n#oba-res-about .main-text::before {\n  content: ''; position: absolute; top: 0; left: 0;\n  width: 3px; height: 100%;\n  background: linear-gradient(180deg, var(--gl), var(--gd));\n}\n#oba-res-about .main-text h3 {\n  font-family: var(--serif);\n  font-size: clamp(20px, 2.2vw, 28px); font-weight: 700;\n  color: var(--white); margin: 0 0 24px; line-height: 1.25;\n}\n#oba-res-about .main-text h3 em { font-style: italic; color: var(--gl); }\n#oba-res-about .main-text p {\n  font-size: 14px; font-weight: 300;\n  color: var(--muted); line-height: 1.85;\n  margin-bottom: 16px;\n  padding-left: 18px; position: relative;\n}\n#oba-res-about .main-text p:last-child { margin-bottom: 0; }\n#oba-res-about .main-text p::before {\n  content: ''; position: absolute; left: 0; top: 9px;\n  width: 6px; height: 6px; border-radius: 50%;\n  background: var(--gold); opacity: .5;\n}\n#oba-res-about .main-text p strong { color: var(--gl); font-weight: 600; }\n\n\/* specifica\u021bii panel *\/\n#oba-res-about .specs-panel {\n  display: flex; flex-direction: column; gap: 12px;\n}\n#oba-res-about .spec-item {\n  display: flex; align-items: center; gap: 16px;\n  background: var(--ink2);\n  border: 1px solid var(--line);\n  border-radius: 14px; padding: 18px 22px;\n  transition: all .28s cubic-bezier(.2,.8,.2,1);\n}\n#oba-res-about .spec-item:hover {\n  background: #1a1200;\n  border-color: rgba(201,168,76,.35);\n  transform: translateX(6px);\n}\n#oba-res-about .spec-ico {\n  width: 42px; height: 42px; flex-shrink: 0;\n  background: rgba(201,168,76,.08);\n  border: 1px solid rgba(201,168,76,.2);\n  border-radius: 11px;\n  display: flex; align-items: center; justify-content: center;\n  transition: background .28s, border-color .28s;\n}\n#oba-res-about .spec-item:hover .spec-ico {\n  background: rgba(201,168,76,.18);\n  border-color: rgba(201,168,76,.45);\n}\n#oba-res-about .spec-ico svg {\n  width: 18px; height: 18px;\n  stroke: var(--gold); stroke-width: 1.8;\n  fill: none; stroke-linecap: round; stroke-linejoin: round;\n}\n#oba-res-about .spec-txt {\n  flex: 1; min-width: 0;\n}\n#oba-res-about .spec-txt b {\n  display: block;\n  font-size: 11px; font-weight: 700; letter-spacing: .1em;\n  text-transform: uppercase; color: rgba(201,168,76,.6);\n  margin-bottom: 3px;\n}\n#oba-res-about .spec-txt span {\n  font-size: 15px; font-weight: 600; color: var(--white);\n}\n\n\/* \u2500\u2500 STATS BAR \u2500\u2500 *\/\n#oba-res-about .stats-bar {\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  gap: 1px;\n  background: var(--line);\n  border: 1px solid var(--line);\n  border-radius: 16px;\n  overflow: hidden;\n}\n#oba-res-about .stat-item {\n  background: var(--ink2);\n  padding: 28px 20px;\n  text-align: center;\n  transition: background .3s;\n  position: relative;\n}\n#oba-res-about .stat-item:nth-child(even) { background: var(--ink3); }\n#oba-res-about .stat-item:hover { background: #1a1200; }\n#oba-res-about .stat-item::before {\n  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;\n  background: linear-gradient(90deg, transparent, var(--gold), transparent);\n  opacity: 0; transition: opacity .3s;\n}\n#oba-res-about .stat-item:hover::before { opacity: 1; }\n#oba-res-about .stat-val {\n  display: block; font-family: var(--serif);\n  font-size: clamp(24px, 2.5vw, 36px); font-weight: 700;\n  color: var(--gl); line-height: 1; margin-bottom: 8px;\n}\n#oba-res-about .stat-lbl {\n  font-size: 10px; font-weight: 700;\n  letter-spacing: .16em; text-transform: uppercase;\n  color: rgba(247,244,239,.4);\n}\n\n\/* \u2500\u2500 ANIMA\u021aII \u2500\u2500 *\/\n#oba-res-about .pin-body {\n  transform-origin: 50% 85%;\n  animation: resPin 2.6s cubic-bezier(.36,.07,.19,.97) infinite;\n}\n@keyframes resPin {\n  0%,100% { transform: translateY(0) scale(1); }\n  12%     { transform: translateY(-4px) scale(1.08); }\n  22%     { transform: translateY(0) scale(.96); }\n  30%     { transform: translateY(-2px) scale(1.03); }\n  38%     { transform: translateY(0) scale(1); }\n}\n#oba-res-about .ripple-ring {\n  position: absolute; inset: 0; border-radius: 16px;\n  border: 1px solid rgba(201,168,76,.5);\n  animation: resRipple 2.6s ease-out infinite;\n  pointer-events: none;\n}\n#oba-res-about .ripple-ring.r2 { animation-delay: .65s; }\n@keyframes resRipple {\n  0%   { transform: scale(1); opacity: .5; }\n  100% { transform: scale(1.8); opacity: 0; }\n}\n\n#oba-res-about .win {\n  animation: resWin 3s ease-in-out infinite;\n}\n#oba-res-about .win:nth-child(2) { animation-delay: .5s; }\n#oba-res-about .win:nth-child(3) { animation-delay: 1s; }\n#oba-res-about .win:nth-child(4) { animation-delay: 1.5s; }\n@keyframes resWin {\n  0%,100% { fill-opacity: .15; }\n  50%     { fill-opacity: .75; }\n}\n\n#oba-res-about .plan-line {\n  stroke-dasharray: 20; stroke-dashoffset: 20;\n  animation: resPlan 2.6s ease-in-out infinite;\n}\n#oba-res-about .plan-line:nth-child(2) { animation-delay: .35s; }\n#oba-res-about .plan-line:nth-child(3) { animation-delay: .7s; }\n#oba-res-about .plan-line:nth-child(4) { animation-delay: 1.05s; }\n@keyframes resPlan {\n  0%,10%   { stroke-dashoffset: 20; opacity: .2; }\n  40%,75%  { stroke-dashoffset: 0;  opacity: 1; }\n  92%,100% { stroke-dashoffset: 20; opacity: .2; }\n}\n\n#oba-res-about .feat-card:hover .pin-body,\n#oba-res-about .feat-card:hover .win,\n#oba-res-about .feat-card:hover .plan-line,\n#oba-res-about .feat-card:hover .ripple-ring { animation-play-state: paused; }\n\n\/* \u2500\u2500 SCROLL REVEAL \u2500\u2500 *\/\n#oba-res-about .reveal {\n  opacity: 0; transform: translateY(28px);\n  transition: opacity .7s ease, transform .7s ease;\n}\n#oba-res-about .reveal.visible { opacity: 1; transform: translateY(0); }\n#oba-res-about .reveal.d1 { transition-delay: .1s; }\n#oba-res-about .reveal.d2 { transition-delay: .2s; }\n#oba-res-about .reveal.d3 { transition-delay: .3s; }\n#oba-res-about .reveal.d4 { transition-delay: .4s; }\n\n@media (prefers-reduced-motion: reduce) {\n  #oba-res-about .pin-body, #oba-res-about .win, #oba-res-about .plan-line,\n  #oba-res-about .ripple-ring { animation: none; }\n  #oba-res-about .reveal { opacity: 1; transform: none; transition: none; }\n}\n\n@media (max-width: 980px) {\n  #oba-res-about .main-row { grid-template-columns: 1fr; }\n  #oba-res-about .feat-grid { grid-template-columns: 1fr; }\n  #oba-res-about .stats-bar { grid-template-columns: repeat(2, 1fr); }\n}\n@media (max-width: 640px) {\n  #oba-res-about .stats-bar { grid-template-columns: 1fr; }\n  #oba-res-about .section-header { padding-left: 16px; }\n}\n<\/style>\n\n<div class=\"wrap\">\n\n  <!-- HEADER -->\n  <div class=\"section-header reveal\">\n    <div class=\"section-badge\">O.B.A. Residence \u00b7 Mamaia Nord<\/div>\n    <h2>Apartamente noi <em>Mamaia Nord<\/em><br>O.B.A. Residence<\/h2>\n    <p>\n      Proiect g\u00e2ndit pentru un stil de via\u021b\u0103 modern: <strong>planuri corecte<\/strong>, spa\u021bii u\u0219or de folosit zi de zi \u0219i un ansamblu care pune accent pe calitatea execu\u021biei \u0219i pe un <strong>sentiment real de comunitate<\/strong>.\n    <\/p>\n  <\/div>\n\n  <!-- FEATURE CARDS -->\n  <div class=\"feat-grid reveal d1\">\n\n    <div class=\"feat-card\">\n      <div class=\"feat-icon\">\n        <span class=\"ripple-ring\"><\/span>\n        <span class=\"ripple-ring r2\"><\/span>\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <g class=\"pin-body\">\n            <path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"\/>\n            <circle cx=\"12\" cy=\"10\" r=\"3\"\/>\n          <\/g>\n        <\/svg>\n      <\/div>\n      <h3>Pozi\u021bionare Mamaia Nord<\/h3>\n      <p>Aproape de puncte de interes, cu acces rapid la zonele active \u2014 potrivit pentru locuit \u0219i pentru \u00eenchiriere.<\/p>\n    <\/div>\n\n    <div class=\"feat-card\">\n      <div class=\"feat-icon\">\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <rect x=\"2\" y=\"7\" width=\"7\" height=\"14\" rx=\"1\"\/>\n          <rect class=\"win\" x=\"4\" y=\"9\" width=\"2\" height=\"2\" rx=\".3\" fill=\"#c9a84c\" stroke=\"none\"\/>\n          <rect class=\"win\" x=\"4\" y=\"13\" width=\"2\" height=\"2\" rx=\".3\" fill=\"#c9a84c\" stroke=\"none\"\/>\n          <rect x=\"10\" y=\"3\" width=\"7\" height=\"18\" rx=\"1\"\/>\n          <rect class=\"win\" x=\"12\" y=\"5\" width=\"2\" height=\"2\" rx=\".3\" fill=\"#c9a84c\" stroke=\"none\"\/>\n          <rect class=\"win\" x=\"12\" y=\"9\" width=\"2\" height=\"2\" rx=\".3\" fill=\"#c9a84c\" stroke=\"none\"\/>\n          <rect x=\"18\" y=\"9\" width=\"5\" height=\"12\" rx=\"1\"\/>\n          <line x1=\"2\" y1=\"21\" x2=\"23\" y2=\"21\" stroke-opacity=\".4\"\/>\n        <\/svg>\n      <\/div>\n      <h3>Concept urban, func\u021bional<\/h3>\n      <p>Design modern \u0219i materiale de calitate \u2014 spa\u021bii aerisite \u0219i compartiment\u0103ri u\u0219or de mobilat.<\/p>\n    <\/div>\n\n    <div class=\"feat-card\">\n      <div class=\"feat-icon\">\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke-opacity=\".3\"\/>\n          <line class=\"plan-line\" x1=\"3\"  y1=\"10\" x2=\"21\" y2=\"10\"\/>\n          <line class=\"plan-line\" x1=\"12\" y1=\"10\" x2=\"12\" y2=\"21\"\/>\n          <line class=\"plan-line\" x1=\"3\"  y1=\"16\" x2=\"12\" y2=\"16\"\/>\n          <line class=\"plan-line\" x1=\"17\" y1=\"10\" x2=\"17\" y2=\"21\"\/>\n        <\/svg>\n      <\/div>\n      <h3>P+5 \u00b7 47 apartamente<\/h3>\n      <p>Regim P+5 cu 47 apartamente de 2 \u0219i 3 camere, \u00eentre 55,72 \u0219i 81,44 mp.<\/p>\n    <\/div>\n\n  <\/div>\n\n  <!-- MAIN ROW -->\n  <div class=\"main-row\">\n\n    <!-- TEXT -->\n    <div class=\"main-text reveal d2\">\n      <h3>Despre <em>O.B.A. Residence<\/em><\/h3>\n      <p>\n        Prin <strong>O.B.A. Residence<\/strong> aducem \u00een Mamaia Nord un ansamblu g\u00e2ndit pentru oameni care vor un spa\u021biu corect, luminos \u0219i u\u0219or de folosit. Nu e doar &#8222;\u00eenc\u0103 un bloc&#8221; \u2014 ideea este s\u0103 creeze un mediu coerent, cu un sentiment real de comunitate.\n      <\/p>\n      <p>\n        Proiectul pune accent pe <strong>finisaje moderne, materiale de calitate<\/strong> \u0219i o organizare care maximizeaz\u0103 confortul zilnic. Un mix echilibrat \u00eentre pozi\u021bionare, func\u021bionalitate \u0219i calitate.\n      <\/p>\n      <p>\n        Dac\u0103 vrei o op\u021biune potrivit\u0103 at\u00e2t pentru <strong>locuit<\/strong>, c\u00e2t \u0219i pentru <strong>investi\u021bie imobiliar\u0103<\/strong>, Residence ofer\u0103 exact acel echilibru rar \u2014 pre\u021b corect, calitate real\u0103, zon\u0103 cu cerere constant\u0103.\n      <\/p>\n    <\/div>\n\n    <!-- SPECIFICA\u021aII -->\n    <div class=\"specs-panel reveal d3\">\n\n      <div class=\"spec-item\">\n        <div class=\"spec-ico\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\/><polyline points=\"9 22 9 12 15 12 15 22\"\/><\/svg>\n        <\/div>\n        <div class=\"spec-txt\">\n          <b>Tip apartamente<\/b>\n          <span>2 \u0219i 3 camere<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"spec-item\">\n        <div class=\"spec-ico\">\n          <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"\/><path d=\"M3 9h18M9 21V9\"\/><\/svg>\n        <\/div>\n        <div class=\"spec-txt\">\n          <b>Suprafe\u021be utile<\/b>\n          <span>55,72 \u2013 81,44 mp<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"spec-item\">\n        <div class=\"spec-ico\">\n          <svg viewBox=\"0 0 24 24\"><rect x=\"7\" y=\"2\" width=\"10\" height=\"20\" rx=\"2\"\/><line x1=\"7\" y1=\"6\" x2=\"17\" y2=\"6\"\/><line x1=\"7\" y1=\"10\" x2=\"17\" y2=\"10\"\/><line x1=\"7\" y1=\"14\" x2=\"17\" y2=\"14\"\/><line x1=\"7\" y1=\"18\" x2=\"17\" y2=\"18\"\/><\/svg>\n        <\/div>\n        <div class=\"spec-txt\">\n          <b>Regim \u00een\u0103l\u021bime<\/b>\n          <span>P+5<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"spec-item\">\n        <div class=\"spec-ico\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n        <\/div>\n        <div class=\"spec-txt\">\n          <b>Total apartamente<\/b>\n          <span>47 unit\u0103\u021bi<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"spec-item\">\n        <div class=\"spec-ico\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\/><\/svg>\n        <\/div>\n        <div class=\"spec-txt\">\n          <b>Standard<\/b>\n          <span>Finisaje moderne + materiale de calitate<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"spec-item\">\n        <div class=\"spec-ico\">\n          <svg viewBox=\"0 0 24 24\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg>\n        <\/div>\n        <div class=\"spec-txt\">\n          <b>Destina\u021bie<\/b>\n          <span>Locuit \u0219i investi\u021bie<\/span>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n  <!-- STATS BAR -->\n  <div class=\"stats-bar reveal d4\">\n    <div class=\"stat-item\">\n      <span class=\"stat-val\">47<\/span>\n      <span class=\"stat-lbl\">Apartamente<\/span>\n    <\/div>\n    <div class=\"stat-item\">\n      <span class=\"stat-val\">P+5<\/span>\n      <span class=\"stat-lbl\">Regim \u00een\u0103l\u021bime<\/span>\n    <\/div>\n    <div class=\"stat-item\">\n      <span class=\"stat-val\">81mp<\/span>\n      <span class=\"stat-lbl\">Suprafa\u021b\u0103 max.<\/span>\n    <\/div>\n    <div class=\"stat-item\">\n      <span class=\"stat-val\">A+<\/span>\n      <span class=\"stat-lbl\">Clas\u0103 energetic\u0103<\/span>\n    <\/div>\n  <\/div>\n\n<\/div>\n<\/section>\n\n<script>\n(function(){\n  var els = document.querySelectorAll('#oba-res-about .reveal');\n  if(!els.length) return;\n  if('IntersectionObserver' in window){\n    var io = new IntersectionObserver(function(entries){\n      entries.forEach(function(e){\n        if(e.isIntersecting){ e.target.classList.add('visible'); io.unobserve(e.target); }\n      });\n    }, { threshold: 0.12 });\n    els.forEach(function(el){ io.observe(el); });\n  } else {\n    els.forEach(function(el){ el.classList.add('visible'); });\n  }\n})();\n<\/script>\n<!-- ================== END OBA URBAN RESIDENCE DESPRE PROIECT ================== -->\n\n\n\n<!-- ================== OBA \u2014 GALERIE SEO (ACCORDION FLEX HOVER) \u2014 CONTAINER SAFE (1600) ================== -->\n<section id=\"oba-accordion-gallery\" aria-label=\"Galerie foto O.B.A. Residence \u2013 apartamente noi \u00een Mamaia Nord\">\n  <style>\n    #oba-accordion-gallery{\n      --gold:#bfa046;\n      --gold2:#9f8438;\n      --ink:#0b0e14;\n      --muted:#5b6472;\n      font-family:Inter,system-ui,-apple-system,\"Segoe UI\",Roboto,sans-serif;\n      color:var(--ink);\n    }\n    #oba-accordion-gallery, #oba-accordion-gallery *{box-sizing:border-box}\n\n    \/* container-safe *\/\n    #oba-accordion-gallery .wrap{\n      width:100%;\n      max-width:100%;\n      margin:0;\n      padding:0;\n      overflow:hidden;\n    }\n\n    \/* SEO head *\/\n    #oba-accordion-gallery .seo{\n      max-width:100%;\n      margin:0;\n      padding:0 0 14px 0;\n      text-align:left;\n    }\n    #oba-accordion-gallery .kicker{\n      display:flex;\n      align-items:center;\n      gap:12px;\n      font-size:12px;\n      font-weight:950;\n      letter-spacing:.14em;\n      text-transform:uppercase;\n      color:rgba(11,14,20,.70);\n      margin:0 0 10px;\n    }\n    #oba-accordion-gallery .kicker i{\n      width:54px;height:2px;border-radius:999px;\n      background:linear-gradient(90deg,var(--gold),var(--gold2));\n      display:inline-block;\n    }\n    #oba-accordion-gallery .seo h2{\n      margin:0 0 10px;\n      font-size:clamp(20px,2.2vw,30px);\n      font-weight:980;\n      letter-spacing:-.3px;\n      line-height:1.14;\n    }\n    #oba-accordion-gallery .seo p{\n      margin:0;\n      color:var(--muted);\n      font-size:14.5px;\n      font-weight:800;\n      line-height:1.8;\n      max-width:92ch;\n    }\n\n    \/* ACCORDION *\/\n    #oba-accordion-gallery .accordion{\n      display:flex;\n      gap:0;\n      width:100%;\n      max-width:100%;\n      height:clamp(360px,40vw,520px);\n      overflow:hidden;\n      background:#0b0e14;\n      border-radius:0;\n    }\n\n    #oba-accordion-gallery .accordion .item{\n      background-size:cover;\n      background-position:center;\n      background-repeat:no-repeat;\n      flex:1;\n      min-width:0;\n      position:relative;\n      transition:flex 420ms ease;\n      filter:saturate(1.02) contrast(1.02);\n    }\n    #oba-accordion-gallery .accordion .item:hover{ flex:3; }\n\n    \/* overlay *\/\n    #oba-accordion-gallery .overlay{\n      position:absolute;\n      inset:0;\n      display:flex;\n      align-items:flex-end;\n      padding:18px;\n      background:linear-gradient(180deg, rgba(0,0,0,0) 62%, rgba(0,0,0,.80) 100%);\n    }\n    #oba-accordion-gallery .overlay-inner{\n      width:100%;\n      color:#fff;\n      opacity:.92;\n      transform:translateY(6px);\n      transition:transform 240ms ease, opacity 240ms ease;\n    }\n    #oba-accordion-gallery .item:hover .overlay-inner{\n      transform:translateY(0);\n      opacity:1;\n    }\n\n    #oba-accordion-gallery .overlay-inner h3{\n      margin:0 0 6px;\n      font-size:clamp(15px,1.25vw,20px);\n      font-weight:950;\n      letter-spacing:-.2px;\n      line-height:1.12;\n      color:#fff;\n      text-shadow:0 10px 24px rgba(0,0,0,.40);\n    }\n    #oba-accordion-gallery .overlay-inner p{\n      margin:0;\n      font-size:12px;\n      font-weight:750;\n      line-height:1.45;\n      color:rgba(255,255,255,.86);\n      text-shadow:0 10px 24px rgba(0,0,0,.38);\n\n      display:-webkit-box;\n      -webkit-line-clamp:1;\n      -webkit-box-orient:vertical;\n      overflow:hidden;\n    }\n\n    \/* SEO helper invizibil *\/\n    #oba-accordion-gallery .sr-only{\n      position:absolute !important;\n      width:1px;height:1px;\n      padding:0;margin:-1px;\n      overflow:hidden;\n      clip:rect(0,0,0,0);\n      white-space:nowrap;border:0;\n    }\n\n    \/* mobile swipe *\/\n    @media (max-width:900px){\n      #oba-accordion-gallery .accordion{\n        height:340px;\n        overflow-x:auto;\n        scroll-snap-type:x mandatory;\n        -webkit-overflow-scrolling:touch;\n      }\n      #oba-accordion-gallery .accordion .item{\n        flex:0 0 88%;\n        scroll-snap-align:start;\n      }\n      #oba-accordion-gallery .accordion .item:hover{ flex:0 0 88%; }\n      #oba-accordion-gallery .overlay{ padding:16px; }\n    }\n\n    @media (prefers-reduced-motion:reduce){\n      #oba-accordion-gallery .accordion .item{ transition:none; }\n      #oba-accordion-gallery .overlay-inner{ transition:none; }\n    }\n  <\/style>\n\n  <div class=\"wrap\">\n    <!-- TITLU + PARAGRAF SEO (\u00ceNAINTE) -->\n    <div class=\"seo\">\n      <div class=\"kicker\"><i><\/i> Galerie foto \u2022 O.B.A. Residence<\/div>\n      <h2>O.B.A. Residence \u2013 imagini din proiectul de apartamente noi \u00een Mamaia Nord<\/h2>\n      <p>\n        Galerie vizual\u0103 pentru <b>O.B.A. Residence<\/b>, dedicat\u0103 celor care caut\u0103 <b>apartamente noi \u00een Mamaia Nord<\/b>.\n        Imaginile surprind ansamblul, zonele exterioare \u0219i stadiul de finalizare \u2013 utile pentru a \u00een\u021belege rapid\n        conceptul proiectului \u0219i atmosfera din zon\u0103.\n      <\/p>\n    <\/div>\n\n    <!-- GALERIA -->\n    <div class=\"accordion\" role=\"list\" aria-label=\"Galerie imagini O.B.A. Residence\">\n      <div class=\"item\" role=\"listitem\" style=\"background-image:url('https:\/\/www.obadifferentbyluxury.ro\/wp-content\/uploads\/1-C.jpg');\">\n        <div class=\"overlay\"><div class=\"overlay-inner\">\n          <h3>Imagine ansamblu<\/h3>\n          <p>O.B.A. Residence \u2013 proiect reziden\u021bial \u00een Mamaia Nord.<\/p>\n          <span class=\"sr-only\">O.B.A. Residence, apartamente noi Mamaia Nord, ansamblu reziden\u021bial, exterior<\/span>\n        <\/div><\/div>\n      <\/div>\n\n      <div class=\"item\" role=\"listitem\" style=\"background-image:url('https:\/\/www.obadifferentbyluxury.ro\/wp-content\/uploads\/OBA-RESIDENCE-Apartamente-Mamaia-Nord-.jpg');\">\n        <div class=\"overlay\"><div class=\"overlay-inner\">\n          <h3>Exterior \u2022 perspectiv\u0103<\/h3>\n          <p>Arhitectur\u0103 contemporan\u0103 \u0219i volumetrie echilibrat\u0103.<\/p>\n          <span class=\"sr-only\">apartamente Mamaia Nord, O.B.A. Residence, arhitectur\u0103 modern\u0103, exterior<\/span>\n        <\/div><\/div>\n      <\/div>\n\n      <div class=\"item\" role=\"listitem\" style=\"background-image:url('https:\/\/www.obadifferentbyluxury.ro\/wp-content\/uploads\/OBA-RESIDENCE-Apartamente-Mamaia-Nord-bloc-finalizat.jpg');\">\n        <div class=\"overlay\"><div class=\"overlay-inner\">\n          <h3>Bloc finalizat<\/h3>\n          <p>Imagine real\u0103 \u2013 stadiu de finalizare \u0219i fa\u021bade.<\/p>\n          <span class=\"sr-only\">O.B.A. Residence bloc finalizat, apartamente noi, Mamaia Nord, fa\u021bad\u0103<\/span>\n        <\/div><\/div>\n      <\/div>\n\n      <div class=\"item\" role=\"listitem\" style=\"background-image:url('https:\/\/www.obadifferentbyluxury.ro\/wp-content\/uploads\/N2C.jpg');\">\n        <div class=\"overlay\"><div class=\"overlay-inner\">\n          <h3>Cadru exterior<\/h3>\n          <p>Detalii de prezentare pentru proiect \u0219i context.<\/p>\n          <span class=\"sr-only\">O.B.A. Residence, apartamente Mamaia Nord, exterior, detalii proiect<\/span>\n        <\/div><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n\n\n<!-- ================== OBA RESIDENCE \u2014 HART\u0102 LOCA\u021aIE ================== -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,400&#038;family=DM+Sans:wght@300;400;500&#038;display=swap\" rel=\"stylesheet\">\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css\"\/>\n<script src=\"https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js\"><\/script>\n\n<div id=\"res-map-section\">\n<style>\n#res-map-section, #res-map-section * { box-sizing: border-box; margin: 0; padding: 0; }\n#res-map-section {\n  --gold:  #C4973A;\n  --gold2: #9f8438;\n  --gold-dim: rgba(196,151,58,.1);\n  --gold-border: rgba(196,151,58,.3);\n  --black: #060606;\n  --white: #f7f4ef;\n  --serif: 'Cormorant Garamond', Georgia, serif;\n  --sans:  'DM Sans', system-ui, sans-serif;\n  background: var(--black);\n  font-family: var(--sans);\n  padding: 28px 0 0;\n}\n\n\/* \u2500\u2500 HEADER \u2500\u2500 *\/\n.res-map-header {\n  width: min(1320px, 92vw);\n  margin: 0 auto 18px;\n  padding-left: 20px;\n  border-left: 3px solid var(--gold);\n}\n.res-map-badge {\n  display: inline-flex; align-items: center; gap: 8px;\n  background: rgba(196,151,58,.12);\n  border: 1px solid rgba(196,151,58,.3);\n  color: #e8c97a;\n  font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;\n  padding: 6px 14px; border-radius: 100px;\n  margin-bottom: 16px;\n}\n.res-map-badge::before {\n  content: ''; width: 5px; height: 5px; border-radius: 50%;\n  background: var(--gold);\n  animation: resBadgePulse 2s ease-in-out infinite;\n}\n@keyframes resBadgePulse {\n  0%,100%{opacity:1;transform:scale(1);}\n  50%{opacity:.4;transform:scale(1.6);}\n}\n.res-map-header h2 {\n  font-family: var(--serif);\n  font-size: clamp(22px, 3vw, 36px); font-weight: 900;\n  color: var(--white); line-height: 1.12; margin: 0 0 6px;\n  letter-spacing: -.02em;\n}\n.res-map-header h2 em { font-style: italic; color: #e8c97a; }\n.res-map-header p {\n  font-size: 13px; font-weight: 300;\n  color: rgba(247,244,239,.45); line-height: 1.6;\n}\n\n\/* \u2500\u2500 WRAP HART\u0102 \u2500\u2500 *\/\n.res-map-wrap {\n  width: 100%;\n  margin: 0;\n  border-radius: 0;\n  overflow: hidden;\n  border-top: 1px solid rgba(196,151,58,.2);\n  border-bottom: none;\n  box-shadow: none;\n  display: flex;\n  flex-direction: column;\n  position: relative;\n}\n\n\/* \u2500\u2500 POI TOGGLE BAR \u2500\u2500 *\/\n#res-poi-bar {\n  background: #111;\n  border-bottom: 1px solid rgba(196,151,58,.15);\n  padding: 0 20px;\n  display: flex; align-items: center; gap: 8px;\n  height: 62px; flex-shrink: 0;\n  overflow-x: auto; scrollbar-width: none;\n  position: relative; z-index: 500;\n}\n#res-poi-bar::-webkit-scrollbar { display: none; }\n\n.res-poi-label {\n  font-size: 8.5px; font-weight: 600; letter-spacing: .22em;\n  text-transform: uppercase; color: var(--gold);\n  white-space: nowrap; padding-right: 16px;\n  border-right: 1px solid rgba(196,151,58,.2);\n  margin-right: 4px; flex-shrink: 0;\n  font-family: var(--sans);\n}\n\n.res-poi-toggle {\n  display: flex; align-items: center; gap: 8px;\n  padding: 9px 13px 9px 9px;\n  border-radius: 8px;\n  border: 1.5px solid rgba(255,255,255,.08);\n  background: rgba(255,255,255,.04);\n  cursor: pointer;\n  transition: all .22s cubic-bezier(.2,.8,.2,1);\n  white-space: nowrap; flex-shrink: 0;\n  user-select: none; position: relative;\n}\n.res-poi-toggle:hover {\n  transform: translateY(-2px);\n  border-color: rgba(255,255,255,.16);\n  background: rgba(255,255,255,.08);\n}\n.res-poi-toggle.on {\n  border-color: var(--cat-color, #C4973A);\n  background: rgba(255,255,255,.05);\n  box-shadow: 0 4px 14px rgba(0,0,0,.3);\n}\n.res-poi-toggle.on:hover {\n  box-shadow: 0 6px 20px rgba(0,0,0,.4);\n}\n.res-poi-toggle::after {\n  content: ''; position: absolute; bottom: 0; left: 50%;\n  transform: translateX(-50%) scaleX(0);\n  width: 60%; height: 2px;\n  background: var(--cat-color, var(--gold));\n  border-radius: 2px 2px 0 0;\n  transition: transform .22s;\n}\n.res-poi-toggle.on::after { transform: translateX(-50%) scaleX(1); }\n\n.res-poi-ico {\n  width: 30px; height: 30px; border-radius: 7px;\n  background: rgba(255,255,255,.07);\n  display: flex; align-items: center; justify-content: center;\n  flex-shrink: 0;\n  transition: background .2s;\n  color: rgba(255,255,255,.5);\n}\n.res-poi-toggle.on .res-poi-ico {\n  background: var(--cat-color, var(--gold));\n  color: #fff;\n}\n.res-poi-lbl {\n  font-size: 12px; font-weight: 500;\n  color: rgba(255,255,255,.55);\n  letter-spacing: .01em; line-height: 1;\n  transition: color .2s;\n}\n.res-poi-toggle.on .res-poi-lbl { color: var(--cat-color, var(--gold)); }\n\n.res-poi-check {\n  width: 15px; height: 15px; border-radius: 4px;\n  border: 1.5px solid rgba(255,255,255,.15);\n  display: flex; align-items: center; justify-content: center;\n  flex-shrink: 0; transition: all .2s; background: transparent;\n}\n.res-poi-check svg {\n  width: 8px; height: 8px; stroke: transparent;\n  stroke-width: 2.5; fill: none;\n  stroke-linecap: round; stroke-linejoin: round;\n  transition: stroke .15s;\n}\n.res-poi-toggle.on .res-poi-check {\n  border-color: var(--cat-color, var(--gold));\n  background: var(--cat-color, var(--gold));\n}\n.res-poi-toggle.on .res-poi-check svg { stroke: #111; }\n\n\/* \u2500\u2500 MAP \u2500\u2500 *\/\n#res-map {\n  height: 560px; width: 100%;\n  background: #1a1a1a;\n}\n\n\/* leaflet overrides *\/\n#res-map-section .leaflet-container {\n  font-family: var(--sans) !important;\n  background: #1a1a1a !important;\n}\n#res-map-section .leaflet-tile {\n  filter: saturate(.6) brightness(.85) contrast(1.06) !important;\n}\n#res-map-section .leaflet-control-zoom {\n  border: none !important;\n  box-shadow: 0 2px 12px rgba(0,0,0,.4) !important;\n  border-radius: 8px !important; overflow: hidden;\n}\n#res-map-section .leaflet-control-zoom a {\n  background: #1a1a1a !important; color: #fff !important;\n  width: 32px !important; height: 32px !important;\n  line-height: 32px !important;\n  border-bottom: 1px solid rgba(255,255,255,.08) !important;\n  display: flex !important; align-items: center !important; justify-content: center !important;\n}\n#res-map-section .leaflet-control-zoom a:hover { background: #222 !important; }\n#res-map-section .leaflet-control-attribution {\n  background: rgba(0,0,0,.5) !important;\n  color: rgba(255,255,255,.35) !important;\n  font-size: 9px !important;\n}\n\n\/* \u2500\u2500 MARKER PROIECT \u2500\u2500 *\/\n.res-proj-mk {\n  width: 54px; height: 54px; border-radius: 50%;\n  overflow: hidden;\n  border: 3px solid var(--gold);\n  box-shadow: 0 0 0 3px rgba(196,151,58,.35), 0 4px 16px rgba(0,0,0,.5);\n  background: #222;\n}\n.res-proj-mk img { width:100%; height:100%; object-fit:cover; display:block; }\n.res-mk-ring {\n  position: absolute; top:50%; left:50%;\n  transform: translate(-50%,-50%);\n  width: 74px; height: 74px; border-radius: 50%;\n  border: 2px solid rgba(196,151,58,.45);\n  animation: resMkRing 1.8s ease infinite;\n  pointer-events: none;\n}\n@keyframes resMkRing {\n  0%  { transform:translate(-50%,-50%) scale(.7); opacity:.5; }\n  70% { transform:translate(-50%,-50%) scale(1.5); opacity:0; }\n  100%{ transform:translate(-50%,-50%) scale(1.5); opacity:0; }\n}\n\n\/* \u2500\u2500 POPUP PROIECT \u2500\u2500 *\/\n#res-map-section .leaflet-popup-content-wrapper {\n  background: #111 !important; border: 1px solid rgba(196,151,58,.25) !important;\n  border-radius: 14px !important; padding: 0 !important; overflow: hidden;\n  box-shadow: 0 14px 40px rgba(0,0,0,.6) !important;\n  min-width: 240px;\n}\n#res-map-section .leaflet-popup-tip { background: #111 !important; }\n#res-map-section .leaflet-popup-close-button {\n  color: rgba(255,255,255,.6) !important; top: 8px !important; right: 10px !important;\n  font-size: 18px !important;\n}\n#res-map-section .leaflet-popup-content { margin: 0 !important; width: auto !important; }\n\n.res-pu-img { height: 120px; overflow: hidden; position: relative; }\n.res-pu-img img { width:100%; height:100%; object-fit:cover; display:block; }\n.res-pu-img::after {\n  content:''; position:absolute; inset:0;\n  background: linear-gradient(180deg, transparent, rgba(0,0,0,.6));\n}\n.res-pu-badge {\n  position:absolute; bottom:9px; left:12px; z-index:2;\n  font-size:9px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;\n  color:rgba(255,255,255,.8);\n  background: rgba(196,151,58,.25);\n  border: 1px solid rgba(196,151,58,.4);\n  padding: 3px 8px; border-radius: 3px;\n  font-family: var(--sans);\n}\n.res-pu-body { padding: 13px 15px 15px; }\n.res-pu-name {\n  font-family: var(--serif); font-size:18px; font-weight:600;\n  color: var(--white); letter-spacing:-.01em; line-height:1.2; margin-bottom:5px;\n}\n.res-pu-addr {\n  font-size:11px; color:rgba(255,255,255,.4); font-weight:300;\n  display:flex; align-items:flex-start; gap:4px; line-height:1.4; margin-bottom:12px;\n}\n.res-pu-addr svg { width:10px; height:10px; fill:var(--gold); flex-shrink:0; margin-top:1px; }\n.res-pu-btn {\n  display:flex; align-items:center; justify-content:center; gap:6px;\n  width:100%; padding:11px;\n  background: linear-gradient(135deg, var(--gold), var(--gold2));\n  color: #111; font-family:var(--sans);\n  font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;\n  border-radius: 8px; text-decoration:none; transition:filter .2s;\n}\n.res-pu-btn:hover { filter: brightness(1.08); }\n.res-pu-btn svg { width:12px; height:12px; stroke:currentColor; stroke-width:2.2; fill:none; stroke-linecap:round; stroke-linejoin:round; }\n\n\/* \u2500\u2500 POPUP POI \u2500\u2500 *\/\n#res-map-section .poi-popup-leaf .leaflet-popup-content-wrapper {\n  background: #111 !important;\n  border: 1px solid rgba(255,255,255,.1) !important;\n  border-radius: 12px !important;\n  padding: 0 !important; overflow: hidden;\n  box-shadow: 0 12px 36px rgba(0,0,0,.6) !important;\n}\n#res-map-section .poi-popup-leaf .leaflet-popup-tip { background: #111 !important; }\n#res-map-section .poi-popup-leaf .leaflet-popup-content { margin:0 !important; width:auto !important; }\n#res-map-section .poi-popup-leaf .leaflet-popup-close-button {\n  color: rgba(255,255,255,.5) !important; top:6px !important; right:8px !important;\n}\n\n.res-poi-pu {\n  width: 220px; font-family: var(--sans);\n  background: #111;\n}\n.res-poi-pu-hero {\n  height: 60px;\n  background: var(--pp-color, #333);\n  display: flex; align-items: center; justify-content: center;\n  position: relative;\n}\n.res-poi-pu-ico {\n  width: 38px; height: 38px; border-radius: 9px;\n  background: rgba(255,255,255,.15); border: 1.5px solid rgba(255,255,255,.3);\n  display: flex; align-items: center; justify-content: center; color: #fff;\n}\n.res-poi-pu-cat {\n  position:absolute; bottom:7px; left:10px;\n  font-size:8px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;\n  color:rgba(255,255,255,.7);\n  font-family: var(--sans);\n}\n.res-poi-pu-body { padding: 11px 13px 0; }\n.res-poi-pu-name {\n  font-family: var(--serif); font-size:16px; font-weight:600;\n  color: var(--white); line-height:1.2; margin-bottom:6px;\n}\n.res-poi-pu-dist {\n  font-size:11px; color:rgba(255,255,255,.4); font-weight:300;\n  display:flex; align-items:center; gap:4px; margin-bottom:11px;\n}\n.res-poi-pu-dist svg { width:10px; height:10px; fill:var(--pp-color); flex-shrink:0; }\n.res-poi-pu-btn {\n  display:flex; align-items:center; justify-content:center;\n  width:100%; padding:10px;\n  background: rgba(255,255,255,.06);\n  border-top: 1px solid rgba(255,255,255,.07);\n  color:rgba(255,255,255,.5); font-size:10.5px; font-weight:600;\n  letter-spacing:.08em; text-transform:uppercase; cursor:default;\n  font-family:var(--sans);\n}\n\n\/* \u2500\u2500 LOADING \u2500\u2500 *\/\n#res-map-loading {\n  position:absolute; inset:0; background:rgba(6,6,6,.75);\n  display:flex; align-items:center; justify-content:center;\n  z-index:1000; backdrop-filter:blur(4px); transition:opacity .4s;\n}\n#res-map-loading .spin {\n  width:28px; height:28px; border-radius:50%;\n  border:2px solid rgba(196,151,58,.2); border-top-color:var(--gold);\n  animation:resSpin .8s linear infinite;\n}\n@keyframes resSpin { to { transform:rotate(360deg); } }\n\n#res-poi-loading {\n  position:absolute; bottom:14px; left:50%; transform:translateX(-50%);\n  background:rgba(0,0,0,.8); border:1px solid rgba(196,151,58,.2);\n  border-radius:20px; padding:6px 14px;\n  display:none; align-items:center; gap:8px;\n  font-size:11px; color:rgba(255,255,255,.5); z-index:800;\n  backdrop-filter:blur(8px); font-family:var(--sans);\n}\n#res-poi-loading.vis { display:flex; }\n#res-poi-loading .spin {\n  width:13px; height:13px; border-radius:50%;\n  border:2px solid rgba(196,151,58,.2); border-top-color:var(--gold);\n  animation:resSpin .7s linear infinite;\n}\n\n@media (max-width: 768px) {\n  #res-map { height: 400px; }\n  #res-poi-bar { height: 52px; gap: 6px; padding: 0 10px; }\n  .res-poi-label { display: none; }\n  .res-poi-toggle { padding: 7px 10px 7px 8px; gap: 6px; }\n  .res-poi-ico { width: 26px; height: 26px; }\n  .res-poi-lbl { font-size: 11px; }\n  .res-poi-check { width: 13px; height: 13px; }\n  .res-map-header { padding-left: 16px; }\n}\n<\/style>\n\n<!-- HEADER -->\n<div class=\"res-map-header\">\n  <div class=\"res-map-badge\">O.B.A. Residence \u00b7 Loca\u021bie<\/div>\n  <h2>Unde ne g\u0103se\u0219ti \u2014 <em>Mamaia Nord<\/em><\/h2>\n  <p>Exploreaz\u0103 loca\u021bia \u0219i punctele de interes din apropiere. Activeaz\u0103 categoriile pentru a vedea ce ai \u00een jur.<\/p>\n<\/div>\n\n<!-- WRAP HART\u0102 -->\n<div class=\"res-map-wrap\">\n\n  <!-- POI BAR -->\n  <div id=\"res-poi-bar\">\n    <span class=\"res-poi-label\">Exploreaz\u0103 zona<\/span>\n    <!-- injectat de JS -->\n  <\/div>\n\n  <!-- MAP -->\n  <div id=\"res-map\"><\/div>\n\n  <!-- LOADING -->\n  <div id=\"res-map-loading\"><div class=\"spin\"><\/div><\/div>\n  <div id=\"res-poi-loading\">\n    <div class=\"spin\"><\/div>\n    <span>Se caut\u0103 loca\u021bii&#8230;<\/span>\n  <\/div>\n\n<\/div>\n<\/div>\n\n<script>\n(function(){\n\n\/* \u2500\u2500 PROIECT \u2500\u2500 *\/\nconst PROJ = {\n  id:   'residence',\n  name: 'O.B.A. Residence',\n  addr: 'Mamaia Nord, N\u0103vodari',\n  url:  'https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/proiecte-finalizate\/urban-residence\/',\n  img:  'https:\/\/www.obadifferentbyluxury.ro\/wp-content\/uploads\/OBA-RESIDENCE-Apartamente-Mamaia-Nord-finisaje-premium.jpg',\n  lat:  44.29532464980549,\n  lng:  28.617278221245765\n};\n\n\/* \u2500\u2500 SVG ICONS \u2500\u2500 *\/\nconst ICO = {\n  shopping: `<svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"M3 3h2l.4 2M7 13h10l1.4-7H5.4M7 13l-1.4-7M7 13a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm10 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>`,\n  food:     `<svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"M6 2v4a3 3 0 0 0 3 3v9M6 2C6 2 4 3 4 6s2 3 2 3M14 2s1 2 1 5-1 4-1 4v5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>`,\n  education:`<svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"M2 8l8-5 8 5-8 5-8-5z\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linejoin=\"round\"\/><path d=\"M5 9.5v5c0 1.5 2 2.5 5 2.5s5-1 5-2.5v-5\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"\/><\/svg>`,\n  health:   `<svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"M10 3C6 3 3 6 3 10s3 7 7 7 7-3 7-7-3-7-7-7z\" stroke=\"currentColor\" stroke-width=\"1.6\"\/><path d=\"M10 7v6M7 10h6\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"\/><\/svg>`,\n  transport:`<svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><rect x=\"3\" y=\"4\" width=\"14\" height=\"9\" rx=\"2\" stroke=\"currentColor\" stroke-width=\"1.6\"\/><path d=\"M7 17h6M10 13v4M3 8h14\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\"\/><circle cx=\"6.5\" cy=\"10.5\" r=\"1\" fill=\"currentColor\"\/><circle cx=\"13.5\" cy=\"10.5\" r=\"1\" fill=\"currentColor\"\/><\/svg>`,\n  leisure:  `<svg viewBox=\"0 0 20 20\" fill=\"none\" width=\"14\" height=\"14\"><path d=\"M10 2l2 6h6l-5 3.5 2 6L10 14l-5 3.5 2-6L2 8h6l2-6z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"\/><\/svg>`\n};\n\nconst CATS = [\n  { id:'shopping',  label:'Cump\u0103r\u0103turi', color:'#DC2626',\n    filter: el => { const t=el.tags||{}; return t.shop||['pharmacy','bank','atm'].includes(t.amenity); },\n    name:   t => t.name||t.brand||t['name:ro']||null },\n  { id:'food',      label:'Restaurante', color:'#92400E',\n    filter: el => { const t=el.tags||{}; return ['restaurant','cafe','fast_food','bar','pub','ice_cream'].includes(t.amenity); },\n    name:   t => t.name||t['name:ro']||null },\n  { id:'education', label:'Educa\u021bie',    color:'#1D4ED8',\n    filter: el => { const t=el.tags||{}; return ['school','kindergarten','university','library'].includes(t.amenity); },\n    name:   t => t.name||t['name:ro']||null },\n  { id:'health',    label:'S\u0103n\u0103tate',    color:'#15803D',\n    filter: el => { const t=el.tags||{}; return ['hospital','clinic','doctors','dentist','pharmacy'].includes(t.amenity); },\n    name:   t => t.name||t['name:ro']||null },\n  { id:'transport', label:'Transport',   color:'#B45309',\n    filter: el => { const t=el.tags||{}; return t.highway==='bus_stop'||t.amenity==='bus_station'||['station','halt'].includes(t.railway); },\n    name:   t => t.name||t['name:ro']||t.ref||'Sta\u021bie' },\n  { id:'leisure',   label:'Timp liber',  color:'#EA580C',\n    filter: el => { const t=el.tags||{}; return ['park','playground','sports_centre','swimming_pool','beach_resort'].includes(t.leisure)||['cinema','theatre'].includes(t.amenity)||['attraction','viewpoint'].includes(t.tourism); },\n    name:   t => t.name||t['name:ro']||null }\n];\n\n\/* \u2500\u2500 MAP \u2500\u2500 *\/\nconst map = L.map('res-map', {\n  center: [PROJ.lat, PROJ.lng], zoom: 16,\n  zoomControl: false, attributionControl: true\n});\n\nL.tileLayer('https:\/\/{s}.basemaps.cartocdn.com\/rastertiles\/voyager\/{z}\/{x}\/{y}{r}.png', {\n  attribution: '\u00a9 <a href=\"https:\/\/www.openstreetmap.org\/copyright\">OpenStreetMap<\/a> \u00a9 <a href=\"https:\/\/carto.com\/\">CARTO<\/a>',\n  subdomains: 'abcd', maxZoom: 20\n}).addTo(map);\n\nL.control.zoom({ position: 'bottomleft' }).addTo(map);\n\n\/* \u2500\u2500 MARKER PROIECT \u2500\u2500 *\/\nconst projIcon = L.divIcon({\n  className: '',\n  html: `<div style=\"position:relative;width:54px;height:54px\">\n    <div class=\"res-proj-mk\"><img decoding=\"async\" src=\"${PROJ.img}\" alt=\"${PROJ.name}\" loading=\"lazy\"\/><\/div>\n    <div class=\"res-mk-ring\"><\/div>\n  <\/div>`,\n  iconSize: [54,54], iconAnchor: [27,27], popupAnchor: [0,-34]\n});\n\nconst projMarker = L.marker([PROJ.lat, PROJ.lng], { icon: projIcon })\n  .addTo(map)\n  .bindPopup(`\n    <div>\n      <div class=\"res-pu-img\">\n        <img decoding=\"async\" src=\"${PROJ.img}\" alt=\"${PROJ.name}\" loading=\"lazy\"\/>\n        <div class=\"res-pu-badge\">Finalizat<\/div>\n      <\/div>\n      <div class=\"res-pu-body\">\n        <div class=\"res-pu-name\">${PROJ.name}<\/div>\n        <div class=\"res-pu-addr\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"\/><\/svg>\n          ${PROJ.addr}\n        <\/div>\n        <a class=\"res-pu-btn\" href=\"${PROJ.url}\" target=\"_blank\" rel=\"noopener\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M3 21h18\"\/><path d=\"M6 21V8l6-4 6 4v13\"\/><\/svg>\n          Vezi proiectul\n          <svg viewBox=\"0 0 24 24\"><path d=\"M5 12h14\"\/><path d=\"M13 6l6 6-6 6\"\/><\/svg>\n        <\/a>\n      <\/div>\n    <\/div>\n  `, { maxWidth:260, minWidth:240, closeButton:true, autoClose:false });\n\nsetTimeout(() => projMarker.openPopup(), 800);\n\n\/* \u2500\u2500 POI LAYERS \u2500\u2500 *\/\nconst catState  = {};\nconst catLayers = {};\nCATS.forEach(c => { catState[c.id] = false; catLayers[c.id] = L.layerGroup().addTo(map); });\n\nlet poiCache = null;\n\n\/* \u2500\u2500 TOGGLE BAR \u2500\u2500 *\/\nconst bar = document.getElementById('res-poi-bar');\nCATS.forEach(cat => {\n  const btn = document.createElement('button');\n  btn.className = 'res-poi-toggle';\n  btn.dataset.cat = cat.id;\n  btn.style.setProperty('--cat-color', cat.color);\n  btn.innerHTML = `\n    <div class=\"res-poi-ico\" style=\"color:${cat.color}\">${ICO[cat.id]}<\/div>\n    <span class=\"res-poi-lbl\">${cat.label}<\/span>\n    <div class=\"res-poi-check\"><svg viewBox=\"0 0 10 10\"><polyline points=\"1.5,5 4,7.5 8.5,2.5\"\/><\/svg><\/div>\n  `;\n  btn.addEventListener('click', () => toggleCat(cat.id));\n  bar.appendChild(btn);\n});\n\nfunction toggleCat(catId) {\n  catState[catId] = !catState[catId];\n  bar.querySelector(`[data-cat=\"${catId}\"]`).classList.toggle('on', catState[catId]);\n  refreshPOI();\n}\n\n\/* \u2500\u2500 OVERPASS \u2500\u2500 *\/\nfunction buildQuery(lat, lng) {\n  const R = 1500;\n  return `[out:json][timeout:15];(\n    node[\"shop\"](around:${R},${lat},${lng});\n    node[\"amenity\"~\"restaurant|cafe|fast_food|bar|pub|pharmacy|bank|hospital|clinic|doctors|dentist|bus_station\"](around:${R},${lat},${lng});\n    node[\"highway\"=\"bus_stop\"](around:${R},${lat},${lng});\n    node[\"leisure\"~\"park|playground|sports_centre|swimming_pool|beach_resort\"](around:${R},${lat},${lng});\n    node[\"tourism\"~\"attraction|viewpoint\"](around:${R},${lat},${lng});\n    node[\"railway\"~\"station|halt\"](around:${R},${lat},${lng});\n    way[\"amenity\"~\"school|kindergarten|university|library|hospital|restaurant|cafe\"](around:${R},${lat},${lng});\n    way[\"shop\"~\"supermarket|mall\"](around:${R},${lat},${lng});\n    way[\"leisure\"~\"park|beach_resort\"](around:${R},${lat},${lng});\n  );out center 200;`;\n}\n\nfunction haversine(lat1,lon1,lat2,lon2) {\n  const R=6371000, d2r=Math.PI\/180;\n  const dLat=(lat2-lat1)*d2r, dLon=(lon2-lon1)*d2r;\n  const a=Math.sin(dLat\/2)**2+Math.cos(lat1*d2r)*Math.cos(lat2*d2r)*Math.sin(dLon\/2)**2;\n  return Math.round(R*2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a)));\n}\n\nlet fetchPromise = null;\nasync function getPOI() {\n  if (poiCache) return poiCache;\n  if (fetchPromise) return fetchPromise;\n  fetchPromise = (async () => {\n    const res = await fetch('https:\/\/overpass-api.de\/api\/interpreter', {\n      method:'POST', body:buildQuery(PROJ.lat, PROJ.lng),\n      signal: AbortSignal.timeout(14000)\n    });\n    const data = await res.json();\n    const buckets = {};\n    CATS.forEach(c => { buckets[c.id] = []; });\n    (data.elements||[]).forEach(el => {\n      const t = el.tags||{};\n      const lat = el.lat ?? el.center?.lat;\n      const lng = el.lon ?? el.center?.lon;\n      if (!lat||!lng) return;\n      const dist = haversine(PROJ.lat, PROJ.lng, lat, lng);\n      CATS.forEach(cat => {\n        if (!cat.filter(el)) return;\n        const nm = cat.name(t);\n        if (!nm) return;\n        buckets[cat.id].push({ lat, lng, name:nm, dist });\n      });\n    });\n    CATS.forEach(cat => {\n      const seen = new Set();\n      buckets[cat.id] = buckets[cat.id]\n        .filter(x => { const k=`${x.lat}_${x.lng}`; if(seen.has(k))return false; seen.add(k); return true; })\n        .sort((a,b)=>a.dist-b.dist).slice(0,25);\n    });\n    poiCache = buckets;\n    return buckets;\n  })();\n  return fetchPromise;\n}\n\nfunction poiIcon(cat) {\n  return L.divIcon({\n    className:'',\n    html:`<div style=\"width:28px;height:28px;border-radius:5px;background:${cat.color};border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 8px rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer\">${ICO[cat.id]}<\/div>`,\n    iconSize:[28,28], iconAnchor:[14,14], popupAnchor:[0,-16]\n  });\n}\n\nfunction distLabel(m) { return m<1000?`${m} m distan\u021b\u0103`:`${(m\/1000).toFixed(1)} km distan\u021b\u0103`; }\n\nlet refreshToken = 0;\nasync function refreshPOI() {\n  const token = ++refreshToken;\n  CATS.forEach(c => catLayers[c.id].clearLayers());\n  const active = CATS.filter(c => catState[c.id]);\n  if (!active.length) return;\n\n  const loadEl = document.getElementById('res-poi-loading');\n  if (!poiCache) loadEl.classList.add('vis');\n\n  let buckets;\n  try { buckets = await getPOI(); }\n  catch(e) { loadEl.classList.remove('vis'); return; }\n\n  loadEl.classList.remove('vis');\n  if (token !== refreshToken) return;\n\n  CATS.forEach(c => catLayers[c.id].clearLayers());\n  CATS.filter(c => catState[c.id]).forEach(cat => {\n    (buckets[cat.id]||[]).forEach(item => {\n      const mk = L.marker([item.lat, item.lng], { icon: poiIcon(cat) });\n      mk.bindPopup(`\n        <div class=\"res-poi-pu\" style=\"--pp-color:${cat.color}\">\n          <div class=\"res-poi-pu-hero\">\n            <div class=\"res-poi-pu-ico\">${ICO[cat.id]}<\/div>\n            <span class=\"res-poi-pu-cat\">${cat.label}<\/span>\n          <\/div>\n          <div class=\"res-poi-pu-body\">\n            <div class=\"res-poi-pu-name\">${item.name}<\/div>\n            <div class=\"res-poi-pu-dist\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"\/><\/svg>\n              ${distLabel(item.dist)}\n            <\/div>\n          <\/div>\n          <div class=\"res-poi-pu-btn\">Zon\u0103 ${cat.label.toLowerCase()}<\/div>\n        <\/div>\n      `, { maxWidth:220, closeButton:false, className:'poi-popup-leaf', autoClose:false, closeOnClick:false });\n      mk.on('mouseover', function(){ this.openPopup(); });\n      mk.on('mouseout',  function(){ this.closePopup(); });\n      catLayers[cat.id].addLayer(mk);\n    });\n  });\n}\n\n\/* \u2500\u2500 LOADING HIDE \u2500\u2500 *\/\nconst ld = document.getElementById('res-map-loading');\nmap.whenReady(() => {\n  ld.style.opacity='0';\n  setTimeout(()=>ld.style.display='none', 400);\n  setTimeout(()=>map.invalidateSize(), 100);\n});\n\nwindow.addEventListener('resize', ()=>{ setTimeout(()=>map.invalidateSize(), 200); });\n\n})();\n<\/script>\n<!-- ================== END OBA RESIDENCE HART\u0102 ================== -->\n\n\n\n<!-- ================== OBA \u2014 CTA PREMIUM ================== --> <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"> <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin> <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&#038;family=DM+Sans:wght@300;400;500&#038;display=swap\" rel=\"stylesheet\"> <section id=\"oba-cta\" aria-labelledby=\"oba-cta-title\"> <style> #oba-cta { --gold: #C4973A; --gold2: #9f8438; --gold-dim: rgba(196,151,58,0.10); --gold-border: rgba(196,151,58,0.22); --ink: #0E0E0E; --ink-soft: #1C1C1E; --muted: #6B6B6B; --line: rgba(255,255,255,0.09); --serif: 'Cormorant Garamond', Georgia, serif; --sans: 'DM Sans', system-ui, sans-serif; width: 100vw !important; max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; background: #0D0F14; position: relative; overflow: hidden; } #oba-cta * { box-sizing: border-box; margin: 0; padding: 0; } #oba-cta a { text-decoration: none; color: inherit; } #oba-cta::before { content: ''; position: absolute; inset: 0; background: radial-gradient(900px 600px at 10% 40%, rgba(196,151,58,0.09), transparent 55%), radial-gradient(700px 500px at 90% 20%, rgba(196,151,58,0.05), transparent 55%); pointer-events: none; } #oba-cta::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(196,151,58,0.5) 40%, rgba(196,151,58,0.15) 100%); } #oba-cta .wrap { position: relative; z-index: 1; width: min(1280px, 92vw); margin: 0 auto; padding: clamp(64px, 8vw, 110px) 0; } \/* ===== LAYOUT GRID ===== *\/ #oba-cta .grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(460px, 520px); gap: clamp(40px, 5vw, 84px); align-items: start; } \/* ===== ST\u00c2NGA ===== *\/ #oba-cta .eyebrow { font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); margin-bottom: 20px; display: flex; align-items: center; gap: 10px; } #oba-cta .eyebrow::before { content: ''; width: 24px; height: 1px; background: var(--gold); flex-shrink: 0; } #oba-cta .eyebrow i { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 3px rgba(196,151,58,0.2); animation: obaPulse 2.4s ease infinite; display: inline-block; flex-shrink: 0; } @keyframes obaPulse { 0%, 100% { opacity: 1; box-shadow: 0 0 0 3px rgba(196,151,58,0.2); } 50% { opacity: 0.7; box-shadow: 0 0 0 6px rgba(196,151,58,0.08); } } #oba-cta h2 { font-family: var(--serif); font-size: clamp(34px, 3.6vw, 56px); font-weight: 400; line-height: 1.08; letter-spacing: -0.02em; color: #ffffff; margin-bottom: 24px; text-wrap: balance; max-width: 16ch; } #oba-cta h2 em { font-style: italic; color: var(--gold); } #oba-cta .lead { font-family: var(--sans); font-size: 15.5px; line-height: 1.8; color: rgba(255,255,255,0.58); font-weight: 300; max-width: 56ch; margin-bottom: 44px; } #oba-cta .lead strong { color: rgba(255,255,255,0.88); font-weight: 500; } \/* ===== MINI CARDS ===== *\/ #oba-cta .mini-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 40px; } #oba-cta .mini-card { display: flex; align-items: flex-start; gap: 12px; padding: 16px; background: rgba(255,255,255,0.04); border: 1px solid var(--line); border-radius: 14px; transition: background 0.2s, border-color 0.2s; } #oba-cta .mini-card:hover { background: rgba(255,255,255,0.07); border-color: var(--gold-border); } #oba-cta .mini-ico { width: 36px; height: 36px; flex-shrink: 0; border-radius: 10px; background: var(--gold-dim); border: 1px solid var(--gold-border); display: flex; align-items: center; justify-content: center; color: var(--gold); margin-top: 1px; } #oba-cta .mini-ico svg { width: 17px; height: 17px; stroke: currentColor; stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round; } #oba-cta .mini-card b { display: block; font-family: var(--sans); font-size: 13px; font-weight: 600; color: rgba(255,255,255,0.9); margin-bottom: 3px; line-height: 1.3; } #oba-cta .mini-card span { font-family: var(--sans); font-size: 12.5px; color: rgba(255,255,255,0.42); font-weight: 300; line-height: 1.5; } \/* ===== BUTOANE ===== *\/ #oba-cta .actions { display: flex; gap: 12px; flex-wrap: wrap; } #oba-cta .btn { display: inline-flex; align-items: center; gap: 9px; padding: 14px 26px; border-radius: 10px; font-family: var(--sans); font-size: 13.5px; font-weight: 500; letter-spacing: 0.01em; border: 1.5px solid transparent; cursor: pointer; transition: all 0.22s ease; white-space: nowrap; } #oba-cta .btn svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; transition: transform 0.22s ease; } #oba-cta .btn:hover svg { transform: translateX(3px); } #oba-cta .btn-primary { background: linear-gradient(135deg, var(--gold), var(--gold2)); color: #0E0E0E; font-weight: 600; border-color: transparent; } #oba-cta .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(196,151,58,0.28); } #oba-cta .btn-ghost { background: transparent; color: rgba(255,255,255,0.75); border-color: rgba(255,255,255,0.15); } #oba-cta .btn-ghost:hover { background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.95); border-color: rgba(255,255,255,0.25); } \/* ===== DREAPTA \u2014 FORM CARD ===== *\/ #oba-cta .form-card { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.10); border-radius: 22px; overflow: hidden; position: relative; backdrop-filter: blur(12px); box-shadow: 0 18px 60px rgba(0,0,0,0.22); } #oba-cta .form-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--gold), rgba(196,151,58,0.3)); } #oba-cta .form-head { padding: 24px 26px 20px; border-bottom: 1px solid rgba(255,255,255,0.07); display: flex; align-items: center; justify-content: space-between; gap: 14px; } #oba-cta .form-title { font-family: var(--serif); font-size: 24px; font-weight: 600; color: #fff; letter-spacing: -0.01em; line-height: 1.15; } #oba-cta .form-sub { font-family: var(--sans); font-size: 13px; color: rgba(255,255,255,0.44); font-weight: 300; margin-top: 4px; line-height: 1.5; } #oba-cta .form-badge { display: inline-flex; align-items: center; gap: 6px; font-family: var(--sans); font-size: 11px; font-weight: 500; color: var(--gold); background: var(--gold-dim); border: 1px solid var(--gold-border); border-radius: 999px; padding: 7px 13px; white-space: nowrap; flex-shrink: 0; } #oba-cta .form-badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); animation: obaPulse 2.4s ease infinite; } #oba-cta .form-body { padding: 24px; } #oba-cta .wpforms-wrap { min-height: 500px; } \/* ===== WPFORMS TUNING ===== *\/ #oba-cta .wpforms-container, #oba-cta .wpforms-form, #oba-cta .wpforms-field-container, #oba-cta .wpforms-wrap { width: 100% !important; max-width: 100% !important; } #oba-cta .wpforms-container-full { margin: 0 !important; } #oba-cta .wpforms-field { padding: 0 !important; margin-bottom: 14px !important; } #oba-cta .wpforms-field label { display: block !important; margin-bottom: 8px !important; color: rgba(255,255,255,0.78) !important; font-family: var(--sans) !important; font-size: 13px !important; font-weight: 400 !important; } #oba-cta .wpforms-field input[type=\"text\"], #oba-cta .wpforms-field input[type=\"email\"], #oba-cta .wpforms-field input[type=\"tel\"], #oba-cta .wpforms-field input[type=\"number\"], #oba-cta .wpforms-field textarea, #oba-cta .wpforms-field select { width: 100% !important; max-width: 100% !important; min-height: 52px !important; padding: 14px 16px !important; border-radius: 12px !important; border: 1px solid rgba(255,255,255,0.10) !important; background: rgba(255,255,255,0.04) !important; color: #ffffff !important; font-family: var(--sans) !important; font-size: 14px !important; line-height: 1.4 !important; box-shadow: none !important; outline: none !important; } #oba-cta .wpforms-field textarea { min-height: 120px !important; resize: vertical !important; } #oba-cta .wpforms-field input::placeholder, #oba-cta .wpforms-field textarea::placeholder { color: rgba(255,255,255,0.42) !important; opacity: 1 !important; } #oba-cta .wpforms-field input:focus, #oba-cta .wpforms-field textarea:focus, #oba-cta .wpforms-field select:focus { border-color: rgba(196,151,58,0.65) !important; box-shadow: 0 0 0 3px rgba(196,151,58,0.12) !important; } #oba-cta .wpforms-field-description, #oba-cta .wpforms-description { color: rgba(255,255,255,0.42) !important; font-family: var(--sans) !important; font-size: 12px !important; } #oba-cta .wpforms-error { color: #ffb3b3 !important; font-size: 12px !important; margin-top: 6px !important; font-family: var(--sans) !important; } #oba-cta .wpforms-required-label { color: var(--gold) !important; } #oba-cta .wpforms-submit-container { padding: 0 !important; margin-top: 10px !important; } #oba-cta button.wpforms-submit, #oba-cta .wpforms-page-button, #oba-cta input[type=\"submit\"].wpforms-submit { width: 100% !important; min-height: 54px !important; border: 0 !important; border-radius: 12px !important; background: linear-gradient(135deg, var(--gold), var(--gold2)) !important; color: #0E0E0E !important; font-family: var(--sans) !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0.01em !important; cursor: pointer !important; transition: transform 0.22s ease, box-shadow 0.22s ease !important; box-shadow: none !important; padding: 14px 20px !important; } #oba-cta button.wpforms-submit:hover, #oba-cta .wpforms-page-button:hover, #oba-cta input[type=\"submit\"].wpforms-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(196,151,58,0.28) !important; } #oba-cta .wpforms-confirmation-container-full, #oba-cta .wpforms-confirmation-container { border-radius: 12px !important; padding: 14px 16px !important; font-family: var(--sans) !important; font-size: 13px !important; line-height: 1.6 !important; background: rgba(255,255,255,0.05) !important; color: rgba(255,255,255,0.82) !important; border: 1px solid rgba(196,151,58,0.18) !important; margin-top: 12px !important; } \/* ===== RESPONSIVE ===== *\/ @media (max-width: 1120px) { #oba-cta .grid { grid-template-columns: 1fr; gap: 48px; } #oba-cta h2 { max-width: none; } #oba-cta .lead { max-width: none; } } @media (max-width: 767px) { #oba-cta .wrap { width: min(94vw, 94vw); padding: 56px 0; } #oba-cta .mini-grid { grid-template-columns: 1fr; } #oba-cta .actions { flex-direction: column; } #oba-cta .btn { justify-content: center; width: 100%; } #oba-cta .form-head { padding: 20px 18px 18px; flex-direction: column; align-items: flex-start; } #oba-cta .form-title { font-size: 22px; } #oba-cta .form-body { padding: 18px 16px 20px; } #oba-cta .wpforms-wrap { min-height: 460px; } } @media (prefers-reduced-motion: reduce) { #oba-cta .eyebrow i, #oba-cta .form-badge::before { animation: none !important; } #oba-cta .btn, #oba-cta .mini-card, #oba-cta button.wpforms-submit, #oba-cta .wpforms-page-button, #oba-cta input[type=\"submit\"].wpforms-submit { transition: none !important; } } <\/style> <div class=\"wrap\"> <div class=\"grid\"> <!-- ST\u00c2NGA --> <div> <div class=\"eyebrow\"> <i><\/i> Vizionare \u00b7 ofert\u0103 \u00b7 disponibilit\u0103\u021bi <\/div> <h2 id=\"oba-cta-title\"> Interesat de un<br> apartament<br> <em>nou?<\/em> <\/h2> <p class=\"lead\"> Spune-ne <strong>proiectul<\/strong>, <strong>tipul de apartament<\/strong> \u0219i bugetul estimativ \u2014 revenim cu disponibilit\u0103\u021bi, planuri \u0219i pa\u0219ii pentru rezervare. F\u0103r\u0103 presiuni, f\u0103r\u0103 intermediari. <\/p> <div class=\"mini-grid\" role=\"list\"> <div class=\"mini-card\" role=\"listitem\"> <div class=\"mini-ico\" aria-hidden=\"true\"> <svg viewBox=\"0 0 24 24\"><path d=\"M12 21s7-4.6 7-11a7 7 0 1 0-14 0c0 6.4 7 11 7 11z\"><\/path><circle cx=\"12\" cy=\"10\" r=\"2\"><\/circle><\/svg> <\/div> <div> <b>Recomandare corect\u0103<\/b> <span>\u00een func\u021bie de zon\u0103, compartimentare \u0219i cerere real\u0103.<\/span> <\/div> <\/div> <div class=\"mini-card\" role=\"listitem\"> <div class=\"mini-ico\" aria-hidden=\"true\"> <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"2\"><\/rect><path d=\"M3 9h18\"><\/path><path d=\"M9 4v5\"><\/path><path d=\"M15 4v5\"><\/path><\/svg> <\/div> <div> <b>R\u0103spuns rapid<\/b> <span>prime\u0219ti detalii \u0219i pa\u0219ii de vizionare sau rezervare.<\/span> <\/div> <\/div> <div class=\"mini-card\" role=\"listitem\"> <div class=\"mini-ico\" aria-hidden=\"true\"> <svg viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"11\" rx=\"2\"><\/rect><path d=\"M16 11h2\"><\/path><path d=\"M2 11h10\"><\/path><\/svg> <\/div> <div> <b>Plan de plat\u0103 clar<\/b> <span>avans, tran\u0219e, credit sau rate la dezvoltator.<\/span> <\/div> <\/div> <div class=\"mini-card\" role=\"listitem\"> <div class=\"mini-ico\" aria-hidden=\"true\"> <svg viewBox=\"0 0 24 24\"><path d=\"M20 6L9 17l-5-5\"><\/path><\/svg> <\/div> <div> <b>Direct de la dezvoltator<\/b> <span>f\u0103r\u0103 comisioane, f\u0103r\u0103 intermediari.<\/span> <\/div> <\/div> <\/div> <div class=\"actions\"> <a class=\"btn btn-primary\" href=\"https:\/\/wa.me\/40731622622?text=Bun\u0103,+vreau+detalii+despre+un+apartament+nou.\" rel=\"noopener noreferrer\" aria-label=\"Contacteaz\u0103 pe WhatsApp\" target=\"_blank\"> WhatsApp rapid <svg viewBox=\"0 0 24 24\"><path d=\"M5 12h14\"><\/path><path d=\"M13 6l6 6-6 6\"><\/path><\/svg> <\/a> <a class=\"btn btn-ghost\" href=\"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/proiecte\/\" aria-label=\"Vezi toate proiectele OBA\"> Vezi proiectele <svg viewBox=\"0 0 24 24\"><path d=\"M5 12h14\"><\/path><path d=\"M13 6l6 6-6 6\"><\/path><\/svg> <\/a> <\/div> <\/div> <!-- DREAPTA --> <aside aria-label=\"Formular contact O.B.A.\"> <div class=\"form-card\"> <div class=\"form-head\"> <div class=\"form-head-left\"> <div class=\"form-title\">Cere ofert\u0103 sau vizionare<\/div> <div class=\"form-sub\">Completeaz\u0103 formularul \u2014 revenim \u00een cel mai scurt timp<\/div> <\/div> <span class=\"form-badge\">Disponibil acum<\/span> <\/div> <div class=\"form-body\"> <div class=\"wpforms-wrap\"> <style id=\"wpforms-css-vars-6878\">\n\t\t\t\t#wpforms-6878 {\n\t\t\t\t--wpforms-container-padding: 0px;\n--wpforms-container-border-width: 1px;\n--wpforms-container-border-radius: 3px;\n--wpforms-background-color: rgba(0, 0, 0, 0);\n--wpforms-field-size-input-height: 43px;\n--wpforms-field-size-input-spacing: 15px;\n--wpforms-field-size-font-size: 16px;\n--wpforms-field-size-line-height: 19px;\n--wpforms-field-size-padding-h: 14px;\n--wpforms-field-size-checkbox-size: 16px;\n--wpforms-field-size-sublabel-spacing: 5px;\n--wpforms-field-size-icon-size: 1;\n--wpforms-label-size-font-size: 16px;\n--wpforms-label-size-line-height: 19px;\n--wpforms-label-size-sublabel-font-size: 14px;\n--wpforms-label-size-sublabel-line-height: 17px;\n--wpforms-button-size-font-size: 17px;\n--wpforms-button-size-height: 41px;\n--wpforms-button-size-padding-h: 15px;\n--wpforms-button-size-margin-top: 10px;\n--wpforms-container-shadow-size-box-shadow: none;\n\t\t\t}\n\t\t\t<\/style><div class=\"wpforms-container wpforms-container-full wpforms-render-modern\" id=\"wpforms-6878\"><form id=\"wpforms-form-6878\" class=\"wpforms-validate wpforms-form wpforms-ajax-form\" data-formid=\"6878\" method=\"post\" enctype=\"multipart\/form-data\" action=\"\/ro_ro\/wp-json\/wp\/v2\/pages\/729\" data-token=\"e8b14ef82cf57bb522b1c1389c392300\" data-token-time=\"1776409743\"><noscript class=\"wpforms-error-noscript\">Please enable JavaScript in your browser to complete this form.<\/noscript><div id=\"wpforms-error-noscript\" style=\"display: none;\">Please enable JavaScript in your browser to complete this form.<\/div><div class=\"wpforms-field-container\"><div id=\"wpforms-6878-field_1-container\" class=\"wpforms-field wpforms-field-name\" data-field-id=\"1\"><label class=\"wpforms-field-label\" for=\"wpforms-6878-field_1\">Nume <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"text\" id=\"wpforms-6878-field_1\" class=\"wpforms-field-large wpforms-field-required\" name=\"wpforms[fields][1]\" aria-errormessage=\"wpforms-6878-field_1-error\" required><\/div><div id=\"wpforms-6878-field_5-container\" class=\"wpforms-field wpforms-field-text phone\" data-field-id=\"5\"><label class=\"wpforms-field-label\" for=\"wpforms-6878-field_5\">Telefon <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"text\" id=\"wpforms-6878-field_5\" class=\"wpforms-field-large wpforms-field-required\" name=\"wpforms[fields][5]\" aria-errormessage=\"wpforms-6878-field_5-error\" required><\/div>\t\t<div id=\"wpforms-6878-field_4-container\"\n\t\t\tclass=\"wpforms-field wpforms-field-text\"\n\t\t\tdata-field-type=\"text\"\n\t\t\tdata-field-id=\"4\"\n\t\t\t>\n\t\t\t<label class=\"wpforms-field-label\" for=\"wpforms-6878-field_4\" >Informatii suplimentare Email<\/label>\n\t\t\t<input type=\"text\" id=\"wpforms-6878-field_4\" class=\"wpforms-field-medium\" name=\"wpforms[fields][4]\" >\n\t\t<\/div>\n\t\t<div id=\"wpforms-6878-field_2-container\" class=\"wpforms-field wpforms-field-email\" data-field-id=\"2\"><label class=\"wpforms-field-label\" for=\"wpforms-6878-field_2\">Email <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"email\" id=\"wpforms-6878-field_2\" class=\"wpforms-field-large wpforms-field-required\" name=\"wpforms[fields][2]\" spellcheck=\"false\" aria-errormessage=\"wpforms-6878-field_2-error\" required><\/div><div id=\"wpforms-6878-field_3-container\" class=\"wpforms-field wpforms-field-textarea\" data-field-id=\"3\"><label class=\"wpforms-field-label\" for=\"wpforms-6878-field_3\">Informatii suplimentare<\/label><textarea id=\"wpforms-6878-field_3\" class=\"wpforms-field-medium\" name=\"wpforms[fields][3]\" aria-errormessage=\"wpforms-6878-field_3-error\" ><\/textarea><\/div><div id=\"wpforms-6878-field_8-container\" class=\"wpforms-field wpforms-field-gdpr-checkbox\" data-field-id=\"8\"><label class=\"wpforms-field-label\">Consimtamant <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><ul id=\"wpforms-6878-field_8\" class=\"wpforms-field-required\"><li class=\"choice-1\"><input type=\"checkbox\" id=\"wpforms-6878-field_8_1\" name=\"wpforms[fields][8][]\" value=\"Sunt de acord ca datele mele personale s\u0103 fie folosite pentru a fi contactat \u00een leg\u0103tur\u0103 cu aceast\u0103 solicitare, conform politicii de confiden\u021bialitate.\" aria-errormessage=\"wpforms-6878-field_8_1-error\" required ><label class=\"wpforms-field-label-inline\" for=\"wpforms-6878-field_8_1\">Sunt de acord ca datele mele personale s\u0103 fie folosite pentru a fi contactat \u00een leg\u0103tur\u0103 cu aceast\u0103 solicitare, conform politicii de confiden\u021bialitate.<\/label><\/li><\/ul><\/div><script>\n\t\t\t\t( function() {\n\t\t\t\t\tconst style = document.createElement( 'style' );\n\t\t\t\t\tstyle.appendChild( document.createTextNode( '#wpforms-6878-field_4-container { position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important; } #wpforms-6878-field_4-container input { visibility: hidden; } #wpforms-conversational-form-page #wpforms-6878-field_4-container label { counter-increment: none; }' ) );\n\t\t\t\t\tdocument.head.appendChild( style );\n\t\t\t\t\tdocument.currentScript?.remove();\n\t\t\t\t} )();\n\t\t\t<\/script><\/div><!-- .wpforms-field-container --><div class=\"wpforms-submit-container\" ><input type=\"hidden\" name=\"wpforms[id]\" value=\"6878\"><input type=\"hidden\" name=\"page_title\" value=\"\"><input type=\"hidden\" name=\"page_url\" value=\"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/wp-json\/wp\/v2\/pages\/729\"><input type=\"hidden\" name=\"url_referer\" value=\"\"><button type=\"submit\" name=\"wpforms[submit]\" id=\"wpforms-submit-6878\" class=\"wpforms-submit\" data-alt-text=\"Trimitere...\" data-submit-text=\"Trimite solicitarea\" aria-live=\"assertive\" value=\"wpforms-submit\">Trimite solicitarea<\/button><img decoding=\"async\" src=\"https:\/\/www.obadifferentbyluxury.ro\/wp-content\/plugins\/wpforms-lite\/assets\/images\/submit-spin.svg\" class=\"wpforms-submit-spinner\" style=\"display: none;\" width=\"26\" height=\"26\" alt=\"Loading\"><\/div><\/form><\/div>  <!-- .wpforms-container --> <\/div> <\/div> <\/div> <\/aside> <\/div> <\/div> <\/section> <!-- ================== \/OBA \u2014 CTA PREMIUM ================== -->\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Proiect reziden\u021bial \u00b7 Mamaia Nord Apartamente noi O.B.A. Residence Proiect echilibrat pentru locuit \u0219i investi\u021bie \u00een Mamaia Nord \u2014 planuri eficiente, spa\u021bii u\u0219or de mobilat \u0219i un stil modern potrivit ritmului urban. Alege tipul de apartament \u0219i solicit\u0103 disponibilit\u0103\u021bi pentru vizionare \u0219i rezervare. Vezi apartamentele Solicit\u0103 informa\u021bii MamaiaNord A+Clas\u0103 energetic\u0103 2025Predare estimat\u0103 Mamaia Nord Zon\u0103&hellip;<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":5381,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-729","page","type-page","status-publish","hentry","description-off"],"_links":{"self":[{"href":"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/wp-json\/wp\/v2\/pages\/729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/wp-json\/wp\/v2\/comments?post=729"}],"version-history":[{"count":4,"href":"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/wp-json\/wp\/v2\/pages\/729\/revisions"}],"predecessor-version":[{"id":6928,"href":"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/wp-json\/wp\/v2\/pages\/729\/revisions\/6928"}],"up":[{"embeddable":true,"href":"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/wp-json\/wp\/v2\/pages\/5381"}],"wp:attachment":[{"href":"https:\/\/www.obadifferentbyluxury.ro\/ro_ro\/wp-json\/wp\/v2\/media?parent=729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}