.leaflet-page { --forest: #183d36; --rust-dark: #8d351f; overflow-wrap: anywhere; }
.leaflet-hero-side { min-width: 0; align-self: center; }
.leaflet-paper { width: 100%; max-width: 360px; margin: 0 auto 28px; }
.leaflet-paper > summary { cursor: pointer; list-style: none; }
.leaflet-paper > summary::-webkit-details-marker { display: none; }
.leaflet-paper-stage { position: relative; display: block; width: 100%; aspect-ratio: 640 / 600; }
.leaflet-paper-stage img { position: absolute; inset: 0; display: block; width: 100%; height: auto; transition: opacity 450ms ease; }
.leaflet-paper-open { opacity: 0; }
.leaflet-paper[open] .leaflet-paper-folded { opacity: 0; }
.leaflet-paper[open] .leaflet-paper-open { opacity: 1; }
.leaflet-paper-prompt { display: flex; justify-content: center; align-items: center; gap: 14px; padding: 12px 0; font-size: .875rem; text-decoration: underline; text-underline-offset: 4px; }
.leaflet-paper .when-open { display: none; }
.leaflet-paper[open] .when-open { display: inline; }
.leaflet-paper[open] .when-closed { display: none; }
.leaflet-paper-links { display: flex; flex-wrap: wrap; gap: 8px 16px; justify-content: center; margin-top: 12px; padding-block: 14px; border-block: 1px solid var(--line); font-size: .875rem; line-height: 1.6; }
.leaflet-paper-links a { text-decoration: underline; text-underline-offset: 3px; }
.leaflet-page .seo-nav-contact { display: block; }
@media (max-width: 820px) { .leaflet-hero-side { width: 100%; } }
@media (max-width: 540px) { .leaflet-page .seo-nav { max-width: 100%; } }
@media (prefers-reduced-motion: reduce) { .leaflet-paper-stage img { transition: none; } }
@media print { .leaflet-paper { display: none; } }
.leaflet-page .seo-nav, .leaflet-page .seo-footer-links { font-size: .875rem; }
.leaflet-page a:focus-visible, .leaflet-page summary:focus-visible { outline: 3px solid var(--rust-dark); outline-offset: 5px; }
.leaflet-page .seo-eyebrow, .leaflet-label { font-size: .875rem; }
.leaflet-page h1, .leaflet-page h2, .leaflet-page h3, .leaflet-opening-voice, .leaflet-speech, .leaflet-dialogues summary { overflow-wrap: anywhere; hyphens: auto; }
.leaflet-hero { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,.65fr); gap: clamp(36px,6vw,90px); padding: clamp(56px,7vw,108px) clamp(24px,7vw,110px); }
.leaflet-hero h1, .leaflet-heading h2, .leaflet-cta h2 { margin: 0; font-family: Georgia,"Times New Roman",serif; font-weight: 400; letter-spacing: -.04em; }
.leaflet-hero h1 { max-width: 900px; font-size: clamp(2.8rem,5.2vw,5.3rem); line-height: 1.06; }
.leaflet-hero h1 em, .leaflet-cta h2 em { color: var(--rust-dark); }
.leaflet-lead { max-width: 690px; margin: 30px 0 24px; font-size: clamp(1.15rem,1.6vw,1.4rem); line-height: 1.6; }
.leaflet-scope { max-width: 670px; margin: 0; color: var(--ink-soft); font-size: 1rem; line-height: 1.6; }
.leaflet-opening { align-self: center; padding: clamp(26px,3vw,42px); background: var(--acid); border-top: 3px solid var(--ink); }
.leaflet-label { margin: 0 0 30px; }
.leaflet-opening .leaflet-opening-voice { margin: 0 0 24px; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.7rem,2.3vw,2.5rem); line-height: 1.22; }
.leaflet-opening p { font-size: 1rem; line-height: 1.65; }
.leaflet-opening-answer { font-weight: 650; }
.leaflet-opening p:last-child { margin-bottom: 0; }
.leaflet-index { display: flex; flex-wrap: wrap; gap: 14px 32px; padding: 22px clamp(24px,7vw,110px); border-block: 1px solid var(--line); font-size: .9375rem; line-height: 1.6; }
.leaflet-index a, .leaflet-prose a, .leaflet-contact-note a { text-decoration: underline; text-underline-offset: .25em; }
.leaflet-section { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1fr); gap: 30px clamp(40px,7vw,110px); padding: clamp(56px,7vw,100px) clamp(24px,7vw,110px); border-bottom: 1px solid var(--line); scroll-margin-top: 24px; }
.leaflet-heading h2 { max-width: 610px; font-size: clamp(2.15rem,3.6vw,3.8rem); line-height: 1.13; overflow-wrap: break-word; }
.leaflet-heading > p:last-child:not(.seo-eyebrow) { max-width: 470px; margin-top: 26px; font-size: 1.125rem; line-height: 1.65; }
.leaflet-prose { max-width: 710px; }
.leaflet-prose > p { margin: 0 0 1.2em; font-size: 1.125rem; line-height: 1.75; }
.leaflet-prose > p:last-child { margin-bottom: 0; }
.leaflet-quote { grid-column: 2; margin: 10px 0 0; padding: 26px 0 0 26px; border-top: 1px solid var(--line); border-left: 3px solid var(--rust-dark); }
.leaflet-quote p { margin: 0 0 20px; max-width: 660px; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.35rem,1.8vw,1.8rem); line-height: 1.5; }
.leaflet-quote footer { font-size: 1rem; line-height: 1.6; font-weight: 650; }
.leaflet-quote footer span { display: block; color: var(--ink-soft); font-size: .875rem; font-weight: 400; }
.leaflet-contact { background: var(--forest); color: var(--paper); }
.leaflet-contact .seo-eyebrow { color: var(--acid); }
.leaflet-contact a:focus-visible { outline-color: var(--acid); }
.leaflet-scenes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; grid-column: 1/-1; margin-top: 12px; }
.leaflet-scene { padding: clamp(24px,3vw,38px); border: 1px solid rgba(243,239,230,.35); }
.leaflet-scene h3 { margin: 0 0 26px; color: var(--acid); font-size: 1rem; font-weight: 600; line-height: 1.5; }
.leaflet-scene .leaflet-speech { margin: 0 0 24px; font-family: Georgia,"Times New Roman",serif; font-size: clamp(1.45rem,2vw,2.15rem); line-height: 1.4; }
.leaflet-scene > p:last-child { margin: 0; font-size: 1.0625rem; line-height: 1.75; }
.leaflet-contact-note { grid-column: 1/-1; max-width: 920px; margin: 0; font-size: 1rem; line-height: 1.7; }
.leaflet-fit { background: var(--paper-deep); }
.leaflet-dialogues { min-width: 0; }
.leaflet-dialogues details { border-top: 1px solid var(--line); }
.leaflet-dialogues details:last-child { border-bottom: 1px solid var(--line); }
.leaflet-dialogues summary { position: relative; padding: 24px 40px 24px 0; font-size: 1.25rem; font-weight: 600; line-height: 1.5; cursor: pointer; list-style: none; }
.leaflet-dialogues summary::-webkit-details-marker { display: none; }
.leaflet-dialogues summary::after { position: absolute; right: 5px; top: 24px; content: "+"; font-size: 1.5rem; line-height: 1.3; font-weight: 400; }
.leaflet-dialogues details[open] summary::after { content: "−"; }
.leaflet-dialogues details div { padding: 0 20px 26px 0; }
.leaflet-dialogues details p { margin: 0; font-size: 1.125rem; line-height: 1.75; }
.leaflet-sentences { margin: 0 0 28px; padding: 0 0 0 24px; border-left: 3px solid var(--rust-dark); }
.leaflet-sentences p { margin: 0 0 14px; font-size: 1.25rem; line-height: 1.5; font-weight: 600; }
.leaflet-sentences p:last-child { margin-bottom: 0; }
.leaflet-personal { background: var(--acid); }
.leaflet-boundaries { background: var(--paper-deep); }
.leaflet-cta { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 32px; padding: clamp(50px,7vw,100px) clamp(24px,7vw,110px); }
.leaflet-cta h2 { max-width: 850px; font-size: clamp(2.15rem,3.5vw,3.6rem); line-height: 1.16; }
.leaflet-cta p:last-child { max-width: 650px; margin: 22px 0 0; font-size: 1.125rem; line-height: 1.7; }
.leaflet-cta .seo-button { margin: 0; max-width: 300px; font-size: 1rem; line-height: 1.5; }
@media (max-width: 820px) {
  .leaflet-hero, .leaflet-section, .leaflet-cta { grid-template-columns: minmax(0,1fr); }
  .leaflet-hero { gap: 36px; }
  .leaflet-opening { max-width: 660px; }
  .leaflet-prose { max-width: none; }
  .leaflet-quote { grid-column: 1; }
  .leaflet-scenes { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
  .leaflet-page .seo-header { align-items: flex-start; flex-direction: column; gap: 22px; padding: 20px 24px; }
  .leaflet-page .seo-nav { justify-content: flex-start; gap: 12px 20px; }
  .leaflet-hero h1 { font-size: clamp(2.6rem,10vw,3rem); }
  .leaflet-index { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .leaflet-section { gap: 30px; }
  .leaflet-quote { padding-left: 20px; }
  .leaflet-dialogues summary { font-size: 1.125rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print {
  .seo-header, .seo-footer, .skip-link, .leaflet-index, .leaflet-cta .seo-button { display: none; }
  .leaflet-page { background: white; color: #111; }
  .leaflet-hero, .leaflet-section, .leaflet-cta { display: block; padding: 24px 0; background: white; color: #111; }
  .leaflet-hero h1 { font-size: 34pt; }
  .leaflet-heading h2 { font-size: 23pt; }
  .leaflet-opening { margin-top: 24px; }
  .leaflet-prose { max-width: none; }
  .leaflet-heading { margin-bottom: 20px; break-after: avoid; }
  .leaflet-scenes { display: block; }
  .leaflet-scene { margin-top: 20px; border-color: #999; break-inside: avoid; }
  .leaflet-contact .seo-eyebrow, .leaflet-scene h3 { color: #111; }
  .leaflet-dialogues details:not([open]) div { display: block; }
  .leaflet-quote { margin-top: 24px; }
  p { orphans: 3; widows: 3; }
}

