/* Shared homepage shell adapter.
 *
 * The homepage Nav and Footer are React components defined in
 * parts/hero-dupe.js and parts/body3.js. Most public pages already render
 * those components inside .qpage, where site.css supplies these tokens and
 * primitives. DC-runtime pages and the 404 page mount the same components in
 * standalone roots, so this small scoped sheet gives those roots the exact
 * homepage shell environment without applying all of site.css to their page
 * content.
 */

.site-shell {
  --paper:#ECE7F2;
  --paper-2:#E2DBEC;
  --paper-3:#D6CCE4;
  --card:#F8F5FB;
  --ink:#1A1611;
  --ink-2:#5C5345;
  --ink-3:#857B69;
  --line:#1A1611;
  --purple:#5C28A4;
  --purple-deep:#41186F;
  --peri:#9385E6;
  --peri-soft:#C9C1F2;
  --amber:#9385E6;
  --amber-deep:#9385E6;
  --maxw:1280px;
  --pad:40px;
  --hair:2px;
  --font-product:'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  --font-marketing:'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  --font-mono:'Geist Mono', ui-monospace, 'SF Mono', Menlo, Monaco, monospace;
  color:var(--ink);
  font-family:var(--font-product);
  font-feature-settings:"ss01";
  position:relative;
  z-index:1000;
}

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

/* support.js treats a standalone DC export as a one-viewport canvas. Orbit
 * and Spaces are public document pages with the shared footer mounted after
 * that canvas, so their runtime root must participate in normal page flow. */
body.dc-public-page { height:auto !important; min-height:100%; }
body.dc-public-page #dc-root,
body.dc-public-page #dc-root > .sc-host { height:auto !important; }

.site-shell img { display:block; max-width:100%; }
.site-shell button { font-family:inherit; }
.site-shell .wrap { max-width:var(--maxw); margin:0 auto; padding:0 var(--pad); }

.site-shell .btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  height:50px;
  padding:0 24px;
  font-family:var(--font-product);
  font-size:15px;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap;
  border:var(--hair) solid var(--line);
  border-radius:0;
  transition:transform .14s ease, box-shadow .14s ease, background .14s ease;
}
.site-shell .btn-ink { background:var(--ink); color:var(--paper); box-shadow:4px 4px 0 rgba(26,22,17,.25); }
.site-shell .btn-ink:hover { transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--purple); }
.site-shell .btn-ink:active { transform:translate(2px,2px); box-shadow:2px 2px 0 var(--purple); }
.site-shell .btn-amber { background:var(--amber); color:var(--ink); box-shadow:4px 4px 0 var(--ink); }
.site-shell .btn-amber:hover { transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--ink); }
.site-shell .btn-amber:active { transform:translate(2px,2px); box-shadow:2px 2px 0 var(--ink); }
.site-shell .btn-ghost { background:transparent; color:var(--ink); }
.site-shell .btn-ghost:hover { background:var(--ink); color:var(--paper); }
.site-shell .btn-sm { height:42px; padding:0 18px; font-size:14px; }
.site-shell .mono { font-family:var(--font-mono); font-feature-settings:"tnum"; }

/* The DC exports keep their original shell markup as source-level fallback,
 * but the public runtime always uses the shared homepage components. */
.dc-shell-fallback { display:none !important; }

@media (min-width:1200px) {
  .site-shell .rnav-burger { display:none !important; }
}

@media (min-width:768px) and (max-width:1199px) {
  .site-shell { --pad:32px; --maxw:1024px; }
  .site-shell .nav-links { display:none !important; }
  .site-shell header { position:sticky !important; top:0; }
  .site-shell header .wrap > a.btn-ghost { display:none !important; }
  .site-shell .q-fcol a { min-height:44px; display:flex; align-items:center; padding:0 !important; }
}

@media (max-width:820px) {
  .site-shell .q-ftop { grid-template-columns:1fr 1fr !important; gap:30px 20px !important; }
  .site-shell .q-ftop > div:first-child { grid-column:1 / -1 !important; }
}

@media (max-width:767px) {
  .site-shell { --pad:16px; }
  .site-shell .nav-links { display:none !important; }
  .site-shell header { position:sticky !important; top:0; }
  .site-shell header .wrap { gap:12px !important; }
  .site-shell header .wrap > a.btn { display:none !important; }
  .site-shell .q-fcol a { min-height:44px; display:flex; align-items:center; padding:0 !important; }
}
