@font-face { font-family: "EB Garamond"; src: url("/assets/fonts/eb-garamond-regular.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "EB Garamond"; src: url("/assets/fonts/eb-garamond-bold.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "EB Garamond"; src: url("/assets/fonts/EBGaramond12-Italic.woff2") format("woff2"); font-style: italic; font-weight: 400; font-display: swap; }
@font-face { font-family: "EB Garamond"; src: url("/assets/fonts/eb-garamond-semibold-italic.woff2") format("woff2"); font-style: italic; font-weight: 600; font-display: swap; }
@font-face { font-family: "Luxurious Script"; src: url("/assets/fonts/luxurious-script-regular.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }

:root {
  --canvas: #f5f1ea;
  --ink: #000;
  --pine: #1e2e1e;
  --paper: #fff;
  --content-padding: 48px;
  --section-space: 80px;
  --serif: "EB Garamond", Georgia, serif;
  --script: "Luxurious Script", cursive;
}

* { box-sizing: border-box; -webkit-font-smoothing: antialiased;  -moz-osx-font-smoothing: grayscale; }
html { scroll-behavior: smooth; }
body { min-width: 0; margin: 0; color: var(--ink); background: var(--canvas); font-family: var(--serif); font-size: 1.125rem; line-height: 1.5; }
a { color: inherit; }
img { display: block; max-width: 100%; }
p, h1, h2, h3, h4 { margin-top: 0; }
::selection { background-color: var(--pine); color: var(--paper); }
span.no-break { white-space: nowrap; }

.skip-link { position: fixed; z-index: 10; top: 0; left: 0; padding: .75rem 1rem; transform: translateY(-110%); color: var(--ink); background: var(--paper); }
.skip-link:focus { transform: translateY(0); }
.site-grid { display: grid; grid-template-columns: 1fr 1fr; width: min(1200px, 100%); min-height: 100vh; margin: 0 auto; }
.site-sidebar { position: sticky; top: 0; align-self: start; display: flex; align-items: stretch; height: 100vh; min-height: 700px; background: var(--pine); }
.site-sidebar__nav { display: flex; flex: 0 0 195px; flex-direction: column; justify-content: space-between; padding: 32px 18px 32px 20px; color: var(--paper); }
.site-sidebar__logo { width: 109px; }
.site-sidebar__logo img { width: 109px; height: 150px; object-fit: contain; }
.site-sidebar__art { flex: 1 1 0px; width: 0; object-fit: cover; object-position: center; }
.site-nav { display: grid; gap: 12px; padding: 0; margin: 0; list-style: none; }
.site-nav a { display: inline-block; text-decoration: none; transition: font-weight 150ms ease; letter-spacing: -.018em; font-style: italic; font-feature-settings: "swsh" 1; }
.site-nav a:hover, .site-nav a:focus-visible, .site-nav a.is-active { font-style: italic; font-feature-settings: "swsh" 1; }
.site-sidebar__contact { display: grid; gap: 20px; font-size: 13px; line-height: 1.45; }
.site-sidebar__contact a { text-decoration: none; }
.site-sidebar__contact a:hover, .site-sidebar__contact a:focus-visible { text-decoration: underline; }
.site-sidebar__motto { width: 125px; margin: 0; font-size: 14px; font-style: italic; line-height: 1.1; }
.site-sidebar__motto span { font-family: var(--script); font-size: 28px; font-style: normal; }

.site-content { min-width: 0; padding-top: 32px; }
.mobile-header, .mobile-menu, .mobile-menu-backdrop, .mobile-cover { display: none; }
.hero { display: flex; align-items: flex-end; height: 100vh; }
.hero h1 { margin-bottom: 40px; font-size: 2.25em; font-weight: 400; line-height: 1.1; letter-spacing: -.03em; }
.hero h1 em { font-style: italic; font-feature-settings: "swsh" 1; }
.hero__intro { display: grid; gap: 24px; }
.hero__intro p { margin: 0; letter-spacing: -.011em; }
.drop-cap { font-family: var(--script); font-size: 2.5em; line-height: .7; }
.bracket-link { display: inline-flex; align-items: center; gap: 8px; width: max-content; max-width: 100%; padding: 8px 4px; font-size: 1em; font-style: italic; line-height: 1.45; text-decoration: none; font-feature-settings: "swsh" 1; }
.bracket-link span { font-size: 1.5em; }
.bracket-link:hover, .bracket-link:focus-visible { opacity: .6; }
.bracket-link {  position: relative; text-decoration: none; }

.section-padding { padding: var(--section-space) var(--content-padding); }
.double-frame { padding: 8px; border: 1px solid var(--ink); }
.double-frame__inner { border: 1px solid var(--ink); }
.outcomes__frame { position: relative; }
.outcomes__frame .double-frame__inner { display: flex; justify-content: space-between; padding: 24px; gap: 32px; }
.outcomes__lead { width: 160px; margin: 0; font-size: 1.125em; font-style: italic; line-height: 1; font-feature-settings: "swsh" 1; }
.outcomes__list { width: 167px; line-height: 1.45; }
.outcomes__list p { margin: 0; }
.outcomes__ornament { position: absolute; bottom: 33px; left: 31px; width: 64px; height: 112px; }

.section-heading { display: grid; justify-items: start; gap: 8px; }
.section-heading--centered { justify-items: center; text-align: center; }
.section-heading__ornament { width: auto; max-height: 56px; }
.section-heading h2 { margin: 0; font-size: 1.75em; font-style: italic; font-weight: 400; line-height: 1; font-feature-settings: "swsh" 1; }
.section-heading__initial { font-family: var(--script); font-size: 2.2857em; font-style: normal; }

.about, .outcomes { display: grid; justify-items: center; gap: 48px; }
.about__portrait { position: relative; width: 189px; height: 283px; margin: 0; }
.about__portrait-border { position: absolute; inset: 0; width: 100%; height: 100%; }
.about__portrait-image { position: absolute; top: 5px; left: 4px; width: 181px; height: 272px; object-fit: cover; border-radius: 50%; }
.prose { width: 100%; font-size: 1.125rem; line-height: 1.5; letter-spacing: -.007em; }
.prose p { margin-bottom: 24px; }
.prose p:last-child { margin-bottom: 0; }
.about__copy { max-width: 440px; }

.testimonials { display: grid; justify-items: center; gap: 48px; }
.testimonial { display: grid; justify-items: center; gap: 40px; width: min(440px, 100%); }
.testimonial__label { position: relative; width: 243px; height: 132px; }
.testimonial__label img { position: absolute; inset: 0; width: 100%; height: 100%; }
.testimonial__label img + img { inset: 6px auto auto 7px; width: 227px; height: 118px; }
.testimonial__label span { position: absolute; top: 56px; left: 0; width: 100%; text-align: center; font-size: 1em; }
.testimonial h3 { width: 100%; max-width: 240px; margin: 0; text-align: center; font-size: .875em; font-weight: 700; line-height: 1.375; letter-spacing: -.01em; }

.approach { display: grid; gap: 48px; justify-items: center; }
.approach__intro { display: grid; justify-items: center; width: min(272px, 100%); gap: 8px; text-align: center; }
.approach__intro img { width: 74px; height: 64px; object-fit: contain; }
.approach__intro h2 { margin: 0; font-size: 1.75em; font-style: italic; font-weight: 400; line-height: 1.15; }
.approach__intro p { margin: 0; line-height: 1.375; }
.approach__steps { display: grid; gap: 24px; width: min(287px, 100%); padding: 0; margin: 0; list-style: none; }
.approach__steps li { position: relative; display: grid; place-items: center; min-height: 132px; padding: 24px; text-align: center; line-height: 1.375; border: 1px solid var(--ink); outline: 1px solid var(--ink); outline-offset: -9px; }
.approach__steps li:not(:last-child)::after { position: absolute; bottom: -25px; left: 50%; width: 1px; height: 24px; content: ""; background: var(--ink); transform: translateX(-50%); }

.consultation, .pricing, .faq { display: grid; justify-items: center; gap: 8px; }
.consultation__intro, .pricing__intro { width: min(420px, 100%); margin: 0 0 40px; text-align: center; line-height: 1.375; }
.calendly-embed { width: 100%; min-width: 320px; height: 650px; }
.pricing-card { width: min(440px, 100%); }
.pricing-card .double-frame__inner { padding: 48px 32px; }
.pricing-card h3 { margin-bottom: 12px; font-size: 2em; font-style: italic; font-weight: 600; line-height: 1; }
.pricing-card p { margin-bottom: 24px; line-height: 1.25; }
.pricing-card hr { height: 1px; margin: 0 0 20px; border: 0; background: var(--ink); }
.pricing-card h4 { margin: 0 0 2px; font-size: 1em; font-weight: 700; }
.pricing-card ul { padding-left: 24px; margin: 0 0 20px; line-height: 1.5; }
.pricing-card ul:last-child { margin-bottom: 0; }
.pricing__note { width: min(351px, 100%); margin: 40px 0 0; text-align: center; font-style: italic; line-height: 1.5; font-feature-settings: "swsh" 1; }

.faq__intro { width: min(282px, 100%); margin: 0 0 40px; text-align: center; line-height: 1.5; }
.faq__frame { width: 100%; }
.faq__items { overflow: hidden; }
.faq-item { position: relative; border-bottom: 1px solid var(--ink); }
.faq-item:last-child { border-bottom: 0; }
.faq-item summary, .faq-item--pending { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 1rem; cursor: pointer; font-weight: 700; line-height: 1.5; list-style: none; }
.faq-item summary:hover { opacity: .6; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span, .faq-item--pending > span { flex: 0 0 auto; font-family: sans-serif; font-weight: 400; transition: transform 150ms ease; }
.faq-item[open] summary span { transform: rotate(180deg); }
.faq-item--pending { cursor: default; }
.faq-item--pending p { margin: 0; }
.faq-item > p { padding: 0 24px 24px; margin: 0; line-height: 1.5; }
.faq-chevron { padding: 12px; }

.colophon { display: grid; justify-items: center; padding-top: 80px; padding-bottom: 80px; }
.colophon__content { display: grid; justify-items: center; width: min(420px, 100%); gap: 8px; text-align: center; }
.colophon__ornament { width: 76px; height: 76px; object-fit: contain; }
.colophon h2 { margin: 0; font-size: 28px; font-style: italic; font-weight: 400; line-height: 1; font-feature-settings: "swsh" 1; }
.colophon__initial { font-family: var(--script); font-size: 64px; font-style: normal; }
.colophon p { max-width: 360px; margin: 0; letter-spacing: -.005em; }
.colophon__credit { text-decoration: underline; text-decoration-skip-ink: none; text-underline-offset: .08em; }
.colophon__credit:hover { text-decoration: none; }

.site-footer { display: flex; align-items: flex-start; justify-content: center; padding: 32px 48px; font-size: 1.125em; font-style: italic; line-height: 1.2; font-feature-settings: "swsh" 1; }
.site-footer p { margin: 0; }
.site-footer nav { display: flex; gap: 40px; }
.site-footer a { text-decoration: none; }
.site-footer a:hover, .site-footer a:focus-visible { text-decoration: underline; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* between desktop and mobile  */

@media (min-width: 640px) and (max-width: 1100px) {
  /* Keep the 195px navigation rail while allowing the artwork to compress down
     to 80px; this avoids a page-wide horizontal scrollbar. */
  .site-grid { grid-template-columns: clamp(275px, calc(100vw - 493px), 55.555vw) minmax(0, 1fr); width: 100%; }
  .site-sidebar__nav { flex: 0 0 195px; }
  .site-sidebar__art { display: block; flex: 1 1 80px; min-width: 80px; width: auto; object-position: 55% center; }
  .hero__content { top: 440px; }
  :root { --content-padding: 2rem;  }
  .double-frame__inner { flex-direction: column; gap: 2rem; min-width: 240px; }
  .outcomes__frame { width: 75%; }
  .outcomes__ornament { position: static; }
}

/* XL screens */

@media (min-width: 1280px) {
  .site-grid { grid-template-columns: 1fr 1fr; width: 100%; margin: 0; }
  .site-sidebar { min-width: 0; }
  .site-sidebar__nav { flex: 0 0 30%; padding: 2.47vw 1.39vw 2.47vw 1.54vw; }
  .site-sidebar__logo, .site-sidebar__logo img { width: 7.57vw; height: 10.42vw; }
  .site-sidebar__art { flex: 0 0 70%; width: 70%; }
  .site-nav { gap: 1.13vw; }
  .site-nav a { font-size: min(1.25vw, 18px); }
  .site-sidebar__contact { gap: 1.88vw; font-size: .9vw; }
  .site-sidebar__motto { width: 8.68vw; font-size: .97vw; }
  .site-sidebar__motto span { font-size: 1.94vw; }

  .site-content {
    --content-padding: min(4.5vw, 54px);
    --section-space: min(7.52vw, 90px);
    --text-measure: 492px;
    padding-top: min(3vw, 36px);
    font-size: min(1.5vw, 18px);
  }
  .hero__content { max-width: var(--text-measure); }
  .hero h1 { margin-bottom: min(3.76vw, 45px); font-size: min(2.25em, 40px); }
  .hero__intro { gap: 2.26vw; }
  .bracket-link { gap: .75vw; padding: .75vw .38vw; }

  .outcomes__frame { width: 100%; max-width: 35rem; }
  .outcomes__frame .double-frame__inner { padding: 2.26vw; }
  .outcomes__lead { width: min(15.05vw, 181px); }
  .outcomes__list { width: min(15.7vw, 188px); }
  .outcomes__ornament { bottom: 3.1vw; left: 2.9vw; width: 5.5vw; height: auto; }

  .about, .testimonials, .approach { gap: 4.51vw; }
  .about__portrait { width: 17.77vw; height: 26.61vw; }
  .about__portrait-image { top: .47vw; left: .38vw; width: 17.02vw; height: 25.56vw; }
  .about__copy, .testimonial { max-width: min(41.28vw, 495px); }
  .testimonial { width: min(41.28vw, 495px, 100%); }
  .testimonial__label { width: 22.8vw; height: 12.4vw; }
  .testimonial__label img + img { inset: .61vw auto auto .67vw; width: 21.31vw; height: 11.08vw; }
  .testimonial__label span { top: 5.26vw; }

  .approach__intro { width: min(25.54vw, 306px, 100%); gap: .75vw; }
  .approach__intro img { width: 6.98vw; height: 5.98vw; }
  .approach__steps { width: min(26.93vw, 323px, 100%); gap: 2.26vw; }
  .approach__steps li { min-height: 12.4vw; padding: 2.26vw; }
  .approach__steps li:not(:last-child)::after { bottom: -2.34vw; height: 2.26vw; }

  .consultation__intro, .pricing__intro { width: min(39.36vw, 472px, 100%); margin-bottom: 3.76vw; }
  .calendly-embed { width: min(100%, var(--text-measure)); height: 61.09vw; }
  .pricing-card { width: min(41.28vw, 495px, 100%);}
  .pricing-card .double-frame__inner { padding: 4.51vw 3.01vw; }
  .pricing__note { width: min(32.93vw, 395px, 100%); margin-top: 3.76vw; }
  .faq__intro { width: min(26.45vw, 317px, 100%); margin-bottom: 3.76vw; }
  .faq__frame { max-width: var(--text-measure); }
  .faq-item summary { padding: 2.26vw; }
  .faq-item > p { padding: 0 2.26vw 2.26vw; }
  .site-footer { padding: 3.01vw 4.51vw; }
}

/* mobile  */
@media (max-width: 640px) {
  :root { --canvas: var(--pine); --ink: #fff; --paper: var(--pine); --content-padding: 24px; --section-space: 64px; }
  body { min-width: 0; }
  .site-grid { display: block; width: 100%; }
  /* The desktop rail is replaced by a purpose-built mobile header and navigation. */
  .site-sidebar { display: none; }
  .site-content { padding-top: 84px; }
  .mobile-header { position: fixed; z-index: 3; top: 0; right: 0; left: 0; display: flex; align-items: center; justify-content: space-between; height: 84px; padding: 12px 24px; color: var(--ink); background: var(--canvas); transition: transform 220ms ease; }
  .mobile-header.is-hidden { transform: translateY(-100%); }
  .mobile-header__logo, .mobile-header__logo img { display: block; object-fit: contain; }
  .mobile-menu-button { display: flex; align-items: center; gap: 5px; color: var(--ink); background: transparent; border: 0px; cursor: pointer; }
  .mobile-menu-button span { display: block; width: 100%; height: 1px; background: currentColor; }
  .mobile-cover { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; object-position: center center; }
  .mobile-menu-backdrop { position: fixed; z-index: 4; inset: 0; display: block; width: 100%; height: 100%; padding: 0; background: rgb(0 0 0 / 35%); border: 0; opacity: 0; visibility: hidden; transition: opacity 180ms ease, visibility 180ms ease; }
  .mobile-menu { position: fixed; z-index: 5; top: 0; bottom: 0; left: 0; display: flex; flex-direction: column; width: min(84vw, 340px); padding: 24px; color: var(--ink); background: var(--canvas); transform: translateX(-100%); visibility: hidden; transition: transform 220ms ease, visibility 220ms ease; }
  .mobile-menu__top { display: flex; align-items: flex-start; justify-content: space-between; }
  .mobile-menu__top img.logo { width: 104px; height: 144px; object-fit: contain; }
  .mobile-menu__close { width: 24px; height: 24px; padding: 4px; color: var(--ink); font: 400 40px/1 var(--serif); background: transparent; border: 0px; cursor: pointer; }
  .mobile-menu__close img { width: 100%; }
  .mobile-menu__links { display: grid; gap: 20px; padding: 0; margin: auto 0; list-style: none; font-size: 25px; line-height: 1.1; }
  .mobile-menu__links a, .mobile-menu__email { text-decoration: none; font-size: 1em; font-style: italic; font-feature-settings: "swsh" 1; }
  .mobile-menu__links a:hover, .mobile-menu__links a:focus-visible, .mobile-menu__links a.is-active { font-weight: 700; }
  .mobile-menu__email { font-size: 16px; }
  .is-mobile-menu-open { overflow: hidden; }
  .is-mobile-menu-open .mobile-menu { transform: translateX(0); visibility: visible; }
  .is-mobile-menu-open .mobile-menu-backdrop { opacity: 1; visibility: visible; }
  .hero { min-height: auto; height: unset; padding: 0 var(--content-padding); }
  .hero__content { position: static; padding: 64px 0; }
  .hero h1 { margin-bottom: 32px; font-size: clamp(30px, 9vw, 36px); }
  .section-padding { padding-right: var(--content-padding); padding-left: var(--content-padding); }
  .outcomes__frame .double-frame__inner { min-height: 0; padding: 20px; gap: 16px; }
  .outcomes__lead, .outcomes__list { width: auto; }
  .outcomes__lead { max-width: 42%; }
  .outcomes__list { max-width: 52%; }
  .about, .testimonials { gap: 40px; }
  .section-heading__initial { font-size: 56px; }
  .section-heading h2 { font-size: 25px; }
  .testimonial { gap: 32px; }
  .approach__steps { width: 100%; }
  .consultation__intro, .pricing__intro { margin-bottom: 24px; }
  .calendly-embed { min-width: 0; height: 700px; }
  .pricing-card { margin-top: 24px; }
  .pricing-card .double-frame__inner { padding: 36px 24px; }
  .faq__intro { margin-bottom: 24px; }
  .faq-item summary { padding: 20px; }
  .faq-item summary:hover { opacity: 1; }
  .faq-item > p { padding: 0 20px 20px; }
  .colophon h2 { font-size: 25px; }
  .colophon__initial { font-size: 56px; }
  .site-footer { justify-content: center; padding: 32px 24px; text-align: center; }
  .outcomes__ornament, .section-heading__ornament, .about__portrait-border, .testimonial__label img, .approach__intro img, .colophon__ornament { filter: brightness(0) invert(1); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }
