/* Casa Barcelona inside the ORYKSA signature: Mediterranean terracotta accent, Fraunces display. */
:root { --accent: #B4532A; --accent-2: #964221; --accent-ink: #FFFFFF; --accent-soft: #F8EAE3; --f-display: "Fraunces", Georgia, "Times New Roman", serif; --sea: #2C6E8F; }
h1, h2, h3 { font-weight: 600; letter-spacing: -.015em; }
.hero h1 em { font-style: italic; color: var(--accent); }
.brand { font-family: "Geist", "Segoe UI", system-ui, sans-serif; font-weight: 700; }
.brand-mark { border-radius: 10px; }

/* hero search */
.hsearch { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px; border-radius: 20px; margin-top: 6px; max-width: 560px; }
.hsearch .seg { display: inline-flex; background: var(--surface-2, #F1F2F6); border-radius: 14px; padding: 4px; }
.hsearch .seg button { border: 0; background: transparent; padding: 9px 14px; border-radius: 11px; font: inherit; font-weight: 600; font-size: 14px; color: var(--muted); cursor: pointer; }
.hsearch .seg button.on { background: var(--surface); color: var(--fg); box-shadow: 0 2px 8px rgba(15, 18, 34, .08); }
.hsearch select { flex: 1 1 140px; min-width: 0; padding: 12px 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--surface); font: inherit; font-size: 14px; color: var(--fg); }
.hsearch .btn { padding: 12px 18px; }
.hsearch .btn svg { flex: none; }

/* card specs + tags */
.specs { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 10px 0 2px; font-size: 13px; color: var(--muted); }
.specs > span { display: inline-flex; align-items: center; gap: 6px; }
.specs svg { color: var(--accent); flex: none; }
.specs.big { gap: 10px; margin: 0 0 6px; width: 100%; }
.specs.big > span { padding: 10px 14px; border-radius: 14px; background: var(--surface); border: 1px solid var(--line); font-size: 14px; font-weight: 600; color: var(--fg); }
.tag.rent { background: var(--sea); color: #fff; }
.tag.res { background: #1F2433; color: #fff; }
.tag.exclusive { background: #fff; color: var(--accent); }
.tag.new { background: #15803D; color: #fff; }
.tag.drop { background: #FEF3C7; color: #92400E; }
.card-price { color: var(--accent); }

/* detail gallery */
.gallery { display: grid; gap: 10px; align-content: start; }
.g-main { position: relative; border-radius: var(--r-xl); overflow: hidden; aspect-ratio: 4 / 3; background: var(--surface-2, #EEF0F5); box-shadow: var(--shadow); }
.g-main img { width: 100%; height: 100%; object-fit: cover; }
.g-count, .g-res { position: absolute; left: 14px; bottom: 14px; padding: 7px 12px; border-radius: 999px; background: rgba(15, 18, 34, .72); color: #fff; font-size: 13px; font-weight: 600; backdrop-filter: blur(6px); }
.g-res { left: auto; right: 14px; top: 14px; bottom: auto; background: #1F2433; }
.g-thumbs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.g-th { padding: 0; border: 2px solid transparent; border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 3; cursor: pointer; background: none; opacity: .72; transition: opacity .2s, border-color .2s; }
.g-th img { width: 100%; height: 100%; object-fit: cover; display: block; }
.g-th:hover { opacity: 1; }
.g-th.on { border-color: var(--accent); opacity: 1; }
.d-ctas { flex-wrap: wrap; }

/* after detail: map + agent */
.d-after { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 20px; margin-top: clamp(28px, 4vw, 44px); }
.map-panel { display: grid; gap: 12px; }
.mp-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.mp-head span { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 14px; }
.mp-head svg { color: var(--accent); }
.agent-card { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 18px; align-items: start; align-content: start; }
.agent-card img { width: 120px; height: 150px; object-fit: cover; object-position: 50% 20%; border-radius: 18px; }
.agent-card h3 { font-size: 24px; margin: 8px 0 6px; }
.agent-card p { margin: 0 0 6px; color: var(--muted); font-size: 14.5px; line-height: 1.5; }
.agent-card .langs { font-size: 12.5px; font-weight: 600; letter-spacing: .06em; color: var(--accent); margin-bottom: 14px; }

/* stylised map */
.bcn-map { width: 100%; height: auto; display: block; border-radius: 18px; background: #F4EFE8; }
.bcn-map .m-hill { fill: #DCE6D2; }
.bcn-map .m-sea { fill: #CFE3EC; }
.bcn-map .m-road { fill: none; stroke: #fff; stroke-width: 5; stroke-linecap: round; }
.bcn-map .mg { stroke: #E5DCCF; stroke-width: 1.2; }
.bcn-map .m-name { font: italic 600 9.5px "Fraunces", Georgia, serif; fill: #7C8A70; }
.bcn-map .m-name.sea { fill: #4F7F97; }
.bcn-map .mp-dot { fill: #fff; stroke: var(--accent); stroke-width: 2; }
.bcn-map .mp.on .mp-dot { fill: var(--accent); }
.bcn-map .mp-halo { fill: var(--accent); opacity: .18; }
.bcn-map .mp-l { font: 600 8.5px "Geist", system-ui, sans-serif; fill: #3A3F4F; paint-order: stroke; stroke: #F4EFE8; stroke-width: 3px; }
.bcn-map .mp.on .mp-l { font-size: 10px; fill: var(--accent); }
.bcn-map .mp-n { font: 700 7px "Geist", system-ui, sans-serif; fill: var(--accent); pointer-events: none; }
.bcn-map g[data-zone] { cursor: pointer; }
.bcn-map g[data-zone]:hover .mp-dot, .bcn-map g[data-zone]:focus .mp-dot { fill: var(--accent); }
.bcn-map g[data-zone]:hover .mp-n, .bcn-map g[data-zone]:focus .mp-n { fill: #fff; }
.bcn-map g[data-zone]:focus { outline: none; }
.bcn-map .mp.empty { opacity: .45; }

/* zones section */
.zones-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.zone-map { padding: 14px; }
.zone-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.zone-t { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: center; text-align: left; padding: 10px; border-radius: 18px; border: 1px solid var(--line); background: var(--surface); font: inherit; color: inherit; cursor: pointer; box-shadow: var(--shadow-sm); transition: transform .25s var(--ease), border-color .25s; }
.zone-t:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); }
.zone-t img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; }
.zt-b { display: grid; gap: 2px; min-width: 0; }
.zt-b b { font: 600 17px/1.2 var(--f-display); }
.zt-b small { color: var(--accent); font-weight: 600; font-size: 12.5px; }
.zt-b em { font-style: normal; color: var(--muted); font-size: 12.5px; line-height: 1.35; }

/* how we work */
.how { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.how-c { display: flex; flex-direction: column; gap: 12px; }
.how-c h3 { font-size: 24px; }
.how-n { font: 600 14px/1 "Geist", system-ui, sans-serif; color: var(--accent); letter-spacing: .08em; }
.how-c ol { margin: 0 0 6px; padding-left: 20px; display: grid; gap: 8px; color: var(--muted); font-size: 15px; line-height: 1.5; }
.how-c .btn { margin-top: auto; align-self: flex-start; }
.how-c.sell { background: linear-gradient(160deg, var(--accent-soft), var(--surface) 70%); }

@media (max-width: 1024px) {
  .d-after, .zones-grid { grid-template-columns: 1fr; }
  .how { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .hsearch { border-radius: 18px; }
  .hsearch .seg { width: 100%; } .hsearch .seg button { flex: 1; }
  .hsearch .btn { width: 100%; justify-content: center; }
  .zone-list { grid-template-columns: 1fr; }
  .g-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .agent-card { grid-template-columns: 96px minmax(0, 1fr); } .agent-card img { width: 96px; height: 120px; }
}

/* listings: price under the title, roomier grid */
.card-t { flex-direction: column; align-items: flex-start; gap: 4px; }
.card-price { order: -1; font-size: 19px; color: var(--accent); }
.grid-cards { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.tag.exclusive { border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); }
.agent-meta { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 6px; font-size: 13.5px; color: var(--muted); }
.agent-meta b { color: var(--fg); font-weight: 600; }
.hsearch { max-width: 640px; }
.hsearch select { flex: 1 1 120px; }
.hsearch .btn { flex: 1 1 100%; justify-content: center; }
