/* Project sales share the existing site's typography and ruby accent. */
.sale-page { padding:28px 20px 64px; color:#1C1E22; }
.sale-page * { box-sizing:border-box; }
.sale-page a { color:inherit; }
.sale-page button { font:inherit; }
.sale-back { display:inline-block; font-size:13px; color:#5A6067!important; text-decoration:none; padding:8px 0; }
.sale-tabs { display:flex; gap:6px; margin:22px 0 0; padding:4px; width:fit-content; max-width:100%; background:#E6E8EB; border-radius:12px; }
.sale-tabs a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px 17px; text-decoration:none; font-size:14px; font-weight:600; color:#4C5258; border-radius:9px; }
.sale-tabs a[aria-current="page"] { background:#fff; color:#9B111E; }
.sale-page a:focus-visible,.sale-page button:focus-visible,.sale-tabs a:focus-visible,.sale-page summary:focus-visible { outline:3px solid #9B111E; outline-offset:4px; }
.sale-page h1 { font-size:clamp(32px,4vw,48px); line-height:1.08; letter-spacing:-.035em; margin:18px 0 14px; font-weight:600; text-wrap:balance; }
.sale-page h2 { font-size:clamp(25px,3vw,34px); line-height:1.15; letter-spacing:-.025em; font-weight:600; margin:0 0 14px; }
.sale-page h3 { font-size:19px; line-height:1.3; font-weight:600; margin:0 0 9px; }
.sale-page p { font-size:15px; line-height:1.65; color:#52585F; margin:0 0 16px; max-width:65ch; }
.sale-intro { margin:20px 0 28px!important; }
.sale-feature { display:grid; background:#fff; border-radius:16px; overflow:hidden; margin:28px 0 0; }
.sale-feature-image { display:block; position:relative; overflow:hidden; background:#DFE1E3; }
.sale-feature-image img { display:block; width:100%; height:100%; min-height:240px; object-fit:cover; }
.sale-image-label { position:absolute; bottom:14px; left:14px; background:rgba(255,255,255,.95); color:#343A40; font-size:12px; padding:6px 10px; border-radius:6px; }
.sale-feature-body { padding:26px; display:flex; flex-direction:column; align-items:flex-start; }
.sale-feature-body h2 { font-size:30px; margin:8px 0 14px; }
.sale-feature-body .sale-price-row { margin-top:20px; }
.sale-link-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:48px; padding:13px 20px; border-radius:10px; background:#9B111E; color:#fff!important; font-weight:600; font-size:14px; text-decoration:none; }
.sale-feature-body .sale-link-button { margin-top:20px; }
.sale-small { font-size:13px!important; line-height:1.5!important; color:#5A6067; }
.sale-price { font-size:32px; font-weight:600; letter-spacing:-.03em; white-space:nowrap; }
.sale-hero { display:grid; gap:28px; margin-top:20px; }
.sale-main-image { display:block; width:100%; padding:0; border:0; background:transparent; cursor:zoom-in; border-radius:12px; overflow:hidden; }
.sale-main-image img { display:block; width:100%; height:auto; }
.sale-thumbs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:10px; }
.sale-thumbs button { border:0; padding:0; background:#E6E8EB; border-radius:8px; overflow:hidden; cursor:zoom-in; }
.sale-thumbs img { height:auto; width:100%; aspect-ratio:1.48; object-fit:cover; display:block; }
.sale-subtitle { font-size:15px; color:#555D65; margin:4px 0 12px; }
.sale-hero h1 { font-size:clamp(30px,4vw,44px); margin:8px 0 22px; }
.sale-facts { display:grid; grid-template-columns:1fr 1fr; margin:0 0 24px; gap:18px 14px; }
.sale-facts div { border-top:1px solid #D9DDE1; padding-top:12px; }
.sale-facts dt { font-size:12px; color:#535A62; margin-bottom:5px; }
.sale-facts dd { margin:0; font-size:19px; font-weight:600; }
.sale-buy { background:#fff; border-radius:12px; padding:22px; }
.sale-buy-label { font-size:13px; color:#555D65; margin-bottom:7px; }
.sale-buy p { margin:8px 0 16px; }
.sale-buy button { border:0; width:100%; border-radius:10px; min-height:50px; background:#E7E9EC; color:#59616A; font-weight:600; cursor:not-allowed; }
.sale-buy .sale-small { margin:12px 0 0; }
.sale-section { padding-top:48px; scroll-margin-top:90px; }
.sale-plan { display:grid; gap:25px; margin-top:24px; align-items:start; }
.sale-plan-image { background:#fff; padding:8px; border:1px solid #E1E3E5; border-radius:12px; width:100%; cursor:zoom-in; }
.sale-plan-image img { display:block; width:100%; height:auto; }
.sale-floor-plans { display:grid; gap:24px; min-width:0; }
.sale-floor-plans figure { margin:0; }
.sale-floor-plans figcaption { margin:0 0 10px; font-weight:600; }
.sale-room-list { list-style:none; padding:0; margin:0; }
.sale-room-list li { display:flex; justify-content:space-between; gap:16px; padding:11px 0; font-size:14px; border-bottom:1px solid #DDE0E3; }
.sale-room-list strong { font-weight:600; white-space:nowrap; }
.sale-room-total { display:flex; justify-content:space-between; margin:18px 0 12px; font-weight:600; }
.sale-gallery { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }
.sale-gallery button { background:#DFE1E3; border:0; padding:0; border-radius:10px; overflow:hidden; cursor:zoom-in; }
.sale-gallery img { display:block; width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; }
.sale-video-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:16px; }
.sale-video-grid figure { margin:0; min-width:0; }
.sale-video-grid video { display:block; width:100%; aspect-ratio:9/16; background:#202328; border-radius:10px; }
.sale-video-grid figcaption { font-size:13px; color:#4C545D; margin-top:10px; line-height:1.4; }
.sale-details { border-bottom:1px solid #D8DCE0; padding:18px 0; }
.sale-details summary { cursor:pointer; font-size:16px; font-weight:600; line-height:1.45; }
.sale-details p { margin:14px 0 0; }
.sale-doc-row { display:grid; grid-template-columns:1fr auto; gap:8px 20px; padding:22px 0; border-bottom:1px solid #D8DCE0; }
.sale-doc-row h3 { margin:0; }
.sale-doc-row p { margin:0; grid-column:1 / -1; font-size:14px; }
.sale-doc-count { white-space:nowrap; font-size:13px; color:#555D65; padding-top:3px; }
.sale-downloads { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:22px; }
.sale-downloads a { font-size:14px; font-weight:600; text-underline-offset:4px; color:#8F1020; }
.sale-support { margin-top:48px; padding:0; }
.sale-support a { color:#8F1020; text-underline-offset:4px; }
@media(min-width:768px) { .sale-page { padding:32px 24px 70px; } }
@media(min-width:1024px) { .sale-page { padding:36px 48px 80px; } .sale-feature { grid-template-columns:1.3fr 1fr; } .sale-feature-body { padding:36px; } .sale-hero { grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr); gap:36px; } .sale-plan { grid-template-columns:1.4fr 1fr; gap:38px; } .sale-section { padding-top:64px; } .sale-gallery,.sale-video-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:380px) { .sale-tabs a { padding:10px 12px; font-size:13px; } .sale-doc-row { grid-template-columns:1fr; } .sale-doc-count { padding:0; } }

.sale-page .sale-media-heading { margin:32px 0 0; }
.sale-page .sale-gallery + .sale-media-heading { margin-top:40px; }

.sale-contact { display:grid; gap:28px; padding:clamp(24px,4vw,40px); border-radius:20px; background:radial-gradient(ellipse at top right,rgba(155,17,30,.22),transparent 70%),linear-gradient(158deg,#1B1D21,#241B24); color:#fff; }
.sale-contact h2 { font-size:clamp(24px,3vw,30px); }
.sale-contact p { color:#D3CFD2; }
.sale-contact .sale-contact-phone { display:inline-block; color:#fff; font-size:22px; font-weight:600; text-decoration:none; }
.sale-contact-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; align-content:start; }
.sale-contact .sale-messenger { display:flex; align-items:center; justify-content:center; gap:8px; min-height:52px; border-radius:13px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.09); color:#fff; font-size:14px; font-weight:600; text-decoration:none; }
.sale-messenger svg { width:22px; height:22px; flex-shrink:0; }
.sale-contact .sale-messenger:hover { background:rgba(255,255,255,.17); }
.sale-contact .sale-messenger:focus-visible,.sale-contact-phone:focus-visible { outline-color:#fff; }
.sale-contact .sale-contact-note { grid-column:1/-1; font-size:12px; line-height:1.6; margin:0; }
.sale-contact-note:empty { display:none; }
.sale-support > .sale-back { margin-top:18px; }



@media(min-width:1024px) { .sale-contact { grid-template-columns:1.1fr 1fr; } }
.sale-hero h1,.sale-feature-body h2 { overflow-wrap:anywhere; }
.sale-hero h1 { font-size:clamp(27px,3vw,38px); }
.sale-facts dd { font-size:18px; }
.sale-room-note { display:block; margin-top:6px; font-size:12px; line-height:1.5; color:#5A6067; font-weight:400; }
.sale-room-note:empty { display:none; }

.sale-price-row { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 16px; }
.sale-buy .sale-price-row { margin-bottom:18px; }

.catalog-title-row { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:18px; }
.catalog-title-row h1 { margin:0; font-size:clamp(30px,4vw,48px); font-weight:600; line-height:1.1; letter-spacing:-.035em; color:#1C1E22; }
.catalog-title-row .sale-tabs { margin:0; flex-shrink:0; }
.catalog-title-row .sale-tabs a { box-sizing:border-box; }
@media(max-width:600px) {
  .catalog-title-row { gap:10px; }
  .catalog-title-row h1 { font-size:clamp(24px,6.6vw,30px); flex-shrink:0; }
  .catalog-title-row .sale-tabs { flex:0 1 224px; min-width:0; gap:2px; padding:3px; }
  .catalog-title-row .sale-tabs a { flex:1; min-width:0; padding:7px 8px; min-height:44px; font-size:12px; line-height:1.25; text-align:center; }
}
@media(min-width:1024px) {
  .sale-hero-gallery { display:flex; flex-direction:column; min-width:0; }
  .sale-hero-gallery .sale-main-image { position:relative; flex:1; min-height:0; aspect-ratio:1280/838; }
  .sale-hero-gallery .sale-main-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .sale-hero-gallery .sale-thumbs { flex-shrink:0; }
  .sale-hero-info { display:flex; flex-direction:column; }
  .sale-hero-info .sale-buy { margin-top:auto; }
}


/* Reusable compact cards for a growing project catalogue. */
.sale-catalog-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; margin-top:28px; }
.sale-catalog-grid .sale-feature { display:flex; flex-direction:column; min-width:0; margin:0; }
.sale-catalog-grid .sale-feature-image img { height:auto; min-height:0; aspect-ratio:16/10; object-fit:cover; }
.sale-catalog-grid .sale-feature-body { padding:22px; flex:1; }
.sale-catalog-grid .sale-feature-body h2 { font-size:26px; margin:6px 0 12px; }
.sale-catalog-grid .sale-feature-body p { font-size:14px; line-height:1.55; }
.sale-catalog-grid .sale-price-row { margin-top:auto; padding-top:4px; }
.sale-catalog-grid .sale-price { font-size:28px; }
.sale-catalog-grid .sale-link-button { margin-top:16px; }
#payment-delivery a { color:#9b111e; }
@media(min-width:768px) { .sale-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.sale-buy button.shop-buy-enabled{background:#9b111e;color:#fff;cursor:pointer}

/* One persistent segmented control across both catalog routes. */
.sale-tabs { position:relative; isolation:isolate; display:grid; grid-template-columns:1fr 1fr; gap:0; padding:5px; background:#e9e8e8; border:1px solid #dedbdd; border-radius:16px; box-shadow:inset 0 1px 2px #23151a05; }
.sale-tabs::before { content:""; position:absolute; z-index:-1; left:5px; top:5px; bottom:5px; width:calc((100% - 10px)/2); border-radius:11px; background:#fff; box-shadow:0 2px 6px #37141b12,0 0 0 1px #9b111e0a; transform:translateX(0); transition:transform 240ms cubic-bezier(.22,1,.36,1); }
.sale-tabs:has(a:nth-child(2)[aria-current="page"])::before { transform:translateX(100%); }
.sale-tabs a { gap:9px; padding:12px 18px; min-height:46px; border-radius:11px; transition:color 160ms ease,transform 120ms ease; }
.sale-tabs a[aria-current="page"] { background:transparent; color:#9b111e; }
.sale-tabs a:active { transform:scale(.97); }
.sale-tabs svg { width:20px; height:20px; flex-shrink:0; }
.sale-tabs:has(a:focus-visible)::before { transition:none; }
@media(hover:hover) { .sale-tabs a:not([aria-current="page"]):hover { color:#9b111e; } }
@media(max-width:600px) {
  .catalog-title-row .sale-tabs { flex:0 1 240px; padding:4px; gap:0; border-radius:13px; }
  .catalog-title-row .sale-tabs a { flex-direction:column; gap:4px; padding:6px 5px; font-size:11px; min-height:55px; }
  .sale-tabs::before { left:4px; top:4px; bottom:4px; width:calc((100% - 8px)/2); border-radius:9px; }
  .sale-tabs svg { width:18px; height:18px; }
}
@media(prefers-reduced-motion:reduce) { .sale-tabs::before,.sale-tabs a { transition:none; } .sale-tabs a:active { transform:none; } }

.works-heading-row { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-top:24px; }
.works-heading-row h1 { font-size:clamp(32px,5vw,56px); line-height:1.02; margin:0; letter-spacing:-.7px; flex-shrink:0; }
.works-vpn-desktop { display:flex; align-items:flex-start; gap:10px; max-width:440px; color:#737980; font-size:11.5px; line-height:1.5; }
.works-vpn-desktop svg { flex-shrink:0; margin-top:1px; color:#9b111e; }
.works-vpn-trigger { display:none; }
.works-vpn-popover { box-sizing:border-box; width:calc(100% - 40px); max-width:360px; padding:20px; border:1px solid #e1dde0; border-radius:18px; color:#1c1e22; background:#fff; box-shadow:0 16px 60px #23151a26; }
.works-vpn-popover::backdrop { background:#1c1e2226; }
.works-vpn-title { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:15px; }
.works-vpn-title button { display:flex; align-items:center; justify-content:center; flex:0 0 36px; height:36px; padding:0; border:0; border-radius:50%; color:#737980; background:#f1f2f4; cursor:pointer; }
.works-vpn-popover p { margin:12px 0 0; font-size:14px; line-height:1.6; color:#60666c; }
.works-tabs-switch { position:relative; isolation:isolate; display:grid; grid-template-columns:1fr 1fr; width:calc(100% - 40px); max-width:440px; box-sizing:border-box; margin:18px auto 0; padding:5px; border:1px solid #dedbdd; border-radius:16px; background:#e9e8e8; }
.works-tabs-switch::before { content:""; position:absolute; z-index:-1; left:5px; top:5px; bottom:5px; width:calc((100% - 10px)/2); border-radius:11px; background:#fff; box-shadow:0 2px 6px #37141b12,0 0 0 1px #9b111e0a; transform:translateX(0); transition:transform 240ms cubic-bezier(.22,1,.36,1); }
.works-tabs-switch:has(button:nth-child(2)[aria-pressed="true"])::before { transform:translateX(100%); }
.works-tabs-switch .works-tab { display:flex; align-items:center; justify-content:center; gap:9px; min-height:44px; padding:10px; border:0; border-radius:11px; background:transparent; line-height:1.3; font-family:inherit; font-size:12px; font-weight:600; color:#62686e; transition:color 160ms ease,transform 120ms ease; }
.works-tab svg { width:20px; height:20px; flex-shrink:0; }
.works-tabs-switch .works-tab[aria-pressed="true"] { color:#9b111e; }
.works-tabs-switch:has(button:focus-visible)::before { transition:none; }
.works-tab:focus-visible,.works-vpn-trigger:focus-visible,.works-vpn-title button:focus-visible { outline:3px solid #9b111e; outline-offset:3px; }
@media(hover:hover) { .works-tabs-switch .works-tab:hover { color:#9b111e; } }
@media(min-width:768px) { .works-filters { justify-content:center; } }
@media(max-width:767px) {
 .works-heading-row { gap:14px; }
 .works-vpn-desktop { display:none; }
 .works-vpn-trigger { display:flex; align-items:center; justify-content:center; flex:0 0 40px; height:40px; padding:0; border:1px solid #dedbdd; border-radius:50%; background:#fff; color:#9b111e; cursor:pointer; }
 .works-tabs-switch .works-tab { gap:7px; padding:10px 6px; }
 .works-tab svg { width:18px; height:18px; }
}
@media(prefers-reduced-motion:reduce) { .works-tabs-switch::before,.works-tabs-switch .works-tab { transition:none; } .works-tabs-switch .works-tab:active { transform:none; } }

/* Keep the network hint compact and adjacent to its trigger. */
.works-vpn-desktop { box-sizing:border-box; align-items:center; max-width:440px; padding:9px 12px; border:1px solid #e0e2e5; border-radius:12px; background:#f1f2f4; font-size:11px; line-height:1.35; }
.works-vpn-popover { position:fixed; inset:auto; margin:0; max-width:none; padding:15px; border-radius:14px; box-shadow:0 8px 28px #23151a1c; }
.works-vpn-popover::backdrop { background:transparent; }
.works-vpn-title { font-size:13px; gap:6px; }
.works-vpn-title button { flex-basis:28px; height:28px; }
.works-vpn-popover p { margin-top:7px; font-size:12px; line-height:1.5; }

.sale-catalog-grid .sale-feature, .sale-catalog-grid .sale-feature:hover { color:#1C1E22; text-decoration:none; border-radius:18px; }
.sale-card-footer { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; width:100%; margin-top:auto; padding-top:4px; }
.sale-catalog-grid .sale-card-footer .sale-price-row { margin-top:0; padding-top:0; }
.sale-card-arrow { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:17px; flex:0 0 auto; }
.sale-feature:focus-visible .catalog-card-arrow { background:#9b111e; color:#fff; border-color:#9b111e; }
