/* Shared visual language for the public project, apartment and selection pages. */
@font-face { font-family: Inter; src: url('../fonts/inter/cyrillic.woff2') format('woff2'); font-weight: 100 900; font-display: swap; unicode-range: U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: Inter; src: url('../fonts/inter/latin.woff2') format('woff2'); font-weight: 100 900; font-display: swap; unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
html { scroll-padding-top: 104px; }
body.public-landing { font-family: Inter, Arial, sans-serif; background: #FAFAF8; color: #1B1F23; line-height: 1.6; --viz-gold: #B89A67; --viz-gold-light: #dbc094; --viz-ink: #1B1F23; }
.public-landing ::selection { background: #B89A67; color: #1B1F23; }
.public-landing :focus-visible { outline: 2px solid #846638; outline-offset: 4px; }
.public-landing input,.public-landing select { accent-color: #846638; caret-color: #846638; }
.public-landing input::placeholder { color: #62615e; opacity: 1; }
.public-landing h1,.public-landing h2,.public-landing h3 { font-weight: 500; letter-spacing: -.03em; text-wrap: balance; line-height: 1.15; }
.public-landing h1 { font-size: clamp(32px,3.8vw,58px); overflow-wrap: anywhere; }
.public-landing h2 { font-size: clamp(26px,2.4vw,36px); }
.public-landing .gold-text { background: none; color: #846638; -webkit-text-fill-color: currentColor; }
.public-landing .gold-bg { background: #B89A67; color: #1B1F23; }
.public-landing .soft-grid,.public-landing .visualization-grid { background-image: none; }
.public-landing .public-intro { border-bottom: 1px solid #e4e4df; }
.public-landing .public-intro .gold-text { color: #1B1F23; }
.public-landing [class~="text-[#B89A67]"] { color: #846638; }
.public-landing [class~="text-white"] [class~="text-[#B89A67]"],.public-landing [class~="bg-[#1B1F23]"] [class~="text-[#B89A67]"] { color: #dbc094; }
.public-landing [class~="bg-[#FAFAF8]"]:not(body):not(section) { background-color: #f1f2f2; }
.public-landing button[class*="px-"],.public-landing a[class*="px-"] { border-radius: 999px; }
.public-landing input,.public-landing select { min-height: 44px; border-radius: 12px; }
.public-landing .apartment-card:hover { transform: translateY(-2px); box-shadow: none; }
.public-landing .project-gallery-swiper { --swiper-theme-color: #B89A67; }
.public-landing .project-gallery-swiper .swiper-button-next,.public-landing .project-gallery-swiper .swiper-button-prev { background: #1B1F23; border: 0; color: white; backdrop-filter: none; }
.public-landing .visualization-view-button { font-weight: 500; min-height: 44px; }
.public-landing .visualization-view-button.is-active { background: #1B1F23; color: white; box-shadow: none; transform: none; }
.public-landing .visualization-view-switch { background: #f1f2f2; border-color: #e4e4df; }
.public-landing .chessboard-scroll { scrollbar-color: #B89A67 #f1f2f2; }
.public-header { position: fixed; inset: 0 0 auto; z-index: 50; background: #1B1F23; color: white; }
.public-header-row { max-width: 1600px; height: 84px; padding-inline: clamp(20px,5vw,80px); margin-inline: auto; display: flex; align-items: center; gap: 28px; }
.public-brand { flex-shrink: 0; }
.public-brand picture { display: block; }
.public-brand img { width: 64px; height: auto; display: block; }
.public-desktop-nav { display: flex; align-items: center; gap: 28px; margin-left: auto; font-size: 15px; }
.public-header a { text-decoration: none; }
.public-desktop-nav a { padding-block: 12px; }
.public-desktop-nav a:hover,.public-desktop-nav [aria-current] { color: #dbc094; }
.public-sales { background: #B89A67; color: #1B1F23; padding: 12px 22px; border-radius: 999px; font-weight: 500; white-space: nowrap; }
.public-sales:hover { background: #dbc094; }
.public-header :focus-visible { outline-color: #dbc094; }
.public-menu { display: none; }
.public-footer { background: #1B1F23; color: white; padding: 36px clamp(20px,5vw,80px); display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.public-footer nav { display: flex; gap: 24px; flex-wrap: wrap; }
.public-footer a:hover { color: #dbc094; }
.public-project-intro { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: center; margin-bottom: 40px; }
.public-project-intro:not(:has(> img)) { grid-template-columns: 1fr; }
.public-project-intro h1 { margin: 24px 0; }
.public-project-intro p { color: #62615e; max-width: 42ch; }
.public-project-intro > img { width: 100%; aspect-ratio: 4/3; object-fit: contain; background: #f1f2f2; border-radius: 16px; }
.public-back-link { font-size: 14px; color: #62615e; }
.public-project-action { display: inline-flex; gap: 32px; margin-top: 28px; padding: 14px 24px; border-radius: 999px; background: #1B1F23; color: white; }
.public-project-action:hover { background: #353b40; }
.public-intro .grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.public-intro .grid > div { min-width: 0; }
@media(max-width:1100px) {
 .public-desktop-nav { display: none; }
 .public-sales { margin-left: auto; }
 .public-menu { display: block; }
 .public-menu summary { cursor: pointer; list-style: none; padding: 12px 16px; border: 1px solid #62615e; border-radius: 999px; }
 .public-menu summary::-webkit-details-marker { display: none; }
 .public-menu nav { position: absolute; inset: 84px 0 auto; display: grid; padding: 16px 24px 24px; background: #1B1F23; max-height: calc(100svh - 84px); overflow-y: auto; border-top: 1px solid #62615e; }
 .public-menu nav a { padding: 12px 0; }
}
@media(max-width:640px) {
 .public-project-intro { grid-template-columns: 1fr; gap: 24px; }
 .public-intro .grid { gap: 8px; }
 .public-intro .grid > div { padding: 14px 10px; }
 .public-header-row { gap: 12px; padding-inline: 20px; }
 .public-sales { display: none; }
 .public-menu { margin-left: auto; }
 .public-landing .public-intro h1 br { display: none; }
 .public-landing .public-intro h1 span::before { content: ' '; }
 .public-footer { font-size: 14px; }
}
@media(prefers-reduced-motion:reduce) {
 .public-landing *, .public-landing *::before, .public-landing *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
 .public-landing .apartment-card:hover { transform: none; }
}

/* Responsive floor selection, without changing the approved appearance. */
.project-selection-page .selection-container { width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: clamp(16px,3vw,48px); }
.project-selection-page .selection-actions { display: flex; flex-flow: row wrap; gap: 12px; }
.project-selection-page .selection-actions > * { flex: 0 1 auto; max-width: 100%; min-width: 0; min-height: 48px; padding: 12px 20px; text-align: center; white-space: normal; }
.project-selection-page .selection-floors { display: grid; grid-template-columns: repeat(auto-fit,minmax(112px,1fr)); gap: 12px; }
.project-selection-page .selection-floors > a { min-width: 0; padding-inline: 12px; min-height: 48px; }
.project-selection-page #floors { padding: clamp(20px,3vw,32px); }
.project-selection-page h1,.project-selection-page h2 { overflow-wrap: anywhere; }
@media(max-width:767px) { .project-selection-page .selection-actions > * { flex: 1 1 160px; } }
@media(max-width:480px) {
 .project-selection-page .selection-actions > * { flex-basis: 140px; padding-inline: 12px; font-size: 14px; }
 .project-selection-page .selection-floors { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
