/* Editorial service page: source paragraphs remain whole and in document order. */
.session-page {
  --session-gutter: var(--space-16);
  --session-title: var(--text-40);
  --session-heading: var(--text-32);
  --session-subheading: var(--text-24);
  --session-section-space: var(--space-80);
  --session-reading: var(--text-18);
}
.session-page main { max-width: 1920px; margin-inline: auto; }
.session-page main :is(section,header,article,div,figure) { min-width: 0; }
.session-page main :is(h1,h2,h3,p,figure,ol,ul,dl,dd) { margin: 0; }
.session-page main :is(h1,h2,h3) { font-weight: 500; letter-spacing: var(--tracking); text-wrap: pretty; }
.session-page main p,.session-page main li { line-height: 1.5; }
.session-page main [id] { scroll-margin-top: calc(var(--topbar-h) + var(--space-24)); }
.session-page .site-footer { margin-top: 0; }
.session-page .session-eyebrow { font-size: var(--type-label); margin-bottom: var(--space-24); }
.session-hero { display: grid; gap: var(--space-32); padding: var(--space-32) var(--session-gutter) var(--session-section-space); }
.session-hero-photo { overflow: hidden; background: var(--color-surface); }
.session-hero-photo img { display: block; width: 100%; height: auto; }
.session-hero-copy { display: flex; flex-direction: column; align-items: flex-start; }
.session-hero h1 { font-size: var(--session-title); line-height: 1.04; max-width: 780px; }
.session-page .session-lead { font-size: var(--session-reading); max-width: 640px; margin-top: var(--space-32); }
.session-hero-action { display: flex; flex-wrap: wrap; gap: var(--space-16) var(--space-24); align-items: center; margin-top: var(--space-32); }
.session-button { display: inline-flex; justify-content: center; align-items: center; min-height: 56px; padding: var(--space-16) var(--space-24); border: 1px solid var(--color-ink); font-size: var(--type-control); line-height: 1.25; text-align: center; }
.session-text-link { display: inline-flex; align-items: center; gap: var(--space-12); min-height: 44px; font-size: var(--type-control); }
.session-section { padding: 0 var(--session-gutter) var(--session-section-space); }
.session-section-head { margin-bottom: var(--space-40); }
.session-section-head h2 { font-size: var(--session-heading); line-height: 1.12; }
.session-tasks-grid { display: grid; gap: var(--space-24); }
.session-task { padding: var(--space-24); background: var(--color-surface); }
.session-task-art { display: block; width: 144px; height: 112px; margin-bottom: var(--space-32); }
.session-task h3 { font-size: var(--session-subheading); line-height: 1.15; max-width: 520px; }
.session-page .session-task p { margin-top: var(--space-20); font-size: var(--session-reading); max-width: 600px; color: var(--color-reading); }
.session-split { display: grid; gap: var(--space-32); }
.session-split > .session-section-head { margin-bottom: 0; }
.session-timeline { list-style: none; padding: 0; }
.session-timeline > li { position: relative; display: grid; grid-template-columns: 40px minmax(0,1fr); gap: var(--space-16); padding-bottom: var(--space-48); }
.session-timeline > li:last-child { padding-bottom: 0; }
.session-timeline > li:not(:last-child)::before { content: ''; position: absolute; left: 19px; top: 44px; bottom: 8px; width: 1px; background: var(--color-border); }
.session-step-number { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--color-border); border-radius: 50%; font-size: var(--type-label); }
.session-timeline h3 { padding-top: var(--space-4); font-size: var(--session-subheading); line-height: 1.2; }
.session-page .session-timeline p { margin-top: var(--space-20); font-size: var(--session-reading); max-width: 760px; color: var(--color-reading); }
.session-plan { background: var(--color-ink); color: var(--color-paper); }
.session-plan-inner { padding: var(--space-48) var(--session-gutter); }
.session-plan .session-section-head h2 { font-size: var(--type-label); font-weight: 400; }
.session-page .session-plan-promise { font-size: var(--session-heading); line-height: 1.15; margin-top: var(--space-32); max-width: 470px; }
.session-plan .session-task-art { margin-top: var(--space-32); margin-bottom: 0; }
.session-plan-content ul { list-style: none; padding: 0; }
.session-plan-content li { padding: var(--space-20) 0; border-bottom: 1px solid var(--color-dark-rule); font-size: var(--session-reading); }
.session-plan-content li:first-child { padding-top: 0; }
.session-page .session-plan-conclusion { margin-top: var(--space-32); font-size: var(--session-subheading); line-height: 1.35; }
.session-case { padding: var(--session-section-space) var(--session-gutter); }
.session-case-intro { display: grid; gap: var(--space-32); }
.session-case-heading h2 { font-size: var(--session-heading); line-height: 1.05; }
.session-case-link { display: inline-flex; align-items: center; gap: var(--space-12); min-height: 44px; margin-top: var(--space-24); font-size: var(--type-control); }
.session-page .session-case-copy p { font-size: var(--session-reading); margin-top: var(--space-20); max-width: 750px; }
.session-page .session-case-copy .session-case-note { font-size: var(--type-label); color: var(--color-muted); margin-top: 0; }
.session-case-results { display: grid; gap: var(--space-32); padding-top: var(--space-32); margin-top: var(--space-40) !important; border-top: 1px solid var(--color-border); }
.session-case-results > div { display: flex; flex-direction: column; gap: var(--space-12); }
.session-case-results dd { order: -1; font-size: var(--session-title); line-height: 1; }
.session-case-results dt { font-size: var(--type-label); }
.session-case-results > div:first-child dd { color: var(--color-ink); }
.session-format { position: relative; isolation: isolate; background: var(--color-ink); color: var(--color-paper); }
.session-format-inner { position: relative; display: grid; gap: var(--space-40); padding: var(--space-48) var(--session-gutter); }
.session-format-heading h2 { font-size: var(--type-label); font-weight: 400 !important; }
.session-page .session-price { font-size: var(--text-64); line-height: 1; margin-top: var(--space-40); }
.session-page .session-format-lead { max-width: 400px; margin-top: var(--space-24); font-size: var(--session-reading); }
.session-format-heading .session-button { margin-top: var(--space-32); border-color: var(--color-paper); }
.session-format .session-button[data-ui]:focus-visible { outline-color: var(--color-paper) !important; }
.session-format-details { display: grid; gap: var(--space-32); }
.session-format-details article { border-top: 1px solid var(--color-dark-rule); padding-top: var(--space-20); }
.session-format-details h3 { font-size: var(--session-subheading); line-height: 1.2; }
.session-format-details ul { padding-left: var(--space-20); margin-top: var(--space-20) !important; }
.session-format-details li { font-size: var(--session-reading); padding-left: var(--space-4); }
.session-format-details li + li { margin-top: var(--space-12); }
.session-founder { display: grid; gap: var(--space-32); padding-top: var(--session-section-space); }
.session-founder figure { max-width: 520px; }
.session-founder img { display: block; width: 100%; height: auto; }
.session-founder-copy { align-self: center; }
.session-founder h2 { font-size: var(--session-subheading); line-height: 1.3; max-width: 850px; }
.session-page .session-founder-invitation { margin-top: var(--space-32); font-size: var(--session-reading); max-width: 640px; }
.session-founder-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-20) var(--space-32); margin-top: var(--space-32); }
.session-faq details { border-top: 1px solid var(--color-border); }
.session-faq details:last-child { border-bottom: 1px solid var(--color-border); }
.session-faq summary { display: flex; justify-content: space-between; align-items: center; gap: var(--space-24); min-height: 80px; padding-block: var(--space-24); padding-right: var(--space-8); cursor: pointer; list-style: none; font-size: var(--session-subheading); line-height: 1.25; }
.session-faq summary > span { min-width: 0; }
.session-faq summary::-webkit-details-marker { display: none; }
.session-faq summary .ph { flex: none; font-size: var(--text-24); transform: rotate(45deg); }
.session-faq details[open] .ph { transform: none; }
.session-page .session-faq details > p { padding-bottom: var(--space-24); max-width: 740px; font-size: var(--session-reading); color: var(--color-reading); }
.session-faq summary:focus-visible { outline-offset: -4px; }
@media (hover:hover) {
  .session-faq summary:hover { color: var(--color-ink); background: var(--color-surface); }
}
@media (min-width:600px) {
  .session-page { --session-gutter: var(--space-32); --session-title: var(--text-48); --session-subheading: var(--text-28); }
  .session-tasks-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .session-case-results { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .session-case-results dd { font-size: var(--text-40); }
  .session-task { padding: var(--space-32); }
}
@media (min-width:768px) {
  .session-page { --session-gutter: var(--space-40); }
  .session-hero { grid-template-columns: minmax(0,.9fr) minmax(0,1fr); gap: var(--space-40); align-items: stretch; padding-top: var(--space-40); }
  .session-hero-photo { position: relative; min-height: 660px; }
  .session-hero-photo img { position: absolute; inset: 0; height: 100%; object-fit: cover; object-position: 50% 12%; }
  .session-hero-copy { min-height: 660px; padding-block: var(--space-24); }
  .session-hero-action { margin-top: auto; padding-top: var(--space-40); }
  .session-split { grid-template-columns: minmax(0,.8fr) minmax(0,1.6fr); gap: var(--space-40); }
  .session-format-inner { grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: var(--space-48); }
  .session-founder { grid-template-columns: minmax(0,.8fr) minmax(0,1.4fr); gap: var(--space-48); }
  .session-founder figure { align-self: start; }
  .session-case-intro { grid-template-columns: minmax(0,.8fr) minmax(0,1.6fr); gap: var(--space-40); }
}
@media (min-width:1100px) {
  .session-page { --session-title: var(--text-64); --session-heading: var(--text-40); --session-section-space: var(--space-112); --session-reading: var(--text-20); }
  .session-hero { gap: var(--space-64); }
  .session-hero-photo { min-height: 680px; }
  .session-hero-copy { min-height: 680px; padding-block: var(--space-40); }
  .session-tasks-grid { gap: var(--space-32); }
  .session-task { padding: var(--space-40); }
  .session-task-art { width: 180px; height: 128px; }
  .session-split { grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); gap: var(--space-64); }
  .session-plan-inner { padding-block: var(--space-80); }
  .session-timeline > li { gap: var(--space-32); padding-bottom: var(--space-64); }
  .session-format-inner { padding: var(--space-80) var(--space-64); }
  .session-page .session-price { font-size: var(--text-96); }
  .session-founder h2 { font-size: var(--text-36); }
  .session-case-results dd { font-size: var(--text-64); }
}
@media (min-width:1600px) {
  .session-page { --session-gutter: var(--space-64); --session-title: var(--text-72); --session-heading: var(--text-48); }
  .session-hero { gap: var(--space-80); }
  .session-task h3 { font-size: var(--text-32); }
  .session-founder h2 { font-size: var(--text-40); }
}
@media (max-width:767px) {
  .session-hero-copy { order: -1; }
  .session-hero-photo { max-width: 520px; }
  .session-hero-photo img { max-height: 560px; object-fit: cover; object-position: 50% 8%; }
}
@media (max-width:599px) {
  .session-hero .session-button,.session-founder .session-button { width: 100%; }
  .session-hero-action,.session-founder-actions { width: 100%; }
  .session-hero .session-text-link { justify-content: center; width: 100%; }
  .session-task-art { width: 112px; height: 88px; margin-bottom: var(--space-24); }
}
@media print {
  .session-hero { display: block; }
  .session-hero-photo,.session-pattern,.session-button { display: none; }
  .session-plan,.session-format { background: transparent; color: var(--color-ink); }
  .session-section { padding-bottom: var(--space-32); }
}
