/* MZG shared layout, navigation, controls and footer. */
.preview-note{padding:8px 6%;background:#e4dbcf;font-size:.75rem;letter-spacing:.1em;text-align:center}
.preview-note span{letter-spacing:0;margin-left:18px;color:#575148}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:30px}
.skip-link{position:fixed;top:-100px;left:20px;z-index:100;padding:12px;background:var(--color-surface);color:var(--color-text)}
.skip-link:focus{top:10px}
.brand{width:204px;flex-shrink:0}
.brand img{width:100%;height:auto;object-fit:contain}
.site-header nav{display:flex;gap:30px;font-size:.875rem}
.site-header nav .primary-menu{display:flex;gap:inherit;align-items:center;list-style:none;margin:0;padding:0}
.site-header nav .primary-menu li{margin:0;padding:0}
.site-header nav a:hover,.text-link:hover{color:var(--color-accent);text-decoration:underline;text-underline-offset:6px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;background:var(--color-primary);color:var(--color-surface);padding:15px 25px;border-radius:var(--radius-pill);font-size:.9rem;font-weight:500;line-height:1.4;border:1px solid var(--color-primary);transition:background var(--motion-fast),transform var(--motion-fast)}
.button:hover{background:var(--color-accent);transform:translateY(-2px)}
.button span{font-size:1.1rem}
.button.light{background:var(--color-surface-soft);color:var(--color-text);border-color:var(--color-surface-soft)}
.button.outline{background:transparent;color:var(--color-text);border-color:var(--color-border)}
.menu-toggle{display:none}
.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.17em;margin-bottom:22px;color:var(--color-accent)}
.text-link{font-size:.875rem;border-bottom:1px solid var(--color-border);padding-bottom:4px}
.section{max-width:var(--container-main);margin:auto;padding:var(--section-space) 3%}
.section-heading{display:flex;justify-content:space-between;gap:60px;align-items:flex-end;margin-bottom:46px}
.section-heading>p{max-width:340px}
.footer{max-width:var(--container-main);margin:auto;padding:60px 3% 25px}
.footer-top{display:flex;justify-content:space-between;gap:40px}
.footer-brand{max-width:230px}
.footer-brand img{width:185px;height:auto;margin-bottom:18px}
.footer p{font-size:.8rem}
.footer-links{display:flex;gap:25px;font-size:.875rem}
.footer-legal{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:30px;padding-top:25px;border-top:1px solid var(--color-border);font-size:.8rem}
.footer-legal a,.footer-legal button{text-decoration:underline;text-underline-offset:4px;color:var(--color-text-muted);background:none;border:0;padding:6px 0;font:inherit}
.footer-legal button:disabled{opacity:.6;cursor:not-allowed;text-decoration:none}
.footer-legal+.footer-bottom{margin-top:22px}
.mzg-not-found{min-height:55vh;padding-top:clamp(90px,12vw,160px);padding-bottom:clamp(90px,12vw,160px)}
.mzg-not-found h1{max-width:800px;font-size:clamp(2.8rem,5vw,5rem)}
.mzg-not-found>p:not(.eyebrow){margin:20px 0 30px;color:var(--color-text-muted)}
.footer-bottom{border-top:1px solid var(--color-border);display:flex;justify-content:space-between;gap:20px;margin-top:40px;padding-top:22px;font-size:.75rem;color:var(--color-text-muted)}
.footer-bottom button{border:0;background:none;font-size:.75rem;color:var(--color-text-muted);text-decoration:underline;padding:0}
dialog{max-width:550px;width:calc(100% - 40px);background:var(--color-surface-soft);color:var(--color-text);border:1px solid var(--color-border);border-radius:10px;padding:35px}
dialog::backdrop{background:#24201599}
dialog h2{font-size:2rem}
dialog p{margin:20px 0;font-size:.95rem}
.mobile-cta{display:none}
@media(max-width:1000px){.site-header{gap:20px}
.brand{width:170px}
.site-header nav{gap:16px}
.header-cta{gap:12px;padding:12px 18px}
.section{padding:var(--section-space-tablet) 5%}
.footer{padding-left:5%;padding-right:5%}}
@media(max-width:760px){.preview-note{font-size:.65rem;padding:8px 12px}
.preview-note span{display:block;font-size:.7rem;margin:2px 0 0}
.site-header{flex-wrap:wrap;position:relative}
.brand{width:168px}
.menu-toggle{display:flex;align-items:center;gap:12px;background:none;border:1px solid var(--color-border);border-radius:30px;padding:8px 15px;font-size:.8rem}
.header-cta{display:none}
.site-header nav{display:none;position:absolute;left:3%;right:3%;top:82px;flex-direction:column;padding:25px;background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--header-menu-shadow)}
.site-header nav.open{display:flex}
.site-header nav .primary-menu{flex-direction:column;align-items:flex-start;gap:20px}
.section{padding:var(--section-space-mobile) 6%}
.section-heading{display:block;margin-bottom:30px}
.section-heading>p{margin-top:23px;max-width:100%}
.eyebrow{font-size:.7rem;margin-bottom:16px}
.footer{padding:45px 6% 100px}
.footer-top{flex-direction:column;gap:28px}
.footer-links{flex-wrap:wrap;gap:14px 25px}
.footer-legal{gap:8px 20px}
.footer-bottom{flex-direction:column;gap:10px;margin-top:30px}
.mobile-cta{position:fixed;bottom:14px;left:5%;right:5%;display:flex;z-index:var(--layer-sticky-cta);box-shadow:var(--header-mobile-cta-shadow);padding:13px 20px}
.mobile-cta.hidden{display:none}}

/* Shared Header contract: base structure above; modifiers own composition.
   The current inset/sticky presentation is one modifier, leaving room for
   standard, full-width floating, and transparent-overlay variants later. */
.site-header--inset-sticky{position:sticky;top:14px;z-index:var(--layer-header);max-width:var(--container-header);width:calc(100% - 48px);height:88px;margin:14px auto 0;padding:0 30px;border:1px solid var(--header-border);border-radius:var(--radius-header);background:var(--header-background);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow-header);transition:box-shadow var(--motion-normal) ease,background var(--motion-normal) ease,border-color var(--motion-normal) ease}
.site-header--inset-sticky.is-scrolled{background:var(--header-background-scrolled);border-color:var(--header-border-scrolled);box-shadow:var(--shadow-header-raised)}
.site-header--inset-sticky .brand{width:170px;flex-shrink:0}
.site-header--inset-sticky .header-cta{font-size:.875rem;padding:13px 19px;gap:12px;white-space:nowrap}
.site-header--inset-sticky nav{gap:24px}
.site-header--inset-sticky nav a{position:relative}
.site-header--inset-sticky nav a:hover{color:var(--header-nav-hover)}
.site-header--inset-sticky nav a[aria-current=page]{text-decoration:none}
.site-header--inset-sticky nav a[aria-current=page]::after{content:'';height:2px;position:absolute;bottom:-9px;left:0;right:0;background:var(--header-nav-current)}
.mobile-cta{font-size:.9rem}
@media(max-width:1000px){
  .site-header--inset-sticky{padding:0 22px;width:calc(100% - 32px);gap:16px}
  .site-header--inset-sticky .brand{width:160px}
  .site-header--inset-sticky nav{gap:18px;font-size:.8rem}
  .site-header--inset-sticky .header-cta{padding:12px 17px;font-size:.8rem;gap:12px}
}
@media(max-width:1000px) and (min-width:761px){
  .site-header--inset-sticky{gap:12px;padding:0 18px}
  .site-header--inset-sticky .brand{width:135px}
  .site-header--inset-sticky nav{gap:13px;font-size:.8rem}
  .site-header--inset-sticky .header-cta{font-size:.75rem;padding:12px 14px;gap:8px}
}
@media(max-width:760px){
  html{scroll-padding-top:110px}
  .site-header--inset-sticky{top:9px;width:calc(100% - 24px);height:73px;margin-top:10px;padding:0 17px;border-radius:10px}
  .site-header--inset-sticky .brand{width:150px}
  .site-header--inset-sticky nav{top:79px;left:0;right:0;padding:22px;gap:20px;font-size:.95rem;background:var(--header-background-menu)}
  .site-header--inset-sticky nav.open{max-height:calc(100dvh - 115px);overflow:auto}
  .site-header--inset-sticky nav a[aria-current=page]::after{display:none}
  .site-header--inset-sticky nav a[aria-current=page]{font-weight:600}
}
@media(prefers-reduced-motion:reduce){.site-header--inset-sticky{transition:none}}

/* Reusable floating full-width Header. The optional over-hero state changes
   only the initial surface; internal pages retain the solid surface. */
:root{--header-floating-height:88px}
.site-header--floating-full{position:sticky;top:14px;z-index:var(--layer-header);width:calc(100% - var(--page-gutter) - var(--page-gutter));height:var(--header-floating-height);margin:14px auto 0;padding:0 30px;border:1px solid var(--header-border);border-radius:var(--radius-header);background:var(--header-background-solid);color:var(--header-text);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow-header);transition:box-shadow var(--motion-normal) ease,background var(--motion-normal) ease,border-color var(--motion-normal) ease}
.site-header--floating-full.site-header--over-hero{margin-bottom:calc(0px - var(--header-floating-height))}
.site-header--floating-full.site-header--over-hero:not(.is-scrolled){background:var(--header-background-overlay);border-color:var(--header-border-overlay)}
.site-header--floating-full.is-scrolled{background:var(--header-background-solid);border-color:var(--header-border-scrolled);box-shadow:var(--shadow-header-raised)}
.site-header--floating-full .brand{width:170px;flex-shrink:0}
.site-header--floating-full .header-cta{font-size:.875rem;padding:13px 19px;gap:12px;white-space:nowrap}
.site-header--floating-full nav{gap:24px}
.site-header--floating-full nav a{position:relative}
.site-header--floating-full nav a:hover{color:var(--header-nav-hover)}
.site-header--floating-full nav a[aria-current=page]{text-decoration:none}
.site-header--floating-full nav a[aria-current=page]::after{content:'';height:2px;position:absolute;bottom:-9px;left:0;right:0;background:var(--header-nav-current)}
@media(max-width:1000px){
  .site-header--floating-full{padding:0 22px;gap:16px}
  .site-header--floating-full .brand{width:160px}
  .site-header--floating-full nav{gap:18px;font-size:.8rem}
  .site-header--floating-full .header-cta{padding:12px 17px;font-size:.8rem;gap:12px}
}
@media(max-width:1000px) and (min-width:761px){
  .site-header--floating-full{gap:12px;padding:0 18px}
  .site-header--floating-full .brand{width:135px}
  .site-header--floating-full nav{gap:13px;font-size:.8rem}
  .site-header--floating-full .header-cta{font-size:.75rem;padding:12px 14px;gap:8px}
}
@media(max-width:760px){
  :root{--header-floating-height:73px}
  .site-header--floating-full{top:9px;margin-top:10px;padding:0 15px;gap:12px;border-radius:10px}
  .site-header--floating-full .brand{width:min(150px,42vw)}
  .site-header--floating-full nav{top:calc(var(--header-floating-height) + 6px);left:0;right:0;padding:22px;gap:20px;font-size:.95rem;background:var(--header-background-solid)}
  .site-header--floating-full nav.open{max-height:calc(100dvh - 115px);overflow:auto}
  .site-header--floating-full nav a[aria-current=page]::after{display:none}
  .site-header--floating-full nav a[aria-current=page]{font-weight:600}
}
@media(prefers-reduced-motion:reduce){.site-header--floating-full{transition:none}}
body.admin-bar .site-header--floating-full{top:55px}
@media(min-width:783px){body.admin-bar .site-header--floating-full{top:46px}}

/* Shared Hero contract: content and media are page-owned; the modifier owns
   viewport geometry and media layering. Brand presets supply the scrim. */
.hero{position:relative;isolation:isolate}
.hero__content,.hero__aside{position:relative;z-index:1}
.hero__actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-8)}
.hero.hero--fullscreen{--hero-header-clearance:0px;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,285px);align-items:start;gap:clamp(24px,5vw,80px);width:calc(100% - var(--page-gutter) - var(--page-gutter));max-width:none;min-height:100vh;min-height:100svh;margin:0 auto;padding:calc(var(--hero-header-clearance) + clamp(75px,10svh,125px)) clamp(30px,5vw,86px) clamp(75px,10svh,115px);border-radius:var(--radius-header);overflow:hidden}
.hero.hero--fullscreen:not(:has(> .hero__aside)){grid-template-columns:minmax(0,1fr)}
.site-header--over-hero + main > .hero--fullscreen{--hero-header-clearance:var(--header-floating-height)}
.hero.hero--fullscreen > .hero__content{max-width:760px;min-width:0;padding:0}
.hero.hero--fullscreen > .hero__aside{align-self:end;min-width:0}
.hero.hero--fullscreen > .hero__media{position:absolute;inset:0;grid-column:auto;z-index:-1;width:100%;height:100%;margin:0;border-radius:inherit}
.hero.hero--fullscreen > .hero__media > img{width:100%;height:100%;object-fit:cover;object-position:var(--hero-focal-x,50%) var(--hero-focal-y,50%)}
.hero.hero--fullscreen > .hero__media::after{content:'';position:absolute;inset:0;background:var(--hero-fullscreen-scrim);pointer-events:none}
@media(max-width:760px){
  .hero.hero--fullscreen{display:block;min-height:100svh;padding:calc(var(--hero-header-clearance) + clamp(38px,7svh,65px)) clamp(16px,5vw,30px) 230px;border-radius:var(--radius-panel)}
  .hero.hero--fullscreen > .hero__content{max-width:560px}
  .hero.hero--fullscreen > .hero__media > img{object-position:var(--hero-focal-x-mobile,var(--hero-focal-x,50%)) var(--hero-focal-y-mobile,var(--hero-focal-y,50%))}
  .hero.hero--fullscreen > .hero__media::after{background:var(--hero-fullscreen-scrim-mobile)}
}

/* Plain editorial disclosure for illustrative content. */
.mzg-editorial-disclosure{max-width:68ch;margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border-left:2px solid var(--color-border);background:var(--color-surface-soft);color:var(--color-text);font-family:var(--font-body);font-size:var(--font-size-small);font-weight:400;line-height:1.55;overflow-wrap:anywhere}
@media(max-width:760px){.mzg-editorial-disclosure{padding:var(--space-3)}}
