/* Compact illustrated price register. Shared paper and jade continue through every chapter. */
.wp-site-blocks main.ed-catalog-page {
  --cat-body: 18px; --cat-small: 16px; --cat-title: 21px;
  --cat-gap: 28px; --cat-space: 44px;
  width: 100%; max-width: none !important; margin: 0 !important; padding: 0 !important;
  color: var(--ed-ink, #153b32);
  background: var(--ed-paper, #efe5d2) url('../images/art/refinement-paper-perf.webp') center top / 1536px auto repeat !important;
  font: 500 var(--cat-body)/1.55 "Golos Text", sans-serif;
}
.ed-catalog-page *, .ed-catalog-page *::before, .ed-catalog-page *::after { box-sizing: border-box; }
.ed-catalog-page > * { margin-block: 0; }
.ed-catalog-page :is(p, figure, ul, table, h1, h2, h3, h4) { margin: 0; }
.ed-catalog-page :is(ul, ol) { padding: 0; }
.ed-catalog-page p { max-width: 64ch; text-wrap: pretty; }
.ed-catalog-page img { display: block; max-width: 100%; }
.ed-catalog-page svg { flex-shrink: 0; }
.ed-catalog-page [id] { scroll-margin-top: 24px; }
.ed-catalog-page a { text-decoration: none; text-underline-offset: .22em; }
.ed-catalog-page a:focus-visible { outline: 3px solid var(--ed-red, #a2382c); outline-offset: 6px; }
.ed-catalog-page ::selection { background: var(--ed-red, #a2382c); color: #fff8ea; }
.ed-catalog-frame { width: var(--ed-frame, min(1280px, calc(100% - 80px))); max-width: none !important; margin-inline: auto !important; }
.wp-site-blocks main.ed-catalog-page :is(h1,h2) {
  color: inherit !important; font-family: "Literata", Georgia, serif !important;
  font-weight: 500 !important; line-height: 1.16 !important; letter-spacing: -.025em !important;
  text-transform: none; text-wrap: balance; overflow-wrap: normal; word-break: normal;
}
.wp-site-blocks main.ed-catalog-page h2 { font-size: clamp(34px, 2.6vw, 60px) !important; }
.wp-site-blocks main.ed-catalog-page :is(h3,h4) {
  margin: 0 !important; color: inherit !important; font: 600 var(--cat-title)/1.35 "Golos Text", sans-serif !important;
  letter-spacing: -.018em !important; text-wrap: pretty; overflow-wrap: normal; word-break: normal;
}
.ed-catalog-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 24px; margin-top: 24px; }
.ed-catalog-page .ed-catalog-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 54px; padding: 15px 24px;
  border: 1px solid var(--ed-red, #a2382c); border-radius: 4px; background: var(--ed-red, #a2382c); color: #fff8ea;
  font: 600 var(--cat-small)/1.4 "Golos Text", sans-serif; box-shadow: none;
  transition: background-color 160ms, border-color 160ms, transform 140ms;
}
.ed-catalog-page .ed-catalog-link { display: inline-flex; align-items: center; gap: 16px; min-height: 48px; color: var(--ed-ink, #153b32); font-weight: 600; font-size: var(--cat-small); }
.ed-catalog-section-head { padding-block: var(--cat-space) 26px; }
.ed-catalog-index-band { background: var(--ed-jade, #103d34); }
.ed-catalog-index { display: grid; grid-template-columns: .9fr 1.05fr 1.6fr .85fr 1.3fr; }
.ed-catalog-index a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 72px; padding: 16px 22px; color: #fff5e0; font: 600 var(--cat-small)/1.4 "Golos Text", sans-serif; transition: background-color 160ms; }
.ed-catalog-index a:first-child { padding-left: 0; }
.ed-catalog-index a:last-child { padding-right: 0; }
.ed-catalog-index a small { font-size: .9em; font-weight: 500; color: #d7c5a2; }
.ed-catalog-index a:focus-visible { outline-color: #e9c084; outline-offset: -5px; }
.ed-catalog-chapter { padding-block: 28px 0; }
.ed-catalog-chapter-layout { display: block; background: #f7efdf; box-shadow: 0 2px 0 #c5b79945; }
.ed-catalog-chapter-opening { display: flex; flex-direction: row-reverse; justify-content: flex-end; align-items: center; gap: 20px; min-height: 84px; padding: 12px 24px; background: #e6d8bb; }
.ed-catalog-chapter-opening h3 { max-width: 40ch; }
.ed-catalog-chapter-image { overflow: hidden; flex: 0 0 80px; width: 80px; height: 60px; margin: 0 !important; }
.ed-catalog-chapter-image img { width: 100%; height: 100%; object-fit: cover; }
.ed-catalog-service-list { min-width: 0; padding-inline: 24px; }
.ed-catalog-service { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px,220px); align-items: start; gap: 32px; padding: 20px 0; }
.ed-catalog-service + .ed-catalog-service { border-top: 1px solid #d9cdb6; }
.ed-catalog-service-copy { min-width: 0; }
.ed-catalog-service-copy > p { margin-top: 6px; max-width: 65ch; font-size: var(--cat-body); line-height: 1.55; color: #344f44; }
.ed-catalog-service-price { display: flex; flex-direction: column-reverse; gap: 6px; align-items: end; text-align: right; }
.ed-catalog-service-price span { font-size: var(--cat-small); line-height: 1.55; color: #344f44; }
.ed-catalog-service-price strong { color: var(--ed-red, #a2382c); font: 600 var(--cat-title)/1.35 "Golos Text", sans-serif; font-variant-numeric: tabular-nums; white-space: nowrap; }

.ed-catalog-chapter--herbs .ed-catalog-chapter-opening { background: var(--ed-jade); color: #fff4dd; }

.ed-catalog-chapter--herbs .ed-catalog-service-price strong { white-space: normal; }
.wp-site-blocks main.ed-catalog-page .ed-catalog-chapter-opening h3 { font:500 28px/1.25 "Literata",Georgia,serif!important; letter-spacing:-.02em!important; }
.wp-site-blocks main.ed-catalog-page .ie-page-intro { padding-block:40px 36px; }
@media(min-width:2200px){.wp-site-blocks main.ed-catalog-page .ed-catalog-chapter-opening h3{font-size:34px!important}}
@media(max-width:560px){.wp-site-blocks main.ed-catalog-page .ed-catalog-chapter-opening h3{font-size:25px!important}.wp-site-blocks main.ed-catalog-page .ie-page-intro{padding-block:28px}}
.ed-catalog-programs { padding-bottom: var(--cat-space); }
.ed-catalog-program-list { display: grid; grid-template-columns: 1fr; gap: var(--cat-gap); align-items: start; }
.ed-catalog-program { min-width: 0; padding: 0; background: #f7efdf; box-shadow: 0 2px 0 #c5b79945; }
.ed-catalog-program-layout { display: block; }
.ed-catalog-program-opening { display: grid; grid-template-columns: 96px minmax(0,1fr); align-items: center; gap: 24px; padding: 16px 24px; background: #e6d8bb; }
.ed-catalog-program-image { overflow: hidden; }
.ed-catalog-program-image img { width: 100%; height: 72px; object-fit: cover; }
.ed-catalog-program-intro { min-width: 0; display: grid; grid-template-columns: 1fr; align-items: start; gap: 8px; }
.ed-catalog-program-intro > p { margin-top: 0; max-width: 62ch; font-size: var(--cat-body); }
.ed-catalog-program-body { min-width: 0; padding: 0 24px 12px; }
.ed-catalog-composition { width: 100%; table-layout: fixed; border-collapse: collapse; border-spacing: 0; font-size: var(--cat-small); line-height: 1.5; }
.ed-catalog-composition th, .ed-catalog-composition td { border: 0; padding: 12px 16px; vertical-align: top; text-align: left; background: none; }
.ed-catalog-composition thead th { padding-block: 12px; font-weight: 600; color: #344f44; background: transparent; }
.ed-catalog-composition tbody tr:nth-child(odd) { background: transparent; }
.ed-catalog-composition tbody tr:nth-child(even) { background: #e9dec9; }
.ed-catalog-composition :is(th,td):first-child { width: 39%; }
.ed-catalog-composition :is(th,td):nth-child(2) { width: 22%; }
.ed-catalog-composition :is(th,td):last-child { width: 39%; text-align: right; }
.ed-catalog-composition tbody th { font-weight: 600; }
.ed-catalog-composition tbody td:last-child { color: var(--ed-red, #a2382c); font-weight: 600; font-variant-numeric: tabular-nums; }
.ed-catalog-program-opening { margin-bottom: 0; }
.ed-catalog-program-facts { margin: 0; }
.ed-catalog-program-facts > div { background: #fff6e58c; padding: 16px; }
.ed-catalog-program-facts dt { font-weight: 600; }
.ed-catalog-program-facts dd { margin: 8px 0 0; }
.ed-catalog-contact { position: relative; background: var(--ed-red, #a2382c); color: #fff4dd; }
.ed-catalog-contact-layout { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; padding-block: 44px; }
.ed-catalog-contact p { max-width: 57ch; margin-top: 16px; }
.ed-catalog-contact .ed-catalog-button { flex-shrink: 0; border-color: #f5dfb8; background: #f5dfb8; color: #263d30; }
.ed-catalog-contact a:focus-visible { outline-color: #fff4dd; }
.ed-catalog-page p:empty { display: none; }
@media (hover: hover) and (pointer: fine) {
  .ed-catalog-page .ed-catalog-button:hover { background: #822b22; border-color: #822b22; }
  .ed-catalog-page .ed-catalog-link:hover { color: var(--ed-red, #a2382c); }
  .ed-catalog-link svg, .ed-catalog-button svg { transition: transform 180ms cubic-bezier(.23,1,.32,1); }
  .ed-catalog-link:hover svg, .ed-catalog-button:hover svg { transform: translateX(3px); }
  .ed-catalog-index a:hover { background: #28564a; }
  .ed-catalog-contact .ed-catalog-button:hover { background: #fff5dd; border-color: #fff5dd; }
}
.ed-catalog-page .ed-catalog-button:active { transform: scale(.98); }
.shaolin-motion-keyboard .ed-catalog-button, .shaolin-motion-keyboard .ed-catalog-link svg { transition: none; transform: none; }
@media (min-width: 2200px) {
  .wp-site-blocks main.ed-catalog-page { --cat-body: 20px; --cat-small: 18px; --cat-title: 23px; }
  .ed-catalog-program-list { gap: 48px var(--cat-gap); }
}
@media (min-width: 3000px) {
  .wp-site-blocks main.ed-catalog-page { --cat-body: 21px; --cat-small: 18px; --cat-title: 24px; }
}
@media (max-width: 1199px) {
  .wp-site-blocks main.ed-catalog-page { --cat-body: 18px; --cat-small: 17px; --cat-title: 22px; }
  .ed-catalog-index a { padding-inline: 12px; gap: 10px; font-size: 15px; }
  
  .ed-catalog-service { grid-template-columns: minmax(0,1fr) 160px; padding: 18px 0; gap: 24px; }
  .ed-catalog-program-list { grid-template-columns: 1fr; gap: 36px; }
  .ed-catalog-program-intro { gap: 8px; }
}
@media (max-width: 800px) {
  .ed-catalog-index { grid-template-columns: 1fr 1fr; }
  .ed-catalog-index a, .ed-catalog-index a:first-child, .ed-catalog-index a:last-child { min-height: 56px; padding: 14px 12px; font-size: 16px; }
  .ed-catalog-index a:last-child { grid-column: 1/-1; }
  
  .ed-catalog-chapter-opening { gap: 20px; padding: 16px 20px; }
  
  
  .ed-catalog-program-intro { display: block; }
  .ed-catalog-program-intro > p { margin-top: 8px; }
  .ed-catalog-contact-layout { flex-direction: column; align-items: start; gap: 24px; padding-block: 36px; }
}
@media (max-width: 560px) {
  .wp-site-blocks main.ed-catalog-page { --cat-body: 17px; --cat-small: 16px; --cat-title: 21px; --cat-space: 32px; }
  .wp-site-blocks main.ed-catalog-page h2 { font-size: 32px !important; }
  .ed-catalog-actions { gap: 8px 18px; margin-top: 20px; }
  .ed-catalog-page .ed-catalog-button { min-height: 50px; padding: 12px 16px; gap: 12px; }
  .ed-catalog-page .ed-catalog-link { min-height: 46px; gap: 8px; }
  .ed-catalog-index a, .ed-catalog-index a:first-child, .ed-catalog-index a:last-child { font-size: 14px; gap: 10px; padding: 12px; }
  .ed-catalog-section-head { padding-bottom: 22px; }
  .ed-catalog-chapter-opening { gap: 16px; min-height: 92px; padding: 14px 16px; }
  .ed-catalog-chapter-image { width: 72px; height: 64px; flex-basis: 72px; }
  .ed-catalog-service-list { padding-inline: 16px; }
  .ed-catalog-service { grid-template-columns: 1fr; padding: 18px 0; gap: 12px; }
  .ed-catalog-service-copy > p { margin-top: 7px; }
  .ed-catalog-service-price { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 18px; text-align: left; }
  .ed-catalog-service-price strong { margin-left: auto; }
  .ed-catalog-service-price span { max-width: 18ch; }
  .ed-catalog-chapter--herbs .ed-catalog-service-price { flex-wrap: wrap; }
  .ed-catalog-chapter--herbs .ed-catalog-service-price strong { margin: 0; }
  .ed-catalog-program-list { gap: 32px; }
  .ed-catalog-program-opening { grid-template-columns: 72px minmax(0,1fr); align-items: start; gap: 16px; padding: 16px; }
  .ed-catalog-program-body { padding: 0 8px 8px; }
  .ed-catalog-program-image img { height: 72px; aspect-ratio: auto; }
  .ed-catalog-program-intro > p { margin-top: 8px; }
}
@media (max-width: 700px) {
  .ed-catalog-composition { table-layout: auto; }
  .ed-catalog-composition thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
  .ed-catalog-composition, .ed-catalog-composition tbody { display: block; }
  .ed-catalog-composition tbody tr { display: grid; grid-template-columns: minmax(110px,.85fr) minmax(0,1.15fr); gap: 7px 12px; padding: 12px 8px; }
  .ed-catalog-composition tbody :is(th,td), .ed-catalog-composition tbody :is(th,td):first-child, .ed-catalog-composition tbody :is(th,td):nth-child(2), .ed-catalog-composition tbody :is(th,td):last-child { display: block; width: auto; border: 0; padding: 0; }
  .ed-catalog-composition tbody th { grid-column: 1/-1; font-size: 17px; }
  .ed-catalog-composition tbody td { font-size: 16px; }
  .ed-catalog-composition tbody td:last-child { text-align: right; }
}
@media (max-width: 360px) {
  .ed-catalog-program-opening { grid-template-columns: 56px minmax(0,1fr); gap: 12px; padding: 14px 12px; }
  .ed-catalog-program-image img { height: 56px; }
  
  
}
@media (prefers-reduced-motion: reduce) {
  .ed-catalog-page *, .ed-catalog-page *::before, .ed-catalog-page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  .ed-catalog-page .ed-catalog-button:active, .ed-catalog-page a:hover svg { transform: none; }
}

/* A botanical margin opens the price register, without an unrelated image card. */
.ed-catalog-cover{position:relative;isolation:isolate;background:#e7d6b6;overflow:hidden}
.ed-catalog-cover::before{content:"";position:absolute;inset:0;z-index:-2;background:url('../images/art/refinement-paper-perf.webp') center/1536px auto;opacity:.72}
.ed-catalog-cover::after{content:"";position:absolute;right:max(40px,calc((100% - 1280px)/2));bottom:-84px;width:260px;height:390px;z-index:-1;background:url('../images/art/refinement-ginkgo.webp') center/contain no-repeat;opacity:.84;pointer-events:none}
.wp-site-blocks main.ed-catalog-page .ed-catalog-cover .ie-page-intro{padding-block:44px;grid-template-columns:minmax(0,1fr);padding-right:280px}
.ed-catalog-cover .ed-catalog-actions{margin-top:24px}
.ed-catalog-contact{background:#913a2d url('../images/art/refinement-invitation.webp') center/cover no-repeat}
.ed-catalog-contact-layout>div{max-width:62%}
@media(min-width:2200px){.ed-catalog-cover::after{right:calc((100% - 1840px)/2);width:320px;height:480px;bottom:-112px}.wp-site-blocks main.ed-catalog-page .ed-catalog-cover .ie-page-intro{padding-block:56px}}
@media(min-width:3000px){.ed-catalog-cover::after{right:calc((100% - 2320px)/2);width:400px;height:600px;bottom:-160px}}
@media(max-width:800px){.ed-catalog-cover::after{right:-60px;bottom:-100px;width:220px;opacity:.22}.wp-site-blocks main.ed-catalog-page .ed-catalog-cover .ie-page-intro{padding:32px 0}.ed-catalog-contact{background-image:linear-gradient(90deg,#893426e6,#893426d9),url('../images/art/refinement-invitation.webp')}.ed-catalog-contact-layout>div{max-width:100%}}

/* A price register has a reading width even on a 4K canvas. */
@media(min-width:2200px){.wp-site-blocks main.ed-catalog-page{--ed-frame:1520px}.ed-catalog-cover::after{right:calc((100% - 1520px)/2);width:280px;height:420px;bottom:-100px}}
@media(min-width:3000px){.wp-site-blocks main.ed-catalog-page{--ed-frame:1680px}.ed-catalog-cover::after{right:calc((100% - 1680px)/2);width:320px;height:480px;bottom:-112px}}

/* Mobile reading register: complete copy, illustrations and amounts remain available. */
@media (max-width: 800px) {
  .wp-site-blocks main.ed-catalog-page {
    --cat-body: 16px;
    --cat-small: 16px;
    --cat-title: 18px;
    --cat-gap: 20px;
    --cat-space: 28px;
    font-size: 16px;
    line-height: 24px;
  }
  .ed-catalog-frame { width: calc(100% - 32px); }
  .wp-site-blocks main.ed-catalog-page .ed-catalog-cover .ie-page-intro { padding-block: 24px; }
  .wp-site-blocks main.ed-catalog-page .ie-page-intro h1,
  .wp-site-blocks main.ed-catalog-page h2 {
    font-size: 28px !important;
    line-height: 1.2 !important;
  }
  .wp-site-blocks main.ed-catalog-page .ie-page-intro-copy > p {
    margin-top: 12px;
    font-size: 16px;
    line-height: 24px;
  }
  .wp-site-blocks main.ed-catalog-page :is(h3, h4) { line-height: 24px !important; }
  .ed-catalog-actions { gap: 8px 16px; margin-top: 16px; }
  .ed-catalog-cover .ed-catalog-actions { margin-top: 16px; }
  .ed-catalog-page .ed-catalog-button {
    min-height: 48px;
    max-width: 100%;
    padding: 10px 14px;
    gap: 10px;
    font-size: 16px;
    line-height: 24px;
  }
  .ed-catalog-page .ed-catalog-link { min-height: 44px; font-size: 16px; line-height: 24px; }
  .ed-catalog-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ed-catalog-index a,
  .ed-catalog-index a:first-child,
  .ed-catalog-index a:last-child {
    min-width: 0;
    min-height: 48px;
    padding: 10px 8px;
    gap: 8px;
    font-size: 16px;
    line-height: 24px;
  }
  .ed-catalog-index a small { font-size: 16px; }
  .ed-catalog-section-head { padding-block: 28px 12px; }
  .ed-catalog-chapter { padding-top: 20px; }
  .ed-catalog-chapter-opening { gap: 12px; min-height: 0; padding: 12px 16px; }
  .wp-site-blocks main.ed-catalog-page .ed-catalog-chapter-opening h3 {
    min-width: 0;
    font-size: 26px !important;
    line-height: 1.2 !important;
  }
  .ed-catalog-chapter-image { flex-basis: 56px; width: 56px; height: 56px; }
  .ed-catalog-service-list { padding-inline: 16px; }
  .ed-catalog-service { grid-template-columns: minmax(0, 1fr); gap: 8px; padding-block: 14px; }
  .ed-catalog-service-copy > p { margin-top: 4px; font-size: 16px; line-height: 24px; }
  .ed-catalog-service-price {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 12px;
    text-align: left;
  }
  .ed-catalog-service-price span { max-width: none; font-size: 16px; line-height: 24px; }
  .ed-catalog-service-price strong {
    margin-left: auto;
    max-width: 100%;
    font-size: 18px;
    line-height: 24px;
    white-space: normal;
  }
  .ed-catalog-chapter--herbs .ed-catalog-service-price strong { margin-left: auto; }
  .ed-catalog-program-list { gap: 20px; }
  .ed-catalog-program-opening {
    grid-template-columns: 64px minmax(0, 1fr);
    align-items: start;
    gap: 10px 12px;
    padding: 12px 16px;
  }
  .ed-catalog-program-image { width: 64px; grid-column: 1; grid-row: 1; }
  .ed-catalog-program-image img { height: 64px; aspect-ratio: 1; }
  .ed-catalog-program-intro { display: contents; }
  .ed-catalog-program-intro > h3 { grid-column: 2; align-self: center; }
  .ed-catalog-program-intro > p {
    grid-column: 1 / -1;
    margin-top: 0;
    font-size: 16px;
    line-height: 24px;
  }
  .ed-catalog-program-body {
    max-width: 100%;
    padding: 0 8px 8px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-color: #bf965a #e9dec9;
  }
  .ed-catalog-composition {
    display: table;
    width: 100%;
    min-width: 448px;
    table-layout: fixed;
    font-size: 16px;
    line-height: 24px;
  }
  .ed-catalog-composition thead {
    display: table-header-group;
    position: static;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
  }
  .ed-catalog-composition tbody { display: table-row-group; }
  .ed-catalog-composition :is(thead, tbody) tr { display: table-row; padding: 0; }
  .ed-catalog-composition :is(thead, tbody) :is(th, td),
  .ed-catalog-composition tbody :is(th, td):first-child,
  .ed-catalog-composition tbody :is(th, td):nth-child(2),
  .ed-catalog-composition tbody :is(th, td):last-child {
    display: table-cell;
    padding: 10px 8px;
    font-size: 16px;
    line-height: 24px;
    overflow-wrap: normal;
    word-break: normal;
  }
  .ed-catalog-composition :is(thead, tbody) :is(th, td):first-child { width: 44%; }
  .ed-catalog-composition :is(thead, tbody) :is(th, td):nth-child(2) { width: 22%; }
  .ed-catalog-composition :is(thead, tbody) :is(th, td):last-child { width: 34%; }
  .ed-catalog-program-facts > div { padding: 12px 8px; }
  .ed-catalog-program-facts dd { margin-top: 4px; }
  .ed-catalog-contact-layout { gap: 16px; padding-block: 28px; }
  .ed-catalog-contact p { margin-top: 12px; font-size: 16px; line-height: 24px; }

  @media (max-width: 495px) {
    .ed-catalog-program-body:has(> .ed-catalog-composition)::before {
      content: "Прокрутите состав курса";
      position: sticky;
      left: 0;
      display: block;
      width: max-content;
      max-width: 100%;
      padding: 8px;
      color: #344f44;
      font-size: 16px;
      line-height: 24px;
    }
  }
}
