.catalog-summary { display:flex; gap:1.5rem; flex-wrap:wrap; margin-block:2rem; color:var(--champagne); font-size:.9rem; }
.hero-price-project { display:block; margin-top:.4rem; color:var(--champagne); font-size:.65rem; line-height:1.5; }
.selection-guide { min-height:22rem; gap:1.5rem; }
.selection-guide h3 { font-size:clamp(1.4rem,2.4vw,2rem); line-height:1.5; }
.selection-guide .button { align-self:flex-start; }
/* The mobile navigation is an in-flow disclosure, so it scrolls with the page. */
@media (max-width:900px) {
  .site-header { position:relative; inset:auto; background:#080909; box-shadow:none; }
  .nav-inner { height:5rem; }
  .nav-actions { gap:.5rem; }
  .menu-button { border:1px solid #51442f; background:#17150f; }
  .menu-button, .language-toggle { min-width:2.75rem; min-height:2.75rem; }
  .mobile-menu { position:relative; inset:auto; z-index:1; display:none; padding:1rem max(1rem,calc((100vw - 42rem)/2)) 1.5rem; overflow:visible; background:#10110f; border-bottom:1px solid #51442f; }
  .mobile-menu.is-open { display:grid; }
  .mobile-menu::before, .mobile-menu::after { display:none; }
  .mobile-menu nav { gap:.45rem; }
  .mobile-menu .nav-link, html[lang="ar"] .mobile-menu .nav-link { display:flex; align-items:center; min-height:3.1rem; padding:.65rem 1rem; border:1px solid #34342e; border-radius:.65rem; font-family:var(--body); font-size:1.05rem; font-weight:700; line-height:1.5; letter-spacing:0; text-transform:none; color:#f7f5ef; background:#191a17; }
  .mobile-menu .nav-link::after { display:none; }
  .mobile-menu .nav-link:hover { border-color:var(--gold); background:#29251b; }
  .mobile-menu-meta { flex-wrap:wrap; gap:.75rem 1.5rem; margin-top:1rem; padding-top:1rem; font-size:.75rem; color:#d5d0c4; }
  .hero { min-height:calc(100svh - 5rem); }
  .hero-content { padding:clamp(9rem,24svh,15rem) 0 2.5rem; }
  .hero-shade, html[dir="rtl"] .hero-shade { background:linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.38) 25%,rgba(0,0,0,.78) 52%,rgba(0,0,0,.94) 100%); }
  .hero-kicker { color:#ffe3a3; line-height:1.8; margin-bottom:1rem; text-shadow:0 2px 8px #000; }
  .hero-title { text-shadow:0 3px 18px #0009; }
  .hero-subrow { gap:1.5rem; margin-top:1.5rem; }
  .hero-copy { max-width:32rem; color:#fff; font-size:1rem; font-weight:400; line-height:1.95; text-shadow:0 2px 6px #000; }
  .hero-actions > .button:not(.button-gold) { background:#111c; border-color:#bfb59e; }
}
@media (max-width:768px) {
  html[lang="ar"] .hero-title { font-size:clamp(2.4rem,10.8vw,4.4rem); line-height:1.35; }
  .hero-title { font-size:clamp(3.5rem,18vw,6rem); }
  .hero-actions { flex-direction:column; gap:.75rem; }
  .hero-actions .button { min-height:3.5rem; }
  .contact-layout { grid-template-columns:minmax(0,1fr); }
  .contact-layout > * { min-width:0; }
  html[lang="en"] #contact-title { font-size:clamp(2.8rem,14vw,4.5rem); }
}
.catalog-summary strong { font:700 1.7rem var(--body-en); margin-inline-end:.4rem; }
.catalog-controls { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:1rem; padding:1.4rem; margin-bottom:1.4rem; background:#14130f; border:1px solid #39342a; border-radius:1rem; }
.catalog-field { display:grid; gap:.65rem; color:#d6cbb4; font-size:.8rem; min-width:0; }
.catalog-field input,.catalog-field select { min-width:0; width:100%; height:3rem; padding:0 .85rem; border:1px solid #554b37; border-radius:.55rem; background:#090909; color:#fff; font-size:.9rem; }
.catalog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-block:1.2rem 2rem; color:#bcb8b0; font-size:.85rem; }
.catalog-reset { border:0; border-bottom:1px solid #9f8759; padding:.5rem 0; background:none; color:var(--champagne); cursor:pointer; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.4rem; }
.catalog-card { min-width:0; display:flex; flex-direction:column; background:#111; border:1px solid #36332c; border-radius:1.1rem; overflow:hidden; transition:border-color .2s,transform .2s; }
.catalog-card:hover { border-color:#aa8951; transform:translateY(-3px); }
.catalog-media { position:relative; aspect-ratio:16/10; overflow:hidden; background:#222; }
.catalog-media img { width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.catalog-card:hover .catalog-media img { transform:scale(1.04); }
.catalog-badge { position:absolute; top:1rem; inset-inline-start:1rem; padding:.5rem .7rem; color:#fff; background:#101010df; border:1px solid #ffffff30; border-radius:2rem; font-size:.7rem; }
.catalog-card-body { padding:1.35rem; display:flex; flex:1; flex-direction:column; gap:.8rem; }
.catalog-developer { color:var(--champagne); font-size:.78rem; line-height:1.6; }
.catalog-card h3 { font:700 1.2rem/1.7 var(--body); }
.catalog-location { color:#b7b4af; font-size:.83rem; line-height:1.5; }
.catalog-description { color:#c1beb8; font-size:.85rem; line-height:1.9; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.catalog-facts { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:auto; padding-top:.5rem; }
.catalog-facts span { padding:.4rem .6rem; border:1px solid #3a3832; border-radius:.4rem; color:#d2c9b9; font-size:.73rem; }
.catalog-card-bottom { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-top:1px solid #36332c; padding-top:1rem; margin-top:.3rem; }
.catalog-price { display:grid; gap:.25rem; }
.catalog-price small { color:#b7b4af; font-size:.7rem; }
.catalog-price strong { color:var(--champagne); font:600 1.1rem var(--body); }
.catalog-open { border:1px solid #927541; border-radius:.6rem; padding:.65rem .8rem; background:#d4a95f; color:#080603; cursor:pointer; font-size:.78rem; font-weight:700; }
.catalog-more { display:block; margin:2rem auto 0; }
.catalog-empty { padding:3rem 1.5rem; text-align:center; border:1px dashed #67583c; border-radius:1rem; line-height:2; }
.catalog-note { color:#aaa59b; font-size:.8rem; line-height:1.9; margin-top:1.5rem; }
.developer-directory { margin-top:3rem; border-top:1px solid #353128; padding-top:2rem; }
.developer-directory summary { color:#e7c98b; cursor:pointer; font-size:1rem; }
.developer-list { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.5rem; }
.developer-chip { border:1px solid #484032; background:#12110e; color:#ded5c5; border-radius:.6rem; padding:.65rem .8rem; cursor:pointer; font-size:.8rem; }
.developer-chip[aria-pressed="true"] { border-color:var(--gold); background:#342919; color:#fff; }
.gallery-facts { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-block:1.4rem; }
.gallery-facts div { border-bottom:1px solid #453c2b; padding:.6rem 0; }
.gallery-facts dt { color:#bbb1a0; font-size:.72rem; margin-bottom:.45rem; }
.gallery-facts dd { color:#fff; font-size:.95rem; line-height:1.6; }
.gallery-ownership { padding:.8rem; border:1px solid #c99b56; border-radius:.5rem; color:#f0ce96; font-size:.85rem; line-height:1.7; }
.gallery-source { display:inline-block; margin-block:1rem; font-size:.75rem; color:#d4bd96; text-decoration:underline; text-underline-offset:4px; }
.gallery-image-unavailable { display:grid; place-items:center; min-height:20rem; color:#c9c1b4; }
.catalog-card .missing-project-photo { display:grid; place-items:center; height:100%; padding:2rem; color:#b7a887; text-align:center; }
[hidden] { display:none !important; }
@media(max-width:1100px) { .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .catalog-controls { grid-template-columns:1fr 1fr; } }
@media(max-width:640px) { .catalog-grid { grid-template-columns:1fr; } .catalog-controls { padding:1rem; gap:1rem .65rem; } .catalog-controls .catalog-field:first-child { grid-column:1/-1; } .catalog-controls .catalog-field:last-child { grid-column:1/-1; } .catalog-summary { gap:1rem; font-size:.75rem; } .catalog-summary strong { font-size:1.4rem; } .catalog-card h3 { font-size:1.15rem; } .catalog-toolbar { align-items:flex-start; } .gallery-facts { grid-template-columns:1fr 1fr; } }
#project-gallery-dialog .gallery-thumbnails { display:flex; gap:.6rem; overflow-x:auto; padding-bottom:.4rem; }
#project-gallery-dialog .gallery-thumbnail { flex:0 0 5.5rem; min-width:5.5rem; }
#project-gallery-dialog .gallery-main img { object-fit:contain; }
#project-gallery-dialog .gallery-counter { margin-bottom:.3rem; }
#project-gallery-dialog .gallery-details { padding-top:3rem; }
#project-gallery-dialog .gallery-details h2 { font-size:clamp(1.6rem,2.4vw,2.3rem); line-height:1.5; }
#project-gallery-dialog .gallery-facts { margin-top:.5rem; }
@media(max-width:640px) {
  #project-gallery-dialog .gallery-main { min-height:15rem; height:17rem; }
  #project-gallery-dialog .gallery-details { padding:1.3rem 1.1rem 2rem; }
  #project-gallery-dialog .gallery-details h2 { font-size:1.6rem; }
}
.gallery-expand { position:absolute; inset-inline-start:1rem; top:1rem; z-index:1; display:inline-flex; align-items:center; gap:.55rem; min-height:2.75rem; padding:.6rem .85rem; border:1px solid #cdb57e; border-radius:.65rem; background:#111e; color:#fff; font-size:.8rem; cursor:pointer; }
.gallery-expand svg { width:1.1rem; height:1.1rem; }
.gallery-expand:hover { background:#362c1d; border-color:var(--champagne); }
#gallery-lightbox { position:fixed; inset:0; width:100vw; height:100vh; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; border-radius:0; background:#050505; overflow:hidden; }
/* Repeated navigation clicks must not select the image or viewer surface. */
.gallery-visual, .gallery-visual *, #gallery-lightbox, #gallery-lightbox * { -webkit-user-select:none; user-select:none; }
.gallery-visual img, #lightbox-image { -webkit-user-drag:none; }
#lightbox-image { width:100%; height:100%; object-fit:contain; }
#lightbox-close { top:max(1rem,env(safe-area-inset-top)); inset-inline-end:max(1rem,env(safe-area-inset-right)); width:3rem; height:3rem; }
.lightbox-counter { position:absolute; bottom:max(1rem,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); padding:.55rem 1rem; border:1px solid #ffffff45; border-radius:2rem; color:#fff; background:#111d; font-size:.85rem; }
@media(max-width:640px) { #gallery-lightbox .gallery-arrow { width:2.75rem; height:2.75rem; } .gallery-expand { top:.65rem; inset-inline-start:.65rem; } }
