@use 'breakpoints' as bp; :host { display: block; min-height: 100vh; color: var(--color-text); font-family: var(--font-sans); } .site { display: flex; flex-direction: column; min-height: 100vh; } .site-header { position: relative; top: 0; z-index: 10; padding-block: var(--space-3); } .site-header-inner { display: grid; grid-template-columns: 1fr auto; gap: var(--space-3); align-items: start; padding: var(--space-3) var(--space-4); border-radius: var(--radius-lg); } .site-identity, .site-nav a, .site-actions a, .site-footer a { color: var(--color-text); text-decoration: none; } .site-identity, .site-nav a, .site-actions a, .site-footer a, .nav-toggle { min-height: 2.75rem; } .site-identity, .site-nav a, .site-actions a, .site-footer a { display: inline-flex; align-items: center; } .site-identity { font-weight: 600; } .site-toolbar { justify-self: end; align-items: center; } .nav-toggle { width: 2.75rem; height: 2.75rem; border: 1px solid var(--surface-glass-border); border-radius: var(--radius-sm); background: transparent; color: var(--color-text); } .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after { display: block; width: 1rem; height: 2px; margin-inline: auto; background: currentColor; } .nav-toggle span::before, .nav-toggle span::after { content: ''; position: relative; } .nav-toggle span::before { top: -0.35rem; } .nav-toggle span::after { top: 0.25rem; } .site-nav, .site-actions { grid-column: 1 / -1; } .primary-nav, .primary-nav ul, .footer-nav { list-style: none; margin: 0; padding: 0; } .primary-nav { display: flex; flex-direction: column; gap: var(--space-2); } .primary-nav ul { display: flex; flex-direction: column; gap: var(--space-1); padding-inline-start: var(--space-4); } .contact-cta { color: var(--color-text); } .is-active { color: var(--color-accent-cool); } .nav-collapsed .site-nav, .nav-collapsed .site-actions { display: none; } .site-main { flex: 1; } .site-main:focus-visible { outline: var(--focus-ring-width) solid var(--focus-ring-color); outline-offset: var(--focus-ring-offset); } .site-footer { padding-block: var(--space-6); color: var(--color-text-muted); } .site-footer-inner { justify-content: space-between; } .site-footer p { margin: 0; } @include bp.respond-to(md) { .nav-toggle { display: none; } .site-header { padding-block: var(--space-2); } .site-header-inner { grid-template-columns: 1fr auto auto; align-items: center; gap: var(--space-2); padding-block: var(--space-2); } .site-nav, .nav-collapsed .site-nav { display: flex; grid-column: 1 / -1; order: 5; } .site-actions, .nav-collapsed .site-actions { display: flex; grid-column: auto; order: 3; } .site-toolbar { order: 2; } .primary-nav { flex-direction: row; flex-wrap: nowrap; align-items: center; gap: var(--space-3); } .primary-nav > li { position: relative; } .primary-nav > li > a { white-space: nowrap; } .primary-nav > li > .submenu { display: none; position: absolute; top: 100%; left: 0; min-width: max-content; z-index: 20; padding: var(--space-2) var(--space-3); gap: var(--space-1); border-radius: var(--radius-md); background: var(--surface-glass); backdrop-filter: blur(var(--blur-glass)); -webkit-backdrop-filter: blur(var(--blur-glass)); border: 1px solid var(--surface-glass-border); box-shadow: var(--shadow-soft); } .primary-nav > li:hover > .submenu, .primary-nav > li:focus-within > .submenu { display: flex; flex-direction: column; } }