@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500&family=Outfit:wght@300;400;500&display=swap');

:root { --paper:#d8cfbf; --ink:#20201e; --muted:#67645e; --line:rgba(32,32,30,.16); --glass:rgba(225,218,205,.72); }
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; background:var(--paper); color:var(--ink); font-family:Inter,sans-serif; }
body { overflow-x:hidden; background:linear-gradient(180deg,#ddd5c7 0%,#d2c8b7 100%); }
body,body * { text-align:justify; }
a { color:inherit; }
.skip-link { position:fixed; z-index:1000; top:.75rem; left:.75rem; padding:.75rem 1rem; color:#f8f3e9; background:#282621; text-decoration:none; transform:translateY(calc(-100% - 1rem)); transition:transform .2s ease; }
.skip-link:focus { transform:none; }
:focus-visible { outline:2px solid #765f48; outline-offset:3px; }
.sale-nav { position:fixed; z-index:20; top:clamp(.75rem,1.8vw,1.25rem); left:50%; width:min(calc(100% - clamp(1.5rem,4vw,4rem)),1360px); min-height:0; padding:.78rem clamp(1rem,2.4vw,2rem); display:flex; align-items:center; justify-content:space-between; color:#f8f3e9; border:1px solid rgba(255,255,255,.24); background:rgba(28,27,24,.28); backdrop-filter:blur(18px); transform:translateX(-50%); transition:.5s ease; }
.sale-nav.scrolled { color:var(--ink); background:var(--glass); border-color:var(--line); }
.sale-brand { font:500 1rem Outfit,sans-serif; letter-spacing:.15em; text-decoration:none; }
.sale-nav nav { display:flex; gap:2rem; }
.sale-nav nav a { font-size:.67rem; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; }
.sale-menu { display:none; border:0; background:none; width:2.25rem; height:2.25rem; }
.sale-menu span { display:block; width:1.2rem; height:1px; margin:.3rem auto; background:currentColor; }
.sale-hero { position:relative; width:100%; height:100svh; min-height:620px; overflow:hidden; color:#f7f2e9; }
.sale-hero>img { width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1.015); animation:hero-settle 1.8s cubic-bezier(.16,1,.3,1) forwards; }
.sale-hero-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,12,11,.35),transparent 38%,rgba(12,12,11,.62)); }
.sale-hero-top { position:absolute; top:7.6rem; left:clamp(1.5rem,5vw,6rem); right:clamp(1.5rem,5vw,6rem); display:flex; justify-content:space-between; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; }
.sale-hero-location { display:flex; flex-direction:column; align-items:center; gap:.42rem; }
.sale-hero-location strong { color:#fff; font:500 clamp(.86rem,1.35vw,1.12rem)/1.15 Outfit,sans-serif; letter-spacing:.16em; }
.sale-hero-location small { color:rgba(255,255,255,.82); font-size:.62rem; letter-spacing:.18em; }
.sale-hero-copy { position:absolute; left:clamp(1.5rem,5vw,6rem); bottom:clamp(3rem,8vh,6rem); }
.sale-hero-copy p,.sale-price span { margin-bottom:.7rem; font-size:.67rem; letter-spacing:.2em; text-transform:uppercase; }
.sale-hero-copy h1 { font:300 clamp(5rem,13vw,12rem)/.82 Outfit,sans-serif; }
.sale-hero-copy>span { display:block; margin-top:1.5rem; font-size:clamp(1rem,1.5vw,1.3rem); }
.sale-price { position:absolute; right:clamp(1.5rem,5vw,6rem); bottom:clamp(3.3rem,8.5vh,6.3rem); text-align:right; }
.sale-price strong { display:block; font:400 clamp(1.5rem,2.6vw,2.5rem) Outfit,sans-serif; }
.property-quick-strip { width:min(100% - 3rem,1360px); margin:1rem auto 0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); background:rgba(226,218,204,.12); }
.quick-fact { min-width:0; min-height:5rem; padding:.85rem clamp(.7rem,1.5vw,1.3rem); display:grid; grid-template-columns:2.15rem minmax(0,1fr); grid-template-rows:auto auto; align-content:center; align-items:center; column-gap:.65rem; row-gap:.12rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(240,235,226,.28); transition:background-color .35s ease; }
.quick-fact:hover { background:rgba(240,235,226,.52); }
.quick-fact svg { grid-column:1; grid-row:1 / 3; width:2.15rem; height:2.15rem; margin:0; fill:none; stroke:var(--ink); stroke-width:1.15; stroke-linecap:round; stroke-linejoin:round; opacity:.78; }
.quick-fact strong { grid-column:2; width:100%; font:400 .92rem Outfit,sans-serif; letter-spacing:.02em; text-align:left; white-space:nowrap; }
.quick-fact span { grid-column:2; width:100%; color:var(--muted); font-size:.66rem; letter-spacing:.12em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.quick-fact svg + span { grid-row:1 / 3; align-self:center; }
.property-trust-strip { width:min(100% - 3rem,1360px); margin:.75rem auto 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-block:1px solid var(--line); }
.property-trust-strip>div { min-width:0; padding:.9rem 1rem; display:flex; align-items:center; justify-content:center; gap:.45rem; border-right:1px solid var(--line); }
.property-trust-strip>div:last-child { border-right:0; }
.property-trust-strip span { color:var(--muted); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; }
.property-trust-strip strong { font:400 .76rem Outfit,sans-serif; white-space:nowrap; }
.trust-status-dot { width:.45rem; height:.45rem; flex:0 0 auto; border-radius:50%; background:#66806a; box-shadow:0 0 0 .22rem rgba(102,128,106,.13); }
.sale-overview,.distribution,.location { width:min(100% - 3rem,1280px); margin:auto; padding:clamp(5rem,10vw,10rem) 0; display:grid; grid-template-columns:minmax(180px,.65fr) 2fr; gap:clamp(2rem,7vw,8rem); }
.sale-label { padding-top:.5rem; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; }
.sale-intro h2,.location h2 { max-width:920px; font:300 clamp(2.3rem,5vw,5.4rem)/1.03 Outfit,sans-serif; }
.sale-intro p,.location p { max-width:720px; margin-top:2rem; color:var(--muted); font-size:clamp(1rem,1.35vw,1.2rem); line-height:1.7; }
.distribution { border-bottom:1px solid var(--line); }
.distribution-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); }
.distribution article { padding:clamp(2rem,4vw,4rem); background:rgba(230,223,210,.55); }
.distribution article>span { font-size:.65rem; letter-spacing:.18em; }
.distribution h3 { margin:2.5rem 0 2rem; font:300 clamp(1.8rem,3vw,3rem) Outfit,sans-serif; }
.distribution ul { list-style:none; }
.distribution li { padding:.85rem 0; color:var(--muted); border-top:1px solid var(--line); line-height:1.4; }
.location { align-items:start; }
.amenities { display:flex; flex-wrap:wrap; gap:.65rem; padding-top:.5rem; }
.amenities span { padding:.75rem 1rem; border:1px solid var(--line); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.sale-contact { position:relative; width:calc(100% - 2rem); min-height:75svh; margin:0 auto 1rem; overflow:hidden; color:#f8f3e9; }
.sale-contact>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.sale-contact-shade { position:absolute; inset:0; background:rgba(19,19,17,.58); }
.sale-contact-copy { position:relative; z-index:1; min-height:75svh; padding:clamp(3rem,7vw,7rem); display:flex; flex-direction:column; justify-content:flex-end; }
.sale-contact-copy>span { font-size:.67rem; letter-spacing:.2em; text-transform:uppercase; }
.sale-contact h2 { margin:1rem 0; font:300 clamp(3rem,8vw,8rem)/.9 Outfit,sans-serif; }
.sale-contact p { max-width:530px; line-height:1.6; }
.sale-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2.5rem; }
.sale-actions a { padding:1rem 1.25rem; border:1px solid rgba(255,255,255,.5); text-decoration:none; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; transition:.3s ease; }
.sale-actions a:hover { background:#f7f2e9; color:#20201e; }
footer { padding:1.5rem; display:flex; justify-content:space-between; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }
.reveal-on-scroll { opacity:.35; transform:translateY(26px); transition:opacity .9s ease,transform 1.1s cubic-bezier(.16,1,.3,1); }
.reveal-on-scroll.visible { opacity:1; transform:none; }
@keyframes hero-settle { to { transform:scale(1); } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; } .reveal-on-scroll { opacity:1; transform:none; } }
@media (max-width:760px) {
  body { overflow-wrap:anywhere; }
  .property-trust-strip { width:calc(100% - 2rem); grid-template-columns:repeat(2,minmax(0,1fr)); }
  .property-trust-strip>div { min-width:0; min-height:4rem; padding:.72rem; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:.3rem; border-bottom:1px solid var(--line); }
  .property-trust-strip>div:first-child { flex-direction:row; align-items:center; justify-content:flex-start; gap:.5rem; }
  .property-trust-strip span,
  .property-trust-strip strong { min-width:0; max-width:100%; text-align:left; white-space:normal; overflow-wrap:anywhere; }
  .property-trust-strip strong { width:100%; font-size:clamp(.68rem,3.2vw,.76rem); line-height:1.25; }
  .property-trust-strip>div:first-child strong { width:auto; }
  .property-trust-strip>div:nth-child(2n) { border-right:0; }
  .property-trust-strip>div:nth-last-child(-n+2) { border-bottom:0; }
  .property-quick-strip { width:calc(100% - 2rem); grid-template-columns:repeat(2,1fr); }
  .quick-fact { min-height:4.8rem; padding:.72rem; grid-template-columns:1.85rem minmax(0,1fr); column-gap:.55rem; }
  .quick-fact svg { width:1.85rem; height:1.85rem; }
  .quick-fact strong,
  .quick-fact span { min-width:0; max-width:100%; white-space:normal; overflow-wrap:anywhere; }
  .quick-fact span { font-size:.62rem; line-height:1.25; letter-spacing:.08em; }
  .sale-actions a,
  .share-property,
  .floating-action-menu a,
  .floating-action-menu button { min-width:0; white-space:normal; overflow-wrap:anywhere; }
  .sale-nav { min-height:0; padding:.55rem .9rem; }
  .sale-menu { display:block; color:inherit; }
  .sale-nav nav { position:absolute; top:calc(100% + .4rem); left:0; right:0; padding:1.2rem; display:none; flex-direction:column; background:rgba(221,213,199,.94); color:var(--ink); backdrop-filter:blur(18px); }
  .sale-nav.open nav { display:flex; }
  .sale-hero { min-height:580px; }
  .sale-hero-top { top:5.5rem; flex-direction:column; gap:.45rem; }
  .sale-hero-copy { bottom:8.5rem; }
  .sale-price { left:1.5rem; right:auto; bottom:3rem; text-align:left; }
  .sale-overview,.distribution,.location { grid-template-columns:1fr; padding:5rem 0; }
  .distribution-grid { grid-template-columns:1fr; }
  .sale-contact { width:calc(100% - 1rem); }
  .sale-actions { align-items:stretch; flex-direction:column; }
  .sale-actions a { text-align:center; }
  footer { gap:1rem; flex-direction:column; }
}

/* Compact editorial sheet, matching the main portfolio language. */
:root {
  --paper: #d8cfbf;
  --ink: #1a1a1a;
  --muted: #5a5a5a;
  --line: rgba(26,26,26,.1);
  --glass: rgba(216,207,191,.76);
}
body { position:relative; background:transparent; }
.mesh-bg { position:fixed; inset:0; z-index:-2; background:radial-gradient(circle at 15% 10%,rgba(246,239,226,.7),transparent 38%),linear-gradient(180deg,#ddd3c1 0%,#c9bda9 100%); }
.paper-texture { position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.18; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E"); }
.sale-hero { height:74svh; min-height:560px; }
.sale-hero-copy { bottom:2.5rem; }
.sale-hero-copy h1 { font-size:clamp(4.4rem,10vw,9rem); }
.sale-hero-copy>span { margin-top:.85rem; }
.sale-price { bottom:2.8rem; }
.sale-hero-top { top:6.6rem; }
.portfolio-strip { width:min(100% - 3rem,1360px); margin:auto; padding:clamp(2.5rem,4vw,4rem) 0 0; }
.strip-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:1.25rem; }
.strip-heading span { font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; }
.strip-heading h2 { margin-top:.4rem; font:300 clamp(1.65rem,2.8vw,2.8rem)/1 Outfit,sans-serif; }
.strip-track { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }
.strip-track figure { position:relative; min-width:0; height:clamp(10.5rem,15vw,13rem); overflow:hidden; }
.strip-track figure:not(.gallery-more)::after { content:''; position:absolute; inset:auto 0 0; height:42%; pointer-events:none; background:linear-gradient(transparent,rgba(18,17,15,.5)); }
.strip-track img { display:block; width:100%; height:100%; max-width:none; object-fit:cover; filter:saturate(.88) contrast(.96); transition:filter .55s ease; }
.strip-track figure:hover img { filter:saturate(1) contrast(1); }
.strip-track figcaption { position:absolute; z-index:1; right:.85rem; bottom:.75rem; left:.85rem; color:#f8f3e9; font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; }
.gallery-more-trigger { position:relative; display:block; width:100%; height:100%; padding:0; overflow:hidden; color:#f8f3e9; border:0; background:none; cursor:pointer; font:inherit; }
.gallery-more-trigger::after { content:''; position:absolute; inset:0; background:rgba(24,23,20,.38); transition:background-color .45s ease; }
.gallery-more span { position:absolute; z-index:1; right:1rem; bottom:1rem; padding-bottom:.3rem; border-bottom:1px solid currentColor; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; }
.gallery-more:hover .gallery-more-trigger::after { background:rgba(24,23,20,.2); }
.gallery-modal-open,
.gallery-open { overflow:hidden; overscroll-behavior:none; }
.sale-gallery-modal { position:fixed; inset:0; z-index:120; padding:clamp(4.9rem,8vh,6.5rem) clamp(.75rem,2vw,2rem) clamp(.75rem,2vw,2rem); overflow:hidden; overscroll-behavior:contain; background:rgba(32,29,24,.22); backdrop-filter:blur(8px); }
.sale-gallery-modal[hidden] { display:none; }
.sale-gallery-window { width:min(100%,1360px); height:100%; margin:auto; padding:clamp(1rem,2vw,1.75rem); overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; touch-action:pan-y; color:var(--ink); border:1px solid rgba(26,26,26,.14); background:rgba(222,214,200,.96); box-shadow:0 24px 80px rgba(35,30,24,.16); }
.sale-gallery-header { position:sticky; z-index:2; top:-1.75rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:.5rem 0 1rem; background:linear-gradient(rgba(222,214,200,.98) 75%,transparent); }
.sale-gallery-header span { font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; }
.sale-gallery-header h2 { margin-top:.25rem; font:300 clamp(1.5rem,2.5vw,2.5rem)/1 Outfit,sans-serif; }
.sale-gallery-close { width:2.5rem; height:2.5rem; color:var(--ink); border:1px solid var(--line); background:transparent; font:300 1.8rem/1 Inter,sans-serif; cursor:pointer; }
.sale-gallery-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.75rem; align-items:start; }
.sale-gallery-grid img { display:block; grid-column:span 2; width:100%; height:auto; object-fit:contain; background:rgba(207,198,182,.38); }
.sale-gallery-grid img:first-child { grid-column:1 / -1; max-height:min(68vh,720px); object-fit:contain; }
.strip-track figure:not(.gallery-more) img,
.sale-gallery-grid img { cursor:zoom-in; }
.strip-track figure:not(.gallery-more) img:focus-visible,
.sale-gallery-grid img:focus-visible { outline:2px solid #6689a3; outline-offset:-2px; }
.sale-image-viewer { position:fixed; inset:0; z-index:160; padding:clamp(.5rem,2vw,1.5rem); display:grid; place-items:center; overflow:hidden; background:rgba(18,17,15,.9); backdrop-filter:blur(12px); }
.sale-image-viewer[hidden] { display:none; }
.sale-image-viewer-frame { position:relative; width:100%; height:100%; display:grid; place-items:center; overflow:hidden; }
.sale-image-viewer figure { width:100%; height:100%; min-width:0; min-height:0; display:grid; grid-template-rows:minmax(0,1fr) auto; place-items:stretch; gap:.75rem; margin:0; padding:clamp(3.2rem,6vw,4.5rem) clamp(2.6rem,6vw,5.5rem) .5rem; overflow:hidden; }
.sale-image-viewer-img { display:block; width:100%; height:100%; min-width:0; min-height:0; object-fit:contain; object-position:center; filter:drop-shadow(0 24px 40px rgba(0,0,0,.28)); }
.sale-image-viewer-caption { min-height:1rem; color:rgba(248,243,233,.7); font-size:.62rem; letter-spacing:.15em; text-align:center; text-transform:uppercase; }
.sale-image-viewer-close,
.sale-image-viewer-nav { position:absolute; z-index:2; display:grid; place-items:center; color:#f8f3e9; border:1px solid rgba(255,255,255,.28); background:rgba(20,19,17,.28); cursor:pointer; }
.sale-image-viewer-close { top:.5rem; right:.5rem; width:2.7rem; height:2.7rem; font:300 1.9rem/1 Inter,sans-serif; }
.sale-image-viewer-nav { top:50%; width:2.8rem; height:4.5rem; font:300 2.2rem/1 Inter,sans-serif; transform:translateY(-50%); }
.sale-image-viewer-prev { left:.5rem; }
.sale-image-viewer-next { right:.5rem; }
.property-description { width:min(100% - 3rem,1360px); margin:auto; padding:clamp(2.7rem,5vw,4.6rem) 0; border-bottom:1px solid var(--line); }
.property-description-heading { display:grid; grid-template-columns:minmax(160px,.6fr) 2fr; gap:clamp(2rem,7vw,8rem); align-items:start; }
.property-description-heading h2 { max-width:940px; font:300 clamp(2rem,4vw,4rem)/1.02 Outfit,sans-serif; letter-spacing:-.035em; }
.property-description-lead { max-width:800px; margin-top:1rem; color:var(--muted); font-size:clamp(.92rem,1.1vw,1.05rem); line-height:1.6; }
.property-description-details { max-width:800px; margin-top:.8rem; color:var(--muted); font-size:clamp(.86rem,1vw,.98rem); line-height:1.65; }
.sale-location { width:min(100% - 3rem,1360px); margin:0 auto clamp(2rem,4vw,4rem); padding:clamp(1rem,1.8vw,1.5rem) 0; display:grid; grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr); align-items:stretch; gap:clamp(1rem,2.5vw,2.5rem); border-block:1px solid var(--line); }
.location-summary { display:grid; grid-template-columns:auto 1fr; grid-template-rows:1fr auto; align-items:start; gap:1rem; padding:clamp(.5rem,1.5vw,1.25rem) 0; }
.location-mark { width:2.5rem; height:2.5rem; display:grid; place-items:center; border:1px solid var(--line); }
.location-mark svg,.location-link svg { width:1rem; height:1rem; fill:none; stroke:currentColor; stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round; }
.location-text { display:block; }
.location-text>span { font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; }
.location-text h2 { margin-top:.55rem; font:300 clamp(1.5rem,2.4vw,2.5rem)/1 Outfit,sans-serif; }
.location-text p { margin-top:.65rem; color:var(--muted); font-size:.75rem; letter-spacing:.05em; line-height:1.5; }
.location-link { grid-column:2; width:fit-content; display:inline-flex; align-items:center; gap:.65rem; padding:.7rem 0; border-bottom:1px solid currentColor; font-size:.64rem; letter-spacing:.15em; text-decoration:none; text-transform:uppercase; }
.location-map { position:relative; min-height:260px; overflow:hidden; background:rgba(205,196,180,.48); }
.location-map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; pointer-events:none; }
.location-map.map-active iframe { pointer-events:auto; }
.map-scroll-guard { position:absolute; z-index:1; inset:0; width:100%; height:100%; border:0; background:transparent; cursor:pointer; touch-action:pan-y; }
.map-scroll-guard:focus-visible { outline:3px solid #765f48; outline-offset:-5px; }
.location-map.map-active .map-scroll-guard { pointer-events:none; }
.sale-contact { width:min(100% - 2rem,1360px); min-height:auto; margin:0 auto 1rem; color:#f8f3e9; border:1px solid rgba(255,255,255,.2); background:#34302a; }
.sale-contact>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 48%; }
.sale-contact-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,19,17,.78),rgba(20,19,17,.48)); }
.sale-contact-copy { min-height:auto; padding:clamp(1.5rem,3vw,2.5rem); flex-direction:row; align-items:center; justify-content:space-between; gap:2rem; }
.sale-contact h2 { margin:.45rem 0 0; font-size:clamp(1.8rem,3vw,3rem); line-height:1; }
.sale-contact-summary { max-width:42rem; margin:.8rem auto 0; color:rgba(248,243,233,.84); font-size:clamp(.78rem,1vw,.92rem); line-height:1.5; }
.sale-actions { margin:0; }
.sale-actions a,.share-property,.sale-actions .appointment-form-trigger { display:inline-flex; align-items:center; gap:.65rem; padding:1rem 1.25rem; color:#f8f3e9; border:1px solid rgba(255,255,255,.42); background:transparent; font:inherit; font-size:.7rem; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; cursor:pointer; transition:.3s ease; }
.sale-actions a svg,.share-property svg,.sale-actions .appointment-form-trigger svg { width:1rem; height:1rem; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.sale-actions a:hover,.share-property:hover,.sale-actions .appointment-form-trigger:hover { color:var(--ink); background:#f7f2e9; }
.mobile-sale-cta { position:fixed; z-index:90; right:1.25rem; bottom:1.25rem; width:min(390px,calc(100% - 2.5rem)); min-height:4.2rem; padding:.55rem; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:.45rem; color:var(--ink); border:1px solid rgba(26,26,26,.12); background:rgba(221,213,199,.9); box-shadow:0 14px 44px rgba(38,32,25,.16); backdrop-filter:blur(18px); transform:translateY(1.2rem) scale(.985); filter:blur(2px); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .5s ease,transform .55s cubic-bezier(.22,1,.36,1),filter .45s ease,visibility 0s linear .55s; }
.mobile-sale-cta.visible { transform:none; filter:none; opacity:1; visibility:visible; pointer-events:auto; transition-delay:0s; }
.mobile-sale-cta>.floating-property-summary { min-width:0; padding-left:.65rem; display:flex; flex-direction:column; gap:.16rem; }
.mobile-sale-cta>.floating-property-summary span { font-size:.62rem; letter-spacing:.13em; text-transform:uppercase; }
.mobile-sale-cta>.floating-property-summary strong { font:400 .92rem Outfit,sans-serif; }
.mobile-sale-cta>a,.mobile-sale-cta>button { min-width:3rem; height:3.05rem; padding:0 .85rem; display:inline-flex; align-items:center; justify-content:center; gap:.45rem; color:var(--ink); border:1px solid rgba(26,26,26,.16); background:transparent; font:500 .66rem Inter,sans-serif; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; cursor:pointer; transition:background-color .25s ease,color .25s ease; }
.mobile-sale-cta>a:hover,.mobile-sale-cta>button:hover { color:#f8f3e9; background:#34302a; }
.mobile-sale-cta svg { width:1rem; height:1rem; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.floating-action-menu { position:absolute; right:0; bottom:calc(100% + .7rem); width:min(310px,calc(100vw - 2.5rem)); padding:.65rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; color:var(--ink); border:1px solid rgba(26,26,26,.12); background:rgba(221,213,199,.96); box-shadow:0 16px 44px rgba(38,32,25,.18); backdrop-filter:blur(20px); transform:translateY(.7rem) scale(.98); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1),visibility 0s linear .4s; }
.floating-action-menu.open { transform:none; opacity:1; visibility:visible; pointer-events:auto; transition-delay:0s; }
.floating-menu-label { grid-column:1 / -1; padding:.35rem .25rem .55rem; font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; }
.floating-action-menu a,.floating-action-menu button { min-width:0; min-height:3.2rem; padding:.65rem; display:flex; align-items:center; justify-content:center; gap:.55rem; color:var(--ink); border:1px solid rgba(26,26,26,.14); background:transparent; font:500 .64rem Inter,sans-serif; letter-spacing:.08em; text-align:center; text-decoration:none; text-transform:uppercase; cursor:pointer; transition:background-color .25s ease,color .25s ease; }
.floating-action-menu a:hover,.floating-action-menu button:hover { color:#f8f3e9; background:#34302a; }
.floating-form-trigger { grid-column:1 / -1; }
.floating-action-menu [hidden] { display:none; }
.appointment-form-open { overflow:hidden; overscroll-behavior:none; }
.appointment-form-modal { position:fixed; inset:0; z-index:180; padding:clamp(.75rem,3vw,2rem); display:grid; place-items:center; overflow:auto; background:rgba(22,20,17,.55); backdrop-filter:blur(12px); }
.appointment-form-modal[hidden] { display:none; }
.appointment-form-window { position:relative; width:min(100%,680px); max-height:calc(100svh - clamp(1.5rem,6vw,4rem)); padding:clamp(1.25rem,3vw,2rem); overflow:auto; color:var(--ink); border:1px solid rgba(26,26,26,.14); background:rgba(226,218,204,.98); box-shadow:0 28px 90px rgba(27,23,18,.28); }
.appointment-form-header { display:flex; align-items:flex-start; justify-content:space-between; gap:2rem; padding-bottom:1.2rem; border-bottom:1px solid var(--line); }
.appointment-form-header>div>span { color:var(--muted); font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; }
.appointment-form-header h2 { margin-top:.4rem; font:300 clamp(1.8rem,4vw,3rem)/1 Outfit,sans-serif; }
.appointment-form-close { flex:0 0 auto; width:2.6rem; height:2.6rem; display:grid; place-items:center; color:var(--ink); border:1px solid var(--line); background:transparent; font:300 1.8rem/1 Outfit,sans-serif; cursor:pointer; }
.appointment-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding-top:1.25rem; }
.appointment-form-grid label { min-width:0; display:flex; flex-direction:column; gap:.45rem; }
.appointment-form-grid label>span { color:var(--muted); font-size:.63rem; letter-spacing:.14em; text-transform:uppercase; }
.appointment-form-grid input,.appointment-form-grid textarea { width:100%; min-width:0; box-sizing:border-box; padding:.85rem .9rem; color:var(--ink); border:1px solid rgba(26,26,26,.18); border-radius:0; background:rgba(248,243,233,.48); font:400 .9rem/1.35 Inter,sans-serif; }
.appointment-form-grid textarea { resize:vertical; min-height:6.5rem; }
.appointment-form-message { grid-column:1 / -1; }
.appointment-form-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; }
.appointment-form-status { flex:1 1 auto; min-height:1.2rem; color:var(--muted); font-size:.76rem; line-height:1.4; }
.appointment-form-status.is-success { color:#46694e; }
.appointment-form-status.is-error { color:#8b3f36; }
.appointment-form-submit { flex:0 0 auto; min-height:3rem; padding:.8rem 1.15rem; color:#f8f3e9; border:1px solid #34302a; background:#34302a; font:500 .68rem Inter,sans-serif; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.appointment-form-submit:disabled { cursor:wait; opacity:.58; }
.appointment-form-privacy { max-width:34rem; margin:.75rem 0 0; color:var(--muted); font-size:.67rem; line-height:1.5; }
.appointment-form-privacy a { text-underline-offset:.18em; }
.form-honeypot { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; white-space:nowrap!important; }
footer { width:min(100% - 2rem,1360px); margin:auto; }

@media (min-width:761px) and (max-width:1024px) {
  .sale-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sale-gallery-grid img { grid-column:span 1; }
  .sale-gallery-grid img:first-child { grid-column:1 / -1; }
  .sale-location { grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr); }
}

@media (min-width:761px) and (max-width:860px) {
  .sale-location { grid-template-columns:1fr; }
  .location-map { min-height:250px; }
}

@media (max-width:760px) {
  .property-description { width:calc(100% - 2rem); padding:2.8rem 0; }
  .property-description-heading { grid-template-columns:1fr; gap:1rem; }
  .sale-hero { height:74svh; min-height:560px; }
  .sale-hero-top { top:5.2rem; }
  .sale-hero-copy { bottom:8rem; }
  .sale-price { bottom:2.4rem; }
  .portfolio-strip { width:calc(100% - 2rem); padding-top:2.5rem; }
  .strip-track { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
  .strip-track figure { width:100%; height:clamp(8.5rem,38vw,11rem); }
  .strip-track img { width:100%; height:100%; min-height:0; }
  .strip-track figcaption { font-size:.58rem; }
  .sale-gallery-modal { padding:4.3rem .45rem .45rem; }
  .sale-gallery-window { padding:.8rem; }
  .sale-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
  .sale-gallery-grid img,
  .sale-gallery-grid img:first-child { grid-column:span 1; width:100%; height:auto; max-height:none; }
  .sale-gallery-grid img:first-child { grid-column:1 / -1; }
  .sale-location { width:calc(100% - 2rem); grid-template-columns:1fr; gap:.8rem; }
  .location-summary { grid-template-columns:auto 1fr auto; grid-template-rows:auto; align-items:center; padding:.5rem 0; }
  .location-text { display:block; }
  .location-text>span { display:none; }
  .location-text h2 { font-size:1.2rem; }
  .location-text p { margin-top:.25rem; font-size:.68rem; }
  .location-link span { display:none; }
  .location-link { grid-column:3; padding:.65rem; border:1px solid var(--line); }
  .location-map { min-height:230px; }
  .sale-contact-copy { align-items:flex-start; flex-direction:column; }
  .sale-actions { width:100%; }
  .share-property,.sale-actions .appointment-form-trigger { justify-content:center; width:100%; }
  .appointment-form-modal { padding:.5rem; place-items:end center; }
  .appointment-form-window { width:100%; max-height:calc(100svh - 1rem); padding:1rem; }
  .appointment-form-header { gap:1rem; }
  .appointment-form-grid { grid-template-columns:1fr; gap:.8rem; }
  .appointment-form-message { grid-column:auto; }
  .appointment-form-actions { align-items:stretch; flex-direction:column; }
  .appointment-form-submit { width:100%; }
  .mobile-sale-cta { position:fixed; z-index:90; right:max(.5rem,env(safe-area-inset-right)); bottom:max(.5rem,env(safe-area-inset-bottom)); left:max(.5rem,env(safe-area-inset-left)); width:auto; min-height:3.7rem; padding:.45rem; display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:.4rem; color:var(--ink); border:1px solid rgba(26,26,26,.12); background:rgba(221,213,199,.9); box-shadow:0 12px 40px rgba(38,32,25,.14); backdrop-filter:blur(18px); transform:translateY(1rem) scale(.985); }
  .mobile-sale-cta.visible { transform:none; }
  .mobile-sale-cta>.floating-property-summary { padding-left:.55rem; gap:.15rem; }
  .mobile-sale-cta>.floating-property-summary span { font-size:.62rem; letter-spacing:.13em; text-transform:uppercase; }
  .mobile-sale-cta>.floating-property-summary strong { font:400 .88rem Outfit,sans-serif; }
  .mobile-sale-cta>a,.mobile-sale-cta>button { min-width:2.85rem; height:2.8rem; padding:0 .75rem; display:inline-flex; align-items:center; justify-content:center; gap:.4rem; color:var(--ink); border:1px solid rgba(26,26,26,.16); background:transparent; font:500 .62rem Inter,sans-serif; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
  .mobile-sale-cta svg { width:1rem; height:1rem; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
  .floating-action-menu { right:0; left:0; width:100%; max-height:calc(100svh - 6rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:contain; }
}
