/* css/ml-core-protocol.1.0.0.css -- the protocol template's own sections, v1.0.0.
   Chip M2-S228-CORE-V (G4), 2026-10-07, offline. Never deployed. Loaded after
   css/ml-core-pages.1.0.0.css (the shared bands, wrap, hero, buttons and links) and
   css/ml-proof.1.0.0.css (the press line), which this file does not touch.

   SCOPE. Every rule starts at .ml-protocol, the template's root class (never .ml-home), and
   names one of this page's own section classes (ml-pr-*), as the shared sheet's page-scope rule
   asks (g8-build/docs/how-to-add-a-page.md). Most rules sit at specificity 0,3,1 or higher; the
   section-spacing rule is 0,2,0, the same shape as home's own spacing rule in the shared sheet. Nothing here
   reaches the press line (section.ml-proof) or the shared Success Stories component
   (.location-stories), which stays exactly as it is (M1|002991).

   TYPE. Every font-size is one of Elementor kit 92454's typography variables (Mr. Marc,
   2026-10-05, ledger M2|001677: no size of our own anywhere). A line that does not fit is
   fixed by layout. Colors, spacing, widths and strokes read the --ml-* variables, with the
   visual-identity hex values as fallbacks only.

   LAYOUT. The Left Spine (webmaster-core.md 1.3.4; ledger M2|001609): headings, body text and
   buttons start on the wrap's left edge on laptops and wider; the figure sits to the right of
   its text and stacks below the text that introduces it on phones. The closing booking block is
   left-aligned too: Mr. Marc's ruling (M2|001609) leaves only home's and About's centered closings
   as they are and adds no new exception, so this page takes none.

   MOTION. Nothing here moves, pins or keys on a gsap-* class. */

/* Section rhythm and the reading measure */
.ml-protocol .ml-pr-pattern,.ml-protocol .ml-pr-window,.ml-protocol .ml-pr-work,.ml-protocol .ml-pr-science,.ml-protocol .ml-pr-faq,.ml-protocol .ml-pr-close{padding-block:var(--ml-section-standard,clamp(3.75rem,calc(2.6rem + 4.9vw),7.5rem))}
.ml-protocol .ml-band div.ml-pr-measure{display:flex;flex-direction:column;gap:var(--ml-gap-text,clamp(.75rem,calc(.52rem + .98vw),1.5rem));max-width:var(--ml-content-narrow,760px)}
.ml-protocol .ml-pr-work h3.ml-h3{color:var(--ml-blue-med,#456C8A)}

/* 3. THE PATTERN: four short paragraphs at the reading measure. */
.ml-protocol .ml-pr-pattern div.ml-pr-measure p{max-width:62ch}

/* 4. THE WINDOW: text left, the figure right from 1,025px (one column below that; see the media rule at the
   end of this file); in one column the figure follows the paragraph that introduces it, and the access
   paragraph follows the figure. */
.ml-protocol .ml-pr-window div.ml-pr-window__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);grid-template-areas:"head fig" "intro fig" "access fig";grid-template-rows:auto auto 1fr;column-gap:var(--ml-gap-columns,clamp(1.25rem,calc(.71rem + 2.29vw),3rem));row-gap:var(--ml-gap-text,clamp(.75rem,calc(.52rem + .98vw),1.5rem));align-items:start}
.ml-protocol .ml-pr-window h2.ml-pr-window__head{grid-area:head}
.ml-protocol .ml-pr-window p.ml-pr-window__intro{grid-area:intro;max-width:56ch}
.ml-protocol .ml-pr-window p.ml-pr-window__access{grid-area:access;max-width:56ch;padding-top:var(--ml-sp-4,16px);border-top:var(--ml-stroke-hairline,1px) solid var(--ml-etch-dk,#FFFFFF33)}
.ml-protocol .ml-pr-window figure.ml-pr-fig{grid-area:fig;justify-self:end;width:100%;max-width:440px;margin:0}

/* The figure's box: the still sets it (intrinsic width and height), and the template prints the box only
   when the still exists, so there is never an empty square. The navy fill shows only while the still loads.
   The engine's canvas and its pause control are placed over this same box by the engine (its own scoped
   rules). */
.ml-protocol .ml-pr-window div.ml-brain__stage{position:relative;width:100%;aspect-ratio:1/1;background:var(--ml-navy,#05141B);border-radius:var(--ml-radius-embed,8px);overflow:hidden}
.ml-protocol .ml-pr-window div.ml-brain__stage img.ml-brain__poster{display:block;width:100%;height:auto;border-radius:0}

/* The engine's play and pause control (its .ml-brain__toggle, a 44px round button it places at the box's
   bottom right and shows only while the live figure runs). The kit's button rule (.elementor-kit-92454
   button, 0,1,1), Hello's button hover and focus pink and the child theme's button overrides all outrank
   the engine's own one-class rules, so the look is restated here in every state at 0,4,2 and up. Never
   sets display, which the engine owns. */
.ml-protocol .ml-pr-window figure.ml-brain button.ml-brain__toggle,.ml-protocol .ml-pr-window figure.ml-brain button.ml-brain__toggle:hover,.ml-protocol .ml-pr-window figure.ml-brain button.ml-brain__toggle:focus,.ml-protocol .ml-pr-window figure.ml-brain button.ml-brain__toggle:active{width:44px;height:44px;min-width:0;min-height:0;margin:0;padding:0;border:var(--ml-stroke-hairline,1px) solid var(--ml-etch-dk,#FFFFFF33);border-radius:50%;background:var(--ml-glass-95,#05141BF2);box-shadow:none;color:var(--ml-blue-light,#8BADC4);font:inherit;line-height:1;letter-spacing:0;text-transform:none;text-decoration:none;cursor:pointer;transition:none}
.ml-protocol .ml-pr-window figure.ml-brain button.ml-brain__toggle:hover{color:var(--ml-white,#FFFFFF)}
.ml-protocol .ml-pr-window figure.ml-brain button.ml-brain__toggle:focus{outline:none}
.ml-protocol .ml-pr-window figure.ml-brain button.ml-brain__toggle:focus-visible{outline:var(--ml-stroke-ring,2px) solid var(--ml-copper-light,#D09A8B);outline-offset:3px}

/* The timeline under the box: a hairline with the open window marked in copper; three plain labels. */
.ml-protocol .ml-pr-window ol.ml-pr-timeline{position:relative;display:grid;grid-template-columns:1fr 1fr 1fr;margin:var(--ml-sp-4,16px) 0 0;padding:var(--ml-sp-3,12px) 0 0;font-family:var(--e-global-typography-35281c4-font-family,"Instrument Sans"),system-ui,sans-serif;font-size:var(--e-global-typography-35281c4-font-size,14px);font-weight:600;line-height:1.3;color:var(--ml-white-soft,#FFFFFFDE)}
.ml-protocol .ml-pr-window ol.ml-pr-timeline::before{content:"";position:absolute;left:0;right:0;top:0;height:var(--ml-stroke-hairline,1px);background:var(--ml-etch-dk,#FFFFFF33)}
.ml-protocol .ml-pr-window ol.ml-pr-timeline li{position:relative}
.ml-protocol .ml-pr-window ol.ml-pr-timeline li.ml-pr-timeline__1{text-align:left}
.ml-protocol .ml-pr-window ol.ml-pr-timeline li.ml-pr-timeline__2{text-align:center;color:var(--ml-copper-light,#D09A8B)}
.ml-protocol .ml-pr-window ol.ml-pr-timeline li.ml-pr-timeline__2::before{content:"";position:absolute;left:12%;right:12%;top:calc(-1 * var(--ml-sp-3,12px) - 1px);height:3px;background:var(--ml-copper,#A56D5B)}
.ml-protocol .ml-pr-window ol.ml-pr-timeline li.ml-pr-timeline__3{text-align:right}

/* The two pass lines, always visible as text, with the series' thin copper dash markers. Hello's
   reset sets figcaption to #333 italic at 16px, which is unreadable on navy: the caption takes the
   band's body style back (the kit's accent size, soft white, upright). */
.ml-protocol .ml-pr-window figcaption.ml-pr-fig__caption{margin-top:var(--ml-sp-4,16px);font-family:var(--e-global-typography-accent-font-family,"Instrument Sans"),system-ui,sans-serif;font-size:var(--e-global-typography-accent-font-size,19px);font-style:normal;font-weight:400;line-height:1.5;color:var(--ml-white-soft,#FFFFFFDE)}
.ml-protocol .ml-pr-window ol.ml-pr-passes{display:grid;gap:var(--ml-sp-3,12px)}
.ml-protocol .ml-pr-window ol.ml-pr-passes li{position:relative;padding-left:var(--ml-sp-8,32px);line-height:1.5}
.ml-protocol .ml-pr-window ol.ml-pr-passes li::before{content:"";position:absolute;left:0;top:.8em;width:var(--ml-sp-4,16px);height:var(--ml-stroke-baseline,1.5px);background:var(--ml-copper,#A56D5B)}

/* 5. HOW THE WORK RUNS: four numbered steps, two by two from 769px, one column on phones. */
.ml-protocol .ml-pr-work ol.ml-pr-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ml-gap-columns,clamp(1.25rem,calc(.71rem + 2.29vw),3rem));margin-top:var(--ml-sp-8,32px);max-width:1040px}
.ml-protocol .ml-pr-work li.ml-pr-step{display:flex;flex-direction:column;gap:var(--ml-sp-3,12px);padding-top:var(--ml-sp-6,24px);border-top:var(--ml-stroke-hairline,1px) solid var(--ml-divider-light,rgba(44,53,57,.15))}
.ml-protocol .ml-pr-work span.ml-pr-step__n{display:inline-flex;align-items:center;justify-content:center;width:var(--ml-sp-8,32px);height:var(--ml-sp-8,32px);border:var(--ml-stroke-hairline,1px) solid var(--ml-copper,#A56D5B);border-radius:50%;color:var(--ml-copper-reading,#8E5D4E);font-family:var(--e-global-typography-35281c4-font-family,"Instrument Sans"),system-ui,sans-serif;font-size:var(--e-global-typography-35281c4-font-size,14px);font-weight:600;line-height:1}
.ml-protocol .ml-pr-work li.ml-pr-step p{max-width:56ch}
.ml-protocol .ml-pr-work p.ml-pr-work__programs{max-width:62ch;margin-top:var(--ml-sp-8,32px)}
.ml-protocol .ml-pr-work div.ml-pr-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ml-sp-3,12px) var(--ml-sp-8,32px);margin-top:var(--ml-sp-6,24px)}

/* 7. THE SCIENCE: the reading measure, then the references, closed by default. */
.ml-protocol .ml-pr-science details.ml-pr-refs{margin-top:var(--ml-sp-2,8px);border-top:var(--ml-stroke-hairline,1px) solid var(--ml-divider-light,rgba(44,53,57,.15))}
.ml-protocol .ml-pr-science details.ml-pr-refs > summary{display:flex;align-items:center;gap:var(--ml-sp-3,12px);min-height:44px;cursor:pointer;list-style:none;font-weight:500;color:var(--ml-copper-reading,#8E5D4E)}
.ml-protocol .ml-pr-science details.ml-pr-refs > summary::-webkit-details-marker{display:none}
.ml-protocol .ml-pr-science details.ml-pr-refs > summary > span{text-decoration:underline;text-decoration-thickness:var(--ml-stroke-hairline,1px);text-underline-offset:3px}
.ml-protocol .ml-pr-science details.ml-pr-refs > summary::before{content:"+";content:"+" / "";flex:none;width:1em;font-weight:500;text-align:left}
.ml-protocol .ml-pr-science details.ml-pr-refs[open] > summary::before{content:"\2212";content:"\2212" / ""}
.ml-protocol .ml-pr-science details.ml-pr-refs > summary::after{content:none}
.ml-protocol .ml-pr-science details.ml-pr-refs ol{margin:0;padding:0 0 0 1.25em;list-style:decimal;font-size:var(--e-global-typography-35281c4-font-size,14px);line-height:1.45}
.ml-protocol .ml-pr-science details.ml-pr-refs li{margin:0;padding:0}
.ml-protocol .ml-pr-science details.ml-pr-refs a{display:block;padding:var(--ml-sp-3,12px) 0;color:var(--ml-gunmetal,#2C3539);text-decoration:underline;text-decoration-thickness:var(--ml-stroke-hairline,1px);text-underline-offset:3px;overflow-wrap:anywhere}

/* The +/- markers (both disclosures) declare content twice: the plain glyph first, for browsers without CSS
   alternative text, then the glyph with empty alternative text, so a screen reader names each row by its own
   words and not "plus" or "minus" (the open or closed state is announced already). */
/* 8. QUESTIONS: native disclosure rows; the first is open. No script, so the page carries no
   accordion library (today's UCContentAccordion widgets are not printed under the template). */
.ml-protocol .ml-pr-faq div.ml-pr-faq__list{border-bottom:var(--ml-stroke-hairline,1px) solid var(--ml-etch-dk,#FFFFFF33)}
.ml-protocol .ml-pr-faq details.ml-pr-faq__item{border-top:var(--ml-stroke-hairline,1px) solid var(--ml-etch-dk,#FFFFFF33)}
.ml-protocol .ml-pr-faq details.ml-pr-faq__item > summary{display:flex;align-items:baseline;justify-content:flex-start;gap:var(--ml-sp-3,12px);min-height:44px;padding:var(--ml-sp-4,16px) 0;cursor:pointer;list-style:none}
.ml-protocol .ml-pr-faq details.ml-pr-faq__item > summary::-webkit-details-marker{display:none}
.ml-protocol .ml-pr-faq details.ml-pr-faq__item > summary::before{content:"+";content:"+" / "";flex:none;width:.8em;font-family:var(--e-global-typography-accent-font-family,"Instrument Sans"),system-ui,sans-serif;font-size:var(--e-global-typography-secondary-font-size,2.1vw);font-weight:400;line-height:1;text-align:left;color:var(--ml-copper-light,#D09A8B)}
.ml-protocol .ml-pr-faq details.ml-pr-faq__item[open] > summary::before{content:"\2212";content:"\2212" / ""}
.ml-protocol .ml-pr-faq details.ml-pr-faq__item > summary::after{content:none}
/* The question: the H3 token's look on a span (a heading inside a summary is not exposed as a heading). */
.ml-protocol .ml-pr-faq details.ml-pr-faq__item > summary span.ml-pr-faq__q{flex:1 1 auto;min-width:0;font-family:var(--e-global-typography-secondary-font-family,"Cormorant Garamond"),Georgia,serif;font-size:var(--e-global-typography-secondary-font-size,2.1vw);font-weight:var(--e-global-typography-secondary-font-weight,600);font-style:var(--e-global-typography-secondary-font-style,italic);line-height:var(--e-global-typography-secondary-line-height,1.2em);color:var(--ml-blue-light,#8BADC4);text-wrap:balance}
.ml-protocol .ml-pr-faq details.ml-pr-faq__item > p{max-width:62ch;padding:0 0 var(--ml-sp-6,24px)}

/* 9. CLOSING: on the Left Spine like every other section (no new exception); the credential block below a
   hairline, left-aligned at the body size, as About's spec sets the same block. */
.ml-protocol .ml-pr-close div.ml-pr-close__inner{display:flex;flex-direction:column;align-items:flex-start;gap:var(--ml-gap-text,clamp(.75rem,calc(.52rem + .98vw),1.5rem));max-width:var(--ml-content-narrow,760px);margin:0;text-align:left}
.ml-protocol .ml-pr-close div.ml-pr-close__inner p{max-width:52ch}
.ml-protocol .ml-pr-close div.ml-pr-close__cred{max-width:var(--ml-content-narrow,760px);margin:var(--ml-sp-12,48px) 0 0;padding-top:var(--ml-sp-6,24px);border-top:var(--ml-stroke-hairline,1px) solid var(--ml-divider-light,rgba(44,53,57,.15));text-align:left;font-size:var(--e-global-typography-accent-font-size,19px);line-height:1.55;color:var(--ml-gunmetal,#2C3539)}
.ml-protocol .ml-pr-close div.ml-pr-close__cred div.mindlab-credential-block{display:grid;gap:var(--ml-sp-2,8px)}

/* The window section stays one column below 1,025px, so the figure keeps its 440px box on tablets instead of
   shrinking to about 300px in a narrow second column between 769 and 1,024px. */
@media (max-width:1024px){
	.ml-protocol .ml-pr-window div.ml-pr-window__grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "intro" "fig" "access";grid-template-rows:auto}
	.ml-protocol .ml-pr-window figure.ml-pr-fig{justify-self:start;max-width:440px}
}
/* One column below the kit's 769px breakpoint. */
@media (max-width:768px){
	.ml-protocol .ml-pr-work ol.ml-pr-steps{grid-template-columns:minmax(0,1fr)}
}
/* 2026-10-14, chip M2-S235-CORE-Q3 (Mr. Marc's review): the closing credentials print as a list; on wide screens each
   hero credential holds to one line (a phone cannot fit the Wharton line at the site's type size, so it wraps there). */
.ml-protocol .ml-pr-close__cred ul.mindlab-credential-block__list{display:grid;gap:var(--ml-sp-1,4px);margin:0;padding:0;list-style:none}
@media (min-width:1300px){
	.ml-protocol .ml-hero ul.ml-hero__creds li{white-space:nowrap}
}
