:root {
  --st-mediterranean: #07577a;
  --st-mediterranean-deep: #07384d;
  --st-pool: #3fa6c5;
  --st-pool-light: #b9e1e8;
  --st-terracotta: #b85b3d;
  --st-terracotta-deep: #873b2b;
  --st-limestone: #e8dac5;
  --st-blush: #dfb4a4;
  --st-sand: #d8bd98;
  --st-stone: #c9b394;
  --st-broken-white: #f3e7d5;
  --st-graphite: #292824;
  --st-canvas: var(--st-limestone);
  --st-white: var(--st-limestone);
  --st-ink: #17343d;
  --st-muted: #647477;
  --st-line: rgb(23 52 61 / 18%);
  --st-pad: clamp(22px, 5vw, 88px);
  --st-awning: repeating-linear-gradient(90deg, var(--st-white) 0 18px, #167fa7 18px 36px);
}

html:has(body.theme-st-tropez) {
  color: var(--st-ink);
  background: var(--st-mediterranean-deep);
  scroll-padding-top: 88px;
}

body.theme-st-tropez {
  min-width: 320px;
  overflow-x: clip;
  color: var(--st-ink);
  background: var(--st-canvas);
  font-family: "Ubuntu Sans Capecchi", sans-serif;
  font-size: clamp(16px, 1.05vw, 19px);
  line-height: 1.65;
}

body.theme-st-tropez h1,
body.theme-st-tropez h2,
body.theme-st-tropez h3,
body.theme-st-tropez p,
body.theme-st-tropez figure,
body.theme-st-tropez address,
body.theme-st-tropez dl { margin: 0; }

body.theme-st-tropez h1,
body.theme-st-tropez h2,
body.theme-st-tropez h3 {
  font-family: "Commissioner Capecchi", sans-serif;
  font-weight: 340;
  letter-spacing: -.045em;
  line-height: .98;
}

body.theme-st-tropez address { font-style: normal; }
:where(body.theme-st-tropez img,
body.theme-st-tropez video) { width: 100%; height: 100%; object-fit: cover; }
body.theme-st-tropez :focus-visible { outline: 3px solid var(--st-terracotta); outline-offset: 5px; }
body.theme-st-tropez .skip-link { color: var(--st-white); background: var(--st-terracotta-deep); }

.st-shell { position: relative; min-height: 100svh; isolation: isolate; background: var(--st-canvas); }
.st-main { overflow: clip; }

.st-header {
  position: absolute;
  z-index: 40;
  inset: 0 0 auto;
  min-height: 96px;
  display: grid;
  grid-template-columns: minmax(172px, 1fr) auto;
  align-items: center;
  gap: 40px;
  padding: 14px var(--st-pad);
  color: var(--st-white);
  border-bottom: 1px solid rgb(255 255 255 / 32%);
}

.st-header::after {
  position: absolute;
  right: var(--st-pad);
  bottom: -6px;
  width: clamp(120px, 18vw, 310px);
  height: 6px;
  content: "";
  background: var(--st-awning);
}

.st-brand { width: clamp(154px, 15vw, 226px); height: 68px; display: flex; align-items: center; }
.st-brand img { max-height: 58px; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); }
.st-nav { display: flex; align-items: center; gap: clamp(20px, 2.5vw, 44px); }
.st-nav a,
.st-menu summary,
.st-menu nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  font-weight: 620;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.st-nav a { position: relative; }
.st-nav a::after { position: absolute; inset: auto 0 8px; height: 1px; content: ""; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform 380ms cubic-bezier(.2,.8,.2,1); }
.st-nav a:hover::after,
.st-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.st-menu { display: none; }
.st-menu summary { cursor: pointer; list-style: none; gap: 12px; }
.st-menu summary::-webkit-details-marker { display: none; }

.st-shell--portfolio .st-header,
.st-shell--market .st-header,
.st-shell--form .st-header,
.st-shell--legal .st-header,
.st-shell--status .st-header { color: var(--st-mediterranean-deep); border-bottom-color: var(--st-line); }
.st-shell--portfolio .st-brand img,
.st-shell--market .st-brand img,
.st-shell--form .st-brand img,
.st-shell--legal .st-brand img,
.st-shell--status .st-brand img { filter: none; }

.st-kicker {
  color: var(--st-terracotta-deep);
  font-size: 11px;
  font-weight: 680;
  letter-spacing: .17em;
  line-height: 1.3;
  text-transform: uppercase;
}

.st-text-link {
  min-height: 44px;
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 18px;
  padding-block: 10px 7px;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-bottom: 1px solid currentColor;
}

.st-button {
  min-height: 52px;
  width: fit-content;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 24px;
  color: var(--st-white);
  background: var(--st-terracotta);
  border: 1px solid var(--st-terracotta);
  border-radius: 0;
  font: 650 12px/1.2 "Ubuntu Sans Capecchi", sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 240ms ease, background 240ms ease, transform 240ms ease;
}
.st-button--light { color: var(--st-mediterranean-deep); background: var(--st-white); border-color: var(--st-white); }
.st-button:hover { color: var(--st-terracotta-deep); background: transparent; transform: translateY(-2px); }
.st-button--light:hover { color: var(--st-white); }

.st-awning { height: 9px; background: var(--st-awning); }
.st-editorial-card { background: rgb(255 253 248 / 84%); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }

/* Opening film */
.st-home-hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: flex;
  align-items: end;
  color: var(--st-white);
  background: var(--st-mediterranean-deep);
  border-bottom: 14px solid var(--st-terracotta);
}
body.theme-st-tropez .st-home-hero > video { position: absolute; inset: -3%; width: 106%; height: 106%; transform: translate3d(0, var(--st-depth-y, 0), 0) scale(1.025); }
.st-hero-curtain { position: absolute; z-index: 6; inset: 0; background: var(--st-terracotta); transform: translate3d(0, -101%, 0); pointer-events: none; }
.st-home-hero__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgb(5 37 51 / 42%) 0%, rgb(5 37 51 / 4%) 42%, rgb(5 37 51 / 78%) 100%), linear-gradient(90deg, rgb(5 37 51 / 35%), transparent 58%); }
.st-home-hero__copy { position: relative; z-index: 2; width: 100%; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); align-items: end; gap: clamp(32px, 7vw, 130px); padding: clamp(150px, 22vh, 250px) var(--st-pad) clamp(72px, 11vh, 130px); }
.st-home-hero__copy > p { position: absolute; top: 132px; left: var(--st-pad); font-size: 11px; font-weight: 650; letter-spacing: .17em; text-transform: uppercase; }
.st-home-hero h1 { max-width: 12ch; font-size: clamp(60px, min(9vw, 13svh), 150px); text-wrap: balance; }
.st-home-hero h1 span { display: block; white-space: nowrap; }
.st-home-hero__aside { max-width: 440px; padding: 24px 0 18px 30px; border-left: 1px solid rgb(255 255 255 / 58%); }
.st-home-hero__aside span { display: block; margin-bottom: 18px; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.st-home-hero__aside p { font-size: clamp(16px, 1.3vw, 21px); line-height: 1.55; }
.st-film-control { position: absolute; z-index: 4; right: var(--st-pad); bottom: 28px; min-width: 48px; min-height: 48px; padding: 10px 14px; color: var(--st-white); background: rgb(7 56 77 / 42%); border: 1px solid rgb(255 255 255 / 50%); backdrop-filter: blur(8px); }
.st-scroll-cue { position: absolute; z-index: 4; left: var(--st-pad); bottom: 28px; min-height: 44px; display: inline-flex; align-items: center; gap: 16px; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }

/* Editorial chapters */
.st-editorial-intro { position: relative; min-height: 86svh; overflow: hidden; padding: clamp(110px, 17vw, 260px) var(--st-pad); background: var(--st-limestone); }
.st-editorial-intro::before { position: absolute; top: 0; right: 0; width: min(36vw, 610px); height: 52%; content: ""; background: var(--st-terracotta); }
.st-editorial-intro::after { position: absolute; right: -12vw; bottom: -27vw; width: 48vw; height: 48vw; content: ""; border: 1px solid rgb(183 95 69 / 18%); border-radius: 50%; pointer-events: none; }
.st-editorial-intro > * { position: relative; z-index: 1; }
.st-line-art { position: absolute !important; z-index: 0 !important; width: 100%; height: auto !important; object-fit: contain !important; pointer-events: none; user-select: none; }
.st-line-art--grasses { inset: auto 0 -2%; opacity: .58; }
.st-line-art--stonework { top: 4%; right: -8%; width: 70%; opacity: .44; }
body.theme-st-tropez.st-motion-ready .st-line-art--grasses.st-is-visible { opacity: .58; }
body.theme-st-tropez.st-motion-ready .st-line-art--stonework.st-is-visible { opacity: .44; }
.st-editorial-intro__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); align-items: start; gap: clamp(44px, 10vw, 180px); margin-top: clamp(36px, 6vw, 86px); }
.st-editorial-intro h2 { max-width: 12ch; font-size: clamp(56px, 7.5vw, 126px); color: var(--st-mediterranean-deep); }
.st-editorial-intro__grid > div { max-width: 520px; padding: clamp(28px, 4vw, 58px); background: rgb(255 250 241 / 90%); box-shadow: 0 24px 70px rgb(77 52 35 / 10%); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.st-editorial-intro__grid > div p { margin-bottom: 34px; }

.st-property-stories { position: relative; padding: clamp(100px, 14vw, 220px) var(--st-pad); background: linear-gradient(108deg, transparent 0 71%, rgb(183 91 61 / 9%) 71% 71.2%, transparent 71.2%), var(--st-limestone); }
.st-section-heading { display: grid; grid-template-columns: 1fr 1.45fr; gap: clamp(30px, 7vw, 110px); align-items: end; margin-bottom: clamp(80px, 12vw, 190px); }
.st-section-heading > * { min-width: 0; }
.st-section-heading,
.st-property-rail,
.st-rail-controls { position: relative; z-index: 1; }
.st-section-heading h2 { max-width: 12ch; font-size: clamp(48px, 6.2vw, 104px); }
.st-section-heading h2,
.st-property-story__card h3,
.st-footer__cta h2 { overflow-wrap: anywhere; hyphens: auto; }
.st-section-heading .st-text-link { grid-column: 2; }
.st-property-rail { width: calc(100% + var(--st-pad)); display: grid; grid-auto-flow: column; grid-auto-columns: min(82vw, 1280px); gap: clamp(48px, 8vw, 138px); overflow-x: auto; overscroll-behavior-inline: contain; padding: 36px var(--st-pad) 64px 24px; margin-left: -24px; scroll-padding-inline: 24px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.st-property-rail::-webkit-scrollbar { display: none; }
.st-property-story { position: relative; min-height: clamp(650px, 72vw, 980px); display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .65fr); align-items: center; margin: 0; padding: clamp(18px, 2vw, 34px); background: var(--st-terracotta); scroll-snap-align: start; scroll-snap-stop: always; }
.st-property-story:nth-child(even) { background: var(--st-sand); }
.st-property-story__media { display: block; height: clamp(620px, 72vw, 980px); overflow: hidden; background: var(--st-stone); }
.st-property-story__media picture,
.st-property-story__media img { width: 100%; height: 100%; }
.st-property-story__media img { object-fit: cover; transform: translate3d(0, var(--st-depth-y, 0), 0) scale(1.04); }
.st-property-story__card { position: relative; z-index: 2; width: min(520px, calc(100% + 70px)); margin-left: -70px; padding: clamp(38px, 5vw, 76px); background: rgb(255 253 248 / 86%); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 26px 80px rgb(7 56 77 / 11%); }
.st-property-story__card::before { position: absolute; inset: 0 0 auto; height: 9px; content: ""; background: var(--st-awning); }
.st-property-story__card > p:first-child { margin-bottom: 22px; color: var(--st-terracotta-deep); font-size: 10px; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.st-property-story__card > p:first-child span { margin-right: 16px; }
.st-property-story__card h3 { margin-bottom: 24px; font-size: clamp(38px, 4.3vw, 72px); }
.st-property-story__card h3 + p { margin-bottom: 30px; }
.st-property-story:nth-child(even) { grid-template-columns: minmax(300px, .65fr) minmax(0, 1.55fr); }
.st-property-story:nth-child(even) .st-property-story__media { grid-column: 2; }
.st-property-story:nth-child(even) .st-property-story__card { grid-column: 1; grid-row: 1; margin-right: -70px; margin-left: 0; }
.st-property-story { transition: opacity 600ms ease; }
body.theme-st-tropez.st-rail-ready .st-property-story:not([aria-current="true"]) { opacity: .76; }
body.theme-st-tropez.st-rail-ready .st-property-story[aria-current="true"] .st-property-story__card { box-shadow: 0 32px 90px rgb(91 48 31 / 18%); }
.st-rail-controls { position: relative; display: none; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 28px; padding-top: 24px; }
body.theme-st-tropez.st-rail-ready .st-rail-controls { display: flex; }
.st-rail-controls::before,
.st-rail-controls::after { position: absolute; top: 0; left: 0; height: 2px; content: ""; }
.st-rail-controls::before { width: 100%; background: rgb(135 59 43 / 20%); }
.st-rail-controls::after { width: var(--st-rail-progress, 0%); background: var(--st-terracotta); transition: width 520ms cubic-bezier(.16,.75,.25,1); }
.st-rail-controls p { min-width: 84px; margin-right: 16px; color: var(--st-terracotta-deep); font-size: 11px; font-weight: 650; letter-spacing: .12em; }
.st-rail-controls button { width: 54px; height: 54px; display: grid; place-items: center; color: var(--st-terracotta-deep); background: var(--st-broken-white); border: 1px solid var(--st-terracotta); border-radius: 50%; font: 20px/1 "Ubuntu Sans Capecchi", sans-serif; cursor: pointer; transition: color 240ms ease, background 240ms ease, transform 240ms ease; }
.st-rail-controls button:hover { color: var(--st-broken-white); background: var(--st-terracotta); transform: translateY(-2px); }
.st-rail-controls button:disabled { opacity: .36; cursor: default; transform: none; }

.st-lake-chapter { position: relative; min-height: 108svh; display: flex; align-items: center; justify-content: flex-end; overflow: hidden; padding: var(--st-pad); background: var(--st-mediterranean-deep); }
.st-lake-chapter__media { position: absolute; inset: -4%; }
.st-lake-chapter__media img { transform: translate3d(0, var(--st-depth-y, 0), 0) scale(1.04); filter: saturate(.84) contrast(1.04); }
.st-lake-chapter::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, rgb(7 56 77 / 12%), rgb(7 56 77 / 70%)); }
.st-lake-chapter__card { position: relative; z-index: 2; width: min(640px, 52vw); padding: clamp(44px, 5vw, 76px); background: rgb(255 253 248 / 86%); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.st-lake-chapter__card h2 { max-width: 10ch; margin: 22px 0 28px; font-size: clamp(44px, min(4.8vw, 8svh), 76px); overflow-wrap: normal; text-wrap: balance; }
.st-lake-chapter__card p:last-of-type { margin-bottom: 30px; }
.st-rentals-ribbon { display: grid; grid-template-columns: .6fr 1.25fr auto; gap: 46px; align-items: start; padding: clamp(70px, 9vw, 130px) var(--st-pad); color: var(--st-broken-white); background: var(--st-terracotta); border-top: 10px solid transparent; border-image: var(--st-awning) 10; }
.st-rentals-ribbon .st-kicker { color: var(--st-broken-white); }
.st-rentals-ribbon h2 { margin-top: 12px; font-size: clamp(42px, 5vw, 76px); }
.st-rentals-ribbon > div:nth-child(2) { display: grid; }
.st-rentals-ribbon > div:nth-child(2) a { min-height: 64px; display: flex; justify-content: space-between; gap: 24px; padding: 16px 0; border-bottom: 1px solid rgb(255 255 255 / 35%); }
.st-closing { min-height: 72svh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 28px; padding: clamp(100px, 14vw, 220px) var(--st-pad); text-align: center; background: var(--st-white); }
.st-closing h2 { max-width: 13ch; font-size: clamp(52px, 7vw, 116px); }
.st-closing > p:not(.st-kicker) { max-width: 560px; }
.st-closing--blue { color: var(--st-broken-white); background: var(--st-terracotta); }
.st-closing--blue .st-kicker { color: var(--st-broken-white); }

/* Portfolio */
.st-page-intro { position: relative; min-height: 82svh; overflow: hidden; display: grid; grid-template-columns: 1.4fr .6fr; align-content: end; gap: 30px 80px; padding: clamp(170px, 22vw, 310px) var(--st-pad) clamp(90px, 11vw, 160px); background: radial-gradient(ellipse at 86% 12%, transparent 0 17%, rgb(177 143 94 / 16%) 17.1% 17.35%, transparent 17.45% 100%), var(--st-broken-white); }
.st-page-intro--portfolio { background: radial-gradient(ellipse at 86% 12%, transparent 0 17%, rgb(177 143 94 / 16%) 17.1% 17.35%, transparent 17.45% 100%), var(--st-limestone); }
.st-page-intro::before { position: absolute; top: 11%; right: -9%; width: 34vw; height: 54vw; content: ""; border: 1px solid rgb(177 143 94 / 18%); border-radius: 48% 52% 38% 62%; transform: rotate(34deg); pointer-events: none; }
.st-page-intro > * { position: relative; z-index: 1; }
.st-page-intro h1 { grid-column: 1 / -1; font-size: clamp(82px, 13vw, 215px); color: var(--st-mediterranean-deep); }
.st-page-intro > p:last-of-type { grid-column: 2; max-width: 450px; }
.st-page-intro__count { align-self: end; color: var(--st-terracotta-deep); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.st-portfolio-grid { padding: clamp(100px, 14vw, 220px) var(--st-pad); background: var(--st-canvas); }
.st-portfolio-entry { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); align-items: center; margin-bottom: clamp(110px, 15vw, 230px); }
.st-portfolio-entry:last-child { margin-bottom: 0; }
.st-portfolio-entry__media { height: min(76vw, 980px); overflow: hidden; }
.st-portfolio-entry__media picture,
.st-portfolio-entry__media img { width: 100%; height: 100%; }
.st-portfolio-entry__media img { object-fit: cover; transform: translate3d(0, var(--st-depth-y, 0), 0) scale(1.04); }
.st-portfolio-entry__copy { position: relative; z-index: 2; width: min(620px, calc(100% + 255px)); margin-left: -310px; padding: clamp(36px, 5vw, 76px); background: rgb(255 253 248 / 88%); backdrop-filter: blur(13px); -webkit-backdrop-filter: blur(13px); }
.st-portfolio-entry__copy::before { position: absolute; inset: 0 0 auto; height: 9px; content: ""; background: var(--st-awning); }
.st-portfolio-entry__copy > p:first-child { margin-bottom: 22px; color: var(--st-terracotta-deep); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.st-portfolio-entry__copy h2,
.st-property-hero__copy h1,
.st-listing-hero__copy h1,
.st-management-hero__copy h1 { overflow-wrap: anywhere; hyphens: auto; }
.st-portfolio-entry__copy h2 { margin-bottom: 26px; font-size: clamp(42px, 5vw, 84px); }
.st-portfolio-entry__copy h2 + p { margin-bottom: 32px; }
.st-portfolio-entry:nth-child(even) { grid-template-columns: minmax(280px, .6fr) minmax(0, 1.4fr); }
.st-portfolio-entry:nth-child(even) .st-portfolio-entry__media { grid-column: 2; }
.st-portfolio-entry:nth-child(even) .st-portfolio-entry__copy { grid-column: 1; grid-row: 1; margin-right: -310px; margin-left: 0; }

/* Property and listing heroes */
.st-property-hero,
.st-listing-hero,
.st-management-hero { position: relative; min-height: 100svh; overflow: hidden; color: var(--st-white); background: var(--st-mediterranean-deep); }
.st-property-hero__media,
.st-listing-hero__media,
.st-management-hero__media { position: absolute; inset: -3%; }
.st-property-hero__media picture,
.st-property-hero__media img,
.st-listing-hero__media img,
.st-management-hero__media img { width: 100%; height: 100%; }
.st-property-hero__media img,
.st-listing-hero__media img,
.st-management-hero__media img { object-fit: cover; transform: translate3d(0, var(--st-depth-y, 0), 0) scale(1.03); }
.st-property-hero__shade,
.st-listing-hero__shade,
.st-management-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgb(5 37 51 / 43%) 0%, transparent 42%, rgb(5 37 51 / 79%) 100%); }
.st-breadcrumb { position: absolute; z-index: 2; top: 122px; left: var(--st-pad); display: flex; gap: 12px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.st-breadcrumb a { min-height: 44px; display: inline-flex; align-items: center; }
.st-property-hero__copy,
.st-listing-hero__copy,
.st-management-hero__copy { position: absolute; z-index: 2; inset: auto var(--st-pad) clamp(60px, 9vw, 130px); }
.st-property-hero__copy > p:first-child,
.st-listing-hero__copy > p:first-child,
.st-management-hero__copy > p:first-child { margin-bottom: 24px; font-size: 11px; letter-spacing: .13em; text-transform: uppercase; }
.st-property-hero__copy h1,
.st-listing-hero__copy h1,
.st-management-hero__copy h1 { max-width: 12ch; margin-bottom: 24px; font-size: clamp(66px, 9.2vw, 152px); }
.st-property-intro,
.st-listing-description { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .65fr); gap: clamp(50px, 11vw, 190px); padding: clamp(110px, 16vw, 250px) var(--st-pad); background: var(--st-white); }
.st-property-intro h2,
.st-listing-description h2 { max-width: 13ch; margin-top: 24px; font-size: clamp(48px, 6vw, 96px); }
.st-property-intro__text p + p,
.st-listing-description p + p { margin-top: 24px; }
.st-property-availability { display: grid; grid-template-columns: .5fr 1.5fr; gap: 30px; padding: 48px var(--st-pad); color: var(--st-broken-white); background: var(--st-terracotta); }
.st-property-availability .st-kicker { color: var(--st-broken-white); }
.st-property-availability__list { min-width: 0; display: grid; }
.st-property-availability a { min-height: 54px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgb(255 255 255 / 35%); }
.st-property-feature { position: relative; min-height: 100svh; padding: clamp(36px, 7vw, 110px); background: var(--st-mediterranean-deep); }
.st-property-feature button { width: 100%; height: calc(100svh - clamp(72px, 14vw, 220px)); }
.st-property-feature figcaption { position: absolute; right: calc(clamp(36px, 7vw, 110px) + 16px); bottom: calc(clamp(36px, 7vw, 110px) + 14px); padding: 7px 10px; color: var(--st-white); background: rgb(7 56 77 / 55%); font-size: 10px; letter-spacing: .08em; }
.st-property-gallery,
.st-listing-gallery { display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(40px, 8vw, 130px) 28px; padding: clamp(110px, 16vw, 250px) var(--st-pad); background: var(--st-canvas); }
.st-property-gallery__item,
.st-listing-gallery figure { grid-column: 1 / span 8; }
.st-property-gallery__item:nth-child(even),
.st-listing-gallery figure:nth-child(even) { grid-column: 5 / -1; }
.st-property-gallery__item:nth-child(3n),
.st-listing-gallery figure:nth-child(3n) { grid-column: 3 / span 7; }
.st-property-gallery__item button { width: 100%; }
.st-property-gallery__item img,
.st-listing-gallery img { width: 100%; height: auto; max-height: 82svh; object-fit: cover; }
.st-property-gallery figcaption { margin-top: 10px; color: var(--st-muted); font-size: 11px; letter-spacing: .06em; }
.st-property-film,
.st-listing-videos { display: grid; grid-template-columns: .55fr 1.45fr; gap: 60px; padding: clamp(100px, 13vw, 200px) var(--st-pad); color: var(--st-white); background: var(--st-mediterranean-deep); }
.st-property-film h2,
.st-listing-videos h2 { margin-top: 20px; font-size: clamp(44px, 5vw, 78px); }
.st-property-film video,
.st-listing-videos video { height: auto; max-height: 78svh; }
.st-property-address,
.st-listing-contact { display: grid; grid-template-columns: .55fr 1.45fr; gap: 60px; padding: clamp(90px, 12vw, 180px) var(--st-pad); background: var(--st-white); }
.st-property-address h2,
.st-listing-contact h2 { margin-bottom: 18px; font-size: clamp(48px, 6vw, 92px); }
.st-property-next { padding: 0 var(--st-pad) clamp(80px, 11vw, 160px); background: var(--st-white); }
.st-property-next a { min-height: 76px; display: flex; align-items: center; justify-content: space-between; border-block: 1px solid var(--st-line); }

/* Management */
.st-management-intro { display: grid; grid-template-columns: .45fr 1.55fr; gap: clamp(50px, 10vw, 170px); padding: clamp(120px, 17vw, 260px) var(--st-pad); background: var(--st-white); }
.st-management-intro h2 { max-width: 14ch; margin-bottom: 36px; font-size: clamp(54px, 7vw, 112px); }
.st-management-intro > div > p { max-width: 780px; }
.st-management-stories { padding: clamp(100px, 14vw, 220px) var(--st-pad); background: radial-gradient(ellipse at 8% 32%, transparent 0 12%, rgb(177 143 94 / 15%) 12.1% 12.35%, transparent 12.45% 100%), var(--st-limestone); }
.st-management-story { min-height: 64svh; display: grid; grid-template-columns: .2fr .8fr 1fr; gap: clamp(30px, 6vw, 100px); align-items: start; padding: clamp(70px, 10vw, 150px) 0; border-top: 1px solid var(--st-line); }
.st-management-story__number { color: var(--st-terracotta-deep); font-size: 11px; letter-spacing: .12em; }
.st-management-story h2 { max-width: 12ch; margin-top: 24px; font-size: clamp(42px, 5vw, 80px); }
.st-management-story > p,
.st-management-story > div:last-child { max-width: 640px; }
.st-management-story > div:last-child p + p { margin-top: 26px; }
.st-management-story--promise { width: calc(100% + 2 * var(--st-pad)); margin-inline: calc(-1 * var(--st-pad)); padding-inline: var(--st-pad); background: var(--st-blush); border-top: 0; }
.st-management-image { width: calc(100% + 2 * var(--st-pad)); margin-left: calc(-1 * var(--st-pad)); }
.st-management-image img { height: min(75vw, 920px); }
.st-management-image figcaption { padding: 12px var(--st-pad); color: var(--st-muted); font-size: 10px; letter-spacing: .11em; text-transform: uppercase; }
.st-signature { margin-top: 54px !important; color: var(--st-mediterranean-deep); font-family: "Commissioner Capecchi", sans-serif; font-size: 20px; }

/* Rental market */
.st-market-hero,
.st-contact-intro,
.st-news-intro,
.st-legal-hero { min-height: 75svh; display: grid; grid-template-columns: 1.35fr .65fr; align-content: end; gap: 35px 80px; padding: clamp(180px, 23vw, 320px) var(--st-pad) clamp(90px, 12vw, 170px); background: var(--st-white); }
.st-market-hero h1,
.st-contact-intro h1,
.st-news-intro h1,
.st-legal-hero h1 { grid-column: 1 / -1; max-width: 13ch; font-size: clamp(66px, 9vw, 148px); color: var(--st-mediterranean-deep); }
.st-market-hero > p:last-of-type,
.st-news-intro > p:last-child { grid-column: 2; max-width: 450px; }
.st-market-hero > .st-text-link { grid-column: 2; }
.st-market-grid { min-height: 46svh; padding: clamp(100px, 14vw, 210px) var(--st-pad); background: var(--st-canvas); }
.st-listing { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, .6fr); align-items: center; margin-bottom: clamp(100px, 14vw, 210px); }
.st-listing:last-child { margin-bottom: 0; }
.st-listing__media { height: min(68vw, 850px); overflow: hidden; }
.st-listing__card { position: relative; z-index: 2; margin-left: -55px; padding: clamp(36px, 5vw, 76px); background: rgb(255 253 248 / 90%); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.st-listing__card::before { position: absolute; inset: 0 0 auto; height: 9px; content: ""; background: var(--st-awning); }
.st-listing__card > p { margin-bottom: 18px; color: var(--st-terracotta-deep); font-size: 10px; letter-spacing: .11em; text-transform: uppercase; }
.st-listing__card h2 { margin-bottom: 28px; font-size: clamp(42px, 4.8vw, 78px); }
.st-listing__card dl { margin-bottom: 28px; }
.st-listing__card dl div { display: flex; justify-content: space-between; gap: 22px; padding: 11px 0; border-bottom: 1px solid var(--st-line); }
.st-listing__card dt { color: var(--st-muted); }
.st-listing__card dd { margin: 0; text-align: right; }
.st-listing:nth-child(even) { grid-template-columns: minmax(300px, .6fr) minmax(0, 1.4fr); }
.st-listing:nth-child(even) .st-listing__media { grid-column: 2; }
.st-listing:nth-child(even) .st-listing__card { grid-column: 1; grid-row: 1; margin-right: -55px; margin-left: 0; }
.st-market-empty { max-width: 900px; padding: clamp(90px, 13vw, 190px) 0; }
.st-market-empty h2 { margin: 24px 0 30px; font-size: clamp(52px, 7vw, 100px); }
.st-market-empty p:not(.st-kicker) { max-width: 600px; margin-bottom: 34px; }
.st-listing-facts { padding: clamp(70px, 9vw, 130px) var(--st-pad); color: var(--st-broken-white); background: var(--st-terracotta); border-top: 9px solid transparent; border-image: var(--st-awning) 9; }
.st-listing-facts dl { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgb(255 255 255 / 25%); }
.st-listing-facts dl div { min-height: 110px; display: flex; flex-direction: column; justify-content: space-between; padding: 18px; background: var(--st-terracotta); }
.st-listing-facts dt { color: var(--st-broken-white); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; opacity: .76; }
.st-listing-facts dd { margin: 0; font-family: "Commissioner Capecchi", sans-serif; font-size: 23px; }
.st-listing-description__lead { font-family: "Commissioner Capecchi", sans-serif; font-size: 25px; line-height: 1.4; }
.st-listing-description ul { padding-left: 20px; }
.st-listing-resources { display: grid; grid-template-columns: .5fr 1.5fr; gap: 60px; padding: clamp(100px, 14vw, 210px) var(--st-pad); background: var(--st-white); }
.st-listing-resources h2 { margin-top: 20px; font-size: clamp(48px, 6vw, 90px); }
.st-listing-resources > div:last-child { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.st-listing-resources a { border-top: 9px solid transparent; border-image: var(--st-awning) 9; }
.st-listing-resources img { height: auto; aspect-ratio: 4 / 3; object-fit: contain; background: var(--st-canvas); }
.st-listing-resources span { min-height: 50px; display: flex; align-items: center; justify-content: space-between; padding: 10px 0; font-size: 12px; text-transform: uppercase; }
.st-listing-contact { align-items: end; }

/* Forms */
.st-contact-intro > div { grid-column: 2; display: grid; gap: 20px; }
.st-contact-intro address { padding-top: 20px; border-top: 1px solid var(--st-line); }
.st-form-shell { display: grid; grid-template-columns: .55fr 1.15fr; gap: clamp(50px, 10vw, 170px); padding: clamp(100px, 15vw, 230px) var(--st-pad); background: var(--st-canvas); }
.st-form-shell__intro h2 { margin: 24px 0 30px; font-size: clamp(46px, 5.5vw, 84px); }
.st-form-shell__intro p:last-child { max-width: 400px; }
.st-form { position: relative; display: grid; gap: 28px; padding: clamp(34px, 5vw, 72px); background: var(--st-white); box-shadow: 24px 28px 0 var(--st-sand); }
.st-form::before { position: absolute; inset: 0 0 auto; height: 10px; content: ""; background: var(--st-awning); }
.st-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.st-field { display: grid; gap: 8px; }
.st-field label,
.st-topics legend { font-size: 12px; font-weight: 650; letter-spacing: .04em; }
.st-field input,
.st-field textarea,
.st-field select { width: 100%; min-height: 52px; padding: 12px 14px; color: var(--st-ink); background: var(--st-white); border: 1px solid rgb(23 52 61 / 38%); border-radius: 0; font: inherit; }
.st-field textarea { min-height: 170px; resize: vertical; }
.st-field input:hover,
.st-field textarea:hover { border-color: var(--st-mediterranean); }
.st-field input[aria-invalid="true"],
.st-field textarea[aria-invalid="true"] { border-color: #a5302c; border-width: 2px; }
.st-field__help,
.st-form__privacy { color: var(--st-muted); font-size: 13px; }
.st-form__privacy a { text-decoration: underline; text-underline-offset: 3px; }
.st-topics { display: grid; gap: 14px; margin: 0; padding: 22px; border: 1px solid var(--st-line); }
.st-topics label { min-height: 48px; display: flex; align-items: flex-start; gap: 12px; padding: 10px; cursor: pointer; }
.st-topics input { width: 20px; height: 20px; flex: 0 0 auto; margin-top: 2px; accent-color: var(--st-mediterranean); }
.st-form .form-errors { padding: 20px; color: #761f1d; background: #fff1ed; border-left: 4px solid #a5302c; }
.st-form .field-error { color: #8b2421; font-size: 13px; }

/* Status and legal */
.st-shell--status { background: var(--st-terracotta-deep); }
.st-shell--status .st-header { color: var(--st-white); border-bottom-color: rgb(255 255 255 / 28%); }
.st-shell--status .st-brand img { filter: brightness(0) invert(1); }
.st-shell--status .st-main { min-height: 100svh; display: grid; place-items: center; padding: 150px var(--st-pad) 90px; background: linear-gradient(135deg, var(--st-limestone) 0 62%, var(--st-terracotta) 62%); }
.st-status-card { position: relative; width: min(820px, 100%); padding: clamp(48px, 8vw, 110px); background: rgb(255 253 248 / 94%); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.st-status-card::before { position: absolute; inset: 0 0 auto; height: 11px; content: ""; background: var(--st-awning); }
.st-status-card h1 { margin: 24px 0 30px; font-size: clamp(58px, 8vw, 118px); overflow-wrap: anywhere; hyphens: auto; }
.st-status-card > p:not(.st-kicker) { max-width: 580px; margin-bottom: 34px; }
.st-status-form { margin-top: 32px; }
.st-legal-hero > p:last-child { grid-column: 2; max-width: 420px; }
.st-legal-sections { padding: clamp(90px, 13vw, 190px) var(--st-pad); background: var(--st-canvas); }
.st-legal-sections section { display: grid; grid-template-columns: .2fr .8fr; gap: 50px; padding: clamp(54px, 7vw, 100px) 0; border-top: 1px solid var(--st-line); }
.st-legal-sections section > div { max-width: 900px; }
.st-legal-sections h2 { margin-bottom: 28px; font-size: clamp(36px, 4.2vw, 64px); }
.st-legal-sections section p + p,
.st-legal-sections section address + p,
.st-legal-sections section ul { margin-top: 20px; }
.st-legal-sections a { color: var(--st-mediterranean); text-decoration: underline; text-underline-offset: 3px; }
.st-legal-sections__number { color: var(--st-terracotta-deep); font-size: 11px; letter-spacing: .12em; }

/* Footer */
.st-footer { position: relative; min-height: clamp(680px, 84svh, 820px); overflow: hidden; display: grid; grid-template-columns: .9fr 1.1fr; column-gap: clamp(60px, 8vw, 130px); row-gap: clamp(34px, 4svh, 52px); align-content: center; padding: clamp(64px, 7svh, 90px) var(--st-pad) 28px; color: var(--st-broken-white); background: var(--st-graphite); border-top: 1px solid rgb(216 189 152 / 70%); }
.st-footer::before { position: absolute; z-index: 2; top: -1px; right: var(--st-pad); width: clamp(120px, 12vw, 190px); height: 8px; content: ""; background: var(--st-awning); }
.st-footer__art { display: none; }
.st-footer > *:not(.st-footer__art) { position: relative; z-index: 1; min-width: 0; }
.st-footer__brand { align-self: center; }
.st-footer__brand img { width: clamp(210px, 21vw, 310px); height: 96px; object-fit: contain; object-position: left center; filter: brightness(0) saturate(100%) invert(79%) sepia(24%) saturate(495%) hue-rotate(351deg) brightness(92%) contrast(88%); }
.st-footer__brand p { max-width: 380px; margin-top: 22px !important; color: var(--st-sand); font-size: 15px; }
.st-footer__cta { align-self: center; }
.st-footer__cta .st-kicker { color: var(--st-terracotta); }
.st-footer__cta h2 { max-width: 14ch; margin: 18px 0 22px; font-size: clamp(42px, min(4.7vw, 7svh), 72px); color: var(--st-broken-white); text-wrap: balance; }
.st-footer__cta .st-text-link { color: var(--st-sand); }
.st-footer__columns { grid-column: 1 / -1; display: grid; grid-template-columns: .8fr 1.2fr .8fr; gap: clamp(40px, 8vw, 130px); padding-top: 32px; border-top: 1px solid rgb(255 250 241 / 18%); }
.st-footer nav { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.st-footer nav > p,
.st-footer__contact > p { margin-bottom: 18px; color: var(--st-terracotta); font-size: 10px; font-weight: 650; letter-spacing: .15em; text-transform: uppercase; }
.st-footer nav a { min-height: 44px; display: flex; align-items: center; font-size: 14px; }
.st-footer__contact address { color: var(--st-sand); font-size: 14px; }
.st-footer__contact a { min-height: 44px; display: inline-flex; align-items: center; margin-top: 10px; color: var(--st-broken-white); border-bottom: 1px solid var(--st-terracotta); }
.st-footer__base { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); align-items: center; gap: 24px; padding-top: 20px; color: var(--st-sand); border-top: 1px solid rgb(255 250 241 / 12%); font-size: 9px; letter-spacing: .11em; text-transform: uppercase; }
.st-footer__base p:nth-child(2) { text-align: center; }
.st-footer__base p:last-child { text-align: right; }
.st-footer__base a { color: inherit; }

/* Motion is opt-in. Without JavaScript every chapter is visible. */
body.theme-st-tropez.st-motion-ready [data-st-reveal] { opacity: 0; transform: translate3d(0, 42px, 0); clip-path: inset(0 0 10% 0); transition: opacity 900ms ease, transform 1100ms cubic-bezier(.16,.75,.25,1), clip-path 1100ms cubic-bezier(.16,.75,.25,1); }
body.theme-st-tropez.st-motion-ready [data-st-reveal].st-is-visible { opacity: 1; transform: translate3d(0, 0, 0); clip-path: inset(0); }
body.theme-st-tropez [data-st-depth] { will-change: auto; }
body.theme-st-tropez [data-st-depth].st-depth-active { will-change: transform; }

/* Mesanges-inspired scene choreography: pronounced, editorial and still content-first. */
body.theme-st-tropez.st-motion-ready .st-editorial-intro::before {
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 1500ms cubic-bezier(.76,0,.24,1);
}
body.theme-st-tropez.st-motion-ready .st-editorial-intro:has(.st-kicker.st-is-visible)::before {
  transform: scaleX(1);
  transform-origin: left center;
}
body.theme-st-tropez.st-motion-ready .st-editorial-intro__grid > div[data-st-reveal] {
  transform: translate3d(110px, 0, 0);
  clip-path: inset(0 0 0 30%);
  transition-duration: 1200ms, 1500ms, 1500ms;
  transition-delay: 180ms;
}
body.theme-st-tropez.st-motion-ready .st-editorial-intro__grid > div[data-st-reveal].st-is-visible {
  transform: translate3d(0, 0, 0);
  clip-path: inset(0);
}
body.theme-st-tropez.st-motion-ready .st-line-art[data-st-reveal] {
  transform: translate3d(0, 130px, 0);
  clip-path: inset(100% 0 0);
  transition: opacity 1200ms ease 180ms, transform 1900ms cubic-bezier(.16,.75,.25,1) 100ms, clip-path 1900ms cubic-bezier(.16,.75,.25,1) 100ms;
}
body.theme-st-tropez.st-motion-ready .st-line-art[data-st-reveal].st-is-visible {
  transform: translate3d(0, 0, 0);
  clip-path: inset(0);
}
body.theme-st-tropez.st-motion-ready .st-section-heading[data-st-reveal] {
  transform: translate3d(92px, 0, 0);
  clip-path: inset(0 0 0 18%);
  transition: opacity 950ms ease, transform 1500ms cubic-bezier(.16,.75,.25,1), clip-path 1500ms cubic-bezier(.16,.75,.25,1);
}
body.theme-st-tropez.st-motion-ready .st-section-heading[data-st-reveal].st-is-visible {
  transform: translate3d(0, 0, 0);
  clip-path: inset(0);
}
body.theme-st-tropez.st-motion-ready .st-lake-chapter__card[data-st-reveal] {
  transform: translate3d(130px, 0, 0) scale(.985);
  clip-path: inset(0 0 0 55%);
  transition: opacity 1000ms ease, transform 1650ms cubic-bezier(.16,.75,.25,1), clip-path 1650ms cubic-bezier(.76,0,.24,1);
}
body.theme-st-tropez.st-motion-ready .st-lake-chapter__card[data-st-reveal].st-is-visible {
  transform: translate3d(0, 0, 0) scale(1);
  clip-path: inset(0);
}
body.theme-st-tropez.st-motion-ready .st-closing[data-st-reveal] {
  transform: translate3d(0, 70px, 0) scale(.975);
  clip-path: inset(14% 0);
  transition: opacity 1100ms ease, transform 1500ms cubic-bezier(.16,.75,.25,1), clip-path 1500ms cubic-bezier(.16,.75,.25,1);
}
body.theme-st-tropez.st-motion-ready .st-closing[data-st-reveal].st-is-visible {
  transform: translate3d(0, 0, 0) scale(1);
  clip-path: inset(0);
}
body.theme-st-tropez.st-motion-ready .st-footer__brand[data-st-reveal] { transform: translate3d(-70px, 0, 0); transition-delay: 60ms; }
body.theme-st-tropez.st-motion-ready .st-footer__cta[data-st-reveal] { transform: translate3d(70px, 0, 0); transition-delay: 160ms; }
body.theme-st-tropez.st-motion-ready .st-footer__columns[data-st-reveal] { transform: translate3d(0, 48px, 0); transition-delay: 260ms; }
body.theme-st-tropez.st-motion-ready .st-footer__base[data-st-reveal] { transform: translate3d(0, 28px, 0); transition-delay: 360ms; }
body.theme-st-tropez.st-motion-ready .st-footer__brand[data-st-reveal].st-is-visible,
body.theme-st-tropez.st-motion-ready .st-footer__cta[data-st-reveal].st-is-visible,
body.theme-st-tropez.st-motion-ready .st-footer__columns[data-st-reveal].st-is-visible,
body.theme-st-tropez.st-motion-ready .st-footer__base[data-st-reveal].st-is-visible { transform: translate3d(0, 0, 0); }

body.theme-st-tropez.st-motion-ready .st-hero-curtain { animation: st-hero-curtain 1250ms cubic-bezier(.76,0,.24,1) 120ms both; }
body.theme-st-tropez.st-motion-ready .st-home-hero > video { animation: st-hero-settle 2200ms cubic-bezier(.16,.75,.25,1) both; }
body.theme-st-tropez.st-motion-ready .st-home-hero h1 span { opacity: 0; animation: st-hero-line 1450ms cubic-bezier(.16,.75,.25,1) 720ms forwards; }
body.theme-st-tropez.st-motion-ready .st-home-hero h1 span:nth-child(2) { animation-delay: 860ms; }
body.theme-st-tropez.st-motion-ready .st-shell[data-st-page="home"] .st-header { opacity: 0; animation: st-header-arrive 900ms ease 1120ms forwards; }
body.theme-st-tropez.st-motion-ready .st-property-story__media,
body.theme-st-tropez.st-motion-ready .st-portfolio-entry__media,
body.theme-st-tropez.st-motion-ready .st-listing__media { position: relative; }
body.theme-st-tropez.st-motion-ready .st-property-story__media::after,
body.theme-st-tropez.st-motion-ready .st-portfolio-entry__media::after,
body.theme-st-tropez.st-motion-ready .st-listing__media::after { position: absolute; z-index: 3; inset: 0; content: ""; background: var(--st-terracotta); transform: scaleX(1); transform-origin: left; transition: transform 1500ms cubic-bezier(.76,0,.24,1) 140ms; pointer-events: none; }
body.theme-st-tropez.st-motion-ready .st-property-story.st-is-visible .st-property-story__media::after,
body.theme-st-tropez.st-motion-ready .st-portfolio-entry.st-is-visible .st-portfolio-entry__media::after,
body.theme-st-tropez.st-motion-ready .st-listing.st-is-visible .st-listing__media::after { transform: scaleX(0); transform-origin: right; }
body.theme-st-tropez.st-motion-ready .st-property-story__media img,
body.theme-st-tropez.st-motion-ready .st-portfolio-entry__media img,
body.theme-st-tropez.st-motion-ready .st-listing__media img { scale: 1.06; transition: scale 1900ms cubic-bezier(.16,.75,.25,1), transform 1900ms cubic-bezier(.16,.75,.25,1); }
body.theme-st-tropez.st-motion-ready .st-property-story.st-is-visible .st-property-story__media img,
body.theme-st-tropez.st-motion-ready .st-portfolio-entry.st-is-visible .st-portfolio-entry__media img,
body.theme-st-tropez.st-motion-ready .st-listing.st-is-visible .st-listing__media img { scale: 1; }
body.theme-st-tropez.st-motion-ready .st-property-story__card,
body.theme-st-tropez.st-motion-ready .st-portfolio-entry__copy,
body.theme-st-tropez.st-motion-ready .st-listing__card { opacity: 0; transform: translate3d(72px, 0, 0); transition: opacity 1200ms ease 420ms, transform 1600ms cubic-bezier(.16,.75,.25,1) 300ms; }
body.theme-st-tropez.st-motion-ready .st-property-story:nth-child(even) .st-property-story__card,
body.theme-st-tropez.st-motion-ready .st-portfolio-entry:nth-child(even) .st-portfolio-entry__copy,
body.theme-st-tropez.st-motion-ready .st-listing:nth-child(even) .st-listing__card { transform: translate3d(-72px, 0, 0); }
body.theme-st-tropez.st-motion-ready .st-property-story.st-is-visible .st-property-story__card,
body.theme-st-tropez.st-motion-ready .st-portfolio-entry.st-is-visible .st-portfolio-entry__copy,
body.theme-st-tropez.st-motion-ready .st-listing.st-is-visible .st-listing__card { opacity: 1; transform: translate3d(0, 0, 0); }

@keyframes st-hero-settle {
  from { opacity: .35; transform: translate3d(0, var(--st-depth-y, 0), 0) scale(1.095); }
  to { opacity: 1; transform: translate3d(0, var(--st-depth-y, 0), 0) scale(1.025); }
}

@keyframes st-hero-curtain {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(0, -101%, 0); }
}

@keyframes st-hero-line {
  from { opacity: 0; transform: translate3d(0, 42px, 0); clip-path: inset(0 0 100% 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); clip-path: inset(0); }
}

@keyframes st-header-arrive {
  from { opacity: 0; transform: translate3d(0, -18px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (hover: hover) and (pointer: fine) {
  .st-property-story__media img,
  .st-portfolio-entry__media img,
  .st-listing__media img,
  .st-property-gallery img { transition: transform 1.1s cubic-bezier(.16,.75,.25,1), filter .8s ease; }
  .st-property-story__media:hover img,
  .st-portfolio-entry__media:hover img,
  .st-listing__media:hover img,
  .st-property-gallery button:hover img { transform: translate3d(0, var(--st-depth-y, 0), 0) scale(1.075); filter: saturate(1.05); }
}

/* iPad landscape: retain the full hero composition without compressing navigation or its aside. */
@media (max-width: 1280px) and (min-width: 769px) {
  .st-header { grid-template-columns: minmax(0, 1fr) auto; gap: 24px; }
  .st-nav--desktop { display: none; }
  .st-menu { display: block; }
  .st-menu[open] { position: fixed; z-index: 50; inset: 0; width: 100vw; height: 100svh; overflow-y: auto; padding: 17px var(--st-pad); color: var(--st-mediterranean-deep); background: var(--st-white); }
  .st-menu[open] summary { justify-content: flex-end; }
  .st-menu[open] nav { min-height: calc(100svh - 92px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; }
  .st-menu[open] nav a { width: 100%; min-height: 62px; font-family: "Commissioner Capecchi", sans-serif; font-size: clamp(27px, 8vw, 42px); font-weight: 360; letter-spacing: -.025em; text-transform: none; border-bottom: 1px solid var(--st-line); }
  body.theme-st-tropez .st-home-hero > video { inset: -6%; width: 112%; height: 112%; }
  .st-home-hero__copy { grid-template-columns: minmax(0, 1fr) minmax(320px, .5fr); gap: clamp(32px, 4vw, 52px); }
  .st-home-hero h1 { font-size: clamp(68px, 8.3vw, 110px); }
}

@media (max-width: 768px) {
  :root { --st-pad: clamp(20px, 6vw, 46px); }
  .st-header { min-height: 82px; grid-template-columns: 1fr auto; padding-block: 8px; }
  .st-header::after { right: var(--st-pad); width: 130px; }
  .st-brand { width: 150px; height: 60px; }
  .st-nav--desktop { display: none; }
  .st-menu { display: block; }
  .st-menu[open] { position: fixed; z-index: 50; inset: 0; width: 100vw; height: 100svh; overflow-y: auto; padding: 17px var(--st-pad); color: var(--st-mediterranean-deep); background: var(--st-white); }
  .st-menu[open] summary { justify-content: flex-end; }
  .st-menu[open] nav { min-height: calc(100svh - 92px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; }
  .st-menu[open] nav a { width: 100%; min-height: 62px; font-family: "Commissioner Capecchi", sans-serif; font-size: clamp(27px, 8vw, 42px); font-weight: 360; letter-spacing: -.025em; text-transform: none; border-bottom: 1px solid var(--st-line); }
  .st-home-hero__copy { box-sizing: border-box; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: 34px; padding-top: 150px; padding-bottom: 90px; }
  .st-home-hero__copy > p { top: 108px; }
  .st-home-hero h1 { max-width: calc(100vw - 2 * var(--st-pad)); font-size: clamp(54px, 13vw, 76px); }
  .st-home-hero__aside { min-width: 0; width: 100%; max-width: 520px; padding: 18px 0 0; border-top: 1px solid rgb(255 255 255 / 50%); border-left: 0; }
  .st-home-hero__aside p { overflow-wrap: break-word; }
  .st-scroll-cue { display: none; }
  .st-editorial-intro { min-height: auto; }
  .st-editorial-intro__grid,
  .st-section-heading,
  .st-page-intro,
  .st-property-intro,
  .st-listing-description,
  .st-management-intro,
  .st-market-hero,
  .st-contact-intro,
  .st-news-intro,
  .st-legal-hero,
  .st-form-shell { grid-template-columns: 1fr; }
  .st-editorial-intro h2 { font-size: clamp(48px, 13vw, 78px); }
  .st-section-heading .st-text-link,
  .st-page-intro h1,
  .st-page-intro > p:last-of-type,
  .st-market-hero h1,
  .st-market-hero > p:last-of-type,
  .st-market-hero > .st-text-link,
  .st-contact-intro h1,
  .st-contact-intro > div,
  .st-news-intro h1,
  .st-news-intro > p:last-child,
  .st-legal-hero h1,
  .st-legal-hero > p:last-child { grid-column: 1; }
  .st-property-story,
  .st-property-story:nth-child(even),
  .st-portfolio-entry,
  .st-portfolio-entry:nth-child(even),
  .st-listing,
  .st-listing:nth-child(even) { min-height: auto; display: flex; flex-direction: column; align-items: stretch; }
  .st-property-rail { width: 100%; display: block; overflow: visible; padding: 0; margin: 0; }
  .st-property-story + .st-property-story { margin-top: 82px; }
  body.theme-st-tropez.st-rail-ready .st-rail-controls { display: none; }
  body.theme-st-tropez.st-rail-ready .st-property-story:not([aria-current="true"]) { opacity: 1; }
  .st-property-story__media,
  .st-portfolio-entry__media,
  .st-listing__media,
  .st-property-story:nth-child(even) .st-property-story__media,
  .st-portfolio-entry:nth-child(even) .st-portfolio-entry__media,
  .st-listing:nth-child(even) .st-listing__media { height: min(118vw, 720px); order: 1; }
  .st-property-story__card,
  .st-property-story:nth-child(even) .st-property-story__card,
  .st-portfolio-entry__copy,
  .st-portfolio-entry:nth-child(even) .st-portfolio-entry__copy,
  .st-listing__card,
  .st-listing:nth-child(even) .st-listing__card { width: 100%; order: 2; margin: 0; padding: 40px 28px; background: var(--st-white); backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; }
  body.theme-st-tropez.st-motion-ready .st-property-story__card,
  body.theme-st-tropez.st-motion-ready .st-property-story:nth-child(even) .st-property-story__card,
  body.theme-st-tropez.st-motion-ready .st-portfolio-entry__copy,
  body.theme-st-tropez.st-motion-ready .st-portfolio-entry:nth-child(even) .st-portfolio-entry__copy,
  body.theme-st-tropez.st-motion-ready .st-listing__card,
  body.theme-st-tropez.st-motion-ready .st-listing:nth-child(even) .st-listing__card { transform: translate3d(0, 30px, 0); }
  body.theme-st-tropez.st-motion-ready .st-property-story.st-is-visible .st-property-story__card,
  body.theme-st-tropez.st-motion-ready .st-portfolio-entry.st-is-visible .st-portfolio-entry__copy,
  body.theme-st-tropez.st-motion-ready .st-listing.st-is-visible .st-listing__card { transform: translate3d(0, 0, 0); }
  .st-lake-chapter { min-height: 100svh; align-items: end; padding-bottom: 46px; }
  .st-lake-chapter::after { background: linear-gradient(0deg, rgb(7 56 77 / 74%), transparent 72%); }
  .st-lake-chapter__card { width: 100%; padding: 32px 28px; }
  .st-rentals-ribbon { grid-template-columns: 1fr; }
  .st-page-intro,
  .st-market-hero,
  .st-contact-intro,
  .st-news-intro,
  .st-legal-hero { min-height: auto; padding-top: 150px; }
  .st-page-intro h1,
  .st-market-hero h1,
  .st-contact-intro h1,
  .st-news-intro h1,
  .st-legal-hero h1 { font-size: clamp(60px, 17vw, 104px); }
  .st-property-hero__copy h1,
  .st-listing-hero__copy h1,
  .st-management-hero__copy h1 { font-size: clamp(46px, 12.5vw, 84px); overflow-wrap: normal; hyphens: none; }
  .st-property-feature { min-height: 80svh; padding: 20px; }
  .st-property-feature button { height: calc(80svh - 40px); }
  .st-property-gallery,
  .st-listing-gallery { grid-template-columns: 1fr; gap: 60px; }
  .st-property-gallery__item,
  .st-property-gallery__item:nth-child(even),
  .st-property-gallery__item:nth-child(3n),
  .st-listing-gallery figure,
  .st-listing-gallery figure:nth-child(even),
  .st-listing-gallery figure:nth-child(3n) { grid-column: 1; }
  .st-property-film,
  .st-listing-videos,
  .st-property-address,
  .st-listing-contact,
  .st-listing-resources { grid-template-columns: 1fr; }
  .st-property-availability { grid-template-columns: 1fr; }
  .st-management-story { min-height: auto; grid-template-columns: auto 1fr; }
  .st-management-story > p,
  .st-management-story > div:last-child { grid-column: 2; }
  .st-listing-facts dl { grid-template-columns: repeat(2, 1fr); }
  .st-listing-resources > div:last-child { grid-template-columns: 1fr; }
  .st-form { padding: 34px 24px; box-shadow: 12px 14px 0 var(--st-sand); }
  .st-legal-sections section { grid-template-columns: 48px 1fr; gap: 20px; }
  .st-footer { min-height: 0; grid-template-columns: 1fr; gap: 72px; }
  .st-footer__columns { grid-template-columns: 1fr 1fr; gap: 52px 30px; }
  .st-footer__contact { grid-column: 1 / -1; }
  .st-footer__base { grid-template-columns: 1fr 1fr; }
  .st-footer__base p:nth-child(2) { text-align: right; }
  .st-footer__base p:last-child { grid-column: 1 / -1; text-align: left; }
  .st-footer__art { width: 120%; }
  body.theme-st-tropez.st-motion-ready .st-editorial-intro__grid > div[data-st-reveal],
  body.theme-st-tropez.st-motion-ready .st-section-heading[data-st-reveal],
  body.theme-st-tropez.st-motion-ready .st-lake-chapter__card[data-st-reveal],
  body.theme-st-tropez.st-motion-ready .st-footer__brand[data-st-reveal],
  body.theme-st-tropez.st-motion-ready .st-footer__cta[data-st-reveal] {
    transform: translate3d(0, 28px, 0);
    clip-path: inset(0 0 8% 0);
    transition-duration: 750ms, 900ms, 900ms;
  }
  body.theme-st-tropez.st-motion-ready .st-editorial-intro__grid > div[data-st-reveal].st-is-visible,
  body.theme-st-tropez.st-motion-ready .st-section-heading[data-st-reveal].st-is-visible,
  body.theme-st-tropez.st-motion-ready .st-lake-chapter__card[data-st-reveal].st-is-visible,
  body.theme-st-tropez.st-motion-ready .st-footer__brand[data-st-reveal].st-is-visible,
  body.theme-st-tropez.st-motion-ready .st-footer__cta[data-st-reveal].st-is-visible {
    transform: translate3d(0, 0, 0);
    clip-path: inset(0);
  }
  body.theme-st-tropez.st-motion-ready .st-home-hero h1 span { animation-name: st-hero-line-mobile; }
  body.theme-st-tropez.st-motion-ready .st-property-story__media::after,
  body.theme-st-tropez.st-motion-ready .st-portfolio-entry__media::after,
  body.theme-st-tropez.st-motion-ready .st-listing__media::after { transition-duration: 900ms; }
  body.theme-st-tropez [data-st-depth] { will-change: auto; }
}

@media (max-width: 412px) {
  .st-header::after { height: 5px; bottom: -5px; width: 104px; }
  .st-brand { width: 138px; }
  .st-home-hero h1 { font-size: clamp(52px, 14.5vw, 62px); }
  .st-home-hero__aside p { font-size: 15px; }
  .st-film-control { right: 18px; bottom: 18px; }
  .st-property-stories,
  .st-portfolio-grid,
  .st-market-grid,
  .st-management-stories,
  .st-property-gallery,
  .st-listing-gallery { padding-inline: 18px; }
  .st-form__grid { grid-template-columns: 1fr; }
  .st-listing-facts dl { grid-template-columns: 1fr; }
  .st-legal-sections section { grid-template-columns: 1fr; }
  .st-footer__columns { grid-template-columns: 1fr; }
  .st-footer__contact { grid-column: 1; }
  .st-footer__base { grid-template-columns: 1fr; }
  .st-footer__base p:nth-child(2),
  .st-footer__base p:last-child { grid-column: 1; text-align: left; }
  .st-footer__brand img { width: 220px; height: 88px; }
  .st-footer__cta h2 { font-size: 48px; }
}

@media (max-width: 390px) {
  :root { --st-pad: 18px; }
  .st-header { min-height: 76px; }
  .st-home-hero__copy { padding-top: 128px; padding-bottom: 78px; }
  .st-home-hero__copy > p { top: 96px; }
  .st-home-hero h1 { font-size: 54px; }
  .st-page-intro h1,
  .st-market-hero h1,
  .st-contact-intro h1,
  .st-news-intro h1,
  .st-legal-hero h1 { font-size: 56px; }
  .st-status-card { padding: 42px 24px; }
  .st-status-card h1 { font-size: clamp(44px, 14vw, 58px); }
}

@media (pointer: coarse) {
  body.theme-st-tropez [data-st-depth] { transform: none !important; will-change: auto; }
  .st-button:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  body.theme-st-tropez *,
  body.theme-st-tropez *::before,
  body.theme-st-tropez *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  body.theme-st-tropez [data-st-reveal] { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  body.theme-st-tropez [data-st-depth] { transform: none !important; will-change: auto; }
}

@keyframes st-hero-line-mobile {
  from { opacity: 0; transform: translate3d(0, 20px, 0); clip-path: inset(0 0 100% 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); clip-path: inset(0); }
}
