/* Skyline Glass, listing sites.
   Smith Robinson Real Estate Two70. Site designed and built by SR Visual, LLC.

   One stylesheet for both single-property templates in use:
     Template A: the property-site skill pages (571 Partridge, 626 Autumn Ct, 560 Partridge, ...)
     Template B: the srtwo70.com pages served by the srtwo70-properties worker
                 (830 S 2315 W, 573 Business Loop, 343 S 4th W)
   The two templates use different class names, so one file styles both.
   This is the visual layer only. Every id, class, link and script hook in the
   pages is unchanged. Tokens follow design/skyline-glass-spec.md. */

:root{
  --sg-brand:#16a3db;
  --sg-brand-text:#087caf;
  --sg-brand-deep:#076d98;
  --sg-on-brand:#053a50;
  --sg-accent-word:#1398ce;
  --sg-ink:#233e51;
  --sg-ink-2:#365c73;
  --sg-muted:#51707f;     /* secondary text: about 4.8:1 on the canvas, 5:1 on a card */
  --sg-faint:#5d7c90;     /* small labels: never lighter than this */
  --sg-line:rgba(144,178,197,.22);
  --sg-line-strong:#d2e3ee;
  --sg-canvas:#edf6fb;
  --sg-font:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  --sg-glass:linear-gradient(135deg,rgba(255,255,255,.86),rgba(255,255,255,.68));
  --sg-glass-float:linear-gradient(125deg,rgba(255,255,255,.93),rgba(247,252,255,.84));
  --sg-shadow:0 3px 6px rgba(38,89,118,.025),0 14px 30px rgba(36,100,136,.065),0 35px 65px rgba(50,110,139,.035),inset 0 1px 1px rgba(255,255,255,.95);
  --sg-shadow-photo:0 5px 10px rgba(35,108,141,.07),0 20px 40px rgba(57,119,155,.15);
  --sg-shadow-float:0 10px 30px rgba(27,83,100,.14),0 2px 6px rgba(27,83,100,.06),inset 0 1px 0 #fff;
  --sg-blur:blur(24px) saturate(1.3);
  --sg-wash:radial-gradient(ellipse at 100% 0,#cceefe,transparent 60%),linear-gradient(140deg,#f8fcff,#e1f4fc);
  --sg-radius:21px;
  --sg-max:1180px;
  --sg-gutter:24px;
  --sg-gap:16px;          /* half the space between two cards */

  /* Names the page markup still uses in inline styles, mapped to Skyline values
     so nothing inline can paint dark-theme white text on the light canvas. */
  --accent:#087caf;
  --accent-light:#65cdee;
  --accent-dark:#365c73;
  --serif:var(--sg-font);
  --sans:var(--sg-font);
  --text-white:#233e51;
  --text-dark:#233e51;
  --text-dim:#51707f;
  --text-muted:#51707f;
  --faint:#5d7c90;
  --dark-card:rgba(255,255,255,.72);
  --warm-bg:transparent;
  --warm-bg-2:transparent;
  --nav-h:64px;
}

/* ---------- Base ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;overflow-x:hidden;background:var(--sg-canvas);color-scheme:light;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sg-font);font-size:15px;font-weight:400;line-height:1.65;color:var(--sg-ink);
  overflow-x:hidden;overflow-x:clip;
  background:
    radial-gradient(ellipse at 74% 8%,rgba(162,217,242,.34),transparent 45%),
    radial-gradient(ellipse at 34% 34%,rgba(220,211,253,.19),transparent 40%),
    radial-gradient(ellipse at 85% 81%,rgba(191,234,232,.24),transparent 48%),
    linear-gradient(140deg,#f3f8fc 0%,#edf5fa 50%,#f1f8fc 100%);
  background-color:var(--sg-canvas);
  background-attachment:fixed;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a[href^="tel:"],.sg-tel{white-space:nowrap}  /* a phone number never breaks across two lines (.sg-tel: plain-text numbers, wrapped by build.py) */
button{border:none;cursor:pointer;background:none;font-family:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--sg-font);color:var(--sg-ink);font-weight:550;letter-spacing:-.02em;line-height:1.15;text-wrap:balance}
p,li{text-wrap:pretty}
h1 em,h2 em,h3 em,h2 em[style]{font-style:normal!important;color:inherit!important;font-family:var(--sg-font)!important;font-weight:inherit}
::selection{background:#cfeefc;color:var(--sg-on-brand)}
:focus-visible{outline:2px solid var(--sg-brand);outline-offset:3px;border-radius:8px}
section[id],header[id],div[id]{scroll-margin-top:92px}
svg{flex-shrink:0}

/* ---------- Buttons ---------- */
.btn,.btn-primary,.btn-outline,.nav-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:11px 20px;border-radius:12px;
  font-family:var(--sg-font);font-size:14px;font-weight:600;line-height:1.2;letter-spacing:-.005em;text-transform:none;white-space:nowrap;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease;cursor:pointer
}
.btn-gold,.btn-primary,.nav-cta{
  background:linear-gradient(140deg,#65cdee -40%,#16a3db 62%,#0996ce);color:var(--sg-on-brand);
  border:1px solid rgba(162,222,246,.52);font-weight:650;
  box-shadow:0 4px 9px rgba(22,163,219,.15),0 10px 22px rgba(22,163,219,.13),inset 0 1px 1px rgba(188,239,255,.54)
}
.btn-gold:hover,.btn-primary:hover,.nav-cta:hover{
  background:linear-gradient(145deg,#80dcf6 -50%,#16a3db 50%,#078dc4);border-color:#d0f4ff;color:var(--sg-on-brand);
  box-shadow:0 5px 12px rgba(22,163,219,.21),0 12px 27px rgba(22,163,219,.16);transform:translateY(-1px)
}
.btn-ghost-light,.btn-ghost-dark,.btn-outline{
  background:linear-gradient(150deg,#fff,rgba(249,252,255,.86));color:#4d7188;border:1px solid #fff;
  box-shadow:0 0 0 1px rgba(197,221,234,.5),0 3px 8px rgba(57,114,145,.06),0 8px 17px rgba(36,107,148,.035),inset 0 1px 0 #fff
}
.btn-ghost-light:hover,.btn-ghost-dark:hover,.btn-outline:hover{
  background:linear-gradient(135deg,#fff,#edf8ff);color:#2c5a75;border-color:#fff;
  box-shadow:0 0 0 1px rgba(170,214,236,.6),0 5px 15px rgba(38,137,181,.12);transform:translateY(-1px)
}
.btn svg,.btn-primary svg,.btn-outline svg,.nav-cta svg{width:16px;height:16px;stroke-width:1.7}

/* ---------- Eyebrows and body copy ---------- */
.label,.statement-label,.option-eyebrow,.room-text .room-size,.cc-label{
  display:block;margin:0 0 12px;padding:0;border:0;background:none;
  font-size:11px;font-weight:600;letter-spacing:1.4px;line-height:1.5;text-transform:uppercase;color:var(--sg-faint)
}
.lede,.statement-body,.statement-body.light,.room-text p,.room-text .dark-text,.room-text .light-text,
.features-header p,.gallery-header p,.location p,.room-desc,.feature-desc{
  font-size:15.5px;line-height:1.72;color:var(--sg-muted);max-width:580px
}
.room-text p + p{margin-top:12px}

/* Section headings (inside cards and on the canvas) */
.section h2,.statement-heading,.room-text h2,.room-heading,.features-header h2,.gallery-header h2,
.location h2,.floorplan h2,.gallery-head h2{
  font-size:clamp(26px,2.6vw,36px);font-weight:550;letter-spacing:-.032em;line-height:1.14;color:var(--sg-ink);margin:0 0 14px
}
.section h2 .hl-teal,.section h2 .hl-gold,.contact h2 .hl-gold{color:inherit}

/* Hairline list rows: the old gold and teal bullet dots become one cyan node */
.dots,.location-details{list-style:none;margin:22px 0 0;display:flex;flex-direction:column;gap:0}
.dots li,.location-details li{
  display:flex;align-items:baseline;gap:13px;padding:11px 0;margin:0;
  font-size:14.5px;line-height:1.5;color:var(--sg-ink-2)
}
.dots li + li,.location-details li + li{border-top:1px solid var(--sg-line)}
.dots li::before{
  content:'';flex-shrink:0;width:6px;height:6px;border-radius:50%;
  background:var(--sg-brand);box-shadow:0 0 0 3px #dff5ff;transform:translateY(-2px)
}
.location-details li{align-items:flex-start}
.location-details li svg{color:var(--sg-brand);fill:none;stroke:currentColor;stroke-width:1.7;width:17px;height:17px;margin-top:1px}

/* Product chips (feature tags, lease terms, photo counts) */
.room-features,.room-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}
.room-tag,.tag,.gallery-hint,.option-terms{
  display:inline-flex;align-items:center;padding:5px 9px;border-radius:7px;
  font-size:12px;font-weight:550;line-height:1.25;letter-spacing:0;text-transform:none;
  color:#207ca2;background:rgba(229,245,253,.85);border:1px solid rgba(198,231,247,.7)
}

/* ---------- Floating top bar ---------- */
.nav{
  position:fixed;top:14px;left:14px;right:14px;z-index:9000;margin:0 auto;max-width:var(--sg-max);height:64px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 10px 0 18px;
  border-radius:18px;border:1px solid rgba(255,255,255,.95);
  background:rgba(255,255,255,.66);box-shadow:0 5px 25px rgba(68,124,149,.08);
  -webkit-backdrop-filter:var(--sg-blur);backdrop-filter:var(--sg-blur);
  transition:background .3s ease,box-shadow .3s ease
}
.nav.scrolled{background:rgba(255,255,255,.84);box-shadow:0 8px 30px rgba(52,108,138,.13)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;height:100%;max-width:none;margin:0;padding:0}
.nav-logo{display:flex;align-items:center;gap:14px;min-width:0;font-family:var(--sg-font);font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--sg-ink);white-space:nowrap}
.nav-logo span{color:inherit}
.nav-logo-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}
.nav-logo-mark{height:27px;width:auto;flex-shrink:0}
.nav-logo-divider{display:block;width:1px;height:28px;background:var(--sg-line-strong);flex-shrink:0}
.nav-logo-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.nav-logo-top{font-size:14px;font-weight:600;letter-spacing:-.01em;line-height:1.1;text-transform:none;color:var(--sg-ink);white-space:nowrap}
.nav-logo-bot{font-size:11.5px;font-weight:500;letter-spacing:0;line-height:1.1;text-transform:none;color:var(--sg-faint);white-space:nowrap}
.nav-right{display:flex;align-items:center;gap:14px}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none;margin:0}
.nav-links a{display:block;padding:8px 12px;border-radius:10px;font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--sg-muted);transition:background .2s ease,color .2s ease}
.nav-links a:hover{background:rgba(229,245,252,.95);color:#0785b7}
.nav-cta-wrap{display:flex}
.nav-cta{min-height:42px;padding:10px 16px;font-size:13.5px}

.burger{
  display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:42px;height:42px;border-radius:12px;cursor:pointer;z-index:9999;
  background:linear-gradient(150deg,#fff,rgba(249,252,255,.86));border:1px solid #fff;
  box-shadow:0 3px 8px rgba(57,114,145,.07),inset 0 1px 0 #fff
}
.burger span{display:block;width:18px;height:1.7px;border-radius:2px;background:var(--sg-ink-2);transition:transform .3s ease,opacity .3s ease}
.burger.open span:nth-child(1){transform:translateY(6.7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-6.7px) rotate(-45deg)}

.mobile-menu{
  position:fixed;inset:0;z-index:8999;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:0;
  padding:96px 24px 40px;background:rgba(240,248,252,.9);
  -webkit-backdrop-filter:var(--sg-blur);backdrop-filter:var(--sg-blur);
  opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease
}
.mobile-menu.open{opacity:1;visibility:visible}
.mobile-menu > a{width:100%;max-width:520px;margin-left:auto;margin-right:auto}
.mobile-menu a{font-family:var(--sg-font);font-size:26px;font-weight:550;letter-spacing:-.03em;line-height:1.2;color:var(--sg-ink);padding:14px 4px;border-bottom:1px solid var(--sg-line);text-align:left}
.mobile-menu a:hover{color:#0785b7}
.mobile-menu a[href^="http"]{
  margin-top:22px;border:1px solid rgba(162,222,246,.52);border-radius:14px;padding:15px 18px;text-align:center;
  font-size:16px;font-weight:650;letter-spacing:-.005em;color:var(--sg-on-brand)!important;
  background:linear-gradient(140deg,#65cdee -40%,#16a3db 62%,#0996ce);
  box-shadow:0 4px 9px rgba(22,163,219,.15),0 10px 22px rgba(22,163,219,.13),inset 0 1px 1px rgba(188,239,255,.54)
}

/* ---------- Loader (Template A) ---------- */
.loader{
  position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  background:linear-gradient(140deg,#f3f8fc 0%,#edf5fa 50%,#f1f8fc 100%);transition:opacity .6s ease,visibility .6s ease
}
.loader.done{opacity:0;visibility:hidden;pointer-events:none}
.loader-text{font-family:var(--sg-font);font-size:15px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sg-ink-2)}
.loader-bar{width:120px;height:3px;border-radius:3px;background:#d8eaf2;overflow:hidden}
.loader-bar span{display:block;height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,#4ec5e9,#16a3db);animation:sgLoad 1.8s ease-in-out forwards}
@keyframes sgLoad{to{width:100%}}

/* ---------- Hero: the photo as a large card, the words on glass ---------- */
.hero{
  position:relative;isolation:isolate;display:flex;align-items:flex-end;justify-content:flex-start;
  margin:14px 14px 0;min-height:min(90vh,900px);border-radius:28px;overflow:hidden;
  background:#dcecf5;border:1px solid rgba(255,255,255,.9);box-shadow:var(--sg-shadow-photo)
}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:1;transform:none;transition:none;will-change:auto}
.hero.loaded .hero-bg img{transform:none}
.hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(18,58,82,.16) 0%,rgba(18,58,82,0) 20%,rgba(18,58,82,0) 52%,rgba(18,58,82,.26) 100%)}
.hero-content{
  position:relative;z-index:2;width:auto;max-width:620px;
  margin:0 0 104px max(28px,calc(50% - 590px));padding:32px 34px 30px;
  text-align:left;border-radius:22px;background:var(--sg-glass-float);
  border:1px solid rgba(255,255,255,.94);box-shadow:var(--sg-shadow-float);
  -webkit-backdrop-filter:var(--sg-blur);backdrop-filter:var(--sg-blur)
}
.hero-label,.hero-badge{
  display:block;margin:0 0 14px;padding:0;border:0;border-radius:0;background:none;max-width:none;overflow:visible;
  font-size:11px;font-weight:600;letter-spacing:1.4px;line-height:1.5;text-transform:uppercase;white-space:normal;color:var(--sg-faint)
}
.hero h1,.hero-title{
  font-family:var(--sg-font);font-size:clamp(34px,3.7vw,50px);font-weight:550;letter-spacing:-.03em;line-height:1.07;
  color:var(--sg-ink);margin:0 0 16px;word-break:normal
}
.hero h1 .hl-teal,.hero h1 .hl-gold,.hero-title em{color:var(--sg-accent-word)!important;font-style:normal!important;font-weight:inherit}
.hero-num{display:inline;font-size:inherit;letter-spacing:inherit;color:inherit;margin:0}
.hero-sub{font-size:16px;font-weight:400;line-height:1.62;color:var(--sg-muted);max-width:540px;margin:0 0 24px}
.hero-buttons,.hero-ctas{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start}
.hero-scroll{display:none}

/* ---------- Key facts strip, floating over the bottom of the photo ---------- */
.stats,.stats-bar{position:relative;z-index:3;max-width:calc(var(--sg-max) + 2 * var(--sg-gutter));margin:-56px auto 0;padding:0 var(--sg-gutter);background:none;border:0}
.stats-row{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:0;max-width:none;margin:0;padding:6px;
  border-radius:var(--sg-radius);background:var(--sg-glass-float);border:1px solid rgba(255,255,255,.96);
  box-shadow:0 12px 34px rgba(36,100,136,.12),0 2px 6px rgba(36,100,136,.05),inset 0 1px 0 #fff;
  -webkit-backdrop-filter:var(--sg-blur);backdrop-filter:var(--sg-blur)
}
.stat{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:6px;text-align:left;padding:16px 22px 17px;border-left:1px solid var(--sg-line)}
.stat:first-child{border-left:0}
.stat-num{font-family:var(--sg-font);font-size:30px;font-weight:550;letter-spacing:-1.2px;line-height:1.1;color:#284c62;font-variant-numeric:tabular-nums;white-space:nowrap}
.stat-label{font-size:12.5px;font-weight:500;letter-spacing:0;line-height:1.3;text-transform:none;color:var(--sg-faint);margin:0}

/* ---------- Section rhythm ---------- */
.section{padding:var(--sg-gap) 0;background:none}
.section-warm,.section-light,.section-dark,.section-cream{background:none;color:var(--sg-ink)}
.container{width:100%;max-width:calc(var(--sg-max) + 2 * var(--sg-gutter));margin:0 auto;padding:0 var(--sg-gutter)}
.stats + .section,.stats-bar + section{padding-top:calc(var(--sg-gap) * 2)}

/* One glass card per story block: words on one side, the photo bleeding to the edge */
.split,.statement-inner,.room-inner,.floorplan-inner,.location-inner{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:stretch;
  max-width:var(--sg-max);margin:0 auto;min-height:440px;overflow:hidden;
  border-radius:var(--sg-radius);background:var(--sg-glass);border:1px solid rgba(255,255,255,.98);box-shadow:var(--sg-shadow)
}
.split > div:not(.split-img):not(.photo-grid):not(.map-box),
.statement-inner > div:not(.statement-img),
.room-inner > .room-text,
.floorplan-inner > div:not(.floorplan-img),
.location-inner > div:not(.location-map){
  align-self:center;padding:clamp(30px,3.6vw,52px)
}
.split-img,.statement-img,.room-image,.location-map,.map-box{
  position:relative;height:100%;min-height:340px;aspect-ratio:auto;border-radius:0;overflow:hidden;background:#e3eff6
}
.split-img img,.statement-img img,.room-image > img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.statement-img:hover img,.room-image:hover > img{transform:scale(1.02)}
.location-map iframe,.map-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.92)}
/* Four photos in one block */
.photo-grid,.suite-photo-grid{
  display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:4px;height:100%;min-height:440px;
  border-radius:0;overflow:hidden;aspect-ratio:auto;background:rgba(255,255,255,.6)
}
.photo-grid img,.suite-photo-grid img{width:100%;height:100%;min-height:0;object-fit:cover;border-radius:0;transition:transform .6s ease}
.suite-photo-grid img:hover{transform:scale(1.03)}
.room-image[style*="overflow:visible"]{overflow:hidden!important;background:none!important}
/* Template A order swap for the reversed room cards */
.room-inner.reverse .room-text{order:2}
.room-inner.reverse .room-image{order:1}

/* Headings that sit on the canvas above a row of cards */
.options-head,.features-header{max-width:720px;margin:0 auto 22px!important;padding-top:calc(var(--sg-gap) * 2);text-align:center}
.options-head p,.features-header p{font-size:15.5px;line-height:1.7;color:var(--sg-muted);max-width:600px;margin:0 auto}
.options-head .label,.features-header .label{text-align:center}

/* ---------- Two lease options (Template B, 573) ---------- */
.options-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;max-width:var(--sg-max);margin:0 auto}
.option{
  display:flex;flex-direction:column;padding:32px 32px 28px;border-radius:var(--sg-radius);
  background:var(--sg-glass);border:1px solid rgba(255,255,255,.98);box-shadow:var(--sg-shadow);
  transition:transform .25s ease,box-shadow .25s ease
}
.option.o-full{background:var(--sg-wash)}
.option:hover{transform:translateY(-2px);box-shadow:var(--sg-shadow),0 18px 40px rgba(36,100,136,.08)}
.option h3{font-size:22px;font-weight:600;letter-spacing:-.5px;color:var(--sg-ink);margin:0 0 6px}
.option-sub{font-size:14.5px;line-height:1.6;color:var(--sg-muted);margin:0 0 20px}
.option-price{display:flex;align-items:baseline;gap:8px;padding-top:18px;border-top:1px solid var(--sg-line)}
.option-price .amount{font-size:40px;font-weight:550;letter-spacing:-1.8px;line-height:1.1;color:#284c62;font-variant-numeric:tabular-nums}
.option-price .per{font-size:14px;color:var(--sg-faint)}
.option-terms{align-self:flex-start;margin:10px 0 22px}
.option-terms.t-gold{color:#8a6a3f;background:rgba(246,236,219,.9);border-color:rgba(236,220,190,.8)}
.option ul{list-style:none;display:flex;flex-direction:column;margin:0 0 24px}
.option ul li{display:flex;align-items:baseline;gap:13px;padding:10px 0;font-size:14.5px;line-height:1.5;color:var(--sg-ink-2)}
.option ul li + li{border-top:1px solid var(--sg-line)}
.option ul li::before{content:'';flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--sg-brand);box-shadow:0 0 0 3px #dff5ff;transform:translateY(-2px)}
.option-cta{margin-top:auto}
.option-cta .btn{width:100%}
.option-note{font-size:12.5px;line-height:1.6;color:var(--sg-ink-2);margin-top:14px}  /* lease qualifiers: read like the legal notes, 4.5:1 or better on either card */
.options-foot{text-align:center;max-width:620px;margin:22px auto 0;font-size:14.5px;line-height:1.65;color:var(--sg-muted)}
.options-foot a{color:var(--sg-brand-text);font-weight:600}
.options-foot a:hover{color:var(--sg-brand-deep);text-decoration:underline}

/* ---------- Neighborhood and feature cards ---------- */
.rooms,.features-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:var(--sg-max);margin:0 auto}
.features-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.room,.feature-card{
  padding:26px 28px 26px;border-radius:var(--sg-radius);background:var(--sg-glass);
  border:1px solid rgba(255,255,255,.98);box-shadow:var(--sg-shadow);transition:transform .25s ease,box-shadow .25s ease
}
.feature-card:hover{transform:translateY(-2px);border-color:#fff;box-shadow:var(--sg-shadow),0 18px 40px rgba(36,100,136,.08)}
.room h3,.feature-card h3,.feature-title{font-size:18.5px;font-weight:600;letter-spacing:-.45px;line-height:1.25;color:var(--sg-ink);margin:0 0 8px;font-family:var(--sg-font)}
.room p,.feature-card p{font-size:14.5px;line-height:1.65;color:var(--sg-muted)}
.feature-icon{
  width:40px;height:40px;margin:0 0 18px;border-radius:12px;display:grid;place-items:center;font-size:0;
  color:var(--sg-brand);background:linear-gradient(135deg,#e0f5ff,#f9fdff);border:1px solid #fff;box-shadow:0 3px 7px rgba(61,139,170,.07)
}
.feature-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.features{max-width:calc(var(--sg-max) + 2 * var(--sg-gutter));margin:0 auto;padding:var(--sg-gap) var(--sg-gutter)}

/* ---------- Facts ---------- */
.facts-wrap{
  max-width:var(--sg-max);margin:0 auto;padding:30px 36px 26px;border-radius:var(--sg-radius);
  background:var(--sg-glass);border:1px solid rgba(255,255,255,.98);box-shadow:var(--sg-shadow)
}
.facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:48px}
.fact{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:13px 0;border-bottom:1px solid var(--sg-line)}
.fact:nth-last-child(-n+2){border-bottom:0}
.fact dt{font-size:13.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--sg-muted);white-space:nowrap}
.fact dd{font-size:14.5px;font-weight:600;color:var(--sg-ink);text-align:right;font-variant-numeric:tabular-nums}
.facts-wrap > div[style*="margin-bottom"]{margin-bottom:18px!important}
.fact-note{font-size:12.5px;line-height:1.6;color:var(--sg-muted);margin-top:16px;padding-top:14px;border-top:1px solid var(--sg-line);text-align:left}

/* ---------- Full-width photo panels with a glass caption (Template A) ---------- */
.full-bleed{
  position:relative;width:calc(100% - 2 * var(--sg-gutter));max-width:var(--sg-max);height:clamp(360px,62vh,640px);
  margin:var(--sg-gap) auto;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.9);box-shadow:var(--sg-shadow-photo)
}
.full-bleed img{width:100%;height:100%;object-fit:cover}
.full-bleed-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(28,72,96,.3),transparent 55%);pointer-events:none}
.full-bleed-text{
  position:absolute;left:22px;bottom:22px;z-index:2;max-width:min(460px,calc(100% - 44px));padding:17px 21px 16px;
  border-radius:16px;background:var(--sg-glass-float);border:1px solid rgba(255,255,255,.94);box-shadow:var(--sg-shadow-float);
  -webkit-backdrop-filter:var(--sg-blur);backdrop-filter:var(--sg-blur)
}
.full-bleed-text h3{font-family:var(--sg-font);font-size:21px;font-weight:600;letter-spacing:-.5px;color:var(--sg-ink);margin:0}
.full-bleed-text p{font-size:14px;line-height:1.5;color:var(--sg-muted);margin-top:4px}

/* Template A section shells: the card lives on the inner grid */
.statement,.room-showcase,.floorplan,.location{padding:var(--sg-gap) var(--sg-gutter);background:none}
.floorplan-img{margin:18px;padding:18px;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 1px var(--sg-line-strong);align-self:center}
.floorplan-img img{width:100%;height:auto;border-radius:6px}
.floorplan-inner [style*="border-bottom"]{border-bottom-color:var(--sg-line)!important}
.floorplan-inner [style*="justify-content:space-between"] > span:last-child{font-weight:600!important;color:var(--sg-ink-2)!important;text-align:right}
.fp-specs{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:26px}
.fp-spec{padding:16px;border-radius:14px;text-align:left;background:rgba(255,255,255,.7);border:1px solid #fff;box-shadow:0 3px 8px rgba(57,114,145,.04)}
.fp-spec-val{font-size:22px;font-weight:550;letter-spacing:-.8px;color:#284c62;font-variant-numeric:tabular-nums}
.fp-spec-label{font-size:12px;color:var(--sg-faint);margin-top:2px}

/* Photo panel with the floor plan story on glass (template A: 560, 91 W, 3756 E, 352 S 2nd W) */
.property-details-strip{
  position:relative;overflow:hidden;display:flex;align-items:flex-end;isolation:isolate;
  width:calc(100% - 2 * var(--sg-gutter));max-width:var(--sg-max);min-height:clamp(400px,62vh,620px);margin:var(--sg-gap) auto;padding:22px;
  border-radius:24px;border:1px solid rgba(255,255,255,.9);box-shadow:var(--sg-shadow-photo);background:#dcecf5
}
.pd-bg{position:absolute;inset:0;z-index:0}
.pd-bg img{width:100%;height:100%;object-fit:cover}
.pd-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(28,72,96,.3),transparent 60%)}
.pd-content{
  position:relative;z-index:2;max-width:640px;padding:28px 30px 26px;border-radius:20px;background:var(--sg-glass-float);
  border:1px solid rgba(255,255,255,.94);box-shadow:var(--sg-shadow-float);-webkit-backdrop-filter:var(--sg-blur);backdrop-filter:var(--sg-blur)
}
.pd-label{display:block;margin:0 0 10px;font-size:11px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:var(--sg-faint)}
.pd-heading{font-family:var(--sg-font);font-size:clamp(24px,2.4vw,32px);font-weight:550;letter-spacing:-.03em;line-height:1.15;color:var(--sg-ink);margin:0 0 12px}
.pd-body{font-size:15px;line-height:1.7;color:var(--sg-muted)}
.pd-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}
.pd-tag{display:inline-flex;padding:5px 9px;border-radius:7px;font-size:12px;font-weight:550;line-height:1.3;color:#207ca2;background:rgba(229,245,253,.9);border:1px solid rgba(198,231,247,.8)}
/* Long-form details block (template A) */
.seo-details{padding:var(--sg-gap) var(--sg-gutter);background:none;border:0}
.seo-details-inner{
  max-width:var(--sg-max);margin:0 auto;padding:clamp(28px,4vw,48px);border-radius:var(--sg-radius);
  background:var(--sg-glass);border:1px solid rgba(255,255,255,.98);box-shadow:var(--sg-shadow)
}
.seo-details h2{font-family:var(--sg-font);font-size:clamp(22px,2.2vw,28px);font-weight:550;letter-spacing:-.03em;line-height:1.2;color:var(--sg-ink);margin:0 0 16px}
.seo-details p{font-size:14.5px;line-height:1.75;color:var(--sg-muted);margin:0 0 12px;max-width:none}
.seo-details p:last-child{margin-bottom:0}
.hero-price{font-size:22px;font-weight:550;letter-spacing:-.8px;color:#284c62;font-variant-numeric:tabular-nums;margin:0 0 18px}
.footer-mls{font-size:12px;color:var(--sg-faint)}

/* ---------- Gallery ---------- */
section#gallery > .container,.gallery-section{
  position:relative;width:calc(100% - 2 * var(--sg-gutter));max-width:var(--sg-max);margin:0 auto;padding:28px;
  border-radius:var(--sg-radius);background:var(--sg-glass);border:1px solid rgba(255,255,255,.98);box-shadow:var(--sg-shadow)
}
.gallery-section{margin:var(--sg-gap) auto}
.gallery-head,.gallery-header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 20px;padding:0}
.gallery-head p,.gallery-header p{font-size:13.5px;line-height:1.5;color:var(--sg-faint);margin-top:4px}
.gallery-head h2,.gallery-header h2{margin-bottom:4px!important}
/* Template B: a lead photo and a three-column grid */
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:200px;gap:8px}
.gallery a{position:relative;display:block;border-radius:14px;overflow:hidden;cursor:zoom-in;background:#e3eff6}
.gallery a:first-child{grid-column:span 2;grid-row:span 2}
/* no empty cells at the end of the grid, whatever the photo count */
.gallery a:last-child:nth-child(3n+1):not(:first-child){grid-column:1/-1}
.gallery a:last-child:nth-child(3n+2){grid-column:span 2}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.gallery a:hover img{transform:scale(1.035)}
/* Template A: the mosaic keeps its tall and wide tiles */
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:240px;gap:8px;padding:0}
.gal-item{position:relative;overflow:hidden;cursor:zoom-in;border-radius:14px;background:#e3eff6}
.gal-item.tall{grid-row:span 2}
.gal-item.wide{grid-column:span 2}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.gal-item:hover img{transform:scale(1.035)}
.gal-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;background:linear-gradient(0deg,rgba(20,58,80,0),transparent);transition:background .35s ease}
.gal-item:hover .gal-overlay{background:linear-gradient(0deg,rgba(20,58,80,.42),transparent 60%)}
.gal-label{font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;color:rgba(255,255,255,0);transform:translateY(8px);transition:all .35s ease}
.gal-item:hover .gal-label{color:#fff;transform:none}
.gal-zoom-icon{
  position:absolute;top:12px;left:12px;width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  color:var(--sg-ink-2);background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.9);opacity:0;transform:scale(.9);
  transition:opacity .3s ease,transform .3s ease;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)
}
.gal-zoom-icon svg{stroke-width:1.7}
.gal-item:hover .gal-zoom-icon{opacity:1;transform:none}
.gal-num{position:absolute;top:14px;right:14px;font-size:11px;font-weight:600;letter-spacing:.04em;color:rgba(255,255,255,0);font-variant-numeric:tabular-nums;transition:color .35s ease}
.gal-item:hover .gal-num{color:rgba(255,255,255,.85)}

/* ---------- Lightbox: frosted sky instead of black ---------- */
.lightbox{
  position:fixed;inset:0;z-index:99990;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;background:rgba(233,244,250,.93);
  -webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2)
}
.lightbox.open{opacity:1;visibility:visible}
.lb-backdrop{position:absolute;inset:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.lb-body{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:100vw;max-height:100vh;padding:84px 96px 60px}
.lb-img-wrap{position:relative;display:flex;align-items:center;justify-content:center}
.lb-img-wrap img,.lb-img,.lightbox-img{
  max-width:calc(100vw - 220px);max-height:calc(100vh - 180px);object-fit:contain;border-radius:16px;
  border:1px solid rgba(255,255,255,.9);box-shadow:0 22px 60px rgba(26,78,108,.24),0 4px 12px rgba(26,78,108,.1)
}
.lb-caption{font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--sg-ink-2)}
.lb-counter,.lb-count,.lightbox-counter{
  font-family:var(--sg-font);font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--sg-ink-2);font-variant-numeric:tabular-nums;
  padding:6px 12px;border-radius:10px;background:rgba(255,255,255,.8);border:1px solid #fff;box-shadow:0 3px 8px rgba(57,114,145,.07)
}
.lb-count{position:fixed;bottom:24px;left:50%;transform:translateX(-50%)}
.lb-close,.lb-nav,.lightbox-close,.lightbox-nav{
  position:fixed;z-index:3;width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:0;line-height:1;color:var(--sg-ink-2);cursor:pointer;background:linear-gradient(150deg,#fff,rgba(249,252,255,.92));
  border:1px solid #fff;box-shadow:0 4px 12px rgba(40,100,135,.11),inset 0 1px 0 #fff;transition:box-shadow .18s ease,color .18s ease,background .18s ease
}
.lb-close,.lightbox-close{top:20px;right:20px}
.lb-nav,.lightbox-nav{top:50%;transform:translateY(-50%)}
.lb-prev,.lightbox-prev{left:20px}
.lb-next,.lightbox-next{right:20px}
.lb-close:hover,.lb-nav:hover,.lightbox-close:hover,.lightbox-nav:hover{color:#0785b7;background:linear-gradient(135deg,#fff,#edf8ff);box-shadow:0 6px 18px rgba(38,137,181,.17)}
.lb-nav:hover,.lightbox-nav:hover{transform:translateY(-50%)}
.lb-close svg,.lb-nav svg,.lightbox-close svg,.lightbox-nav svg{width:20px;height:20px;stroke-width:1.7}

/* ---------- Location ---------- */
.location-inner{min-height:460px}
.location-map{min-height:400px}

/* ---------- Contact ---------- */
.contact,.contact-cta{
  position:relative;overflow:hidden;text-align:center;border-radius:24px;
  background:var(--sg-wash);border:1px solid #fff;box-shadow:var(--sg-shadow);color:var(--sg-ink)
}
.contact{padding:clamp(40px,5vw,60px) clamp(24px,5vw,56px)}
.contact-cta{width:calc(100% - 2 * var(--sg-gutter));max-width:var(--sg-max);margin:var(--sg-gap) auto;padding:clamp(40px,5vw,60px) clamp(22px,4vw,48px) clamp(34px,4vw,48px)}
.contact-cta::before{display:none}
.contact h2,.contact-cta h2{font-family:var(--sg-font);font-size:clamp(28px,3.2vw,42px);font-weight:550;letter-spacing:-.035em;line-height:1.1;color:var(--sg-ink);margin:0 0 12px}
.contact p,.contact-cta > p{font-size:15.5px;line-height:1.7;color:var(--sg-muted);max-width:540px;margin:0 auto 24px}
.contact-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 0 22px}
.contact-meta{font-size:13.5px;line-height:1.8;color:var(--sg-muted)}
.contact-meta a{color:var(--sg-brand-text);font-weight:600}
.contact-meta a:hover{color:var(--sg-brand-deep);text-decoration:underline}
.two70-logo{width:180px;height:auto;display:block;margin:0 auto}
.contact-cta a:has(.two70-logo){opacity:1!important}
.contact-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:820px;margin:0 auto}
.contact-card{
  min-width:0;padding:20px 18px;text-align:center;border-radius:16px;background:rgba(255,255,255,.74);border:1px solid #fff;
  box-shadow:0 3px 8px rgba(57,114,145,.05),inset 0 1px 0 #fff;transition:transform .2s ease,box-shadow .2s ease
}
.contact-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(38,137,181,.1)}
.contact-card .cc-label{margin-bottom:6px}
.contact-card .cc-value{font-family:var(--sg-font);font-size:17px;font-weight:600;letter-spacing:-.3px;color:var(--sg-ink)}
.contact-card .cc-value a,.contact-card a{color:var(--sg-brand-text)}
.contact-card a:hover{color:var(--sg-brand-deep)}

/* ---------- Footer ---------- */
.footer{background:none;border:0;padding:12px 0 36px;margin-top:var(--sg-gap)}
.footer > .container{padding:0 var(--sg-gutter)}
.footer-inner{
  max-width:var(--sg-max);margin:0 auto;padding:24px 0 0;border-top:1px solid var(--sg-line-strong);
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px 24px
}
.footer > .footer-inner{width:calc(100% - 2 * var(--sg-gutter))}
.footer-brand{display:block;font-family:var(--sg-font);font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--sg-ink-2)}
.footer .container .footer-brand{display:flex;align-items:center;gap:12px}
.footer-brand span{color:inherit}
.footer-brand img{height:24px;width:auto}
.footer-brand-text{font-size:13px;font-weight:600;letter-spacing:-.005em;text-transform:none;color:var(--sg-ink-2)}
.footer-info,.footer-right{font-size:13px;line-height:1.75;letter-spacing:0;color:var(--sg-muted);text-align:right}
.footer-info a,.footer-right a{color:var(--sg-brand-text);font-weight:500}
.footer-info a:hover,.footer-right a:hover{color:var(--sg-brand-deep);text-decoration:underline}
.footer-credit{display:block;color:var(--sg-faint)}
/* Equal Housing Opportunity and reliability notice: wording untouched, set to be read
   (12px in ink-2 reads about 6.5:1 on the canvas; the original 9.9px notice was 7.07:1 on white) */
.sg-eho{
  display:flex;align-items:flex-start;gap:10px;width:calc(100% - 2 * var(--sg-gutter));max-width:var(--sg-max);margin:18px auto 0;padding:0;
  font-size:12px;line-height:1.65;color:var(--sg-ink-2);text-align:left
}
.sg-eho svg{width:22px;height:22px;color:var(--sg-ink-2);margin-top:1px}
.sg-eho strong{font-weight:600;color:var(--sg-ink-2)}

/* ---------- Reveal motion (hooks unchanged) ---------- */
.gs-reveal{opacity:0;transform:translateY(30px)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- Tablet ---------- */
@media (max-width:1100px){
  :root{--sg-gutter:20px}
  .nav-links a{padding:8px 9px;font-size:13.5px}
  .hero-content{max-width:560px;margin-left:28px}
  .stat{padding:14px 16px 15px}
  .stat-num{font-size:26px;letter-spacing:-1px}
  .features-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:220px}
}
@media (max-width:960px){
  .options-grid{grid-template-columns:1fr;max-width:620px}
  .facts{grid-template-columns:1fr;column-gap:0}
  .fact:nth-last-child(-n+2){border-bottom:1px solid var(--sg-line)}
  .fact:last-child{border-bottom:0}
  .nav-links{display:none}
  /* template A keeps its section menu reachable once the links fold away */
  .burger{display:flex}
  .nav-cta-wrap{margin-left:auto}
}

/* ---------- Portrait tablet and phone: the photo on top, the words below it ---------- */
@media (max-width:900px){
  .hero{display:block;margin:0;min-height:0;padding:10px 10px 0;border-radius:0;overflow:visible;background:none;border:0;box-shadow:none}
  .hero-bg{position:relative;inset:auto;height:clamp(300px,56vh,560px);border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.9);box-shadow:var(--sg-shadow-photo)}
  .hero-overlay{inset:10px 10px auto;height:clamp(300px,56vh,560px);border-radius:24px;background:linear-gradient(180deg,rgba(18,58,82,.22) 0%,rgba(18,58,82,0) 30%)}
  .hero-content{max-width:none;margin:-48px calc(var(--sg-gutter) - 10px) 0;padding:28px 28px 26px;border-radius:20px}
  .stats,.stats-bar{margin-top:12px;padding:0 var(--sg-gutter)}
}

/* ---------- Phone ---------- */
@media (max-width:760px){
  :root{--sg-gutter:16px;--sg-gap:12px}
  body{font-size:15px;background-attachment:scroll}
  .nav{top:10px;left:10px;right:10px;height:58px;padding:0 8px 0 14px;border-radius:17px}
  .nav-logo{gap:10px}
  .nav-logo-mark{height:23px}
  .nav-logo-divider{height:22px}
  .nav-cta-wrap{display:none}
  .burger{display:flex}
  .nav-cta{min-height:40px;padding:9px 13px;font-size:13px}

  .hero-content{padding:24px 22px 22px}
  .hero h1,.hero-title{font-size:clamp(28px,8.2vw,36px);letter-spacing:-.026em;line-height:1.09;margin-bottom:12px}
  .hero-sub{font-size:15px;margin-bottom:20px}
  .hero-buttons,.hero-ctas{flex-direction:column;align-items:stretch}
  .hero-buttons .btn,.hero-ctas a{width:100%}

  .stats-row{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:0;overflow:hidden;background:rgba(210,227,238,.6);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:var(--sg-shadow)}
  .stat{border:0;padding:14px 16px 15px;background:rgba(255,255,255,.86)}
  .stat:first-child:nth-last-child(2n+1){grid-column:1/-1}
  .stat-num{font-size:24px;letter-spacing:-.8px}
  .stat-label{font-size:12px}

  .split,.statement-inner,.room-inner,.floorplan-inner,.location-inner{grid-template-columns:1fr;min-height:0;border-radius:20px}
  .split > .split-img,.split > .photo-grid,.statement-inner > .statement-img,.room-inner > .room-image,.room-inner.reverse .room-image{order:-1}
  .room-inner.reverse .room-text{order:0}
  .split > div:not(.split-img):not(.photo-grid):not(.map-box),
  .statement-inner > div:not(.statement-img),
  .room-inner > .room-text,
  .floorplan-inner > div:not(.floorplan-img),
  .location-inner > div:not(.location-map){padding:24px 22px 26px}
  .split-img,.statement-img,.room-image{height:auto;min-height:0;aspect-ratio:4/3}
  .room-image[style*="aspect-ratio:unset"]{aspect-ratio:auto!important}
  .photo-grid,.suite-photo-grid{height:auto;min-height:0;grid-template-rows:none;grid-auto-rows:clamp(116px,34vw,170px)}
  .map-box,.location-map{min-height:0;height:auto;aspect-ratio:1/1}
  .floorplan-img{margin:12px 12px 0;padding:12px}
  .floorplan-inner [style*="justify-content:space-between"]{flex-direction:column;align-items:flex-start!important;gap:3px}
  .floorplan-inner [style*="justify-content:space-between"] > span:last-child{text-align:left}

  .section h2,.statement-heading,.room-text h2,.room-heading,.features-header h2,.gallery-header h2,.location h2,.floorplan h2,.gallery-head h2{font-size:clamp(24px,7vw,30px)}
  .lede,.statement-body,.room-text p,.features-header p,.options-head p{font-size:15px}
  .options-head,.features-header{padding-top:calc(var(--sg-gap) * 2);margin-bottom:16px}
  .option{padding:24px 22px 22px}
  .option-price .amount{font-size:34px}
  .rooms,.features-grid{grid-template-columns:1fr;gap:12px}
  .room,.feature-card{padding:20px 20px 21px}
  .feature-card{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:14px;align-items:start}
  .feature-card .feature-icon{grid-row:1 / span 2;margin:0}
  .feature-card h3{margin:9px 0 6px}
  .facts-wrap{padding:22px 20px 20px}
  .fact{gap:14px}
  .fact dt{white-space:normal}

  .full-bleed{height:clamp(260px,52vh,420px);border-radius:20px}
  .property-details-strip{min-height:clamp(420px,70vh,560px);padding:12px;border-radius:20px}
  .pd-content{padding:20px 20px 18px;border-radius:16px}
  .full-bleed-text{left:12px;bottom:12px;max-width:calc(100% - 24px);padding:13px 15px}
  .full-bleed-text h3{font-size:18px}
  .full-bleed-text p{font-size:13px}

  section#gallery > .container,.gallery-section{padding:18px 14px 14px;border-radius:20px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(116px,34vw,160px);gap:6px}
  .gallery a:first-child{grid-column:1/-1;grid-row:span 2}
  .gallery a:last-child:nth-child(3n+1):not(:first-child),.gallery a:last-child:nth-child(3n+2){grid-column:auto}
  .gallery a:last-child:nth-child(even){grid-column:1/-1}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(116px,34vw,160px);gap:6px}
  .gal-item,.gallery a{border-radius:12px}
  .gallery-hint{display:none}

  .lb-body{padding:70px 12px 60px}
  .lb-img-wrap img,.lb-img,.lightbox-img{max-width:calc(100vw - 24px);max-height:calc(100vh - 190px);border-radius:12px}
  .lb-nav,.lightbox-nav{top:auto;bottom:18px;transform:none;width:44px;height:44px}
  .lb-nav:hover,.lightbox-nav:hover{transform:none}
  .lb-prev,.lightbox-prev{left:16px}
  .lb-next,.lightbox-next{right:16px}
  .lb-close,.lightbox-close{top:14px;right:14px}
  .lb-count{bottom:26px}

  .contact,.contact-cta{border-radius:20px}
  .contact-buttons{flex-direction:column;align-items:stretch}
  .contact-row{grid-template-columns:1fr;gap:10px}
  .two70-logo{width:150px}

  .footer-inner{flex-direction:column;align-items:flex-start;text-align:left}
  .footer-info,.footer-right{text-align:left}
  .mobile-menu a{font-size:24px}
}
@media (max-width:520px){
  /* Template B keeps the logo and the showing button in the bar; the address hides, as before */
  .nav-inner .nav-logo-text,.nav-inner .nav-logo-divider{display:none}
}

/* ---------- Accessibility preferences ---------- */
@media (hover:none){body{background-attachment:scroll}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .gs-reveal,.reveal{opacity:1!important;transform:none!important;transition:none!important}
  .gallery img,.gal-item img,.split-img img,.statement-img img,.room-image img,.suite-photo-grid img{transition:none}
  .loader-bar span{animation:none;width:100%}
}
@media (prefers-reduced-transparency:reduce){
  .nav,.hero-content,.stats-row,.full-bleed-text,.mobile-menu,.lightbox,.gal-zoom-icon{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fafdff}
  .split,.statement-inner,.room-inner,.floorplan-inner,.location-inner,.option,.room,.feature-card,.facts-wrap,
  section#gallery > .container,.gallery-section,.contact,.contact-cta{background:#fafdff}
}
@media print{
  .nav,.burger,.mobile-menu,.loader,.lightbox,.hero-scroll{display:none!important}
  body{background:#fff}
  .gs-reveal,.reveal{opacity:1!important;transform:none!important}
}
