/* Shared finish; each template keeps its own layout and selected palette. */
.public-space { color: #23313c; -webkit-font-smoothing: antialiased; line-height: 1.65; }
.public-space :is(h1,h2,h3) { text-wrap: balance; overflow-wrap: anywhere; }
.public-space :is(a,button):focus-visible { outline: 3px solid var(--accent-blue); outline-offset: 5px; }
.public-space .site-nav { box-shadow: 0 1px 0 #ffffff18, 0 6px 24px #14233112; }
.public-space .site-brand img { object-fit: contain; }
.public-space .status-tab { min-height: 40px; font-family: inherit; transition: background .2s, box-shadow .2s; }
.public-space .status-tab:hover { box-shadow: 0 3px 12px #14233115; }
.public-space .status-tab.active { background: var(--sidebar-bg); border-color: var(--sidebar-bg); color: white; }
.public-space :is(.lots-grid,.lot-list) { padding-top: 32px; padding-bottom: 48px; }
.public-space .lot-card { border-color: #182d3014; box-shadow: 0 1px 2px #18213009, 0 12px 28px #18213014; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.public-space .lot-card:hover { transform: translateY(-5px); box-shadow: 0 1px 2px #18213009, 0 22px 40px #1821301f; border-color: #182d3026; }
.public-space .space-gallery-card { transition: transform .25s ease; }
.public-space .space-gallery-card:hover { transform: translateY(-5px); }
.public-space .space-gallery-card:hover .lot-card { transform: none; }
.public-space .lot-row { padding-top: 20px; padding-bottom: 20px; }
.public-space .hero { padding: clamp(36px,6vw,80px) max(24px,calc((100vw - 1200px)/2)); background: linear-gradient(120deg,var(--sidebar-bg),var(--sidebar-bg) 65%,var(--accent-blue)); }
.public-space .hero h1 { font-size: clamp(2rem,4vw,3.6rem); letter-spacing: -.04em; }
.public-space .badge-status { line-height: 1.5; box-shadow: inset 0 0 0 1px #18213008; }
.public-space .badge-status-available { background: #e3f6ec; color: #146b41; }
.public-space .badge-status-partial { background: #fdf1dc; color: #8a5a08; }
.public-space .badge-status-occupied { background: #fbe6e6; color: #ab2d2d; }
.public-space footer { padding: 30px 20px; }
.public-space [hidden] { display: none !important; }
/* Prestige: architectural photography, editorial spacing and quiet accents. */
.prestige { --prestige-paper: #f8f7f3; background: #fff; color: var(--sidebar-bg); }
.prestige :is(h1,h2,h3) { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; }
.prestige .site-nav { background: #fffffffa; border-bottom: 1px solid #182d4010; backdrop-filter: blur(12px); }
.prestige .site-nav-inner { max-width: 1320px; }
.prestige .site-brand { color: var(--sidebar-bg); gap: 14px; }
.prestige .site-brand span { font-family: Georgia,serif; font-weight: 400; }
.prestige .site-brand img { width: 42px; height: 42px; border-radius: 0; }
.prestige .site-menu a { color: var(--sidebar-bg); font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; }
.prestige .site-menu-toggle { color: var(--sidebar-bg); }
.prestige-hero { position: relative; min-height: min(820px,88svh); background: var(--sidebar-bg); display: grid; place-items: center; text-align: center; color: #fff; padding: 100px 24px 125px; clip-path: polygon(0 0,100% 0,100% 94%,50% 100%,0 94%); }
.prestige-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,#07132135,#07132185 70%,#071321b0); }
.prestige-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.prestige-hero-content { position: relative; z-index: 1; max-width: 1050px; }
.prestige-eyebrow { font-size: .7rem; font-weight: 600; letter-spacing: .23em; text-transform: uppercase; margin-bottom: 22px; color: var(--accent-blue); }
.prestige-hero .prestige-eyebrow { color: #fff; opacity: .85; }
.prestige-hero h1 { font-size: clamp(2.8rem,7vw,6.5rem); line-height: 1.06; letter-spacing: -.035em; margin: 0 0 28px; }
.prestige-tagline { font-size: clamp(.85rem,1.6vw,1.2rem); letter-spacing: .16em; margin-bottom: 36px; }
.prestige-button { display: inline-flex; align-items: center; justify-content: center; gap: 32px; padding: 17px 25px; text-decoration: none; text-transform: uppercase; letter-spacing: .12em; font-size: .7rem; border: 1px solid currentColor; transition: background .2s,color .2s; }
.prestige-button-light { color: #fff; }
.prestige-button-light:hover { background: #fff; color: var(--sidebar-bg); }
.prestige-scroll { position: absolute; z-index: 1; bottom: 42px; color: #fff; font-size: 1.6rem; text-decoration: none; }
.prestige-about { max-width: 1240px; margin: auto; padding: 110px 32px; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,7vw,100px); align-items: center; scroll-margin-top: 85px; }
.prestige-about-image { padding: 12px; border: 1px solid var(--accent-blue); }
.prestige-about-image img { display: block; width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.prestige-monogram { display: grid; place-items: center; aspect-ratio: 4/5; background: var(--prestige-paper); color: var(--accent-blue); font-size: 7rem; }
.prestige h2 { font-size: clamp(2.1rem,4vw,3.7rem); line-height: 1.15; letter-spacing: -.025em; margin-bottom: 26px; }
.prestige-intro { color: #667078; line-height: 1.9; overflow-wrap: anywhere; }
.prestige-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 32px 0; padding: 28px 0; border-block: 1px solid #182d4018; }
.prestige-stats strong { display: block; font-family: Georgia,serif; font-size: 2.6rem; font-weight: 400; }
.prestige-stats span { display: block; font-size: .72rem; color: #667078; }
.prestige-text-link { font-size: .78rem; text-decoration: none; border-bottom: 1px solid var(--accent-blue); padding-bottom: 8px; }
.prestige-collection { background: var(--prestige-paper); padding: 85px 24px 95px; scroll-margin-top: 62px; }
.prestige-section-heading { text-align: center; max-width: 740px; margin: 0 auto 32px; }
.prestige-section-heading > p:last-child { color: #667078; font-size: .9rem; }
.prestige .status-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 auto 40px; }
.prestige .status-tab { border: 1px solid #182d4025; border-radius: 0; background: transparent; color: var(--sidebar-bg); padding: 8px 18px; font-size: .75rem; }
.prestige-grid { max-width: 1240px; margin: auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.prestige-card { min-width: 0; display: flex; flex-direction: column; background: #fff; color: inherit; text-decoration: none; box-shadow: 0 4px 18px #182d4005; transition: transform .25s,box-shadow .25s; }
.prestige-card:hover { color: inherit; transform: translateY(-5px); box-shadow: 0 16px 35px #182d4014; }
.prestige-card-photo { position: relative; aspect-ratio: 4/3; overflow: hidden; background: #e9e7df; display: grid; place-items: center; }
.prestige-card-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.prestige-card:hover img { transform: scale(1.035); }
.prestige-card-photo .badge-status { position: absolute; top: 16px; left: 16px; border-radius: 0; font-size: .65rem; padding: 7px 12px; }
.prestige-photo-placeholder { font-size: .78rem; color: #62665f; }
.prestige-card-content { padding: 26px; flex: 1; display: flex; flex-direction: column; }
.prestige-card h3 { font-size: 1.65rem; margin-bottom: 12px; }
.prestige-card .lot-meta { font-size: .7rem; color: #667078; margin-bottom: 12px; }
.prestige-card .available-date { font-size: .75rem; color: #667078; }
.prestige-card-bottom { margin-top: auto; border-top: 1px solid #182d4015; padding-top: 18px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.prestige-card .lot-price { font-size: .88rem; font-weight: 600; }
.prestige-card-arrow { font-size: 1.5rem; color: var(--accent-blue); }
.prestige-card-link { margin-top: 8px; font-size: .7rem; }
.prestige-contact { background: var(--sidebar-bg); color: white; padding: 75px max(24px,calc((100vw - 1176px)/2)); display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.prestige-contact .prestige-eyebrow { color: white; opacity: .75; }
.prestige-contact h2 { font-size: clamp(2rem,4vw,3.2rem); }
.prestige-contact > div > p:last-child { opacity: .75; font-size: .85rem; }
.prestige-contact .prestige-button { flex-shrink: 0; }
.prestige footer { background: var(--sidebar-bg); color: #ffffffb0; border-color: #ffffff20; font-size: .7rem; }
@media(max-width: 960px) { .prestige-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width: 720px) {
    .prestige .site-menu { background: white; }
    .prestige-hero { min-height: 650px; min-height: 80svh; padding-inline: 20px; }
    .prestige-about { grid-template-columns: 1fr; padding: 65px 24px; gap: 36px; }
    .prestige-about-image img,.prestige-monogram { aspect-ratio: 4/3; }
    .prestige-collection { padding: 60px 20px; }
    .prestige-grid { grid-template-columns: 1fr; }
    .prestige-contact { flex-direction: column; align-items: flex-start; padding: 55px 24px; }
}
@media(prefers-reduced-motion: reduce) { .public-space *, .public-space *::after { transition: none !important; scroll-behavior: auto !important; } }
.public-space .gallery-photo { display: block; width: calc(100% + 36px); max-width: none; height: 220px; object-fit: cover; margin: -18px -18px 20px; border-radius: 14px 14px 0 0; }

/* Collection of layouts: shared typography, then individual compositions. */
.public-space:not(.prestige) { background: var(--page-bg,#f5f7fa); }
.public-space:not(.prestige) .site-nav { background: #fff; border-bottom: 1px solid #e7ebef; }
.public-space:not(.prestige) .site-brand,
.public-space:not(.prestige) .site-menu a,
.public-space:not(.prestige) .site-menu-toggle { color: var(--sidebar-bg); }
.public-space:not(.prestige) .site-brand span { font-weight: 700; letter-spacing: -.025em; }
.public-space:not(.prestige) .site-menu a:last-child { background: var(--sidebar-bg); color: #fff; padding: 8px 18px; border-radius: 8px; }
.public-space :is(.lot-card,.lot-row-main,.thumb-row-main,.showcase-body) { min-width: 0; overflow-wrap: anywhere; }
.public-space .lot-card h3 { font-weight: 800; letter-spacing: -.01em; }
.public-space .space-card-photo { display: block; width: 100%; height: 190px; object-fit: cover; border-radius: 10px; margin-bottom: 18px; }
.public-space .space-photo-empty { display: grid; place-items: center; background: linear-gradient(135deg,#e9eef1,#f6f4ed); color: #697782; font-size: .75rem; font-weight: 400; }
.public-space .space-welcome { line-height: 1.8; }
.public-space:not(.prestige) .status-tabs { gap: 8px; }
.public-space:not(.prestige) .status-tab { font-size: .78rem; font-weight: 600; padding: 9px 17px; }
.public-space:not(.prestige) .empty-state { border: 1px dashed #bfc9d1; border-radius: 16px; margin: 24px; background: #ffffff80; }
.public-space .lot-meta { line-height: 1.6; }
.public-space .lot-price { font-variant-numeric: tabular-nums; }
.public-space .filter-empty-message { max-width: 1000px; align-self: center; }
/* Vitrine — generous image cards and a spacious introduction. */
.theme-gallery .hero { border-radius: 0 0 32px 32px; }
.theme-gallery .status-tabs { background: transparent; border: 0; padding: 24px; position: static; max-width: 1280px; margin: auto; }
.theme-gallery .lots-grid { gap: 26px; padding-top: 0; grid-template-columns: repeat(auto-fill,minmax(min(100%,300px),1fr)); }
.theme-gallery .lot-card { border-radius: 18px; padding: 22px; }
.theme-gallery .gallery-photo { width: calc(100% + 44px); margin: -22px -22px 22px; border-radius: 18px 18px 0 0; height: 230px; }
.theme-gallery .lot-card h3 { font-size: 1.25rem; margin: 8px 0; }
/* Liste — clear rows with a separate rent column. */
.theme-list .list-topbar { padding: 36px max(24px,calc((100vw - 1050px)/2)); background: var(--page-bg,#f5f7fa); border: 0; position: static; }
.theme-list .list-topbar h1 { font-size: clamp(1.8rem,4vw,3rem); letter-spacing: -.04em; margin-bottom: 18px; }
.theme-list .list-topbar .status-tabs { margin-top: 22px; }
.theme-list .lot-list { max-width: 1100px; padding: 0 24px 60px; }
.theme-list .lot-row { background: #fff; border: 1px solid #e7ebef; border-radius: 12px; margin-bottom: 10px; padding: 22px 26px; gap: 24px; }
.theme-list .lot-row:hover { border-color: var(--accent-blue); }
.theme-list .lot-row h3 { font-size: 1.1rem; margin-bottom: 8px; }
.theme-list .lot-row-side { border-left: 1px solid #e7ebef; padding-left: 24px; }
/* Magazine — lead story followed by a photographic collection. */
.theme-magazine .magazine-hero { margin: 24px auto 0; width: calc(100% - 48px); max-width: 1252px; min-height: 520px; border-radius: 24px; overflow: hidden; }
.theme-magazine .magazine-hero-content { padding: clamp(24px,5vw,64px); max-width: 850px; }
.theme-magazine .magazine-hero h1 { font-size: clamp(2rem,5vw,4.4rem); line-height: 1.08; letter-spacing: -.04em; }
.theme-magazine .magazine-hero .cta { background: white; color: var(--sidebar-bg); border-radius: 8px; padding: 13px 24px; }
.theme-magazine .status-tabs { max-width: 1300px; margin: auto; background: transparent; border: 0; padding: 28px 24px 0; }
.theme-magazine .lots-grid { gap: 24px; grid-template-columns: repeat(auto-fill,minmax(min(100%,280px),1fr)); }
.theme-magazine .lot-card { padding: 18px; border-radius: 16px; }
.theme-magazine .lot-card h3 { font-size: 1.18rem; }
/* Portfolio — immersive photographs with an asymmetric opening. */
.public-space.theme-portfolio { background: #fff; }
.theme-portfolio .portfolio-topbar { background: #fff; color: var(--sidebar-bg); padding: 65px 24px 35px; }
.theme-portfolio .portfolio-topbar h1 { font-size: clamp(2.2rem,5vw,4.5rem); letter-spacing: -.05em; }
.theme-portfolio .space-welcome { margin-inline: auto; }
.theme-portfolio .status-tabs { border: 0; padding-bottom: 30px; }
.theme-portfolio .portfolio-grid { max-width: 1440px; margin: auto; padding: 0 24px 48px; gap: 18px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.theme-portfolio .portfolio-card { height: 390px; border-radius: 16px; background-color: var(--sidebar-bg); }
.theme-portfolio .portfolio-card:first-child { grid-column: span 2; }
.theme-portfolio .portfolio-card-content { padding: 30px; }
.theme-portfolio .portfolio-card-content h3 { font-size: 1.65rem; font-weight: 600; }
.theme-portfolio .badge-status-available { background: #e6f8ee; color: #14613d; }
.theme-portfolio .badge-status-partial { background: #fff4e0; color: #79520c; }
.theme-portfolio .badge-status-occupied { background: #fde8e8; color: #a72b2b; }
/* Panneau latéral — an anchored search panel and image-led results. */
.theme-split .split-wrap { max-width: 1500px; width: 100%; margin: auto; align-items: flex-start; gap: 24px; padding: 24px; }
.theme-split .split-sidebar { position: sticky; top: 86px; width: 280px; border-radius: 20px; padding: 30px 24px; }
.theme-split .split-sidebar h1 { font-size: 1.8rem; line-height: 1.2; }
.theme-split .split-stat { padding-block: 13px; }
.theme-split .split-main { flex: 1 1 0; min-width: 0; overflow: visible; padding: 0; }
.theme-split .lots-grid { padding: 0 0 32px; gap: 22px; grid-template-columns: repeat(auto-fill,minmax(min(100%,250px),1fr)); }
.theme-split .split-filters .status-tab.active { background: #fff; color: var(--sidebar-bg); border-color: #fff; }
/* Grille compacte — small visual cards, comfortable text sizes. */
.theme-compact .compact-topbar { text-align: left; padding: 40px max(24px,calc((100vw - 1250px)/2)); }
.theme-compact .compact-topbar h1 { font-size: 2rem; }
.theme-compact .compact-grid { gap: 16px; padding: 26px 24px 50px; grid-template-columns: repeat(auto-fill,minmax(min(100%,205px),1fr)); }
.theme-compact .lot-card { border-radius: 14px; padding: 14px; }
.theme-compact .space-card-photo { height: 125px; margin-bottom: 12px; }
.theme-compact .lot-card h3 { font-size: .98rem; margin: 6px 0; }
.theme-compact .lot-price { font-size: .88rem; }
.theme-compact .badge-status { font-size: .68rem; }
/* Lignes à vignette — large thumbnails in separate horizontal cards. */
.theme-thumbnail .thumb-topbar { padding: 44px max(24px,calc((100vw - 1060px)/2)); background: transparent; border: 0; }
.theme-thumbnail .thumb-topbar h1 { font-size: clamp(2rem,4vw,3rem); }
.theme-thumbnail .thumb-topbar .status-tabs { margin-top: 24px; }
.theme-thumbnail .thumb-list { max-width: 1110px; padding: 0 24px 60px; }
.theme-thumbnail .thumb-row { background: #fff; border: 1px solid #e7ebef; border-radius: 16px; padding: 14px; margin-bottom: 16px; gap: 24px; }
.theme-thumbnail .thumb-img { width: 145px; height: 115px; border-radius: 10px; }
.theme-thumbnail .thumb-row-main { flex: 1 1 0; }
.theme-thumbnail .thumb-row-main h3 { font-size: 1.18rem; margin-bottom: 8px; }
.theme-thumbnail .thumb-row-side { padding-right: 12px; }
/* Éditorial — restrained typography and wide photographic spreads. */
.theme-editorial .editorial-intro { max-width: 900px; padding: 85px 24px 35px; }
.theme-editorial .editorial-intro h1 { font-family: Georgia,serif; font-weight: 400; font-size: clamp(2.7rem,6vw,5rem); line-height: 1.08; }
.theme-editorial .space-welcome { margin-inline: auto; }
.theme-editorial .editorial-grid { max-width: 1280px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 48px; padding: 15px 32px 80px; }
.theme-editorial .lot-card { box-shadow: none; border-bottom: 1px solid #bfc9d1; padding-bottom: 28px; }
.theme-editorial .lot-card:hover { box-shadow: none; }
.theme-editorial .space-card-photo { height: auto; aspect-ratio: 4/3; border-radius: 2px; margin-bottom: 24px; }
.theme-editorial .lot-card h3 { font-family: Georgia,serif; font-size: 1.9rem; font-weight: 400; }
/* Mosaïque — staggered photo heights and soft, floating cards. */
.theme-masonry .masonry-topbar { padding: 55px 24px; background: transparent; color: var(--sidebar-bg); }
.theme-masonry .masonry-topbar h1 { font-size: clamp(2rem,4vw,3.4rem); letter-spacing: -.04em; }
.theme-masonry .space-welcome { margin-inline: auto; }
.theme-masonry .status-tabs { background: transparent; border: 0; }
.theme-masonry .masonry-wrap { max-width: 1320px; column-gap: 24px; padding: 25px 24px 60px; }
.theme-masonry .lot-card { border-radius: 18px; margin-bottom: 24px; }
.theme-masonry .lot-card .thumb { height: 220px; }
.theme-masonry .lot-card:nth-child(3n+1) .thumb { height: 310px; }
.theme-masonry .lot-card:nth-child(3n+2) .thumb { height: 260px; }
.theme-masonry .lot-card .body { padding: 24px; }
.theme-masonry .lot-card h3 { font-size: 1.2rem; margin-top: 12px; }
/* Chronologique — availability dates as clear milestones. */
.theme-timeline .timeline-topbar { padding: 50px 24px 30px; border: 0; background: transparent; }
.theme-timeline .timeline-topbar h1 { font-size: clamp(2rem,4vw,3rem); }
.theme-timeline .space-welcome { margin-inline: auto; }
.theme-timeline .status-tabs { margin-top: 24px; }
.theme-timeline .timeline-wrap { max-width: 900px; padding: 25px 24px 55px 64px; }
.theme-timeline .timeline-wrap::before { left: 35px; background: #d1dbe2; }
.theme-timeline .timeline-item { border: 1px solid #e7ebef; border-radius: 16px; background: #fff; padding: 28px; margin-bottom: 20px; }
.theme-timeline .timeline-dot { left: -36px; top: 34px; }
.theme-timeline .timeline-date { font-weight: 700; color: var(--sidebar-bg); background: var(--page-bg,#f5f7fa); padding: 6px 12px; border-radius: 6px; width: fit-content; margin-bottom: 14px; }
.theme-timeline .timeline-date:empty { display: none; }
.theme-timeline .timeline-item h3 { font-size: 1.3rem; }
/* Catalogue — a legible comparison table with a contained scroll area. */
.theme-catalog .catalog-topbar { padding: 40px max(24px,calc((100vw - 1150px)/2)); }
.theme-catalog .catalog-topbar h1 { font-size: 2.3rem; }
.theme-catalog .catalog-topbar .status-tabs { margin-top: 25px; }
.theme-catalog .catalog-topbar .status-tab.active { background: #fff; color: var(--sidebar-bg); border-color: #fff; }
.theme-catalog .catalog-wrap { margin: 32px auto 60px; width: calc(100% - 48px); padding: 0; border: 1px solid #e3e9ee; border-radius: 16px; background: #fff; }
.theme-catalog table.catalog { min-width: 750px; }
.theme-catalog table.catalog th { background: #f1f4f6; padding: 20px; font-size: .68rem; border-bottom: 1px solid #e3e9ee; }
.theme-catalog table.catalog td { padding: 22px 20px; }
.theme-catalog table.catalog tr:nth-child(even) td { background: #f8fafb; }
.theme-catalog table.catalog tr:hover td { background: #edf2f5; }
/* Fiches contact — generous round images and centered information. */
.theme-directory .directory-topbar { background: transparent; color: var(--sidebar-bg); padding: 60px 24px 30px; }
.theme-directory .directory-topbar h1 { font-size: clamp(2rem,4vw,3.5rem); }
.theme-directory .space-welcome { margin-inline: auto; }
.theme-directory .status-tabs { background: transparent; border: 0; }
.theme-directory .directory-grid { max-width: 1280px; grid-template-columns: repeat(auto-fill,minmax(min(100%,240px),1fr)); gap: 24px; padding: 24px 24px 65px; }
.theme-directory .lot-card { border-radius: 22px; padding: 35px 24px; }
.theme-directory .directory-avatar { width: 110px; height: 110px; margin-bottom: 24px; box-shadow: 0 0 0 6px #f0f3f5; font-size: 2rem; }
.theme-directory .lot-card h3 { font-size: 1.15rem; margin-bottom: 16px; }
.theme-directory .lot-price { border-top: 1px solid #e7ebef; margin-top: 20px; padding-top: 18px; font-size: .95rem; }
/* Grand format — alternate expansive images and property details. */
.theme-showcase .showcase-topbar { max-width: 1250px; padding: 60px 24px 20px; }
.theme-showcase .showcase-topbar h1 { font-size: clamp(2rem,4vw,3.8rem); letter-spacing: -.04em; }
.theme-showcase .status-tabs { margin-top: 26px; }
.theme-showcase .showcase-list { max-width: 1250px; gap: 32px; padding: 20px 24px 70px; }
.theme-showcase .showcase-card { border-radius: 22px; min-height: 330px; }
.theme-showcase .showcase-card:nth-child(even) { flex-direction: row-reverse; }
.theme-showcase .showcase-img { width: 48%; }
.theme-showcase .showcase-body { flex: 1 1 0; padding: 40px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.theme-showcase .showcase-body h3 { font-size: 1.8rem; line-height: 1.2; margin-block: 16px; }
.theme-showcase .lot-price { margin-top: 12px; }
/* Boutique — quiet, warm styling and photographic product rows. */
.public-space.theme-boutique { background: #faf9f6; }
.theme-boutique .boutique-topbar { padding: 75px 24px 30px; }
.theme-boutique .boutique-topbar h1 { font-family: Georgia,serif; font-size: clamp(2.4rem,5vw,4rem); font-weight: 400; letter-spacing: -.02em; text-transform: none; }
.theme-boutique .space-welcome { margin-inline: auto; }
.theme-boutique .status-tab.active { background: transparent; color: var(--sidebar-bg); border-color: var(--accent-blue); }
.theme-boutique .boutique-list { max-width: 1120px; padding-inline: 24px; }
.theme-boutique .boutique-item { align-items: center; gap: 32px; padding-block: 30px; }
.theme-boutique .space-card-photo { width: 170px; height: 135px; flex-shrink: 0; border-radius: 0; margin: 0; }
.theme-boutique .boutique-item > div:first-of-type { flex: 1; min-width: 0; }
.theme-boutique .boutique-item h3 { font-family: Georgia,serif; text-transform: none; font-size: 1.65rem; font-weight: 400; letter-spacing: 0; margin-top: 12px; }
.theme-boutique .lot-meta { color: #65717a; }
.theme-boutique .lot-price { max-width: 200px; font-size: .95rem; text-align: right; }
/* Tableau de bord — separate metrics and clean status-accented cards. */
.theme-board .board-heading { max-width: 1300px; margin: auto; padding: 40px 24px 20px; }
.theme-board .board-heading h1 { font-size: clamp(1.8rem,4vw,2.8rem); letter-spacing: -.04em; }
.theme-board .board-heading > p:last-child { color: #65717a; }
.theme-board .board-stats { max-width: 1300px; margin: auto; gap: 16px; background: transparent; padding: 0 24px 24px; }
.theme-board .board-stat { border: 1px solid #e3e9ee; background: #fff; color: var(--sidebar-bg); border-radius: 16px; padding: 24px; }
.theme-board .board-stat:first-child { background: var(--sidebar-bg); color: #fff; border-color: var(--sidebar-bg); }
.theme-board .board-stat .num { font-size: 2.3rem; letter-spacing: -.04em; }
.theme-board .status-tabs { max-width: 1300px; margin: auto; background: transparent; border: 0; padding-inline: 24px; }
.theme-board .board-grid { gap: 18px; padding: 16px 24px 60px; grid-template-columns: repeat(auto-fill,minmax(min(100%,245px),1fr)); }
.theme-board .lot-card { border-radius: 14px; padding: 22px; border-top: 3px solid #b6c3cc; }
.theme-board .lot-card[data-status='available'] { border-top-color: #2a9165; }
.theme-board .lot-card[data-status='partial'] { border-top-color: #bf953c; }
.theme-board .lot-card h3 { font-size: 1.12rem; margin: 14px 0 8px; }
.theme-board .lot-price { border-top: 1px solid #e7ebef; margin-top: 20px; padding-top: 16px; }
/* Responsive compositions keep text readable without page-wide scrolling. */
@media(max-width: 1000px) {
    .theme-portfolio .portfolio-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .theme-split .split-sidebar { width: 240px; }
    .theme-showcase .showcase-body { padding: 28px; }
}
@media(max-width: 760px) {
    .theme-split .split-wrap { padding: 16px; }
    .theme-split .split-sidebar { position: static; width: 100%; }
    .theme-split .split-main { width: 100%; }
    .theme-split .split-filters { flex-direction: row; flex-wrap: wrap; }
    .theme-thumbnail .thumb-row { flex-wrap: wrap; gap: 16px; }
    .theme-thumbnail .thumb-img { width: 100px; height: 100px; }
    .theme-thumbnail .thumb-row-side { width: 100%; text-align: left; border-top: 1px solid #e7ebef; padding: 12px 0 0; }
    .theme-editorial .editorial-grid { grid-template-columns: 1fr; padding-inline: 24px; gap: 32px; }
    .theme-showcase .showcase-card,.theme-showcase .showcase-card:nth-child(even) { flex-direction: column; }
    .theme-showcase .showcase-img { width: 100%; height: 260px; }
    .theme-boutique .boutique-item { flex-wrap: wrap; gap: 20px; }
    .theme-boutique .space-card-photo { width: 100px; height: 110px; }
    .theme-boutique .lot-price { width: 100%; max-width: none; text-align: left; }
}
@media(max-width: 720px) {
    .public-space:not(.prestige) .site-menu { background: #fff; }
    .public-space:not(.prestige) .site-menu a:last-child { margin-top: 8px; width: auto; }
}
@media(max-width: 520px) {
    .theme-list .lot-row { flex-direction: column; align-items: flex-start; padding: 20px; }
    .theme-list .lot-row-side { text-align: left; border-left: 0; padding: 14px 0 0; border-top: 1px solid #e7ebef; width: 100%; }
    .theme-portfolio .portfolio-grid { grid-template-columns: 1fr; padding-inline: 16px; }
    .theme-portfolio .portfolio-card:first-child { grid-column: auto; }
    .theme-portfolio .portfolio-card { height: 360px; }
    .theme-magazine .magazine-hero { width: calc(100% - 32px); min-height: 460px; margin-top: 16px; }
    .theme-boutique .boutique-item h3 { font-size: 1.3rem; }
}

/* Responsive refinements and shared discovery controls. */
.public-space { --space-line: #dfe6eb; --space-muted: #576773; --space-radius: 16px; overflow-wrap: anywhere; }
.public-space .page-main { min-width: 0; }
.public-space :is(button,input,a) { -webkit-tap-highlight-color: transparent; }
.public-space :is(button,input) { font: inherit; }
.public-space :is(button,a) { touch-action: manipulation; }
.public-space .site-nav-inner { gap: 20px; padding-inline: max(20px,env(safe-area-inset-left)); }
.public-space .site-brand { flex: 1; }
.public-space .site-menu { flex-shrink: 0; }
.public-space .site-menu-toggle { min-width: 44px; min-height: 44px; flex-shrink: 0; }
.public-space .status-tab { min-height: 44px; }
.public-space :is(.lot-meta,.available-date) { color: var(--space-muted); }
.public-space .space-photo-empty { text-align: center; padding: 12px; line-height: 1.5; }
.public-space .prestige-card-photo > .space-photo-empty { display: grid; place-items: center; width: 100%; height: 100%; font-size: .78rem; color: var(--space-muted); }
.public-space .space-skip-link { position: fixed; top: -100px; left: 20px; z-index: 1000; background: #fff; color: #142b40; padding: 12px 20px; border-radius: 8px; }
.public-space .space-skip-link:focus { top: 12px; }
.public-space #public-main:focus { outline: none; }
.public-space .space-search { max-width: 1252px; margin: 12px auto 24px; padding: 20px 24px; display: flex; align-items: flex-end; flex-wrap: wrap; gap: 16px 24px; border: 1px solid var(--space-line); border-radius: var(--space-radius); background: #ffffffed; width: calc(100% - 48px); }
.public-space .space-search-field { flex: 1 1 260px; min-width: 0; max-width: 560px; }
.public-space .space-search label { display: block; font-size: .72rem; font-weight: 600; color: var(--space-muted); margin-bottom: 8px; }
.public-space .space-search input { display: block; width: 100%; min-width: 0; min-height: 46px; padding: 11px 14px; border: 1px solid #c8d3db; border-radius: 9px; background: #fafcfd; color: #243540; font-size: 16px; }
.public-space .space-search input:focus-visible { outline: 2px solid var(--sidebar-bg); outline-offset: 2px; background: #fff; }
.public-space .space-result-count { font-size: .8rem; color: var(--space-muted); margin: 0; padding-block: 12px; font-variant-numeric: tabular-nums; }
.public-space .space-reset { background: transparent; color: var(--sidebar-bg); border: 1px solid var(--space-line); border-radius: 8px; padding: 10px 14px; min-height: 44px; font-size: .78rem; margin-left: auto; }
.public-space .space-reset:hover { background: #edf2f5; }
.theme-split .space-search { width: 100%; margin-top: 0; padding: 18px; }
.theme-list .space-search,.theme-thumbnail .space-search { max-width: 1062px; }
.theme-timeline .space-search { max-width: 852px; }
.theme-catalog .space-search { max-width: 1200px; }
.theme-boutique .space-search { max-width: 1072px; border-radius: 0; background: transparent; border-inline: 0; }
.theme-editorial .space-search { background: transparent; border-radius: 0; border-inline: 0; }
.prestige .space-search { max-width: 1240px; width: 100%; border-radius: 0; background: transparent; border-inline: 0; padding-inline: 0; }
.public-space :is(.space-subtitle,.space-welcome) { max-width: 65ch; }
.public-space :is(.portfolio-topbar,.compact-topbar,.directory-topbar,.masonry-topbar,.timeline-topbar,.boutique-topbar,.editorial-intro) :is(.space-subtitle,.space-welcome) { margin-inline: auto; }
.theme-compact .compact-topbar :is(.space-subtitle,.space-welcome) { margin-inline: 0; }
.public-space :is(.lot-card,.prestige-card,.showcase-card,.thumb-row,.lot-row,.boutique-item) { transition: box-shadow .2s ease,border-color .2s ease,transform .2s ease; }
.public-space :is(.lot-card,.prestige-card,.showcase-card,.thumb-row,.lot-row):focus-visible { outline-offset: 4px; }
.theme-gallery .lot-card,.theme-magazine .lot-card,.theme-split .lot-card,.theme-compact .lot-card,.theme-board .lot-card { display: flex; flex-direction: column; align-items: flex-start; }
.theme-gallery .lot-card > *,.theme-magazine .lot-card > *,.theme-split .lot-card > *,.theme-compact .lot-card > *,.theme-board .lot-card > * { order: 2; }
.theme-gallery .lot-card > :is(img,.space-photo-empty),.theme-magazine .lot-card > :is(img,.space-photo-empty),.theme-split .lot-card > :is(img,.space-photo-empty),.theme-compact .lot-card > :is(img,.space-photo-empty),.theme-board .lot-card > :is(img,.space-photo-empty) { order: 0; }
.theme-gallery .lot-card > h3,.theme-magazine .lot-card > h3,.theme-split .lot-card > h3,.theme-compact .lot-card > h3,.theme-board .lot-card > h3 { order: 1; }
.theme-gallery .lot-price,.theme-magazine .lot-price,.theme-split .lot-price,.theme-compact .lot-price { margin-top: auto; padding-top: 14px; }
.theme-gallery .lots-grid,.theme-magazine .lots-grid,.theme-compact .compact-grid,.theme-board .board-grid { align-items: stretch; }
.theme-split .split-sidebar { max-height: calc(100dvh - 110px); overflow-y: auto; }
.theme-portfolio .portfolio-card-content h3 { line-height: 1.2; }
.theme-portfolio .portfolio-card::after { background: linear-gradient(0deg,#071321e8,#07132166 55%,transparent); }
.theme-magazine .magazine-hero-content .badge-status { background: #fff; color: var(--sidebar-bg); }
.theme-showcase .showcase-img,.theme-thumbnail .thumb-img,.theme-masonry .thumb { background-color: #e4e9eb; }
.theme-board .board-stat { min-width: 0; }
.theme-board .board-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.prestige .prestige-hero { min-height: clamp(480px,82svh,820px); }
.prestige .prestige-card-content .available-date { min-height: 1.5em; }
@media (hover: none) {
    .public-space :is(.lot-card,.prestige-card):hover { transform: none; }
    .public-space .prestige-card:hover img { transform: none; }
}
@media (max-width: 1100px) and (min-width: 761px) {
    .theme-split .split-wrap { gap: 18px; padding: 18px; }
    .theme-split .split-sidebar { width: 220px; padding: 24px 18px; }
    .theme-split .split-sidebar h1 { font-size: 1.5rem; }
    .theme-showcase .showcase-body h3 { font-size: 1.45rem; }
}
@media (max-width: 760px) {
    .public-space .space-search { padding: 16px; width: calc(100% - 32px); gap: 6px 12px; }
    .public-space .space-search-field { flex-basis: 100%; max-width: none; }
    .public-space .space-result-count { font-size: .75rem; }
    .public-space .space-reset { font-size: .72rem; }
    .theme-split .space-search,.prestige .space-search { width: 100%; }
    .theme-split .split-sidebar { max-height: none; overflow: visible; }
    .theme-split .split-stat { padding-block: 8px; }
    .theme-board .board-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
    .theme-board .board-stat { padding: 18px; }
    .theme-board .board-stat .num { font-size: 1.9rem; }
    .theme-editorial .editorial-intro,.theme-boutique .boutique-topbar { padding-top: 45px; }
    .theme-portfolio .portfolio-topbar,.theme-directory .directory-topbar,.theme-masonry .masonry-topbar { padding-top: 40px; }
    .theme-catalog .catalog-wrap { border: 0; background: transparent; overflow: visible; width: calc(100% - 32px); margin-top: 16px; }
    .theme-catalog table.catalog { min-width: 0; display: block; }
    .theme-catalog table.catalog thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .theme-catalog table.catalog tbody { display: grid; gap: 16px; }
    .theme-catalog table.catalog tr { display: block; border: 1px solid var(--space-line); border-radius: 14px; overflow: hidden; background: #fff; }
    .theme-catalog table.catalog td { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 12px; padding: 12px 16px; background: transparent; }
    .theme-catalog table.catalog td::before { content: attr(data-label); font-size: .7rem; color: var(--space-muted); padding-top: 2px; }
    .theme-catalog table.catalog td:first-child { background: #edf2f5; }
    .theme-catalog table.catalog td:last-child { border: 0; }
    .theme-catalog table.catalog tr:nth-child(even) td { background: transparent; }
    .theme-catalog table.catalog tr:nth-child(even) td:first-child { background: #edf2f5; }
}
@media (max-width: 720px) {
    .public-space .site-menu { visibility: hidden; pointer-events: none; }
    .public-space .site-menu.open { visibility: visible; pointer-events: auto; box-shadow: 0 16px 28px #10283d18; border-bottom: 1px solid var(--space-line); max-height: min(360px,70dvh); overflow-y: auto; }
    .public-space .site-menu a { min-height: 44px; }
    .public-space .site-brand span { font-size: .96rem; }
}
@media (max-width: 520px) {
    .public-space:not(.prestige) .status-tabs { justify-content: flex-start; gap: 8px; }
    .public-space:not(.prestige) .status-tab { padding: 8px 12px; font-size: .72rem; }
    .theme-boutique .status-tabs { padding-inline: 0; }
    .theme-boutique .status-tab { letter-spacing: .04em; }
    .theme-list .list-topbar,.theme-thumbnail .thumb-topbar,.theme-showcase .showcase-topbar { padding-top: 30px; }
    .theme-compact .compact-grid,.theme-board .board-grid,.theme-directory .directory-grid { padding-inline: 16px; }
    .theme-timeline .timeline-wrap { padding-right: 16px; padding-left: 46px; }
    .theme-timeline .timeline-wrap::before { left: 24px; }
    .theme-timeline .timeline-dot { left: -29px; }
    .theme-timeline .timeline-item { padding: 20px; }
    .theme-showcase .showcase-body { padding: 24px; }
    .theme-showcase .showcase-img { height: 220px; }
    .prestige .prestige-hero h1 { font-size: clamp(2.2rem,10vw,3.4rem); }
    .prestige .prestige-tagline { letter-spacing: .08em; }
    .prestige .prestige-card-content { padding: 22px; }
    .prestige .prestige-contact .prestige-button { width: 100%; }
}

/* Lot photo galleries: the detail link remains available beside the preview. */
.space-gallery-card { position: relative; min-width: 0; break-inside: avoid; }
.space-gallery-card[hidden] { display: none !important; }
.theme-masonry .space-gallery-card:nth-child(3n+1) .thumb { height: 310px; }
.theme-masonry .space-gallery-card:nth-child(3n+2) .thumb { height: 260px; }
.theme-showcase .space-gallery-card:nth-child(even) .showcase-card { flex-direction: row-reverse; }
@media (max-width: 768px) { .theme-showcase .space-gallery-card:nth-child(even) .showcase-card { flex-direction: column; } }
/* Contact page: tonal surfaces, raised cards and comfortable touch targets. */
.contact-page .space-contact { width: 100%; max-width: 1160px; margin: 0 auto; padding: 32px 24px 64px; }
.contact-page .space-contact-hero { padding: clamp(32px,6vw,64px); border-radius: 28px; background: linear-gradient(125deg,var(--sidebar-bg),var(--sidebar-bg) 60%,var(--accent-blue)); color: #fff; position: relative; overflow: hidden; box-shadow: 0 20px 50px #18213022; }
.contact-page .space-contact-hero::before { content: ''; position: absolute; inset: -30% -10% auto auto; width: 420px; height: 420px; background: radial-gradient(circle,#ffffff20,transparent 70%); pointer-events: none; }
.contact-page .contact-hero-icon { display: grid; place-items: center; width: 56px; height: 56px; background: linear-gradient(150deg,#ffffff2c,#ffffff0c); border: 1px solid #ffffff35; border-radius: 18px; font-size: 1.5rem; margin-bottom: 24px; position: relative; box-shadow: 0 8px 20px #0000001a; }
.contact-page .contact-eyebrow { font-size: .75rem; letter-spacing: .13em; text-transform: uppercase; margin: 0 0 12px; opacity: .85; overflow-wrap: anywhere; position: relative; }
.contact-page .space-contact-hero h1 { max-width: 760px; font-size: clamp(2rem,4.4vw,3.4rem); letter-spacing: -.035em; line-height: 1.15; margin: 0 0 20px; color: #fff; position: relative; }
.contact-page .space-contact-hero > p:last-child { max-width: 620px; margin: 0; color: #ffffffdc; font-size: 1rem; line-height: 1.8; position: relative; }
.contact-page .contact-section-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 40px 0 20px; }
.contact-page .contact-section-heading h2 { font-size: 1.5rem; margin: 0; }
.contact-page .contact-section-heading > span { background: #e9edf1; background: color-mix(in srgb, var(--accent-blue) 12%, #fff); border-radius: 20px; padding: 6px 12px; font-size: .8rem; font-weight: 600; color: var(--sidebar-bg,#20384f); }
.contact-page .space-contact-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,320px),1fr)); gap: 24px; }
.contact-page .space-contact-card { min-width: 0; border: 1px solid #e4e9ef; border-radius: 24px; background: #fff; box-shadow: 0 1px 2px #18213009, 0 14px 32px #18213012; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; position: relative; }
.contact-page .space-contact-card::before { content: ''; display: block; height: 4px; background: linear-gradient(90deg,var(--accent-blue),var(--sidebar-bg)); }
.contact-page .space-contact-card:hover { transform: translateY(-5px); box-shadow: 0 1px 2px #18213009, 0 24px 44px #18213022; border-color: #182d3026; }
.contact-page .contact-card-heading { display: flex; align-items: center; gap: 16px; padding: 24px; border-bottom: 1px solid #edf0f4; }
.contact-page .contact-card-heading > div { min-width: 0; }
.contact-page .contact-residence-icon { display: grid; place-items: center; flex-shrink: 0; width: 48px; height: 48px; border-radius: 16px; color: var(--accent-blue); background: #edf1f6; background: color-mix(in srgb, var(--accent-blue) 14%, #fff); font-size: 1.15rem; }
.contact-page .contact-card-heading p { color: #64748b; margin: 0 0 4px; font-size: .75rem; }
.contact-page .contact-card-heading h3 { font-size: 1.2rem; line-height: 1.4; margin: 0; overflow-wrap: anywhere; }
.contact-page .space-contact-card dl { margin: 0; padding: 8px 24px 20px; }
.contact-page .contact-method { padding: 16px 0 0; }
.contact-page .contact-method dt { display: flex; align-items: center; gap: 8px; color: #64748b; font-size: .78rem; font-weight: 500; }
.contact-page .contact-method dt i { display: grid; place-items: center; width: 22px; height: 22px; flex-shrink: 0; border-radius: 7px; background: #eef2f6; color: var(--sidebar-bg,#20384f); font-size: .72rem; }
.contact-page .contact-method dd { margin: 4px 0 0; overflow-wrap: anywhere; }
.contact-page .contact-method a { display: flex; align-items: center; min-height: 48px; border-radius: 12px; padding: 10px 12px; background: #f4f6f9; border: 1px solid transparent; color: var(--sidebar-bg,#20384f); font-size: .95rem; font-weight: 600; text-decoration: none; transition: background .15s,box-shadow .15s,border-color .15s,transform .15s; overflow-wrap: anywhere; word-break: break-word; }
.contact-page .contact-method a:hover { background: #fff; border-color: var(--accent-blue); border-color: color-mix(in srgb, var(--accent-blue) 30%, transparent); box-shadow: 0 6px 16px #18213014; transform: translateY(-1px); }
.contact-page .contact-method a:active { background: #dde5ee; transform: translateY(0); }
.contact-page .contact-unavailable { display: block; padding: 10px 12px; color: #697586; font-size: .9rem; }
.contact-page .contact-return { text-align: center; padding-top: 40px; }
.contact-page .contact-return p { color: #64748b; }
.contact-page .space-contact-back { display: inline-flex; gap: 12px; align-items: center; justify-content: center; min-height: 48px; padding: 12px 24px; border-radius: 28px; color: #fff; background: var(--sidebar-bg,#20384f); text-decoration: none; font-weight: 600; box-shadow: 0 4px 10px #20384f20; transition: transform .2s ease, box-shadow .2s ease; }
.contact-page .space-contact-back:hover { transform: translateY(-2px); box-shadow: 0 10px 22px #20384f2e; }
.contact-page .contact-empty { grid-column: 1/-1; text-align: center; padding: 48px 24px; background: #fff; border: 1px dashed #c9d2df; border-radius: 24px; }
.contact-page .contact-empty > i { font-size: 2rem; color: #64748b; margin-bottom: 16px; }
.contact-page .site-menu-toggle { min-width: 48px; min-height: 48px; flex-shrink: 0; }
@media (max-width: 600px) { .contact-page .space-contact { padding: 20px 16px 40px; } .contact-page .space-contact-hero { padding: 28px 24px; border-radius: 24px; } .contact-page .space-contact-grid { gap: 16px; } .contact-page .contact-card-heading { padding: 20px; } .contact-page .space-contact-card dl { padding: 8px 20px 20px; } .contact-page .space-contact-back { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .contact-page .contact-method a, .contact-page .space-contact-card, .contact-page .space-contact-back { transition: none; } }
@media (hover: none) { .contact-page .space-contact-card:hover { transform: none; } }
@media (max-width: 720px) { .contact-page .site-menu { background: #fff; box-shadow: 0 12px 18px #20384f12; } .contact-page .site-menu a { min-height: 48px; } }

.space-gallery-card > .space-card-carousel { position: absolute; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 4px; padding: 0 8px; pointer-events: none; box-sizing: border-box; }
.space-card-carousel button { pointer-events: auto; flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 1px solid #ffffff80; border-radius: 50%; background: #172c40df; color: #fff; font: 28px/1 sans-serif; cursor: pointer; box-shadow: 0 2px 8px #0003; }
.space-card-carousel button:hover { background: #172c40; }
.space-card-carousel span { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); background: #172c40df; color: #fff; border-radius: 20px; padding: 4px 9px; font-size: 12px; white-space: nowrap; }

.public-space .lot-rental-type { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; margin: 6px 0 12px; padding: 5px 10px; border: 1px solid #dce4ec; border-radius: 8px; background: #edf2f7; color: #243b53; font-size: .76rem; font-weight: 600; line-height: 1.5; letter-spacing: normal; text-transform: none; text-align: left; }
.public-space .lot-rental-type span { overflow-wrap: anywhere; }
.public-space .lot-rental-type i { flex-shrink: 0; font-size: .7rem; }
.prestige .lot-rental-type { border-radius: 0; background: #f8f7f3; }

/* Nos résidences : même hero dégradé que la page contact, grille de cartes résidence. */
.projects-page .projects-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 32px 24px 64px; }
.projects-hero { padding: clamp(32px,6vw,64px); border-radius: 28px; background: linear-gradient(125deg,var(--sidebar-bg),var(--sidebar-bg) 60%,var(--accent-blue)); color: #fff; position: relative; overflow: hidden; box-shadow: 0 20px 50px #18213022; margin-bottom: 40px; }
.projects-hero::before { content: ''; position: absolute; inset: -30% -10% auto auto; width: 420px; height: 420px; background: radial-gradient(circle,#ffffff20,transparent 70%); pointer-events: none; }
.projects-hero .contact-eyebrow { font-size: .75rem; letter-spacing: .13em; text-transform: uppercase; margin: 0 0 12px; opacity: .85; position: relative; }
.projects-hero h1 { max-width: 760px; font-size: clamp(2rem,4.4vw,3.4rem); letter-spacing: -.035em; line-height: 1.15; margin: 0 0 12px; color: #fff; position: relative; }
.projects-hero > p:last-child { max-width: 620px; margin: 0; color: #ffffffdc; font-size: 1rem; line-height: 1.8; position: relative; }

.projects-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.project-card { background: white; border-radius: 18px; border: 1px solid #182d3014; overflow: hidden; box-shadow: 0 1px 2px #18213009, 0 12px 28px #18213014; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.project-card:hover { transform: translateY(-5px); box-shadow: 0 1px 2px #18213009, 0 22px 40px #1821301f; border-color: #182d3026; }
.project-card-photo { display: block; width: 100%; height: 200px; object-fit: cover; }
.project-card-body { padding: 22px; }
.project-card-body h2 { font-size: 1.2rem; font-weight: 800; margin: 8px 0 6px; letter-spacing: -.01em; }
.project-card-address { display: flex; align-items: center; gap: 6px; color: #717171; font-size: .85rem; margin-bottom: 10px; }
.project-card-desc { color: #4b5a66; font-size: .88rem; line-height: 1.6; margin: 0 0 16px; overflow-wrap: anywhere; }
.project-card-link { display: inline-flex; align-items: center; gap: 8px; color: var(--accent-blue); text-decoration: none; font-weight: 700; font-size: .88rem; }
.project-card-link:hover { text-decoration: underline; }
@media (hover: none) { .project-card:hover { transform: none; } }
@media (prefers-reduced-motion: reduce) { .project-card { transition: none; } }
@media (max-width: 600px) { .projects-page .projects-wrap { padding: 20px 16px 40px; } .projects-hero { padding: 28px 24px; border-radius: 24px; } }
