/* ---------------------------------------------------------------------------
   McGlynn Personnel — design tokens + base layer
   Values are the rendered brand ("System B" in audit/05-design-system.md),
   not the abandoned Envato kit. Every hex here was measured off live.
   --------------------------------------------------------------------------- */

:root {
  /* brand ------------------------------------------------------------------ */
  --mp-pink:        #D02479;
  --mp-pink-dark:   #A71D61;
  --mp-pink-deep:   #4C0F2D;
  --mp-pink-light:  #FFBAE2;
  --mp-pink-hot:    #FF2A89;
  --mp-pink-mid:    #F17AB5;
  --mp-blue:        #253499;
  --mp-blue-dark:   #0B1129;
  --mp-blue-deep:   #090F26;
  --mp-blue-ui:     #3146CB;   /* header chrome + legacy buttons */
  --mp-blue-ui-h:   #3AA9EA;
  --mp-navy-panel:  #11172D;
  --mp-steel:       #6497B2;
  --mp-gold:        #FFD166;

  /* ink -------------------------------------------------------------------- */
  --mp-ink:            #FFFFFF;
  --mp-ink-muted:      #D7DBFF;   /* on blue */
  --mp-ink-muted-pink: #FFE5F0;   /* on pink */
  --mp-ink-body:       #767676;   /* on white. Live's #868686 is 3.6:1, below AA; #767676 is the nearest grey that passes (4.54:1) */
  --mp-ink-heading:    #292929;   /* on white */
  --mp-rule:           #E8E8E8;

  /* surfaces --------------------------------------------------------------- */
  --mp-surface-blue: radial-gradient(130% 160% at 70% 0%, var(--mp-blue) 0%, var(--mp-blue-dark) 65%, var(--mp-blue-deep) 100%);
  --mp-surface-pink: radial-gradient(130% 160% at 70% 0%, var(--mp-pink) 0%, var(--mp-pink-dark) 60%, var(--mp-pink-deep) 100%);
  --mp-glass:        linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.05));
  --mp-glass-strong: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06));
  --mp-outline:      rgba(255,255,255,.22);
  --mp-hairline:     rgba(255,255,255,.15);
  --mp-scrim:        rgba(0,0,0,.69);   /* header main bar */

  /* elevation -------------------------------------------------------------- */
  --mp-sh-card:  inset 0 1px 0 rgba(255,255,255,.15), 0 10px 25px rgba(0,0,0,.30);
  --mp-sh-chip:  inset 0 1px 0 rgba(255,255,255,.18), 0 8px 22px rgba(0,0,0,.28);
  --mp-sh-panel: 0 24px 60px rgba(14,22,53,.45);
  --mp-sh-btn:   0 6px 18px rgba(0,0,0,.35);
  --mp-sh-btn-h: 0 10px 24px rgba(0,0,0,.45);
  --mp-sh-bar:   0 0 10px 0 rgba(0,0,0,.5);

  /* type ------------------------------------------------------------------- */
  --mp-font-display: "DM Serif Display", Georgia, "Times New Roman", serif;
  --mp-font-ui:      "Montserrat", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --mp-fs-hero:      52px;  --mp-fs-hero-m:    36px;
  --mp-fs-section:   42px;  --mp-fs-section-m: 30px;
  --mp-fs-h3:        26px;  --mp-fs-card:      22px;
  --mp-fs-footer-h:  21px;
  --mp-fs-body:      16px;  --mp-fs-body-sm:   14px;  --mp-fs-eyebrow: 12px;
  --mp-lh-display:   1.12;  --mp-lh-hero:      1.05;  --mp-lh-body:    1.5;
  --mp-ls-eyebrow:   .14em; --mp-ls-hero:      .02em;

  /* layout ----------------------------------------------------------------- */
  --mp-content:   1200px;
  --mp-wide:      1500px;
  --mp-gutter:    20px;
  --mp-section-y: 90px;
  --mp-gap:       24px;   --mp-gap-lg: 36px;
  --mp-radius:    12px;   --mp-radius-pill: 999px;
  --mp-header-h:  112px;  --mp-header-h-m: 135px;
}

/* reset ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

body {
  margin: 0;
  font-family: var(--mp-font-ui);
  font-size: var(--mp-fs-body);
  line-height: var(--mp-lh-body);
  color: var(--mp-ink-body);
  background: #fff;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 .5em;
  font-family: var(--mp-font-display);
  font-weight: 400;
  line-height: var(--mp-lh-display);
  color: var(--mp-ink-heading);
}

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

a { color: inherit; text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; }

img, svg, video, canvas { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0 0 1em; padding-left: 1.25em; }

/* Superscripts must not grow the line box ("19th March", "5th Floor"): live's
   Hello Elementor reset does this, and without it those lines were 6px taller. */
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -.5em; }
sub { bottom: -.25em; }

/* An anchor with no href is not a link (live's editors wrap addresses in
   <a> without one); it takes the surrounding text colour, as on live. */
a:not([href]):not([tabindex]),
a:not([href]):not([tabindex]):hover { color: inherit; text-decoration: none; }

:focus-visible {
  outline: 2px solid var(--mp-pink-light);
  outline-offset: 2px;
}

.mp-visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  clip-path: inset(50%);
  overflow: hidden; white-space: nowrap;
}

.mp-skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 1000;
  background: var(--mp-blue); color: #fff; padding: 12px 20px;
  border-radius: 0 0 var(--mp-radius) 0;
}
.mp-skip-link:focus { left: 0; }

/* Full-bleed bolt-* sections.
   Live forced every hand-written section edge-to-edge from a Customizer
   Additional-CSS rule (wp_custom_css post 28):
     section[id^="bolt-"], div[id^="bolt-"] { width:100vw; margin-inline: calc(50% - 50vw) }
   The ported sections render directly inside a full-width <main>, so they are
   already edge-to-edge; this reproduces the rule verbatim so a nested instance
   cannot be constrained by a parent. Each block's own .*-inner wrapper holds
   the real content width. */
main#main { width: 100%; }
/* Live's selector verbatim (section/div), plus the footer this theme renders
   as <footer id="bolt-footer">. A bare [id^="bolt-"] also caught every block
   H2 with a bolt-*-title id and made it 1440px wide. */
section[id^="bolt-"],
div[id^="bolt-"],
footer[id^="bolt-"] {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* shared layout helpers ---------------------------------------------------- */
.mp-inner { width: 100%; max-width: var(--mp-content); margin-inline: auto; padding-inline: var(--mp-gutter); }
.mp-inner--wide { max-width: var(--mp-wide); }
.mp-section { padding-block: var(--mp-section-y); }
.mp-surface-blue { background: var(--mp-surface-blue); color: var(--mp-ink); }
.mp-surface-pink { background: var(--mp-surface-pink); color: var(--mp-ink); }
.mp-surface-blue h1, .mp-surface-blue h2, .mp-surface-blue h3,
.mp-surface-pink h1, .mp-surface-pink h2, .mp-surface-pink h3 { color: var(--mp-ink); }

/* eyebrow badge: ★ OUR SERVICES ★ ----------------------------------------- */
.mp-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 18px; border-radius: var(--mp-radius-pill);
  border: 1px solid var(--mp-pink);
  background: linear-gradient(90deg, rgba(208,36,121,.15), rgba(37,52,153,.15));
  font-size: var(--mp-fs-eyebrow); font-weight: 600;
  letter-spacing: var(--mp-ls-eyebrow); text-transform: uppercase;
  color: var(--mp-ink-muted);
}
.mp-eyebrow i { color: var(--mp-gold); font-style: normal; }

/* buttons ------------------------------------------------------------------ */
.mp-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 26px; border: 0; border-radius: var(--mp-radius);
  font-family: var(--mp-font-ui); font-size: var(--mp-fs-body); font-weight: 600;
  color: #fff; cursor: pointer; box-shadow: var(--mp-sh-btn);
  transition: box-shadow .2s ease, transform .2s ease, background-color .2s ease;
  text-decoration: none;
}
.mp-btn:hover, .mp-btn:focus-visible { box-shadow: var(--mp-sh-btn-h); transform: translateY(-1px); text-decoration: none; }
.mp-btn--pink { background: var(--mp-pink); }
.mp-btn--pink:hover { background: var(--mp-pink-hot); }
.mp-btn--blue { background: var(--mp-blue-ui); }
.mp-btn--blue:hover { background: var(--mp-blue-ui-h); }
.mp-btn--gradient { background: linear-gradient(90deg, var(--mp-pink), var(--mp-blue)); }
.mp-btn--ghost { background: var(--mp-glass); border: 1px solid var(--mp-outline); }

@media (max-width: 1024px) {
  :root { --mp-section-y: 70px; --mp-fs-hero: 44px; --mp-fs-section: 36px; }
}
@media (max-width: 768px) {
  :root {
    --mp-section-y: 58px;
    --mp-fs-hero: var(--mp-fs-hero-m);
    --mp-fs-section: var(--mp-fs-section-m);
    --mp-header-h: var(--mp-header-h-m);
  }
}

:root {
  /* Elementor kit 253 globals. Editors pasted inline styles such as
     color: var( --e-global-color-secondary ) into live's text widgets; with
     these defined they resolve exactly as on live instead of being dropped. */
  --e-global-color-primary: #767676;   /* live kit #868686, darkened to pass AA (see --mp-ink-body) */
  --e-global-color-secondary: #292929;
  --e-global-color-text: #FFFFFF;
  --e-global-color-accent: #FFFFFF2B;
  --e-global-color-d49ac81: #3146CB;
  --e-global-color-332724a: #3AA9EA;
  --e-global-color-4d462f5: #DCDCDE;
  --e-global-color-cfa1f76: #F4F4F4;
  --e-global-color-854745e: #DBD7D6;
  --e-global-color-044b931: #0B0E11;
  --e-global-color-9286677: #253499;
  --e-global-color-a2c0d56: #3146CB;
  --e-global-color-4ca25af: #3AA9EA;
  --e-global-color-c974835: #88218E;
  --e-global-color-27ec661: #9F52A3;
  --e-global-color-bb26a0b: #DBD7D6;
  --e-global-color-e8877cf: #D02479;
  --e-global-color-51a8205: #F17AB5;
  --e-global-typography-primary-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-primary-font-size: 50px;
  --e-global-typography-primary-line-height: 1.2em;
  --e-global-typography-primary-letter-spacing: -1px;
  --e-global-typography-primary-font-weight: 700;
  --e-global-typography-secondary-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-secondary-font-size: 37px;
  --e-global-typography-secondary-line-height: 1.2em;
  --e-global-typography-secondary-letter-spacing: -0.5px;
  --e-global-typography-secondary-font-weight: 700;
  --e-global-typography-text-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-text-font-size: 16px;
  --e-global-typography-text-font-weight: 400;
  --e-global-typography-accent-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-accent-font-size: 12px;
  --e-global-typography-accent-line-height: 1em;
  --e-global-typography-accent-letter-spacing: 1px;
  --e-global-typography-accent-font-weight: 700;
  --e-global-typography-b2ce6af-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-b2ce6af-font-size: 16px;
  --e-global-typography-b2ce6af-line-height: 1.5em;
  --e-global-typography-b2ce6af-font-weight: 400;
  --e-global-typography-69c152f-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-69c152f-font-size: 14px;
  --e-global-typography-69c152f-line-height: 1.5em;
  --e-global-typography-69c152f-font-weight: 400;
  --e-global-typography-520c191-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-520c191-font-size: 16px;
  --e-global-typography-520c191-line-height: 1.5em;
  --e-global-typography-520c191-font-weight: 600;
  --e-global-typography-583e54c-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-583e54c-font-size: 50px;
  --e-global-typography-583e54c-line-height: 1.2em;
  --e-global-typography-583e54c-letter-spacing: -1px;
  --e-global-typography-583e54c-font-weight: 700;
  --e-global-typography-5d167aa-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-5d167aa-font-size: 37px;
  --e-global-typography-5d167aa-line-height: 1.2em;
  --e-global-typography-5d167aa-letter-spacing: -0.5px;
  --e-global-typography-5d167aa-font-weight: 700;
  --e-global-typography-d3dae9a-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-d3dae9a-font-size: 28px;
  --e-global-typography-d3dae9a-line-height: 1.3em;
  --e-global-typography-d3dae9a-font-weight: 700;
  --e-global-typography-83682a1-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-83682a1-font-size: 21px;
  --e-global-typography-83682a1-line-height: 1.3em;
  --e-global-typography-83682a1-font-weight: 700;
  --e-global-typography-7044a64-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-7044a64-font-size: 16px;
  --e-global-typography-7044a64-line-height: 1.4em;
  --e-global-typography-7044a64-font-weight: 700;
  --e-global-typography-84ca66e-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-84ca66e-font-size: 14px;
  --e-global-typography-84ca66e-letter-spacing: 1px;
  --e-global-typography-84ca66e-font-weight: 700;
  --e-global-typography-112b6c4-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-112b6c4-font-size: 13px;
  --e-global-typography-112b6c4-font-weight: 400;
  --e-global-typography-a435f28-font-family: "Plus Jakarta Sans", var(--mp-font-ui);
  --e-global-typography-a435f28-font-size: 67px;
  --e-global-typography-a435f28-line-height: 1em;
  --e-global-typography-a435f28-letter-spacing: -1.5px;
  --e-global-typography-a435f28-font-weight: 800;
  --mp-font-kit: "Plus Jakarta Sans", var(--mp-font-ui);
}

/* Elementor kit line-heights inside ported bolt-* sections. Live's hand-written
   block CSS sets family and size but rarely line-height, so the kit supplies it:
   body 1.5em (inherited as a fixed 24px), h2 1.2em, h3/h4 1.3em. Staging's base
   1.12 made card titles and step lists shorter than live. Specificity 0,1,1:
   beats base h1-h6, loses to any #bolt-x rule that sets its own value. */
section[id^="bolt-"] { line-height: 24px; }
section[id^="bolt-"] :where(h2) { line-height: 1.2; }
section[id^="bolt-"] :where(h3, h4) { line-height: 1.3; }
@media (max-width: 1024px) { section[id^="bolt-"] { line-height: 22.5px; } }
@media (max-width: 767px) { section[id^="bolt-"] { line-height: 21px; } }

/* Elementor kit typography inside ported bolt-* sections, beyond line-height.
   The hand-written block CSS rarely sets these, so on live the kit supplies
   them: the body font (Plus Jakarta Sans), h1 -1px and h2 -0.5px tracking, and
   h3 28px / h4 21px at 700 (live computes 700; DM Serif titles are faux-bolded
   on live too). Same 0,1,1 specificity as the line-heights: any #bolt-x rule
   that sets its own value still wins. */
section[id^="bolt-"] { font-family: var(--mp-font-kit); }
section[id^="bolt-"] :where(h1) { letter-spacing: -1px; }
section[id^="bolt-"] :where(h2) { letter-spacing: -.5px; }
section[id^="bolt-"] :where(h3) { font-size: 28px; font-weight: 700; }
section[id^="bolt-"] :where(h4) { font-size: 21px; font-weight: 700; }
/* the kit's tablet sizes equal its mobile ones (d3dae9a 20px, 83682a1 16px) */
@media (max-width: 1024px) {
  section[id^="bolt-"] :where(h3) { font-size: 20px; }
  section[id^="bolt-"] :where(h4) { font-size: 16px; }
}

/* Elementor's trailing button icon: sized by the label (Elementor icons inherit
   the button font-size), gap from the widget's icon_indent. */
.mp-btn__icon { display: inline-flex; flex: 0 0 auto; width: 1em; height: 1em; }
.mp-btn__icon svg { width: 100%; height: 100%; }

/* the kit body size below 1025px, which live's hand-written blocks inherit
   wherever they set none (b2ce6af: 15px tablet, 14px phone) */
@media (max-width: 1024px) { section[id^="bolt-"] { font-size: 15px; } }
@media (max-width: 767px) { section[id^="bolt-"] { font-size: 14px; } }

/* Spacer rows (containers that held only Elementor spacers), with live's
   per-device height and visibility. */
.mp-block--spacer { height: var(--mp-sp-h, 0px); }
@media (max-width: 767px) { .mp-block--spacer { height: var(--mp-sp-hm, var(--mp-sp-h, 0px)); } }
@media (min-width: 1025px) { .mp-spacer--hide-d { display: none; } }
@media (min-width: 768px) and (max-width: 1024px) { .mp-spacer--hide-t { display: none; } }
@media (max-width: 767px) { .mp-spacer--hide-m { display: none; } }
