/* Shared multipage layouts and the full-screen homepage hero. */
.page-intro {
  padding-block: 64px 42px;
}

.page-intro h1 {
  margin-bottom: 20px;
  font-size: clamp(2.5rem, 5vw, 3.5rem);
}

.page-intro > p:not(.eyebrow) {
  max-width: 740px;
  color: var(--muted);
}

.policy-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: start;
  gap: 70px;
  padding-bottom: 80px;
}

.policy-nav {
  position: sticky;
  top: 24px;
  padding-top: 12px;
  font-size: 0.9rem;
}

.policy-nav h2 {
  margin-bottom: 16px;
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.policy-nav ul,
.policy-nav ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.policy-nav li {
  margin-bottom: 10px;
}

.policy-nav a {
  color: var(--muted);
  text-decoration: none;
}

.policy-nav a:hover {
  color: var(--accent-ink);
  text-decoration: underline;
}

.policy-body {
  min-width: 0;
}

.policy-section {
  padding-block: 30px;
  border-top: 1px solid var(--line);
  scroll-margin-top: 24px;
}

.policy-section h2 {
  margin-bottom: 20px;
  font-size: 1.5rem;
}

.policy-section .section-number {
  margin-bottom: 12px;
  color: var(--accent-ink);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
}

caption {
  margin-bottom: 12px;
  color: var(--muted);
  text-align: left;
}

.policy-section h3 {
  margin-top: 24px;
  font-size: 1.1rem;
}

.policy-section p,
.policy-section li {
  color: var(--muted);
}

.policy-section strong {
  color: var(--ink);
}

.policy-section ul,
.policy-section ol {
  padding-left: 24px;
}

.policy-section li + li {
  margin-top: 8px;
}

.policy-section > :last-child {
  margin-bottom: 0;
}

.note,
.contact-card {
  margin-block: 24px;
  padding: 24px;
  border: 1px solid #dcdcdc;
  border-radius: 8px;
  background: var(--pale);
}

.note p:last-child,
.contact-card p:last-child {
  margin-bottom: 0;
}

.contact-card h2,
.contact-card h3 {
  margin-top: 0;
}

.table-wrap {
  max-width: 100%;
  margin-block: 24px;
  overflow-x: auto;
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  text-align: left;
}

th,
td {
  padding: 14px;
  border: 1px solid var(--line);
  vertical-align: top;
}

th {
  background: var(--surface);
  font-weight: 600;
}

td {
  color: var(--muted);
}


:root { --surface:#f9f9f9; --white:#fff; }
.main-nav { gap:24px; }
.main-nav a[aria-current="page"]:not(.button) { color:var(--accent-ink); text-decoration:underline; text-underline-offset:7px; text-decoration-thickness:2px; }
.footer-bottom nav { flex-wrap:wrap; justify-content:flex-end; gap:15px 22px; }
.footer-bottom nav a[aria-current="page"] { color:white; text-decoration:underline; text-underline-offset:4px; }
.breadcrumb { display:flex; align-items:center; gap:12px; padding-block:22px; font-size:11px; color:var(--muted); }
.breadcrumb a:hover { color:var(--accent-ink); text-decoration:underline; }
.breadcrumb [aria-current] { color:var(--ink); }
.home-page .site-header { position:absolute; inset:0 0 auto; background:transparent; color:white; border-color:#ffffff26; }
.home-page .brand-caption { color:#e7e7e7; }
.home-page .main-nav>a:not(.button):hover { color:#d5d5d5; }
.home-page .site-header :focus-visible { outline-color:white; }
.hero-fullscreen { position:relative; display:block; width:100%; margin:0; padding:0; color:white; isolation:isolate; background:#191919; }
.hero-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 65%; z-index:-2; }
.hero-fullscreen::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.91) 0%,rgba(0,0,0,.73) 35%,rgba(0,0,0,.17) 74%),linear-gradient(0deg,rgba(0,0,0,.55),transparent 38%,rgba(0,0,0,.35)); }
.hero-inner { min-height:100vh; min-height:100svh; display:flex; flex-direction:column; justify-content:center; position:relative; padding-block:155px 130px; }
.hero-fullscreen .hero-copy { max-width:650px; }
.hero-fullscreen h1 { font-size:clamp(66px,6.3vw,96px); line-height:1.01; margin-bottom:27px; }
.hero-fullscreen h1>span { color:#cdcdcd; }
.hero-fullscreen .eyebrow { color:white; margin-bottom:26px; }
.hero-fullscreen .little-star { color:#cdcdcd; }
.hero-fullscreen .hero-description { color:#e9e9e9; font-size:17px; max-width:440px; }
.hero-fullscreen .hero-actions { flex-direction:row; align-items:center; gap:30px; }
.hero-fullscreen .hero-actions .text-link { color:white; }
.hero-fullscreen :focus-visible { outline-color:white; }
.hero-bottom { position:absolute; bottom:30px; left:0; right:0; display:flex; align-items:end; justify-content:space-between; border-top:1px solid #ffffff38; padding-top:20px; }
.hero-bottom p { font-size:11px; color:#e7e7e7; margin:0; line-height:1.6; }
.hero-bottom strong { font-weight:400; color:white; }
.hero-scroll { display:flex; align-items:center; gap:22px; font-size:9px; letter-spacing:.12em; font-weight:600; }
.hero-scroll>span { display:flex; align-items:center; justify-content:center; border:1px solid #ffffff65; border-radius:50%; width:39px; height:39px; font-size:20px; }
.home-purpose { background:var(--pale); }
.home-purpose h2 { font-size:clamp(34px,3.6vw,51px); }
.home-purpose p:not(.eyebrow) { color:var(--muted); font-size:15px; }
.page-feature { padding-top:65px; padding-bottom:85px; }
.page-feature h1 { font-size:clamp(46px,4.6vw,68px); line-height:1.06; letter-spacing:-.055em; }
.page-feature h1>span { color:var(--accent-ink); }
.section-copy h1 { margin-bottom:27px; }
.community-heading h1 { font-size:clamp(48px,5.2vw,74px); }
.coworking-section h1 { font-size:clamp(60px,6vw,86px); }
.page-feature .section-heading h1 { color:inherit; }
.soft-section { background:var(--pale); }
.detail-grid,.step-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.detail-grid:has(>.detail-card:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.detail-card { border:1px solid var(--line); border-radius:10px; padding:30px; background:white; }
.detail-card h3,.step-card h3 { font-size:26px; margin:20px 0 15px; line-height:1.2; }
.detail-card p,.step-card p { color:var(--muted); font-size:14px; margin-bottom:16px; }
.detail-card p:last-child,.step-card p:last-child { margin-bottom:0; }
.detail-card .text-link { font-size:12px; }
.detail-card ul,.step-card ul { padding-left:18px; font-size:13px; color:var(--muted); line-height:1.8; }
.detail-card>span:first-child,.step-card>span:first-child { color:var(--accent-ink); font-size:11px; font-weight:700; letter-spacing:.08em; }
.step-card { border-top:1px solid #d4d4d4; padding:28px 8px 0 0; }
.step-grid { list-style:none; padding-left:0; }
.page-cta { display:flex; align-items:center; justify-content:space-between; gap:45px; }
.page-cta>.container { display:flex; align-items:center; justify-content:space-between; gap:45px; }
.page-cta h2 { font-size:clamp(33px,3.8vw,54px); }
.page-cta p:not(.eyebrow) { font-size:14px; color:var(--muted); max-width:580px; margin-top:20px; margin-bottom:0; }
.page-cta .button { flex-shrink:0; }
.start-section.page-cta { display:block; }
.start-section.page-cta .button { background:white; color:var(--accent-ink); border-color:white; }
.start-section.page-cta p:not(.eyebrow) { color:#ececec; }
.prose p { color:var(--muted); font-size:15px; }
.contact-direct { margin-top:45px; padding:30px; background:var(--pale); border-radius:10px; }
.contact-direct>p:first-child { font-size:13px; margin-bottom:12px; }
.contact-direct>a { font-size:clamp(17px,2.5vw,28px); color:var(--accent-ink); font-weight:700; letter-spacing:-.03em; overflow-wrap:anywhere; }
.contact-direct>p:last-child { font-size:11px; color:var(--muted); margin-top:15px; margin-bottom:0; }
.policy-page a:not(.button):not(.text-link) { color:var(--accent-ink); text-decoration:underline; text-underline-offset:3px; }
.policy-page .policy-nav a { color:var(--muted); text-decoration:none; }
.policy-page .policy-nav { top:116px; }
.policy-page .policy-section { scroll-margin-top:116px; }
.policy-section p,.policy-section li { font-size:15px; line-height:1.75; }
.policy-section h2 { letter-spacing:-.025em; line-height:1.3; }
.policy-section h3 { letter-spacing:-.015em; line-height:1.4; margin-bottom:14px; }
.policy-page code { overflow-wrap:anywhere; }
.error-page { min-height:65vh; padding-block:90px; }
.error-page h1 { font-size:clamp(40px,5vw,64px); max-width:750px; margin-bottom:27px; }
.error-page>p:not(.eyebrow) { max-width:580px; color:var(--muted); }
.error-page .actions { display:flex; flex-wrap:wrap; align-items:center; gap:25px; }
@media(max-width:1100px) {
 .main-nav { gap:16px; font-size:12px; }
 .hero-fullscreen h1 { font-size:75px; }
 .detail-card { padding:23px; }
 .footer-bottom { align-items:start; }
 .footer-bottom>p { flex-shrink:0; }
}
@media(max-width:980px) {
 .home-page .menu-toggle { background:transparent; color:white; border-color:#ffffff75; }
 .home-page .site-header:has(.is-open) { background:#191919; }
 .home-page .main-nav .nav-cta { background:var(--accent-ink); color:white; }
 .hero-inner { padding-top:135px; }
 .hero-fullscreen h1 { font-size:70px; }
 .detail-grid,.step-grid { gap:18px; }
 .detail-card h3,.step-card h3 { font-size:23px; }
 .page-cta { gap:30px; }
 .page-cta>.container { gap:30px; }
}
@media(max-width:700px) {
 .main-nav { gap:0; }
 .main-nav>a:not(.button) { border-bottom:1px solid var(--line); }
 .home-page .main-nav>a:not(.button) { border-bottom-color:#ffffff26; }
 .hero-inner { min-height:100vh; min-height:100svh; padding-top:130px; padding-bottom:140px; }
 .hero-fullscreen .hero-copy { max-width:500px; }
 .hero-fullscreen h1 { font-size:clamp(49px,12.6vw,72px); margin-bottom:25px; }
 .hero-fullscreen .hero-description { font-size:15px; line-height:1.7; max-width:360px; margin-bottom:30px; }
 .hero-fullscreen .eyebrow { font-size:8px; letter-spacing:.1em; margin-bottom:24px; }
 .hero-fullscreen::before { background:linear-gradient(90deg,rgba(0,0,0,.83),rgba(0,0,0,.47)),linear-gradient(0deg,rgba(0,0,0,.5),transparent 50%); }
 .hero-background { object-position:58% center; }
 .hero-fullscreen .hero-actions { gap:22px; }
 .hero-fullscreen .hero-actions .button { font-size:11px; gap:15px; padding:15px 16px; }
 .hero-fullscreen .hero-actions .text-link { font-size:11px; gap:10px; }
 .hero-bottom { bottom:25px; padding-top:18px; align-items:center; }
 .hero-bottom p { font-size:9px; }
 .hero-scroll { font-size:7px; gap:10px; letter-spacing:.07em; }
 .hero-scroll>span { width:32px; height:32px; font-size:17px; }
 .breadcrumb { padding-block:19px; font-size:10px; }
 .page-feature { padding-block:42px 60px; }
 .page-feature h1 { font-size:clamp(37px,10.3vw,52px); }
 .coworking-section h1 { font-size:62px; }
 .community-heading h1 { font-size:45px; }
 .purpose-layout h1 { position:relative; }
 .purpose-layout h1 .purpose-star { font-size:65px; }
 .detail-grid,.step-grid,.detail-grid:has(>.detail-card:nth-child(2):last-child) { grid-template-columns:1fr; gap:20px; }
 .detail-card { padding:27px; }
 .detail-card h3,.step-card h3 { font-size:25px; }
 .detail-card p,.step-card p { font-size:13px; }
 .step-card { padding-top:23px; padding-bottom:6px; }
 .page-cta,.page-cta>.container { align-items:start; flex-direction:column; gap:28px; }
 .page-cta h2 { font-size:39px; }
 .page-cta p:not(.eyebrow) { font-size:13px; }
 .footer-bottom nav { justify-content:flex-start; gap:17px 23px; }
 .contact-direct { padding:25px; margin-top:30px; }
 .policy-layout { grid-template-columns:1fr; gap:25px; }
 .policy-page .policy-nav { position:static; }
 .policy-section p,.policy-section li { font-size:14px; }
 .policy-page .page-intro h1 { font-size:43px; }
 .policy-page .policy-section { scroll-margin-top:90px; }
 .policy-page .page-intro { padding-top:22px; }
}
@media(max-width:380px) {
 .hero-fullscreen .hero-actions { gap:13px; }
 .hero-fullscreen .hero-actions .button { padding-inline:12px; gap:10px; }
 .hero-fullscreen .hero-actions .text-link { font-size:10px; }
 .hero-fullscreen .hero-description { font-size:14px; }
 .purpose-layout h1 .purpose-star { font-size:46px; right:0; }
}
/* Keep fallback navigation above the hero if JavaScript is unavailable. */
.home-page .site-header:not(:has(.enhanced-nav)) {
  position:relative;
  background:var(--ink);
}
