/* Shared front-end and block editor presentation. All colour values follow Global Styles. */
:root {
  --cm-surface: var(--wp--preset--color--surface);
  --cm-line: var(--wp--preset--color--line);
  --cm-ink: var(--wp--preset--color--ink);
  --cm-muted: var(--wp--preset--color--ink-muted);
  --cm-accent: var(--wp--preset--color--goethite);
}
* { box-sizing: border-box; }
html { scroll-behavior: auto; }
body { -webkit-font-smoothing: antialiased; }
a { text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--wp--preset--color--calcedoine); outline-offset: 4px; }
:where(button, input, select, textarea) { font: inherit; }
:where(img, video) { max-width: 100%; height: auto; }
:where(p, li, h1, h2, h3, h4, figcaption) { overflow-wrap: break-word; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-site-blocks > main { margin-block-start: 0; }
.wp-block-template-part { clear: both; }
.cmpp-header { position: relative; z-index: 5; border-bottom: 1px solid var(--cm-line); }
.cmpp-header-top { min-height: 104px; gap: 28px; padding-block: 20px; }
.cmpp-brand { gap: 18px; flex-wrap: nowrap !important; }
.cmpp-brand .wp-block-site-title { flex: 0 0 auto; white-space: nowrap; }
.cmpp-brand-description { max-width: 230px; padding-left: 18px; border-left: 1px solid var(--wp--preset--color--line-strong); line-height: 1.3; }
.cmpp-header-actions { gap: 24px; }
.cmpp-header-nav { gap: 20px; }
.cmpp-header .wp-block-navigation-item__content { padding-block: 12px; }
.cmpp-header .current-menu-item > .wp-block-navigation-item__content { color: var(--cm-accent); text-decoration: underline; text-underline-offset: 7px; }
.wp-block-navigation .wp-block-navigation__submenu-container { padding: 10px; background: var(--wp--preset--color--surface-raised); color: var(--cm-ink); border: 1px solid var(--cm-line); box-shadow: 0 8px 24px #1e222624; }
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 8px 12px; }
.cmpp-header-search { position: relative; width: 46px; min-width: 46px; height: 46px; flex: 0 0 46px; }
.cmpp-header-search .wp-block-search__inside-wrapper { padding: 0; border: 0; }
.cmpp-header-search .wp-block-search__button { margin-left: 0; padding: 10px; min-height: 44px; min-width: 44px; background: transparent; color: var(--cm-ink); border: 1px solid var(--wp--preset--color--line-strong); }
.cmpp-header-search.wp-block-search__searchfield-hidden .wp-block-search__input { display: none; }
.cmpp-header-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper { position: absolute; top: calc(100% + 18px); right: 0; width: min(360px, calc(100vw - 32px)); max-width: none; padding: 10px; border: 1px solid var(--wp--preset--color--line-strong); background: var(--wp--preset--color--surface-raised); box-shadow: 0 8px 24px #1e222624; }
.cmpp-header .cmpp-header-search .wp-block-search__input { flex: 1 1 auto; width: 100%; }
.cmpp-header-search .wp-block-search__button { flex: 0 0 46px; }
.cmpp-header .wp-block-navigation .wp-block-navigation-submenu__toggle { min-width: 40px; min-height: 40px; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; margin-left: 0; }
.cmpp-header .wp-block-navigation .wp-block-navigation-submenu__toggle svg { width: 12px; height: 12px; }
.wp-block-search__input { min-width: 0; border: 1px solid var(--wp--preset--color--line-strong); padding: 12px 16px; background: var(--wp--preset--color--surface-raised); color: var(--cm-ink); border-radius: 2px; }
.wp-block-search__button { border-radius: 2px; }
.cmpp-page-header { padding-block: clamp(48px, 6vw, 80px) 36px; }
.cmpp-page-header .wp-block-post-title { max-width: 1000px; }
.cmpp-page-header .wp-block-post-terms { margin-top: 0; }
.cmpp-main { padding-bottom: clamp(64px, 7vw, 96px); min-height: 45vh; }
.cmpp-page-content > :where(h2,h3,h4) { margin-top: 2em; }
.cmpp-page-content > :first-child { margin-top: 0; }
.cmpp-page-content .wp-block-image { margin-block: 32px; }
.cmpp-page-content .wp-block-image img { display: block; }
.cmpp-page-content .wp-block-image figcaption { text-align: left; padding-top: 6px; }
.cmpp-page-content .wp-block-gallery .wp-block-image { margin-block: 0; }
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption { color: #fff; background: #131517; font-size: 15px; padding: 12px; }
.wp-block-gallery { gap: 24px !important; }
.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: collapse; min-width: 360px; }
.wp-block-table th, .wp-block-table td { border: 1px solid var(--cm-line); padding: 12px 16px; }
.wp-block-table th { background: var(--wp--preset--color--surface-sunken); text-align: left; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--wp--preset--color--surface-raised); }
.wp-block-file { padding: 20px 24px; border: 1px solid var(--cm-line); background: var(--wp--preset--color--surface-raised); font-size: 18px; }
.wp-block-file .wp-block-file__button { background: var(--cm-accent); color: var(--wp--preset--color--on-goethite); border-radius: 2px; padding: 10px 16px; font-size: 16px; }
.wp-block-button__link { min-height: 48px; }
.wp-block-button__link:hover { background: var(--cm-ink); color: var(--cm-surface); }
.wp-block-button.is-style-outline .wp-block-button__link { border: 1px solid var(--wp--preset--color--line-strong); color: var(--cm-ink); background: transparent; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--surface-sunken); }
.cmpp-section { padding-block: clamp(28px, 3.5vw, 48px); }
.cmpp-section-heading { margin-bottom: 32px; padding-bottom: 20px; border-bottom: 1px solid var(--cm-line); }
.cmpp-hero { padding-block: clamp(48px, 6vw, 80px); }
.cmpp-hero .wp-block-columns { gap: clamp(32px, 5vw, 72px); align-items: center !important; }
.cmpp-hero h1 { font-size: var(--wp--preset--font-size--hero); line-height: 1.04; }
.cmpp-hero .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.cmpp-hero .wp-block-image { margin-block: 0; }
.cmpp-hero .wp-block-buttons { margin-top: 32px; }
.cmpp-intro { max-width: 60ch; font-size: var(--wp--preset--font-size--lead); }
.cmpp-grid, .cm-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.cmpp-card, .cmpp-post-card { height: 100%; border: 1px solid var(--cm-line); background: var(--wp--preset--color--surface-raised); border-radius: 2px; overflow: hidden; }
.cmpp-card:hover, .cmpp-post-card:hover { border-color: var(--wp--preset--color--line-strong); }
.cmpp-card-body { padding: 24px; }
.cmpp-card .wp-block-image { margin: 0; }
.cmpp-card .wp-block-image img, .cmpp-post-card .wp-block-post-featured-image img { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; }
.cmpp-post-card .wp-block-post-featured-image { margin: 0; background: var(--wp--preset--color--vitrine); }
.cmpp-post-card .wp-block-post-title { font-size: 27px; line-height: 1.18; margin-top: 12px; }
.cmpp-post-card .wp-block-post-excerpt { font-size: 17px; margin-top: 12px; }
.cmpp-post-card .wp-block-post-excerpt__excerpt { margin-block: 0; }
.cmpp-post-card .wp-block-post-excerpt__more-text { margin-bottom: 0; }
.cmpp-query .wp-block-post-template { gap: 32px; }
.cmpp-query .wp-block-query-pagination { border-top: 1px solid var(--cm-line); padding-top: 24px; margin-top: 48px; }
.wp-block-query-pagination-numbers .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 6px; }
.wp-block-query-pagination-numbers .current { color: var(--wp--preset--color--on-goethite); background: var(--cm-accent); }
.is-style-cmpp-eyebrow, .cmpp-eyebrow { font-family: var(--wp--preset--font-family--mono); font-size: 15px; font-weight: 600; letter-spacing: .08em; line-height: 1.4; text-transform: uppercase; color: var(--cm-accent); }
.is-style-cmpp-lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.55; }
.is-style-cmpp-panel { padding: 24px; background: var(--wp--preset--color--surface-raised); border: 1px solid var(--wp--preset--color--line-strong); }
.is-style-cmpp-info, .is-style-cmpp-terrain { padding: 24px; border-radius: 6px; border: 1px solid var(--wp--preset--color--calcedoine); background: var(--wp--preset--color--calcedoine-soft); color: var(--cm-ink); }
.is-style-cmpp-terrain { border-color: var(--wp--preset--color--amazonite); background: var(--wp--preset--color--amazonite-soft); }
.is-style-cmpp-vitrine { background: var(--wp--preset--color--vitrine); color: var(--wp--preset--color--on-vitrine); padding: clamp(24px, 5vw, 64px); }
.is-style-cmpp-vitrine a { color: var(--wp--preset--color--on-vitrine); }
.is-style-cmpp-vitrine .is-style-cmpp-eyebrow { color: var(--wp--preset--color--ambre); }
.is-style-cmpp-specimen { padding: 16px; background: var(--wp--preset--color--vitrine); }
.is-style-cmpp-specimen img { max-height: 620px; width: 100%; object-fit: contain; }
.is-style-cmpp-specimen figcaption { color: var(--wp--preset--color--on-vitrine); }
/* Hard edges create the geological motif; no gradients or decorative images. */
.wp-block-separator.is-style-cmpp-strata { position: relative; max-width: none; height: 14px; border: 0; background: var(--cm-ink); opacity: 1; margin-block: 0; overflow: hidden; box-shadow: inset 0 3px var(--cm-accent), inset 0 6px var(--wp--preset--color--line-strong), inset 0 9px var(--wp--preset--color--ambre), inset 0 11px var(--wp--preset--color--fluorite); }
.wp-block-separator.is-style-cmpp-strata::after { content: ""; position: absolute; width: 4px; height: 24px; left: 66%; top: -5px; transform: rotate(32deg); background: var(--cm-surface); }
.wp-block-separator.is-style-cmpp-strata-discreet { max-width: none; height: 7px; margin-block: 0; border: 0; background: var(--wp--preset--color--line-strong); box-shadow: inset 0 3px var(--cm-line), inset 0 5px var(--wp--preset--color--surface-sunken); opacity: 1; }
.cmpp-footer { padding-block: 56px 24px; }
.cmpp-footer .wp-block-columns { gap: 48px; }
.cmpp-footer-title { font-size: 40px; margin-bottom: 8px; }
.cmpp-footer .wp-block-navigation { font-weight: 400; }
.cmpp-footer .wp-block-navigation-item__content { padding-block: 7px; }
.cmpp-footer-bottom { border-top: 1px solid var(--cm-line); margin-top: 40px; padding-top: 20px; }
.cmpp-footer .wp-block-search { max-width: 440px; }
.cmpp-empty { min-height: 50vh; display: flex; flex-direction: column; justify-content: center; padding-block: 64px; }
.cmpp-entry-meta { gap: 8px 24px; }
.cmpp-post-navigation { margin-top: 64px; border-top: 1px solid var(--cm-line); padding-top: 24px; }
/* Form controls, including content supplied by the site's functional extension. */
.cmpp-page-content :where(input:not([type=checkbox]):not([type=radio]):not([type=submit]), select, textarea) { max-width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--wp--preset--color--line-strong); border-radius: 2px; background: var(--wp--preset--color--surface-raised); color: var(--cm-ink); }
.cmpp-page-content :where(input[type=checkbox],input[type=radio]) { width: 22px; height: 22px; accent-color: var(--cm-accent); }
.cmpp-page-content :where(button[type=submit],input[type=submit]) { min-height: 48px; padding: 12px 24px; border: 1px solid transparent; border-radius: 2px; background: var(--cm-accent); color: var(--wp--preset--color--on-goethite); font-weight: 700; cursor: pointer; }
@media (max-width: 1100px) {
  .cmpp-brand-description { max-width: 190px; }
  .cmpp-header-top { gap: 16px; }
  .cmpp-header-actions { gap: 16px; }
  .cmpp-header-nav { gap: 14px; }
}
@media (max-width: 899px) {
  .cmpp-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
  .cmpp-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .cmpp-header .wp-block-navigation__responsive-container.is-menu-open { padding: 28px; background: var(--cm-surface); color: var(--cm-ink); }
  .cmpp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; width: 100%; gap: 4px; font-size: 23px; }
  .cmpp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; }
  .cmpp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { box-shadow: none; border: 0; font-size: 18px; }
  .cmpp-header .wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
  .cmpp-grid, .cm-grid, .cmpp-query .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 639px) {
  .cmpp-header-top { min-height: 84px; padding-block: 16px; }
  .cmpp-brand { gap: 10px; }
  .cmpp-brand .wp-block-site-title { font-size: 34px; }
  .cmpp-brand-description { display: none; }
  .cmpp-header-actions { gap: 12px; }
  .cmpp-header-search { width: 44px; }

  .cmpp-hero .wp-block-image img { aspect-ratio: 4 / 3; }
  .cmpp-grid, .cm-grid, .cmpp-query .wp-block-post-template.is-layout-grid { grid-template-columns: 1fr; }
  .cmpp-footer .wp-block-columns { gap: 32px; }
  .wp-block-gallery { gap: 12px !important; }
  .cmpp-page-header { padding-top: 40px; }
  .wp-block-search__button { padding-inline: 14px; }
  .cmpp-post-navigation { display: block; }
  .cmpp-post-navigation > * + * { margin-top: 20px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
@media print { .cmpp-header-actions, .cmpp-footer .wp-block-search, .cmpp-post-navigation { display: none; } body { background: white; color: black; } a { color: inherit; } }
/* Override core's default 100px separator width for the full geological bands. */
hr.wp-block-separator.is-style-cmpp-strata:not(.is-style-dots),
hr.wp-block-separator.is-style-cmpp-strata-discreet:not(.is-style-dots) { width: 100%; max-width: none; }

/* Imported sections retain native constrained text while columns use their wide canvas. */
.cmpp-section.alignwide > :where(.wp-block-columns, .wp-block-query, .wp-block-gallery),
.cmpp-hero.alignwide > .wp-block-columns { max-width: var(--wp--style--global--wide-size); }
.cmpp-section .cmpp-section { padding-block: 20px; }
.cmpp-section .wp-block-columns { margin-bottom: 0; }
.cmpp-section .wp-block-column > :first-child { margin-top: 0; }
.cmpp-section .wp-block-column > :last-child { margin-bottom: 0; }
.cmpp-section .wp-block-column .wp-block-image { margin-block: 0 24px; }
.cmpp-section + .cmpp-section { margin-top: 0; }
.is-style-cmpp-vitrine :where(a, button, input, select, textarea, [tabindex]):focus-visible,
.has-vitrine-background-color :where(a, button, input, select, textarea, [tabindex]):focus-visible { outline-color: var(--wp--preset--color--on-vitrine); }
@media (max-width: 1100px) { .cmpp-brand-description { display: none; } }
