/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { background: #070F1C; color: #FFFFFF; font-family: Inter, system-ui, sans-serif; overflow-x: hidden; line-height: 1.6; }
img { max-width: 100%; display: block; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.about-visual { position:relative; }
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
a { color: inherit; }
button { cursor: pointer; border: none; background: none; }
button:disabled { cursor: wait; opacity: .65; }

/* ── Nav ── */
#site-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  transition: background .35s ease, box-shadow .35s ease;
}
#site-nav.scrolled {
  background: rgba(7,15,28,.97);
  box-shadow: 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter: blur(14px);
}
.nav-inner {
  max-width: 1360px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 48px; height: 80px;
}
.logo-pill { background: #fff; padding: 6px 14px 6px 10px; display: flex; align-items: center; }
.logo-pill img { height: 38px; width: auto; }
.nav-links { display: flex; align-items: center; gap: 32px; }
.mobile-menu-toggle {
  display: none; width: 44px; height: 44px; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,.3); color: #fff; position: relative; z-index: 2;
}
.mobile-menu-toggle span,
.mobile-menu-toggle::before,
.mobile-menu-toggle::after {
  content: ''; position: absolute; width: 18px; height: 1px; background: currentColor;
  transition: transform .25s ease, opacity .2s ease;
}
.mobile-menu-toggle::before { transform: translateY(-6px); }
.mobile-menu-toggle::after { transform: translateY(6px); }
.mobile-menu-toggle[aria-expanded="true"] span { opacity: 0; }
.mobile-menu-toggle[aria-expanded="true"]::before { transform: rotate(45deg); }
.mobile-menu-toggle[aria-expanded="true"]::after { transform: rotate(-45deg); }
.mobile-menu-toggle:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }
.nav-link {
  font-size: .8rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase;
  color: rgba(255,255,255,.65); text-decoration: none; position: relative;
  transition: color .2s ease; display: flex; align-items: center; gap: 5px;
}
.nav-link::after {
  content: ''; position: absolute; bottom: -3px; left: 0;
  width: 0; height: 1px; background: #FFFFFF;
  transition: width .25s cubic-bezier(.4,0,.2,1);
}
.nav-link:hover, .nav-link.active { color: #FFFFFF; }
.nav-link:hover::after, .nav-link.active::after { width: 100%; }
.has-drop { position: relative; padding: 24px 0; }
.drop-menu {
  display: none; position: absolute; top: calc(100% - 4px); left: 50%;
  transform: translateX(-50%);
  background: #0B1829; border: 1px solid rgba(255,255,255,.14);
  min-width: 220px; padding: 8px 0; z-index: 200;
  box-shadow: 0 20px 50px rgba(0,0,0,.5);
}
.has-drop:hover .drop-menu,
.has-drop:focus-within .drop-menu { display: block; }
.drop-menu a {
  display: block; padding: 10px 22px;
  font-size: .8125rem; color: rgba(255,255,255,.6);
  text-decoration: none; transition: color .15s, background .15s;
}
.drop-menu a:hover { color: #FFFFFF; background: rgba(255,255,255,.06); }

/* ── Buttons ── */
.btn-gold {
  display: inline-flex; align-items: center; gap: 8px;
  background: #FFFFFF; color: #070F1C;
  font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  padding: 13px 28px; text-decoration: none; white-space: nowrap;
  transition: background .2s, transform .15s;
}
.btn-gold:hover  { background: #E8E8E8; transform: translateY(-1px); }
.btn-gold:active { background: #D8D8D8; transform: translateY(0); }
.btn-gold:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }
.form-feedback {
  margin-top: 20px; padding: 18px 20px; border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.06); color: rgba(255,255,255,.82); font-size: .9rem;
}
.form-feedback[data-state="success"] { border-color: #7FCB9B; color: #BDE7CA; }
.form-feedback[data-state="development"] { border-color: #E5C56A; color: #F0DB9D; }
.form-feedback[data-state="error"] { border-color: #D27C7C; color: #F0B2B2; }
.f-select {
  appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 38px !important;
  background-color: #0B1829 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23FFFFFF' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
}
.legal-content { max-width: 860px; }
.legal-content h2 { font-family:'Playfair Display',Georgia,serif; font-size:1.55rem; font-weight:600; margin:38px 0 12px; }
.legal-content p { color:rgba(255,255,255,.62); font-weight:300; line-height:1.85; }
.legal-content a { color:#fff; text-underline-offset:3px; }
.legal-notice { padding:18px 20px; border-left:2px solid #fff; background:rgba(255,255,255,.06); color:rgba(255,255,255,.72); }
.legal-updated { margin-top:42px; font-size:.8rem; }
.error-page { min-height:72vh; padding:160px 24px 90px; display:grid; place-items:center; text-align:center; }
.error-code { font-family:'Playfair Display',Georgia,serif; font-size:clamp(5rem,15vw,10rem); line-height:.8; color:rgba(255,255,255,.12); }
.error-page h1 { font-family:'Playfair Display',Georgia,serif; font-size:clamp(2rem,5vw,3.5rem); margin:28px 0 12px; }
.error-page p { color:rgba(255,255,255,.5); }
.error-actions { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:32px; }

.btn-ghost {
  display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid rgba(255,255,255,.4); color: #FFFFFF;
  font-size: .78rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
  padding: 13px 28px; text-decoration: none; white-space: nowrap;
  transition: border-color .2s, background .2s, transform .15s;
}
.btn-ghost:hover  { border-color: #FFFFFF; background: rgba(255,255,255,.07); transform: translateY(-1px); }
.btn-ghost:active { transform: translateY(0); }
.btn-ghost:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 3px; }

/* ── Inner hero ── */
.inner-hero {
  padding: 160px 48px 80px;
  background: #0B1829;
  position: relative; overflow: hidden;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.inner-hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse 60% 80% at 80% 50%, rgba(255,255,255,.05) 0%, transparent 70%);
  pointer-events: none;
}
.inner-hero .eyebrow {
  display: flex; align-items: center; gap: 14px; margin-bottom: 16px;
  font-size: .6875rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: #FFFFFF;
}
.inner-hero .eyebrow::before { content: ''; width: 24px; height: 1px; background: #FFFFFF; }
.inner-hero h1 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(2rem,4vw,3.5rem); font-weight: 600;
  letter-spacing: -.02em; color: #FFFFFF; line-height: 1.15;
  max-width: 700px;
}

/* ── Section helpers ── */
.section-dark  { background: #070F1C; padding: 80px 48px; }
.section-mid   { background: #0B1829; padding: 80px 48px; }
.section-card  { background: #0B1829; padding: 80px 48px; }
.container     { max-width: 1360px; margin: 0 auto; }

.sh { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.sh-line { width: 24px; height: 1px; background: #FFFFFF; flex: none; }
.sh-label { font-size: .6875rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: #FFFFFF; }

.section-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.75rem,3vw,2.75rem); font-weight: 600;
  letter-spacing: -.02em; color: #FFFFFF; line-height: 1.15;
}

/* ── Listing cards ── */
.prop-card {
  background: #0B1829; border: 1px solid rgba(255,255,255,.10); overflow: hidden;
  transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
}
.prop-card-link { display:block; color:inherit; text-decoration:none; }
.prop-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 24px 64px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.22);
}
.prop-card:hover .prop-img { transform: scale(1.04); }
.prop-img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; opacity: 1; }
.prop-badge-gold  { background: #FFFFFF; color: #070F1C; font-size: .625rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 4px 10px; }
.prop-badge-ghost { border: 1px solid rgba(255,255,255,.4); color: #FFFFFF; background: rgba(18,32,56,.88); font-size: .625rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 4px 10px; }
.prop-price { font-family: 'Playfair Display', Georgia, serif; font-size: 1.3rem; font-weight: 600; color: #FFFFFF; }
.arrow-link { font-size: .75rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.45); text-decoration: none; transition: color .2s; }
.arrow-link:hover { color: #FFFFFF; }
.prop-featured { position:absolute; top:16px; right:16px; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.4); color:#FFFFFF; font-size:.5625rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:3px 8px; }
.prop-location { font-size:.6875rem; color:rgba(255,255,255,.7); letter-spacing:.07em; text-transform:uppercase; margin-bottom:7px; }
.prop-title { font-family:'Playfair Display',Georgia,serif; font-size:1.15rem; font-weight:500; color:#FFFFFF; margin-bottom:12px; line-height:1.3; }
.prop-specs { font-size:.8125rem; color:rgba(255,255,255,.4); margin-bottom:18px; display:flex; gap:12px; flex-wrap:wrap; }
.prop-card-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:16px; border-top:1px solid rgba(255,255,255,.08); }
.filter-clear { color:#fff; margin-left:10px; text-underline-offset:3px; }
.advanced-filters { width:100%; margin:0 0 28px; padding:22px 24px; background:#0B1829; border:1px solid rgba(255,255,255,.14); border-radius:6px; }
.advanced-filter-title { display:flex; justify-content:space-between; color:#fff; font-size:.75rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-bottom:16px; }
.filter-reset { border:0; background:none; color:rgba(255,255,255,.55); text-decoration:underline; cursor:pointer; font-size:.72rem; }
.advanced-filter-grid { display:grid; grid-template-columns:1.35fr repeat(3,minmax(140px,1fr)) 1.2fr; gap:14px; align-items:end; }
.advanced-filter-grid > label { display:block; color:rgba(255,255,255,.65); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; }
.advanced-filter-grid select,.advanced-filter-grid input { display:block; width:100%; min-height:42px; margin-top:8px; padding:10px 12px; color:#fff; background:#070F1C; border:1px solid rgba(255,255,255,.22); border-radius:3px; font:inherit; text-transform:none; }
.advanced-filter-grid select:focus,.advanced-filter-grid input:focus { outline:2px solid rgba(217,190,126,.6); outline-offset:1px; }
.filter-check-group { min-height:74px; border:1px solid rgba(255,255,255,.22); border-radius:3px; padding:10px 12px; margin:0; color:rgba(255,255,255,.65); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; }
.filter-check-group legend { margin-bottom:7px; }
.filter-check-group label { display:inline-flex; align-items:center; gap:6px; margin:7px 12px 0 0; color:#fff; text-transform:none; letter-spacing:0; }
.filter-check-group input, .feature-checks input { width:auto; margin:0; accent-color:#D9BE7E; }
.feature-checks { display:flex; flex-wrap:wrap; gap:8px 14px; margin:8px 0 10px; }
.feature-checks label { display:inline-flex; align-items:center; gap:6px; font-size:.78rem; color:#667085; }
.gallery-arrow { position:absolute; top:50%; z-index:2; transform:translateY(-50%); width:46px; height:46px; border:1px solid rgba(255,255,255,.45); background:rgba(7,15,28,.5); color:#fff; font-size:2rem; line-height:1; cursor:pointer; }
.gallery-arrow:hover { background:rgba(7,15,28,.85); }
.gallery-prev { left:28px; }
.gallery-next { right:28px; }
.gallery-dots { position:absolute; z-index:2; bottom:26px; left:50%; transform:translateX(-50%); display:flex; gap:8px; }
.gallery-dots button { width:9px; height:9px; padding:0; border:1px solid rgba(255,255,255,.75); border-radius:50%; background:transparent; cursor:pointer; }
.gallery-dots { display:none; }
.gallery-dots button.active { background:#fff; }
.detail-gallery { max-width:1180px; margin-left:auto !important; margin-right:auto !important; border-radius:10px; background:#0B1829; }
.detail-hero-caption { position:absolute; bottom:92px; left:48px; right:48px; }
.gallery-thumbs { position:absolute; z-index:3; bottom:18px; left:48px; right:48px; display:flex; gap:10px; overflow:auto; justify-content:center; }
.gallery-thumbs button { flex:0 0 68px; height:48px; padding:0; border:1px solid rgba(255,255,255,.35); background:#0B1829; opacity:.62; cursor:pointer; overflow:hidden; border-radius:4px; }
.gallery-thumbs button.active { opacity:1; border-color:#fff; }
.gallery-thumbs img { width:100%; height:100%; object-fit:cover; }
.detail-video { margin-top:24px; }
.detail-gallery { position:relative; max-width:1180px; margin:0 auto 28px; }
.detail-main { position:relative; height:520px; overflow:hidden; border-radius:10px; background:#0B1829; }
.detail-main > img { width:100%; height:100%; object-fit:cover; }
.detail-heading { margin:0 auto 48px; max-width:1180px; }
.detail-heading h1 { font-family:'Playfair Display',Georgia,serif; font-size:clamp(2rem,4vw,3.5rem); margin:12px 0 8px; }
.detail-heading p { color:rgba(255,255,255,.58); margin-bottom:10px; }
.detail-heading strong { color:#fff; font-size:1.35rem; }
.detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:56px; align-items:start; }
.detail-specs { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:22px 0 30px; }
.feature-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.feature-list span { padding:8px 12px; border:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.7); font-size:.82rem; }
#video { margin-top:40px; } #video video { width:100%; max-height:480px; background:#000; }
.project-detail-hero { padding:112px 48px 0; background:#070F1C; }
#project-not-found[hidden] { display:none !important; }
#listing-not-found[hidden] { display:none !important; }
#project-pdf[hidden], #project-video[hidden], #project-plan-area[hidden], #project-page[hidden] { display:none !important; }
.project-detail-media { width:100%; max-width:1180px; height:520px; margin:0 auto; position:relative; overflow:hidden; border-radius:10px; background:#0B1829; }
.project-detail-media > img { width:100%; height:100%; object-fit:cover; }
.project-detail-heading { padding:28px 0 48px; }
.project-detail-heading h1 { font-family:'Playfair Display',Georgia,serif; color:#fff; font-size:clamp(2rem,4vw,3.5rem); margin:12px 0 8px; }
.project-detail-heading p,.project-description { color:rgba(255,255,255,.58); line-height:1.85; }
.project-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:56px; align-items:start; }
.project-info-card { padding:26px; background:#0B1829; border:1px solid rgba(255,255,255,.12); position:sticky; top:100px; }
.project-info-row { display:flex; justify-content:space-between; gap:20px; padding:15px 0; border-bottom:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.45); }
.project-info-row strong { color:#fff; font-weight:500; text-align:right; }
.project-pdf,.project-contact { width:100%; justify-content:center; margin-top:20px; }
.project-plans { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin:20px 0 40px; }
.project-plans img { width:100%; border:1px solid rgba(255,255,255,.12); }
#project-video { margin-top:40px; } #project-video video { width:100%; max-height:480px; background:#000; }

/* Project presentation page */
.project-hero { background:#070F1C; }
.project-hero-media { height:min(88vh,820px); min-height:620px; position:relative; overflow:hidden; background:#0B1829; }
.project-hero-media > img { width:100%; height:100%; object-fit:cover; }
.project-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,12,23,.88) 0%,rgba(5,12,23,.38) 48%,rgba(5,12,23,.08) 100%),linear-gradient(0deg,rgba(5,12,23,.76),transparent 52%); pointer-events:none; }
.project-hero-copy { position:absolute; z-index:2; inset:auto 0 88px; padding:0 48px; }
.project-kicker { color:#D9BE7E; font-size:.7rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.project-hero-copy h1 { max-width:780px; margin:14px 0 10px; color:#fff; font:600 clamp(2.7rem,6vw,6.5rem)/.98 'Playfair Display',Georgia,serif; letter-spacing:-.045em; }
.project-hero-copy p { color:rgba(255,255,255,.78); font-size:1rem; letter-spacing:.08em; }
.project-hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.project-hero-actions .btn-gold,.project-hero-actions .btn-ghost,.project-hero-actions .btn-whatsapp { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 20px; text-decoration:none; }
.btn-whatsapp { border:1px solid rgba(217,190,126,.5); color:#D9BE7E; background:rgba(7,15,28,.45); }
.btn-whatsapp:hover { background:#D9BE7E; color:#070F1C; }
.project-arrow { position:absolute; z-index:3; top:50%; width:48px; height:48px; border:1px solid rgba(255,255,255,.48); background:rgba(7,15,28,.35); color:#fff; font-size:2rem; cursor:pointer; transform:translateY(-50%); }
.project-arrow:hover,.project-arrow:focus-visible { background:#D9BE7E; color:#070F1C; }
.project-prev { left:30px; } .project-next { right:30px; }
.project-dots { position:absolute; z-index:3; left:50%; bottom:26px; display:flex; gap:8px; transform:translateX(-50%); }
.project-dots button { width:9px; height:9px; padding:0; border:1px solid #fff; border-radius:50%; background:transparent; cursor:pointer; }
.project-dots button.active { background:#D9BE7E; border-color:#D9BE7E; }
.project-subnav { position:sticky; z-index:8; top:0; background:rgba(5,12,23,.96); border-bottom:1px solid rgba(255,255,255,.1); }
.project-subnav-inner { display:flex; overflow-x:auto; scrollbar-width:none; }
.project-subnav a { flex:none; padding:20px 22px; color:rgba(255,255,255,.55); font-size:.68rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; border-bottom:2px solid transparent; }
.project-subnav a:hover,.project-subnav a.active { color:#fff; border-color:#D9BE7E; }
.project-section { padding:112px 48px; background:#070F1C; }
.project-overview { background:#0B1829; }
.project-overview-grid,.project-location-grid,.project-contact-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:90px; align-items:center; }
.project-overview h2,.project-location-section h2,.project-contact-section h2 { max-width:800px; margin:18px 0 24px; color:#fff; font:600 clamp(2.2rem,4vw,4.3rem)/1.05 'Playfair Display',Georgia,serif; letter-spacing:-.04em; }
.project-lead { max-width:700px; color:rgba(255,255,255,.62); font-size:1.05rem; line-height:1.9; }
.project-summary,.location-card { padding:34px; border:1px solid rgba(217,190,126,.26); background:linear-gradient(145deg,rgba(217,190,126,.1),rgba(255,255,255,.02)); }
.summary-label,.location-card span { display:block; margin-bottom:24px; color:#D9BE7E; font-size:.65rem; font-weight:600; letter-spacing:.16em; }
.project-summary strong,.location-card strong { display:block; color:#fff; font:500 2rem/1.2 'Playfair Display',Georgia,serif; }
.project-summary p,.location-card p { margin:20px 0 26px; color:rgba(255,255,255,.54); line-height:1.7; }
.project-stat-band { padding:0 48px; background:#D9BE7E; color:#070F1C; }
.project-stats { display:grid; grid-template-columns:repeat(4,1fr); }
.project-stat { min-height:138px; padding:30px 24px; border-right:1px solid rgba(7,15,28,.22); display:flex; flex-direction:column; justify-content:center; gap:10px; }
.project-stat span { font-size:.65rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; opacity:.6; }
.project-stat strong { font:600 clamp(1.2rem,2vw,1.9rem)/1.1 'Playfair Display',Georgia,serif; }
.project-features { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:42px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.1); }
.project-feature { display:flex; align-items:center; gap:15px; min-height:90px; padding:22px; background:#070F1C; color:#fff; }
.feature-mark { color:#D9BE7E; font-size:1.8rem; font-weight:300; }
.project-gallery-section { background:#0B1829; }
.project-gallery { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:180px; gap:12px; margin-top:42px; }
.project-gallery-item { position:relative; min-width:0; padding:0; border:0; overflow:hidden; background:#070F1C; cursor:pointer; }
.project-gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease,opacity .25s ease; }
.project-gallery-item:hover img { transform:scale(1.04); opacity:.82; }
.project-gallery-featured { grid-column:span 2; grid-row:span 2; }
.project-materials { padding-top:0; }
.project-material-grid { display:grid; grid-template-columns:1fr 1fr; gap:42px; }
.project-plans { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:24px; }
.project-plans img { width:100%; border:1px solid rgba(255,255,255,.14); }
#project-video { margin-top:24px; } #project-video video { width:100%; max-height:380px; background:#000; }
.project-location-section { background:#0B1829; }
.project-location-section .btn-ghost { display:inline-flex; margin-top:28px; text-decoration:none; }
.project-contact-grid { align-items:start; }
.contact-direct { display:flex; flex-direction:column; gap:10px; margin-top:32px; }
.contact-direct a { color:#D9BE7E; text-decoration:none; font-size:1.05rem; }
.contact-direct span { color:rgba(255,255,255,.45); font-size:.85rem; }
.project-form-card { padding:34px; background:#0B1829; border:1px solid rgba(255,255,255,.13); }
.project-form-card form { display:grid; gap:16px; }
.project-form-card label { display:grid; gap:8px; color:rgba(255,255,255,.65); font-size:.66rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.project-form-card input:not([type=checkbox]),.project-form-card textarea { width:100%; box-sizing:border-box; padding:14px; border:1px solid rgba(255,255,255,.16); background:#070F1C; color:#fff; font:inherit; resize:vertical; }
.project-form-card input:focus,.project-form-card textarea:focus { outline:2px solid rgba(217,190,126,.5); outline-offset:1px; }
.project-form-card .consent { display:flex; grid-template-columns:none; align-items:flex-start; gap:8px; color:rgba(255,255,255,.5); font-size:.72rem; letter-spacing:0; text-transform:none; line-height:1.5; }
.project-form-card .consent input { margin-top:3px; accent-color:#D9BE7E; }
.project-form-card .btn-gold { border:0; justify-content:center; cursor:pointer; }
.project-muted { color:rgba(255,255,255,.55); }
.project-mobile-bar { display:none; }
@media (prefers-reduced-motion:reduce) { .project-gallery-item img { transition:none; } }
@media (max-width:900px) { .project-hero-media{height:78vh;min-height:560px}.project-hero-copy{inset:auto 0 58px;padding:0 24px}.project-hero-copy h1{font-size:clamp(2.5rem,12vw,4.5rem)}.project-arrow{width:40px;height:40px}.project-prev{left:14px}.project-next{right:14px}.project-subnav-inner{margin:0 -24px}.project-subnav a{padding:17px 15px;font-size:.6rem}.project-section{padding:76px 24px}.project-overview-grid,.project-location-grid,.project-contact-grid{grid-template-columns:1fr;gap:44px}.project-stat-band{padding:0 24px}.project-stats{grid-template-columns:1fr 1fr}.project-stat{min-height:110px;padding:22px 14px}.project-stat:nth-child(2){border-right:0}.project-features{grid-template-columns:1fr 1fr}.project-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}.project-gallery-featured{grid-column:span 2;grid-row:span 2}.project-material-grid{grid-template-columns:1fr}.project-mobile-bar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;z-index:20;right:0;bottom:0;left:0;padding-bottom:env(safe-area-inset-bottom);background:#050C17;border-top:1px solid rgba(255,255,255,.18)}.project-mobile-bar a{padding:15px 8px;color:#fff;font-size:.68rem;font-weight:600;text-align:center;text-decoration:none;border-right:1px solid rgba(255,255,255,.1)}body:has(.project-mobile-bar){padding-bottom:58px} }

/* Listing filters and detail page */
.filter-toggle { display:none; color:#D9BE7E; font:600 .68rem Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.advanced-filter-title { align-items:center; gap:18px; }
.advanced-filter-title .filter-reset { margin-left:auto; }
.listing-detail-site #site-nav { position:relative; background:#070F1C; }
.listing-detail-site .nav-inner { height:86px; }
.listing-detail-top { padding:42px 48px 60px; background:#0B1829; }
.listing-gallery { min-width:0; width:100%; }
.listing-gallery-stage { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:#070F1C; }
.listing-gallery-main { display:block; width:100%; height:100%; padding:0; border:0; background:#070F1C; cursor:zoom-in; overflow:hidden; }
.listing-gallery-main img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .4s ease,opacity .25s ease; }
.listing-gallery-main:hover img { transform:scale(1.02); opacity:.92; }
.listing-gallery-nav { position:absolute; z-index:2; top:50%; width:48px; height:48px; padding:0; border:1px solid rgba(255,255,255,.5); border-radius:50%; background:rgba(7,15,28,.58); color:#fff; font-size:2rem; line-height:1; cursor:pointer; transform:translateY(-50%); }
.listing-gallery-nav:hover,.listing-gallery-nav:focus-visible { background:rgba(7,15,28,.9); border-color:#fff; }
.listing-gallery-prev { left:18px; }
.listing-gallery-next { right:18px; }
.listing-gallery-all { position:absolute; z-index:2; bottom:18px; left:18px; padding:10px 14px; border:0; color:#070F1C; background:#fff; font-size:.68rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.listing-gallery-thumbs { display:flex; width:100%; gap:10px; padding-top:12px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x proximity; scrollbar-width:thin; scrollbar-color:rgba(217,190,126,.55) rgba(255,255,255,.06); }
.listing-gallery-thumb,.listing-video-thumb { flex:0 0 128px; height:76px; padding:0; border:2px solid transparent; background:#070F1C; cursor:pointer; overflow:hidden; scroll-snap-align:start; }
.listing-gallery-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.listing-gallery-thumb.is-active { border-color:#D9BE7E; }
.listing-gallery-thumb:focus-visible,.listing-video-thumb:focus-visible,.listing-gallery-all:focus-visible,.listing-gallery-main:focus-visible { outline:2px solid #D9BE7E; outline-offset:2px; }
.listing-video-thumb { position:relative; display:grid; place-content:center; gap:4px; color:#fff; background:linear-gradient(135deg,#122038,#070F1C); }
.listing-video-thumb span { color:#D9BE7E; font-size:1.35rem; }
.listing-video-thumb small { font-size:.6rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.listing-top-grid { display:grid; grid-template-columns:minmax(0,2.1fr) minmax(300px,1fr); gap:24px; align-items:start; max-width:1360px; margin:0 auto; }
.listing-top-grid .listing-gallery { min-width:0; width:100%; margin:0; }
.listing-top-grid .listing-contact-card { min-width:0; width:100%; }
.listing-heading { display:block; max-width:1360px; margin:0 auto 34px; }
.listing-badge { color:#D9BE7E; font-size:.7rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
.listing-heading h1 { max-width:820px; margin:12px 0 8px; color:#fff; font:600 clamp(2.1rem,4vw,4.7rem)/1.02 'Playfair Display',Georgia,serif; letter-spacing:-.04em; }
.listing-heading p { color:rgba(255,255,255,.58); font-size:.95rem; }
.listing-heading > div { display:flex; flex-direction:column; align-items:flex-start; }
.listing-heading #listing-price { display:block; margin:10px 0 10px; color:#D9BE7E; font:600 clamp(1.35rem,2.2vw,2.1rem) 'Playfair Display',Georgia,serif; }
.listing-heading #listing-meta { display:block; margin-top:8px; color:rgba(255,255,255,.45); font-size:.72rem; }
.listing-detail-body { padding:88px 48px; background:#070F1C; }
.listing-layout { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:86px; align-items:start; }
.listing-spec-panel { border-top:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16); }
.listing-specs { display:grid; grid-template-columns:repeat(4,1fr); }
.listing-spec { min-height:105px; padding:23px 18px; border-right:1px solid rgba(255,255,255,.1); display:flex; flex-direction:column; justify-content:center; gap:7px; }
.listing-spec span { color:rgba(255,255,255,.45); font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; }
.listing-spec strong { color:#fff; font-size:1rem; }
.listing-copy { padding-top:78px; }
.listing-copy h2,.listing-similar h2 { margin:16px 0 18px; color:#fff; font:600 clamp(1.9rem,3vw,3.1rem)/1.1 'Playfair Display',Georgia,serif; }
.listing-copy > p { max-width:760px; color:rgba(255,255,255,.63); white-space:pre-line; font-size:1rem; line-height:1.9; }
.listing-features { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; max-width:850px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.12); }
.listing-features span { display:flex; gap:10px; padding:16px; background:#070F1C; color:rgba(255,255,255,.75); font-size:.83rem; }
.listing-features b { color:#D9BE7E; font-weight:400; }
.listing-contact-card { position:sticky; top:100px; padding:30px; background:#0B1829; border:1px solid rgba(217,190,126,.25); }
.listing-contact-card h2 { margin:12px 0 12px; color:#fff; font:500 1.7rem/1.15 'Playfair Display',Georgia,serif; }
.listing-contact-card > p { color:rgba(255,255,255,.55); font-size:.87rem; line-height:1.6; }
.listing-contact-card .card-id,.listing-contact-card .card-location { margin:4px 0; color:rgba(255,255,255,.68); font-size:.8rem; }
.listing-contact-card .card-company { margin-top:18px; color:#D9BE7E; font-size:.78rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.listing-contact-card > .btn-gold,.listing-contact-card > .btn-whatsapp,.listing-contact-card > .card-info-link { width:100%; justify-content:center; margin-top:12px; text-decoration:none; }
.listing-contact-card form { display:none; gap:14px; margin-top:28px; padding-top:26px; border-top:1px solid rgba(255,255,255,.1); }
.listing-contact-card.form-open form { display:grid; }
.listing-contact-card label { display:grid; gap:7px; color:rgba(255,255,255,.62); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; }
.listing-contact-card input:not([type=checkbox]),.listing-contact-card textarea { width:100%; box-sizing:border-box; padding:12px; border:1px solid rgba(255,255,255,.16); background:#070F1C; color:#fff; font:inherit; resize:vertical; }
.listing-contact-card input:focus,.listing-contact-card textarea:focus { outline:2px solid rgba(217,190,126,.5); outline-offset:1px; }
.listing-contact-card .listing-consent { display:flex; gap:8px; color:rgba(255,255,255,.5); font-size:.7rem; letter-spacing:0; line-height:1.5; text-transform:none; }
.listing-contact-card .listing-consent input { margin-top:3px; accent-color:#D9BE7E; }
.listing-contact-card form .btn-gold { justify-content:center; border:0; cursor:pointer; }
.listing-similar { padding:90px 48px; background:#0B1829; }
.similar-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:32px; }
.similar-card { background:#070F1C; color:#fff; text-decoration:none; border:1px solid rgba(255,255,255,.1); }
.similar-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.similar-card div { padding:18px; }
.similar-card span,.similar-card b { display:block; color:rgba(255,255,255,.5); font-size:.7rem; }
.similar-card strong { display:block; margin:8px 0 13px; font:500 1.2rem 'Playfair Display',Georgia,serif; }
.similar-card b { color:#D9BE7E; font-size:.95rem; }
.listing-lightbox { position:fixed; z-index:100; inset:0; display:flex; align-items:center; justify-content:center; gap:24px; padding:40px; background:rgba(3,8,16,.94); }
.listing-lightbox[hidden] { display:none; }
.listing-lightbox img,.listing-lightbox video { max-width:min(88vw,1100px); max-height:82vh; object-fit:contain; }
.listing-lightbox [hidden] { display:none; }
.listing-lightbox button { color:#fff; font-size:3rem; line-height:1; padding:10px; cursor:pointer; }
.listing-lightbox #lightbox-close { position:absolute; top:22px; right:28px; font-size:2.5rem; }
.listing-mobile-bar { display:none; }
@media (max-width:900px) { .advanced-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.listing-detail-site .nav-inner{height:72px}.listing-detail-top,.listing-detail-body,.listing-similar{padding-right:24px;padding-left:24px}.listing-detail-top{padding-top:30px}.listing-top-grid{grid-template-columns:1fr;gap:24px}.listing-heading{display:block}.listing-layout{grid-template-columns:1fr;gap:42px}.listing-contact-card{position:static}.listing-specs{grid-template-columns:repeat(2,1fr)}.listing-spec:nth-child(2){border-right:0}.listing-features{grid-template-columns:repeat(2,1fr)}.similar-grid{grid-template-columns:1fr 1fr}.listing-mobile-bar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;z-index:20;right:0;bottom:0;left:0;padding-bottom:env(safe-area-inset-bottom);background:#050C17;border-top:1px solid rgba(255,255,255,.18)}.listing-mobile-bar a{padding:15px 8px;color:#fff;font-size:.68rem;font-weight:600;text-align:center;text-decoration:none;border-right:1px solid rgba(255,255,255,.1)}body:has(.listing-mobile-bar){padding-bottom:58px} }
@media (max-width:560px) { .filter-toggle{display:block}.advanced-filter-grid{display:none}.advanced-filter-grid.is-open{display:grid}.advanced-filter-title{flex-wrap:wrap}.advanced-filter-title .filter-reset{margin-left:0}.listing-gallery-stage{aspect-ratio:16/9}.listing-gallery-nav{width:44px;height:44px;font-size:1.8rem}.listing-gallery-prev{left:10px}.listing-gallery-next{right:10px}.listing-gallery-all{bottom:10px;left:10px;padding:9px 10px;font-size:.58rem}.listing-gallery-thumb,.listing-video-thumb{flex-basis:112px;height:68px}.listing-heading h1{font-size:2.5rem}.listing-top-grid{gap:18px}.listing-contact-card{padding:24px}.listing-features{grid-template-columns:1fr}.similar-grid{grid-template-columns:1fr}.listing-lightbox{padding:20px 8px;gap:4px}.listing-lightbox img,.listing-lightbox video{max-width:82vw}.listing-lightbox button{font-size:2.2rem} }
@media (max-width:900px) { .project-detail-hero{padding:92px 24px 0}.project-detail-media{height:380px}.project-detail-grid,.detail-grid{grid-template-columns:1fr;gap:36px}.project-info-card{position:static}.project-plans{grid-template-columns:1fr}.detail-main{height:380px}.detail-specs{grid-template-columns:1fr 1fr} }

/* ── Footer ── */
#site-footer { background: #050C17; padding: 64px 48px 32px; border-top: 1px solid rgba(255,255,255,.07); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:60px; margin-bottom:56px; }
.footer-bottom { padding-top:24px; border-top:1px solid rgba(255,255,255,.06); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.foot-col-title { font-size: .625rem; font-weight: 600; letter-spacing: .16em; color: #FFFFFF; text-transform: uppercase; margin-bottom: 20px; }
.foot-link { font-size: .875rem; color: rgba(255,255,255,.38); text-decoration: none; display: block; transition: color .2s; }
.foot-link:hover { color: #FFFFFF; }

/* ── Animations ── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
.au  { animation: fadeUp .8s cubic-bezier(.22,1,.36,1) both; }
.au1 { animation-delay: .1s; }
.au2 { animation-delay: .25s; }
.au3 { animation-delay: .4s; }
@media (max-width: 900px) {
  .advanced-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-gallery { height:420px !important; }
  .gallery-prev { left:16px; }
  .gallery-next { right:16px; }
  .detail-hero-caption { left:24px; right:24px; bottom:88px; }
  .gallery-thumbs { left:24px; right:24px; justify-content:flex-start; }
  .nav-inner { padding: 0 24px; height: 72px; }
  .nav-inner > a:first-child img { height: 42px !important; }
  .nav-inner > .btn-gold { display: none; }
  .mobile-menu-toggle { display: inline-flex; }
  .nav-links {
    position: fixed; inset: 72px 0 auto 0; max-height: calc(100dvh - 72px);
    overflow-y: auto; display: none; flex-direction: column; align-items: stretch; gap: 0;
    padding: 12px 24px 28px; background: rgba(7,15,28,.99);
    border-top: 1px solid rgba(255,255,255,.1);
    box-shadow: 0 24px 50px rgba(0,0,0,.45);
  }
  #site-nav.menu-open .nav-links { display: flex; }
  .nav-link { min-height: 48px; padding: 13px 0; justify-content: space-between; }
  .has-drop { padding: 0; }
  .drop-menu {
    position: static; display: block; transform: none; min-width: 0;
    padding: 0 0 8px 14px; border: 0; box-shadow: none; background: transparent;
  }
  .drop-menu a { padding: 8px 0; }
  .inner-hero { padding: 128px 24px 64px; }
  .section-dark, .section-mid, .section-card { padding: 64px 24px; }
  #site-footer { padding: 56px 24px 28px; }
  .home-section { padding: 72px 24px !important; }
  .home-search-section { padding-inline: 24px !important; }
  .footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px 28px; }
  .blog-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }

  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:2fr 1fr 1fr auto"],
  [style*="grid-template-columns:1fr 340px"] {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width: 600px) {
  .advanced-filter-grid { grid-template-columns:1fr; }
  .about-grid { grid-template-columns:1fr; gap:42px; }
  .about-visual { max-width:520px; width:100%; margin:0 auto; }
  .values-grid { grid-template-columns:1fr; gap:16px; }
  .nav-inner { padding: 0 20px; height: 68px; }
  .nav-links { inset: 68px 0 auto 0; max-height: calc(100dvh - 68px); padding-inline: 20px; }
  .inner-hero { padding: 112px 20px 52px; }
  .section-dark, .section-mid, .section-card { padding: 52px 20px; }
  #site-footer { padding: 48px 20px 24px; }
  .home-section { padding: 56px 20px !important; }
  .home-search-section { padding-inline: 20px !important; }
  #hero { min-height: 640px; height: 100svh; }
  .hero-content { padding: 76px 20px 40px; }
  .hero-content h1 { font-size: clamp(2rem,10vw,2.75rem) !important; }
  .hero-content p { font-size: .95rem !important; margin-bottom: 30px !important; }
  .hero-content .btn-gold, .hero-content .btn-ghost { width: 100%; max-width: 280px; }
  #search-bar > div:last-child { padding: 22px 18px 24px !important; }
  #app-form { padding: 28px 20px !important; }
  #contact-card { padding: 28px 20px !important; }
  #contact-form { min-width: 0; }
  .blog-grid { grid-template-columns: minmax(0,1fr) !important; }
  .article-hero { min-height: 520px !important; height: 70vh !important; margin-top: 68px !important; }
  .article-hero-content { padding: 0 20px 36px !important; }
  .article-body { padding: 48px 20px 72px !important; }
  .article-cta { padding: 28px 22px !important; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; margin-bottom: 40px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }

  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:2fr 1fr 1fr auto"],
  [style*="grid-template-columns:1fr 340px"],
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns:2fr 1fr"] {
    grid-template-columns: minmax(0,1fr) !important;
  }
  [style*="grid-template-columns:1fr 1.4fr"] { grid-template-columns: minmax(0,1fr) !important; }
  [style*="padding:80px 48px"],
  [style*="padding:64px 48px"] { padding: 52px 20px !important; }
  [style*="padding:24px 48px"] { padding: 20px !important; }
  [style*="left:48px"][style*="right:48px"] { left: 20px !important; right: 20px !important; }
  [style*="height:480px"] { height: 400px !important; }
  .btn-gold, .btn-ghost { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .au { animation: none; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
