body.content-page { display: flex; min-height: 100vh; flex-direction: column; }
.content-page main { flex: 1; }
.content-hero { min-height: 390px; padding: clamp(82px, 9vw, 150px) var(--page-padding) clamp(72px, 8vw, 126px); display: flex; align-items: flex-end; background: var(--black); color: var(--white); }
.content-hero-inner { width: min(100%, 1200px); margin-inline: auto; }
.content-kicker { margin: 0 0 22px; color: #d79aa6; font-family: var(--font-georgia); font-size: 13px; font-style: normal; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.content-hero h1 { max-width: 1050px; margin: 0; font-size: clamp(54px, 7.2vw, 116px); font-weight: 400; letter-spacing: -.045em; line-height: .9; }
.content-hero p:not(.content-kicker) { max-width: 760px; margin: 30px 0 0; color: #d7d7d7; font-family: var(--font-georgia); font-size: clamp(18px, 1.35vw, 23px); font-style: italic; line-height: 1.55; }
.content-layout { width: min(calc(100% - (2 * var(--page-padding))), 1200px); margin-inline: auto; padding-block: clamp(72px, 8vw, 130px); display: grid; grid-template-columns: minmax(180px, 250px) minmax(0, 1fr); gap: clamp(52px, 8vw, 130px); align-items: start; }
.content-aside { position: sticky; top: 112px; }
.content-aside p { margin: 0 0 18px; color: var(--brand); font-family: var(--font-georgia); font-size: 13px; font-style: normal; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.content-aside nav { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.content-aside a { color: #555; font-size: 17px; line-height: 1.35; text-decoration: none; }
.content-aside a:hover, .content-aside a[aria-current="page"] { color: var(--brand); text-decoration: underline; text-underline-offset: 5px; }
.prose { max-width: 820px; }
.prose > :first-child { margin-top: 0; }
.prose h2 { margin: 72px 0 24px; padding-top: 18px; border-top: 3px solid var(--brand); font-size: clamp(32px, 3vw, 48px); font-weight: 400; letter-spacing: -.025em; line-height: 1.05; }
.prose h3 { margin: 38px 0 14px; font-size: clamp(23px, 2vw, 30px); font-weight: 400; line-height: 1.2; }
.prose p, .prose li { font-size: 20px; line-height: 1.7; }
.prose p { margin: 0 0 22px; }
.prose ul, .prose ol { margin: 0 0 28px; padding-left: 1.35em; }
.prose li + li { margin-top: 11px; }
.prose a { color: var(--brand); text-underline-offset: 4px; }
.prose blockquote { margin: 48px 0; padding: 8px 0 8px clamp(24px, 4vw, 48px); border-left: 4px solid var(--brand); color: var(--brand); font-family: var(--font-georgia); font-size: clamp(27px, 3vw, 42px); font-style: italic; line-height: 1.25; }
.prose .lead { margin-bottom: 52px; font-family: var(--font-georgia); font-size: clamp(23px, 2.1vw, 32px); font-style: italic; line-height: 1.48; }
.prose .effective-date { margin-bottom: 46px; color: #5b5b5b; font-family: var(--font-georgia); font-size: 16px; font-style: italic; }
.principles-grid { margin-top: 34px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #d7d7d7; border: 1px solid #d7d7d7; }
.principle { padding: 30px; background: var(--white); }
.principle:last-child { grid-column: 1 / -1; }
.principle h3 { margin: 0 0 12px; color: var(--brand); font-size: 25px; }
.principle p { margin: 0; font-size: 18px; line-height: 1.58; }
.contact-list { margin-top: 18px; border-top: 1px solid #cfcfcf; }
.contact-row { padding: 30px 0; display: grid; grid-template-columns: 170px minmax(0, 1fr); align-items: baseline; gap: 28px; border-bottom: 1px solid #cfcfcf; }
.contact-row > * { min-width: 0; }
.contact-row h2 { margin: 0; padding: 0; border: 0; color: var(--brand); font-family: var(--font-georgia); font-size: 13px; font-style: normal; font-weight: 700; letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; }
.contact-row p { margin: 0; }
.contact-row a { overflow-wrap: anywhere; }
.faq-sections { display: flex; flex-direction: column; gap: 64px; }
.faq-section h2 { margin: 0 0 4px; padding-top: 18px; border-top: 3px solid var(--brand); font-size: clamp(30px, 3vw, 44px); font-weight: 400; line-height: 1.08; }
.faq-list { border-bottom: 1px solid #bfbfbf; }
.faq-item { border-top: 1px solid #bfbfbf; }
.faq-item:first-child { border-top: 0; }
.faq-question { width: 100%; padding: 24px 48px 24px 0; border: 0; display: block; background: transparent; color: var(--black); font-family: var(--font-serif); font-size: 21px; line-height: 1.35; text-align: left; cursor: pointer; position: relative; }
.faq-question::before, .faq-question::after { content: ""; width: 18px; height: 1.5px; background: var(--brand); position: absolute; right: 4px; top: 50%; transition: transform .25s ease; }
.faq-question::after { transform: rotate(90deg); }
.faq-question[aria-expanded="true"]::after { transform: rotate(0); }
.faq-answer { overflow: hidden; }
.faq-answer[hidden] { display: none; }
.faq-answer-inner { padding: 0 56px 27px 0; color: #3f3f3f; }
.faq-answer-inner p { margin: 0 0 14px; font-family: var(--font-georgia); font-size: 18px; line-height: 1.65; }
.faq-answer-inner p:last-child { margin-bottom: 0; }

@media (max-width: 1024px) {
  .content-hero { min-height: 320px; }
  .content-layout { width: min(calc(100% - 48px), 900px); grid-template-columns: 1fr; gap: 52px; }
  .content-aside { position: static; }
  .content-aside nav { padding-bottom: 16px; flex-direction: row; flex-wrap: wrap; gap: 12px 26px; border-bottom: 1px solid #d5d5d5; }
}

@media (max-width: 480px) {
  .content-hero { min-height: 280px; padding-inline: 20px; }
  .content-hero h1 { font-size: clamp(48px, 15vw, 66px); }
  .content-layout { width: calc(100% - 40px); padding-block: 64px 80px; gap: 42px; }
  .prose h2 { margin-top: 58px; }
  .prose p, .prose li { font-size: 18px; line-height: 1.65; }
  .prose .lead { font-size: 22px; }
  .principles-grid { grid-template-columns: 1fr; }
  .principle { padding: 24px 22px; }
  .principle:last-child { grid-column: auto; }
  .contact-row { grid-template-columns: 1fr; align-items: start; gap: 12px; }
  .faq-sections { gap: 52px; }
  .faq-question { padding-block: 21px; padding-right: 40px; font-size: 19px; }
  .faq-answer-inner { padding-right: 34px; }
}
