# Layouts Dinámicos (Header y Footer)

## Sistema de Selección

El header y footer se cargan dinámicamente según el demo activo.

### Implementación

**`resources/views/layout/front/partials/_header.blade.php`:**
```blade
@php
    $demo = get_theme_demo();
    $headerLayout = get_demo_layout('header');
@endphp
@include($headerLayout)
```

**`resources/views/layout/front/partials/_footer.blade.php`:**
```blade
@php
    $footerLayout = get_demo_layout('footer');
@endphp
@include($footerLayout)
```

### Resolución del Layout

`get_demo_layout('header')` retorna la vista Blade a incluir:

```php
// Para demo-restaurant:
'layout.front.headers.demo-restaurant'  // → headers/demo-restaurant.blade.php
```

El path completo es: `resources/views/layout/front/headers/demo-restaurant.blade.php`

## Estructura de Archivos

```
resources/views/layout/front/
├── master.blade.php           # Layout principal, incluye header y footer
├── partials/
│   ├── _header.blade.php      # Incluye get_demo_layout('header')
│   ├── _footer.blade.php      # Incluye get_demo_layout('footer')
│   ├── _styles.blade.php
│   └── _scripts.blade.php
├── headers/
│   ├── default.blade.php
│   ├── demo-restaurant.blade.php
│   ├── demo-law-firm-2.blade.php
│   ├── demo-construction.blade.php
│   └── ... (uno por demo)
└── footers/
    ├── default.blade.php
    ├── demo-restaurant.blade.php
    ├── demo-law-firm-2.blade.php
    └── ...
```

## Casos Especiales

### demo-photography-3
Usa `side-header`: el header se renderiza como barra lateral. La clase `side-header` se añade al `<html>` en master.

### demo-architecture-2 (productos)
En rutas `products*` o `products-catalogue*` usa el header de demo-photography-3 (sidebar).

## Contenido del Header

Cada header demo incluye:

- Logo (config('site.assets.main_logo'))
- Navegación (estática o get_dynamic_navigation('header'))
- CTAs (ej: "Order now" en restaurant)
- Redes sociales (config('site.social_media'))
- Barra superior opcional (teléfono, horarios)

## Contenido del Footer

Cada footer demo incluye:

- Logo footer
- Información de contacto
- Enlaces (config('site.footer.links') o is_module_active())
- Copyright

Los enlaces se generan dinámicamente según módulos activos: blog, menu, contact, faqs, etc.

## Fallback

Si un demo no tiene header o footer específico, `get_demo_layout_mapping()` puede retornar 'default'. El helper tiene lógica de fallback en `app/helpers.php`.
