{{-- /herramientas/afinador-kombucha — la puerta de entrada del sitio (docs/paginas/afinador.md + docs/Afinador_Web.md). Se usa antes de leerse: la herramienta arriba, la prosa debajo (SSR, que es donde rankea). El resultado completo no se corta nunca; el registro llega después y ofrece otra cosa. El cálculo entero ocurre en servidor. --}} @extends('layouts.web') @php $app = \App\Support\Superficie::base(); // El copy vive en lang/{idioma}/pagina_afinador.php. $t = fn (string $k, array $p = []) => __("pagina_afinador.$k", $p); $faqs = collect(range(1, 6))->map(fn ($i) => [$t("faq.q$i"), $t("faq.a$i")])->all(); @endphp @section('seo') {{-- Un cálculo compartido lleva SUS números en la vista previa: es lo que hace que alguien pinche un enlace pegado en un grupo. Y el canonical apunta siempre a la URL limpia, para no llenar el índice de variantes. --}} @if($compartido) @else @endif @endsection @push('head') {{-- Con ?v= (mtime): sin versión, el navegador sirve el JS/CSS viejo días después de un arreglo — y este cliente ha tenido ya arreglos que no llegaban por eso. --}} {{-- El afinador escribe su pliegue en JetBrains Mono (etiquetas, outputs) y esa es la única familia sin preload global: si llega tras el pintado, el swap recoloca los controles (el CLS intermitente de 0,13 — fase 5 hotfix). --}} @php $ldFaq = ['@context' => 'https://schema.org', '@type' => 'FAQPage', 'mainEntity' => array_map(fn ($f) => [ '@type' => 'Question', 'name' => $f[0], 'acceptedAnswer' => ['@type' => 'Answer', 'text' => $f[1]], ], $faqs)]; $ldCrumbs = ['@context' => 'https://schema.org', '@type' => 'BreadcrumbList', 'itemListElement' => [ ['@type' => 'ListItem', 'position' => 1, 'name' => 'Inicio', 'item' => url('/')], ['@type' => 'ListItem', 'position' => 2, 'name' => 'Herramientas', 'item' => ruta('herramientas')], ['@type' => 'ListItem', 'position' => 3, 'name' => 'Afinador de kombucha', 'item' => ruta('afinador')], ]]; // La herramienta como entidad propia, en SU página — la app Fermenty se // describe en la home; offers a 0 € es «gratis, sin registro» hecho marcado // (Zymolab_Enlace_Fermenty.md §4). $ldTool = ['@context' => 'https://schema.org', '@type' => 'SoftwareApplication', 'name' => __('armazon.pie.afinador'), 'applicationCategory' => 'UtilitiesApplication', 'operatingSystem' => 'Web', 'url' => ruta('afinador'), 'description' => __('pagina_afinador.seo.desc'), 'isAccessibleForFree' => true, 'offers' => ['@type' => 'Offer', 'price' => '0', 'priceCurrency' => 'EUR'], ]; @endphp @endpush @section('content')

{{ $t('hero.eyebrow') }}

{{ $t('hero.title') }}

{{ $t('hero.lede') }}

{{-- ══════════ LA HERRAMIENTA ══════════ --}}

{{ $t('panel.como') }}

@foreach($presets->where('primario', true) as $p) @endforeach

{{-- La capa de override: sobreescritura sobre lo que el preset ya decidió. Cambiar de preset la descarta (Afinador_Web.md §2). --}}
{{ $t('panel.ajustar') }} {{-- Los otros tres perfiles: aquí, no en la primera pantalla. La web anuncia que se elige con una frase y ofrece tres; quien quiera los seis los tiene a un clic (bloque D). --}}

{{ $t('panel.mas_perfiles') }}

@foreach($presets->where('primario', false) as $p) @endforeach

{{ $t('panel.burbujas') }}

{{-- Hasta dónde llega el afinador, y dónde siguen los mandos finos. El bloque plegado es, de paso, la mejor demostración de qué compra Pro (pagina-afinador.md §3). --}}

{!! $t('panel.mas_ejes') !!} {{ $t('panel.que_ejes') }} · {{ $t('panel.formular_ejes') }}

{{-- ══════════ EL RESULTADO — completo, siempre, sin taparse nunca ══════════ --}} {{-- Escalera de defensa: el bloque de conversión (a partir de 15 cálculos). FUERA de #afResult a propósito: tras una recarga con la sesión ya al tope, el resultado sigue oculto — si el límite viviera dentro, la página se quedaría muda, sin ingredientes ni explicación. --}} {{-- Cualquier otro fallo (red, sesión caducada): un resultado que deja de moverse sin decir nada parece un error de la herramienta. --}} {{-- Enlaces cruzados: DEBAJO del CTA, no encima — una salida lateral no compite con la conversión (Afinador_Kefir_Web.md §8). El triángulo: al otro afinador, al estante, y la guía del propio fermento. --}}

{!! $t('cruce.kefir', ['url' => ruta('afinador-kefir')]) !!}

{!! $t('cruce.estante', ['url' => ruta('herramientas')]) !!}

{{-- ══════════ LA PROSA — aquí es donde la página rankea (SSR) ══════════ --}}

{{ $t('prosa.azucar_t') }}

{{ $t('prosa.azucar_p') }}

{{ $t('prosa.dias_t') }}

{{ $t('prosa.dias_p') }}

{{ $t('prosa.suelo_t') }}

{{ $t('prosa.suelo_p') }}

{{ $t('prosa.arrancador_t') }}

{{ $t('prosa.arrancador_p') }}

{{ $t('prosa.segunda_t') }}

{{ $t('prosa.segunda_p') }}

{{ $t('prosa.acida_t') }}

{{ $t('prosa.acida_p') }} {{ $t('prosa.acida_enlace') }} {{ $t('prosa.acida_cierre') }}

{{-- FAQ --}}

{{ $t('faq.title') }}

@foreach($faqs as $f)
last) id="ejes" @endif> {{ $f[0] }} {{-- Las respuestas admiten HTML: la a2 enlaza al método en zymolab.es (§3 del enlace) --}}

{!! $f[1] !!}

@if($loop->last)

{{ $t('faq.que_pro') }} · {{ $t('faq.como_calcula') }}

@endif
@endforeach
{{-- Avisos y responsabilidad (§8): coherencia, no letra pequeña defensiva --}}
@endsection @push('scripts') @endpush