/* Upcoming Projects — distinct portfolio experience */
.desktop-nav { gap: 27px; }

.mobile-menu-upcoming { display: none; }

.under-design-visual {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 390px;
  padding: 72px 40px 42px;
  overflow: hidden;
  color: white;
  background: radial-gradient(circle at 50% 42%, rgba(27, 89, 101, .82) 0 25%, transparent 26%), linear-gradient(145deg, #092f3b, #041f28);
}
.under-design-grid { position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.13) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.13) 1px, transparent 1px); background-size: 44px 44px; mask-image: linear-gradient(135deg, black, transparent 88%); }
.under-design-badge { position: absolute; top: 28px; left: 28px; z-index: 2; padding: 11px 17px; color: var(--teal-deep); background: var(--sand-light); border-radius: 999px; font-size: 8px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.under-design-mark { position: relative; z-index: 1; display: grid; place-items: center; width: 92px; height: 92px; margin-bottom: 34px; color: var(--sand-light); border: 1px solid rgba(234,223,206,.7); border-radius: 50%; }
.under-design-mark::before { content: ""; position: absolute; top: 25px; width: 33px; height: 33px; border: 1px solid currentColor; border-top: 0; transform: rotate(45deg); }
.under-design-mark i { position: absolute; top: 38px; width: 42px; height: 31px; background: #0d3b4a; border: 1px solid currentColor; }
.under-design-mark b { position: relative; z-index: 1; margin-top: 14px; font-family: var(--serif); font-size: 17px; font-weight: 400; }
.under-design-rule { position: relative; z-index: 1; width: min(330px, 74%); height: 1px; margin-bottom: 24px; background: rgba(234,223,206,.56); }
.under-design-visual > strong { position: relative; z-index: 1; color: var(--sand-light); font-size: 13px; font-weight: 700; letter-spacing: .23em; text-align: center; text-transform: uppercase; }
.under-design-visual > small { position: relative; z-index: 1; margin-top: 14px; color: rgba(255,255,255,.48); font-size: 9px; letter-spacing: .09em; }
.under-design-visual > em { position: absolute; right: 28px; bottom: 23px; left: 28px; z-index: 1; color: rgba(234,223,206,.7); font-size: 7px; font-weight: 700; letter-spacing: .16em; text-align: center; text-transform: uppercase; }
.under-design-visual-compact { min-height: 360px; }

/* Home teaser */
.home-upcoming-section { background: #ddd3c6; }
.home-upcoming-grid { display: grid; grid-template-columns: .95fr 1.05fr; min-height: 600px; overflow: hidden; background: var(--paper); border: 1px solid rgba(8,47,56,.1); border-radius: 4px; box-shadow: 0 26px 70px rgba(8,47,56,.09); }
.home-upcoming-feature { display: block; min-height: 100%; }
.home-upcoming-feature .under-design-visual { min-height: 100%; }
.home-upcoming-list { display: flex; flex-direction: column; padding: 20px 42px; }
.home-upcoming-list > a { display: grid; grid-template-columns: 38px 1fr auto; gap: 16px; align-items: center; flex: 1; min-height: 84px; border-bottom: 1px solid var(--line); transition: padding .2s, color .2s; }
.home-upcoming-list > a:last-child { border-bottom: 0; }
.home-upcoming-list > a:hover { padding-left: 7px; color: var(--teal-mid); }
.home-upcoming-list small { color: var(--sand); font-size: 8px; font-weight: 700; letter-spacing: .13em; }
.home-upcoming-list span { display: flex; flex-direction: column; }
.home-upcoming-list strong { font-family: var(--serif); font-size: 24px; font-weight: 400; }
.home-upcoming-list em { margin-top: 6px; color: var(--muted); font-size: 8px; font-style: normal; letter-spacing: .08em; text-transform: uppercase; }
.home-upcoming-list b { font-size: 15px; font-weight: 400; }

/* Projects-page bridge */
.projects-upcoming-bridge { padding: 105px 0; background: #ddd3c6; }
.projects-upcoming-bridge-grid { display: grid; grid-template-columns: .72fr 1.28fr; min-height: 420px; overflow: hidden; background: var(--paper); border-radius: 4px; }
.projects-upcoming-bridge .under-design-visual { min-height: 100%; }
.projects-upcoming-bridge-copy { display: flex; flex-direction: column; justify-content: center; padding: 70px; }
.projects-upcoming-bridge-copy h2 { max-width: 720px; margin: 0; font-family: var(--serif); font-size: clamp(48px, 5vw, 72px); font-weight: 400; letter-spacing: -.045em; line-height: .98; }
.projects-upcoming-bridge-copy > p:not(.eyebrow) { max-width: 650px; margin: 28px 0 34px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.projects-upcoming-bridge-copy .button { align-self: flex-start; color: white; background: var(--teal); }

/* Dedicated Upcoming Projects page */
.upcoming-page-hero { padding: 132px 0 0; color: white; background: radial-gradient(circle at 86% 22%, rgba(181,140,97,.17), transparent 28%), var(--teal-deep); }
.upcoming-page-hero-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 8vw; align-items: end; }
.upcoming-page-hero h1 { max-width: 920px; margin: 0; font-family: var(--serif); font-size: clamp(70px, 7.8vw, 116px); font-weight: 400; letter-spacing: -.055em; line-height: .86; }
.upcoming-page-hero h1 span { color: var(--sand); }
.upcoming-page-intro > p { max-width: 530px; margin: 0 0 34px; color: rgba(255,255,255,.64); font-size: 14px; line-height: 1.85; }
.upcoming-address-strip { display: grid; grid-template-columns: repeat(6, 1fr); margin-top: 90px; border-top: 1px solid rgba(255,255,255,.15); }
.upcoming-address-strip a { display: grid; grid-template-columns: 25px 1fr; gap: 10px; min-height: 112px; padding: 24px 15px; border-right: 1px solid rgba(255,255,255,.15); }
.upcoming-address-strip a:last-child { border-right: 0; }
.upcoming-address-strip small { color: var(--sand); font-size: 8px; font-weight: 700; }
.upcoming-address-strip span { font-family: var(--serif); font-size: 17px; line-height: 1.1; }
.upcoming-address-strip b { display: block; margin-top: 9px; color: rgba(255,255,255,.48); font-family: var(--sans); font-size: 7px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.upcoming-featured-section { padding: 132px 0; background: white; }
.upcoming-featured-grid { display: grid; grid-template-columns: 1.02fr .98fr; align-items: stretch; }
.upcoming-featured-visual { position: relative; min-height: 660px; overflow: hidden; background: var(--teal-deep); }
.upcoming-featured-visual .under-design-visual { height: 100%; min-height: 660px; }
.upcoming-featured-visual > img { width: 100%; height: 100%; object-fit: cover; }
.upcoming-featured-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,34,43,.6), transparent 48%); pointer-events: none; }
.upcoming-featured-image-label { position: absolute; bottom: 29px; left: 31px; z-index: 3; color: white; font-size: 8px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.upcoming-featured-number { position: absolute; right: 34px; bottom: 24px; z-index: 3; color: rgba(255,255,255,.15); font-size: clamp(86px, 10vw, 145px); font-weight: 800; letter-spacing: -.08em; line-height: .8; }
.upcoming-featured-copy { display: flex; flex-direction: column; justify-content: center; padding: 55px 0 55px 7vw; }
.upcoming-featured-status { display: inline-flex; align-items: center; align-self: flex-start; gap: 9px; margin: 3px 0 25px; padding: 9px 12px; color: #27634f; background: #e8f2ec; border: 1px solid #cce3d5; font-size: 8px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.upcoming-featured-status span { color: #4b8b6d; font-size: 9px; }
.upcoming-featured-copy h2 { max-width: 700px; margin: 0; color: var(--teal-deep); font-family: var(--nb-font, var(--sans)); font-size: clamp(52px, 5.2vw, 76px); font-weight: 800; letter-spacing: -.06em; line-height: .95; }
.upcoming-featured-copy > p:not(.eyebrow) { max-width: 690px; margin: 22px 0 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.upcoming-featured-copy > .upcoming-featured-lead { color: var(--teal-deep); font-size: 16px; line-height: 1.7; }
.upcoming-featured-facts { display: grid; grid-template-columns: 1fr 1fr; margin: 35px 0 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.upcoming-featured-facts > div { min-height: 102px; padding: 22px 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.upcoming-featured-facts dt { color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.upcoming-featured-facts dd { margin: 10px 0 0; color: var(--teal-deep); font-size: 12px; font-weight: 700; line-height: 1.5; }
.upcoming-featured-actions { display: flex; align-items: center; gap: 30px; margin-top: 34px; }
.upcoming-featured-button { min-width: 225px; color: white; background: var(--teal); }
.upcoming-featured-gallery { display: grid; grid-template-columns: 1.55fr 1fr 1fr; gap: 7px; margin-top: 8px; }
.upcoming-featured-gallery figure { position: relative; min-height: 320px; margin: 0; overflow: hidden; background: var(--teal-deep); }
.upcoming-featured-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.upcoming-featured-gallery figure:hover img { transform: scale(1.02); }
.upcoming-featured-gallery figure::after { content: ""; position: absolute; inset: auto 0 0; height: 42%; background: linear-gradient(0deg, rgba(4,34,43,.7), transparent); pointer-events: none; }
.upcoming-featured-gallery figcaption { position: absolute; right: 22px; bottom: 20px; left: 22px; z-index: 2; color: white; font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.upcoming-stage-section { padding: 128px 0 136px; background: #e6e9e7; }
.upcoming-stage-heading { display: grid; grid-template-columns: 1.18fr .82fr; gap: 8vw; align-items: end; }
.upcoming-stage-heading h2 { max-width: 850px; margin: 0; color: var(--teal-deep); font-family: var(--nb-font, var(--sans)); font-size: clamp(52px, 5.7vw, 82px); font-weight: 800; letter-spacing: -.06em; line-height: .95; }
.upcoming-stage-heading > p { max-width: 560px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.82; }
.upcoming-stage-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin: 66px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(8,47,56,.2); border-bottom: 1px solid rgba(8,47,56,.2); }
.upcoming-stage-grid li { min-height: 275px; padding: 31px 27px 35px; border-right: 1px solid rgba(8,47,56,.2); }
.upcoming-stage-grid li:last-child { border-right: 0; }
.upcoming-stage-grid li > span { color: var(--sand); font-size: 28px; font-weight: 800; letter-spacing: -.04em; }
.upcoming-stage-grid h3 { max-width: 240px; margin: 54px 0 0; color: var(--teal-deep); font-size: 20px; font-weight: 800; line-height: 1.08; text-transform: uppercase; }
.upcoming-stage-grid p { margin: 18px 0 0; color: var(--muted); font-size: 12px; line-height: 1.72; }

.upcoming-collection { background: #f0eee8; }
.upcoming-collection-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 8vw; align-items: end; margin-bottom: 64px; }
.upcoming-collection-heading h2 { max-width: 790px; margin: 0; font-family: var(--serif); font-size: clamp(52px, 5.5vw, 76px); font-weight: 400; letter-spacing: -.05em; line-height: .96; }
.upcoming-collection-heading > p { max-width: 490px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.upcoming-card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; }
.upcoming-card { overflow: hidden; background: white; border: 1px solid rgba(8,47,56,.09); border-radius: 5px; box-shadow: 0 18px 55px rgba(8,47,56,.07); scroll-margin-top: 120px; }
.upcoming-card-project-image { position: relative; display: block; min-height: 390px; overflow: hidden; background: var(--teal-deep); }
.upcoming-card-project-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.upcoming-card-project-image:hover img { transform: scale(1.025); }
.upcoming-card-project-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,34,43,.7), transparent 55%); }
.upcoming-card-project-image span { position: absolute; right: 26px; bottom: 23px; left: 26px; z-index: 2; color: white; font-size: 8px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.upcoming-card-content { padding: 34px 36px 38px; }
.upcoming-status { display: inline-flex; align-items: center; gap: 10px; padding: 10px 13px; color: #27634f; background: #e8f2ec; border: 1px solid #cce3d5; border-radius: 3px; font-size: 8px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.upcoming-status span { font-size: 12px; }
.upcoming-card-index { margin: 29px 0 12px; color: var(--sand); font-size: 8px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.upcoming-card h2 { margin: 0; font-family: var(--serif); font-size: clamp(38px, 3.7vw, 54px); font-weight: 400; letter-spacing: -.045em; line-height: .96; }
.upcoming-address { display: grid; grid-template-columns: 24px 1fr auto; gap: 11px; align-items: center; margin-top: 22px; padding: 16px 0; color: var(--teal-mid); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.upcoming-address > span:first-child { font-size: 20px; }
.upcoming-address > span:nth-child(2) { display: flex; flex-direction: column; font-family: var(--serif); font-size: 20px; }
.upcoming-address small { margin-top: 6px; color: var(--muted); font-family: var(--sans); font-size: 9px; }
.upcoming-address b { font-weight: 400; }
.upcoming-description { min-height: 70px; margin: 26px 0 30px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.upcoming-card-facts { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 30px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.upcoming-card-facts > div { min-height: 86px; padding: 18px 17px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.upcoming-card-facts > .upcoming-card-fact-wide { grid-column: 1 / -1; min-height: 80px; }
.upcoming-card-facts dt { color: var(--muted); font-size: 7px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.upcoming-card-facts dd { margin: 9px 0 0; color: var(--teal-deep); font-size: 11px; font-weight: 700; line-height: 1.52; }
.upcoming-card-actions { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding-top: 24px; border-top: 1px solid var(--line); }
.upcoming-details-link { display: inline-flex; gap: 12px; align-items: center; color: var(--teal-mid); font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.upcoming-register { min-width: 190px; color: white; background: var(--teal); }

.upcoming-update-section { padding: 130px 0 138px; background: white; }
.upcoming-update-grid { display: grid; grid-template-columns: .76fr 1.24fr; gap: 8vw; align-items: start; }
.upcoming-update-intro { position: sticky; top: 135px; }
.upcoming-update-intro h2 { max-width: 610px; margin: 0; color: var(--teal-deep); font-family: var(--nb-font, var(--sans)); font-size: clamp(50px, 5.2vw, 76px); font-weight: 800; letter-spacing: -.06em; line-height: .95; }
.upcoming-update-intro > p:not(.eyebrow) { max-width: 570px; margin: 26px 0 0; color: var(--muted); font-size: 13px; line-height: 1.82; }
.upcoming-update-button { min-width: 220px; margin-top: 32px; color: white; background: var(--teal); }
.upcoming-benefit-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.upcoming-benefit-grid article { min-height: 240px; padding: 30px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.upcoming-benefit-grid article > span { color: var(--sand); font-size: 27px; font-weight: 800; }
.upcoming-benefit-grid h3 { margin: 45px 0 0; color: var(--teal-deep); font-size: 20px; font-weight: 800; line-height: 1.08; text-transform: uppercase; }
.upcoming-benefit-grid p { margin: 16px 0 0; color: var(--muted); font-size: 12px; line-height: 1.72; }
.upcoming-project-note { display: grid; grid-template-columns: 180px 1fr; gap: 35px; margin-top: 28px; padding: 27px 30px; color: white; background: var(--teal-deep); }
.upcoming-project-note strong { color: var(--sand-light); font-size: 9px; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.upcoming-project-note p { margin: 0; color: rgba(255,255,255,.66); font-size: 11px; line-height: 1.72; }

.upcoming-location-section { padding: 128px 0; color: white; background: var(--teal-deep); }
.upcoming-location-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 9vw; align-items: start; }
.upcoming-location-grid > div:first-child { position: sticky; top: 125px; }
.upcoming-location-grid h2 { max-width: 570px; margin: 0; font-family: var(--serif); font-size: clamp(50px, 5vw, 72px); font-weight: 400; letter-spacing: -.05em; line-height: .96; }
.upcoming-location-list { border-top: 1px solid rgba(255,255,255,.16); }
.upcoming-location-list a { display: grid; grid-template-columns: 42px 1fr auto; gap: 20px; align-items: center; min-height: 100px; border-bottom: 1px solid rgba(255,255,255,.16); }
.upcoming-location-list small { color: var(--sand); font-size: 8px; font-weight: 700; }
.upcoming-location-list span { display: flex; flex-direction: column; }
.upcoming-location-list strong { font-family: var(--serif); font-size: 25px; font-weight: 400; }
.upcoming-location-list em { margin-top: 7px; color: rgba(255,255,255,.48); font-size: 8px; font-style: normal; letter-spacing: .08em; text-transform: uppercase; }
.upcoming-location-list b { color: rgba(255,255,255,.58); font-size: 8px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }

@media (max-width: 1080px) {
  .desktop-nav { gap: 19px; font-size: 8px; letter-spacing: .13em; }
  .home-upcoming-grid { grid-template-columns: .9fr 1.1fr; }
  .home-upcoming-list { padding-inline: 28px; }
  .home-upcoming-list strong { font-size: 21px; }
  .upcoming-address-strip { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
  .upcoming-address-strip a { flex: 0 0 210px; scroll-snap-align: start; }
  .upcoming-featured-copy { padding-left: 5vw; }
  .upcoming-featured-visual,
  .upcoming-featured-visual .under-design-visual { min-height: 610px; }
  .upcoming-stage-grid { grid-template-columns: 1fr 1fr; }
  .upcoming-stage-grid li:nth-child(2) { border-right: 0; }
  .upcoming-stage-grid li:nth-child(-n+2) { border-bottom: 1px solid rgba(8,47,56,.2); }
  .upcoming-featured-gallery { grid-template-columns: 1fr 1fr; }
  .upcoming-featured-gallery-wide { grid-column: 1 / -1; }
  .upcoming-update-grid { grid-template-columns: .85fr 1.15fr; gap: 5vw; }
  .projects-upcoming-bridge-copy { padding: 50px; }
}

@media (max-width: 760px) {
  .mobile-menu .mobile-nav-primary > a { min-height: 67px; }
  .mobile-menu .mobile-nav-primary > a[href="/upcoming-projects"] strong { font-size: clamp(27px, 7.6vw, 35px); }
  .mobile-menu-projects { margin-top: 25px; }
  .mobile-menu-upcoming { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 13px; padding: 15px 0; color: white; border-top: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.16); }
  .mobile-menu-upcoming span { display: flex; flex-direction: column; }
  .mobile-menu-upcoming small { color: var(--sand-light); font-size: 7px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
  .mobile-menu-upcoming strong { margin-top: 5px; font-family: var(--serif); font-size: 18px; font-weight: 400; }
  .mobile-menu-upcoming b { font-size: 16px; font-weight: 400; }

  .under-design-visual { min-height: 340px; padding: 70px 22px 40px; }
  .under-design-badge { top: 20px; left: 20px; }
  .under-design-mark { width: 80px; height: 80px; margin-bottom: 27px; }
  .under-design-mark::before { top: 22px; }
  .under-design-mark i { top: 35px; }
  .under-design-visual > strong { font-size: 11px; }
  .under-design-visual > small { font-size: 8px; }

  .home-upcoming-section { padding-top: 76px; }
  .home-upcoming-grid { grid-template-columns: 1fr; min-height: 0; }
  .home-upcoming-feature .under-design-visual { min-height: 360px; }
  .home-upcoming-list { padding: 12px 22px; }
  .home-upcoming-list > a { min-height: 84px; }
  .home-upcoming-list strong { font-size: 19px; }

  .projects-upcoming-bridge { padding: 70px 0; }
  .projects-upcoming-bridge-grid { grid-template-columns: 1fr; }
  .projects-upcoming-bridge-copy { padding: 42px 24px; }
  .projects-upcoming-bridge-copy h2 { font-size: 43px; }

  .upcoming-page-hero { padding-top: 68px; }
  .upcoming-page-hero-grid { grid-template-columns: 1fr; gap: 34px; }
  .upcoming-page-hero h1 { font-size: clamp(54px, 15vw, 68px); line-height: .88; }
  .upcoming-page-intro > p { font-size: 12px; line-height: 1.75; }
  .upcoming-address-strip { width: 100%; margin-top: 52px; padding-left: 18px; scrollbar-width: none; }
  .upcoming-address-strip::-webkit-scrollbar { display: none; }
  .upcoming-address-strip a { flex-basis: 190px; min-height: 98px; }

  .upcoming-featured-section { padding: 76px 0 82px; }
  .upcoming-featured-grid { grid-template-columns: 1fr; }
  .upcoming-featured-visual,
  .upcoming-featured-visual .under-design-visual { min-height: 410px; }
  .upcoming-featured-number { right: 22px; bottom: 17px; }
  .upcoming-featured-image-label { bottom: 22px; left: 21px; }
  .upcoming-featured-copy { padding: 45px 0 0; }
  .upcoming-featured-copy h2 { font-size: 44px; }
  .upcoming-featured-copy > .upcoming-featured-lead { font-size: 15px; }
  .upcoming-featured-facts { grid-template-columns: 1fr; }
  .upcoming-featured-facts > div { min-height: 88px; }
  .upcoming-featured-actions { align-items: stretch; flex-direction: column; gap: 18px; }
  .upcoming-featured-button { width: 100%; }
  .upcoming-featured-actions .upcoming-details-link { min-height: 40px; }
  .upcoming-featured-gallery { grid-template-columns: 1fr; gap: 5px; margin-top: 6px; }
  .upcoming-featured-gallery-wide { grid-column: auto; }
  .upcoming-featured-gallery figure { min-height: 260px; }

  .upcoming-stage-section { padding: 80px 0 86px; }
  .upcoming-stage-heading { grid-template-columns: 1fr; gap: 24px; }
  .upcoming-stage-heading h2 { font-size: 44px; }
  .upcoming-stage-heading > p { font-size: 12px; }
  .upcoming-stage-grid { grid-template-columns: 1fr; margin-top: 42px; }
  .upcoming-stage-grid li { min-height: 0; padding: 25px 20px 29px; border-right: 0; border-bottom: 1px solid rgba(8,47,56,.2); }
  .upcoming-stage-grid li:last-child { border-bottom: 0; }
  .upcoming-stage-grid h3 { margin-top: 28px; font-size: 18px; }

  .upcoming-collection { padding-top: 76px; }
  .upcoming-collection-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 36px; }
  .upcoming-collection-heading h2 { font-size: 44px; }
  .upcoming-collection-heading > p { font-size: 12px; }
  .upcoming-card-grid { grid-template-columns: 1fr; gap: 22px; }
  .upcoming-card-content { padding: 26px 22px 28px; }
  .upcoming-card-project-image { min-height: 330px; }
  .upcoming-card h2 { font-size: 39px; }
  .upcoming-description { min-height: 0; font-size: 12px; }
  .upcoming-card-facts { grid-template-columns: 1fr; }
  .upcoming-card-facts > .upcoming-card-fact-wide { grid-column: auto; }
  .upcoming-card-facts > div { min-height: 76px; }
  .upcoming-card-actions { align-items: stretch; flex-direction: column; }
  .upcoming-details-link { min-height: 42px; }
  .upcoming-register { width: 100%; }

  .upcoming-update-section { padding: 82px 0 88px; }
  .upcoming-update-grid { grid-template-columns: 1fr; gap: 48px; }
  .upcoming-update-intro { position: static; }
  .upcoming-update-intro h2 { font-size: 44px; }
  .upcoming-benefit-grid { grid-template-columns: 1fr; }
  .upcoming-benefit-grid article { min-height: 210px; }
  .upcoming-project-note { grid-template-columns: 1fr; gap: 13px; padding: 24px 22px; }

  .upcoming-location-section { padding: 82px 0; }
  .upcoming-location-grid { grid-template-columns: 1fr; gap: 46px; }
  .upcoming-location-grid > div:first-child { position: static; }
  .upcoming-location-grid h2 { font-size: 45px; }
  .upcoming-location-list a { grid-template-columns: 28px 1fr; min-height: 96px; }
  .upcoming-location-list strong { font-size: 21px; }
  .upcoming-location-list b { grid-column: 2; margin-top: -12px; padding-bottom: 18px; }
}

@media (max-width: 390px) {
  .home-upcoming-list > a { grid-template-columns: 30px 1fr auto; }
  .home-upcoming-list strong { font-size: 17px; }
  .upcoming-page-hero h1 { font-size: 51px; }
  .upcoming-address > span:nth-child(2) { font-size: 18px; }
}
