:root {
  --wine: #641f34;
  --wine-deep: #3e1020;
  --wine-light: #8c4057;
  --cream: #f8f2e8;
  --cream-deep: #eadccb;
  --paper: #fffaf2;
  --gold: #b88b47;
  --ink: #292022;
  --muted: #776a68;
  --line: rgba(100,31,52,.19);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; color: var(--ink); background: var(--cream); font-family: var(--sans);
  font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; height: auto; }
button, summary { font: inherit; }
::selection { background: var(--wine); color: var(--cream); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.skip-link { position: fixed; z-index: 100; top: .7rem; left: .7rem; padding: .7rem 1rem; background: var(--paper); transform: translateY(-170%); }
.skip-link:focus { transform: none; }

.utility-bar { padding: .46rem 1rem; color: #eadfcf; background: var(--wine-deep); }
.utility-bar > div {
  width: min(100%, var(--max)); margin: auto; display: flex; justify-content: space-between; gap: .5rem 1.5rem;
  font-size: .62rem; letter-spacing: .08em; text-transform: uppercase;
}
.utility-bar span:nth-child(2) { display: none; }
.utility-bar a { color: #fff; font-weight: 700; }
.site-header { position: absolute; z-index: 20; left: 0; right: 0; color: var(--cream); background: rgba(100,31,52,.96); }
.header-inner {
  width: min(calc(100% - 2rem), var(--max)); min-height: 82px; margin: auto;
  display: flex; align-items: center; gap: 1.3rem; border-bottom: 1px solid rgba(255,255,255,.18);
}
.brand { width: 155px; }
.brand img { width: 100%; }
.desktop-nav { display: none; }
.nav-button {
  display: none; margin-left: auto; padding: .65rem 1rem; border: 1px solid rgba(255,255,255,.45);
  font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.nav-button:hover { color: var(--wine); background: var(--cream); }
.mobile-menu { margin-left: auto; position: relative; }
.mobile-menu summary { width: 38px; height: 38px; list-style: none; display: grid; align-content: center; gap: 7px; cursor: pointer; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu summary span { display: block; height: 1px; background: currentColor; }
.mobile-menu nav {
  position: absolute; top: 2.75rem; right: 0; width: min(82vw, 280px); padding: .6rem;
  display: grid; color: var(--wine-deep); background: var(--paper); box-shadow: 0 18px 40px rgba(41,15,25,.28);
}
.mobile-menu nav a { padding: .78rem; border-bottom: 1px solid var(--line); }
.mobile-menu nav a:last-child { border: 0; }

.hero {
  min-height: 820px; display: grid; padding: 7.6rem 1rem 0;
  background: linear-gradient(120deg, var(--wine) 0 62%, var(--cream) 62%);
}
.hero-copy { color: var(--cream); padding: 2.4rem 0 3.2rem; }
.eyebrow { margin: 0 0 1rem; color: var(--gold); font-size: .67rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.hero h1 { margin: 0; max-width: 760px; font: 400 clamp(3rem, 11vw, 6.6rem)/.93 var(--serif); letter-spacing: -.055em; }
.hero h1 em { color: #e3cda8; font-weight: 400; }
.lead { max-width: 660px; margin: 1.6rem 0 0; color: #e4d6d4; font-size: clamp(1rem, 2.2vw, 1.18rem); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 2rem; }
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 1rem; min-height: 52px;
  padding: .82rem 1.3rem; font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase;
}
.button-wine { color: var(--wine); background: var(--cream); }
.button-wine:hover { background: #fff; }
.soft-link { padding: .45rem 0; border-bottom: 1px solid #d3aeb9; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.hero-facts { display: grid; gap: .8rem; margin: 2.5rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid rgba(255,255,255,.2); }
.hero-facts div { display: flex; justify-content: space-between; gap: 1rem; }
.hero-facts dt { color: #cbaebb; font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; }
.hero-facts dd { margin: 0; font: 700 .9rem var(--serif); }
.hero-portrait { position: relative; align-self: end; max-width: 500px; margin: auto; }
.portrait-frame {
  margin-inline: 1.1rem; overflow: hidden; border-radius: 220px 220px 0 0; background: var(--paper);
  box-shadow: 0 30px 60px rgba(62,16,32,.14);
}
.portrait-frame img { width: 100%; aspect-ratio: .79; object-fit: cover; object-position: 50% 20%; }
.portrait-caption {
  margin-inline: 1.1rem; padding: .8rem 0; display: flex; justify-content: space-between; gap: 1rem;
  border-bottom: 1px solid var(--line); color: var(--wine); font-size: .67rem; letter-spacing: .08em; text-transform: uppercase;
}
.portrait-seal {
  position: absolute; right: -.1rem; bottom: 4.3rem; width: 76px; height: 76px; display: grid; place-items: center; align-content: center;
  color: var(--cream); background: var(--wine-deep); border: 4px solid var(--cream); border-radius: 50%; transform: rotate(6deg);
}
.portrait-seal strong { font: 700 1.15rem var(--serif); }
.portrait-seal span { font-size: .46rem; letter-spacing: .14em; text-transform: uppercase; }

.manifesto {
  padding: 4.5rem 1rem; display: grid; gap: 1.5rem; color: var(--cream); background: var(--wine-deep);
}
.manifesto > * { width: min(100%, var(--max)); margin-inline: auto; }
.manifesto-index { color: var(--gold); font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; }
.manifesto blockquote { margin-block: 0; font: 400 clamp(1.9rem, 6vw, 4.1rem)/1.13 var(--serif); }
.manifesto > p:last-child { max-width: 620px; margin-left: max(0px, calc((100% - var(--max)) / 2)); color: #cdbdc2; }

.practices, .knowledge { padding: 5.5rem 1rem; }
.section-header, .practice-layout, .guidance > *, .about, .knowledge > *, .contact, footer > * {
  width: min(100%, var(--max)); margin-inline: auto;
}
.section-header { display: grid; gap: 1.5rem; margin-bottom: 2.7rem; }
.section-header h2, .guidance h2, .about h2, .knowledge h2, .contact h2 {
  margin: 0; font: 400 clamp(2.3rem, 6vw, 4.7rem)/1 var(--serif); letter-spacing: -.04em;
}
.section-header > p { max-width: 560px; margin: 0; color: var(--muted); }
.practice-layout { display: grid; gap: 1rem; }
.practice-feature {
  position: relative; min-height: 430px; padding: 2rem; display: flex; flex-direction: column; justify-content: flex-end;
  color: var(--cream); background:
    linear-gradient(180deg, transparent, rgba(62,16,32,.98)),
    radial-gradient(circle at 75% 18%, #ab667a, transparent 36%),
    var(--wine);
}
.practice-feature::before { content: "RC"; position: absolute; top: 1.2rem; right: 1.5rem; color: rgba(255,255,255,.1); font: 700 7rem var(--serif); }
.issue { color: #e7cda7; font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; }
.practice-feature h3 { max-width: 460px; margin: .55rem 0 .7rem; font: 400 clamp(2rem, 6vw, 3.4rem)/1 var(--serif); }
.practice-feature p { max-width: 520px; margin: 0; color: #dfd2d6; }
.card-arrow { position: absolute; top: 1.4rem; left: 1.4rem; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; }
.practice-list { border-top: 1px solid var(--wine); }
.practice-list article { display: grid; grid-template-columns: 38px 1fr; gap: .8rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.practice-list article > span { color: var(--gold); font: .72rem var(--serif); }
.practice-list h3 { margin: 0; font: 400 1.25rem var(--serif); }
.practice-list p { margin: .2rem 0 0; color: var(--muted); font-size: .9rem; }

.guidance { padding: 5.5rem 1rem; background: var(--paper); }
.guidance-title { padding-bottom: 2.5rem; }
.guidance ol { padding: 0; list-style: none; border-top: 1px solid var(--wine); }
.guidance li { display: grid; grid-template-columns: 52px 1fr; gap: .7rem; padding: 1.4rem 0; border-bottom: 1px solid var(--line); }
.guidance li > span { width: 34px; height: 34px; display: grid; place-items: center; color: var(--cream); background: var(--wine); border-radius: 50%; font: .78rem var(--serif); }
.guidance h3 { margin: 0; font: 400 1.35rem var(--serif); }
.guidance li p { margin: .35rem 0 0; color: var(--muted); }

.about { padding: 5.5rem 1rem; display: grid; gap: 2.7rem; }
.about-photo { position: relative; max-width: 520px; }
.about-photo img { width: 100%; aspect-ratio: .88; object-fit: cover; object-position: center top; filter: saturate(.85); }
.about-photo > p {
  position: absolute; right: -1px; bottom: -1px; margin: 0; padding: 1rem 1.3rem; color: var(--cream); background: var(--wine);
}
.about-photo > p span { display: block; color: #d7b5c0; font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.about-photo > p strong { font: 400 1.2rem var(--serif); }
.about-copy { align-self: center; }
.about-lead { margin: 1rem 0; font: 400 clamp(1.25rem, 3.4vw, 1.75rem)/1.4 var(--serif); color: var(--wine); }
.about-copy > p:not(.eyebrow):not(.about-lead) { color: var(--muted); }
.team-card { margin-top: 2rem; padding: 1rem 0; border-top: 1px solid var(--wine); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; gap: 1rem; }
.team-card span { display: block; color: var(--muted); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.team-card strong { display: block; margin-top: .3rem; font: 400 1.25rem var(--serif); }
.team-card p { margin: auto 0; color: var(--wine); font-size: .75rem; }

.knowledge { color: var(--cream); background: var(--wine); }
.knowledge > div:first-child { max-width: var(--max); }
.knowledge .eyebrow { color: #e7cda7; }
.knowledge-grid { margin-top: 3rem; display: grid; border-top: 1px solid rgba(255,255,255,.2); }
.knowledge-grid article { padding: 1.5rem 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.knowledge-grid span { color: #d8b06e; font: .72rem var(--serif); }
.knowledge-grid h3 { margin: .55rem 0; font: 400 1.45rem var(--serif); }
.knowledge-grid p { margin: 0; color: #d4c3c8; }

.contact { padding: 5.5rem 1rem; display: grid; gap: 2.5rem; }
.contact-copy > p:not(.eyebrow) { max-width: 540px; color: var(--muted); }
.button-cream { margin-top: 1rem; color: var(--cream); background: var(--wine); }
.button-cream:hover { background: var(--wine-deep); }
.contact-card { padding: 1.5rem; color: var(--cream); background: var(--wine-deep); font-style: normal; }
.card-label { margin: 0 0 1.3rem; color: #c99caf; font-size: .59rem; letter-spacing: .14em; text-transform: uppercase; }
.contact-card > a { display: block; padding: .8rem 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.contact-card .phone { font: 400 1.9rem var(--serif); }
.address-line { display: grid; grid-template-columns: 70px 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.address-line span { color: #c99caf; font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.address-line p { margin: 0; }
.instagram { display: flex !important; justify-content: space-between; }

footer { padding: 3rem 1rem 1rem; color: #cdbfc3; background: #270a14; }
.footer-brand { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; }
.footer-brand img { width: 160px; }
.footer-brand p { margin: 0; font-size: .72rem; letter-spacing: .07em; text-transform: uppercase; }
.legal-note { margin-top: 2rem; max-width: 760px; font-size: .73rem; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.14); font-size: .63rem; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width: 719px) {
  .hero-facts { max-width: 230px; }
  .hero-facts div { display: block; }
  .hero-facts dd { margin-top: .2rem; }
}

@media (min-width: 720px) {
  .utility-bar span:nth-child(2) { display: inline; margin-left: auto; }
  .utility-bar a { margin-left: 1.2rem; }
  .hero { grid-template-columns: minmax(0, 1.1fr) minmax(330px, .9fr); padding-inline: 2rem; }
  .hero-copy { align-self: center; padding-bottom: 5rem; }
  .hero-portrait { margin-right: 0; }
  .hero-facts { grid-template-columns: repeat(3, 1fr); }
  .hero-facts div { display: block; }
  .hero-facts dd { margin-top: .35rem; }
  .manifesto { padding: 6.5rem 2rem; }
  .practices, .knowledge { padding: 7.5rem 2rem; }
  .section-header { grid-template-columns: 1.2fr .8fr; align-items: end; }
  .practice-layout { grid-template-columns: 1fr 1fr; }
  .guidance { padding: 7.5rem 2rem; }
  .guidance li { grid-template-columns: 80px 1fr; padding: 1.7rem 0; }
  .about { padding: 7.5rem 2rem; grid-template-columns: .85fr 1.15fr; align-items: center; }
  .knowledge-grid { grid-template-columns: repeat(3, 1fr); }
  .knowledge-grid article { padding: 2rem; border-right: 1px solid rgba(255,255,255,.2); }
  .knowledge-grid article:first-child { padding-left: 0; }
  .knowledge-grid article:last-child { border-right: 0; }
  .contact { padding: 7.5rem 2rem; grid-template-columns: 1.1fr .9fr; align-items: center; }
  footer { padding-inline: 2rem; }
}

@media (min-width: 960px) {
  .desktop-nav { display: flex; margin-left: auto; gap: 2rem; }
  .desktop-nav a { font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; color: #e1d4d8; }
  .desktop-nav a:hover { color: #f1cf98; }
  .nav-button { display: inline-flex; margin-left: 0; }
  .mobile-menu { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
