.inperson-editorial { --ip-bg:#f2eee4; --ip-surface:#fbf8f1; --ip-ink:#0e3b2e; --ip-muted:#496758; --ip-soft:#2c5141; min-height:100vh; padding-bottom:1px; background:var(--ip-bg); color:var(--ip-ink); font-family:'Aeonik Pro',Inter,'Helvetica Neue',Arial,sans-serif; }
.inperson-editorial *, .inperson-editorial *::before, .inperson-editorial *::after { box-sizing:border-box; }
.ip-shell { width:min(1320px,calc(100% - 48px)); margin:0 auto; padding-bottom:96px; }
.inperson-editorial h1 { max-width:1100px; margin:0; font-family:inherit; font-size:clamp(32px,3.8vw,48px); font-weight:700; line-height:1.02; letter-spacing:-.035em; text-wrap:balance; overflow-wrap:break-word; }
.inperson-editorial h2 { margin:0; font-family:inherit; font-size:clamp(24px,2.3vw,28px); font-weight:700; line-height:1.1; letter-spacing:-.025em; }
.inperson-editorial h3 { margin:0; font-family:inherit; font-size:19px; font-weight:600; line-height:1.25; letter-spacing:-.012em; }
.inperson-editorial p { margin:0; }
.inperson-editorial a { color:inherit; }
.inperson-editorial :focus-visible { outline:2px solid var(--ip-ink); outline-offset:5px; }
.ip-back { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin:24px 0 24px; color:var(--ip-muted)!important; font-size:15px; text-decoration:none; }
.ip-hero-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr); align-items:center; gap:40px; }
.ip-hero-info { min-width:0; }
.ip-hero-actions { display:flex; align-items:flex-start; flex-wrap:wrap; gap:24px; margin:26px 0 0; }
.ip-button { display:inline-flex; flex:none; align-items:center; justify-content:center; gap:20px; min-width:146px; min-height:56px; padding:14px 26px; border:0; border-radius:999px; background:var(--ip-ink); color:#fff!important; font:inherit; font-size:16px; font-weight:600; text-decoration:none; }
a.ip-button:hover { background:#24523f; }
.ip-button-disabled { opacity:.65; }
.ip-price { padding-top:16px; }
.ip-price > strong { display:block; font-size:19px; font-weight:600; line-height:1.25; }
.ip-price p { margin-top:4px; color:var(--ip-muted); font-size:15px; line-height:1.5; }
.ip-price a { position:relative; text-decoration:underline; text-underline-offset:3px; }
.ip-price a::after { position:absolute; inset:-12px 0; content:""; }
.ip-cover { position:relative; aspect-ratio:9/10; width:100%; justify-self:stretch; overflow:hidden; border-radius:32px; background:var(--ip-surface); }
.ip-cover > img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 30%; }
.ip-cover-caption { position:absolute; bottom:16px; left:16px; max-width:calc(100% - 32px); padding:12px 16px; border-radius:16px; background:var(--ip-surface); }
.ip-cover-caption strong { font-size:15px; font-weight:700; line-height:1.35; }
.ip-cover-caption p { margin-top:3px; color:var(--ip-muted); font-size:13px; line-height:1.4; }
.ip-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:28px 0 0; }
.ip-facts > div { padding:16px 20px; border-radius:24px; background:var(--ip-surface); }
.ip-facts dt { margin:0 0 5px; font-size:14px; color:var(--ip-muted); }
.ip-facts dd { margin:0; font-size:17px; font-weight:600; line-height:1.4; }
.ip-facts dd span { display:block; margin-top:4px; color:var(--ip-muted); font-size:15px; font-weight:400; }
.ip-section { display:flex; flex-wrap:wrap; gap:32px 64px; align-items:flex-start; padding-top:clamp(64px,8vw,96px); }
.ip-section > h2 { flex:1 1 300px; }
.ip-section-content { flex:999 1 560px; min-width:0; max-width:780px; }
.ip-prose { color:var(--ip-soft); font-size:17px; line-height:1.65; }
.ip-prose p { margin:0 0 24px; }
.ip-prose > p:first-child { font-size:18px; line-height:1.55; letter-spacing:-.006em; }
.ip-prose h2, .ip-prose h3 { margin:32px 0 18px; font-size:19px; }
.ip-prose ul, .ip-prose ol { margin:18px 0 24px; padding-left:24px; }
.ip-prose li + li { margin-top:10px; }
.ip-prose a { text-decoration:underline; text-underline-offset:3px; }
.ip-learning { margin-top:40px; }
.ip-learning h3 { margin-bottom:20px; }
.ip-learning ul { display:grid; gap:24px; margin:0; padding:32px; border-radius:24px; background:var(--ip-surface); list-style:none; }
.ip-learning li { color:var(--ip-soft); font-size:17px; line-height:1.65; }
.ip-teacher { display:flex; align-items:center; gap:20px; }
.ip-teacher > img { flex:none; width:72px; height:72px; border-radius:50%; object-fit:cover; object-position:50% 30%; }
.ip-teacher p { margin-top:6px; color:var(--ip-muted); font-size:16px; line-height:1.5; }
.ip-teacher-bio { white-space:pre-line; margin-top:24px!important; color:var(--ip-soft); font-size:17px; line-height:1.65; }
.ip-reviews { position:relative; padding-top:clamp(64px,8vw,96px); }
.ip-reviews header { max-width:calc(100% - 235px); margin-bottom:32px; }
.ip-review-layout { display:flex; flex-wrap:wrap; gap:16px; }
.ip-reviews figure { margin:0; padding:24px; border-radius:32px; background:var(--ip-surface); }
.ip-review-featured { display:flex; flex:2 1 560px; flex-direction:column; justify-content:space-between; gap:24px; min-height:240px; }
.ip-review-featured svg { width:28px; height:24px; }
.ip-review-featured blockquote { margin:0; color:var(--ip-muted); font-size:clamp(18px,1.5vw,20px); line-height:1.5; }
.ip-reviews strong { color:var(--ip-ink); font-weight:600; }
.ip-review-side { display:flex; flex:1 1 320px; flex-direction:column; gap:16px; }
.ip-review-side figure { display:flex; flex:1; align-items:center; }
.ip-review-side blockquote, .ip-review-grid blockquote { margin:0; color:var(--ip-soft); font-size:17px; line-height:1.65; }
.ip-all-reviews summary { position:absolute; top:clamp(64px,8vw,96px); right:0; display:flex; align-items:center; min-height:44px; max-width:220px; list-style:none; color:var(--ip-ink); font-size:15px; font-weight:600; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.ip-all-reviews summary::-webkit-details-marker { display:none; }
.ip-show-less, .ip-all-reviews[open] .ip-show-all { display:none; }
.ip-all-reviews[open] .ip-show-less { display:inline; }
.ip-review-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr)); gap:16px; padding-top:16px; }
.ip-closing { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:32px; margin-top:clamp(64px,8vw,96px); padding:36px 40px; border-radius:32px; background:var(--ip-ink); color:#fff; }
.ip-closing > div:first-child { flex:1 1 380px; }
.ip-closing p { margin-top:16px; color:#e0e5da; font-size:17px; line-height:1.5; }
.ip-closing-actions { display:flex; align-items:center; flex-wrap:wrap; gap:32px; }
.ip-closing-actions > strong { font-size:24px; line-height:1.2; }
.ip-closing .ip-button { background:var(--ip-surface); color:var(--ip-ink)!important; min-height:56px; }
.ip-sticky { position:fixed; z-index:60; right:24px; bottom:20px; left:24px; display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:760px; margin:0 auto; padding:10px 12px 10px 24px; border-radius:999px; background:rgba(251,248,241,.96); box-shadow:0 12px 32px rgba(14,59,46,.17); backdrop-filter:blur(16px); transition:opacity .2s,transform .2s; }
.ip-sticky[hidden] { display:none; }
.ip-sticky.is-hidden { opacity:0; transform:translateY(calc(100% + 40px)); pointer-events:none; visibility:hidden; }
.ip-sticky > div { min-width:0; }
.ip-sticky strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:16px; font-weight:600; }
.ip-sticky p { margin-top:4px; font-size:15px; color:var(--ip-muted); }
.ip-sticky .ip-button { min-height:52px; min-width:124px; padding:12px 20px; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) { .ip-facts > div { transition:transform .15s; } .ip-facts > div:hover { transform:translateY(-2px); } }
@media (prefers-reduced-motion:no-preference) { .ip-will-reveal { opacity:0; transform:translateY(16px); transition:opacity .4s,transform .4s; } .ip-will-reveal.ip-revealed { opacity:1; transform:none; } }
@media (min-width:761px) and (max-width:1000px) {
  .ip-hero-layout { gap:28px; grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr); }
  .ip-facts { grid-template-columns:minmax(0,1fr); }
  .ip-cover-caption { left:12px; bottom:12px; max-width:calc(100% - 24px); padding:12px; }
}
@media (max-width:760px) {
  .ip-shell { padding-bottom:120px; }
  .ip-hero-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
  .inperson-editorial h1 { font-size:clamp(30px,7.7vw,36px); }
  .ip-hero-actions { align-items:flex-start; gap:18px; margin:24px 0 0; }
  .ip-button { min-height:56px; min-width:130px; padding:14px 22px; }
  .ip-price { flex:1 1 170px; }
  .ip-cover { aspect-ratio:1; max-width:420px; justify-self:center; border-radius:24px; }
  .ip-cover-caption { bottom:12px; left:12px; max-width:calc(100% - 24px); padding:12px 14px; border-radius:16px; }
  .ip-cover-caption strong { font-size:15px; }
  .ip-cover-caption p { font-size:13px; }
  .ip-facts { grid-template-columns:minmax(0,1fr); gap:12px; }
  .ip-facts > div { padding:16px 20px; }
  .ip-section { gap:28px; }
  .ip-section > h2 { flex-basis:100%; }
  .ip-learning ul { padding:24px; gap:22px; }
  .ip-teacher { gap:16px; align-items:flex-start; }
  .ip-reviews header { max-width:none; margin-bottom:28px; }
  .ip-all-reviews summary { position:static; max-width:none; margin-top:20px; }
  .ip-reviews:not(:has(.ip-all-reviews)) header { margin-bottom:28px; }
  .ip-review-featured { min-height:0; }
  .ip-reviews figure { padding:24px; border-radius:24px; }
  .ip-review-featured svg { width:28px; height:24px; }
  .ip-closing { padding:32px 28px; border-radius:24px; }
  .ip-closing-actions { gap:24px; width:100%; justify-content:space-between; }
  .ip-sticky { right:12px; left:12px; bottom:calc(12px + env(safe-area-inset-bottom)); gap:12px; padding:8px 8px 8px 16px; }
  .ip-sticky strong { font-size:15px; }
  .ip-sticky p { font-size:15px; }
  .ip-sticky .ip-button { min-width:105px; padding:12px 16px; }
  .ip-sticky .ip-button span { display:none; }
}
@media (prefers-reduced-motion:reduce) { .ip-sticky { transition:none; } }
