:root{--mc-primary:#482366;--mc-primary-dark:#2e1642;--mc-primary-light:#6a3e8f;--mc-accent:#996633;--mc-accent-light:#c89b5c;--mc-bg:#f6f7fb;--mc-surface:#fff;--mc-surface-soft:#f4eef8;--mc-text:#1a1a2e;--mc-muted:#5a6270;--mc-border:#e4e7ec;--mc-radius:24px;--mc-shadow:0 20px 60px rgba(72,35,102,.1)}
.aureus-block{margin:clamp(2rem,5vw,4.5rem) 0;color:var(--mc-text)}
.aureus-block-title,.aureus-block h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(2.2rem,5vw,4.8rem);line-height:.98;letter-spacing:-.045em;margin:0 0 1rem;color:var(--mc-text)}
.aureus-kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;font-weight:800;color:var(--mc-accent);margin:0 0 .7rem}.aureus-block p{line-height:1.75;color:var(--mc-muted)}
.aureus-callout{border-radius:var(--mc-radius);padding:clamp(2rem,5vw,4rem);box-shadow:var(--mc-shadow);overflow:hidden}.aureus-callout.is-purple{background:linear-gradient(135deg,var(--mc-primary-dark),var(--mc-primary));color:#fff}.aureus-callout.is-purple h2,.aureus-callout.is-purple p{color:#fff}.aureus-callout.is-gold{background:linear-gradient(135deg,#7b4f22,var(--mc-accent));color:#fff}.aureus-callout.is-gold h2,.aureus-callout.is-gold p{color:#fff}.aureus-callout.is-light{background:#fff;border:1px solid var(--mc-border)}
.aureus-cta{border-radius:var(--mc-radius);padding:clamp(2rem,5vw,4rem);background:linear-gradient(135deg,#fff,#f4eef8);border:1px solid rgba(72,35,102,.12);box-shadow:var(--mc-shadow)}.aureus-cta h2{max-width:850px}.aureus-cta p{max-width:720px;font-size:1.1rem}.aureus-cta .btn{margin-top:1rem}
.aureus-card-grid,.aureus-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.aureus-card{background:#fff;border:1px solid var(--mc-border);border-radius:22px;padding:1.6rem;box-shadow:0 10px 30px rgba(72,35,102,.06)}.aureus-card__index{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:999px;background:rgba(72,35,102,.08);color:var(--mc-primary);font-weight:800;font-size:.78rem;margin-bottom:1rem}.aureus-card h3{font-size:1.35rem;margin:.2rem 0 .6rem;color:var(--mc-text)}
.aureus-stats{background:var(--mc-primary);border-radius:var(--mc-radius);padding:clamp(1.6rem,4vw,3rem)}.aureus-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.aureus-stat{padding:1rem;color:#fff}.aureus-stat strong{display:block;font-family:'Playfair Display',Georgia,serif;font-size:clamp(2rem,4vw,4rem);line-height:1}.aureus-stat span{display:block;color:rgba(255,255,255,.8);font-size:.9rem;text-transform:uppercase;letter-spacing:.12em;margin-top:.5rem}
.aureus-accordion__items{display:grid;gap:.8rem}.aureus-accordion__item{background:#fff;border:1px solid var(--mc-border);border-radius:18px;box-shadow:0 10px 30px rgba(72,35,102,.05);overflow:hidden}.aureus-accordion__item summary{cursor:pointer;display:flex;gap:.8rem;align-items:center;padding:1.2rem 1.4rem;font-weight:800;color:var(--mc-primary);list-style:none}.aureus-accordion__item summary::-webkit-details-marker{display:none}.aureus-accordion__item summary:after{content:'+';margin-left:auto;font-size:1.3rem}.aureus-accordion__item[open] summary:after{content:'–'}.aureus-accordion__number{font-family:monospace;color:var(--mc-accent)}.aureus-accordion__content{padding:0 1.4rem 1.3rem;color:var(--mc-muted);line-height:1.75}
.aureus-timeline__list{counter-reset:aureus-step;list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:1rem}.aureus-timeline__list li{position:relative;background:#fff;border:1px solid var(--mc-border);border-radius:18px;padding:1.2rem 1.2rem 1.2rem 4.4rem;box-shadow:0 8px 25px rgba(72,35,102,.05)}.aureus-timeline__list li:before{counter-increment:aureus-step;content:counter(aureus-step);position:absolute;left:1.2rem;top:1.1rem;width:38px;height:38px;border-radius:999px;background:var(--mc-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}.aureus-timeline__list strong{display:block;color:var(--mc-text)}.aureus-timeline__list span{display:block;color:var(--mc-muted);margin-top:.25rem}
.editor-styles-wrapper .aureus-block{max-width:1180px}.editor-styles-wrapper .aureus-block .btn{pointer-events:none}
@media(max-width:900px){.aureus-card-grid,.aureus-stats-grid{grid-template-columns:1fr}.aureus-callout,.aureus-cta{border-radius:20px}.aureus-block-title,.aureus-block h2{font-size:clamp(2rem,10vw,3.2rem)}}

/* Core block style variations + builder consistency */
.is-style-aureus-card{background:#fff;border:1px solid var(--mc-border);border-radius:22px;padding:clamp(1.2rem,3vw,2rem);box-shadow:0 10px 30px rgba(72,35,102,.06)}
.is-style-aureus-panel{background:linear-gradient(135deg,var(--mc-primary-dark),var(--mc-primary));color:#fff;border-radius:var(--mc-radius);padding:clamp(2rem,5vw,4rem);overflow:hidden}.is-style-aureus-panel h1,.is-style-aureus-panel h2,.is-style-aureus-panel h3,.is-style-aureus-panel p{color:#fff}.is-style-aureus-panel a{color:#fff;text-decoration:underline;text-underline-offset:.25em}
.is-style-aureus-card-grid{gap:1.2rem}.is-style-aureus-card-grid>.wp-block-column{background:#fff;border:1px solid var(--mc-border);border-radius:22px;padding:1.5rem;box-shadow:0 10px 30px rgba(72,35,102,.06)}
.wp-block-button__link,.elementor-button,.bricks-button{border-radius:999px;font-weight:800;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}.wp-block-button__link:hover,.elementor-button:hover,.bricks-button:hover{transform:translateY(-2px)}
.is-style-aureus-outline .wp-block-button__link{background:transparent!important;color:var(--mc-primary)!important;border:1px solid rgba(72,35,102,.22)}
.entry-content :where(h1,h2,h3),.page-content :where(h1,h2,h3),.elementor-widget-container :where(h1,h2,h3){font-family:'Playfair Display',Georgia,serif;letter-spacing:-.035em}.entry-content :where(p,li),.page-content :where(p,li),.elementor-widget-container :where(p,li){line-height:1.75}.entry-content :where(table),.page-content :where(table){width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--mc-border);border-radius:18px;overflow:hidden;background:#fff}.entry-content th,.entry-content td,.page-content th,.page-content td{padding:.95rem 1rem;border-bottom:1px solid var(--mc-border)}.entry-content th,.page-content th{background:rgba(72,35,102,.07);color:var(--mc-primary);text-align:left}.entry-content tr:last-child td,.page-content tr:last-child td{border-bottom:0}

/* -------------------------------------------------------------------------
 * v2.1.1 — Advanced MountCrest content blocks
 * Modern, clean, premium material design layer
 * ---------------------------------------------------------------------- */
.aureus-block-lede{max-width:760px;font-size:1.08rem;color:var(--mc-muted);margin:-.35rem 0 1.35rem}.aureus-block-note{font-size:.92rem;color:var(--mc-muted);margin-top:.85rem}.aureus-fee-table__wrap{overflow:auto;padding:0}.aureus-fee-table table{width:100%;border-collapse:separate;border-spacing:0;min-width:680px}.aureus-fee-table th{background:linear-gradient(135deg,var(--mc-primary-dark),var(--mc-primary));color:#fff;text-align:left;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.aureus-fee-table th,.aureus-fee-table td{padding:1rem 1.15rem;border-bottom:1px solid var(--mc-border)}.aureus-fee-table tr:last-child td{border-bottom:0}.aureus-fee-table td:first-child{font-weight:800;color:var(--mc-primary)}
.aureus-requirements__list{list-style:none;margin:1.25rem 0 0;padding:1.25rem;display:grid;gap:.75rem}.aureus-requirements__list li{position:relative;padding:.85rem 1rem .85rem 3rem;border-radius:16px;background:linear-gradient(135deg,#fff,var(--mc-surface-soft));border:1px solid rgba(72,35,102,.08);font-weight:600;color:var(--mc-text)}.aureus-requirements__list li:before{content:'✓';position:absolute;left:1rem;top:.82rem;width:1.35rem;height:1.35rem;border-radius:999px;background:var(--mc-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:900}
.aureus-document-card{display:flex;align-items:center;gap:1rem;text-decoration:none;color:inherit;padding:1.2rem}.aureus-document-card__icon{flex:0 0 58px;height:58px;border-radius:18px;background:linear-gradient(135deg,var(--mc-primary),var(--mc-primary-light));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.78rem;letter-spacing:.08em}.aureus-document-card__body{display:grid;gap:.15rem;min-width:0}.aureus-document-card__body strong{font-family:'Playfair Display',Georgia,serif;font-size:1.25rem;color:var(--mc-text)}.aureus-document-card__body small{color:var(--mc-muted);font-size:.92rem}.aureus-document-card__action{margin-left:auto;border-radius:999px;padding:.65rem 1rem;background:rgba(72,35,102,.08);color:var(--mc-primary);font-weight:800;white-space:nowrap}.aureus-document-card:hover .aureus-document-card__action{background:var(--mc-primary);color:#fff}
.aureus-contact-card{display:grid;grid-template-columns:96px 1fr;gap:1.15rem;align-items:center;padding:1.25rem}.aureus-contact-card img,.aureus-contact-card__avatar{width:96px;height:96px;border-radius:24px;object-fit:cover;background:linear-gradient(135deg,var(--mc-primary),var(--mc-accent));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.15rem}.aureus-contact-card h3{margin:0 0 .15rem;font-size:1.45rem}.aureus-contact-card__role{margin:.2rem 0 .75rem;color:var(--mc-muted)}.aureus-contact-card ul{list-style:none;margin:0;padding:0;display:grid;gap:.25rem;color:var(--mc-muted)}.aureus-contact-card a{color:var(--mc-primary);font-weight:700;text-decoration:none}
.aureus-faq-schema__items{display:grid;gap:.8rem}.aureus-faq-schema .aureus-accordion__item{border-left:4px solid var(--mc-accent)}.aureus-application-steps{counter-reset:aureus-steps}.aureus-steps-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1.25rem}.aureus-step-card{position:relative;padding:1.35rem;overflow:hidden}.aureus-step-card:after{content:'';position:absolute;right:-35px;bottom:-35px;width:110px;height:110px;border-radius:999px;background:rgba(153,102,51,.1)}.aureus-step-card__number{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:16px;background:linear-gradient(135deg,var(--mc-primary),var(--mc-primary-light));color:#fff;font-weight:900;margin-bottom:1rem}.aureus-step-card h3{font-size:1.25rem;margin:0 0 .45rem}.aureus-step-card p{margin:0;color:var(--mc-muted)}
@media(max-width:900px){.aureus-steps-grid{grid-template-columns:1fr}.aureus-document-card,.aureus-contact-card{grid-template-columns:1fr;align-items:flex-start}.aureus-document-card{flex-wrap:wrap}.aureus-document-card__action{margin-left:0}}

/* -------------------------------------------------------------------------
 * v2.5.0 — Block Pack 2.0 additions
 *
 * - CSS counters for auto-numbered InnerBlocks children (feature-card,
 *   step-card). The save() emits an empty .aureus-card__index with
 *   `data-auto-index="true"`; CSS fills the visible number from a counter
 *   so re-ordering blocks in the editor doesn't desync the numbers.
 * - Focus-visible rings for keyboard users on every interactive block
 *   surface (details/summary, document-card anchor, contact-card links).
 * - prefers-reduced-motion respect for the accordion expand transition.
 * - aureus-block apiVersion 3 wrapper class (`.wp-block-aureus-*`) gets
 *   the same surface treatment as the legacy `.aureus-block` class so
 *   the editor preview matches the front-end exactly.
 * ---------------------------------------------------------------------- */

/* InnerBlocks layout — when the new feature-cards / application-steps
   blocks render their children via .aureus-card-grid / .aureus-steps-grid
   the WP editor wraps each child in a block-list-appender div; let those
   wrappers participate in the grid. */
.aureus-card-grid > .block-editor-block-list__layout,
.aureus-steps-grid > .block-editor-block-list__layout,
.aureus-accordion__items > .block-editor-block-list__layout {
  display: contents;
}

/* Auto-numbered indices via CSS counters. */
.aureus-feature-cards { counter-reset: aureus-feature-cards; }
.aureus-feature-cards .aureus-card { counter-increment: aureus-feature-cards; }
.aureus-feature-cards .aureus-card__index[data-auto-index="true"]::before {
  content: "0" counter(aureus-feature-cards);
}

.aureus-application-steps { counter-reset: aureus-steps; }
.aureus-application-steps .aureus-step-card { counter-increment: aureus-steps; }
.aureus-application-steps .aureus-step-card__number[data-auto-number="true"]::before {
  content: counter(aureus-steps);
}

/* Editor-only: when an empty number badge would otherwise look broken,
   give it a faint outline so editors can see the slot exists. */
.block-editor-block-list__block .aureus-card__index:empty,
.block-editor-block-list__block .aureus-step-card__number:empty {
  outline: 1px dashed rgba(72, 35, 102, .3);
  outline-offset: 2px;
}

/* Focus-visible — accessible keyboard rings on every interactive surface
   in the block pack. Uses :focus-visible so mouse clicks don't trigger
   the ring. Falls back to :focus on browsers without :focus-visible. */
.aureus-block :focus { outline: 2px solid var(--mc-primary); outline-offset: 2px; }
.aureus-block :focus:not(:focus-visible) { outline: none; }
.aureus-block :focus-visible {
  outline: 2px solid var(--mc-primary);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Accordion summary affordance + keyboard cue. */
.aureus-accordion__item > summary {
  cursor: pointer;
  list-style: none;
  position: relative;
}
.aureus-accordion__item > summary::-webkit-details-marker { display: none; }
.aureus-accordion__item > summary::after {
  content: "+";
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.4rem;
  font-weight: 300;
  color: var(--mc-primary);
  transition: transform .25s ease;
}
.aureus-accordion__item[open] > summary::after {
  content: "−";
  transform: translateY(-50%) rotate(0);
}

/* Reduced motion: kill the rotate/transition on accordions for users
   who've opted out of motion. The expand/collapse itself remains
   instant (native <details> behaviour), which is the expected behaviour
   under prefers-reduced-motion. */
@media (prefers-reduced-motion: reduce) {
  .aureus-accordion__item > summary::after,
  .aureus-step-card,
  .aureus-document-card,
  .aureus-card {
    transition: none !important;
  }
}

/* apiVersion 3 wraps every block in a `.wp-block-<namespace>-<name>` class
   automatically. We've manually added `.aureus-<name>` via useBlockProps,
   so both class names coexist on the wrapper — no extra rules needed.
   But for the editor canvas, ensure the new wrapper inherits the same
   block spacing as v2.1.x blocks did. */
.wp-block-aureus-callout,
.wp-block-aureus-cta,
.wp-block-aureus-feature-cards,
.wp-block-aureus-accordion,
.wp-block-aureus-application-steps,
.wp-block-aureus-timeline,
.wp-block-aureus-stats,
.wp-block-aureus-fee-table,
.wp-block-aureus-programme-requirements,
.wp-block-aureus-faq-schema { margin-block: clamp(1.6rem, 4vw, 3rem); }

/* Document-card "(filetype, filesize)" SR-only meta should not affect
   visual layout. .screen-reader-text already handles this in main.css;
   restate here in case the block is rendered outside aureus context. */
.aureus-document-card .screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Fee-table — when row headers are <th scope="row">, give them the same
   weight as the first-cell-data style from v2.1.1 so the visual matches. */
.aureus-fee-table th[scope="row"] {
  background: rgba(72, 35, 102, .04);
  color: var(--mc-primary);
  font-weight: 800;
  text-transform: none;
  letter-spacing: 0;
  font-size: inherit;
}
