/* ==========================================================================
   LAYOUT & NAVIGATION
   Page layouts, headers, footers, navigation links
   ========================================================================== */

  .layout-page {
    @apply mx-auto max-w-7xl px-4 py-6 sm:px-6 lg:py-12;
  }

  .layout-page-tight {
    @apply mx-auto max-w-6xl px-4 py-4 sm:px-6 lg:py-10;
  }

  .section-stack {
    @apply space-y-10;
  }

  .section-stack--home > * + * {
    margin-top: 1.75rem;
  }

  .section-stack > div + div.posts-section {
    border-top: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent);
    padding-top: 1.5rem;
  }

  /* Headings */
  .heading-page {
    @apply text-3xl font-semibold tracking-tight sm:text-4xl;
  }

  .heading-section {
    @apply text-sm font-semibold tracking-tight;
  }

  .eyebrow {
    @apply text-[0.65rem] uppercase tracking-[0.22em];
  }

  /* Cards */
  .card {
    @apply border border-border bg-surface rounded-xl shadow-sm;
  }

  .card-pad {
    @apply p-4 sm:p-5;
  }

  .card-hover {
    @apply transition-transform transition-shadow duration-150 ease-out;
  }

  .card-hover:hover {
    @apply shadow-lg;
    transform: translateY(-1px);
    border-color: var(--color-accent);
  }

  /* Buttons */
  .btn-primary {
    @apply inline-flex items-center rounded-full bg-accent px-4 py-2 text-xs font-medium text-white shadow-sm transition-transform duration-150 ease-out;
  }

  .btn-primary:hover {
    transform: translateY(-1px);
  }

  .btn-ghost {
    @apply inline-flex items-center text-xs font-medium text-muted;
  }

  .nav-shell {
    @apply rounded-full border border-border shadow-md backdrop-blur p-3;
    background-color: color-mix(in srgb, var(--color-surface) 82%, transparent);
  }

  .nav-shell::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    top: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(
      90deg,
      transparent,
      color-mix(in srgb, var(--color-accent) 80%, transparent),
      transparent
    );
    opacity: 0.8;
    pointer-events: none;
  }

  .nav-inner {
    @apply flex items-center justify-between px-4 py-2 sm:px-5 sm:py-2.5;
  }

  /* Brand logo badge (fallback) */
  .logo-badge {
    @apply flex h-8 w-8 items-center justify-center rounded-full bg-accent text-[0.65rem] font-semibold text-white;
  }

  /* Nav links */
  .nav-link {
    @apply text-[0.78rem] font-medium text-muted;
  }

  .nav-link:hover {
    color: var(--color-accent);
  }

  /* Theme toggle */
  .theme-toggle {
    @apply inline-flex h-8 w-8 items-center justify-center rounded-full border border-border bg-bg text-muted shadow-sm text-[0.7rem];
    transition: background-color 0.15s ease-out, color 0.15s ease-out,
      transform 0.15s ease-out;
  }

  .theme-toggle:hover {
    @apply text-accent;
    transform: translateY(-1px);
  }

  html[data-theme="dark"] .theme-toggle {
    background-color: var(--color-surface);
  }

  /* Fancy underline link */
  .link-underline {
    position: relative;
    display: inline-block;
  }

  .link-underline::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -0.15rem;
    width: 0;
    height: 1px;
    background-color: var(--color-accent);
    transition: width 0.16s ease-out;
  }

  .link-underline:hover::after {
    width: 100%;
  }

  /* Footer shell */
  .footer-shell {
    @apply rounded-2xl border border-border shadow-md backdrop-blur;
    position: relative;
    overflow: hidden;
    background-color: color-mix(in srgb, var(--color-surface) 86%, transparent);
  }

  .footer-shell::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    top: 0;
    height: 1px;
    background: linear-gradient(
      90deg,
      transparent,
      color-mix(in srgb, var(--color-accent) 80%, transparent),
      transparent
    );
    opacity: 0.8;
    pointer-events: none;
  }

  .footer-inner {
    @apply flex flex-col gap-3 px-4 py-3 text-[0.72rem] sm:flex-row sm:items-center sm:justify-between sm:px-5;
  }

  .footer-links {
    @apply flex flex-wrap items-center gap-3;
  }

  .footer-link {
    @apply inline-flex items-center gap-1 text-[0.75rem] font-medium text-muted transition-all duration-150 ease-out;
  }

  .footer-link:hover {
    color: var(--color-accent);
  }

  .footer-small {
    @apply text-[0.72rem] text-muted leading-relaxed;
  }

  .footer-float:hover {
    color: var(--color-accent);
    transform: translateY(-1px);
  }

  .footer-float:hover i {
    filter: drop-shadow(
      0 0 2px color-mix(in srgb, var(--color-accent) 60%, transparent)
    );
  }

