/* Hans Schumann Coaching — shared static stylesheet (design tokens + chrome). Generated for deployment. */
/* Maven Pro — the Hans Schumann Coaching brand typeface.
   A geometric humanist sans with rounded, friendly terminals that still
   reads crisp and corporate. Used across the whole identity. */

@font-face {
  font-family: "Maven Pro";
  src: url("assets/fonts/MavenPro-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Maven Pro";
  src: url("assets/fonts/MavenPro-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Maven Pro";
  src: url("assets/fonts/MavenPro-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Maven Pro";
  src: url("assets/fonts/MavenPro-Black.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

/* ============================================================
   COLOURS — Hans Schumann Coaching
   Fresh, crisp, professional. A confident City blue anchored by a
   deep navy, warmed by a considered brown pair, and lifted by a
   fresh growth green. Neutral grey keeps everything clean.
   ============================================================ */

:root {
  /* ---- Brand palette (raw, as supplied) ---- */
  --hs-blue: #0653a5;        /* primary — confident, corporate */
  --hs-blue-dark: #2a3c58;   /* deep navy — headlines, ink */
  --hs-grey: #ebebed;        /* cool light grey — surfaces */
  --hs-brown: #72534b;       /* warm secondary — grounding */
  --hs-brown-light: #bd8b80; /* soft clay — warm accent */
  --hs-green: #85c54c;       /* fresh growth — positive accent */

  /* ---- Blue scale (derived from --hs-blue) ---- */
  --blue-50:  #eef4fb;
  --blue-100: #d6e6f6;
  --blue-200: #a9c8ea;
  --blue-300: #6fa2da;
  --blue-400: #3a7bc4;
  --blue-500: #0653a5;  /* = --hs-blue */
  --blue-600: #064a92;
  --blue-700: #073e78;
  --blue-800: #0a3460;
  --blue-900: #0c2a4c;

  /* ---- Navy / ink scale (derived from --hs-blue-dark) ---- */
  --navy-50:  #f4f6f9;
  --navy-100: #e5e9f0;
  --navy-200: #c4cdda;
  --navy-300: #97a4ba;
  --navy-400: #5c6d8a;
  --navy-500: #2a3c58;  /* = --hs-blue-dark */
  --navy-600: #243349;
  --navy-700: #1d2939;
  --navy-800: #161e2b;
  --navy-900: #0f141d;

  /* ---- Neutral / grey scale ---- */
  --neutral-0:   #ffffff;
  --neutral-50:  #fafafb;
  --neutral-100: #f4f4f6;
  --neutral-150: #ebebed;  /* = --hs-grey */
  --neutral-200: #e0e0e4;
  --neutral-300: #cbcbd2;
  --neutral-400: #a3a3ad;
  --neutral-500: #7c7c87;
  --neutral-600: #5b5b65;
  --neutral-700: #43434b;
  --neutral-800: #2c2c32;
  --neutral-900: #1a1a1e;

  /* ---- Warm accents ---- */
  --clay-300: #d8b4ab;
  --clay-400: #bd8b80;  /* = --hs-brown-light */
  --clay-500: #72534b;  /* = --hs-brown */
  --clay-600: #5e433c;

  /* ---- Green scale ---- */
  --green-100: #e9f5db;
  --green-200: #cfe9b0;
  --green-400: #9ad063;
  --green-500: #85c54c;  /* = --hs-green */
  --green-600: #6aa838;
  --green-700: #538529;

  /* ---- Semantic: status ---- */
  --color-success: var(--green-600);
  --color-success-surface: var(--green-100);
  --color-info: var(--blue-500);
  --color-info-surface: var(--blue-50);
  --color-warning: #c9881f;
  --color-warning-surface: #fbf1dc;
  --color-danger: #c0392b;
  --color-danger-surface: #fbe7e4;

  /* ---- Semantic: text ---- */
  --text-strong: var(--navy-500);       /* headlines */
  --text-body: var(--navy-700);         /* body copy */
  --text-muted: var(--neutral-600);     /* secondary */
  --text-subtle: var(--neutral-500);    /* captions, meta */
  --text-on-dark: #ffffff;
  --text-on-dark-muted: rgba(255, 255, 255, 0.74);
  --text-link: var(--blue-500);
  --text-brand: var(--blue-500);

  /* ---- Semantic: surfaces ---- */
  --surface-page: #ffffff;
  --surface-muted: var(--neutral-100);
  --surface-grey: var(--neutral-150);
  --surface-card: #ffffff;
  --surface-navy: var(--navy-500);
  --surface-navy-deep: var(--navy-700);
  --surface-blue: var(--blue-500);
  --surface-clay-soft: #f4ece9;

  /* ---- Semantic: borders ---- */
  --border-subtle: var(--neutral-200);
  --border-default: var(--neutral-300);
  --border-strong: var(--navy-300);
  --border-on-dark: rgba(255, 255, 255, 0.18);

  /* ---- Focus ring ---- */
  --focus-ring: rgba(6, 83, 165, 0.35);
}

/* ============================================================
   TYPOGRAPHY — Hans Schumann Coaching
   One typeface: Maven Pro, across the whole identity. Black (900)
   for big confident statements, Bold for headings, Medium for UI,
   Regular for body. Generous line-height, gentle negative tracking
   on large display sizes.
   ============================================================ */

:root {
  /* ---- Families ---- */
  --font-sans: "Maven Pro", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --font-body: "Maven Pro", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --font-display: "Maven Pro", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  /* Logo lockup only — matches the supplied wordmark artwork (Montserrat). */
  --font-logo: "Montserrat", "Maven Pro", system-ui, sans-serif;

  /* ---- Weights ---- */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-bold: 700;
  --weight-black: 900;

  /* ---- Type scale (1.250 major-third-ish, tuned) ---- */
  --text-3xs: 0.6875rem;  /* 11px — micro labels */
  --text-2xs: 0.75rem;    /* 12px — meta, eyebrows */
  --text-xs:  0.8125rem;  /* 13px */
  --text-sm:  0.9375rem;  /* 15px — small UI */
  --text-base: 1.0625rem; /* 17px — body default */
  --text-md:  1.1875rem;  /* 19px — lead body */
  --text-lg:  1.375rem;   /* 22px */
  --text-xl:  1.75rem;    /* 28px */
  --text-2xl: 2.25rem;    /* 36px */
  --text-3xl:clamp(1.75rem, 5.5vw, 2.875rem);   /* 46px */
  --text-4xl:clamp(2rem, 6.5vw, 3.625rem);   /* 58px */
  --text-5xl:clamp(3rem, 12vw, 4.5rem);     /* 72px — hero */

  /* ---- Line heights ---- */
  --leading-tight: 1.08;
  --leading-snug: 1.2;
  --leading-heading: 1.25;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  /* ---- Letter spacing ---- */
  --tracking-tighter: -0.02em;  /* display */
  --tracking-tight: -0.01em;    /* headings */
  --tracking-normal: 0em;
  --tracking-wide: 0.04em;
  --tracking-eyebrow: 0.14em;   /* uppercase eyebrows */
}

/* ============================================================
   SPACING, RADII, ELEVATION, LAYOUT — Hans Schumann Coaching
   Calm 4px base grid. Restrained radii and soft, cool-grey
   shadows for a clean corporate feel — nothing heavy.
   ============================================================ */

:root {
  /* ---- Spacing (4px base) ---- */
  --space-0: 0;
  --space-1: 0.25rem;   /* 4 */
  --space-2: 0.5rem;    /* 8 */
  --space-3: 0.75rem;   /* 12 */
  --space-4: 1rem;      /* 16 */
  --space-5: 1.5rem;    /* 24 */
  --space-6: 2rem;      /* 32 */
  --space-7: 2.5rem;    /* 40 */
  --space-8: 3rem;      /* 48 */
  --space-9: 4rem;      /* 64 */
  --space-10: 5rem;     /* 80 */
  --space-11: 6.5rem;   /* 104 */
  --space-12: 8rem;     /* 128 */

  /* ---- Radii ---- */
  --radius-xs: 3px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* ---- Borders ---- */
  --border-width: 1px;
  --border-width-thick: 2px;

  /* ---- Elevation — cool, soft, low-spread ---- */
  --shadow-xs: 0 1px 2px rgba(42, 60, 88, 0.06);
  --shadow-sm: 0 1px 3px rgba(42, 60, 88, 0.08), 0 1px 2px rgba(42, 60, 88, 0.04);
  --shadow-md: 0 4px 12px rgba(42, 60, 88, 0.10), 0 2px 4px rgba(42, 60, 88, 0.05);
  --shadow-lg: 0 12px 28px rgba(42, 60, 88, 0.12), 0 4px 8px rgba(42, 60, 88, 0.06);
  --shadow-xl: 0 24px 50px rgba(42, 60, 88, 0.16), 0 8px 16px rgba(42, 60, 88, 0.07);
  --shadow-focus: 0 0 0 3px var(--focus-ring);

  /* ---- Layout ---- */
  --container-sm: 720px;
  --container-md: 960px;
  --container-lg: 1140px;
  --container-xl: 1320px;
  --gutter: var(--space-5);

  /* ---- Motion ---- */
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);   /* @kind other */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);       /* @kind other */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);   /* @kind other */
  --duration-fast: 140ms;                          /* @kind other */
  --duration-base: 220ms;                          /* @kind other */
  --duration-slow: 360ms;                          /* @kind other */
}

/* ============================================================
   BASE — element defaults built on the tokens.
   Applies brand typography and sensible resets so any consuming
   page inherits the Hans Schumann look from the <body> down.
   ============================================================ */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: var(--weight-regular);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  color: var(--text-strong);
  font-weight: var(--weight-bold);
  line-height: var(--leading-heading);
  letter-spacing: var(--tracking-tight);
  text-wrap: balance;
}

h1 { font-size: var(--text-4xl); font-weight: var(--weight-black); letter-spacing: var(--tracking-tighter); }
h2 { font-size: var(--text-3xl); font-weight: var(--weight-black); letter-spacing: var(--tracking-tighter); }
h3 { font-size: var(--text-2xl); }
h4 { font-size: var(--text-xl); }
h5 { font-size: var(--text-lg); }
h6 { font-size: var(--text-md); }

p {
  margin: 0;
  text-wrap: pretty;
}

a {
  color: var(--text-link);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-standard);
}
a:hover { color: var(--blue-700); }

strong, b { font-weight: var(--weight-bold); }

small { font-size: var(--text-sm); }

/* Eyebrow / kicker label */
.hs-eyebrow {
  font-size: var(--text-2xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--text-brand);
}

::selection {
  background: var(--blue-200);
  color: var(--navy-700);
}

:focus-visible {
  outline: none;
  box-shadow: var(--shadow-focus);
  border-radius: var(--radius-sm);
}


/* ===== Shared chrome (header, dropdowns, footer, buttons, reveal) ===== */
.hs-container{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-6);}
.reg{font-size:0.62em;vertical-align:super;line-height:0;font-weight:inherit;}
.hs-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,0.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:background var(--duration-base) ease,border-color var(--duration-base) ease;}
.hs-header.scrolled{background:rgba(255,255,255,0.94);border-bottom-color:var(--border-subtle);}
.hs-header-inner{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-6);height:76px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);}
.hs-nav{display:flex;align-items:center;gap:var(--space-6);}
.hs-menus{display:flex;align-items:center;gap:var(--space-6);}
.hs-menu{position:relative;}
.hs-nav-btn{display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:var(--space-3) 0;font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-body);cursor:pointer;white-space:nowrap;transition:color var(--duration-fast) var(--ease-standard);}
.hs-nav-btn:hover,.hs-menu:hover .hs-nav-btn,.hs-menu:focus-within .hs-nav-btn{color:var(--blue-600);}
.hs-nav-chevron{transition:transform var(--duration-base) var(--ease-standard);}
.hs-menu:hover .hs-nav-chevron,.hs-menu:focus-within .hs-nav-chevron{transform:rotate(180deg);}
.hs-dropdown{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-6px);min-width:256px;padding:var(--space-3);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity var(--duration-base) ease,transform var(--duration-base) ease,visibility var(--duration-base);z-index:60;}
.hs-menu:hover .hs-dropdown,.hs-menu:focus-within .hs-dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.hs-dropdown-arrow{position:absolute;top:-6px;left:50%;margin-left:-6px;width:12px;height:12px;background:var(--surface-card);border-left:1px solid var(--border-subtle);border-top:1px solid var(--border-subtle);transform:rotate(45deg);}
.hs-dropdown-link{display:block;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-body);text-decoration:none;border-radius:var(--radius-sm);white-space:nowrap;transition:background var(--duration-fast) ease,color var(--duration-fast) ease;}
.hs-dropdown-link:hover{background:var(--surface-grey);color:var(--blue-600);}
.hs-dropdown-link.current{color:var(--blue-600);background:var(--blue-50);}
.btn-green{display:inline-flex;align-items:center;justify-content:center;padding:0.875rem 1.75rem;background:var(--green-500);color:#1d2939;border:none;border-radius:var(--radius-pill);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-bold);cursor:pointer;text-decoration:none;transition:background var(--duration-base) ease;white-space:nowrap;}
.btn-green:hover{background:var(--green-600);}
.btn-green.sm{padding:0.6rem 1.2rem;font-size:var(--text-sm);}
.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:0.875rem 1.75rem;background:var(--blue-500);color:#fff;border:none;border-radius:var(--radius-pill);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-bold);cursor:pointer;text-decoration:none;transition:background var(--duration-base) ease;white-space:nowrap;}
.btn-primary:hover{background:var(--blue-700);}
.hs-menu-toggle{display:none;background:none;border:none;padding:6px;cursor:pointer;color:var(--text-body);border-radius:var(--radius-sm);flex:none;align-items:center;justify-content:center;transition:color var(--duration-fast) ease;}
.hs-menu-toggle:hover{color:var(--blue-600);}
.hs-mobile-nav{display:none;position:fixed;top:76px;left:0;right:0;bottom:0;background:var(--surface-card);overflow-y:auto;z-index:49;border-top:1px solid var(--border-subtle);}
.hs-mobile-nav.open{display:block;}
.hs-mobile-nav-inner{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6);}
.hs-mobile-nav-section{display:flex;flex-direction:column;}
.hs-mobile-nav-label{font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:0.14em;text-transform:uppercase;color:var(--blue-500);padding-bottom:var(--space-3);margin-bottom:var(--sp1);border-bottom:1px solid var(--border-subtle);}
.hs-mobile-nav-link{display:block;padding:var(--space-3) 0;font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--text-body);text-decoration:none;border-bottom:1px solid var(--border-subtle);transition:color var(--duration-fast) ease;}
.hs-mobile-nav-link:last-child{border-bottom:none;}
.hs-mobile-nav-link:hover{color:var(--blue-600);}
.hs-footer{background:var(--surface-navy-deep);color:var(--text-on-dark);}
.hs-footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.1fr;gap:var(--space-7);max-width:var(--container-xl);margin:0 auto;padding:var(--space-9) var(--space-6) var(--space-6);}
.hs-footer-col-label{font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:0.14em;text-transform:uppercase;color:#6fa2da;margin-bottom:var(--space-4);}
.hs-footer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3);}
.hs-footer-links a{color:var(--text-on-dark-muted);font-size:var(--text-sm);text-decoration:none;transition:color var(--duration-fast) ease;}
.hs-footer-links a:hover{color:#fff;}
.hs-social{display:flex;gap:var(--space-3);margin-top:var(--space-6);}
.hs-social a{display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:var(--radius-circle);color:#fff;border:1px solid var(--border-on-dark);text-decoration:none;transition:background var(--duration-base) ease,border-color var(--duration-base) ease,transform var(--duration-base) ease;}
.hs-social a:hover{background:var(--blue-600);border-color:var(--blue-600);transform:translateY(-2px);}
.hs-footer-base{border-top:1px solid var(--border-on-dark);}
.hs-footer-base-inner{max-width:var(--container-xl);margin:0 auto;padding:var(--space-4) var(--space-6);display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;color:var(--text-on-dark-muted);font-size:var(--text-xs);}
.hs-footer-base-inner a{color:var(--text-on-dark-muted);text-decoration:none;}
.hs-footer-base-inner a:hover{color:#fff;}
.hs-footer-legal{display:inline-flex;align-items:center;gap:var(--space-3);}
@media (prefers-reduced-motion: no-preference){@keyframes hsRise{from{transform:translateY(14px)}to{transform:none}}.reveal{opacity:1}.reveal.in{animation:hsRise 600ms var(--ease-out) forwards}}
@media (max-width:980px){.hs-footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:680px){.hs-menus{display:none;}.hs-nav .btn-green{display:none;}.hs-menu-toggle{display:flex;}.hs-footer-grid{grid-template-columns:1fr;}}
/* Ask Hans AI band */
.hs-ai-entry{max-width:820px;margin:var(--space-8) auto 0;display:flex;align-items:center;gap:var(--space-5);background:var(--blue-50);border:1px solid var(--blue-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5) var(--space-6);}
.hs-ai-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius-circle);background:var(--blue-600);color:#fff;}
.hs-ai-copy{flex:1;min-width:0;}
.hs-ghost-btn{flex:none;display:inline-flex;align-items:center;gap:7px;padding:0.7rem 1.25rem;border:1.5px solid var(--blue-600);color:var(--blue-600);background:#fff;border-radius:var(--radius-pill);font-weight:var(--weight-bold);font-size:var(--text-sm);cursor:pointer;text-decoration:none;transition:background var(--duration-base) ease,color var(--duration-base) ease;}
.hs-ghost-btn:hover{background:var(--blue-600);color:#fff;}
@media (max-width:640px){.hs-ai-entry{flex-direction:column;text-align:center;}.hs-ai-copy{text-align:center;}}
/* Aliases for flattened DS-component inline styles */
:root{--font-sans:var(--font-body);}

/* Mobile: keep large headings and hero columns from overflowing narrow screens */
h1,h2,h3{overflow-wrap:break-word;}
@media (max-width:980px){[class*="hero-grid"]>*{min-width:0;}}

/* MOBILE SAFETY NET */
@media (max-width: 760px){
  /* Collapse bespoke multi-column section layouts to a single column on phones */
  [class*="grid"], [class*="2col"], [class*="3col"], [class*="4col"],
  [class*="two-col"], [class*="-cols"], [class*="split"], [class*="-compare"],
  main [style*="display:grid"], main [style*="display: grid"],
  .ccx-helps, .eg-types, .lc-compare, .lsp-benefits, .lsp-steps, .lsp-gallery,
  .ct-channels, .ec-loc-grid {
    grid-template-columns: 1fr !important;
  }
  /* Let grid children shrink so long text can't force a track wider than the screen */
  [class*="grid"] > *, [class*="2col"] > *, [class*="3col"] > *,
  [class*="two-col"] > *, [class*="split"] > *,
  main [style*="display:grid"] > *, main [style*="display: grid"] > *,
  main [style*="display:flex"] > *, main [style*="display: flex"] > * { min-width: 0; }
  /* Un-pin side images that are sticky in a now-stacked layout (prevents overlap) */
  [class*="grid"] > [style*="sticky"], [class*="col"] > [style*="sticky"] { position: static !important; }
  /* Cap any inline fixed-width box (e.g. a 420px image panel in a flex hero) to the screen */
  main [style*="width:"] { max-width: 100% !important; }
  /* Let flex rows wrap so a fixed media box drops below the text instead of overflowing */
  main [style*="display:flex"], main [style*="display: flex"] { flex-wrap: wrap; }
  /* Let inline no-wrap rows (e.g. stat strips) wrap instead of clipping */
  [style*="flex-wrap:nowrap"], [style*="flex-wrap: nowrap"] { flex-wrap: wrap !important; }
  /* Long CTA buttons: allow wrapping so they don't spill out of narrow cards
     (!important to beat the duplicated inline <style> on some pages) */
  .btn-green, .btn-primary, .btn-secondary { white-space: normal !important; }
  /* Large CTA buttons: scale down on phones so long labels (e.g. "Book a Free
     Discovery Call") sit on one line like the section CTAs, instead of wrapping
     to two lines in narrow hero cards. !important beats the per-page inline
     .lg rule (which sets 22px). */
  .btn-green.lg, .btn-primary.lg, .btn-secondary.lg {
    font-size: 1.125rem !important; /* 18px — fits long CTA labels on one line in narrow hero cards */
    padding: 0.9rem 1.3rem !important;
  }
  /* Text must wrap on phones — some headings/subheads are set nowrap for a
     one-line desktop look, which clips on mobile */
  h1, h2, h3, h4, h5, p, li,
  [class*="eyebrow"], [class*="-sub"], [class*="-lead"] { white-space: normal !important; }
  /* Shrink oversized desktop spacing on phones so nested section+container+card
     padding stops crushing content into a narrow column */
  :root {
    --space-6: 1.25rem !important;  /* 32 -> 20 */
    --space-7: 1.5rem !important;   /* 40 -> 24 */
    --space-8: 2rem !important;     /* 48 -> 32 */
    --space-9: 2rem !important;     /* 64 -> 32 */
    --space-10: 2.5rem !important;  /* 80 -> 40 */
    --space-11: 3rem !important;    /* 104 -> 48 */
  }
  /* Per-page hero order on mobile */
  .fa-hero-media { order: 2 !important; }                        /* Free AI: lead with the title, not the chat */
  main:has(.mc-banner) { display: flex; flex-direction: column; }
  main:has(.mc-banner) > section:has(.mc-banner) { order: -1; }  /* Masterclass: cover image above the fold */
}

/* Click-to-load map placeholders — defer heavy Google Maps embeds until requested */
.hs-map-facade{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;width:100%;min-height:120px;background:var(--surface-grey);color:var(--text-muted);cursor:pointer;border:0;font:inherit;padding:1rem;text-align:center;filter:none;transition:background .15s ease,color .15s ease;}
.ct-venue-map>.hs-map-facade{height:100%;}
.hs-map-facade:hover,.hs-map-facade:focus-visible{background:var(--blue-50);color:var(--blue-600);}
.hs-map-facade svg{opacity:.85;}
.hs-map-facade span{font-size:.85rem;font-weight:600;}

/* Contact venue map: clean 'Open in Google Maps' link (holds a static map image when provided) */
.ct-venue-map>.ct-map-cta{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;width:100%;height:100%;background:var(--surface-grey);color:var(--blue-600);text-decoration:none;font-weight:600;font-size:.85rem;text-align:center;transition:background .15s ease,color .15s ease;}
.ct-venue-map>.ct-map-cta:hover,.ct-venue-map>.ct-map-cta:focus-visible{background:var(--blue-50);color:var(--blue-700);}
.ct-venue-map>.ct-map-cta svg{opacity:.85;}

/* Static map image inside the venue map link */
.ct-venue-map>.ct-map-cta--img{padding:0;background:none;display:block;}
.ct-venue-map>.ct-map-cta--img img{width:100%;height:100%;object-fit:cover;display:block;}

/* Static map image inside the booking-page venue map link */
.ec-loc-map--img{padding:0;overflow:hidden;filter:none;}
.ec-loc-map--img img{width:100%;height:100%;object-fit:cover;display:block;}
