/* Imagine Monkey / Modern Primitives 0.7.6 (opt-in, brand-neutral).
   These are compositional utilities, NOT a global theme aesthetic.
   All classes are inert unless added to a native Gutenberg composition.
   Progressive enhancement: subgrid, container units and scroll timelines.
*/
.imf-site .imc-fluid-cover{position:relative;isolation:isolate;display:grid;grid-template-rows:minmax(18rem,50svh) auto;overflow:clip}
.imf-site .imc-fluid-cover>.imc-fluid-cover-media{grid-row:1/2;overflow:hidden}
.imf-site .imc-fluid-cover-media img{width:100%;height:100%;object-fit:cover;display:block}
.imf-site .imc-fluid-cover>.imc-fluid-cover-panel{position:relative;z-index:1;grid-row:2;margin:-3rem clamp(1rem,4vw,4rem) 0;padding:clamp(1.5rem,4vw,4rem);background:var(--imc-panel,#fff)}
.imf-site .imc-fluid-cover-heading{font-size:clamp(3rem,7vw,8rem);line-height:.96;letter-spacing:-.055em;text-wrap:balance}
.imf-site .imc-fluid-cover-panel>:is(h1,h2){margin-top:0}
.imf-site .imc-ruled-image-index{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,4vw,5rem);container-type:inline-size;}
.imf-site .imc-ruled-image-index>.imc-ruled-media{grid-column:1;grid-row:1/6;min-height:24rem;align-self:stretch;overflow:hidden}
.imf-site .imc-ruled-image-index>.imc-ruled-media img{width:100%;height:100%;object-fit:cover}
.imf-site .imc-ruled-image-index>.imc-ruled-list{grid-column:2;grid-row:1/6;display:grid;align-content:center}
.imf-site .imc-ruled-image-index .imc-ruled-entry{border-top:1px solid var(--imc-rule,currentColor);padding:clamp(1.15rem,2cqw,2rem) 0}
.imf-site .imc-ruled-image-index .imc-ruled-entry:last-child{border-bottom:1px solid var(--imc-rule,currentColor)}
.imf-site .imc-ruled-entry :is(h3,p){margin-block:0}
.imf-site .imc-ruled-entry :is(a,button):focus-visible{outline:2px solid currentColor;outline-offset:4px}
.imf-site .imc-proof-broadside{display:grid;grid-template-columns:minmax(10rem,.7fr) minmax(0,1.3fr);gap:clamp(1rem,6vw,6rem);padding:clamp(3rem,8vw,8rem) clamp(1rem,5vw,5rem);container-type:inline-size}
.imf-site .imc-proof-broadside blockquote{margin:0;font-size:clamp(1.45rem,3vw,3.25rem);line-height:1.28;font-family:var(--imc-quote-font,Georgia,serif)}
.imf-site .imc-proof-broadside cite{display:block;font:700 .8rem/1.5 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;margin-top:1.5rem}
@container (max-width:680px){
 .imf-site .imc-ruled-image-index>.imc-ruled-media{grid-column:1/-1;grid-row:1;min-height:18rem}
 .imf-site .imc-ruled-image-index>.imc-ruled-list{grid-column:1/-1;grid-row:2}
 .imf-site .imc-proof-broadside{grid-template-columns:1fr}
}
@supports(display:subgrid){
 .imf-site .imc-layout-subgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
 .imf-site .imc-layout-subgrid>.imc-layout-subgrid-child{display:grid;grid-template-columns:subgrid;grid-column:1/-1}
}
@media (prefers-reduced-motion:no-preference){
 .imf-site .imc-image-hover{overflow:hidden}
 .imf-site .imc-image-hover img{transition:transform .75s cubic-bezier(.22,1,.36,1)}
 .imf-site .imc-image-hover:is(:hover,:focus-within) img{transform:scale(1.045)}
 @supports (animation-timeline:view()){
  .imf-site .imc-progress-rule{transform-origin:left;animation:imc-rule-sweep linear both;animation-timeline:view();animation-range:entry 0% cover 60%}
  @keyframes imc-rule-sweep{from{transform:scaleX(.15)}to{transform:scaleX(1)}}
 }
}
@media(max-width:740px){
 .imf-site .imc-ruled-image-index{grid-template-columns:1fr}
 .imf-site .imc-ruled-image-index>.imc-ruled-media{grid-column:1;grid-row:1}
 .imf-site .imc-ruled-image-index>.imc-ruled-list{grid-column:1;grid-row:2}
 .imf-site .imc-proof-broadside{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
 .imf-site .imc-image-hover img,.imf-site .imc-progress-rule{animation:none!important;transition:none!important;transform:none!important}
}

/* 0.7.9: two brand-neutral, opt-in editorial families; unused sites unaffected.
   A/ Asymmetrical photographic gallery: group each native item with real copy/media.
   B/ Reading-spread chapters: four approved text blocks with varied visual hierarchy.
   Both remain ordinary accessible Gutenberg groups with no required JavaScript. */
.imf-site .imc-asym-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(10px,1.3vw,20px);container-type:inline-size}
.imf-site .imc-asym-gallery>*{min-width:0;position:relative}
.imf-site .imc-asym-gallery>.imc-gallery-lead{grid-column:1/8;grid-row:1/span 2;min-height:530px}
.imf-site .imc-asym-gallery>.imc-gallery-aside-one{grid-column:8/13;grid-row:1;min-height:240px}
.imf-site .imc-asym-gallery>.imc-gallery-aside-two{grid-column:8/13;grid-row:2;min-height:240px}
.imf-site .imc-asym-gallery>.imc-gallery-ribbon{grid-column:1/-1;grid-row:3;min-height:260px}
.imf-site .imc-gallery-photo{position:absolute;inset:0;overflow:hidden}
.imf-site .imc-gallery-photo img{display:block;width:100%;height:100%;object-fit:cover}
.imf-site .imc-gallery-copy{position:relative;z-index:1}
.imf-site .imc-gallery-copy>:is(h2,h3,p){margin-block:0}
.imf-site .imc-reading-spread{display:grid;grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr);gap:clamp(22px,5vw,95px);container-type:inline-size}
.imf-site .imc-reading-spread>.imc-reading-title{grid-column:1;align-self:start}
.imf-site .imc-reading-spread>.imc-reading-articles{grid-column:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(15px,3vw,45px)}
.imf-site .imc-reading-articles>.imc-reading-lead,.imf-site .imc-reading-articles>.imc-reading-outro{grid-column:1/-1}
.imf-site .imc-reading-articles>*{min-width:0;margin-block:0}
@container (max-width:620px){
 .imf-site .imc-asym-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
 .imf-site .imc-asym-gallery>.imc-gallery-lead{grid-column:1/-1;grid-row:1;min-height:360px}
 .imf-site .imc-asym-gallery>.imc-gallery-aside-one{grid-column:1;grid-row:2;min-height:240px}
 .imf-site .imc-asym-gallery>.imc-gallery-aside-two{grid-column:2;grid-row:2;min-height:240px}
 .imf-site .imc-asym-gallery>.imc-gallery-ribbon{grid-column:1/-1;grid-row:3;min-height:220px}
 .imf-site .imc-reading-spread{grid-template-columns:1fr}
 .imf-site .imc-reading-spread>.imc-reading-title,.imf-site .imc-reading-spread>.imc-reading-articles{grid-column:1}
}
@media(max-width:550px){
 .imf-site .imc-asym-gallery{grid-template-columns:1fr}
 .imf-site .imc-asym-gallery>:is(.imc-gallery-lead,.imc-gallery-aside-one,.imc-gallery-aside-two,.imc-gallery-ribbon){grid-column:1;grid-row:auto;min-height:270px}
 .imf-site .imc-reading-spread>.imc-reading-articles{grid-template-columns:1fr}
 .imf-site .imc-reading-articles>*{grid-column:1}
}

/* 0.7.10: deliberately opt-in menu browser primitives. Brand-independent.
   Allow separate client themes to supply their own visual appearance, with
   native details as an accessible functional fallback without JavaScript. */
.imf-site .imc-menu-explorer{container-type:inline-size;min-width:0}
.imf-site .imc-disclosure-pill{min-width:0}
.imf-site .imc-disclosure-pill>summary{cursor:pointer}
.imf-site .imc-disclosure-pill>summary:focus-visible{outline:2px solid currentColor;outline-offset:3px}



/* 0.7.6: Universal, opt-in form hosting and action rhythm. These selectors
   only affect explicitly tagged Gutenberg groups/buttons. The actual form
   must be a registered, secure block supplied by an installed plugin. */
:where(.imf-site,.editor-styles-wrapper) .imc-form-stage{
  --imc-stage-line:var(--im-brand-line,#cad4d8);
  container-type:inline-size;
  display:grid;grid-template-columns:minmax(0,.68fr) minmax(0,1.32fr);
  align-items:start;gap:clamp(1.2rem,4vw,5rem);
  max-inline-size:min(100% - 2rem,1280px);margin-inline:auto!important;
  padding:clamp(1.5rem,5vw,5rem);min-inline-size:0;
}
:where(.imf-site,.editor-styles-wrapper) .imc-form-stage>*{min-inline-size:0}
:where(.imf-site,.editor-styles-wrapper) .imc-form-stage-intro{
  position:relative;min-inline-size:0;
}
:where(.imf-site,.editor-styles-wrapper) .imc-form-stage-intro :is(h2,h3){
  font-size:clamp(1.7rem,3vw,3.5rem);line-height:1.1;letter-spacing:-.025em;
  overflow-wrap:normal;text-wrap:balance;
}
:where(.imf-site,.editor-styles-wrapper) .imc-form-stage-content{
  inline-size:100%;min-inline-size:0;
}
:where(.imf-site,.editor-styles-wrapper) .imc-form-stage-content > *{
  max-inline-size:100%;min-inline-size:0;
}
:where(.imf-site,.editor-styles-wrapper) .imc-action-row{
  display:flex;gap:clamp(.65rem,1.4vw,1rem);flex-wrap:wrap;align-items:center;
}
:where(.imf-site,.editor-styles-wrapper) .imc-action-row > *{min-inline-size:0}
:where(.imf-site,.editor-styles-wrapper) .imc-action-button .wp-block-button__link{
  display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  min-block-size:48px;max-inline-size:100%;box-sizing:border-box;
  padding:.9rem 1.45rem;text-align:center;line-height:1.35;
  text-wrap:pretty;transition:transform .23s cubic-bezier(.2,.9,.3,1), box-shadow .23s;
}
:where(.imf-site,.editor-styles-wrapper) .imc-action-button .wp-block-button__link:is(:hover,:focus-visible){
  transform:translateY(-2px);
}
:where(.imf-site,.editor-styles-wrapper) .imc-action-button .wp-block-button__link:focus-visible{
  outline:3px solid var(--im-brand-accent,currentColor);outline-offset:3px;
}
/* Scoped Gutenberg details subtitle reset. The native block stylesheet can
   add 48px inline-end and paragraph bottom margins to non-summary children.
   This exact opt-in class fixes the notch; never reset all details/FAQs. */
:where(.imf-site,.editor-styles-wrapper) .wp-block-details > .imc-menu-summary-note{
  margin:0!important;margin-block:0!important;margin-inline:0!important;
  inline-size:100%;max-inline-size:100%;box-sizing:border-box;
}
/* Basic brand-adaptive info catalog, nothing hidden when JS is unavailable. */
:where(.imf-site,.editor-styles-wrapper) .imc-menu-explorer{
  --imc-explorer-ink:var(--im-brand-ink,#18332b);
  --imc-explorer-muted:var(--im-brand-muted,#577168);
  --imc-explorer-rule:var(--im-brand-line,#d9e3de);
  --imc-explorer-surface:var(--im-brand-surface,#f9faf7);
  display:grid;grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);
  gap:clamp(1rem,3vw,3rem);min-inline-size:0;align-items:start;
}
:where(.imf-site,.editor-styles-wrapper) .imc-menu-explorer>*{min-inline-size:0}
:where(.imf-site,.editor-styles-wrapper) .imc-menu-category-list{
  display:grid;gap:.5rem;align-content:start;
  position:sticky;top:clamp(1rem,5vw,5rem);max-block-size:min(80svh,900px);
  overflow-y:auto;scrollbar-width:thin;
}
:where(.imf-site,.editor-styles-wrapper) .imc-explorer-search{
  display:grid;gap:.35rem;inline-size:100%;font-size:.8rem;
  color:var(--imc-explorer-muted);
}
:where(.imf-site,.editor-styles-wrapper) .imc-explorer-search input{
  box-sizing:border-box;min-block-size:44px;inline-size:100%;border-radius:.8rem;
  border:1px solid var(--imc-explorer-rule);padding:.7rem .85rem;
  background:var(--imc-explorer-surface);color:var(--imc-explorer-ink);
  font:inherit;
}
:where(.imf-site,.editor-styles-wrapper) .imc-explorer-nav{
  display:grid;gap:.25rem;
}
:where(.imf-site,.editor-styles-wrapper) .imc-explorer-nav button{
  appearance:none;min-block-size:43px;text-align:start;cursor:pointer;
  font:inherit;font-weight:650;line-height:1.4;
  color:var(--imc-explorer-ink);background:transparent;
  border:1px solid transparent;border-radius:.7rem;padding:.6rem .8rem;
  transition:background .2s ease,border-color .2s ease,transform .2s ease;
}
:where(.imf-site,.editor-styles-wrapper) .imc-explorer-nav button:hover{
  background:var(--imc-explorer-surface);border-color:var(--imc-explorer-rule);transform:translateX(2px);
}
:where(.imf-site,.editor-styles-wrapper) .imc-explorer-nav button[aria-pressed=true]{
  border-color:var(--imc-explorer-rule);background:var(--imc-explorer-surface);
  box-shadow:inset 3px 0 0 var(--im-brand-accent,currentColor);
}
:where(.imf-site,.editor-styles-wrapper) .imc-explorer-nav button:focus-visible,
:where(.imf-site,.editor-styles-wrapper) .imc-menu-panels summary:focus-visible,
:where(.imf-site,.editor-styles-wrapper) .imc-explorer-search input:focus-visible{
  outline:3px solid var(--im-brand-accent,currentColor);outline-offset:3px;
}
:where(.imf-site,.editor-styles-wrapper) .imc-menu-explorer [hidden]{display:none!important}
:where(.imf-site,.editor-styles-wrapper) .imc-menu-panels{min-inline-size:0}
:where(.imf-site,.editor-styles-wrapper) .imc-menu-panels > .imc-menu-collection{
  min-inline-size:0;scroll-margin-block-start:6rem;
}
:where(.imf-site,.editor-styles-wrapper) .imc-menu-panels details{min-inline-size:0}
:where(.imf-site,.editor-styles-wrapper) .imc-menu-panels details > summary{
  cursor:pointer;overflow-wrap:anywhere;
}
:where(.imf-site,.editor-styles-wrapper) .imc-disclosure-pill{
  border:1px solid var(--im-brand-line,#d9e3de);
  border-radius:clamp(.5rem,1vw,1rem);padding:.75rem 1rem;
  transition:border-color .18s,background .18s,box-shadow .18s;
}
:where(.imf-site,.editor-styles-wrapper) .imc-disclosure-pill[open]{
  background:var(--im-brand-surface,#f9faf7);
  box-shadow:0 8px 25px -22px var(--im-brand-ink,#1c2c30);
}
@media (max-width:800px){
  :where(.imf-site,.editor-styles-wrapper) .imc-form-stage{grid-template-columns:1fr}
  :where(.imf-site,.editor-styles-wrapper) .imc-menu-explorer{grid-template-columns:minmax(0,1fr)}
  :where(.imf-site,.editor-styles-wrapper) .imc-menu-category-list{
    position:static;max-block-size:none;overflow:visible;
  }
  :where(.imf-site,.editor-styles-wrapper) .imc-explorer-nav{
    display:flex;overflow-x:auto;max-inline-size:100%;gap:.45rem;padding-block:.25rem;
  }
  :where(.imf-site,.editor-styles-wrapper) .imc-explorer-nav button{
    flex:0 0 auto;max-inline-size:min(60vw,280px);
  }
}
@media (max-width:400px){
  :where(.imf-site,.editor-styles-wrapper) .imc-action-row{flex-direction:column;align-items:stretch}
  :where(.imf-site,.editor-styles-wrapper) .imc-action-button,
  :where(.imf-site,.editor-styles-wrapper) .imc-action-button .wp-block-button__link{inline-size:100%}
}
@media (prefers-reduced-motion:reduce){
  :where(.imf-site,.editor-styles-wrapper) .imc-action-button .wp-block-button__link,
  :where(.imf-site,.editor-styles-wrapper) .imc-explorer-nav button{animation:none!important;transition:none!important;transform:none!important}
}
@media print{
  :where(.imf-site,.editor-styles-wrapper) .imc-menu-explorer{display:block}
  :where(.imf-site,.editor-styles-wrapper) .imc-menu-category-list{display:none!important}
  :where(.imf-site,.editor-styles-wrapper) .imc-menu-explorer [hidden]{display:block!important}
}
