
:root{
  --ivory:#F7F3ED;
  --paper:#FBF8F3;
  --black:#1A1A1A;
  --charcoal:#4B4B4B;
  --gold:#B08D57;
  --deep:#4A1A14;
  --line:rgba(26,26,26,.16);
  --serif: "Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,"Times New Roman",serif;
  --sans: Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --max:1440px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--black);font-family:var(--sans);line-height:1.55}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:999;background:white;padding:.75rem}
.site-header{position:sticky;top:0;z-index:100;background:rgba(247,243,237,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(26,26,26,.08)}
.nav{max-width:var(--max);margin:auto;padding:18px 34px;display:flex;align-items:center;gap:34px}
.brand{display:flex;align-items:center;gap:13px;margin-right:auto;letter-spacing:.2em;font-family:var(--serif);font-size:.95rem}
.brand img{width:42px;height:42px;object-fit:contain;background:transparent}
.nav-links{display:flex;align-items:center;gap:28px;font-size:.74rem;letter-spacing:.13em;text-transform:uppercase}
.nav-links a{position:relative;padding:8px 0}
.nav-links a:after{content:"";position:absolute;left:0;bottom:2px;width:0;height:1px;background:var(--deep);transition:.3s}
.nav-links a:hover:after,.nav-links a[aria-current="page"]:after{width:100%}
.nav-cta{border:1px solid var(--deep);padding:11px 16px!important;color:var(--deep)}
.menu-btn{display:none;background:none;border:0;font-size:1.4rem}
.hero{min-height:82vh;display:grid;grid-template-columns:1.05fr 1fr;background:#111;color:white}
.hero-copy{padding:9vw 6vw 6vw;display:flex;flex-direction:column;justify-content:center;position:relative}
.eyebrow{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:1.4rem}
.hero h1,.display{font-family:var(--serif);font-weight:400;line-height:.94;letter-spacing:-.035em;margin:0}
.hero h1{font-size:clamp(4.5rem,9vw,9.5rem)}
.hero .lead{font-family:var(--serif);font-size:clamp(1.35rem,2.25vw,2.15rem);max-width:700px;margin:2rem 0 1rem}
.hero .support{max-width:590px;color:rgba(255,255,255,.8);font-size:1rem}
.hero-image{position:relative;overflow:hidden;min-height:620px}
.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.28),transparent 45%)}
.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:2.4rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:1px solid transparent;font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;transition:.25s}
.btn-primary{background:var(--deep);color:white}.btn-primary:hover{background:#32100c;transform:translateY(-1px)}
.btn-secondary{background:var(--ivory);color:var(--black);border-color:rgba(255,255,255,.5)}
.btn-outline{border-color:var(--black);background:transparent}
.btn-text{padding:0;min-height:auto;border:0;border-bottom:1px solid currentColor}
.section{padding:110px 6vw}
.section-inner{max-width:var(--max);margin:auto}
.question{padding:120px 6vw;text-align:center;border-bottom:1px solid var(--line)}
.question h2{font-family:var(--serif);font-size:clamp(3rem,6vw,7rem);font-weight:400;line-height:1.02;margin:0 auto;max-width:1050px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:start}
.section-title{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,5vw,5.6rem);line-height:1.02;margin:.2rem 0 2rem}
.kicker{font-size:.67rem;letter-spacing:.24em;text-transform:uppercase;color:var(--deep)}
.prose{font-family:var(--serif);font-size:clamp(1.25rem,2vw,1.85rem);line-height:1.5}
.prose p:first-child{margin-top:0}
.manifesto{background:var(--paper)}
.statement{background:var(--black);color:white;padding:90px 6vw}
.statement .line{font-family:var(--serif);font-size:clamp(3rem,6vw,7rem);line-height:1;white-space:nowrap}
.recognition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 70px;margin-top:50px}
.recognition-grid p{font-family:var(--serif);font-size:1.65rem;margin:0;padding-top:18px;border-top:1px solid var(--gold)}
.editorial-band{display:grid;grid-template-columns:1fr 1fr;min-height:560px}
.editorial-band img{width:100%;height:100%;object-fit:cover}
.editorial-copy{padding:7vw;display:flex;flex-direction:column;justify-content:center;background:var(--paper)}
.quote{font-family:var(--serif);font-size:clamp(2.5rem,5vw,5.4rem);line-height:1.03}
.origin-preview{background:var(--black);color:white}
.final-invite{text-align:center;padding:140px 6vw}
.final-invite h2{font-family:var(--serif);font-size:clamp(3rem,5.5vw,6rem);font-weight:400;max-width:1000px;margin:0 auto 35px;line-height:1.05}
.site-footer{background:#111;color:white;padding:68px 6vw 30px}
.footer-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:50px}
.footer-title{font-family:var(--serif);letter-spacing:.16em}
.footer-col h3{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.footer-col a{display:block;color:rgba(255,255,255,.76);margin:8px 0;font-size:.9rem}
.footer-bottom{max-width:var(--max);margin:55px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);font-size:.72rem;color:rgba(255,255,255,.55);display:flex;justify-content:space-between}
.page-hero{padding:110px 6vw 70px;max-width:var(--max);margin:auto}
.page-hero h1{font-family:var(--serif);font-size:clamp(4rem,8vw,8rem);font-weight:400;line-height:.95;margin:0}
.page-hero p{font-family:var(--serif);font-size:1.5rem;max-width:760px}
.story-layout{max-width:1200px;margin:auto;padding:20px 6vw 120px}
.story-layout .chapter{display:grid;grid-template-columns:1fr 1.25fr;gap:7vw;margin:100px 0;align-items:center}
.story-layout .chapter:nth-child(even) .story-image{order:2}
.story-image img{height:680px;width:100%;object-fit:cover}
.story-text{font-family:var(--serif);font-size:1.25rem}
.story-text h2{font-size:3rem;font-weight:400;line-height:1.05}
.phase-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin-top:60px}
.phase{padding:34px;border-right:1px solid var(--line)}
.phase:last-child{border-right:0}
.phase-num{font-family:var(--serif);font-size:3.7rem}
.phase h3{font-family:var(--serif);font-size:1.65rem}
.inclusions{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:45px}
.card{border-top:1px solid var(--gold);padding:22px 0}
.card h3{font-family:var(--serif);font-size:1.6rem;font-weight:400}
.outcomes{background:var(--deep);color:white}
.outcomes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px 80px}
.outcomes-grid div{padding:20px 0;border-top:1px solid rgba(255,255,255,.35);font-family:var(--serif);font-size:1.55rem}
.obs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 28px}
.obs-card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.obs-card h2{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1.08}
.meta{font-size:.65rem;text-transform:uppercase;letter-spacing:.17em;color:var(--deep)}
.form-wrap{max-width:900px;margin:0 auto;padding:20px 6vw 120px}
.form{background:var(--paper);padding:50px;border:1px solid var(--line)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.field.full{grid-column:1/-1}
label{font-size:.67rem;letter-spacing:.16em;text-transform:uppercase}
input,textarea,select{border:0;border-bottom:1px solid #999;background:transparent;padding:12px 2px;outline:none}
input:focus,textarea:focus,select:focus{border-color:var(--deep)}
textarea{min-height:130px;resize:vertical}
.note{font-family:var(--serif);font-size:1.2rem;color:var(--charcoal)}
.circle-mark{width:72px;height:72px;object-fit:contain;background:transparent}
.fade-up{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.fade-up.visible{opacity:1;transform:none}
@media(max-width:900px){
  .nav{padding:15px 20px}.menu-btn{display:block}.nav-links{display:none;position:absolute;top:68px;left:0;right:0;background:var(--ivory);padding:24px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line)}.nav-links.open{display:flex}
  .hero{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:90px 24px 50px}.hero-image{min-height:520px;order:-1}.hero h1{font-size:4.2rem}
  .split,.editorial-band,.story-layout .chapter{grid-template-columns:1fr}.editorial-band img{min-height:420px}.story-layout .chapter:nth-child(even) .story-image{order:0}
  .statement .line{white-space:normal}.recognition-grid,.outcomes-grid{grid-template-columns:1fr}
  .phase-grid{grid-template-columns:1fr 1fr}.phase:nth-child(2){border-right:0}.phase{border-bottom:1px solid var(--line)}
  .inclusions,.obs-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}
}
@media(max-width:560px){
  .section{padding:80px 24px}.question{padding:90px 24px}.page-hero{padding:75px 24px 45px}.phase-grid{grid-template-columns:1fr}.phase{border-right:0}
  .footer-grid{grid-template-columns:1fr}.footer-bottom{display:block}.form{padding:28px 20px}.story-image img{height:500px}
}

.statement .kicker,.origin-preview .kicker,.outcomes .kicker,.site-footer .kicker{color:#D7B77B}
.dark-label{color:#F7F3ED!important}
.feature-split{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.feature-image{min-height:620px}
.feature-image img{width:100%;height:100%;object-fit:cover}
.feature-copy{padding:7vw;background:var(--paper)}
.feature-copy + .feature-copy{border-left:1px solid var(--line)}
.feature-copy h3{font-family:var(--serif);font-size:clamp(2.6rem,4vw,4.8rem);font-weight:400;line-height:1.02;margin:.5rem 0 2rem}
.editorial-list{list-style:none;padding:0;margin:2rem 0}
.editorial-list li{font-family:var(--serif);font-size:1.45rem;padding:16px 0;border-top:1px solid var(--line)}
.editorial-list li:last-child{border-bottom:1px solid var(--line)}
.recognition-list{max-width:1100px;margin:45px auto 0}
.recognition-item{display:grid;grid-template-columns:40px 1fr;gap:20px;padding:26px 0;border-top:1px solid var(--line)}
.recognition-item span{font-family:var(--serif);font-size:1.2rem;color:var(--deep)}
.recognition-item p{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,2.35rem);line-height:1.22;margin:0}
.recognition-close{text-align:center;font-family:var(--serif);font-size:clamp(2rem,4vw,4rem);line-height:1.08;margin:80px auto 0;max-width:950px}
.story-intro{font-family:var(--serif);font-size:1.35rem;max-width:800px;margin-top:35px}
.story-quote{font-family:var(--serif);font-size:clamp(2.4rem,4.5vw,5rem);line-height:1.05;margin:100px auto;max-width:1000px;text-align:center}
.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:7vw;align-items:center}
.detail-grid img{width:100%;height:650px;object-fit:cover}
.know-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);margin-top:50px}
.know-item{padding:28px 30px 28px 0;border-bottom:1px solid var(--line)}
.know-item:nth-child(odd){border-right:1px solid var(--line);padding-right:45px}
.know-item:nth-child(even){padding-left:45px}
.know-item h3{font-family:var(--serif);font-size:1.8rem;font-weight:400;margin:0 0 8px}
.faq{max-width:1000px;margin:50px auto 0;border-top:1px solid rgba(255,255,255,.25)}
.faq details{border-bottom:1px solid rgba(255,255,255,.25);padding:22px 0}
.faq summary{cursor:pointer;font-family:var(--serif);font-size:1.45rem;list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary:after{content:"+";color:var(--gold)}
.faq details[open] summary:after{content:"−"}
.faq p{max-width:780px;color:rgba(255,255,255,.78)}
.faq-section{background:var(--black);color:white}
@media(max-width:900px){
  .feature-split,.detail-grid{grid-template-columns:1fr}
  .feature-copy + .feature-copy{border-left:0;border-top:1px solid var(--line)}
  .feature-image{min-height:430px}
  .know-grid{grid-template-columns:1fr}
  .know-item:nth-child(odd){border-right:0;padding-right:0}
  .know-item:nth-child(even){padding-left:0}
}

/* v3 refinements */
.circle-checklist{list-style:none;padding:0;margin:2rem 0}
.circle-checklist li{position:relative;padding:18px 0 18px 54px;border-top:1px solid var(--line);font-family:var(--serif);font-size:1.45rem;line-height:1.35}
.circle-checklist li:last-child{border-bottom:1px solid var(--line)}
.circle-checklist li:before{content:"";position:absolute;left:0;top:18px;width:28px;height:28px;border:2px solid var(--gold);border-radius:50%}
.circle-checklist.on-dark li{border-color:rgba(255,255,255,.24)}
.circle-checklist.on-dark li:before{border-color:#D7B77B}
.philosophy-deep{background:var(--deep);color:white}
.philosophy-deep .kicker{color:#E0C28F}
.philosophy-deep .prose,.philosophy-deep p{color:rgba(255,255,255,.9)}
.program-name{white-space:nowrap}
.knowledge-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}
.knowledge-card{background:var(--paper);border:1px solid var(--line);padding:28px;min-height:220px;display:flex;flex-direction:column;justify-content:space-between}
.knowledge-card .num{font-family:var(--serif);font-size:2.5rem;color:var(--gold)}
.knowledge-card h3{font-family:var(--serif);font-size:1.55rem;font-weight:400;margin:1rem 0}
.knowledge-card p{margin:0;color:var(--charcoal)}
.story-intro{font-family:var(--serif);font-size:1.35rem;max-width:800px;margin-top:35px}
.story-quote{font-family:var(--serif);font-size:clamp(2.4rem,4.5vw,5rem);line-height:1.05;margin:100px auto;max-width:1000px;text-align:center}
.detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:7vw;align-items:center}
.detail-grid img{width:100%;height:650px;object-fit:cover}
.faq{max-width:1000px;margin:50px auto 0;border-top:1px solid rgba(255,255,255,.25)}
.faq details{border-bottom:1px solid rgba(255,255,255,.25);padding:22px 0}
.faq summary{cursor:pointer;font-family:var(--serif);font-size:1.45rem;list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary:after{content:"+";color:var(--gold)}
.faq details[open] summary:after{content:"−"}
.faq p{max-width:780px;color:rgba(255,255,255,.78)}
.faq-section{background:var(--black);color:white}
.calendly-inline-widget{min-width:320px;height:760px}
@media(max-width:900px){.knowledge-cards{grid-template-columns:1fr}.program-name{white-space:normal}.detail-grid{grid-template-columns:1fr}}

/* v4 layout refinements */
.feature-image img{object-position:center center}
.nowrap-emphasis{white-space:nowrap}
.imagine-close{max-width:980px;margin:58px auto 0;text-align:center;font-family:var(--serif);font-size:clamp(1.45rem,2.2vw,2.2rem);line-height:1.3;padding:0 24px}
.final-invite .final-two-lines{font-size:clamp(2.4rem,4.5vw,5rem);max-width:1100px;line-height:1.05}
.story-quote-compact{font-size:clamp(2rem,3.4vw,3.8rem);max-width:980px;line-height:1.08}
.origin-final-line{font-size:clamp(2.3rem,4vw,4.8rem)!important;max-width:1100px!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important;line-height:1.08!important}
.story-image img{object-position:center center}
@media(max-width:700px){.nowrap-emphasis{white-space:normal}.final-invite .final-two-lines br{display:none}.origin-final-line br{display:none}}

/* Launch v1.0 editorial polish */
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
img{background:#eee9e1}
.nav-links a[aria-current="page"]{font-weight:600}
.page-hero .application-intro{max-width:980px;font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.45}
.application-intro .line{display:block}
.form-grid{gap:14px 24px}.field{margin-bottom:12px}textarea{min-height:105px}
.program-philosophy-line{font-size:clamp(2.5rem,4.4vw,5rem)}
.program-intro-small{font-size:clamp(1.15rem,1.7vw,1.55rem);line-height:1.48;max-width:720px}
.knowledge-card{display:grid;grid-template-rows:54px minmax(92px,auto) 1fr;align-content:start}
.knowledge-card .num{line-height:1}.knowledge-card h3{margin:0 0 16px;align-self:start}
.final-one-line{font-size:clamp(2rem,3.6vw,4.2rem)!important;white-space:nowrap;max-width:1400px!important}
.obs-card .coming-soon{display:inline-block;margin-top:18px;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:3px}
.footer-col .future-item{display:block;color:rgba(255,255,255,.55);margin:8px 0;font-size:.9rem}
.form-status{font-family:var(--serif);font-size:1.1rem;margin-top:16px}
@media(max-width:900px){.final-one-line{white-space:normal}.program-name{white-space:normal}.knowledge-card{grid-template-rows:auto auto auto}}

/* Final v2 photography and layout polish */
.single-line-close{white-space:nowrap;font-size:clamp(2.25rem,4vw,4.5rem)!important}
.knowledge-card h3{min-height:4.8em;display:flex;align-items:flex-start}
.form-grid{gap:12px 24px}
.field{margin-bottom:10px}
.obs-card img,.feature-image img,.editorial-band img,.detail-grid img,.story-image img{
  image-rendering:auto;
  object-position:center;
}
@media(max-width:760px){
  .single-line-close{white-space:normal}
  .knowledge-card h3{min-height:auto}
}

/* ============================================================
   Editorial polish v5 — typography, orphans, image handling
   ============================================================ */

/* 1. ORPHANS.
   text-wrap:balance tells the browser to distribute words evenly across the
   lines of a heading, so a single word never strands on its own. This is what
   fixes "A different way of / living." It works at every screen size, so the
   font size never has to shrink. Older browsers simply ignore it. */
h1, h2, h3,
.hero h1, .display, .question h2, .section-title, .page-hero h1,
.final-invite h2, .quote, .story-text h2, .recognition-close,
.story-quote, .story-quote-compact, .origin-final-line, .imagine-close,
.feature-copy h3, .knowledge-card h3, .obs-card h2, .faq summary,
.recognition-item p, .phase h3, .card h3, .know-item h3,
.program-philosophy-line, .final-two-lines {
  text-wrap: balance;
}

/* Body copy: prevents a lone word on the final line of a paragraph. */
p, li, .prose p, .story-text p, .lead, .support {
  text-wrap: pretty;
}

/* 2. FORCED SINGLE LINES.
   These rules pinned huge display type to one line with white-space:nowrap.
   At up to 7rem that overflows narrow laptops, and it is the opposite failure
   from an orphan. Balanced wrapping keeps the intended shape without breaking. */
.statement .line,
.final-one-line,
.single-line-close,
.nowrap-emphasis {
  white-space: normal;
  text-wrap: balance;
}
/* The programme name is a proper noun and should hold together on wide screens,
   but must be free to wrap below 900px or it overflows narrow layouts. */
.program-name { white-space: nowrap; }
@media (max-width: 900px) { .program-name { white-space: normal; } }

/* 3. KNOWLEDGE CARDS.
   A fixed min-height on the heading was used to line the cards up, which left
   a large gap under any short heading. Grid stretch does the same job cleanly. */
.knowledge-cards { align-items: stretch; }
.knowledge-card h3 { min-height: 0; display: block; }

/* 4. IMAGES.
   Crops are now baked into the files, so centre positioning is always correct.
   width/height attributes in the HTML reserve space and stop the page jumping
   as photos load. */
.hero-image img, .feature-image img, .editorial-band img,
.story-image img, .detail-grid img, .obs-card img {
  object-position: center;
}
img { background: #F0EBE3; }

/* 5. SMALL REFINEMENTS */
.obs-card img { border-radius: 2px; }
.hero .lead { text-wrap: balance; }
@media (prefers-reduced-motion: reduce) {
  .fade-up { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* 6. FADE-UP SAFETY NET.
   .fade-up starts hidden and is revealed by site.js. If that script ever fails to
   load, the content would be invisible with no clue why. So content is visible by
   default, and only hidden once the tiny inline script in <head> confirms
   JavaScript is running. No JS, no hiding — the page always shows its content. */
.fade-up { opacity: 1; transform: none; }
html.js .fade-up { opacity: 0; transform: translateY(24px); }
html.js .fade-up.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html.js .fade-up { opacity: 1; transform: none; transition: none; }
}
