/* The current school catalogue, source articles and unified footer. */
.program-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.program-card { min-width:0; }
.program-card .program-body h3 { min-height:0; font-size:clamp(1.6rem,2.5vw,2.15rem); line-height:1.2; }
.program-card .program-art { height:7rem; }
.program-card .program-body { display:flex; flex-direction:column; align-items:flex-start; }
.program-card .program-body>p { flex:1; }
.program-consultations .program-art { background:radial-gradient(ellipse at 70% 140%,#ba773a44,transparent 65%),#171615; }
.program-consultations .program-art::after { width:44px; height:2px; border:0; border-radius:2px; background:#d4a05d; }
.founder-portrait { min-width: 0; max-width: 440px; }
.founder-portrait figcaption {
  margin-top: .65rem;
  color: var(--text);
  font: 500 clamp(1.75rem, 3.5vw, 2.625rem)/1.2 Oswald, sans-serif;
  text-align: center;
  text-transform: none;
}
.founder-copy > .founder-role {
  margin: 0;
  color: var(--amber);
  font: 500 clamp(1rem, calc(2.5vw - 1px), 1.9375rem)/1.16 Oswald, sans-serif;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.founder-credentials { list-style:none; padding:0; margin:1.5rem 0 2rem; }
.founder-credentials li { position:relative; padding:.45rem 0 .45rem 1.1rem; color:#d1c9bf; font-size:1rem; line-height:1.5; }
.founder-credentials li::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--forge-thread); position:absolute; left:0; top:1.05rem; }
.founder-socials { display:flex; flex-wrap:wrap; gap:1.5rem; margin:1.6rem 0 2rem; }
/* Compact footer: one programme row, one documents row, one enclosing frame. */
.site-footer { border-top:0; padding:32px 0; }
.footer-frame { border:1px solid var(--forge-edge); border-radius:28px; padding:28px 32px; }
.site-footer .footer-main { grid-template-columns:auto minmax(0,1fr); padding:0; gap:16px 28px; align-items:center; }
.site-footer .brand { grid-column:1; grid-row:1; align-self:center; }
.site-footer .footer-main nav { display:flex; align-items:center; flex-wrap:wrap; gap:8px 24px; font-size:.875rem; }
.site-footer .footer-main .footer-programs { grid-column:1/-1; grid-row:2; column-gap:24px; }
.site-footer .footer-programs h3 { margin:0; font-size:.875rem; font-weight:600; }
.site-footer .footer-programs a { white-space:nowrap; border:1px solid var(--forge-edge); border-radius:7px; padding:8px 13px; background:#211b15; }
.site-footer .footer-main .footer-socials { grid-column:2; grid-row:1; justify-content:flex-end; gap:10px 24px; }
.site-footer .footer-socials>a:last-child { max-width:18rem; line-height:1.5; }
.site-footer .footer-legal { display:flex; flex-wrap:wrap; gap:0 28px; padding:8px 0 0; border:0; font-size:.8125rem; }
.footer-bottom { display:flex; justify-content:space-between; gap:16px 28px; margin-top:12px; color:#a8a096; font-size:.78rem; line-height:1.65; }
.footer-bottom p { margin:0; }
.footer-owner-id { display:inline-block; white-space:nowrap; }
.site-footer .footer-bottom p:first-child { text-align:left; }
.site-footer .footer-message { display:inline-flex; align-items:center; min-height:44px; padding:9px 16px; margin:0; gap:1rem; font-size:.875rem; }
@media(min-width:761px) and (max-width:1100px){
.site-footer .footer-main .footer-programs{column-gap:18px}
.site-footer .footer-main .footer-socials{gap:12px}
.site-footer .footer-socials>a:last-child{max-width:16rem}
}
.source-hero { padding:36px 0 80px; background:radial-gradient(ellipse at 78% 50%,#ae672c15,transparent 70%); }
.source-hero-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:60px; align-items:center; margin-top:54px; }
.source-hero h1 { font-size:clamp(2.8rem,4.7vw,4.6rem); line-height:1.08; margin:20px 0 26px; }
.source-hero em { font-style:normal; color:#dfad73; }
.source-hero figure { margin:0; border-radius:24px; overflow:hidden; aspect-ratio:1.15; box-shadow:0 20px 90px #0007; }
.source-hero figure img { width:100%; height:100%; object-fit:cover; }
.source-hero .lead { font-size:1.12rem; line-height:1.75; margin-bottom:32px; }
.outings-hero .source-hero-grid { margin-top:0; }
.outings-hero h1 { margin-top:0; }
.consultation-hero .source-hero-grid {
  grid-template-columns:minmax(0, 1.16fr) minmax(0, 1fr);
  grid-template-areas:"intro portrait" "profile portrait";
  grid-template-rows:auto 1fr;
  row-gap:1.5rem;
  align-items:start;
  margin-top:0;
}
.consultation-intro { grid-area:intro; }
.consultation-hero h1 {
  margin:0 0 1.25rem;
  font-size:clamp(2.55rem, 4.05vw, 3.75rem);
  text-wrap:balance;
}
.consultation-hero .lead { max-width:52ch; line-height:1.65; margin-bottom:0; }
.consultation-hero .lead + .lead { margin-top:1rem; }
.consultation-hero .consultation-portrait {
  grid-area:portrait;
  align-self:center;
  aspect-ratio:4/5;
}
.consultation-portrait img { object-position:50% 20%; }
.consultation-profile {
  grid-area:profile;
  max-width:34rem;
  padding-top:1.25rem;
  border-top:1px solid var(--forge-edge);
}
.consultation-profile h2 { font-size:clamp(1.75rem, 3vw, 2.25rem); text-transform:none; }
.consultation-profile > p { margin-top:.45rem; }
.consultation-profile .founder-credentials { margin:.65rem 0 0; }
@media (max-width:760px) {
  .consultation-hero .source-hero-grid {
    grid-template-columns:minmax(0, 1fr);
    grid-template-areas:"intro" "portrait" "profile";
    grid-template-rows:auto;
  }
  .consultation-hero .consultation-portrait { width:min(100%, 27rem); aspect-ratio:1; }
  .consultation-profile { padding-top:0; border-top:0; }
}
.training-hero { padding-block: clamp(2.75rem, 6vw, 5.5rem); }
.training-hero .detail-hero-grid { align-items: center; }
.training-hero h1 { font-size: clamp(2.1rem, 3.8vw, 3.5rem); }
.training-club {
  display: block;
  margin-top: .45em;
  font-size: clamp(1.25rem, 1.9vw, 1.85rem);
  line-height: 1.25;
}
.training-brand { white-space: nowrap; }
.training-photo {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid var(--forge-edge);
  border-radius: clamp(.75rem, 1.5vw, 1.4rem);
}
.training-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 52% center;
}
[data-page="zanyatiya"] #training { padding-block: clamp(2.75rem, 5vw, 4.5rem); }
[data-page="zanyatiya"] .editorial-grid h2 {
  margin-bottom: .7rem;
  font: 600 clamp(1.15rem, 1.7vw, 1.375rem)/1.4 Montserrat, Arial, sans-serif;
  text-transform: none;
  letter-spacing: 0;
}
.source-intro { padding-top:0; }
.source-quote { font:500 clamp(2rem,4vw,3.5rem)/1.25 Oswald,sans-serif; color:#e1b989; margin:0 0 44px; }
.program-video { display:block; width:100%; aspect-ratio:16/9; background:#080808; border-radius:24px; }
.source-toc { margin:32px 0 0; border-block:1px solid var(--line); padding:22px 0; }
.source-toc summary { cursor:pointer; font-size:1.2rem; color:#e6b77b; }
.source-toc nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 28px; padding:28px 0 8px; }
.source-toc a { color:#cdc4b7; font-size:.95rem; }
.program-chapter { border:0; background:radial-gradient(ellipse at 10% 45%,#c0873910,transparent 68%); padding-block:64px; }
.chapter-grid { display:grid; grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr); gap:clamp(50px,9vw,145px); }
.chapter-grid>header { align-self:start; position:sticky; top:120px; }
.chapter-number { display:block; color:var(--forge-thread); font:400 4.1rem/1 Oswald,sans-serif; letter-spacing:-.04em; margin-bottom:22px; }
.chapter-grid h2 { font-size:clamp(2rem,3.2vw,3rem); line-height:1.2; }
.chapter-grid>header p { color:#a99e90; line-height:1.6; margin-top:1.4rem; }
.chapter-copy { font-size:1.08rem; line-height:1.85; color:#d0c8bd; min-width:0; }
.chapter-copy p:first-child { margin-top:0; }
.chapter-copy p { margin:0 0 1.3em; }
.chapter-copy h3 { font:500 1.65rem/1.3 Oswald,sans-serif; color:#eee8dc; margin:2.3rem 0 1rem; }
.chapter-copy h3:first-child { margin-top:0; }
.chapter-step { color:#c48c50; font-size:1.1rem; display:inline-block; margin-right:14px; }
.chapter-copy ul { padding-left:1.1rem; margin:0 0 1.3em; }
.chapter-copy li { padding:.25em 0 .25em .5em; }
.chapter-copy li::marker { color:var(--forge-thread); }
.chapter-copy a { color:var(--amber); overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:4px; }
.source-reviews { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:28px; }
.camp-reviews { grid-template-columns:repeat(4,minmax(0,1fr)); }
.review-image { display:block; background:#1d1b19; border:1px solid var(--forge-edge); border-radius:14px; padding:8px; transition:border-color .3s,transform .3s; }
.review-image img { width:100%; height:240px; object-fit:contain; display:block; }
.review-image:hover { border-color:var(--forge-thread); transform:translateY(-3px); }
.story-launch { padding:30px; background:linear-gradient(125deg,#30281f,#171614); border:1px solid var(--forge-edge); border-radius:22px; margin:30px 0; }
.story-launch>span:last-child { display:block; margin-top:14px; font-size:.85rem; color:#b6a998; }
.story-dialog { padding:18px; border:1px solid var(--forge-edge); border-radius:20px; background:#161514; color:#ede4d8; max-width:min(92vw,820px); width:820px; max-height:95dvh; }
.story-dialog::backdrop { background:#050504e8; }
.story-dialog>header,.story-dialog nav { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.story-dialog h2 { font:500 1.4rem Oswald,sans-serif; margin:0; }
.story-dialog button { border:1px solid var(--forge-edge); background:#29241c; color:#f2d4a6; border-radius:8px; min-height:44px; padding:8px 14px; cursor:pointer; }
.story-frame { height:min(70dvh,640px); padding:16px 0; }
.story-frame[hidden] { display:none; }
.story-frame :is(img,video) { height:100%; width:100%; display:block; object-fit:contain; }
.program-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; margin:40px 0; }
.program-facts article { border-top:2px solid var(--forge-thread); padding-top:22px; }
.program-facts span { color:#b0a79a; display:block; margin-bottom:16px; }
.program-facts strong { font:500 clamp(1.8rem,3vw,2.6rem) Oswald,sans-serif; color:#e1b785; }
.document-hub { max-width:900px; min-height:55vh; }
.document-hub h1 { margin:30px 0; font-size:clamp(2.5rem,5vw,4rem); }
.document-options { display:grid; gap:20px; margin:40px 0; }
.document-options a { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; padding:24px; border:1px solid var(--forge-edge); background:#2c251b; border-radius:12px; }
@media(max-width:1100px){.main-nav{gap:16px;font-size:.8rem}.source-hero-grid{gap:32px}.chapter-grid{gap:50px}}
@media(max-width:760px){
.program-grid{grid-template-columns:1fr}.program-card .program-art{height:5rem}
.founder-grid { grid-template-columns:minmax(0,1fr); row-gap:1rem; }
.founder-grid .founder-copy { display:contents; }
.founder-grid .founder-role { grid-row:1; }
.founder-grid .founder-portrait { grid-row:2; width:100%; justify-self:center; }
.founder-grid .founder-details { grid-row:3; min-width:0; }
.founder-details .founder-credentials { margin-top:0; }
.founder-details .button { width:100%; }
.site-footer{padding:24px 0}.footer-frame{width:calc(100% - 38px);padding:24px 20px}
.site-footer .footer-main{grid-template-columns:1fr;gap:16px}
.site-footer .brand{grid-column:1;grid-row:auto}
.site-footer .footer-main .footer-programs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;grid-auto-rows:1fr;grid-column:1;grid-row:auto;gap:8px;align-items:stretch}
.site-footer .footer-programs h3{grid-column:1/-1;margin-bottom:4px}
.site-footer .footer-programs a{display:flex;align-items:center;justify-content:center;min-height:3.65rem;white-space:normal;text-align:center;line-height:1.3;padding:8px}
.site-footer .footer-programs a:last-child{grid-column:1/-1}
.site-footer .footer-main .footer-socials{grid-column:1;grid-row:auto;justify-content:flex-start;gap:6px 16px}
.site-footer .footer-socials>a:last-child{max-width:none}
.site-footer .footer-legal{flex-direction:row;gap:0 20px;padding-top:16px}
.footer-bottom{flex-direction:column;gap:8px;margin-top:12px}
.site-footer .footer-bottom p{text-align:left}
.source-hero{padding-bottom:48px}.source-hero-grid{grid-template-columns:1fr;margin-top:30px;gap:32px}.source-hero h1{font-size:2.7rem}.source-hero figure{aspect-ratio:1.55}.source-hero .lead{font-size:1.05rem}.source-toc nav{grid-template-columns:1fr;gap:14px}.program-video{border-radius:12px}
.chapter-grid{grid-template-columns:1fr;gap:25px}.chapter-grid>header{position:static}.program-chapter{padding-block:42px}.chapter-number{font-size:3.2rem;margin-bottom:16px}.chapter-grid h2{font-size:2rem}.chapter-copy{font-size:1.05rem;line-height:1.8}.program-facts{grid-template-columns:1fr;gap:24px}.source-reviews,.camp-reviews{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.review-image img{height:190px}.story-launch{padding:24px}.story-dialog{width:calc(100vw - 24px);padding:14px}.story-frame{height:65dvh}
}
@media(prefers-reduced-motion:reduce){.review-image{transition:none}}

.signup-consent a { color:var(--amber); text-decoration:underline; text-underline-offset:3px; }

/* Compact photographic programme previews, owner review 10 November. */
.program-card .program-photo { display:block; height:200px; border-right:0; background:#121210; }
.program-photo::after { display:none!important; }
.program-photo img { width:100%; height:100%; object-fit:cover; object-position:center 58%; }
.program-online .program-photo img { object-fit:contain; }
.program-consultations .program-photo img { object-position:center 42%; }
.program-card:has(.program-photo) { display:flex; flex-direction:column; }
@media(max-width:760px) {
 .program-card .program-photo { height:170px; }
}
.program-consultations .program-photo img { object-fit:contain; object-position:center; }
.program-consultations .program-photo { background:#9d8d79; }

/* Outings: full source text stays available without a 22-section wall. */
.camp-activities { margin-top:32px; border-top:1px solid var(--forge-edge); }
.camp-activity { border-bottom:1px solid var(--forge-edge); }
.camp-activity summary { display:flex; align-items:center; justify-content:space-between; gap:24px; list-style:none; cursor:pointer; padding:22px 0; font:500 1.35rem/1.4 Oswald,sans-serif; color:#e9dfd0; }
.camp-activity summary::-webkit-details-marker { display:none; }
.camp-activity summary::after { content:'+'; flex:none; color:var(--amber); font:400 1.6rem/1 Montserrat,sans-serif; }
.camp-activity[open] summary::after { content:'−'; }
.camp-activity[open] summary { color:var(--amber); }
.camp-activity .chapter-copy { padding:4px 0 16px; }
.camp-conditions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:40px; }
.camp-condition { border:1px solid var(--forge-edge); border-radius:18px; padding:30px; background:#1c1915; }
.camp-condition h3 { font:500 1.8rem/1.3 Oswald,sans-serif; color:#e4b47c; margin:0 0 22px; }
.camp-condition .chapter-copy { font-size:1rem; line-height:1.7; }
.camp-condition .chapter-copy>:last-child { margin-bottom:0; }
@media(max-width:760px){.camp-conditions{grid-template-columns:1fr;gap:16px;margin-top:28px}.camp-condition{padding:24px}.camp-activity summary{font-size:1.25rem;padding:18px 0}}

/* Keep every participant in the owner-provided group photo; crop only the sky. */
[data-page="vyezdy"] .source-hero figure { aspect-ratio:16/10; }
[data-page="vyezdy"] .source-hero figure img { object-position:center bottom; }

.online-hero {
  --online-hero-width: min(100vw, var(--hero-art-max));
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  min-height: max(590px, calc(var(--online-hero-width) * .5));
  overflow: hidden;
  background: #101010;
}
.online-hero-art {
  position: absolute;
  z-index: -2;
  inset: 50% var(--hero-art-inset) auto auto;
  width: min(100%, var(--hero-art-max));
  max-width: none;
  height: auto;
  transform: translateY(-50%);
  /* Retain the selected artwork to the right of the mockup lettering. */
  clip-path: inset(0 0 0 53.4%);
  mask-image: linear-gradient(90deg, transparent 53.4%, #000 57%,
                #000 calc(100% - var(--hero-art-edge)), transparent),
              linear-gradient(180deg, transparent, #000 16%, #000 84%, transparent);
  mask-composite: intersect;
}
.online-hero-copy {
  width: min(42%, calc(var(--hero-art-max) * .42), 40rem);
  margin-inline-start: calc(var(--hero-art-inset) + clamp(2rem, var(--online-hero-width) * .15, 17rem));
  padding-block: clamp(4rem, var(--online-hero-width) * .09, 9rem) 3rem;
}
.online-hero-overline, .online-hero-tags {
  font: 500 .75rem/1.45 Oswald, sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #d0c2b2;
}
.online-hero-overline::before {
  content: '';
  display: inline-block;
  width: 1rem;
  margin: 0 .6rem .25em 0;
  border-top: 1px solid var(--forge-thread);
}
.online-hero h1 {
  margin: .36em 0 .55em;
  color: #ece6dc;
  font-size: clamp(3.15rem, var(--online-hero-width) * .058, 7rem);
  font-weight: 700;
  line-height: .96;
  letter-spacing: .01em;
}
.online-hero h1 span { display: block; }
.online-hero-accent {
  width: fit-content;
  padding-bottom: .13em;
  border-bottom: clamp(3px, .38vw, 6px) solid var(--forge-thread);
}
.online-hero-lead { max-width: 48ch; color: #d5ccc0; line-height: 1.65; }
.online-hero-tags { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1.35rem 0 0; padding: 0; list-style: none; }
.online-hero-tags li { padding: .4rem .6rem; border: 1px solid var(--forge-edge); border-radius: .3rem; }
.online-hero-tags li::before { content: '◆'; color: var(--forge-thread); margin-inline-end: .45rem; font-size: .5em; vertical-align: .2em; }
@media (max-width: 760px) {
  .online-hero { min-height: 0; }
  .online-hero-copy { width: 100%; margin-inline: var(--gutter); padding: 3rem 0 calc(83vw + 4rem); }
  .online-hero h1 { font-size: clamp(2.65rem, 11.4vw, 4.7rem); }
  .online-hero-art {
    width: min(210%, 1040px);
    inset: auto 0 .5rem auto;
    transform: none;
  }
}

/* Online chapters follow the original programme page's reading grid. */
.online-chapter { background: #101010; border-top: 1px solid #302a23; padding-block: clamp(60px, 10vh, 128px); }
.online-chapter .chapter-grid { grid-template-columns: minmax(0, 1fr); gap: clamp(26px, 5vw, 72px); }
.online-chapter .chapter-grid > header { position: static; }
.online-chapter .chapter-number {
  margin: 0 0 1.1rem;
  font: 600 clamp(3.6rem, 7vw, 5.6rem)/.86 Oswald, sans-serif;
  color: #5b5249;
}
.online-chapter .chapter-number b { color: var(--forge-thread); font-weight: inherit; }
.online-chapter .chapter-grid h2 {
  margin: 0;
  padding-inline-start: .8rem;
  border-inline-start: 3px solid var(--forge-thread);
  font: 500 .94rem/1.5 Oswald, sans-serif;
  letter-spacing: .1em;
}
.online-chapter .chapter-grid > header p { margin-top: .8rem; font-size: .875rem; }
.online-chapter .chapter-copy { color: #bbb1a5; font-size: 1.05rem; line-height: 1.72; }
.online-chapter .online-chapter-lead {
  color: #ece6dc;
  font-size: clamp(1.2rem, 2.2vw, 1.55rem);
  line-height: 1.53;
}
.online-chapter strong { color: #ece6dc; font-weight: 650; }
.online-steps { margin-top: 1.6rem; }
.online-steps summary { letter-spacing: .045em; text-transform: uppercase; }
.online-callout {
  margin: 1.55rem 0 1rem;
  padding: clamp(18px, 3vw, 30px);
  border: 1px solid var(--forge-edge);
  border-inline-start: 4px solid var(--forge-thread);
  border-radius: 4px;
  background: #1c1814;
  scroll-margin-top: 112px;
}
.online-callout > span {
  color: var(--amber);
  font: 500 .77rem/1.45 Oswald, sans-serif;
  text-transform: uppercase;
  letter-spacing: .18em;
}
.online-callout p { margin: .6rem 0 0; color: #ece6dc; }
.online-key p { font-size: clamp(1.15rem, 2.2vw, 1.5rem); font-weight: 500; line-height: 1.5; }
@media(min-width: 920px) {
  .online-chapter .chapter-grid { grid-template-columns: minmax(0, 230px) minmax(0, 1fr); }
  .online-chapter .chapter-grid > header { position: sticky; top: 120px; }
}
#stories .chapter-grid { grid-template-columns:minmax(0,1fr); max-width:900px; gap:30px; }
#stories .chapter-grid>header { position:static; display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px 24px; align-items:center; }
#stories .chapter-number { grid-column:1; grid-row:1; margin:0; font-size:2.6rem; }
#stories .chapter-grid>header h2 { grid-column:2; margin:0; }
#stories .chapter-grid>header p { grid-column:2; margin:0; }
#camp-program>.container>.camp-activities .chapter-copy { max-width:800px; }
@media(max-width:760px){#stories .chapter-grid>header{gap:10px 16px}#stories .chapter-number{font-size:2rem}}

#camp-program .chapter-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
#camp-program .chapter-grid>header { position:static; }
#camp-program .chapter-grid>.chapter-copy { max-width:900px; }
