{#
/**
 * @file
 * Theme implementation for a single Drupal page.
 *
 * Variables:
 * - logged_in: A flag indicating if user is logged in.
 * - root_path: The root path of the current page (e.g., node, admin, user).
 * - node_type: The content type for the current node, if the page is a node.
 * - head_title: List of text elements that make up the head_title variable.
 *   May contain one or more of the following:
 *   - title: The title of the page.
 *   - name: The name of the site.
 *   - slogan: The slogan of the site.
 * - page_top: Initial rendered markup. This should be printed before 'page'.
 * - page: The rendered page markup.
 * - page_bottom: Closing rendered markup. This variable should be printed after
 *   'page'.
 * - db_offline: A flag indicating if the database is offline.
 * - placeholder_token: The token for generating head, css, js and js-bottom
 *   placeholders.
 *
 * @see template_preprocess_html()
 */
#}
{% set body_classes = [
  logged_in ? 'user-logged-in',
  not root_path ? 'path-frontpage' : 'path-' ~ root_path|clean_class,
  not root_path ? 'front' : 'not-front',
  node_type ? 'node-page node-page--node-type-' ~ node_type|clean_class,
  db_offline ? 'db-offline',
] %}

{% set body_id = 'top'|clean_unique_id %}

<!DOCTYPE html>
<html{{ html_attributes }} class="no-js">
  <head>
    <head-placeholder token="{{ placeholder_token|raw }}">
    <title>{{ head_title|safe_join(' | ') }}</title>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <css-placeholder token="{{ placeholder_token|raw }}">
    <js-placeholder token="{{ placeholder_token|raw }}">
  </head>
  <body {{ add_attributes({
    class: body_classes,
    id: body_id,
  }) }}>
    {% include '@components/skiplinks/skiplinks.twig' %}
    {{ page_top }}
    {{ page }}
    {{ page_bottom }}
    {% if include_back_to_top %}
      {% include '@components/back-to-top/back-to-top.twig' with {
        text: 'Back to top'|t,
        top_element: body_id,
        image_path: image_path,
      } %}
    {% endif %}
    <js-bottom-placeholder token="{{ placeholder_token|raw }}">
  </body>
</html>
