:root {
  --paper: #f6f1e8;
  --ink: #25231e;
  --line: #d2c4ae;
  --coal: #1e201d;
  --gold: #d3ad7b;
  --stone: #eae0d0;
  --porcelain: #fffaf0;
  --soft-ink: #5f5548;
}

.header:not(.header--home) { background: #20221f; }
.header .pill { border-color: #d9bf9d99; }
.hero-lockup .mark { filter: drop-shadow(0 3px 22px #17120baa); }
.hero-copy .eyebrow { font-weight: 500; }
.hero-cta { letter-spacing: .025em; }

.practice { background: var(--paper); }
.practice-intro {
  display: grid;
  grid-template-columns: minmax(0,1.25fr) minmax(0,.75fr);
  gap: clamp(26px,7vw,110px);
  align-items: end;
  margin-bottom: clamp(35px,5.5vw,80px);
}
.practice-intro .eyebrow, .estate-directory .eyebrow { color: #805b32; margin-bottom: 18px; }
.practice-intro h2 { max-width: 10.5ch; font-size: clamp(3.7rem,8.2vw,8.6rem); }
.practice-intro .intro { max-width: 39ch; }
.practice-intro .light-link { margin-top: 20px; }

.practice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.practice-card {
  display: grid;
  position: relative;
  align-items: end;
  min-height: clamp(340px,35vw,520px);
  overflow: hidden;
  isolation: isolate;
  background: #483f34;
  color: var(--porcelain);
}
.practice-card img { position: absolute; inset: 0; z-index: -2; transition: transform .8s var(--ease-out); }
.practice-card::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg,#0f110d00 20%,#14130f55 49%,#171610e8 100%);
}
.practice-card:nth-child(2) img { object-position: 65% center; }
.practice-copy { position: relative; padding: clamp(20px,2.5vw,41px); }
.practice-copy .eyebrow { color: #f0d5af; }
.practice-copy h3 { font-size: clamp(2.35rem,3.9vw,5.25rem); margin-block: 11px; }
.practice-copy p { max-width: 34ch; color: #fff4e3; font-size: .91rem; }
.practice-copy .round { margin-top: 21px; width: 43px; height: 43px; }
.practice-card:is(:hover,:focus-visible) img { transform: scale(1.055); }
.practice-card:is(:hover,:focus-visible) .round { background: var(--porcelain); color: var(--ink); }

.estate-collection { background: #242620; color: var(--porcelain); }
.estate-collection .section-head .eyebrow { color: var(--gold); }
.estate-collection .section-head .text-link { margin-bottom: 7px; color: #f5e7ce; }
.estate-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(14px,3vw,46px); }
.estate-grid--featured { grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(13px,2vw,28px); }
.estate-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  color: var(--ink);
  background: #fff9ee;
  border: 1px solid #d4c5ac;
}
.estate-collection .estate-card { background: #2b2d26; color: var(--porcelain); border-color: #c4a47551; }
.estate-card[hidden] { display: none; }
.estate-media { aspect-ratio: 1.47; position: relative; overflow: hidden; background: #8c7f6c; }
.estate-media > a { display: block; height: 100%; }
.estate-media > a:focus-visible { outline-offset: -5px; }
.estate-media img { transition: transform .75s var(--ease-out); }
.estate-card:has(.estate-media a:hover) img, .estate-card:has(h3 a:hover) img { transform: scale(1.055); }
.estate-badge {
  position: absolute; inset: 13px auto auto 13px;
  padding: 5px 8px; background: #27231de6; color: var(--porcelain);
  font-size: .66rem; line-height: 1.4; pointer-events: none;
}
.estate-favorite {
  display: none;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  border: 1px solid #f2dfc58c;
  background: #211d18b8;
  color: #fff8ec;
  backdrop-filter: blur(8px);
  border-radius: 50%;
  transition: background .25s, color .25s;
}
.favourites-enabled .estate-favorite { display: grid; }
.estate-favorite span { font-size: 1.37rem; line-height: 1; }
.estate-favorite:hover, .estate-favorite[aria-pressed=true] { background: #f7ead5; color: #392a20; }
.estate-media .estate-favorite { position: absolute; top: 12px; right: 12px; }
.estate-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: clamp(17px,2.15vw,32px);
}
.estate-card-body .eyebrow { color: #805b32; margin-bottom: 9px; }
.estate-collection .estate-card-body .eyebrow { color: #e2c18d; }
.estate-card h3 { font-size: clamp(1.9rem,3.5vw,4rem); line-height: 1.05; }
.estate-grid--featured .estate-card h3 { font-size: clamp(1.95rem,2.85vw,3.2rem); }
.estate-summary { font-size: .88rem; margin: 10px 0 18px; color: var(--soft-ink); }
.estate-collection .estate-summary { color: #e3d9c9; }
.estate-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px 13px;
  margin-top: auto;
  border-top: 1px solid #b09a785c;
  padding-top: 12px;
  font-size: .77rem;
}
.estate-meta > span + span::before { content: '·'; margin-right: 13px; color: #a98a64; }
.estate-arrow {
  margin-left: auto;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid #b49a76;
  border-radius: 50%;
  transition: background .25s, color .25s, border-color .25s;
}
.estate-arrow:hover { background: var(--ink); color: var(--porcelain); border-color: var(--ink); }
.estate-collection .estate-arrow:hover { background: var(--porcelain); color: var(--ink); border-color: var(--porcelain); }

.estate-directory .section-head { margin-bottom: 14px; }
.estate-note { color: var(--soft-ink); margin-bottom: 26px; }
.estate-filter {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) auto;
  align-items: end; gap: 15px;
  padding: clamp(16px,2.6vw,32px); background: var(--stone);
  border: 1px solid #d5c3a9;
}
.estate-filter[hidden] { display: none; }
.estate-filter label { display: grid; gap: 7px; font-size: .79rem; font-weight: 700; }
.estate-filter select, .estate-saved {
  min-height: 47px; width: 100%; padding: 7px 12px;
  color: var(--ink); background: #fff9ed; border: 1px solid #a89476; border-radius: 0;
  font-size: .83rem;
}
.estate-saved { display: flex; align-items: center; justify-content: center; gap: 7px; }
.estate-saved[aria-pressed=true] { color: var(--porcelain); background: var(--ink); }
.estate-saved span { font-size: 1.15rem; }
.estate-results { display: flex; justify-content: space-between; align-items: center; gap: 14px; min-height: 62px; font-size: .86rem; color: var(--soft-ink); }
.quiet-button { color: var(--ink); background: none; border: 0; padding: 8px 0; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.estate-empty { padding: 35px; border: 1px solid var(--line); }
.estate-empty h3 { font-size: clamp(1.9rem,3vw,3rem); }

.property-hero .shell { padding-block: clamp(44px,7vw,100px); }
.property-hero h1 { font-size: clamp(3.25rem,9vw,9.2rem); text-wrap: balance; }
.property-hero img, .page-estate .detail-hero img { object-position: 50% 59%; }
.property-nav { display: flex; align-items: center; justify-content: space-between; padding-block: 15px; border-bottom: 1px solid var(--line); }
.property-nav > a { min-height: 44px; display: inline-flex; align-items: center; gap: 10px; font-size: .9rem; }
.property-nav > a:hover { text-decoration: underline; }
.property-nav .estate-favorite { background: #292720; }
.property-nav .estate-favorite[aria-pressed=true], .property-nav .estate-favorite:hover { background: var(--stone); color: var(--ink); border-color: #a78e6f; }
.property-overview {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr);
  gap: clamp(30px,7vw,110px);
  align-items: start;
}
.property-overview h2 { margin-bottom: 22px; }
.property-features { list-style: none; margin: 25px 0 0; padding: 0; }
.property-features li { display: flex; align-items: center; gap: 14px; padding: 11px 0; border-top: 1px solid var(--line); }
.property-features li::before { content: ''; width: 6px; height: 6px; rotate: 45deg; background: #94764e; flex: 0 0 auto; }
.property-facts { padding: clamp(20px,4vw,50px); border: 1px solid #ceb99c; background: var(--stone); }
.property-facts dl { margin: 0 0 17px; }
.property-facts dl div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; padding: 12px 0; border-bottom: 1px solid #c6b398; }
.property-facts dt { color: var(--soft-ink); }
.property-facts dd { margin: 0; font-weight: 700; }
.property-facts p { font-size: .83rem; color: var(--soft-ink); }
.property-reference[hidden] { display: none; }

.enquiry-editorial {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  background: #252622;
  color: var(--porcelain);
}
.enquiry-editorial figure { min-height: 440px; }
.enquiry-copy { display: grid; align-content: center; justify-items: start; padding: clamp(29px,7vw,110px); }
.enquiry-copy .eyebrow { color: var(--gold); margin-bottom: 15px; }
.enquiry-copy h2 { font-size: clamp(3.3rem,6.5vw,7rem); }
.enquiry-copy p:not(.eyebrow) { color: #e9dfce; margin-top: 19px; }
.enquiry-copy .text-link { margin-top: 25px; }

.faq { background: #eae0d0; }
.faq-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(28px,6vw,90px); }
.faq-grid h2 { font-size: clamp(3rem,5.5vw,5.8rem); }
.faq details { border-top: 1px solid #ae997e; }
.faq details:last-child { border-bottom: 1px solid #ae997e; }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 56px; padding: 13px 0; cursor: pointer; font-weight: 700; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary span { display: grid; place-items: center; flex: 0 0 auto; width: 32px; height: 32px; border: 1px solid #ac9475; border-radius: 50%; }
.faq summary span::before { content: '+'; }
.faq details[open] summary span::before { content: '−'; }
.faq details p { padding: 0 36px 19px 0; color: var(--soft-ink); }
.faq details[open] p { animation: rise .4s var(--ease-out) both; }

@media (min-width: 761px) and (max-width: 1050px) {
  .header { gap: 12px; padding-inline: 18px; }
  .header .nav { gap: 12px; font-size: .76rem; }
  .header .nav .pill { padding-inline: 10px; }
  .header .brand { gap: 10px; }
  .header .brand-text { padding-left: 10px; }
  .header .brand-text b { font-size: 1.12rem; }
  .header .brand .mark { width: 37px; height: 37px; }
}
@media (max-width: 760px) {
  .practice-intro, .property-overview, .enquiry-editorial, .faq-grid { grid-template-columns: minmax(0,1fr); }
  .practice-intro h2 { font-size: clamp(3.45rem,11.7vw,5.7rem); }
  .practice-grid { grid-template-columns: 1fr; gap: 9px; }
  .practice-card { min-height: 322px; }
  .estate-grid, .estate-grid--featured { grid-template-columns: minmax(0,1fr); }
  .estate-filter { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .estate-filter select { min-width: 0; }
  .estate-grid--featured .estate-card h3 { font-size: 2.4rem; }
  .enquiry-editorial figure { min-height: 0; aspect-ratio: 1.42; }
  .enquiry-copy { padding: 42px var(--edge) 58px; }
}
@media (max-width: 420px) {
  .estate-filter select { font-size: .76rem; padding-inline: 7px; }
}
@font-face {
  font-family: Cormorant;
  src: url('/assets/cormorant-latin.woff2') format('woff2');
  font-weight: 300 700;
  font-display: swap;
}
@font-face {
  font-family: Cormorant;
  src: url('/assets/cormorant-latin-ext.woff2') format('woff2');
  font-weight: 300 700;
  font-display: swap;
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
:root { --serif: Cormorant, Instrument, Georgia, serif; }
h1, h2, h3 { font-weight: 500; line-height: .99; }
.hero-copy h2 { transform: none; letter-spacing: -.06em; font-size: clamp(2.95rem,4.5vw,5.5rem); }
.practice-intro h2 { max-width: 11.5ch; }
.explorer-copy h2 { max-width: 13ch; }
.detail-hero h1 { overflow-wrap: anywhere; }
.detail-grid .steps { border-top: 1px solid #c0af95; }
.detail-grid .steps li:first-child { border-top: 0; }
@media (max-width: 760px) {
  .hero-copy h2 { font-size: clamp(3.35rem,11vw,4.9rem); }
}
.editorial-image { position: relative; isolation: isolate; display: grid; min-height: min(690px,73svh); align-items: end; color: var(--porcelain); background: #4f4737; }
.editorial-image-media { position: absolute; inset: 0; z-index: -2; }
.editorial-image::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,#19171100 20%,#1d1a1455 56%,#1d1a14e3 100%); }
.editorial-image-inner { padding-block: clamp(38px,7vw,102px); }
.editorial-image-inner h2 { max-width: 15ch; }
.editorial-image-inner p { margin-top: 15px; color: #fff0da; max-width: 45ch; }
.editorial-image-inner .text-link { margin-top: 23px; }
.page-projects .portfolio { padding-top: clamp(40px,6vw,92px); }
.page-projects .detail-hero img { object-position: 50% 55%; }
.contact-portrait { aspect-ratio: 1.23; margin-top: 28px; background: #897958; }
.page-contact .project-form { background: #ece1cf; border: 1px solid #ccba9d; }
.page-contact .form-actions button { background: #302a23; color: #fff4e0; border-color: #302a23; }
.page-contact .form-actions button:hover { background: #563d2a; border-color: #563d2a; }
@media (max-width: 760px) {
  .editorial-image { min-height: 420px; }
  .contact-portrait { display: none; }
}
.page-estate .detail-hero .text-link { margin-top: 22px; }
::view-transition { pointer-events: none; }
.property-hero .text-link { margin-top: 20px; }
