/* Fonts are self-hosted; Latin and Latin Extended, including Swiss punctuation. */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/cormorant-garamond-300.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/cormorant-garamond-400.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/cormorant-garamond-500.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/cormorant-garamond-600.woff2') format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:200;font-display:swap;src:url('../fonts/jost-200.woff2') format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/jost-300.woff2') format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/jost-400.woff2') format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/jost-500.woff2') format('woff2')}
:root{
  /* grounds */
  --ab-bone:        #FBF9F4;  /* default page background, light text on dark */
  --ab-sand:        #EDE7DB;  /* alternating section ground, cards on bone */
  --ab-slate:       #3C4448;  /* dark sections: Wohnungen, Zeitplan, Kontakt, drawer */
  --ab-slate-deep:  #333A3D;  /* footer only */
  --ab-ink:         #22272A;  /* headings, solid buttons, timeline cards */
  --ab-hero-fallback:#2E3639; /* hero background behind the video */

  /* accents */
  --ab-blue:        #3D6B84;  /* links, eyebrows, focus, button hover */
  --ab-blue-soft:   #8A9AA3;  /* logo middle wave */
  --ab-gold:        #C6B79D;  /* prices, dark-section eyebrows, active unit */
  --ab-gold-ink:    #8A7F68;  /* gold text on light ground (badge) */
  --ab-green:       #8FAE8F;  /* "Verfügbar" status */
  --ab-bus:         #5A7385;  /* map bus marker */

  /* text on light */
  --ab-text:        #22272A;
  --ab-text-1:      #3A3E40;  /* lede paragraph */
  --ab-text-2:      #4A4E50;  /* nav links */
  --ab-text-3:      #5A5D5E;  /* Lage paragraph */
  --ab-text-4:      #6C6B64;  /* body copy */
  --ab-muted:       #8A8578;  /* labels, captions */
  --ab-muted-2:     #A9A395;  /* numerals, hints */
  --ab-muted-3:     #A09A8C;  /* fine print */
  --ab-placeholder: #DDD6C8;  /* image box before load */

  /* hairlines — always alpha, never solid grey */
  --ab-line-dark:   rgba(34,39,42,.09);  /* header bottom */
  --ab-line:        rgba(34,39,42,.12);  /* spec grid */
  --ab-line-2:      rgba(34,39,42,.14);  /* cards, map frame */
  --ab-line-3:      rgba(34,39,42,.2);   /* inactive tab */
  --ab-line-4:      rgba(34,39,42,.26);  /* outline button */
  --ab-line-input:  rgba(34,39,42,.28);  /* form underline */
  --ab-line-light:  rgba(251,249,244,.16);/* on dark grounds */
}
:root {
  --ab-shadow-map: 0 30px 70px -40px rgba(20,24,26,.4);
  --ab-shadow-drop: 0 26px 60px -26px rgba(16,20,22,.5);
  --ab-shadow-pin: 0 8px 18px rgba(16,20,22,.4);
}

/* Reset and base. */
html, body { margin: 0; padding: 0; background: var(--ab-bone); }
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { color: var(--ab-text); font-family: 'Jost', sans-serif; font-weight: 300; }
a { color: var(--ab-blue); text-decoration: none; }
a:hover { color: var(--ab-ink); }
input, textarea, button, select { font: inherit; border-radius: 0; }
button, summary { cursor: pointer; }
button { color: inherit; }
img, video { max-width: 100%; height: auto; }
svg { display: block; flex: none; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-family: 'Cormorant Garamond', serif; text-wrap: pretty; }
h1, h2 { font-weight: 300; }
h2 { font-size: clamp(30px, 4.2vw, 58px); line-height: 1.06; }
h3 { font-weight: 400; line-height: 1.1; }
::selection { background: var(--ab-gold); color: var(--ab-ink); }
:focus-visible { outline: 2px solid var(--ab-blue); outline-offset: 2px; }
:where(section[id]) { scroll-margin-top: clamp(66px, 7vw, 82px); }

/* Layout primitives. */
.ab-container { width: 100%; max-width: 1360px; margin-inline: auto; padding-inline: clamp(20px, 3.2vw, 44px); }
.ab-section { padding-block: clamp(60px, 8vw, 130px); }
.ab-section--sand { background: var(--ab-sand); }
.ab-section--slate { background: var(--ab-slate); color: var(--ab-bone); }
.ab-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(28px, 4vw, 58px); }
.ab-eyebrow { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; color: var(--ab-blue); font-size: 10.5px; font-weight: 400; letter-spacing: .32em; text-transform: uppercase; }
.ab-eyebrow__rule { width: 30px; height: 1px; background: currentColor; flex: none; }
.ab-section--slate .ab-eyebrow { color: var(--ab-gold); }
.ab-grid-hairline { display: grid; gap: 1px; background: var(--ab-line); }

/* Shared components. */
.ab-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 56px; padding: 0 28px; border: 1px solid transparent; border-radius: 0; font-size: 12px; font-weight: 400; letter-spacing: .18em; text-transform: uppercase; text-align: center; transition: background .3s, color .3s, border-color .3s; }
.ab-btn--solid { background: var(--ab-ink); color: var(--ab-bone); }
.ab-btn--solid:hover { background: var(--ab-blue); color: var(--ab-bone); }
.ab-btn--outline { background: transparent; border-color: var(--ab-line-4); color: var(--ab-ink); }
.ab-btn--outline:hover { background: var(--ab-ink); border-color: var(--ab-ink); color: var(--ab-bone); }
.ab-btn--ghost { background: transparent; color: var(--ab-bone); border-color: rgba(251,249,244,.45); }
.ab-btn--ghost:hover { color: var(--ab-bone); background: rgba(251,249,244,.14); border-color: var(--ab-bone); }
.ab-badge { display: inline-flex; align-items: center; gap: 9px; border: 1px solid rgba(198,183,157,.75); border-radius: 999px; padding: 7px 15px; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--ab-gold-ink); }
.ab-badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--ab-gold); }
.ab-figure { margin: 0; overflow: hidden; background: var(--ab-placeholder); }
.ab-figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ab-rows { display: grid; gap: 1px; background: var(--ab-line-2); }
.ab-rows__row { display: flex; justify-content: space-between; gap: 14px; background: var(--ab-bone); }
.ab-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.ab-skip-link { position: fixed; top: 0; left: 0; z-index: 120; padding: 14px 18px; background: var(--ab-bone); transform: translateY(-110%); }
.ab-skip-link:focus { transform: translateY(0); }

/* Fixed header, download dropdown and mobile drawer. */
.ab-sprite { position: absolute; overflow: hidden; }
.ab-icon--signet { width: 54px; height: 23px; }
.ab-icon--download { width: 15px; height: 15px; fill: none; stroke: var(--ab-blue); stroke-width: 1.5; }
.ab-icon--chevron { width: 10px; height: 10px; fill: none; stroke: var(--ab-muted); stroke-width: 2; }
.ab-header { position: fixed; inset: 0 0 auto; z-index: 70; background: rgba(251,249,244,.92); backdrop-filter: blur(16px); border-bottom: 1px solid var(--ab-line-dark); }
.ab-header__inner { max-width: 1360px; margin-inline: auto; padding: 0 clamp(18px,3.2vw,44px); min-height: clamp(66px,7vw,82px); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ab-logo { display: flex; align-items: center; gap: 12px; flex: none; }
.ab-logo__type { display: flex; flex-direction: column; line-height: 1; }
.ab-logo__name { font-family: 'Cormorant Garamond',serif; font-weight: 500; font-size: clamp(17px,2vw,21px); letter-spacing: .2em; color: var(--ab-ink); padding-left: .2em; }
.ab-logo__place { font-size: 8.5px; letter-spacing: .42em; color: var(--ab-blue); margin-top: 5px; padding-left: .42em; }
.ab-nav-desktop { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: clamp(10px,1.3vw,24px); padding: 8px 0; min-width: 0; }
.ab-nav-desktop__link { font-size: clamp(11px,1.05vw,12.5px); font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: var(--ab-text-2); white-space: nowrap; transition: color .3s; }
.ab-nav-desktop__link:hover { color: var(--ab-ink); }
.ab-header__cta { height: 44px; min-height: 44px; padding: 0 clamp(16px,2vw,26px); font-size: clamp(11px,1.05vw,12px); letter-spacing: .16em; white-space: nowrap; }
.ab-header__toggle { display: none; flex-direction: column; justify-content: center; gap: 6px; width: 48px; height: 48px; padding: 0 12px; background: transparent; border: none; flex: none; }
.ab-header__toggle span { display: block; width: 100%; height: 1px; background: var(--ab-ink); }
.ab-header__toggle span:last-child { width: 60%; }
.ab-downloads { position: relative; flex: none; }
.ab-downloads__toggle { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 15px; border: 1px solid rgba(34,39,42,.24); background: transparent; color: var(--ab-ink); font-size: 10.5px; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; transition: background .3s, border-color .3s; }
.ab-downloads__toggle .ab-icon--download { width: 14px; height: 14px; stroke-width: 1.6; }
.ab-downloads__toggle:hover { background: var(--ab-sand); border-color: var(--ab-ink); }
.ab-downloads__panel { position: absolute; top: calc(100% + 11px); right: 0; min-width: 272px; background: var(--ab-bone); border: 1px solid rgba(34,39,42,.16); box-shadow: var(--ab-shadow-drop); z-index: 80; display: flex; flex-direction: column; transition: opacity .22s, transform .22s, visibility .22s; }
.js .ab-downloads__panel { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-8px); }
.js .ab-downloads.is-open .ab-downloads__panel { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.ab-downloads__item { display: flex; align-items: center; gap: 13px; padding: 14px 18px; border-bottom: 1px solid var(--ab-line-dark); color: var(--ab-ink); transition: background .3s; }
.ab-downloads__item:last-child { border-bottom: 0; }
.ab-downloads__item:hover { background: var(--ab-sand); }
.ab-downloads__text { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.ab-downloads__label { font-size: 14px; font-weight: 300; line-height: 1.2; }
.ab-downloads__sub { font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--ab-muted); }
.ab-drawer { position: fixed; inset: 0; z-index: 100; background: var(--ab-slate); color: var(--ab-bone); padding: 20px 22px 32px; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .25s, visibility .25s; }
.ab-drawer.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.ab-drawer__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: clamp(24px,6vh,48px); flex: none; }
.ab-logo--drawer .ab-logo__name { color: var(--ab-bone); font-size: 18px; }
.ab-drawer__close { width: 48px; height: 48px; background: transparent; border: 1px solid rgba(251,249,244,.24); color: var(--ab-bone); font-size: 20px; line-height: 1; }
.ab-drawer__nav { background: rgba(251,249,244,.14); flex: none; }
.ab-drawer__nav a { background: var(--ab-slate); padding: clamp(14px,2.2vh,20px) 2px; font-family: 'Cormorant Garamond',serif; font-size: clamp(23px,6.5vw,30px); font-weight: 300; color: var(--ab-bone); letter-spacing: .01em; }
.ab-drawer__downloads { margin-top: auto; background: rgba(251,249,244,.22); border: 1px solid rgba(251,249,244,.22); flex: none; }
.ab-drawer__downloads a { display: flex; align-items: center; gap: 12px; height: 54px; padding: 0 15px; background: var(--ab-slate); color: var(--ab-bone); font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; }
.ab-drawer__downloads .ab-icon--download { stroke: var(--ab-gold); stroke-width: 1.6; }
.ab-drawer__cta { height: 58px; min-height: 58px; margin-top: 14px; background: var(--ab-bone); color: var(--ab-ink); letter-spacing: .2em; flex: none; }
/* Without JS the links remain available in normal document flow. */
html:not(.js) .ab-header { position: static; }
html:not(.js) .ab-downloads__toggle { display: none; }
html:not(.js) .ab-downloads__panel { position: static; }
/* Preserve WordPress's admin toolbar when viewing the page while signed in. */
.admin-bar .ab-header { top: var(--wp-admin--admin-bar--height, 32px); }


/* Hero. Measurements follow SECTIONS.md, tokens, then the reference styles. */
.ab-hero { position: relative; min-height: 100svh; display: flex; flex-direction: column; overflow: hidden; background: var(--ab-hero-fallback); color: var(--ab-bone); }
.ab-hero__poster, .ab-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ab-hero__video { z-index: 1; }
.ab-hero__scrim { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.ab-hero__scrim--vertical { background: linear-gradient(180deg,rgba(18,22,24,.22) 0%,rgba(18,22,24,0) 32%,rgba(18,22,24,.18) 68%,rgba(18,22,24,.5) 100%); }
.ab-hero__scrim--horizontal { background: linear-gradient(90deg,rgba(18,22,24,.24) 0%,rgba(18,22,24,.05) 46%,rgba(18,22,24,0) 78%); }
.ab-hero__content { position: relative; z-index: 3; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(112px,20vw,180px) clamp(20px,3.2vw,44px) clamp(40px,5vw,72px); }
.ab-hero__eyebrow { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; font-size: clamp(9.5px,1.1vw,11px); font-weight: 400; letter-spacing: .3em; text-transform: uppercase; color: #E4DCCC; }
.ab-hero__eyebrow span { width: 36px; height: 1px; background: var(--ab-gold); flex: none; }
.ab-hero__title { font-weight: 300; font-size: clamp(42px,7.4vw,124px); line-height: 1; letter-spacing: -.015em; color: var(--ab-bone); text-shadow: 0 2px 24px rgba(16,20,22,.42); margin: 0 0 24px; max-width: 14ch; }
.ab-hero__lede { font-size: clamp(15.5px,1.35vw,19.5px); font-weight: 300; line-height: 1.7; color: #F4F1EA; text-shadow: 0 1px 16px rgba(16,20,22,.5); margin: 0 0 32px; max-width: 54ch; }
.ab-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.ab-hero__actions .ab-btn { flex: 1 1 240px; max-width: 340px; height: 56px; padding: 0 28px; }
.ab-hero__primary { background: var(--ab-bone); color: var(--ab-ink); }
.ab-hero__primary:hover { background: var(--ab-gold); color: var(--ab-ink); }
.ab-hero__facts { position: relative; z-index: 4; border-top: 1px solid var(--ab-line-light); background: rgba(18,22,24,.3); backdrop-filter: blur(10px); }
.ab-hero__facts-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); margin-block: 0; }
.ab-hero__fact { display: flex; flex-direction: column; gap: 7px; padding: 16px 18px; border-left: 1px solid rgba(251,249,244,.14); }
.ab-hero__fact dt { overflow-wrap: anywhere; hyphens: auto; font-size: 9.5px; letter-spacing: .22em; text-transform: uppercase; color: rgba(251,249,244,.75); line-height: 1.5; }
.ab-hero__fact dd { order: -1; margin: 0; font-family: 'Cormorant Garamond',serif; font-size: clamp(18px,2vw,27px); font-weight: 400; line-height: 1.15; }
@keyframes riseIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
/* Token-specified delays take precedence over the prototype's duration-only shorthand. */
.js .ab-hero__eyebrow { animation: riseIn .9s ease-out .9s both; }
.js .ab-hero__title { animation: riseIn 1.05s ease-out 1.05s both; }
.js .ab-hero__lede { animation: riseIn 1.25s ease-out 1.25s both; }
.js .ab-hero__actions { animation: riseIn 1.45s ease-out 1.45s both; }

/* Static sections. */
.ab-project { padding-block:clamp(60px,8vw,118px); border-bottom:1px solid rgba(34,39,42,.08); }
.ab-project__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:clamp(28px,6vw,100px); align-items:start; }
.ab-project h2 { max-width:14ch; }
.ab-project__accent { font-family:'Cormorant Garamond',serif; font-size:clamp(19px,1.9vw,26px); line-height:1.35; color:var(--ab-blue); margin-top:18px; max-width:22ch; text-wrap:pretty; }
.ab-project__text { display:grid; gap:20px; }
.ab-project__text p { max-width:58ch; font-size:clamp(16px,1.35vw,19px); line-height:1.85; color:var(--ab-text-1); }
.ab-project__text p+p { font-size:clamp(15px,1.3vw,18px); color:var(--ab-text-4); }
.ab-key-figures__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(165px,1fr)); margin-block:0; }
.ab-key-figures__grid>div { display:flex; flex-direction:column; gap:12px; padding:clamp(26px,4vw,54px) clamp(16px,2vw,28px); border-right:1px solid rgba(34,39,42,.1); border-bottom:1px solid rgba(34,39,42,.1); }
.ab-key-figures dt { font-size:10.5px; letter-spacing:.2em; line-height:1.6; text-transform:uppercase; color:var(--ab-muted); }
.ab-key-figures dd { order:-1; margin:0; font-family:'Cormorant Garamond',serif; font-size:clamp(25px,2.7vw,44px); line-height:1.08; font-weight:400; }
.ab-architecture__cta { height:46px; min-height:46px; padding:0 26px; }
.ab-architecture__track { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(20px,2.4vw,34px); }
.ab-pillar .ab-figure { aspect-ratio:4/3; }
.ab-pillar h3 { font-size:clamp(22px,1.9vw,28px); margin:22px 0 10px; }
.ab-pillar p { font-size:15.5px; line-height:1.8; max-width:42ch; color:var(--ab-text-4); }
.ab-swipe-hint { display:none; font-size:10px; letter-spacing:.16em; color:var(--ab-muted-2); margin-top:18px; }
.ab-positioning { position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ab-positioning__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 60%; }
.ab-positioning__scrim { position:absolute; inset:0; background:linear-gradient(180deg,rgba(18,22,24,.12),rgba(18,22,24,.34)); }
.ab-positioning__content { position:relative; z-index:2; padding:clamp(64px,10vw,130px) clamp(20px,4vw,44px); max-width:34ch; text-align:center; }
.ab-positioning h2 { font-size:clamp(28px,3.4vw,50px); line-height:1.15; color:var(--ab-bone); margin-bottom:20px; }
.ab-positioning p { font-size:clamp(15px,1.35vw,19px); line-height:1.85; color:#F1EDE4; margin-bottom:24px; text-wrap:pretty; }
.ab-positioning span { font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--ab-gold); }
.ab-intro { font-size:14.5px; line-height:1.8; max-width:32ch; color:var(--ab-muted); }
.ab-interiors { display:flex; flex-direction:column; gap:clamp(36px,5.5vw,92px); }
.ab-interior { display:grid; grid-template-columns:1.35fr 1fr; gap:clamp(30px,4.5vw,74px); align-items:center; }
.ab-interior:nth-child(even) { grid-template-columns:1fr 1.35fr; }
.ab-interior:nth-child(even) .ab-interior__media { order:2; }
.ab-interior__media { aspect-ratio:16/10; }
.ab-ordinal { font-family:ui-monospace,Menlo,monospace; font-size:10px; letter-spacing:.18em; color:var(--ab-muted-2); }
.ab-interior h3 { font-size:clamp(26px,2.6vw,38px); margin:14px 0; }
.ab-interior p { font-size:15.5px; line-height:1.85; max-width:44ch; margin-bottom:20px; color:var(--ab-text-4); }
.ab-interior__meta { display:inline-flex; border-top:1px solid rgba(34,39,42,.16); padding-top:14px; font-size:11px; letter-spacing:.16em; color:var(--ab-blue); }
.ab-specs { grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr)); border:1px solid var(--ab-line); margin:0; }
.ab-specs>div { padding:24px 26px; background:var(--ab-bone); }
.ab-specs dt { font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--ab-blue); margin-bottom:11px; }
.ab-specs dd { margin:0; font-size:15.5px; line-height:1.7; }
.ab-docs { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:clamp(14px,2vw,26px); margin-top:clamp(24px,3.4vw,46px); }
.ab-doc { display:flex; flex-direction:column; justify-content:space-between; gap:30px; min-height:170px; padding:26px; background:var(--ab-sand); color:var(--ab-ink); transition:background .3s,color .3s,transform .3s; }
.ab-doc:hover { background:var(--ab-ink); color:var(--ab-bone); transform:translateY(-3px); }
.ab-doc .ab-ordinal { color:inherit; opacity:.55; }
.ab-doc__title { display:block; font-family:'Cormorant Garamond',serif; font-size:26px; margin-bottom:8px; }
.ab-doc__action { font-size:11.5px; letter-spacing:.16em; opacity:.6; }
.ab-timeline { padding-block:clamp(60px,8vw,120px); }
.ab-timeline .ab-badge { border-color:rgba(198,183,157,.45); color:var(--ab-gold); }
.ab-timeline__track { display:flex; flex-wrap:wrap; gap:1px; background:var(--ab-line-light); border-top:1px solid var(--ab-line-light); list-style:none; padding:0; margin:0; }
.ab-timeline li { flex:1 1 170px; min-width:0; background:var(--ab-ink); padding:26px 22px 28px; }
.ab-timeline__dot { display:block; width:9px; height:9px; border-radius:50%; border:1px solid rgba(251,249,244,.4); margin-bottom:20px; }
.ab-timeline__dot.is-done { background:var(--ab-gold); border-color:var(--ab-gold); }
.ab-timeline h3 { font-size:23px; margin-bottom:7px; }
.ab-timeline li p { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(251,249,244,.72); }
.ab-consultation { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:clamp(28px,6vw,90px); align-items:center; }
.ab-consultation h2 { max-width:16ch; margin-bottom:22px; }
.ab-consultation__text { display:grid; gap:18px; margin-bottom:30px; }
.ab-consultation__text p { max-width:46ch; font-size:clamp(15.5px,1.3vw,17px); line-height:1.85; color:var(--ab-text-4); }
.ab-consultation .ab-btn { padding-inline:32px; }
.ab-agency { border:1px solid var(--ab-line-2); padding:clamp(22px,3vw,44px); background:var(--ab-sand); display:flex; flex-wrap:wrap; gap:clamp(20px,3vw,40px); align-items:center; }
.ab-agency__inner { flex:1 1 210px; min-width:0; }
.ab-agency h3 { font-size:clamp(24px,2.4vw,32px); line-height:1.15; margin-bottom:6px; }
.ab-agency__role { font-size:11px; letter-spacing:.18em; color:var(--ab-blue); margin-bottom:20px; }
.ab-agency .ab-rows { margin:0; }
.ab-agency .ab-rows__row { background:var(--ab-sand); padding:12px 0; flex-wrap:wrap; font-size:14px; }
.ab-rows dd { margin:0; overflow-wrap:anywhere; }
.ab-footer { background:var(--ab-slate-deep); padding:clamp(44px,6vw,84px) 0 32px; color:rgba(251,249,244,.72); }
.ab-footer__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:clamp(26px,4vw,60px); padding-bottom:clamp(30px,4vw,56px); border-bottom:1px solid rgba(251,249,244,.12); }
.ab-logo--footer { margin-bottom:22px; }
.ab-logo--footer .ab-logo__name { color:var(--ab-bone); font-size:16px; }
.ab-logo__tagline { font-size:7.5px; letter-spacing:.36em; margin-top:5px; padding-left:.36em; color:var(--ab-gold); }
.ab-footer h2 { font-family:'Jost',sans-serif; font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--ab-gold); margin-bottom:16px; }
.ab-footer__links { display:flex; flex-direction:column; gap:10px; }
.ab-footer a { color:rgba(251,249,244,.78); }
.ab-footer a:hover { color:var(--ab-bone); }
.ab-footer__blurb,.ab-footer__credits,.ab-footer__marketing,.ab-footer__contact,.ab-footer__links { font-size:14px; line-height:1.8; }
.ab-footer__blurb { max-width:26ch; }
.ab-footer__contact { display:flex; flex-direction:column; gap:6px; font-style:normal; overflow-wrap:anywhere; }
.ab-footer__marketing { white-space:nowrap; }
.ab-footer__bottom { display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; padding-top:24px; }
.ab-footer__bottom p { font-size:11.5px; color:rgba(251,249,244,.34); }
.ab-footer__legal { display:flex; flex-wrap:wrap; gap:16px; font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; }

.ab-units h2 { max-width:18ch; }
.ab-units__intro { max-width:34ch; font-size:14.5px; line-height:1.8; color:rgba(251,249,244,.75); }
.ab-units__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr)); gap:clamp(24px,4vw,72px); align-items:start; }
.ab-units__stack { display:flex; flex-direction:column; gap:8px; }
.ab-units__floor { display:grid; grid-template-columns:clamp(44px,8vw,80px) 1fr 1fr; gap:8px; align-items:stretch; }
.ab-units__floor-label { align-self:center; font-size:10.5px; letter-spacing:.14em; color:rgba(251,249,244,.42); }
.ab-unit-btn { display:flex; flex-direction:column; gap:8px; align-items:flex-start; padding:18px 16px; border:1px solid rgba(251,249,244,.18); color:rgba(251,249,244,.72); transition:background .3s,border-color .3s,color .3s; }
.ab-unit-btn span { font-family:'Cormorant Garamond',serif; font-size:20px; }
.ab-unit-btn small { font-size:10.5px; text-transform:uppercase; letter-spacing:.14em; opacity:.7; }
.ab-unit-btn.is-selected,.ab-unit-btn:hover { border-color:var(--ab-gold); background:rgba(198,183,157,.14); color:var(--ab-bone); }
.ab-units__parking { border:1px dashed rgba(251,249,244,.2); padding:16px 18px; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-top:8px; font-size:11px; line-height:1.7; color:rgba(251,249,244,.72); }
.ab-units__panels { display:grid; gap:24px; }
.ab-unit-panel { border:1px solid var(--ab-line-light); padding:clamp(24px,3vw,42px); background:rgba(251,249,244,.03); scroll-margin-top:90px; }
.js .ab-unit-panel:not(.is-selected) { display:none; }
.ab-unit-panel__label { font-size:10.5px; letter-spacing:.28em; text-transform:uppercase; color:var(--ab-gold); margin-bottom:14px; }
.ab-unit-panel h3 { font-size:clamp(28px,3.4vw,46px); margin-bottom:24px; }
.ab-unit-panel .ab-rows { margin:0 0 26px; background:rgba(251,249,244,.14); }
.ab-unit-panel .ab-rows__row { background:var(--ab-slate); padding:14px 0; font-size:14px; }
.ab-unit-panel dt { color:rgba(251,249,244,.72); }
.ab-unit-panel dd { text-align:right; }
.ab-unit-panel__price { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; margin-bottom:24px; gap:14px; }
.ab-unit-panel__price>span { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:rgba(251,249,244,.72); }
.ab-unit-panel__price strong { font-family:'Cormorant Garamond',serif; font-size:clamp(26px,2.6vw,38px); font-weight:400; color:var(--ab-gold); }
.ab-unit-panel .ab-btn { width:100%; }
.ab-units__table { margin-top:clamp(40px,5vw,72px); }
.ab-units__table-head,.ab-unit-row { display:grid; grid-template-columns:1.1fr .7fr .9fr 1.1fr 1fr .8fr; align-items:center; }
.ab-units__table-head { padding:0 4px 14px; border-bottom:1px solid rgba(251,249,244,.18); color:rgba(251,249,244,.48); font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.ab-unit-row { padding:20px 4px; border-bottom:1px solid rgba(251,249,244,.1); border-left:2px solid transparent; color:var(--ab-bone); font-size:14.5px; transition:background .3s,border-color .3s,padding-left .3s; }
.ab-unit-row.is-selected { border-left-color:var(--ab-gold); padding-left:14px; background:rgba(251,249,244,.05); }
.ab-unit-row:hover { color:var(--ab-bone); background:rgba(251,249,244,.05); }
.ab-unit-row>span:first-child { font-family:'Cormorant Garamond',serif; font-size:24px; }
.ab-unit-row>span:last-child { color:var(--ab-green); }
.ab-units__table-head>span:last-child,.ab-unit-row>span:last-child { text-align:right; }
.ab-room-program { margin-top:clamp(40px,5vw,72px); border-top:1px solid var(--ab-line-light); padding-top:clamp(28px,3.4vw,44px); }
.ab-room-program__head { display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; margin-bottom:24px; }
.ab-room-program__head h3 { font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ab-gold); }
.ab-room-program__head p { font-size:12px; color:rgba(251,249,244,.72); }
.ab-room-program__grid { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); background:rgba(251,249,244,.14); margin:0; }
.ab-room-program__grid>div { display:flex; flex-direction:column; gap:10px; background:var(--ab-slate); padding:18px 20px 20px; }
.ab-room-program dt { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:rgba(251,249,244,.72); }
.ab-room-program dd { order:-1; margin:0; font-family:'Cormorant Garamond',serif; font-size:21px; }

.ab-gal__filters { display:flex; gap:8px; flex-wrap:wrap; }
html:not(.js) .ab-gal__filters { display:none; }
.ab-gal__filter { height:38px; padding:0 18px; border:1px solid var(--ab-line-3); background:transparent; color:var(--ab-ink); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; transition:background .3s,color .3s; }
.ab-gal__filter.is-active { background:var(--ab-ink); color:var(--ab-bone); }
.ab-gal__grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:clamp(10px,1.4vw,18px); }
.ab-gal__figure { position:relative; margin:0; overflow:hidden; background:var(--ab-placeholder); grid-column:span 2; aspect-ratio:4/5; }
.ab-gal__figure[hidden] { display:none; }
.ab-gal__pattern-0 { grid-column:span 4; aspect-ratio:16/9; }
.ab-gal__pattern-5,.ab-gal__pattern-6 { grid-column:span 3; aspect-ratio:3/2; }
.ab-gal__open { display:block; position:absolute; inset:0; cursor:zoom-in; }
.ab-gal__open:focus-visible { outline-offset:-4px; }
.ab-gal__figure img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 900ms cubic-bezier(.2,.7,.2,1); }
.ab-gal__figure:hover img { transform:scale(1.04); }
.ab-gal__figure figcaption { position:absolute; left:0; right:0; bottom:0; padding:16px 18px; background:linear-gradient(180deg,rgba(20,24,26,0),rgba(20,24,26,.74)); color:var(--ab-bone); font-size:11px; letter-spacing:.14em; text-transform:uppercase; pointer-events:none; }
.ab-lightbox { position:fixed; inset:0; z-index:110; background:rgba(16,19,21,.95); display:flex; align-items:center; justify-content:center; padding:clamp(16px,5vw,72px); cursor:zoom-out; visibility:hidden; opacity:0; pointer-events:none; }
.ab-lightbox.is-open { visibility:visible; opacity:1; pointer-events:auto; }
.ab-lightbox__image { width:100%; height:82vh; object-fit:contain; filter:drop-shadow(0 40px 90px rgba(0,0,0,.5)); }
.ab-lightbox button { position:absolute; top:50%; width:48px; height:48px; border:1px solid rgba(251,249,244,.3); background:rgba(16,19,21,.5); color:var(--ab-bone); font-size:18px; }
.ab-lightbox__previous { left:clamp(10px,3vw,28px); }
.ab-lightbox__next { right:clamp(10px,3vw,28px); }
.ab-lightbox__caption { position:absolute; left:0; right:0; bottom:22px; text-align:center; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(251,249,244,.6); padding:0 20px; }

/* Location. The supplied map document is preserved verbatim. */
.ab-location__head { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:clamp(24px,5vw,80px); align-items:end; margin-bottom:clamp(26px,3.6vw,50px); }
.ab-location h2 { max-width:16ch; }
.ab-location__head>p { max-width:50ch; font-size:clamp(15.5px,1.3vw,17px); line-height:1.85; color:var(--ab-text-3); }
.ab-location__map { border:1px solid var(--ab-line-2); background:var(--ab-bone); box-shadow:var(--ab-shadow-map); }
.ab-location iframe { display:block; width:100%; height:clamp(600px,76vh,780px); border:0; }
.ab-location__facts { grid-template-columns:repeat(auto-fit,minmax(165px,1fr)); background:var(--ab-line-2); margin:clamp(20px,3vw,40px) 0 0; }
.ab-location__facts>div { display:flex; flex-direction:column; gap:11px; background:var(--ab-sand); padding:24px 22px; }
.ab-location__facts dt { font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ab-muted); line-height:1.6; }
.ab-location__facts dd { order:-1; margin:0; font-family:'Cormorant Garamond',serif; font-size:clamp(24px,2.4vw,30px); font-weight:400; line-height:1.1; }
.ab-location__note { margin-top:14px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ab-muted-3); }

/* Contact. */
.ab-contact { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:clamp(28px,6vw,90px); align-items:start; }
.ab-contact h2 { max-width:16ch; }
.ab-contact__text { max-width:44ch; margin:22px 0 36px; font-size:clamp(15.5px,1.3vw,17px); line-height:1.85; color:rgba(251,249,244,.7); }
.ab-contact .ab-rows { background:var(--ab-line-light); }
.ab-contact .ab-rows__row { background:var(--ab-slate); padding:15px 0; }
.ab-contact .ab-rows dt { font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:rgba(251,249,244,.72); }
.ab-contact .ab-rows dd { font-size:15.5px; }
.ab-contact .ab-rows a { color:inherit; }
.ab-contact__card { background:var(--ab-bone); color:var(--ab-ink); padding:clamp(26px,3.6vw,52px) clamp(20px,3.2vw,48px); }
.ab-contact__names { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr)); gap:20px; margin-bottom:20px; }
.ab-contact__field>label { display:block; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:#8A8578; margin-bottom:9px; }
.ab-contact__field input,.ab-contact__field select,.ab-contact__field textarea { width:100%; min-width:0; height:50px; border:0; border-bottom:1px solid rgba(34,39,42,.28); background:transparent; color:var(--ab-ink); font:inherit; font-size:16px; border-radius:0; }
.ab-contact__field input:focus,.ab-contact__field select:focus,.ab-contact__field textarea:focus { border-bottom-color:#3D6B84; }
.ab-contact__field--email,.ab-contact__field--topic { margin-bottom:20px; }
.ab-contact__field--message { margin-bottom:28px; }
.ab-contact__field textarea { height:auto; resize:none; padding:8px 0; }
.ab-contact__card .ab-btn { width:100%; height:58px; }
.ab-contact__privacy { font-size:12px; line-height:1.7; color:#8A8578; margin-top:16px; }
.ab-contact__success { min-height:400px; display:flex; flex-direction:column; justify-content:center; }
.ab-contact__success .ab-icon { width:78px; height:33px; margin-bottom:22px; }
.ab-contact__success h3 { font-size:30px; margin-bottom:12px; }
.ab-contact__success p { font-size:16px; line-height:1.8; }
.ab-contact__trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.ab-contact__error { font-size:12px; color:#B4553F; margin-top:8px; }
.ab-contact__summary { margin-bottom:20px; }
.ab-contact__field [aria-invalid="true"] { border-bottom-color:#B4553F; }

@media (max-width: 1039.98px) {
  .ab-gal__grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:14px; margin:0 -20px; padding:0 20px 6px; }
  .ab-gal__figure { flex:0 0 84%; scroll-snap-align:center; aspect-ratio:4/3; }
  .ab-units__table { display:none; }
  .ab-architecture__track { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; margin:0 -20px; padding:0 20px 6px; -webkit-overflow-scrolling:touch; }
  .ab-pillar { flex:0 0 82%; scroll-snap-align:start; }
  .ab-swipe-hint { display:block; }
  .ab-interior { display:flex; flex-direction:column; gap:22px; align-items:stretch; }
  .ab-interior:nth-child(even) .ab-interior__media { order:0; }
  .ab-hero__video { display: none; }
  .ab-nav-desktop { display: none; }
  .js .ab-header__toggle { display: flex; }
  html:not(.js) .ab-drawer { position: static; opacity: 1; visibility: visible; pointer-events: auto; }
  html:not(.js) .ab-drawer__close { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ab-hero__video { display: none; }
  .js .ab-hero__eyebrow, .js .ab-hero__title, .js .ab-hero__lede, .js .ab-hero__actions { animation: none; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

@media print {
  html, body { background: #fff; }
  .ab-hero { min-height: auto; }
  .ab-hero__video { display: none; }
  .js .ab-hero__eyebrow, .js .ab-hero__title, .js .ab-hero__lede, .js .ab-hero__actions { animation: none; }
  .ab-header, .ab-drawer, .ab-skip-link, .ab-lightbox { display: none; }
}









