:root {
  --cc-content-bg: #faf6f0;
  --cc-content-card: #fff;
  --cc-content-text: #2b211c;
  --cc-content-muted: #6f645d;
  --cc-content-accent: #c8785c;
  --cc-content-line: #eadfd2;
}

/* 2.1.0: horizontal article stream, automatic batches and same-page reader. */
.cc-articles-list{display:grid;gap:24px}.cc-articles-list .cc-article-card{display:grid;grid-template-columns:minmax(240px,34%) minmax(0,1fr);min-height:260px;overflow:hidden;border:1px solid #eadfd2;border-radius:24px;background:#fff;box-shadow:0 14px 38px rgba(55,35,24,.06)}.cc-articles-list .cc-article-image{appearance:none;display:block;width:100%;height:100%;min-height:260px;margin:0;border:0;border-radius:0;background:#e9ddd3;color:#8a6b5d;cursor:pointer;font:600 20px/1.2 Georgia,serif;overflow:hidden;padding:0}.cc-articles-list .cc-article-image img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;transition:transform .3s ease}.cc-articles-list .cc-article-card:hover .cc-article-image img{transform:scale(1.025)}.cc-articles-list .cc-article-card-body{display:flex;min-width:0;flex-direction:column;align-items:flex-start;padding:clamp(24px,3.3vw,46px)}.cc-articles-list .cc-article-card-body time{color:#a05d46;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.cc-articles-list .cc-article-card-body h2{margin:8px 0 12px;color:#221812;font-family:"Fraunces","Playfair Display",Georgia,serif;font-size:clamp(28px,3vw,42px);font-weight:400;line-height:1.15}.cc-articles-list .cc-article-card-body p{max-width:850px;margin:0 0 20px;color:#655a54;font-size:17px;line-height:1.6}.cc-article-read{appearance:none;margin-top:auto;border:0;border-radius:999px;background:#c8785c;color:#fff;cursor:pointer;font:700 15px/1.2 inherit;padding:12px 18px}.cc-article-read:hover,.cc-article-read:focus-visible{background:#aa6249;outline:2px solid rgba(200,120,92,.35);outline-offset:3px}.cc-articles-loader{display:grid;justify-items:center;gap:12px;padding:30px 0 0}.cc-articles-more{appearance:none;border:1px solid #dfcfc2;border-radius:999px;background:#fff;color:#34251e;cursor:pointer;font:700 15px/1.2 inherit;padding:13px 22px}.cc-articles-more[hidden]{display:none}.cc-articles-status{min-height:1.5em;color:#756b65;font-size:14px}.cc-articles-sentinel{width:1px;height:1px}
body.cc-article-reader-open{overflow:hidden}.cc-article-reader[hidden]{display:none}.cc-article-reader{position:fixed;z-index:1000000;inset:0;display:grid;place-items:center;padding:clamp(12px,3vw,32px)}.cc-article-reader-backdrop{position:absolute;inset:0;background:rgba(34,24,18,.62);backdrop-filter:blur(5px)}.cc-article-reader-dialog{position:relative;width:min(100%,1080px);max-height:calc(100dvh - clamp(24px,6vw,64px));overflow:auto;overscroll-behavior:contain;border:1px solid #eadfd2;border-radius:26px;background:#fff;color:#221812;box-shadow:0 28px 90px rgba(22,13,9,.3);padding:clamp(28px,5vw,70px)}.cc-article-reader-close{position:sticky;z-index:3;top:0;float:right;display:grid;width:44px;height:44px;place-items:center;border:1px solid #eadfd2;border-radius:50%;background:#fff;color:#34251e;cursor:pointer;font:300 30px/1 Arial,sans-serif}.cc-article-reader-content>article>time{color:#a05d46;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.cc-article-reader-content h2{max-width:900px;margin:10px 54px 26px 0;color:#221812;font-family:"Fraunces","Playfair Display",Georgia,serif;font-size:clamp(36px,5vw,64px);font-weight:400;line-height:1.1}.cc-article-reader-image{width:100%;margin:0 0 clamp(26px,4vw,44px);overflow:hidden;border-radius:20px}.cc-article-reader-image img{display:block;width:100%;height:auto;max-height:620px;object-fit:cover}.cc-article-reader-body{font-size:clamp(17px,1.6vw,20px);line-height:1.72}.cc-article-reader-body>*{max-width:850px;margin-right:auto;margin-left:auto}.cc-article-reader-body>.alignwide,.cc-article-reader-body>.alignfull,.cc-article-reader-body>figure{max-width:100%}.cc-article-reader-body img{max-width:100%;height:auto}.cc-article-reader-loading,.cc-article-reader-error{min-height:180px;display:grid;place-items:center;color:#6d625c;text-align:center}
@media(max-width:760px){.cc-articles-list .cc-article-card{grid-template-columns:1fr;min-height:0}.cc-articles-list .cc-article-image{height:auto;min-height:0;aspect-ratio:16/10}.cc-articles-list .cc-article-card-body{padding:22px}.cc-article-reader{padding:8px}.cc-article-reader-dialog{max-height:calc(100dvh - 16px);border-radius:20px;padding:22px}.cc-article-reader-content h2{font-size:clamp(32px,10vw,46px)}}

.cc-managed-page main,
.cc-article-page main {
  overflow: clip;
}

.cc-managed-page .wp-block-post-title,
.cc-articles-page .wp-block-post-title {
  display: none;
}

.cc-program-hero,
.cc-program-content,
.cc-program-actions,
.cc-articles,
.cc-single-article {
  box-sizing: border-box;
  width: min(1160px, calc(100vw - 40px)) !important;
  margin-inline: 0 !important;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

.cc-program-hero,
.cc-program-actions,
.cc-articles {
  max-width: 1160px !important;
}

.cc-program-content,
.cc-single-article {
  max-width: 1160px !important;
}

.cc-program-hero {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
  align-items: center;
  gap: clamp(28px, 5vw, 72px);
  margin-block: clamp(32px, 6vw, 86px) !important;
  padding: clamp(24px, 4vw, 54px);
  border: 1px solid var(--cc-content-line);
  border-radius: 34px;
  background: var(--cc-content-card);
  box-shadow: 0 24px 70px rgba(66, 39, 26, .08);
}

.cc-program-hero-copy {
  min-width: 0;
}

.cc-program-eyebrow,
.cc-articles-eyebrow {
  margin: 0 0 14px;
  color: var(--cc-content-accent);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.cc-program-hero h1,
.cc-articles-header h1 {
  margin: 0;
  color: var(--cc-content-text);
  font-family: var(--wp--preset--font-family--heading, Georgia, serif);
  font-size: clamp(42px, 5vw, 76px);
  font-weight: 400;
  line-height: 1.02;
  text-wrap: balance;
}

.cc-program-hero-copy > p:last-child,
.cc-articles-header > p:last-child {
  max-width: 680px;
  margin: 24px 0 0;
  color: var(--cc-content-muted);
  font-size: clamp(18px, 1.7vw, 23px);
  line-height: 1.55;
}

.cc-program-cover {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 26px;
  aspect-ratio: 3 / 2;
  background: #ede5dc;
}

.cc-program-cover picture,
.cc-program-cover img {
  display: block;
  width: 100%;
  height: 100%;
}

.cc-program-cover img {
  object-fit: cover;
}

.cc-program-notice {
  grid-column: 1 / -1;
  margin: 0 !important;
  padding: 16px 20px;
  border: 1px solid color-mix(in srgb, var(--cc-content-accent) 40%, white);
  border-radius: 16px;
  background: color-mix(in srgb, var(--cc-content-accent) 9%, white);
  color: var(--cc-content-muted);
  font-size: 14px;
}

.cc-program-content {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 28px;
  margin-block: 28px !important;
}

.cc-program-content > * {
  box-sizing: border-box;
  width: 100% !important;
  min-width: 0;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.cc-program-content > h2,
.cc-program-content > h3,
.cc-program-content > p,
.cc-program-content > ul,
.cc-program-content > blockquote {
  grid-column: 1 / -1;
}

.cc-program-content > h2 {
  margin: 42px 0 16px;
  color: var(--cc-content-text);
  font-family: var(--wp--preset--font-family--heading, Georgia, serif);
  font-size: clamp(30px, 3vw, 48px);
  font-weight: 400;
  line-height: 1.12;
}

.cc-program-content > h2:first-child {
  margin-top: 0;
}

.cc-program-content > h3 {
  margin: 26px 0 12px;
  color: var(--cc-content-text);
  font-size: clamp(20px, 2vw, 27px);
  line-height: 1.25;
}

.cc-program-content > p,
.cc-program-content > ul,
.cc-program-content > blockquote {
  margin: 0 0 16px;
  color: var(--cc-content-muted);
  font-size: clamp(17px, 1.45vw, 20px);
  line-height: 1.72;
}

.cc-program-content > ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0;
  list-style: none;
}

.cc-program-content > ul li {
  position: relative;
  margin: 0;
  padding: 17px 18px 17px 50px;
  border: 1px solid var(--cc-content-line);
  border-radius: 16px;
  background: var(--cc-content-card);
}

.cc-program-content > ul li::before {
  content: "✓";
  position: absolute;
  top: 17px;
  left: 18px;
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--cc-content-accent) 18%, white);
  color: var(--cc-content-accent);
  font-size: 13px;
  font-weight: 900;
}

.cc-program-content .cc-program-fact {
  grid-column: auto;
  margin: 0 0 16px;
  padding: 20px 22px;
  border: 1px solid var(--cc-content-line);
  border-radius: 18px;
  background: var(--cc-content-card);
  color: var(--cc-content-text);
  font-weight: 650;
}

.cc-program-content blockquote {
  padding: 22px 26px;
  border-left: 4px solid var(--cc-content-accent);
  border-radius: 0 18px 18px 0;
  background: color-mix(in srgb, var(--cc-content-accent) 7%, white);
}

.cc-program-actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-block: 50px 90px !important;
}

.cc-program-actions .wp-block-button__link {
  min-width: 220px;
  padding: 16px 26px;
  border-radius: 999px;
  text-align: center;
}

.cc-articles {
  padding-block: clamp(44px, 7vw, 100px);
}

.cc-articles-header {
  max-width: 780px;
  margin-bottom: clamp(34px, 5vw, 64px);
}

.cc-articles-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.cc-article-card {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--cc-content-line);
  border-radius: 26px;
  background: var(--cc-content-card);
  box-shadow: 0 14px 36px rgba(66, 39, 26, .07);
  transition: transform .2s ease, box-shadow .2s ease;
}

.cc-article-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 52px rgba(66, 39, 26, .12);
}

.cc-article-image {
  display: grid;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  place-items: center;
  background: linear-gradient(135deg, #efe4d9, #d8e4dc);
  color: var(--cc-content-accent);
  font-weight: 800;
  letter-spacing: .14em;
  text-decoration: none;
}

.cc-article-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.cc-article-card:hover .cc-article-image img {
  transform: scale(1.025);
}

.cc-article-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 24px;
}

.cc-article-card time,
.cc-single-article > time {
  color: var(--cc-content-accent);
  font-size: 13px;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.cc-article-card h2 {
  margin: 12px 0;
  font-family: var(--wp--preset--font-family--heading, Georgia, serif);
  font-size: clamp(25px, 2.2vw, 34px);
  font-weight: 400;
  line-height: 1.12;
}

.cc-article-card h2 a,
.cc-article-read,
.cc-article-back {
  color: var(--cc-content-text);
  text-decoration: none;
}

.cc-article-card-body > p {
  margin: 0 0 22px;
  color: var(--cc-content-muted);
  line-height: 1.58;
}

.cc-article-read {
  margin-top: auto;
  color: var(--cc-content-accent);
  font-weight: 750;
}

.cc-articles-empty {
  padding: clamp(30px, 6vw, 72px);
  border: 1px solid var(--cc-content-line);
  border-radius: 26px;
  background: var(--cc-content-card);
  text-align: center;
}

.cc-articles-empty h2 {
  margin-top: 0;
}

.cc-article-pagination ul {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 42px 0 0;
  padding: 0;
  list-style: none;
}

.cc-article-pagination a,
.cc-article-pagination span {
  display: grid;
  min-width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid var(--cc-content-line);
  border-radius: 50%;
  background: #fff;
  color: var(--cc-content-text);
  text-decoration: none;
}

.cc-article-pagination .current {
  border-color: var(--cc-content-accent);
  background: var(--cc-content-accent);
  color: #fff;
}

.cc-single-article {
  max-width: 900px;
  padding-block: clamp(40px, 7vw, 90px);
}

.cc-article-back {
  display: inline-flex;
  margin-bottom: 26px;
  color: var(--cc-content-accent);
  font-weight: 750;
}

.cc-article-hero-image {
  margin: 30px 0 42px;
  overflow: hidden;
  border-radius: 28px;
}

.cc-article-hero-image img {
  display: block;
  width: 100%;
  height: auto;
}

.cc-article-body {
  color: var(--cc-content-muted);
  font-size: clamp(17px, 1.5vw, 20px);
  line-height: 1.75;
}

.cc-article-body h2,
.cc-article-body h3 {
  color: var(--cc-content-text);
  font-family: var(--wp--preset--font-family--heading, Georgia, serif);
  font-weight: 400;
  line-height: 1.15;
}

.cc-article-body h2 {
  margin: 46px 0 18px;
  font-size: clamp(30px, 3vw, 46px);
}

.cc-article-body h3 {
  margin: 32px 0 14px;
  font-size: clamp(24px, 2.4vw, 34px);
}

.cc-article-body img {
  max-width: 100%;
  height: auto;
  border-radius: 18px;
}

/* 2.4.6: keep original proportions on standalone article pages even if the editor stored a wrong aspect ratio. */
.cc-single-article .cc-article-body figure.wp-block-image {
  box-sizing: border-box;
  max-width: 100% !important;
  margin-right: auto !important;
  margin-left: auto !important;
  text-align: center;
}

.cc-single-article .cc-article-body figure.wp-block-image img {
  display: block;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

@media (max-width: 900px) {
  .cc-program-hero {
    grid-template-columns: 1fr;
  }

  .cc-program-cover {
    grid-row: 1;
  }

  .cc-articles-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .cc-program-hero,
  .cc-program-content,
  .cc-program-actions,
  .cc-articles,
  .cc-single-article {
    width: min(calc(100vw - 32px), 1160px) !important;
  }

  .cc-program-hero {
    gap: 24px;
    margin-block: 24px 42px !important;
    padding: 18px;
    border-radius: 24px;
  }

  .cc-program-cover {
    border-radius: 18px;
  }

  .cc-program-content,
  .cc-program-content > ul {
    grid-template-columns: 1fr;
  }

  .cc-program-content .cc-program-fact {
    grid-column: 1 / -1;
  }

  .cc-program-actions {
    flex-direction: column;
    margin-block: 36px 64px !important;
  }

  .cc-program-actions .wp-block-button,
  .cc-program-actions .wp-block-button__link {
    width: 100%;
  }

  .cc-articles-grid {
    grid-template-columns: 1fr;
  }

  .cc-article-card-body {
    padding: 22px;
  }
}

/* 2.3.1: stable article overlay and one centered content width. */
.cc-program-hero,
.cc-program-content,
.cc-program-actions,
.cc-articles,
.cc-single-article,
.cc-program-entry {
  left: auto !important;
  width: min(100%, 1160px) !important;
  margin-right: auto !important;
  margin-left: auto !important;
  transform: none !important;
}

/* 2.3.7: reusable event pages match the full 1160px site grid. */
.cc-program-entry {
  box-sizing: border-box;
  position: relative;
  left: auto !important;
  width: min(1160px, calc(100vw - 40px)) !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 50% !important;
  transform: translateX(-50%) !important;
}

.cc-program-entry-body {
  max-width: 1160px;
}

.cc-program-entry-callouts {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.cc-program-entry-callouts .cc-program-entry-note,
.cc-program-entry-body .cc-program-cloud {
  box-sizing: border-box;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid #e4d4c6;
  border-radius: 16px;
  background: #f7f0e9;
  color: var(--cc-content-text);
  font-size: 15px;
  line-height: 1.55;
  box-shadow: 0 10px 28px rgba(66, 39, 26, .05);
}

.cc-program-entry-body .cc-program-cloud {
  width: 100%;
  margin: 22px 0;
  padding: 18px 22px;
}

.cc-program-entry-body .cc-program-cloud > :first-child {
  margin-top: 0;
}

.cc-program-entry-body .cc-program-cloud > :last-child {
  margin-bottom: 0;
}

@media (max-width: 760px) {
  .cc-program-entry {
    width: calc(100vw - 32px) !important;
  }
}

/* 2.4.3: the theme already places main below the header; avoid a second large top gap. */
body.cc-program-entry-page main#wp--skip-link--target {
  padding-top: 0 !important;
}

body.cc-program-entry-page main#wp--skip-link--target > .wp-block-post-content,
body.cc-program-entry-page .entry-content.wp-block-post-content {
  margin-top: 0 !important;
}

body.cc-program-entry-page .cc-program-entry {
  margin-top: 0 !important;
}

@media (min-width: 761px) {
  body.cc-program-entry-page .cc-program-entry > header {
    padding-top: clamp(24px, 2.2vw, 32px) !important;
  }
}

/* Nested programme lists are readable on keyboard, hover and click menus. */
.cc-program-menu-parent > .wp-block-navigation__submenu-container {
  min-width: 230px !important;
}

.cc-program-menu-all > a {
  font-weight: 700;
}

/* 2.4.2: readable, restrained typography in the same-page article reader. */
.cc-article-reader-dialog {
  box-sizing: border-box;
  width: min(920px, calc(100vw - 32px));
  padding: clamp(26px, 4vw, 48px);
}

.cc-article-reader-content > article {
  min-width: 0;
}

.cc-article-reader-content #cc-article-reader-title {
  max-width: 760px;
  margin: 22px 64px 30px 0;
  font-size: clamp(38px, 4.2vw, 54px);
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.cc-article-reader-body {
  width: 100%;
  max-width: 780px;
  margin: 0 auto;
  color: var(--cc-content-muted);
  font-size: 18px;
  line-height: 1.72;
}

.cc-article-reader-body > * {
  width: 100%;
  max-width: 780px;
  box-sizing: border-box;
}

.cc-article-reader-body p,
.cc-article-reader-body li {
  font-size: 18px !important;
  line-height: 1.72 !important;
  overflow-wrap: anywhere;
}

.cc-article-reader-body p {
  margin-top: 0;
  margin-bottom: 20px;
}

.cc-article-reader-body h2 {
  margin: 42px 0 18px !important;
  font-size: clamp(30px, 3vw, 40px) !important;
  line-height: 1.15 !important;
}

.cc-article-reader-body h3 {
  margin: 34px 0 16px !important;
  font-size: clamp(25px, 2.4vw, 32px) !important;
  line-height: 1.2 !important;
}

.cc-article-reader-body h4 {
  margin: 28px 0 14px !important;
  font-size: 23px !important;
  line-height: 1.25 !important;
}

.cc-article-reader-body figure {
  width: 100%;
  max-width: 780px !important;
  margin: 28px auto 36px !important;
}

.cc-article-reader-body figure img,
.cc-article-reader-body > img {
  display: block;
  width: 100%;
  max-height: 540px;
  object-fit: contain;
  border-radius: 20px;
}

.cc-article-reader-body ul,
.cc-article-reader-body ol {
  padding-left: 1.35em;
}

@media (max-width: 760px) {
  .cc-article-reader-dialog {
    width: calc(100vw - 16px);
    padding: 20px;
  }

  .cc-article-reader-content #cc-article-reader-title {
    margin: 20px 48px 24px 0;
    font-size: clamp(31px, 9vw, 40px);
  }

  .cc-article-reader-meta {
    padding-right: 46px;
  }

  .cc-article-reader-body,
  .cc-article-reader-body p,
  .cc-article-reader-body li {
    font-size: 16px !important;
  }

  .cc-article-reader-body h2 {
    margin-top: 34px !important;
    font-size: 28px !important;
  }

  .cc-article-reader-body h3 {
    font-size: 24px !important;
  }

  .cc-article-reader-body figure {
    margin: 22px auto 28px !important;
  }
}

/* 2.3.9: clear, editorial single-article header instead of the theme meta banner. */
body.cc-article-page main > .wp-block-group.alignfull:has(.wp-block-post-title):has(.wp-block-post-time-to-read),
body.cc-program-entry-page main > .wp-block-group.alignfull:has(.wp-block-post-title):has(.wp-block-post-time-to-read) {
  display: none !important;
}

.cc-single-article {
  box-sizing: border-box;
  position: relative;
  left: auto !important;
  width: min(960px, calc(100vw - 40px)) !important;
  max-width: none !important;
  margin: clamp(30px, 5vw, 64px) 0 clamp(50px, 7vw, 90px) 50% !important;
  padding: clamp(26px, 5vw, 64px);
  border: 1px solid var(--cc-content-line);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 20px 60px rgba(66, 39, 26, .08);
  transform: translateX(-50%) !important;
}

.cc-single-article-header {
  margin-bottom: clamp(28px, 4vw, 46px);
}

.cc-single-article-header > p {
  margin: 0 0 10px;
  color: var(--cc-content-accent);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.cc-single-article-header h1 {
  margin: 0;
  color: var(--cc-content-text);
  font-size: clamp(38px, 5vw, 64px);
  font-weight: 650;
  line-height: 1.08;
  text-wrap: balance;
}

.cc-single-article-meta,
.cc-article-reader-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.cc-single-article-meta > span,
.cc-article-reader-meta > span {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  border: 1px solid var(--cc-content-line);
  border-radius: 999px;
  background: #f8f2ec;
  color: var(--cc-content-muted);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.25;
  padding: 8px 14px;
}

.cc-single-article-meta time,
.cc-article-reader-meta time {
  color: inherit;
}

.cc-single-article .cc-article-back {
  margin-bottom: 28px;
}

.cc-single-article .cc-article-hero-image {
  margin: 0 0 clamp(28px, 4vw, 44px);
}

@media (max-width: 760px) {
  .cc-single-article {
    width: calc(100vw - 32px) !important;
    padding: 22px;
    border-radius: 22px;
  }

  .cc-single-article-meta,
  .cc-article-reader-meta {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 700px) {
  .cc-managed-page .wp-block-post-content.has-global-padding,
  .cc-article-page .wp-block-post-content.has-global-padding {
    padding-right: 20px !important;
    padding-left: 20px !important;
  }
}

/* 2.3.4: one-piece lead card for the permanent direction pages. */
.cc-managed-program-lead {
  box-sizing: border-box;
  position: relative;
  width: min(1160px, calc(100vw - 40px)) !important;
  max-width: none !important;
  margin: clamp(28px, 5vw, 72px) 0 clamp(28px, 5vw, 72px) 50% !important;
  padding: clamp(24px, 4vw, 50px);
  overflow: hidden;
  border: 1px solid var(--cc-content-line);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 22px 64px rgba(66, 39, 26, .08);
  transform: translateX(-50%);
}

.cc-managed-program-lead > header {
  margin-bottom: clamp(22px, 3vw, 36px);
}

.cc-managed-program-lead > header > p {
  margin: 0 0 8px;
  color: var(--cc-content-accent);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.cc-managed-program-lead > header > h1 {
  margin: 0;
  color: var(--cc-content-text);
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 650;
  line-height: 1.08;
}

.cc-managed-program-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  align-items: center;
  gap: clamp(24px, 4vw, 52px);
}

.cc-managed-program-layout > figure {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 22px;
  background: #e8ddd4;
  aspect-ratio: 3 / 2;
}

.cc-managed-program-layout picture,
.cc-managed-program-layout img {
  display: block;
  width: 100%;
  height: 100%;
}

.cc-managed-program-layout img {
  object-fit: cover;
  object-position: center;
}

.cc-managed-program-layout > aside {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
}

.cc-managed-program-price {
  display: grid;
  gap: 2px;
  margin: 0 0 14px;
}

.cc-managed-program-price span {
  color: var(--cc-content-muted);
  font-size: 17px;
  font-weight: 700;
}

.cc-managed-program-price strong {
  color: var(--cc-content-accent);
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.08;
}

.cc-managed-program-schedule {
  margin-bottom: 22px;
  color: var(--cc-content-text);
  font-size: 17px;
  font-weight: 650;
  line-height: 1.55;
}

.cc-managed-program-apply {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--cc-content-accent);
  color: #fff;
  font-size: 18px;
  font-weight: 750;
  padding: 14px 24px;
  text-align: center;
  text-decoration: none;
}

.cc-managed-program-note {
  margin: 18px 0 0;
  padding: 16px 18px;
  border-radius: 15px;
  background: #f7f0e9;
  color: var(--cc-content-muted);
  font-size: 14px;
  line-height: 1.55;
}

@media (max-width: 760px) {
  .cc-managed-program-lead {
    padding: 20px;
    border-radius: 22px;
  }

  .cc-managed-program-layout {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .cc-managed-program-layout > figure {
    border-radius: 17px;
    aspect-ratio: 4 / 3;
  }

  .cc-managed-program-apply {
    width: 100%;
  }
}

body.cc-articles-page .wp-site-blocks > header.wp-block-template-part,
body.cc-article-page .wp-site-blocks > header.wp-block-template-part {
  right: 0 !important;
  left: 0 !important;
  width: 100% !important;
  margin: 0 !important;
}

body.cc-article-reader-open {
  padding-right: var(--cc-reader-scrollbar, 0px);
}

.cc-article-reader {
  width: 100vw;
  height: 100dvh;
}

.cc-article-reader-backdrop {
  width: 100%;
  height: 100%;
}

.cc-articles-list .cc-article-read {
  color: #fff;
  text-decoration: none;
}

/* 2.2.0: reusable admin-created seminar and class pages. */
.cc-program-entry-page .wp-block-post-title{display:none}.cc-program-entry{box-sizing:border-box;position:relative;left:50%;width:min(1160px,calc(100vw - 40px));margin:clamp(28px,5vw,72px) 0!important;transform:translateX(-50%);color:var(--cc-content-text)}.cc-program-entry>header{padding:clamp(24px,4vw,52px);border:1px solid var(--cc-content-line);border-radius:30px;background:#faf6f0}.cc-program-entry-eyebrow{margin:0 0 10px;color:var(--cc-content-accent);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.cc-program-entry>header>h1{max-width:920px;margin:0;color:var(--cc-content-text);font-family:"Fraunces","Playfair Display",Georgia,serif;font-size:clamp(38px,5.5vw,68px);font-weight:400;line-height:1.08}.cc-program-entry-excerpt{max-width:760px;margin:16px 0 0;color:var(--cc-content-muted);font-size:clamp(17px,1.7vw,21px);line-height:1.6}.cc-program-entry-lead{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:clamp(20px,3vw,36px);margin-top:clamp(24px,4vw,44px)}.cc-program-entry-image{display:grid;min-height:340px;margin:0;overflow:hidden;border-radius:22px;background:#e8ddd4;place-items:center}.cc-program-entry-image img{display:block;width:100%;height:100%;max-height:520px;object-fit:cover}.cc-program-entry-placeholder{color:#8f6c5d;font:400 clamp(28px,4vw,46px)/1.2 Georgia,serif;letter-spacing:.1em}.cc-program-entry-lead aside{display:flex;min-width:0;flex-direction:column;align-items:stretch;border:1px solid var(--cc-content-line);border-radius:22px;background:#fff;padding:clamp(22px,3vw,34px)}.cc-program-entry-price{display:grid;gap:4px;margin:0 0 18px}.cc-program-entry-price span{color:var(--cc-content-muted);font-size:14px}.cc-program-entry-price strong{color:var(--cc-content-accent);font-size:clamp(26px,3vw,38px);line-height:1.15}.cc-program-entry-schedule{margin-bottom:22px;color:var(--cc-content-muted);font-size:16px;line-height:1.55}.cc-program-entry-apply,.cc-program-entry-actions a{display:inline-flex;min-height:48px;align-items:center;justify-content:center;border-radius:999px;background:var(--cc-content-accent);color:#fff;font-weight:750;padding:12px 22px;text-align:center;text-decoration:none}.cc-program-entry-note{margin:16px 0 0;color:var(--cc-content-muted);font-size:13px;line-height:1.5}.cc-program-entry-body{max-width:960px;margin:clamp(38px,6vw,76px) auto 0;color:var(--cc-content-muted);font-size:clamp(17px,1.5vw,20px);line-height:1.72}.cc-program-entry-body h2,.cc-program-entry-body h3{color:var(--cc-content-text);font-family:"Fraunces","Playfair Display",Georgia,serif;font-weight:400;line-height:1.15}.cc-program-entry-body h2{margin:50px 0 18px;font-size:clamp(30px,3.7vw,46px)}.cc-program-entry-body h3{margin:34px 0 14px;font-size:clamp(24px,2.8vw,34px)}.cc-program-entry-body img{max-width:100%;height:auto;border-radius:18px}.cc-program-entry-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:clamp(38px,6vw,70px)}.cc-program-entry-actions a:first-child{border:1px solid var(--cc-content-line);background:#fff;color:var(--cc-content-text)}
.cc-program-content .wp-block-columns{align-items:stretch!important}.cc-program-content .wp-block-columns>.wp-block-column{display:flex!important;flex-direction:column}.cc-program-content .wp-block-columns>.wp-block-column>.wp-block-group{box-sizing:border-box;width:100%;height:100%}
@media(max-width:760px){.cc-program-entry{width:min(1160px,calc(100vw - 32px))}.cc-program-entry>header{padding:20px;border-radius:22px}.cc-program-entry-lead{grid-template-columns:1fr}.cc-program-entry-image{min-height:0;aspect-ratio:4/3}.cc-program-entry-body{margin-top:36px}.cc-program-entry-actions{align-items:stretch;flex-direction:column}.cc-program-entry-actions a{width:100%}.cc-program-content .wp-block-columns>.wp-block-column{display:block!important}}

/* Keep these final so older component rules cannot restore transformed centering. */
.cc-program-hero,
.cc-program-content,
.cc-program-actions,
.cc-articles,
.cc-single-article,
.cc-program-entry {
  left: auto !important;
  width: min(100%, 1160px) !important;
  margin-right: auto !important;
  margin-left: auto !important;
  transform: none !important;
}

/* 2.3.8 final override: reusable event pages match the full site grid. */
.cc-program-entry {
  box-sizing: border-box;
  position: relative;
  left: auto !important;
  width: min(1160px, calc(100vw - 40px)) !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 50% !important;
  transform: translateX(-50%) !important;
}

.cc-program-entry-body {
  width: 100%;
  max-width: 1160px !important;
}

@media (max-width: 760px) {
  .cc-program-entry {
    width: calc(100vw - 32px) !important;
  }
}
