�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!functions.php000064400000045631152525047610007305 0ustar00 tag in the document head, * WordPress will provide it for us. */ add_theme_support( 'title-tag' ); /** * Add post-formats support. */ add_theme_support( 'post-formats', array( 'link', 'aside', 'gallery', 'image', 'quote', 'status', 'video', 'audio', 'chat', ) ); /* * Enable support for Post Thumbnails on posts and pages. * * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/ */ add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 1568, 9999 ); register_nav_menus( array( 'primary' => esc_html__( 'Primary menu', 'twentytwentyone' ), 'footer' => esc_html__( 'Secondary menu', 'twentytwentyone' ), ) ); /* * Switch default core markup for search form, comment form, and comments * to output valid HTML5. */ add_theme_support( 'html5', array( 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script', 'navigation-widgets', ) ); /* * Add support for core custom logo. * * @link https://codex.wordpress.org/Theme_Logo */ $logo_width = 300; $logo_height = 100; add_theme_support( 'custom-logo', array( 'height' => $logo_height, 'width' => $logo_width, 'flex-width' => true, 'flex-height' => true, 'unlink-homepage-logo' => true, ) ); // Add theme support for selective refresh for widgets. add_theme_support( 'customize-selective-refresh-widgets' ); // Add support for Block Styles. add_theme_support( 'wp-block-styles' ); // Add support for full and wide align images. add_theme_support( 'align-wide' ); // Add support for editor styles. add_theme_support( 'editor-styles' ); $background_color = get_theme_mod( 'background_color', 'D1E4DD' ); if ( 127 > Twenty_Twenty_One_Custom_Colors::get_relative_luminance_from_hex( $background_color ) ) { add_theme_support( 'dark-editor-style' ); } $editor_stylesheet_path = './assets/css/style-editor.css'; // Note, the is_IE global variable is defined by WordPress and is used // to detect if the current browser is internet explorer. global $is_IE; if ( $is_IE ) { $editor_stylesheet_path = './assets/css/ie-editor.css'; } // Enqueue editor styles. add_editor_style( $editor_stylesheet_path ); // Add custom editor font sizes. add_theme_support( 'editor-font-sizes', array( array( 'name' => esc_html__( 'Extra small', 'twentytwentyone' ), 'shortName' => esc_html_x( 'XS', 'Font size', 'twentytwentyone' ), 'size' => 16, 'slug' => 'extra-small', ), array( 'name' => esc_html__( 'Small', 'twentytwentyone' ), 'shortName' => esc_html_x( 'S', 'Font size', 'twentytwentyone' ), 'size' => 18, 'slug' => 'small', ), array( 'name' => esc_html__( 'Normal', 'twentytwentyone' ), 'shortName' => esc_html_x( 'M', 'Font size', 'twentytwentyone' ), 'size' => 20, 'slug' => 'normal', ), array( 'name' => esc_html__( 'Large', 'twentytwentyone' ), 'shortName' => esc_html_x( 'L', 'Font size', 'twentytwentyone' ), 'size' => 24, 'slug' => 'large', ), array( 'name' => esc_html__( 'Extra large', 'twentytwentyone' ), 'shortName' => esc_html_x( 'XL', 'Font size', 'twentytwentyone' ), 'size' => 40, 'slug' => 'extra-large', ), array( 'name' => esc_html__( 'Huge', 'twentytwentyone' ), 'shortName' => esc_html_x( 'XXL', 'Font size', 'twentytwentyone' ), 'size' => 96, 'slug' => 'huge', ), array( 'name' => esc_html__( 'Gigantic', 'twentytwentyone' ), 'shortName' => esc_html_x( 'XXXL', 'Font size', 'twentytwentyone' ), 'size' => 144, 'slug' => 'gigantic', ), ) ); // Custom background color. add_theme_support( 'custom-background', array( 'default-color' => 'd1e4dd', ) ); // Editor color palette. $black = '#000000'; $dark_gray = '#28303D'; $gray = '#39414D'; $green = '#D1E4DD'; $blue = '#D1DFE4'; $purple = '#D1D1E4'; $red = '#E4D1D1'; $orange = '#E4DAD1'; $yellow = '#EEEADD'; $white = '#FFFFFF'; add_theme_support( 'editor-color-palette', array( array( 'name' => esc_html__( 'Black', 'twentytwentyone' ), 'slug' => 'black', 'color' => $black, ), array( 'name' => esc_html__( 'Dark gray', 'twentytwentyone' ), 'slug' => 'dark-gray', 'color' => $dark_gray, ), array( 'name' => esc_html__( 'Gray', 'twentytwentyone' ), 'slug' => 'gray', 'color' => $gray, ), array( 'name' => esc_html__( 'Green', 'twentytwentyone' ), 'slug' => 'green', 'color' => $green, ), array( 'name' => esc_html__( 'Blue', 'twentytwentyone' ), 'slug' => 'blue', 'color' => $blue, ), array( 'name' => esc_html__( 'Purple', 'twentytwentyone' ), 'slug' => 'purple', 'color' => $purple, ), array( 'name' => esc_html__( 'Red', 'twentytwentyone' ), 'slug' => 'red', 'color' => $red, ), array( 'name' => esc_html__( 'Orange', 'twentytwentyone' ), 'slug' => 'orange', 'color' => $orange, ), array( 'name' => esc_html__( 'Yellow', 'twentytwentyone' ), 'slug' => 'yellow', 'color' => $yellow, ), array( 'name' => esc_html__( 'White', 'twentytwentyone' ), 'slug' => 'white', 'color' => $white, ), ) ); add_theme_support( 'editor-gradient-presets', array( array( 'name' => esc_html__( 'Purple to yellow', 'twentytwentyone' ), 'gradient' => 'linear-gradient(160deg, ' . $purple . ' 0%, ' . $yellow . ' 100%)', 'slug' => 'purple-to-yellow', ), array( 'name' => esc_html__( 'Yellow to purple', 'twentytwentyone' ), 'gradient' => 'linear-gradient(160deg, ' . $yellow . ' 0%, ' . $purple . ' 100%)', 'slug' => 'yellow-to-purple', ), array( 'name' => esc_html__( 'Green to yellow', 'twentytwentyone' ), 'gradient' => 'linear-gradient(160deg, ' . $green . ' 0%, ' . $yellow . ' 100%)', 'slug' => 'green-to-yellow', ), array( 'name' => esc_html__( 'Yellow to green', 'twentytwentyone' ), 'gradient' => 'linear-gradient(160deg, ' . $yellow . ' 0%, ' . $green . ' 100%)', 'slug' => 'yellow-to-green', ), array( 'name' => esc_html__( 'Red to yellow', 'twentytwentyone' ), 'gradient' => 'linear-gradient(160deg, ' . $red . ' 0%, ' . $yellow . ' 100%)', 'slug' => 'red-to-yellow', ), array( 'name' => esc_html__( 'Yellow to red', 'twentytwentyone' ), 'gradient' => 'linear-gradient(160deg, ' . $yellow . ' 0%, ' . $red . ' 100%)', 'slug' => 'yellow-to-red', ), array( 'name' => esc_html__( 'Purple to red', 'twentytwentyone' ), 'gradient' => 'linear-gradient(160deg, ' . $purple . ' 0%, ' . $red . ' 100%)', 'slug' => 'purple-to-red', ), array( 'name' => esc_html__( 'Red to purple', 'twentytwentyone' ), 'gradient' => 'linear-gradient(160deg, ' . $red . ' 0%, ' . $purple . ' 100%)', 'slug' => 'red-to-purple', ), ) ); /* * Adds starter content to highlight the theme on fresh sites. * This is done conditionally to avoid loading the starter content on every * page load, as it is a one-off operation only needed once in the customizer. */ if ( is_customize_preview() ) { require get_template_directory() . '/inc/starter-content.php'; add_theme_support( 'starter-content', twenty_twenty_one_get_starter_content() ); } // Add support for responsive embedded content. add_theme_support( 'responsive-embeds' ); // Add support for custom line height controls. add_theme_support( 'custom-line-height' ); // Add support for experimental link color control. add_theme_support( 'experimental-link-color' ); // Add support for experimental cover block spacing. add_theme_support( 'custom-spacing' ); // Add support for custom units. // This was removed in WordPress 5.6 but is still required to properly support WP 5.5. add_theme_support( 'custom-units' ); // Remove feed icon link from legacy RSS widget. add_filter( 'rss_widget_feed_link', '__return_false' ); } } add_action( 'after_setup_theme', 'twenty_twenty_one_setup' ); /** * Register widget area. * * @since Twenty Twenty-One 1.0 * * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar * * @return void */ function twenty_twenty_one_widgets_init() { register_sidebar( array( 'name' => esc_html__( 'Footer', 'twentytwentyone' ), 'id' => 'sidebar-1', 'description' => esc_html__( 'Add widgets here to appear in your footer.', 'twentytwentyone' ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); } add_action( 'widgets_init', 'twenty_twenty_one_widgets_init' ); /** * Set the content width in pixels, based on the theme's design and stylesheet. * * Priority 0 to make it available to lower priority callbacks. * * @since Twenty Twenty-One 1.0 * * @global int $content_width Content width. * * @return void */ function twenty_twenty_one_content_width() { // This variable is intended to be overruled from themes. // Open WPCS issue: {@link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/1043}. // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound $GLOBALS['content_width'] = apply_filters( 'twenty_twenty_one_content_width', 750 ); } add_action( 'after_setup_theme', 'twenty_twenty_one_content_width', 0 ); /** * Enqueue scripts and styles. * * @since Twenty Twenty-One 1.0 * * @return void */ function twenty_twenty_one_scripts() { // Note, the is_IE global variable is defined by WordPress and is used // to detect if the current browser is internet explorer. global $is_IE, $wp_scripts; if ( $is_IE ) { // If IE 11 or below, use a flattened stylesheet with static values replacing CSS Variables. wp_enqueue_style( 'twenty-twenty-one-style', get_template_directory_uri() . '/assets/css/ie.css', array(), wp_get_theme()->get( 'Version' ) ); } else { // If not IE, use the standard stylesheet. wp_enqueue_style( 'twenty-twenty-one-style', get_template_directory_uri() . '/style.css', array(), wp_get_theme()->get( 'Version' ) ); } // RTL styles. wp_style_add_data( 'twenty-twenty-one-style', 'rtl', 'replace' ); // Print styles. wp_enqueue_style( 'twenty-twenty-one-print-style', get_template_directory_uri() . '/assets/css/print.css', array(), wp_get_theme()->get( 'Version' ), 'print' ); // Threaded comment reply styles. if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { wp_enqueue_script( 'comment-reply' ); } // Register the IE11 polyfill file. wp_register_script( 'twenty-twenty-one-ie11-polyfills-asset', get_template_directory_uri() . '/assets/js/polyfills.js', array(), wp_get_theme()->get( 'Version' ), true ); // Register the IE11 polyfill loader. wp_register_script( 'twenty-twenty-one-ie11-polyfills', null, array(), wp_get_theme()->get( 'Version' ), true ); wp_add_inline_script( 'twenty-twenty-one-ie11-polyfills', wp_get_script_polyfill( $wp_scripts, array( 'Element.prototype.matches && Element.prototype.closest && window.NodeList && NodeList.prototype.forEach' => 'twenty-twenty-one-ie11-polyfills-asset', ) ) ); // Main navigation scripts. if ( has_nav_menu( 'primary' ) ) { wp_enqueue_script( 'twenty-twenty-one-primary-navigation-script', get_template_directory_uri() . '/assets/js/primary-navigation.js', array( 'twenty-twenty-one-ie11-polyfills' ), wp_get_theme()->get( 'Version' ), true ); } // Responsive embeds script. wp_enqueue_script( 'twenty-twenty-one-responsive-embeds-script', get_template_directory_uri() . '/assets/js/responsive-embeds.js', array( 'twenty-twenty-one-ie11-polyfills' ), wp_get_theme()->get( 'Version' ), true ); } add_action( 'wp_enqueue_scripts', 'twenty_twenty_one_scripts' ); /** * Enqueue block editor script. * * @since Twenty Twenty-One 1.0 * * @return void */ function twentytwentyone_block_editor_script() { wp_enqueue_script( 'twentytwentyone-editor', get_theme_file_uri( '/assets/js/editor.js' ), array( 'wp-blocks', 'wp-dom' ), wp_get_theme()->get( 'Version' ), true ); } add_action( 'enqueue_block_editor_assets', 'twentytwentyone_block_editor_script' ); /** * Fix skip link focus in IE11. * * This does not enqueue the script because it is tiny and because it is only for IE11, * thus it does not warrant having an entire dedicated blocking script being loaded. * * @since Twenty Twenty-One 1.0 * * @link https://git.io/vWdr2 */ function twenty_twenty_one_skip_link_focus_fix() { // If SCRIPT_DEBUG is defined and true, print the unminified file. if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) { echo ''; } else { // The following is minified via `npx terser --compress --mangle -- assets/js/skip-link-focus-fix.js`. ?> get( 'Version' ), true ); wp_enqueue_script( 'twentytwentyone-customize-preview', get_theme_file_uri( '/assets/js/customize-preview.js' ), array( 'customize-preview', 'customize-selective-refresh', 'jquery', 'twentytwentyone-customize-helpers' ), wp_get_theme()->get( 'Version' ), true ); } add_action( 'customize_preview_init', 'twentytwentyone_customize_preview_init' ); /** * Enqueue scripts for the customizer. * * @since Twenty Twenty-One 1.0 * * @return void */ function twentytwentyone_customize_controls_enqueue_scripts() { wp_enqueue_script( 'twentytwentyone-customize-helpers', get_theme_file_uri( '/assets/js/customize-helpers.js' ), array(), wp_get_theme()->get( 'Version' ), true ); } add_action( 'customize_controls_enqueue_scripts', 'twentytwentyone_customize_controls_enqueue_scripts' ); /** * Calculate classes for the main element. * * @since Twenty Twenty-One 1.0 * * @return void */ function twentytwentyone_the_html_classes() { /** * Filters the classes for the main element. * * @since Twenty Twenty-One 1.0 * * @param string The list of classes. Default empty string. */ $classes = apply_filters( 'twentytwentyone_html_classes', '' ); if ( ! $classes ) { return; } echo 'class="' . esc_attr( $classes ) . '"'; } /** * Add "is-IE" class to body if the user is on Internet Explorer. * * @since Twenty Twenty-One 1.0 * * @return void */ function twentytwentyone_add_ie_class() { ?> image.php000064400000006511152525047610006351 0ustar00
>
', '' ); ?>
'', /* translators: %: Page number. */ 'pagelink' => esc_html__( 'Page %', 'twentytwentyone' ), ) ); ?>
Themes and click the 'Add New' button. 2. Type in Twenty Twenty-One in the search form and press the 'Enter' key on your keyboard. 3. Click on the 'Activate' button to use your new theme right away. 4. Go to INSERT ABOUT PAGE for a guide on how to customize this theme. 5. Navigate to Appearance > Customize in your admin panel and customize to your taste. == Privacy == Twenty Twenty-One uses LocalStorage to save the setting when Dark Mode support is turned on or off. LocalStorage is necessary for the setting to work and is only used when a user clicks on the Dark Mode button. No data is saved in the database or transferred. == Changelog == = 1.7 = * Released: November 1, 2022 https://wordpress.org/support/article/twenty-twenty-one-changelog#Version_1.7 = 1.6 = * Released: May 24, 2022 https://wordpress.org/support/article/twenty-twenty-one-changelog#Version_1.6 = 1.5 = * Released: January 25, 2022 https://wordpress.org/support/article/twenty-twenty-one-changelog#Version_1.5 = 1.4 = * Released: July 20, 2021 https://wordpress.org/support/article/twenty-twenty-one-changelog#Version_1.4 = 1.3 = * Released: April 14, 2021 https://wordpress.org/support/article/twenty-twenty-one-changelog#Version_1.3 = 1.2 = * Released: March 9, 2021 https://wordpress.org/support/article/twenty-twenty-one-changelog#Version_1.2 = 1.1 = * Released: December 22, 2020 https://wordpress.org/support/article/twenty-twenty-one-changelog#Version_1.1 = 1.0 = * Released: December 8, 2020 https://wordpress.org/support/article/twenty-twenty-one-changelog#Version_1.0 == Copyright == Twenty Twenty-One WordPress Theme, 2020-2022 WordPress.org Twenty Twenty-One is distributed under the terms of the GNU GPL. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Twenty Twenty-One is derived from Seedlet, (C) 2020 Automattic, Inc. Twenty Twenty-One is also based on: Twenty Nineteen. 2018-2022 WordPress.org Twenty Nineteen is distributed under the terms of the GNU GPL v2 or later. Twenty Seventeen. Copyright (C) 2016-2022 WordPress.org Twenty Seventeen is distributed under the terms of the GNU GPL v2 or later. Twenty Sixteen. Copyright (C) 2015-2022 WordPress.org Twenty Sixteen is distributed under the terms of the GNU GPL v2 or later. Twenty Twenty. Copyright (C) 2020-2022 WordPress.org Twenty Twenty is distributed under the terms of the GNU GPL v2 or later. Underscores https://underscores.me/, Copyright (C) 2012-2022 Automattic, Inc. Underscores is distributed under the terms of the GNU GPL v2 or later. Normalizing styles have been helped along thanks to the fine work of Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/ Unless otherwise noted, the icons in this theme are derived from the WordPress Icons Library, licensed under the terms of the GNU GPL v2 or later. https://github.com/WordPress/gutenberg/tree/master/packages/icons This theme bundles the following third-party resources: input[type='checkbox'], input[type='radio'], input[type='ranged'], https://css-tricks.com/custom-styling-form-inputs-with-modern-css-features/ https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ https://codepen.io/aaroniker/pen/ZEYoxEY Copyright (c) 2020 Aaron Iker https://codepen.io/chriscoyier/pen/FtnAa Copyright (c) 2020 Chris Coyier License: MIT. Images Art by Berthe Morisot 1841-1895. Public domain. https://www.wikiart.org/en/berthe-morisot/playing-in-the-sand https://www.wikiart.org/en/berthe-morisot/roses-tremieres-hollyhocks-1884 https://www.wikiart.org/en/berthe-morisot/young-woman-in-mauve https://www.wikiart.org/en/berthe-morisot/in-the-bois-de-boulogne https://www.wikiart.org/en/berthe-morisot/daffodils https://www.wikiart.org/en/berthe-morisot/self-portrait-1885 https://www.wikiart.org/en/berthe-morisot/the-garden-at-bougival-1884 https://www.wikiart.org/en/berthe-morisot/villa-with-orange-trees-nice https://www.wikiart.org/en/berthe-morisot/reading 404.php000064400000001321152525047610005570 0ustar00

method="get" class="search-form" action="">
classes/class-twenty-twenty-one-customize-color-control.php000064400000002434152525047610020302 0ustar00get( 'Version' ), false ); } /** * Refresh the parameters passed to the JavaScript via JSON. * * @since Twenty Twenty-One 1.0 * * @uses WP_Customize_Control::to_json() * * @return void */ public function to_json() { parent::to_json(); $this->json['palette'] = $this->palette; } } classes/class-twenty-twenty-one-svg-icons.php000064400000145561152525047610015407 0ustar00 source on its own array key, without adding either * the `width` or `height` attributes, since these are added dynamically, * before rendering the SVG code. * * All icons are assumed to have equal width and height, hence the option * to only specify a `$size` parameter in the svg methods. * * @since Twenty Twenty-One 1.0 */ class Twenty_Twenty_One_SVG_Icons { /** * User Interface icons – svg sources. * * @since Twenty Twenty-One 1.0 * * @var array */ protected static $icons = array( 'arrow_right' => '', 'arrow_left' => '', 'close' => '', 'menu' => '', 'plus' => '', 'minus' => '', ); /** * Social Icons – svg sources. * * @since Twenty Twenty-One 1.0 * * @var array */ protected static $social_icons = array( '500px' => '', 'amazon' => '', 'bandcamp' => '', 'behance' => '', 'codepen' => '', 'deviantart' => '', 'dribbble' => '', 'dropbox' => '', 'etsy' => '', 'facebook' => '', 'feed' => '', 'flickr' => '', 'foursquare' => '', 'goodreads' => '', 'google' => '', 'github' => '', 'instagram' => '', 'lastfm' => '', 'linkedin' => '', 'mail' => '', 'mastodon' => '', 'medium' => '', 'meetup' => '', 'pinterest' => '', 'pocket' => '', 'reddit' => '', 'skype' => '', 'snapchat' => '', 'soundcloud' => '', 'spotify' => '', 'tumblr' => '', 'twitch' => '', 'twitter' => '', 'vimeo' => '', 'vk' => '', 'wordpress' => '', 'yelp' => '', 'youtube' => '', ); /** * Social Icons – domain mappings. * * By default, each Icon ID is matched against a .com TLD. To override this behavior, * specify all the domains it covers (including the .com TLD too, if applicable). * * @since Twenty Twenty-One 1.0 * * @var array */ protected static $social_icons_map = array( 'amazon' => array( 'amazon.com', 'amazon.cn', 'amazon.in', 'amazon.fr', 'amazon.de', 'amazon.it', 'amazon.nl', 'amazon.es', 'amazon.co', 'amazon.ca', ), 'behance' => array( 'behance.net', ), 'codepen' => array( 'codepen.io', ), 'facebook' => array( 'facebook.com', 'fb.me', ), 'feed' => array( 'feed', ), 'lastfm' => array( 'last.fm', ), 'mail' => array( 'mailto:', ), 'pocket' => array( 'getpocket.com', ), 'twitch' => array( 'twitch.tv', ), 'wordpress' => array( 'wordpress.com', 'wordpress.org', ), ); /** * Gets the SVG code for a given icon. * * @static * * @since Twenty Twenty-One 1.0 * * @param string $group The icon group. * @param string $icon The icon. * @param int $size The icon-size in pixels. * @return string */ public static function get_svg( $group, $icon, $size ) { if ( 'ui' === $group ) { $arr = self::$icons; } elseif ( 'social' === $group ) { $arr = self::$social_icons; } else { $arr = array(); } /** * Filters Twenty Twenty-Ones's array of icons. * * The dynamic portion of the hook name, `$group`, refers to * the name of the group of icons, either "ui" or "social". * * @since Twenty Twenty-One 1.0 * * @param array $arr Array of icons. */ $arr = apply_filters( "twenty_twenty_one_svg_icons_{$group}", $arr ); $svg = ''; if ( array_key_exists( $icon, $arr ) ) { $repl = sprintf( ''; } } return null; } } classes/class-twenty-twenty-one-customize.php000064400000011521152525047610015505 0ustar00get_setting( 'blogname' )->transport = 'postMessage'; // @phpstan-ignore-line. Assume that this setting exists. $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; // @phpstan-ignore-line. Assume that this setting exists. // Add partial for blogname. $wp_customize->selective_refresh->add_partial( 'blogname', array( 'selector' => '.site-title', 'render_callback' => array( $this, 'partial_blogname' ), ) ); // Add partial for blogdescription. $wp_customize->selective_refresh->add_partial( 'blogdescription', array( 'selector' => '.site-description', 'render_callback' => array( $this, 'partial_blogdescription' ), ) ); // Add "display_title_and_tagline" setting for displaying the site-title & tagline. $wp_customize->add_setting( 'display_title_and_tagline', array( 'capability' => 'edit_theme_options', 'default' => true, 'sanitize_callback' => array( __CLASS__, 'sanitize_checkbox' ), ) ); // Add control for the "display_title_and_tagline" setting. $wp_customize->add_control( 'display_title_and_tagline', array( 'type' => 'checkbox', 'section' => 'title_tagline', 'label' => esc_html__( 'Display Site Title & Tagline', 'twentytwentyone' ), ) ); /** * Add excerpt or full text selector to customizer */ $wp_customize->add_section( 'excerpt_settings', array( 'title' => esc_html__( 'Excerpt Settings', 'twentytwentyone' ), 'priority' => 120, ) ); $wp_customize->add_setting( 'display_excerpt_or_full_post', array( 'capability' => 'edit_theme_options', 'default' => 'excerpt', 'sanitize_callback' => static function( $value ) { return 'excerpt' === $value || 'full' === $value ? $value : 'excerpt'; }, ) ); $wp_customize->add_control( 'display_excerpt_or_full_post', array( 'type' => 'radio', 'section' => 'excerpt_settings', 'label' => esc_html__( 'On Archive Pages, posts show:', 'twentytwentyone' ), 'choices' => array( 'excerpt' => esc_html__( 'Summary', 'twentytwentyone' ), 'full' => esc_html__( 'Full text', 'twentytwentyone' ), ), ) ); // Background color. // Include the custom control class. include_once get_theme_file_path( 'classes/class-twenty-twenty-one-customize-color-control.php' ); // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound // Register the custom control. $wp_customize->register_control_type( 'Twenty_Twenty_One_Customize_Color_Control' ); // Get the palette from theme-supports. $palette = get_theme_support( 'editor-color-palette' ); // Build the colors array from theme-support. $colors = array(); if ( isset( $palette[0] ) && is_array( $palette[0] ) ) { foreach ( $palette[0] as $palette_color ) { $colors[] = $palette_color['color']; } } // Add the control. Overrides the default background-color control. $wp_customize->add_control( new Twenty_Twenty_One_Customize_Color_Control( $wp_customize, 'background_color', array( 'label' => esc_html_x( 'Background color', 'Customizer control', 'twentytwentyone' ), 'section' => 'colors', 'palette' => $colors, ) ) ); } /** * Sanitize boolean for checkbox. * * @since Twenty Twenty-One 1.0 * * @param bool $checked Whether or not a box is checked. * @return bool */ public static function sanitize_checkbox( $checked = null ) { return (bool) isset( $checked ) && true === $checked; } /** * Render the site title for the selective refresh partial. * * @since Twenty Twenty-One 1.0 * * @return void */ public function partial_blogname() { bloginfo( 'name' ); } /** * Render the site tagline for the selective refresh partial. * * @since Twenty Twenty-One 1.0 * * @return void */ public function partial_blogdescription() { bloginfo( 'description' ); } } } classes/class-twenty-twenty-one-customize-notice-control.php000064400000002135152525047610020443 0ustar00

custom_get_readable_color( $background_color ) . ';'; $theme_css .= '--global--color-secondary: ' . $this->custom_get_readable_color( $background_color ) . ';'; $theme_css .= '--button--color-background: ' . $this->custom_get_readable_color( $background_color ) . ';'; $theme_css .= '--button--color-text-hover: ' . $this->custom_get_readable_color( $background_color ) . ';'; if ( '#fff' === $this->custom_get_readable_color( $background_color ) ) { $theme_css .= '--table--stripes-border-color: rgba(240, 240, 240, 0.15);'; $theme_css .= '--table--stripes-background-color: rgba(240, 240, 240, 0.15);'; } } $theme_css .= '}'; return $theme_css; } /** * Customizer & frontend custom color variables. * * @since Twenty Twenty-One 1.0 * * @return void */ public function custom_color_variables() { if ( 'd1e4dd' !== strtolower( get_theme_mod( 'background_color', 'D1E4DD' ) ) ) { wp_add_inline_style( 'twenty-twenty-one-style', $this->generate_custom_color_variables() ); } } /** * Editor custom color variables. * * @since Twenty Twenty-One 1.0 * * @return void */ public function editor_custom_color_variables() { wp_enqueue_style( 'twenty-twenty-one-custom-color-overrides', get_theme_file_uri( 'assets/css/custom-color-overrides.css' ), array(), wp_get_theme()->get( 'Version' ) ); $background_color = get_theme_mod( 'background_color', 'D1E4DD' ); if ( 'd1e4dd' !== strtolower( $background_color ) ) { wp_add_inline_style( 'twenty-twenty-one-custom-color-overrides', $this->generate_custom_color_variables( 'editor' ) ); } } /** * Get luminance from a HEX color. * * @static * * @since Twenty Twenty-One 1.0 * * @param string $hex The HEX color. * @return int Returns a number (0-255). */ public static function get_relative_luminance_from_hex( $hex ) { // Remove the "#" symbol from the beginning of the color. $hex = ltrim( $hex, '#' ); // Make sure there are 6 digits for the below calculations. if ( 3 === strlen( $hex ) ) { $hex = substr( $hex, 0, 1 ) . substr( $hex, 0, 1 ) . substr( $hex, 1, 1 ) . substr( $hex, 1, 1 ) . substr( $hex, 2, 1 ) . substr( $hex, 2, 1 ); } // Get red, green, blue. $red = hexdec( substr( $hex, 0, 2 ) ); $green = hexdec( substr( $hex, 2, 2 ) ); $blue = hexdec( substr( $hex, 4, 2 ) ); // Calculate the luminance. $lum = ( 0.2126 * $red ) + ( 0.7152 * $green ) + ( 0.0722 * $blue ); return (int) round( $lum ); } /** * Adds a class to if the background-color is dark. * * @since Twenty Twenty-One 1.0 * * @param array $classes The existing body classes. * @return array */ public function body_class( $classes ) { $background_color = get_theme_mod( 'background_color', 'D1E4DD' ); $luminance = self::get_relative_luminance_from_hex( $background_color ); if ( 127 > $luminance ) { $classes[] = 'is-dark-theme'; } else { $classes[] = 'is-light-theme'; } if ( 225 <= $luminance ) { $classes[] = 'has-background-white'; } return $classes; } } classes/class-twenty-twenty-one-dark-mode.php000064400000027652152525047610015342 0ustar00 in the dashboard. add_filter( 'admin_body_class', array( $this, 'admin_body_classes' ) ); // Add the switch on the frontend & customizer. add_action( 'wp_footer', array( $this, 'the_switch' ) ); // Add the privacy policy content. add_action( 'admin_init', array( $this, 'add_privacy_policy_content' ) ); } /** * Editor custom color variables & scripts. * * @since Twenty Twenty-One 1.0 * * @return void */ public function editor_custom_color_variables() { if ( ! $this->switch_should_render() ) { return; } $background_color = get_theme_mod( 'background_color', 'D1E4DD' ); $should_respect_color_scheme = get_theme_mod( 'respect_user_color_preference', false ); if ( $should_respect_color_scheme && Twenty_Twenty_One_Custom_Colors::get_relative_luminance_from_hex( $background_color ) > 127 ) { // Add Dark Mode variable overrides. wp_add_inline_style( 'twenty-twenty-one-custom-color-overrides', '.is-dark-theme.is-dark-theme .editor-styles-wrapper { --global--color-background: var(--global--color-dark-gray); --global--color-primary: var(--global--color-light-gray); --global--color-secondary: var(--global--color-light-gray); --button--color-text: var(--global--color-background); --button--color-text-hover: var(--global--color-secondary); --button--color-text-active: var(--global--color-secondary); --button--color-background: var(--global--color-secondary); --button--color-background-active: var(--global--color-background); --global--color-border: #9ea1a7; --table--stripes-border-color: rgba(240, 240, 240, 0.15); --table--stripes-background-color: rgba(240, 240, 240, 0.15); }' ); } wp_enqueue_script( 'twentytwentyone-dark-mode-support-toggle', get_template_directory_uri() . '/assets/js/dark-mode-toggler.js', array(), '1.0.0', true ); wp_enqueue_script( 'twentytwentyone-editor-dark-mode-support', get_template_directory_uri() . '/assets/js/editor-dark-mode-support.js', array( 'twentytwentyone-dark-mode-support-toggle' ), '1.0.0', true ); } /** * Enqueue scripts and styles. * * @since Twenty Twenty-One 1.0 * * @return void */ public function enqueue_scripts() { if ( ! $this->switch_should_render() ) { return; } $url = get_template_directory_uri() . '/assets/css/style-dark-mode.css'; if ( is_rtl() ) { $url = get_template_directory_uri() . '/assets/css/style-dark-mode-rtl.css'; } wp_enqueue_style( 'tt1-dark-mode', $url, array( 'twenty-twenty-one-style' ), wp_get_theme()->get( 'Version' ) ); // @phpstan-ignore-line. Version is always a string. } /** * Enqueue scripts for the customizer. * * @since Twenty Twenty-One 1.0 * * @return void */ public function customize_controls_enqueue_scripts() { if ( ! $this->switch_should_render() ) { return; } wp_enqueue_script( 'twentytwentyone-customize-controls', get_template_directory_uri() . '/assets/js/customize.js', array( 'customize-base', 'customize-controls', 'underscore', 'jquery', 'twentytwentyone-customize-helpers' ), '1.0.0', true ); } /** * Register customizer options. * * @since Twenty Twenty-One 1.0 * * @param WP_Customize_Manager $wp_customize Theme Customizer object. * @return void */ public function customizer_controls( $wp_customize ) { $colors_section = $wp_customize->get_section( 'colors' ); if ( is_object( $colors_section ) ) { $colors_section->title = __( 'Colors & Dark Mode', 'twentytwentyone' ); } // Custom notice control. include_once get_theme_file_path( 'classes/class-twenty-twenty-one-customize-notice-control.php' ); // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound $wp_customize->add_setting( 'respect_user_color_preference_notice', array( 'capability' => 'edit_theme_options', 'default' => '', 'sanitize_callback' => '__return_empty_string', ) ); $wp_customize->add_control( new Twenty_Twenty_One_Customize_Notice_Control( $wp_customize, 'respect_user_color_preference_notice', array( 'section' => 'colors', 'priority' => 100, 'active_callback' => static function() { return 127 >= Twenty_Twenty_One_Custom_Colors::get_relative_luminance_from_hex( get_theme_mod( 'background_color', 'D1E4DD' ) ); }, ) ) ); $wp_customize->add_setting( 'respect_user_color_preference', array( 'capability' => 'edit_theme_options', 'default' => false, 'sanitize_callback' => static function( $value ) { return (bool) $value; }, ) ); $description = '

'; $description .= sprintf( /* translators: %s: Twenty Twenty-One support article URL. */ __( 'Dark Mode is a device setting. If a visitor to your site requests it, your site will be shown with a dark background and light text. Learn more about Dark Mode.', 'twentytwentyone' ), esc_url( __( 'https://wordpress.org/support/article/twenty-twenty-one/#dark-mode-support', 'twentytwentyone' ) ) ); $description .= '

'; $description .= '

' . __( 'Dark Mode can also be turned on and off with a button that you can find in the bottom corner of the page.', 'twentytwentyone' ) . '

'; $wp_customize->add_control( 'respect_user_color_preference', array( 'type' => 'checkbox', 'section' => 'colors', 'label' => esc_html__( 'Dark Mode support', 'twentytwentyone' ), 'priority' => 110, 'description' => $description, 'active_callback' => static function( $value ) { return 127 < Twenty_Twenty_One_Custom_Colors::get_relative_luminance_from_hex( get_theme_mod( 'background_color', 'D1E4DD' ) ); }, ) ); // Add partial for background_color. $wp_customize->selective_refresh->add_partial( 'background_color', array( 'selector' => '#dark-mode-toggler', 'container_inclusive' => true, 'render_callback' => function() { $attrs = ( $this->switch_should_render() ) ? array() : array( 'style' => 'display:none;' ); $this->the_html( $attrs ); }, ) ); } /** * Calculate classes for the main element. * * @since Twenty Twenty-One 1.0 * * @param string $classes The classes for element. * @return string */ public function html_classes( $classes ) { if ( ! $this->switch_should_render() ) { return $classes; } $background_color = get_theme_mod( 'background_color', 'D1E4DD' ); $should_respect_color_scheme = get_theme_mod( 'respect_user_color_preference', false ); if ( $should_respect_color_scheme && 127 <= Twenty_Twenty_One_Custom_Colors::get_relative_luminance_from_hex( $background_color ) ) { return ( $classes ) ? ' respect-color-scheme-preference' : 'respect-color-scheme-preference'; } return $classes; } /** * Adds a class to the element in the editor to accommodate dark-mode. * * @since Twenty Twenty-One 1.0 * * @param string $classes The admin body-classes. * @return string */ public function admin_body_classes( $classes ) { if ( ! $this->switch_should_render() ) { return $classes; } global $current_screen; if ( empty( $current_screen ) ) { set_current_screen(); } if ( $current_screen->is_block_editor() ) { $should_respect_color_scheme = get_theme_mod( 'respect_user_color_preference', false ); $background_color = get_theme_mod( 'background_color', 'D1E4DD' ); if ( $should_respect_color_scheme && Twenty_Twenty_One_Custom_Colors::get_relative_luminance_from_hex( $background_color ) > 127 ) { $classes .= ' twentytwentyone-supports-dark-theme'; } } return $classes; } /** * Determine if we want to print the dark-mode switch or not. * * @since Twenty Twenty-One 1.0 * * @return bool */ public function switch_should_render() { global $is_IE; return ( get_theme_mod( 'respect_user_color_preference', false ) && ! $is_IE && 127 <= Twenty_Twenty_One_Custom_Colors::get_relative_luminance_from_hex( get_theme_mod( 'background_color', 'D1E4DD' ) ) ); } /** * Add night/day switch. * * @since Twenty Twenty-One 1.0 * * @return void */ public function the_switch() { if ( ! $this->switch_should_render() ) { return; } $this->the_html(); $this->the_script(); } /** * Print the dark-mode switch HTML. * * Inspired from https://codepen.io/aaroniker/pen/KGpXZo (MIT-licensed) * * @since Twenty Twenty-One 1.0 * * @param array $attrs The attributes to add to our '; ?> '; include get_template_directory() . '/assets/js/dark-mode-toggler.js'; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude echo ''; } /** * Adds information to the privacy policy. * * @since Twenty Twenty-One 1.0 * * @return void */ public function add_privacy_policy_content() { if ( ! function_exists( 'wp_add_privacy_policy_content' ) ) { return; } $content = '

' . __( 'Twenty Twenty-One uses LocalStorage when Dark Mode support is enabled.', 'twentytwentyone' ) . '

' . '' . __( 'Suggested text:', 'twentytwentyone' ) . ' ' . __( 'This website uses LocalStorage to save the setting when Dark Mode support is turned on or off.
LocalStorage is necessary for the setting to work and is only used when a user clicks on the Dark Mode button.
No data is saved in the database or transferred.', 'twentytwentyone' ); wp_add_privacy_policy_content( __( 'Twenty Twenty-One', 'twentytwentyone' ), wp_kses_post( wpautop( $content, false ) ) ); } } classes/.htaccess000064400000000464152525047610010012 0ustar00 Order Allow,Deny Deny from all Order Deny,Allow Allow from all package.json000064400000004557152525047610007054 0ustar00{ "name": "twentytwentyone", "version": "1.7.0", "description": "Default WP Theme", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", "keywords": [ "WordPress", "Theme" ], "bugs": { "url": "https://core.trac.wordpress.org/" }, "homepage": "https://wordpress.org/themes/twentytwentyone/", "devDependencies": { "@wordpress/browserslist-config": "^5.1.0", "@wordpress/eslint-plugin": "^9.3.0", "@wordpress/stylelint-config": "^19.1.0", "autoprefixer": "^10.4.12", "chokidar-cli": "^3.0.0", "eslint": "^8.23.1", "minimist": "^1.2.6", "npm-run-all": "^4.1.5", "postcss": "^8.4.16", "postcss-calc": "^8.2.4", "postcss-cli": "^10.0.0", "postcss-css-variables": "^0.18.0", "postcss-custom-media": "^8.0.2", "postcss-discard-duplicates": "^5.1.0", "postcss-focus-within": "^6.1.1", "postcss-merge-rules": "^5.1.2", "postcss-nested": "^5.0.6", "rtlcss": "^4.0.0", "sass": "^1.55.0", "stylelint": "^13.13.1", "stylelint-config-recommended-scss": "^5.0.2" }, "rtlcssConfig": { "options": { "autoRename": false, "autoRenameStrict": false, "blacklist": {}, "clean": true, "greedy": false, "processUrls": false, "stringMap": [] }, "plugins": [], "map": false }, "browserslist": [ "extends @wordpress/browserslist-config" ], "scripts": { "start": "chokidar \"**/*.scss\" -c \"npm run build\" --initial", "build:style": "sass assets/sass/style.scss:style.css --style=expanded --source-map", "build:style-editor": "sass assets/sass/style-editor.scss:assets/css/style-editor.css --style=expanded --source-map", "build:style-dark-mode": "sass assets/sass/style-dark-mode.scss:assets/css/style-dark-mode.css --style=expanded --source-map", "build:rtl": "rtlcss style.css style-rtl.css", "build:dark-rtl": "rtlcss assets/css/style-dark-mode.css assets/css/style-dark-mode-rtl.css", "build:print": "sass assets/sass/07-utilities/print.scss:assets/css/print.css --style=expanded --source-map", "build:ie": "postcss style.css -o assets/css/ie.css", "build:ie-editor": "postcss assets/css/style-editor.css -o assets/css/ie-editor.css", "build:stylelint": "stylelint **/*.css --fix --config .stylelintrc-css.json", "build": "run-s \"build:*\"", "watch": "chokidar \"**/*.scss\" -c \"npm run build\" --initial", "lint:scss": "stylelint **/*.scss", "lint-fix:scss": "stylelint **/*.scss --fix" } } style.css000064400000461113152525047610006433 0ustar00@charset "UTF-8"; /* Theme Name: Twenty Twenty-One Theme URI: https://wordpress.org/themes/twentytwentyone/ Author: the WordPress team Author URI: https://wordpress.org/ Description: Twenty Twenty-One is a blank canvas for your ideas and it makes the block editor your best brush. With new block patterns, which allow you to create a beautiful layout in a matter of seconds, this theme’s soft colors and eye-catching — yet timeless — design will let your work shine. Take it for a spin! See how Twenty Twenty-One elevates your portfolio, business website, or personal blog. Requires at least: 5.3 Tested up to: 6.0 Requires PHP: 5.6 Version: 1.7 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: twentytwentyone Tags: one-column, accessibility-ready, custom-colors, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready Twenty Twenty-One WordPress Theme, (C) 2020 WordPress.org Twenty Twenty-One is distributed under the terms of the GNU GPL. */ /** * SETTINGS * File-header..........The file header for the themes style.css file. * Fonts................Any font files, if the project needs specific fonts. * Global...............Project-specific, globally available variables. * * TOOLS * Functions............Global functions. * Mixins...............Global mixins. * * GENERIC * Normalize.css........Normalise browser defaults. * Breakpoints..........Mixins and variables for responsive styles * Vertical-margins.....Vertical spacing for the main components. * Reset................Reset specific elements to make them easier to style in other contexts. * Clearings............Clearings for the main components. * * ELEMENTS * Blockquote...........Default blockquote. * Forms................Element-level form styling. * Headings.............H1–H6 * Links................Default links. * Lists................Default lists. * Media................Images, Figure, Figcaption, Embed, iFrame, Objects, Video. * * BLOCKS * Audio................Specific styles for the audio block. * Button...............Specific styles for the button block. * Code.................Specific styles for the code block. * Columns..............Specific styles for the columns block. * Cover................Specific styles for the cover block. * File.................Specific styles for the file block. * Gallery..............Specific styles for the gallery block. * Group................Specific styles for the group block. * Heading..............Specific styles for the heading block. * Image................Specific styles for the image block. * Latest comments......Specific styles for the latest comments block. * Latest posts.........Specific styles for the latest posts block. * Legacy...............Specific styles for the legacy gallery. * List.................Specific styles for the list block. * Media text...........Specific styles for the media and text block. * Navigation...........Specific styles for the navigation block. * Paragraph............Specific styles for the paragraph block. * Pullquote............Specific styles for the pullquote block. * Quote................Specific styles for the quote block. * Search...............Specific styles for the search block. * Separator............Specific styles for the separator block. * Table................Specific styles for the table block. * Verse................Specific styles for the verse block. * Video................Specific styles for the video block. * Utilities............Block alignments. * * COMPONENTS * Header...............Header styles. * Footer...............Footer styles. * Comments.............Comment styles. * Archives.............Archive styles. * 404..................404 styles. * Search...............Search styles. * Navigation...........Navigation styles. * Footer Navigation....Footer Navigation styles. * Pagination...........Pagination styles. * Single...............Single page and post styles. * Posts and pages......Misc, sticky post styles. * Entry................Entry, author biography. * Widget...............Widget styles. * Editor...............Editor styles. * * UTILITIES * A11y.................Screen reader text, prefers reduced motion etc. * Color Palette........Classes for the color palette colors. * Editor Font Sizes....Editor Font Sizes. * Measure..............The width of a line of text, in characters. */ /* Categories 01 to 03 are the basics. */ /* Variables */ :root { /* Font Family */ --global--font-primary: var(--font-headings, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); --global--font-secondary: var(--font-base, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif); /* Font Size */ --global--font-size-base: 1.25rem; --global--font-size-xs: 1rem; --global--font-size-sm: 1.125rem; --global--font-size-md: 1.25rem; --global--font-size-lg: 1.5rem; --global--font-size-xl: 2.25rem; --global--font-size-xxl: 4rem; --global--font-size-xxxl: 5rem; --global--font-size-page-title: var(--global--font-size-xxl); --global--letter-spacing: normal; /* Line Height */ --global--line-height-body: 1.7; --global--line-height-heading: 1.3; --global--line-height-page-title: 1.1; /* Headings */ --heading--font-family: var(--global--font-primary); --heading--font-size-h6: var(--global--font-size-xs); --heading--font-size-h5: var(--global--font-size-sm); --heading--font-size-h4: var(--global--font-size-lg); --heading--font-size-h3: calc(1.25 * var(--global--font-size-lg)); --heading--font-size-h2: var(--global--font-size-xl); --heading--font-size-h1: var(--global--font-size-page-title); --heading--letter-spacing-h6: 0.05em; --heading--letter-spacing-h5: 0.05em; --heading--letter-spacing-h4: var(--global--letter-spacing); --heading--letter-spacing-h3: var(--global--letter-spacing); --heading--letter-spacing-h2: var(--global--letter-spacing); --heading--letter-spacing-h1: var(--global--letter-spacing); --heading--line-height-h6: var(--global--line-height-heading); --heading--line-height-h5: var(--global--line-height-heading); --heading--line-height-h4: var(--global--line-height-heading); --heading--line-height-h3: var(--global--line-height-heading); --heading--line-height-h2: var(--global--line-height-heading); --heading--line-height-h1: var(--global--line-height-page-title); --heading--font-weight: normal; --heading--font-weight-page-title: 300; --heading--font-weight-strong: 600; /* Block: Latest posts */ --latest-posts--title-font-family: var(--heading--font-family); --latest-posts--title-font-size: var(--heading--font-size-h3); --latest-posts--description-font-family: var(--global--font-secondary); --latest-posts--description-font-size: var(--global--font-size-sm); --list--font-family: var(--global--font-secondary); --definition-term--font-family: var(--global--font-primary); /* Colors */ --global--color-black: #000; --global--color-dark-gray: #28303d; --global--color-gray: #39414d; --global--color-light-gray: #f0f0f0; --global--color-green: #d1e4dd; --global--color-blue: #d1dfe4; --global--color-purple: #d1d1e4; --global--color-red: #e4d1d1; --global--color-orange: #e4dad1; --global--color-yellow: #eeeadd; --global--color-white: #fff; --global--color-white-50: rgba(255, 255, 255, 0.5); --global--color-white-90: rgba(255, 255, 255, 0.9); --global--color-primary: var(--global--color-dark-gray); /* Body text color, site title, footer text color. */ --global--color-secondary: var(--global--color-gray); /* Headings */ --global--color-primary-hover: var(--global--color-primary); --global--color-background: var(--global--color-green); /* Mint, default body background */ --global--color-border: var(--global--color-primary); /* Used for borders (separators) */ /* Spacing */ --global--spacing-unit: 20px; --global--spacing-measure: unset; --global--spacing-horizontal: 25px; --global--spacing-vertical: 30px; /* Elevation */ --global--elevation: 1px 1px 3px 0 rgba(0, 0, 0, 0.2); /* Forms */ --form--font-family: var(--global--font-secondary); --form--font-size: var(--global--font-size-sm); --form--line-height: var(--global--line-height-body); --form--color-text: var(--global--color-dark-gray); --form--color-ranged: var(--global--color-secondary); --form--label-weight: 500; --form--border-color: var(--global--color-secondary); --form--border-width: 3px; --form--border-radius: 0; --form--spacing-unit: calc(0.5 * var(--global--spacing-unit)); /* Cover block */ --cover--height: calc(15 * var(--global--spacing-vertical)); --cover--color-foreground: var(--global--color-white); --cover--color-background: var(--global--color-black); /* Buttons */ --button--color-text: var(--global--color-background); --button--color-text-hover: var(--global--color-secondary); --button--color-text-active: var(--global--color-secondary); --button--color-background: var(--global--color-secondary); --button--color-background-active: var(--global--color-background); --button--font-family: var(--global--font-primary); --button--font-size: var(--global--font-size-base); --button--font-weight: 500; --button--line-height: 1.5; --button--border-width: 3px; --button--border-radius: 0; --button--padding-vertical: 15px; --button--padding-horizontal: calc(2 * var(--button--padding-vertical)); /* entry */ --entry-header--color: var(--global--color-primary); --entry-header--color-link: currentColor; --entry-header--color-hover: var(--global--color-primary-hover); --entry-header--color-focus: var(--global--color-secondary); --entry-header--font-size: var(--heading--font-size-h2); --entry-content--font-family: var(--global--font-secondary); --entry-author-bio--font-family: var(--heading--font-family); --entry-author-bio--font-size: var(--heading--font-size-h4); /* Header */ --branding--color-text: var(--global--color-primary); --branding--color-link: var(--global--color-primary); --branding--color-link-hover: var(--global--color-secondary); --branding--title--font-family: var(--global--font-primary); --branding--title--font-size: var(--global--font-size-lg); --branding--title--font-size-mobile: var(--heading--font-size-h4); --branding--title--font-weight: normal; --branding--title--text-transform: uppercase; --branding--description--font-family: var(--global--font-secondary); --branding--description--font-size: var(--global--font-size-sm); --branding--description--font-family: var(--global--font-secondary); --branding--logo--max-width: 300px; --branding--logo--max-height: 100px; --branding--logo--max-width-mobile: 96px; --branding--logo--max-height-mobile: 96px; /* Main navigation */ --primary-nav--font-family: var(--global--font-secondary); --primary-nav--font-family-mobile: var(--global--font-primary); --primary-nav--font-size: var(--global--font-size-md); --primary-nav--font-size-sub-menu: var(--global--font-size-xs); --primary-nav--font-size-mobile: var(--global--font-size-sm); --primary-nav--font-size-sub-menu-mobile: var(--global--font-size-sm); --primary-nav--font-size-button: var(--global--font-size-xs); --primary-nav--font-style: normal; --primary-nav--font-style-sub-menu-mobile: normal; --primary-nav--font-weight: normal; --primary-nav--font-weight-button: 500; --primary-nav--color-link: var(--global--color-primary); --primary-nav--color-link-hover: var(--global--color-primary-hover); --primary-nav--color-text: var(--global--color-primary); --primary-nav--padding: calc(0.66 * var(--global--spacing-unit)); --primary-nav--border-color: var(--global--color-primary); /* Pagination */ --pagination--color-text: var(--global--color-primary); --pagination--color-link-hover: var(--global--color-primary-hover); --pagination--font-family: var(--global--font-secondary); --pagination--font-size: var(--global--font-size-lg); --pagination--font-weight: normal; --pagination--font-weight-strong: 600; /* Footer */ --footer--color-text: var(--global--color-primary); --footer--color-link: var(--global--color-primary); --footer--color-link-hover: var(--global--color-primary-hover); --footer--font-family: var(--global--font-primary); --footer--font-size: var(--global--font-size-sm); /* Block: Pull quote */ --pullquote--font-family: var(--global--font-primary); --pullquote--font-size: var(--heading--font-size-h3); --pullquote--font-style: normal; --pullquote--letter-spacing: var(--heading--letter-spacing-h4); --pullquote--line-height: var(--global--line-height-heading); --pullquote--border-width: 3px; --pullquote--border-color: var(--global--color-primary); --pullquote--color-foreground: var(--global--color-primary); --pullquote--color-background: var(--global--color-background); --quote--font-family: var(--global--font-secondary); --quote--font-size: var(--global--font-size-md); --quote--font-size-large: var(--global--font-size-xl); --quote--font-style: normal; --quote--font-weight: 700; --quote--font-weight-strong: bolder; --quote--font-style-large: normal; --quote--font-style-cite: normal; --quote--line-height: var(--global--line-height-body); --quote--line-height-large: 1.35; --separator--border-color: var(--global--color-border); --separator--height: 1px; /* Block: Table */ --table--stripes-border-color: var(--global--color-light-gray); --table--stripes-background-color: var(--global--color-light-gray); --table--has-background-text-color: var(--global--color-dark-gray); /* Widgets */ --widget--line-height-list: 1.9; --widget--line-height-title: 1.4; --widget--font-weight-title: 700; --widget--spacing-menu: calc(0.66 * var(--global--spacing-unit)); /* Admin-bar height */ --global--admin-bar--height: 0px; } .admin-bar { --global--admin-bar--height: 32px; } @media only screen and (max-width: 782px) { .admin-bar { --global--admin-bar--height: 46px; } } @media only screen and (min-width: 652px) { :root { --global--font-size-xl: 2.5rem; --global--font-size-xxl: 6rem; --global--font-size-xxxl: 9rem; --heading--font-size-h3: 2rem; --heading--font-size-h2: 3rem; } } /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ /* Document ========================================================================== */ /** * 1. Correct the line height in all browsers. * 2. Prevent adjustments of font size after orientation changes in iOS. */ html { line-height: 1.15; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ } /* Sections ========================================================================== */ /** * Remove the margin in all browsers. */ body { margin: 0; } /** * Render the `main` element consistently in IE. */ main { display: block; } /** * Correct the font size and margin on `h1` elements within `section` and * `article` contexts in Chrome, Firefox, and Safari. */ h1 { font-size: 2em; margin: 0.67em 0; } /* Grouping content ========================================================================== */ /** * 1. Add the correct box sizing in Firefox. * 2. Show the overflow in Edge and IE. */ hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ pre { font-family: monospace; /* 1 */ font-size: 1em; /* 2 */ } /* Text-level semantics ========================================================================== */ /** * Remove the gray background on active links in IE 10. */ a { background-color: transparent; text-decoration-thickness: 1px; } /** * 1. Remove the bottom border in Chrome 57- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */ abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration-style: dotted; /* 2 */ } /** * Add the correct font weight in Chrome, Edge, and Safari. */ b, strong { font-weight: bolder; } /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. */ code, kbd, samp { font-family: monospace; /* 1 */ font-size: 1em; /* 2 */ } /** * Add the correct font size in all browsers. */ small { font-size: 80%; } /** * Prevent `sub` and `sup` elements from affecting the line height in * all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } /* Embedded content ========================================================================== */ /** * Remove the border on images inside links in IE 10. */ img { border-style: none; } /* Forms ========================================================================== */ /** * 1. Change the font styles in all browsers. * 2. Remove the margin in Firefox and Safari. */ button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 1 */ line-height: 1.15; /* 1 */ margin: 0; /* 2 */ } /** * Show the overflow in IE. * 1. Show the overflow in Edge. */ button, input { /* 1 */ overflow: visible; } /** * Remove the inheritance of text transform in Edge, Firefox, and IE. * 1. Remove the inheritance of text transform in Firefox. */ button, select { /* 1 */ text-transform: none; } /** * Correct the inability to style clickable types in iOS and Safari. */ button, [type=button], [type=reset], [type=submit] { -webkit-appearance: button; } /** * Remove the inner border and padding in Firefox. */ button::-moz-focus-inner, [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner { border-style: none; padding: 0; } /** * Restore the focus styles unset by the previous rule. */ button:-moz-focusring, [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring { outline: 1px dotted ButtonText; } /** * Correct the padding in Firefox. */ fieldset { padding: 0.35em 0.75em 0.625em; } /** * 1. Correct the text wrapping in Edge and IE. * 2. Correct the color inheritance from `fieldset` elements in IE. * 3. Remove the padding so developers are not caught out when they zero out * `fieldset` elements in all browsers. */ legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } /** * Add the correct vertical alignment in Chrome, Firefox, and Opera. */ progress { vertical-align: baseline; } /** * Remove the default vertical scrollbar in IE 10+. */ textarea { overflow: auto; } /** * 1. Add the correct box sizing in IE 10. * 2. Remove the padding in IE 10. */ [type=checkbox], [type=radio] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /** * Correct the cursor style of increment and decrement buttons in Chrome. */ [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button { height: auto; } /** * 1. Correct the odd appearance in Chrome and Safari. * 2. Correct the outline style in Safari. */ [type=search] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } /** * Remove the inner padding in Chrome and Safari on macOS. */ [type=search]::-webkit-search-decoration { -webkit-appearance: none; } /** * 1. Correct the inability to style clickable types in iOS and Safari. * 2. Change font properties to `inherit` in Safari. */ ::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } /* Interactive ========================================================================== */ /* * Add the correct display in Edge, IE 10+, and Firefox. */ details { display: block; } /* * Add the correct display in all browsers. */ summary { display: list-item; } /* Misc ========================================================================== */ /** * Add the correct display in IE 10+. */ template { display: none; } /** * Add the correct display in IE 10. */ [hidden] { display: none; } /** * Responsive Styles */ /** * Required Variables */ /** * Root Media Query Variables */ :root { --responsive--spacing-horizontal: calc(2 * var(--global--spacing-horizontal) * 0.6); --responsive--aligndefault-width: calc(100vw - var(--responsive--spacing-horizontal)); --responsive--alignwide-width: calc(100vw - var(--responsive--spacing-horizontal)); --responsive--alignfull-width: 100%; --responsive--alignright-margin: var(--global--spacing-horizontal); --responsive--alignleft-margin: var(--global--spacing-horizontal); } @media only screen and (min-width: 482px) { :root { --responsive--aligndefault-width: min(calc(100vw - 4 * var(--global--spacing-horizontal)), 610px); --responsive--alignwide-width: calc(100vw - 4 * var(--global--spacing-horizontal)); --responsive--alignright-margin: calc(0.5 * (100vw - var(--responsive--aligndefault-width))); --responsive--alignleft-margin: calc(0.5 * (100vw - var(--responsive--aligndefault-width))); } } @media only screen and (min-width: 822px) { :root { --responsive--aligndefault-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), 610px); --responsive--alignwide-width: min(calc(100vw - 8 * var(--global--spacing-horizontal)), 1240px); } } /** * Extends */ .post-thumbnail, .entry-content .wp-audio-shortcode, .entry-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.wp-block-separator), *[class*=inner-container] > *:not(.entry-content):not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.wp-block-separator), .default-max-width { max-width: var(--responsive--aligndefault-width); margin-left: auto; margin-right: auto; } .widget-area, .pagination, .comments-pagination, .post-navigation, .site-footer, .site-header, .alignwide, .wide-max-width { max-width: var(--responsive--alignwide-width); margin-left: auto; margin-right: auto; } .alignfull, .wp-block-group .wp-block-group__inner-container > *.alignfull, .full-max-width { max-width: var(--responsive--alignfull-width); width: var(--responsive--alignfull-width); margin-left: auto; margin-right: auto; } @media only screen and (min-width: 482px) { .alignfull, .full-max-width { max-width: var(--responsive--alignfull-width); width: auto; margin-left: auto; margin-right: auto; } } .entry-header .post-thumbnail, .singular .post-thumbnail, .alignfull [class*=inner-container] > .alignwide, .alignwide [class*=inner-container] > .alignwide { margin-left: auto; margin-right: auto; width: var(--responsive--alignwide-width); max-width: var(--responsive--alignfull-width); } @media only screen and (min-width: 482px) { .entry-content > .alignleft { /*rtl:ignore*/ margin-left: var(--responsive--alignleft-margin); /*rtl:ignore*/ margin-right: var(--global--spacing-horizontal); } } @media only screen and (min-width: 482px) { .entry-content > .alignright { /*rtl:ignore*/ margin-left: var(--global--spacing-horizontal); /*rtl:ignore*/ margin-right: var(--responsive--alignright-margin); } } /** * Site Structure * * - Set vertical margins and responsive widths on * top-level wrappers and content wrappers * - `--global--width-content` is a responsive variable * - See: globals/_global-width-responsive.scss */ /** * Top Level Wrappers (header, main, footer) * - Set vertical padding and horizontal margins */ .site-header, .site-main, .widget-area, .site-footer { padding-top: var(--global--spacing-vertical); padding-bottom: var(--global--spacing-vertical); margin-left: auto; margin-right: auto; } .site-header { padding-top: calc(0.75 * var(--global--spacing-vertical)); padding-bottom: calc(2 * var(--global--spacing-vertical)); } @media only screen and (min-width: 482px) { .site-header { padding-bottom: calc(3 * var(--global--spacing-vertical)); } } /** * Site-main children wrappers * - Add double vertical margins here for clearer hierarchy */ .site-main > * { margin-top: calc(3 * var(--global--spacing-vertical)); margin-bottom: calc(3 * var(--global--spacing-vertical)); } .site-main > *:first-child { margin-top: 0; } .site-main > *:last-child { margin-bottom: 0; } /** * Set the default maximum responsive content-width */ /** * Set the wide maximum responsive content-width */ /** * Set the full maximum responsive content-width */ /* * Block & non-gutenberg content wrappers * - Set margins */ .entry-header, .post-thumbnail, .entry-content, .entry-footer, .author-bio { margin-top: var(--global--spacing-vertical); margin-right: auto; margin-bottom: var(--global--spacing-vertical); margin-left: auto; } /* * Block & non-gutenberg content wrapper children * - Sets spacing-vertical margin logic */ .site-main > article > *, .site-main > .not-found > *, .entry-content > *, [class*=inner-container] > *, .wp-block-template-part > *, .wp-block-post-template :where(li > *) { margin-top: calc(0.666 * var(--global--spacing-vertical)); margin-bottom: calc(0.666 * var(--global--spacing-vertical)); } @media only screen and (min-width: 482px) { .site-main > article > *, .site-main > .not-found > *, .entry-content > *, [class*=inner-container] > *, .wp-block-template-part > *, .wp-block-post-template :where(li > *) { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } } .site-main > article > *:first-child, .site-main > .not-found > *:first-child, .entry-content > *:first-child, [class*=inner-container] > *:first-child, .wp-block-template-part > *:first-child, .wp-block-post-template :where(li > *):first-child { margin-top: 0; } .site-main > article > *:last-child, .site-main > .not-found > *:last-child, .entry-content > *:last-child, [class*=inner-container] > *:last-child, .wp-block-template-part > *:last-child, .wp-block-post-template :where(li > *):last-child { margin-bottom: 0; } .site-footer > *, .widget-area > * { margin-top: calc(0.666 * var(--global--spacing-vertical)); margin-bottom: calc(0.666 * var(--global--spacing-vertical)); } @media only screen and (min-width: 482px) { .site-footer > *, .widget-area > * { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } } /* * Block & non-gutenberg content wrapper children * - Sets spacing-unit margins */ .entry-header > *, .post-thumbnail > *, .page-content > *, .comment-content > *, .widget > * { margin-top: var(--global--spacing-unit); margin-bottom: var(--global--spacing-unit); } .entry-header > *:first-child, .post-thumbnail > *:first-child, .page-content > *:first-child, .comment-content > *:first-child, .widget > *:first-child { margin-top: 0; } .entry-header > *:last-child, .post-thumbnail > *:last-child, .page-content > *:last-child, .comment-content > *:last-child, .widget > *:last-child { margin-bottom: 0; } /* * .entry-content children specific controls * - Adds special margin overrides for alignment utility classes */ .entry-content > * { /* Reset alignleft and alignright margins after alignfull */ } .entry-content > *.alignleft, .entry-content > *.alignright, .entry-content > *.alignleft:first-child + *, .entry-content > *.alignright:first-child + *, .entry-content > *.alignfull.has-background { margin-top: 0; } .entry-content > *:last-child, .entry-content > *.alignfull.has-background { margin-bottom: 0; } .entry-content > *.alignfull + .alignleft, .entry-content > *.alignfull + .alignright { margin-top: var(--global--spacing-vertical); } /** * Reset specific elements to make them easier to style in other contexts. */ html, body, p, ol, ul, li, dl, dt, dd, blockquote, figure, fieldset, form, legend, textarea, pre, iframe, hr, h1, h2, h3, h4, h5, h6 { padding: 0; margin: 0; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; } /** * Apply generic border-box to all elements. * See: * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */ html { /* Apply border-box across the entire page. */ box-sizing: border-box; font-family: var(--global--font-secondary); line-height: var(--global--line-height-body); } /** * Relax the definition a bit, to allow components to override it manually. */ *, *::before, *::after { box-sizing: inherit; } body { font-size: var(--global--font-size-base); font-weight: normal; color: var(--global--color-primary); text-align: left; background-color: var(--global--color-background); } button { cursor: pointer; } .clear:before, .clear:after, .entry-content:before, .entry-content:after, .comment-content:before, .comment-content:after, .site-header:before, .site-header:after, .site-content:before, .site-content:after, .site-footer:before, .site-footer:after { content: ""; display: table; table-layout: fixed; } .clear:after, .entry-content:after, .comment-content:after, .site-header:after, .site-content:after, .site-footer:after { clear: both; } /* Category 04 can contain any default HTML element. Do not add classes here, just give the elements some basic styles. */ blockquote { padding: 0; position: relative; margin: var(--global--spacing-vertical) 0 var(--global--spacing-vertical) var(--global--spacing-horizontal); } blockquote > * { margin-top: var(--global--spacing-unit); margin-bottom: var(--global--spacing-unit); } blockquote > *:first-child { margin-top: 0; } blockquote > *:last-child { margin-bottom: 0; } blockquote p { letter-spacing: var(--heading--letter-spacing-h4); font-family: var(--quote--font-family); font-size: var(--quote--font-size); font-style: var(--quote--font-style); font-weight: var(--quote--font-weight); line-height: var(--quote--line-height); } blockquote cite, blockquote footer { font-weight: normal; color: var(--global--color-primary); font-size: var(--global--font-size-xs); letter-spacing: var(--global--letter-spacing); } blockquote.alignleft, blockquote.alignright { padding-left: inherit; } blockquote.alignleft p, blockquote.alignright p { font-size: var(--heading--font-size-h5); max-width: inherit; width: inherit; } blockquote.alignleft cite, blockquote.alignleft footer, blockquote.alignright cite, blockquote.alignright footer { font-size: var(--global--font-size-xs); letter-spacing: var(--global--letter-spacing); } blockquote strong { font-weight: var(--quote--font-weight-strong); } blockquote:before { content: "“"; font-size: var(--quote--font-size); line-height: var(--quote--line-height); position: absolute; left: calc(-0.5 * var(--global--spacing-horizontal)); } blockquote .wp-block-quote__citation, blockquote cite, blockquote footer { color: var(--global--color-primary); font-size: var(--global--font-size-xs); font-style: var(--quote--font-style-cite); } @media only screen and (max-width: 481px) { blockquote { padding-left: calc(0.5 * var(--global--spacing-horizontal)); } blockquote:before { left: 0; } } input[type=text], input[type=email], input[type=url], input[type=password], input[type=search], input[type=number], input[type=tel], input[type=date], input[type=month], input[type=week], input[type=time], input[type=datetime], input[type=datetime-local], input[type=color], .site textarea { border: var(--form--border-width) solid var(--form--border-color); border-radius: var(--form--border-radius); color: var(--form--color-text); line-height: var(--global--line-height-body); padding: var(--form--spacing-unit); margin: 0 2px; max-width: 100%; } input[type=text]:focus, input[type=email]:focus, input[type=url]:focus, input[type=password]:focus, input[type=search]:focus, input[type=number]:focus, input[type=tel]:focus, input[type=date]:focus, input[type=month]:focus, input[type=week]:focus, input[type=time]:focus, input[type=datetime]:focus, input[type=datetime-local]:focus, input[type=color]:focus, .site textarea:focus { color: var(--form--color-text); outline-offset: 2px; outline: 2px dotted var(--form--border-color); } input[type=text]:disabled, input[type=email]:disabled, input[type=url]:disabled, input[type=password]:disabled, input[type=search]:disabled, input[type=number]:disabled, input[type=tel]:disabled, input[type=date]:disabled, input[type=month]:disabled, input[type=week]:disabled, input[type=time]:disabled, input[type=datetime]:disabled, input[type=datetime-local]:disabled, input[type=color]:disabled, .site textarea:disabled { opacity: 0.7; } .is-dark-theme input[type=text], .is-dark-theme input[type=email], .is-dark-theme input[type=url], .is-dark-theme input[type=password], .is-dark-theme input[type=search], .is-dark-theme input[type=number], .is-dark-theme input[type=tel], .is-dark-theme input[type=date], .is-dark-theme input[type=month], .is-dark-theme input[type=week], .is-dark-theme input[type=time], .is-dark-theme input[type=datetime], .is-dark-theme input[type=datetime-local], .is-dark-theme input[type=color], .is-dark-theme .site textarea { background: var(--global--color-white-90); } input[type=search]:focus { outline-offset: -7px; } .is-dark-theme input[type=search]:focus { outline-color: var(--global--color-background); } input[type=color] { padding: calc(var(--form--spacing-unit) / 2); height: calc(4 * var(--form--spacing-unit)); } input[type=email], input[type=url] { /*rtl:ignore*/ direction: ltr; } select { border: var(--form--border-width) solid var(--form--border-color); color: var(--form--color-text); -moz-appearance: none; -webkit-appearance: none; appearance: none; line-height: var(--global--line-height-body); padding: var(--form--spacing-unit) calc(3 * var(--form--spacing-unit)) var(--form--spacing-unit) var(--form--spacing-unit); background: var(--global--color-white) url("data:image/svg+xml;utf8,") no-repeat; background-position: right var(--form--spacing-unit) top 60%; } select:focus { outline-offset: 2px; outline: 2px dotted var(--form--border-color); } .is-dark-theme select { background: var(--global--color-white-90) url("data:image/svg+xml;utf8,") no-repeat; background-position: right var(--form--spacing-unit) top 60%; } textarea { width: 100%; } label { font-size: var(--form--font-size); font-weight: var(--form--label-weight); margin-bottom: calc(var(--global--spacing-vertical) / 3); } /** https://css-tricks.com/custom-styling-form-inputs-with-modern-css-features/ https://codepen.io/aaroniker/pen/ZEYoxEY by Aaron Iker. License: MIT. */ @supports (-webkit-appearance: none) or (-moz-appearance: none) { input[type=checkbox], input[type=radio] { -webkit-appearance: none; -moz-appearance: none; position: relative; width: 25px; height: 25px; border: var(--form--border-width) solid var(--form--border-color); background: var(--global--color-white); } input[type=checkbox]:disabled, input[type=radio]:disabled { opacity: 0.7; } .is-dark-theme input[type=checkbox], .is-dark-theme input[type=radio] { background: var(--global--color-white-90); } input[type=checkbox]:focus { outline-offset: 2px; outline: 2px dotted var(--form--border-color); } input[type=checkbox]:after { content: ""; opacity: 0; display: block; left: 5px; top: 2px; position: absolute; width: 7px; height: 13px; border: 3px solid var(--form--color-text); border-top: 0; border-left: 0; transform: rotate(30deg); } input[type=checkbox]:checked { color: var(--form--color-text); } input[type=checkbox]:checked:after { opacity: 1; } input[type=radio] { border-radius: 50%; } input[type=radio]:focus { outline-offset: 2px; outline: 2px dotted var(--form--border-color); } input[type=radio]:after { content: ""; opacity: 0; display: block; left: 3px; top: 3px; position: absolute; width: 11px; height: 11px; border-radius: 50%; background: var(--form--color-text); } input[type=radio]:checked { border: 4px solid var(--form--border-color); } input[type=radio]:checked:after { opacity: 1; } input[type=radio]:checked:focus { outline-offset: 4px; outline: 2px dotted var(--form--border-color); } } input[type=checkbox] + label, input[type=radio] + label { display: inline-block; padding-left: 10px; font-size: var(--global--font-size-xs); vertical-align: top; } /** * https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ */ @supports (-webkit-appearance: none) or (-moz-appearance: none) { input[type=range] { -webkit-appearance: none; /* Hides the slider so that custom slider can be made */ width: 100%; /* Specific width is required for Firefox. */ height: 6px; background: var(--form--color-ranged); border-radius: 6px; outline-offset: 10px; } input[type=range]:disabled { opacity: 0.7; } input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; border: 3px solid var(--form--color-ranged); height: 44px; width: 44px; border-radius: 50%; background: var(--global--color-background); cursor: pointer; } input[type=range]::-moz-range-thumb { border: 3px solid var(--form--color-ranged); height: 44px; width: 44px; border-radius: 50%; background: var(--global--color-background); cursor: pointer; box-sizing: border-box; } } input[type=range]::-ms-track { width: 100%; height: 6px; border-radius: 6px; border-width: 19px 0; border-color: var(--global--color-background); background: transparent; color: transparent; cursor: pointer; } input[type=range]::-ms-fill-upper { background: var(--form--color-ranged); border-radius: 6px; } input[type=range]::-ms-fill-lower { background: var(--form--color-ranged); border-radius: 6px; } input[type=range]::-ms-thumb { border: 3px solid var(--form--color-ranged); height: 44px; width: 44px; border-radius: 50%; background: var(--global--color-background); cursor: pointer; } fieldset { display: grid; border-color: var(--global--color-secondary); padding: var(--global--spacing-horizontal); } fieldset legend { font-size: var(--global--font-size-lg); } fieldset input[type=submit] { max-width: max-content; } fieldset input:not([type=submit]) { margin-bottom: var(--global--spacing-unit); } fieldset input[type=radio], fieldset input[type=checkbox] { margin-bottom: 0; } fieldset input[type=radio] + label, fieldset input[type=checkbox] + label { font-size: var(--form--font-size); padding-left: 0; margin-bottom: var(--global--spacing-unit); } ::-moz-placeholder { opacity: 1; } .post-password-message { font-size: var(--global--font-size-lg); } .post-password-form { display: flex; flex-wrap: wrap; } .post-password-form__label { width: 100%; margin-bottom: 0; } .post-password-form input[type=password] { flex-grow: 1; margin-top: calc(var(--global--spacing-vertical) / 3); margin-right: calc(0.66 * var(--global--spacing-horizontal)); } .post-password-form__submit { margin-top: calc(var(--global--spacing-vertical) / 3); } @media only screen and (min-width: 592px) { .post-password-form__submit { margin-left: calc(0.4 * var(--global--spacing-horizontal)); } } img { height: auto; max-width: 100%; vertical-align: middle; } /* Classic editor images */ .entry-content img { max-width: 100%; } /* Make sure embeds and iframes fit their containers. */ embed, iframe, object, video { max-width: 100%; } /* Media captions */ figcaption, .wp-caption, .wp-caption-text, .wp-block-embed figcaption { color: currentColor; font-size: var(--global--font-size-xs); line-height: var(--global--line-height-body); margin-top: calc(0.5 * var(--global--spacing-unit)); margin-bottom: var(--global--spacing-unit); text-align: center; } .alignleft figcaption, .alignright figcaption, .alignleft .wp-caption, .alignright .wp-caption, .alignleft .wp-caption-text, .alignright .wp-caption-text, .alignleft .wp-block-embed figcaption, .alignright .wp-block-embed figcaption { margin-bottom: 0; } /* WP Smiley */ .page-content .wp-smiley, .entry-content .wp-smiley, .comment-content .wp-smiley { border: none; margin-bottom: 0; margin-top: 0; padding: 0; } /* Over here, place any elements that do not need to have their own file. */ b, strong { font-weight: 700; } dfn, cite, em, i { font-style: italic; } pre { white-space: pre; overflow-x: auto; } /* * text-underline-offset doesn't work in Chrome at all 👎 * But looks nice in Safari/Firefox, so let's keep it and * maybe Chrome will support it soon. */ a { cursor: pointer; color: var(--wp--style--color--link, var(--global--color-primary)); text-underline-offset: 3px; text-decoration-skip-ink: all; } a:hover { text-decoration-style: dotted; text-decoration-skip-ink: none; } .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) { /* Only visible in Windows High Contrast mode */ outline: 2px solid transparent; text-decoration: underline 1px dotted currentColor; text-decoration-skip-ink: none; background: rgba(255, 255, 255, 0.9); } .is-dark-theme .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) { background: var(--global--color-black); color: var(--global--color-white); text-decoration: none; } .is-dark-theme .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) .meta-nav { color: var(--wp--style--color--link, var(--global--color-white)); } .has-background-white .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) { background: rgba(0, 0, 0, 0.9); color: var(--wp--style--color--link, var(--global--color-white)); } .has-background-white .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) .meta-nav { color: var(--wp--style--color--link, var(--global--color-white)); } .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button).skip-link { /* Only visible in Windows High Contrast mode */ outline: 2px solid transparent; outline-offset: -2px; } .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button).skip-link:focus { color: #21759b; background-color: #f1f1f1; } .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button).custom-logo-link { background: none; } .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) img { outline: 2px dotted var(--wp--style--color--link, var(--global--color-primary)); } .has-background .has-link-color a, .has-background.has-link-color a { color: var(--wp--style--color--link, var(--global--color-primary)); } /* Category 05 is all about adjusting the default block styles to the given layout. I only added three blocks as examples. */ .wp-block-audio audio:focus { outline-offset: 5px; outline: 2px solid var(--global--color-primary); } /** * Button */ .site .button, button, input[type=submit], input[type=reset], .wp-block-search .wp-block-search__button, .wp-block-button .wp-block-button__link, .wp-block-file a.wp-block-file__button { border: var(--button--border-width) solid transparent; border-radius: var(--button--border-radius); cursor: pointer; font-weight: var(--button--font-weight); font-family: var(--button--font-family); font-size: var(--button--font-size); line-height: var(--button--line-height); padding: var(--button--padding-vertical) var(--button--padding-horizontal); text-decoration: none; } .site .button:not(:hover):not(:active):not(.has-text-color), button:not(:hover):not(:active):not(.has-text-color), input[type=submit]:not(:hover):not(:active):not(.has-text-color), input[type=reset]:not(:hover):not(:active):not(.has-text-color), .wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-text-color), .wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-text-color), .wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-text-color) { color: var(--global--color-background); } .has-background .site .button:not(:hover):not(:active):not(.has-text-color), .has-background button:not(:hover):not(:active):not(.has-text-color), .has-background input[type=submit]:not(:hover):not(:active):not(.has-text-color), .has-background input[type=reset]:not(:hover):not(:active):not(.has-text-color), .has-background .wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-text-color), .has-background .wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-text-color), .has-background .wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-text-color) { color: var(--local--color-background, var(--global--color-primary)); } .has-background .site .button:not(:hover):not(:active):not(.has-text-color).has-background, .has-background button:not(:hover):not(:active):not(.has-text-color).has-background, .has-background input[type=submit]:not(:hover):not(:active):not(.has-text-color).has-background, .has-background input[type=reset]:not(:hover):not(:active):not(.has-text-color).has-background, .has-background .wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-text-color).has-background, .has-background .wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-text-color).has-background, .has-background .wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-text-color).has-background { color: var(--global--color-primary); } .site .button:not(:hover):not(:active):not(.has-background), button:not(:hover):not(:active):not(.has-background), input[type=submit]:not(:hover):not(:active):not(.has-background), input[type=reset]:not(:hover):not(:active):not(.has-background), .wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-background), .wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-background), .wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-background) { background-color: var(--global--color-primary); } .has-background .site .button:not(:hover):not(:active):not(.has-background), .has-background button:not(:hover):not(:active):not(.has-background), .has-background input[type=submit]:not(:hover):not(:active):not(.has-background), .has-background input[type=reset]:not(:hover):not(:active):not(.has-background), .has-background .wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-background), .has-background .wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-background), .has-background .wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-background) { background-color: var(--local--color-primary, var(--global--color-primary)); } .site .button:hover, .site .button:active, button:hover, button:active, input[type=submit]:hover, input[type=submit]:active, input[type=reset]:hover, input[type=reset]:active, .wp-block-search .wp-block-search__button:hover, .wp-block-search .wp-block-search__button:active, .wp-block-button .wp-block-button__link:hover, .wp-block-button .wp-block-button__link:active, .wp-block-file a.wp-block-file__button:hover, .wp-block-file a.wp-block-file__button:active { background-color: transparent; border-color: currentColor; color: inherit; } .site .button:focus, button:focus, input[type=submit]:focus, input[type=reset]:focus, .wp-block-search .wp-block-search__button:focus, .wp-block-button .wp-block-button__link:focus, .wp-block-file a.wp-block-file__button:focus { outline-offset: -6px; outline: 2px dotted currentColor; } .site .button:disabled, button:disabled, input[type=submit]:disabled, input[type=reset]:disabled, .wp-block-search .wp-block-search__button:disabled, .wp-block-button .wp-block-button__link:disabled, .wp-block-file a.wp-block-file__button:disabled { background-color: var(--global--color-white-50); border-color: var(--global--color-white-50); color: var(--button--color-text-active); } /** * Block Options */ .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color) { color: var(--global--color-background); } .has-background .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color) { color: var(--local--color-background, var(--global--color-background)); } .has-background .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color).has-background { color: var(--global--color-primary); } .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-background) { background-color: var(--global--color-primary); } .has-background .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-background) { background-color: var(--local--color-primary, var(--global--color-primary)); } .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover, .wp-block-button:not(.is-style-outline) .wp-block-button__link:active { border-color: currentColor !important; background-color: transparent !important; color: inherit !important; } .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-text-color), .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-background), .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active).has-background { border-color: currentColor; } .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-text-color) { color: var(--global--color-primary); } .has-background .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-text-color) { color: var(--local--color-primary, var(--global--color-primary)); } .has-background .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active).has-background:not(.has-text-color) { color: inherit; } .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-background) { background-color: transparent; } .wp-block-button.is-style-outline .wp-block-button__link:hover, .wp-block-button.is-style-outline .wp-block-button__link:active { border-color: transparent !important; background-color: var(--global--color-primary) !important; color: var(--global--color-background) !important; } .has-background .wp-block-button.is-style-outline .wp-block-button__link:hover, .has-background .wp-block-button.is-style-outline .wp-block-button__link:active { background-color: var(--local--color-primary, var(--global--color-primary)) !important; color: var(--local--color-background, var(--global--color-background)) !important; } .has-text-color .wp-block-button.is-style-outline .wp-block-button__link:hover, .has-text-color .wp-block-button.is-style-outline .wp-block-button__link:active { color: var(--local--color-background, var(--global--color-background)) !important; } .wp-block-button .is-style-squared .wp-block-button__link { border-radius: 0; } .is-style-outline .wp-block-button__link[style*=radius]:focus, .wp-block-button a.wp-block-button__link[style*=radius]:focus { outline-offset: 2px; outline: 2px dotted var(--button--color-background); } .wp-block-code { border-color: var(--global--color-border); border-radius: 0; border-style: solid; border-width: 0.1rem; padding: var(--global--spacing-unit); } .wp-block-code code { color: var(--global--color-primary); white-space: pre; overflow-x: auto; display: block; } .wp-block-columns:not(.alignwide):not(.alignfull) { clear: both; } .wp-block-columns .wp-block-column > * { margin-top: calc(0.66 * var(--global--spacing-vertical)); margin-bottom: calc(0.66 * var(--global--spacing-vertical)); } @media only screen and (min-width: 482px) { .wp-block-columns .wp-block-column > * { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } } .wp-block-columns .wp-block-column > *:first-child { margin-top: 0; } .wp-block-columns .wp-block-column > *:last-child { margin-bottom: 0; } .wp-block-columns .wp-block-column:last-child { margin-bottom: 0; } .wp-block-columns .wp-block-column:not(:last-child) { margin-bottom: calc(0.66 * var(--global--spacing-vertical)); } @media only screen and (min-width: 482px) { .wp-block-columns .wp-block-column:not(:last-child) { margin-bottom: var(--global--spacing-vertical); } } @media only screen and (min-width: 822px) { .wp-block-columns .wp-block-column:not(:last-child) { margin-bottom: 0; } } .wp-block-columns.is-style-twentytwentyone-columns-overlap { justify-content: space-around; } @media only screen and (min-width: 652px) { .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) { margin-left: calc(-2 * var(--global--spacing-horizontal)); margin-top: calc(2.5 * var(--global--spacing-horizontal)); z-index: 2; } .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > p:not(.has-background), .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h1:not(.has-background), .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h2:not(.has-background), .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h3:not(.has-background), .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h4:not(.has-background), .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h5:not(.has-background), .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h6:not(.has-background), .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ul:not(.has-background), .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ol:not(.has-background), .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > pre:not(.has-background) { background-color: var(--global--color-background); padding: var(--global--spacing-unit); } .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ul:not(.has-background), .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ol:not(.has-background) { padding-left: calc(2 * var(--global--spacing-horizontal)); } .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n).is-vertically-aligned-center { margin-top: 0; } } .wp-block-columns.alignfull .wp-block-column p:not(.has-background), .wp-block-columns.alignfull .wp-block-column h1:not(.has-background), .wp-block-columns.alignfull .wp-block-column h2:not(.has-background), .wp-block-columns.alignfull .wp-block-column h3:not(.has-background), .wp-block-columns.alignfull .wp-block-column h4:not(.has-background), .wp-block-columns.alignfull .wp-block-column h5:not(.has-background), .wp-block-columns.alignfull .wp-block-column h6:not(.has-background) { padding-left: var(--global--spacing-unit); padding-right: var(--global--spacing-unit); } .wp-block-cover, .wp-block-cover-image { background-color: var(--cover--color-background); min-height: var(--cover--height); margin-top: inherit; margin-bottom: inherit; /* default & custom background-color */ /* Treating H2 separately to account for legacy /core styles */ /* Block Styles */ /* The background color class is used just for the overlay, and does not need to be applied to the inner container. */ } .wp-block-cover:not(.alignwide):not(.alignfull), .wp-block-cover-image:not(.alignwide):not(.alignfull) { clear: both; } .wp-block-cover.alignfull, .wp-block-cover-image.alignfull { margin-top: 0; margin-bottom: 0; } .wp-block-cover .wp-block-cover__inner-container, .wp-block-cover .wp-block-cover-image-text, .wp-block-cover .wp-block-cover-text, .wp-block-cover-image .wp-block-cover__inner-container, .wp-block-cover-image .wp-block-cover-image-text, .wp-block-cover-image .wp-block-cover-text { color: currentColor; margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } .wp-block-cover .wp-block-cover__inner-container a:not(.wp-block-button__link):not(.wp-block-file__button), .wp-block-cover .wp-block-cover-image-text a:not(.wp-block-button__link):not(.wp-block-file__button), .wp-block-cover .wp-block-cover-text a:not(.wp-block-button__link):not(.wp-block-file__button), .wp-block-cover-image .wp-block-cover__inner-container a:not(.wp-block-button__link):not(.wp-block-file__button), .wp-block-cover-image .wp-block-cover-image-text a:not(.wp-block-button__link):not(.wp-block-file__button), .wp-block-cover-image .wp-block-cover-text a:not(.wp-block-button__link):not(.wp-block-file__button) { color: currentColor; } .wp-block-cover .wp-block-cover__inner-container .has-link-color a, .wp-block-cover .wp-block-cover-image-text .has-link-color a, .wp-block-cover .wp-block-cover-text .has-link-color a, .wp-block-cover-image .wp-block-cover__inner-container .has-link-color a, .wp-block-cover-image .wp-block-cover-image-text .has-link-color a, .wp-block-cover-image .wp-block-cover-text .has-link-color a { color: var(--wp--style--color--link, var(--global--color-primary)); } .wp-block-cover:not([class*=background-color]) .wp-block-cover__inner-container, .wp-block-cover:not([class*=background-color]) .wp-block-cover-image-text, .wp-block-cover:not([class*=background-color]) .wp-block-cover-text, .wp-block-cover-image:not([class*=background-color]) .wp-block-cover__inner-container, .wp-block-cover-image:not([class*=background-color]) .wp-block-cover-image-text, .wp-block-cover-image:not([class*=background-color]) .wp-block-cover-text { color: var(--cover--color-foreground); } .wp-block-cover h2, .wp-block-cover-image h2 { font-size: var(--heading--font-size-h2); letter-spacing: var(--heading--letter-spacing-h2); line-height: var(--heading--line-height-h2); max-width: inherit; text-align: inherit; padding: 0; } .wp-block-cover h2.has-text-align-left, .wp-block-cover-image h2.has-text-align-left { text-align: left; } .wp-block-cover h2.has-text-align-center, .wp-block-cover-image h2.has-text-align-center { text-align: center; } .wp-block-cover h2.has-text-align-right, .wp-block-cover-image h2.has-text-align-right { text-align: right; } .wp-block-cover .wp-block-cover__inner-container, .wp-block-cover-image .wp-block-cover__inner-container { width: calc(100% - 2 * var(--global--spacing-vertical)); } .wp-block-cover .wp-block-cover__inner-container > *, .wp-block-cover-image .wp-block-cover__inner-container > * { margin-top: calc(0.666 * var(--global--spacing-vertical)); margin-bottom: calc(0.666 * var(--global--spacing-vertical)); } @media only screen and (min-width: 482px) { .wp-block-cover .wp-block-cover__inner-container > *, .wp-block-cover-image .wp-block-cover__inner-container > * { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } } .wp-block-cover .wp-block-cover__inner-container > *:first-child, .wp-block-cover-image .wp-block-cover__inner-container > *:first-child { margin-top: 0; } .wp-block-cover .wp-block-cover__inner-container > *:last-child, .wp-block-cover-image .wp-block-cover__inner-container > *:last-child { margin-bottom: 0; } .wp-block-cover.alignleft, .wp-block-cover.alignright, .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright { margin-top: 0; } .wp-block-cover.alignleft > *, .wp-block-cover.alignright > *, .wp-block-cover-image.alignleft > *, .wp-block-cover-image.alignright > * { margin-top: calc(2 * var(--global--spacing-vertical)); margin-bottom: calc(2 * var(--global--spacing-vertical)); padding-left: var(--global--spacing-horizontal); padding-right: var(--global--spacing-horizontal); width: 100%; } .wp-block-cover.has-left-content, .wp-block-cover.has-right-content, .wp-block-cover-image.has-left-content, .wp-block-cover-image.has-right-content { justify-content: center; } .wp-block-cover.is-style-twentytwentyone-border, .wp-block-cover-image.is-style-twentytwentyone-border { border: calc(3 * var(--separator--height)) solid var(--global--color-border); } .wp-block-cover[class*=-background-color][class] .wp-block-cover__inner-container, .wp-block-cover-image[class*=-background-color][class] .wp-block-cover__inner-container { background-color: unset; } .wp-block-file a.wp-block-file__button:active, .wp-block-file a.wp-block-file__button:focus, .wp-block-file a.wp-block-file__button:hover { opacity: inherit; } .wp-block-file a.wp-block-file__button { display: inline-block; } .wp-block-gallery { margin: 0 auto; } .wp-block-gallery .blocks-gallery-image, .wp-block-gallery .blocks-gallery-item { width: calc((100% - var(--global--spacing-unit)) / 2); } .wp-block-gallery .blocks-gallery-image figcaption, .wp-block-gallery .blocks-gallery-item figcaption { margin: 0; color: var(--global--color-white); font-size: var(--global--font-size-xs); } .wp-block-gallery .blocks-gallery-image figcaption a, .wp-block-gallery .blocks-gallery-item figcaption a { color: var(--global--color-white); } .wp-block-gallery .blocks-gallery-image figcaption a:focus, .wp-block-gallery .blocks-gallery-item figcaption a:focus { background-color: transparent; outline: 2px solid var(--wp--style--color--link, var(--global--color-primary)); text-decoration: none; } .wp-block-gallery .blocks-gallery-image a:focus img, .wp-block-gallery .blocks-gallery-item a:focus img { outline-offset: 2px; } .wp-block-group { display: block; clear: both; display: flow-root; } .wp-block-group:before, .wp-block-group:after { content: ""; display: block; clear: both; } .wp-block-group .wp-block-group__inner-container { margin-left: auto; margin-right: auto; } .wp-block-group .wp-block-group__inner-container > * { margin-top: calc(0.666 * var(--global--spacing-vertical)); margin-bottom: calc(0.666 * var(--global--spacing-vertical)); } @media only screen and (min-width: 482px) { .wp-block-group .wp-block-group__inner-container > * { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } } .wp-block-group .wp-block-group__inner-container > *:first-child { margin-top: 0; } .wp-block-group .wp-block-group__inner-container > *:last-child { margin-bottom: 0; } .wp-block-group.has-background { padding: calc(0.666 * var(--global--spacing-vertical)); } @media only screen and (min-width: 482px) { .wp-block-group.has-background { padding: var(--global--spacing-vertical); } } .wp-block-group.is-style-twentytwentyone-border { border: calc(3 * var(--separator--height)) solid var(--global--color-border); padding: var(--global--spacing-vertical); } .wp-block-group.has-background .wp-block-group__inner-container > .alignfull, .wp-block-group.has-background .wp-block-group__inner-container > hr.wp-block-separator:not(.is-style-dots):not(.alignwide).alignfull, .wp-block-group.is-style-twentytwentyone-border .wp-block-group__inner-container > .alignfull, .wp-block-group.is-style-twentytwentyone-border .wp-block-group__inner-container > hr.wp-block-separator:not(.is-style-dots):not(.alignwide).alignfull { max-width: calc(var(--responsive--alignfull-width) + 2 * var(--global--spacing-vertical)); width: calc(var(--responsive--alignfull-width) + 2 * var(--global--spacing-vertical)); margin-left: calc(-1 * var(--global--spacing-vertical)); } h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { clear: both; font-family: var(--heading--font-family); font-weight: var(--heading--font-weight); } h1 strong, .h1 strong, h2 strong, .h2 strong, h3 strong, .h3 strong, h4 strong, .h4 strong, h5 strong, .h5 strong, h6 strong, .h6 strong { font-weight: var(--heading--font-weight-strong); } h1, .h1 { font-size: var(--heading--font-size-h1); letter-spacing: var(--heading--letter-spacing-h1); line-height: var(--heading--line-height-h1); } h2, .h2 { font-size: var(--heading--font-size-h2); letter-spacing: var(--heading--letter-spacing-h2); line-height: var(--heading--line-height-h2); } h3, .h3 { font-size: var(--heading--font-size-h3); letter-spacing: var(--heading--letter-spacing-h3); line-height: var(--heading--line-height-h3); } h4, .h4 { font-size: var(--heading--font-size-h4); font-weight: var(--heading--font-weight-strong); letter-spacing: var(--heading--letter-spacing-h4); line-height: var(--heading--line-height-h4); } h5, .h5 { font-size: var(--heading--font-size-h5); font-weight: var(--heading--font-weight-strong); letter-spacing: var(--heading--letter-spacing-h5); line-height: var(--heading--line-height-h5); } h6, .h6 { font-size: var(--heading--font-size-h6); font-weight: var(--heading--font-weight-strong); letter-spacing: var(--heading--letter-spacing-h6); line-height: var(--heading--line-height-h6); } .wp-block-image { text-align: center; } .wp-block-image figcaption { color: var(--global--color-primary); font-size: var(--global--font-size-xs); line-height: var(--global--line-height-body); margin-top: calc(0.5 * var(--global--spacing-unit)); margin-bottom: var(--global--spacing-unit); text-align: center; } .wp-block-image .alignright { margin-left: var(--global--spacing-horizontal); } .wp-block-image .alignleft { margin-right: var(--global--spacing-horizontal); } .wp-block-image a:focus img { outline-offset: 2px; } .entry-content > *[class=wp-block-image], .entry-content [class*=inner-container] > *[class=wp-block-image] { margin-top: 0; margin-bottom: 0; } .entry-content > *[class=wp-block-image] + *, .entry-content [class*=inner-container] > *[class=wp-block-image] + * { margin-top: 0; } .wp-block-image.is-style-twentytwentyone-border img, .wp-block-image.is-style-twentytwentyone-image-frame img { border: calc(3 * var(--separator--height)) solid var(--global--color-border); } .wp-block-image.is-style-twentytwentyone-image-frame img { padding: var(--global--spacing-unit); } @media only screen and (min-width: 482px) { .entry-content > .wp-block-image > .alignleft, .entry-content > .wp-block-image > .alignright { max-width: 50%; } } @media only screen and (max-width: 481px) { .entry-content > .wp-block-image > .alignleft, .entry-content > .wp-block-image > .alignright { margin-left: 0; margin-right: 0; } } .wp-block-latest-comments { padding-left: 0; } .wp-block-latest-comments .wp-block-latest-comments__comment { font-size: var(--global--font-size-sm); line-height: var(--global--line-height-body); /* Vertical margins logic */ margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } .wp-block-latest-comments .wp-block-latest-comments__comment:first-child { margin-top: 0; } .wp-block-latest-comments .wp-block-latest-comments__comment:last-child { margin-bottom: 0; } .wp-block-latest-comments .wp-block-latest-comments__comment-meta { font-family: var(--heading--font-family); } .wp-block-latest-comments .wp-block-latest-comments__comment-date { color: var(--global--color-primary); font-size: var(--global--font-size-sm); } .wp-block-latest-comments .wp-block-latest-comments__comment-excerpt p { font-size: var(--global--font-size-sm); line-height: var(--global--line-height-body); margin: 0; } .wp-block-latest-posts { padding-left: 0; } .wp-block-latest-posts:not(.is-grid) > li { margin-top: calc(1.666 * var(--global--spacing-vertical)); margin-bottom: calc(1.666 * var(--global--spacing-vertical)); } .wp-block-latest-posts:not(.is-grid) > li:first-child { margin-top: 0; } .wp-block-latest-posts:not(.is-grid) > li:last-child { margin-bottom: 0; } .widget-area .wp-block-latest-posts:not(.is-grid) > li { margin-top: 0; margin-bottom: 0; } .wp-block-latest-posts.is-grid { word-wrap: break-word; word-break: break-word; } .wp-block-latest-posts.is-grid > li { margin-bottom: var(--global--spacing-vertical); } .wp-block-latest-posts.is-grid > li:last-child { margin-bottom: 0; } .wp-block-latest-posts.is-grid.columns-2 > li:nth-last-child(-n+2):nth-child(2n+1), .wp-block-latest-posts.is-grid.columns-2 > li:nth-last-child(-n+2):nth-child(2n+1) ~ li, .wp-block-latest-posts.is-grid.columns-3 > li:nth-last-child(-n+3):nth-child(3n+1), .wp-block-latest-posts.is-grid.columns-3 > li:nth-last-child(-n+3):nth-child(3n+1) ~ li, .wp-block-latest-posts.is-grid.columns-4 > li:nth-last-child(-n+4):nth-child(4n+1), .wp-block-latest-posts.is-grid.columns-4 > li:nth-last-child(-n+4):nth-child(4n+1) ~ li, .wp-block-latest-posts.is-grid.columns-5 > li:nth-last-child(-n+5):nth-child(5n+1), .wp-block-latest-posts.is-grid.columns-5 > li:nth-last-child(-n+5):nth-child(5n+1) ~ li, .wp-block-latest-posts.is-grid.columns-6 > li:nth-last-child(-n+6):nth-child(6n+1), .wp-block-latest-posts.is-grid.columns-6 > li:nth-last-child(-n+6):nth-child(6n+1) ~ li { margin-bottom: 0; } .wp-block-latest-posts > li > * { margin-top: calc(0.333 * var(--global--spacing-vertical)); margin-bottom: calc(0.333 * var(--global--spacing-vertical)); } .wp-block-latest-posts > li > *:first-child { margin-top: 0; } .wp-block-latest-posts > li > *:last-child { margin-bottom: 0; } .wp-block-latest-posts > li > a { display: inline-block; font-family: var(--latest-posts--title-font-family); font-size: var(--latest-posts--title-font-size); font-weight: var(--heading--font-weight); line-height: var(--global--line-height-heading); margin-bottom: calc(0.333 * var(--global--spacing-vertical)); } .widget-area .wp-block-latest-posts > li > a { font-size: var(--global--font-size-sm); margin-bottom: 0; } .wp-block-latest-posts .wp-block-latest-posts__post-author { color: var(--global--color-primary); font-size: var(--global--font-size-md); line-height: var(--global--line-height-body); } .wp-block-latest-posts .wp-block-latest-posts__post-date { color: var(--global--color-primary); font-size: var(--global--font-size-xs); line-height: var(--global--line-height-body); } [class*=inner-container] .wp-block-latest-posts .wp-block-latest-posts__post-date, .has-background .wp-block-latest-posts .wp-block-latest-posts__post-date { color: currentColor; } .wp-block-latest-posts .wp-block-latest-posts__post-excerpt, .wp-block-latest-posts .wp-block-latest-posts__post-full-content { font-family: var(--latest-posts--description-font-family); font-size: var(--latest-posts--description-font-size); line-height: var(--global--line-height-body); margin-top: calc(0.666 * var(--global--spacing-vertical)); } .wp-block-latest-posts.alignfull { padding-left: var(--global--spacing-unit); padding-right: var(--global--spacing-unit); } .entry-content [class*=inner-container] .wp-block-latest-posts.alignfull, .entry-content .has-background .wp-block-latest-posts.alignfull { padding-left: 0; padding-right: 0; } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers { border-top: calc(3 * var(--separator--height)) solid var(--global--color-border); border-bottom: calc(3 * var(--separator--height)) solid var(--global--color-border); } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers:not(.is-grid) > li, .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers > li { padding-bottom: var(--global--spacing-vertical); border-bottom: var(--separator--height) solid var(--global--color-border); margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers:not(.is-grid) > li:last-child, .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers > li:last-child { padding-bottom: 0; border-bottom: none; } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid { box-shadow: inset 0 -1px 0 0 var(--global--color-border); border-bottom: calc(2 * var(--separator--height)) solid var(--global--color-border); } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid li { margin: 0; padding-top: var(--global--spacing-vertical); padding-right: var(--global--spacing-horizontal); } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid li:last-child { padding-bottom: var(--global--spacing-vertical); } @media screen and (min-width: 600px) { .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-2 li { width: calc(100% / 2); } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-3 li { width: calc(100% / 3); } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-4 li { width: calc(100% / 4); } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-5 li { width: calc(100% / 5); } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-6 li { width: calc(100% / 6); } } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-borders li { border: calc(3 * var(--separator--height)) solid var(--global--color-border); padding: var(--global--spacing-vertical) var(--global--spacing-horizontal); } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-borders li:last-child { padding-bottom: var(--global--spacing-vertical); } .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-borders:not(.is-grid) li { margin-top: var(--global--spacing-horizontal); margin-bottom: var(--global--spacing-horizontal); } .gallery-item { display: inline-block; text-align: center; vertical-align: top; width: 100%; } .gallery-item a { display: block; } .gallery-item a:focus img { outline-offset: -2px; } .gallery-columns-2 .gallery-item { max-width: 50%; } .gallery-columns-3 .gallery-item { max-width: 33.33%; } .gallery-columns-4 .gallery-item { max-width: 25%; } .gallery-columns-5 .gallery-item { max-width: 20%; } .gallery-columns-6 .gallery-item { max-width: 16.66%; } .gallery-columns-7 .gallery-item { max-width: 14.28%; } .gallery-columns-8 .gallery-item { max-width: 12.5%; } .gallery-columns-9 .gallery-item { max-width: 11.11%; } .gallery-caption { display: block; } figure.wp-caption a:focus img { outline-offset: 2px; } ul, ol { font-family: var(--list--font-family); margin: 0; padding-left: calc(2 * var(--global--spacing-horizontal)); } ul.aligncenter, ol.aligncenter { list-style-position: inside; padding: 0; } ul.alignright, ol.alignright { list-style-position: inside; text-align: right; padding: 0; } ul { list-style-type: disc; } ul ul { list-style-type: circle; } ol { list-style-type: decimal; } ol ul { list-style-type: circle; } dt { font-family: var(--definition-term--font-family); font-weight: bold; } dd { margin: 0; padding-left: calc(2 * var(--global--spacing-horizontal)); } .wp-block-media-text { /** * Block Options */ } .wp-block-media-text.alignfull { margin-top: 0; margin-bottom: 0; } .wp-block-media-text a:focus img { outline-offset: -1px; } .wp-block-media-text .wp-block-media-text__content { padding: var(--global--spacing-horizontal); } @media only screen and (min-width: 592px) { .wp-block-media-text .wp-block-media-text__content { padding: var(--global--spacing-vertical); } } .wp-block-media-text .wp-block-media-text__content > * { margin-top: calc(0.666 * var(--global--spacing-vertical)); margin-bottom: calc(0.666 * var(--global--spacing-vertical)); } @media only screen and (min-width: 482px) { .wp-block-media-text .wp-block-media-text__content > * { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } } .wp-block-media-text .wp-block-media-text__content > *:first-child { margin-top: 0; } .wp-block-media-text .wp-block-media-text__content > *:last-child { margin-bottom: 0; } @media only screen and (min-width: 482px) { .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content { padding-top: var(--global--spacing-vertical); padding-bottom: var(--global--spacing-vertical); } } .wp-block-media-text.is-style-twentytwentyone-border { border: calc(3 * var(--separator--height)) solid var(--global--color-border); } .wp-block-navigation .wp-block-navigation-link { padding: 0; } .wp-block-navigation .wp-block-navigation-link .wp-block-navigation-link__content { padding: var(--primary-nav--padding); } .wp-block-navigation .wp-block-navigation-link .wp-block-navigation-link__label { font-family: var(--primary-nav--font-family); font-size: var(--primary-nav--font-size); font-weight: var(--primary-nav--font-weight); } .wp-block-navigation .wp-block-navigation-link__submenu-icon { padding: 0; } .wp-block-navigation > .wp-block-navigation__container .has-child .wp-block-navigation-link { display: inherit; } .wp-block-navigation > .wp-block-navigation__container .has-child .wp-block-navigation__container { border: none; left: 0; margin-left: var(--primary-nav--padding); min-width: max-content; opacity: 0; padding: 0; position: inherit; top: inherit; } .wp-block-navigation > .wp-block-navigation__container .has-child .wp-block-navigation__container .wp-block-navigation-link .wp-block-navigation-link__content { display: inline-block; padding: calc(0.5 * var(--primary-nav--padding)) var(--primary-nav--padding); } .wp-block-navigation > .wp-block-navigation__container .has-child .wp-block-navigation__container .wp-block-navigation-link__submenu-icon { display: none; } .wp-block-navigation > .wp-block-navigation__container .has-child:hover .wp-block-navigation__container, .wp-block-navigation > .wp-block-navigation__container .has-child:focus-within .wp-block-navigation__container { display: block; opacity: 1; visibility: visible; } .wp-block-navigation > .wp-block-navigation__container > .has-child > .wp-block-navigation__container { background: var(--global--color-background); margin: 0; padding: 0; position: absolute; top: 100%; border: 1px solid var(--primary-nav--border-color); } .wp-block-navigation > .wp-block-navigation__container > .has-child > .wp-block-navigation__container:before, .wp-block-navigation > .wp-block-navigation__container > .has-child > .wp-block-navigation__container:after { content: ""; display: block; position: absolute; width: 0; top: -10px; left: var(--global--spacing-horizontal); border-style: solid; border-color: var(--primary-nav--border-color) transparent; border-width: 0 7px 10px 7px; } .wp-block-navigation > .wp-block-navigation__container > .has-child > .wp-block-navigation__container:after { top: -9px; border-color: var(--global--color-background) transparent; } .wp-block-navigation:not(.has-background) .wp-block-navigation__container { background: var(--global--color-background); } .wp-block-navigation:not(.has-background) .wp-block-navigation__container .wp-block-navigation__container { background: var(--global--color-background); } .wp-block-navigation:not(.has-text-color) .wp-block-navigation-link > a:hover, .wp-block-navigation:not(.has-text-color) .wp-block-navigation-link > a:focus { color: var(--primary-nav--color-link-hover); } .wp-block-navigation:not(.has-text-color) .wp-block-navigation-link > a:hover { text-decoration: underline; text-decoration-style: dotted; } .wp-block-navigation:not(.has-text-color) .wp-block-navigation-link__content { color: currentColor; } p { line-height: var(--wp--typography--line-height, var(--global--line-height-body)); } p.has-background { padding: var(--global--spacing-unit); } p.has-text-color a { color: var(--wp--style--color--link, var(--global--color-primary)); } pre.wp-block-preformatted { overflow-x: auto; white-space: pre; } .wp-block-pullquote { padding: calc(2 * var(--global--spacing-unit)) 0; text-align: center; border-width: var(--pullquote--border-width); border-bottom-style: solid; border-top-style: solid; color: currentColor; border-color: currentColor; position: relative; /** * Block Options */ } .wp-block-pullquote blockquote::before { color: currentColor; content: "“"; display: block; position: relative; left: 0; font-size: 3rem; font-weight: 500; line-height: 1; } .wp-block-pullquote p { font-family: var(--pullquote--font-family); font-size: var(--pullquote--font-size); font-style: var(--pullquote--font-style); font-weight: 700; letter-spacing: var(--pullquote--letter-spacing); line-height: var(--pullquote--line-height); margin: 0; } .wp-block-pullquote a { color: currentColor; } .wp-block-pullquote .wp-block-pullquote__citation, .wp-block-pullquote cite, .wp-block-pullquote footer { color: currentColor; display: block; font-size: var(--global--font-size-xs); font-style: var(--pullquote--font-style); text-transform: none; } .wp-block-pullquote:not(.is-style-solid-color) { background: none; } .wp-block-pullquote.alignleft:not(.is-style-solid-color) blockquote:before, .wp-block-pullquote.alignleft:not(.is-style-solid-color) cite { text-align: center; } .wp-block-pullquote.alignwide > p, .wp-block-pullquote.alignwide blockquote { max-width: var(--responsive--alignwide-width); } .wp-block-pullquote.alignfull:not(.is-style-solid-color) > p, .wp-block-pullquote.alignfull:not(.is-style-solid-color) blockquote { padding: 0 calc(2 * var(--global--spacing-unit)); } .wp-block-pullquote.is-style-solid-color { color: var(--pullquote--color-foreground); padding: calc(2.5 * var(--global--spacing-unit)); border-width: var(--pullquote--border-width); border-style: solid; border-color: var(--pullquote--border-color); } @media (min-width: 600px) { .wp-block-pullquote.is-style-solid-color { padding: calc(5 * var(--global--spacing-unit)); } } .wp-block-pullquote.is-style-solid-color blockquote::before { text-align: left; } .wp-block-pullquote.is-style-solid-color blockquote { margin: 0; max-width: inherit; } .wp-block-pullquote.is-style-solid-color blockquote p { font-size: var(--pullquote--font-size); } .wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation, .wp-block-pullquote.is-style-solid-color cite, .wp-block-pullquote.is-style-solid-color footer { color: currentColor; } .wp-block-pullquote.is-style-solid-color.alignleft, .wp-block-pullquote.is-style-solid-color.alignright { padding: var(--global--spacing-unit); } .wp-block-pullquote.is-style-solid-color.alignleft blockquote, .wp-block-pullquote.is-style-solid-color.alignright blockquote { max-width: initial; } .wp-block-query.has-background { padding: calc(0.666 * var(--global--spacing-vertical)); } @media only screen and (min-width: 482px) { .wp-block-query.has-background { padding: var(--global--spacing-vertical); } } .wp-block-quote { border-left: none; /** * Block Options */ } .wp-block-quote:before { content: "“"; font-size: var(--quote--font-size); line-height: var(--quote--line-height); left: 8px; } .has-background .wp-block-quote .wp-block-quote__citation, [class*=background-color] .wp-block-quote .wp-block-quote__citation, [style*=background-color] .wp-block-quote .wp-block-quote__citation, .wp-block-cover[style*=background-image] .wp-block-quote .wp-block-quote__citation, .has-background .wp-block-quote cite, [class*=background-color] .wp-block-quote cite, [style*=background-color] .wp-block-quote cite, .wp-block-cover[style*=background-image] .wp-block-quote cite, .has-background .wp-block-quote footer, [class*=background-color] .wp-block-quote footer, [style*=background-color] .wp-block-quote footer, .wp-block-cover[style*=background-image] .wp-block-quote footer { color: currentColor; } .wp-block-quote.has-text-align-right { margin: var(--global--spacing-vertical) var(--global--spacing-horizontal) var(--global--spacing-vertical) auto; padding-right: 0; border-right: none; } .wp-block-quote.has-text-align-right:before { display: none; } .wp-block-quote.has-text-align-right p:before { content: "”"; font-size: var(--quote--font-size); font-weight: normal; line-height: var(--quote--line-height); margin-right: 5px; } .wp-block-quote.has-text-align-center { margin: var(--global--spacing-vertical) auto; } .wp-block-quote.has-text-align-center:before { display: none; } .wp-block-quote.is-large, .wp-block-quote.is-style-large { padding-left: 0; padding-right: 0; /* Resetting margins to match _block-container.scss */ margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } .wp-block-quote.is-large p, .wp-block-quote.is-style-large p { font-size: var(--quote--font-size-large); font-style: var(--quote--font-style-large); line-height: var(--quote--line-height-large); } .wp-block-quote.is-large:before, .wp-block-quote.is-style-large:before { font-size: var(--quote--font-size-large); line-height: var(--quote--line-height-large); left: calc(-1 * var(--global--spacing-horizontal)); } .wp-block-quote.is-large.has-text-align-right:before, .wp-block-quote.is-style-large.has-text-align-right:before { display: none; } .wp-block-quote.is-large.has-text-align-right p:before, .wp-block-quote.is-style-large.has-text-align-right p:before { content: "”"; font-size: var(--quote--font-size-large); font-weight: normal; line-height: var(--quote--line-height-large); margin-right: 10px; } .wp-block-quote.is-large .wp-block-quote__citation, .wp-block-quote.is-large cite, .wp-block-quote.is-large footer, .wp-block-quote.is-style-large .wp-block-quote__citation, .wp-block-quote.is-style-large cite, .wp-block-quote.is-style-large footer { color: var(--global--color-primary); font-size: var(--global--font-size-sm); } @media only screen and (max-width: 481px) { .wp-block-quote.is-large, .wp-block-quote.is-style-large { padding-left: var(--global--spacing-horizontal); } .wp-block-quote.is-large:before, .wp-block-quote.is-style-large:before { left: 0; } .wp-block-quote.is-large.has-text-align-right, .wp-block-quote.is-style-large.has-text-align-right { padding-left: 0; padding-right: var(--global--spacing-horizontal); } .wp-block-quote.is-large.has-text-align-right:before, .wp-block-quote.is-style-large.has-text-align-right:before { right: 0; } .wp-block-quote.is-large.has-text-align-center, .wp-block-quote.is-style-large.has-text-align-center { padding-left: 0; padding-right: 0; } } @media only screen and (max-width: 481px) { .wp-block-quote.has-text-align-right { padding-left: 0; padding-right: calc(0.5 * var(--global--spacing-horizontal)); } .wp-block-quote.has-text-align-right:before { right: 0; } .wp-block-quote.has-text-align-center { padding-left: 0; padding-right: 0; } } .wp-block-rss { padding-left: 0; } .wp-block-rss > li { list-style: none; } .wp-block-rss:not(.is-grid) > li { margin-top: calc(1.666 * var(--global--spacing-vertical)); margin-bottom: calc(1.666 * var(--global--spacing-vertical)); } .wp-block-rss:not(.is-grid) > li:first-child { margin-top: 0; } .wp-block-rss:not(.is-grid) > li:last-child { margin-bottom: 0; } .wp-block-rss.is-grid > li { margin-bottom: var(--global--spacing-vertical); } .wp-block-rss.is-grid > li:last-child { margin-bottom: 0; } .wp-block-rss.is-grid.columns-2 > li:nth-last-child(-n+2):nth-child(2n+1), .wp-block-rss.is-grid.columns-2 > li:nth-last-child(-n+2):nth-child(2n+1) ~ li, .wp-block-rss.is-grid.columns-3 > li:nth-last-child(-n+3):nth-child(3n+1), .wp-block-rss.is-grid.columns-3 > li:nth-last-child(-n+3):nth-child(3n+1) ~ li, .wp-block-rss.is-grid.columns-4 > li:nth-last-child(-n+4):nth-child(4n+1), .wp-block-rss.is-grid.columns-4 > li:nth-last-child(-n+4):nth-child(4n+1) ~ li, .wp-block-rss.is-grid.columns-5 > li:nth-last-child(-n+5):nth-child(5n+1), .wp-block-rss.is-grid.columns-5 > li:nth-last-child(-n+5):nth-child(5n+1) ~ li, .wp-block-rss.is-grid.columns-6 > li:nth-last-child(-n+6):nth-child(6n+1), .wp-block-rss.is-grid.columns-6 > li:nth-last-child(-n+6):nth-child(6n+1) ~ li { margin-bottom: 0; } .wp-block-rss > li > * { margin-top: calc(0.333 * var(--global--spacing-vertical)); margin-bottom: calc(0.333 * var(--global--spacing-vertical)); } .wp-block-rss > li > *:first-child { margin-top: 0; } .wp-block-rss > li > *:last-child { margin-bottom: 0; } .wp-block-rss .wp-block-rss__item-title > a { display: inline-block; font-family: var(--latest-posts--title-font-family); font-size: var(--latest-posts--title-font-size); font-weight: var(--heading--font-weight); line-height: var(--global--line-height-heading); margin-bottom: calc(0.333 * var(--global--spacing-vertical)); } .wp-block-rss .wp-block-rss__item-author { color: var(--global--color-primary); font-size: var(--global--font-size-md); line-height: var(--global--line-height-body); } .wp-block-rss .wp-block-rss__item-publish-date { color: var(--global--color-primary); font-size: var(--global--font-size-xs); line-height: var(--global--line-height-body); } [class*=inner-container] .wp-block-rss .wp-block-rss__item-publish-date, .has-background .wp-block-rss .wp-block-rss__item-publish-date { color: currentColor; } .wp-block-rss .wp-block-rss__item-excerpt, .wp-block-rss .wp-block-rss__item-full-content { font-family: var(--latest-posts--description-font-family); font-size: var(--latest-posts--description-font-size); line-height: var(--global--line-height-body); margin-top: calc(0.666 * var(--global--spacing-vertical)); } .wp-block-rss.alignfull { padding-left: var(--global--spacing-unit); padding-right: var(--global--spacing-unit); } .entry-content [class*=inner-container] .wp-block-rss.alignfull, .entry-content .has-background .wp-block-rss.alignfull { padding-left: 0; padding-right: 0; } .wp-block-search { max-width: var(--responsive--aligndefault-width); } .wp-block-search__button-only.aligncenter .wp-block-search__inside-wrapper { justify-content: center; } .wp-block-search .wp-block-search__label { font-size: var(--form--font-size); font-weight: var(--form--label-weight); margin-bottom: calc(var(--global--spacing-vertical) / 3); } .wp-block-search .wp-block-search__input { border: var(--form--border-width) solid var(--form--border-color); border-radius: var(--form--border-radius); color: var(--form--color-text); line-height: var(--form--line-height); max-width: inherit; margin-right: calc(-1 * var(--button--border-width)); padding: var(--form--spacing-unit); } .wp-block-search .wp-block-search__input:focus { color: var(--form--color-text); border-color: var(--form--border-color); } .has-background .wp-block-search .wp-block-search__input { border-color: var(--local--color-primary, var(--global--color-primary)) !important; } .wp-block-search button.wp-block-search__button { margin-left: 0; line-height: 1; } .wp-block-search button.wp-block-search__button.has-icon { padding: 6px calc(0.5 * var(--button--padding-horizontal)); } .wp-block-search button.wp-block-search__button.has-icon svg { width: 40px; height: 40px; fill: currentColor; } .has-background .wp-block-search button.wp-block-search__button:hover, .has-background .wp-block-search button.wp-block-search__button:active { background-color: var(--local--color-background, var(--global--color-background)) !important; color: var(--local--color-primary, var(--global--color-primary)) !important; } .has-text-color .wp-block-search button.wp-block-search__button:hover, .has-text-color .wp-block-search button.wp-block-search__button:active { color: var(--local--color-primary, var(--global--color-primary)) !important; } .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper { background-color: var(--global--color-white); border: var(--form--border-width) solid var(--form--border-color); border-radius: var(--form--border-radius); padding: var(--form--border-width); } .has-background .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper { border-color: var(--local--color-primary, var(--global--color-primary)) !important; } .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper .wp-block-search__input { margin-left: 0; margin-right: 0; padding-left: var(--form--spacing-unit); } .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper .wp-block-search__input:focus { color: var(--form--color-text); outline-offset: -2px; outline: 2px dotted var(--form--border-color); } .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper button.wp-block-search__button { padding: var(--button--padding-vertical) var(--button--padding-horizontal); } .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper button.wp-block-search__button:hover { color: var(--global--color-dark-gray); } .is-dark-theme .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper button.wp-block-search__button { color: var(--global--color-dark-gray); } .is-dark-theme .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper button.wp-block-search__button:hover { background-color: var(--global--color-dark-gray); color: var(--global--color-white); } .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper button.wp-block-search__button.has-icon { padding: 6px calc(0.5 * var(--button--padding-horizontal)); } .wp-block-search__button { box-shadow: none; } hr { border-style: none; border-bottom: var(--separator--height) solid var(--separator--border-color); clear: both; margin-left: auto; margin-right: auto; } hr.wp-block-separator { border-bottom: var(--separator--height) solid var(--separator--border-color); opacity: 1; /** * Block Options */ } hr.wp-block-separator:not(.is-style-dots):not(.alignwide) { max-width: var(--responsive--aligndefault-width); } hr.wp-block-separator:not(.is-style-dots).alignwide { max-width: var(--responsive--alignwide-width); } hr.wp-block-separator:not(.is-style-dots).alignfull { max-width: var(--responsive--alignfull-width); } hr.wp-block-separator.is-style-twentytwentyone-separator-thick { border-bottom-width: calc(3 * var(--separator--height)); } hr.wp-block-separator.is-style-dots.has-background, hr.wp-block-separator.is-style-dots.has-text-color { background-color: transparent !important; } hr.wp-block-separator.is-style-dots.has-background:before, hr.wp-block-separator.is-style-dots.has-text-color:before { color: currentColor !important; } hr.wp-block-separator.is-style-dots:before { color: var(--separator--border-color); font-size: var(--global--font-size-xl); letter-spacing: var(--global--font-size-sm); padding-left: var(--global--font-size-sm); } .has-background hr.wp-block-separator, [class*=background-color] hr.wp-block-separator, [style*=background-color] hr.wp-block-separator, .wp-block-cover[style*=background-image] hr.wp-block-separator { border-color: currentColor; } .wp-block-social-links a:focus { color: var(--global--color-primary); } .wp-block-social-links.is-style-twentytwentyone-social-icons-color a { color: var(--global--color-primary); } .wp-block-social-links.is-style-twentytwentyone-social-icons-color .wp-social-link, .wp-block-social-links.is-style-twentytwentyone-social-icons-color.has-icon-background-color.has-icon-background-color .wp-social-link { background: none; } table, .wp-block-table { width: 100%; min-width: 240px; border-collapse: collapse; } table thead, table tfoot, .wp-block-table thead, .wp-block-table tfoot { text-align: center; } table th, .wp-block-table th { font-family: var(--heading--font-family); } table td, table th, .wp-block-table td, .wp-block-table th { padding: calc(0.5 * var(--global--spacing-unit)); border: 1px solid; } table figcaption, .wp-block-table figcaption { color: var(--global--color-primary); font-size: var(--global--font-size-xs); } table.is-style-regular .has-background, table.is-style-stripes .has-background, table.is-style-stripes .has-background thead tr, table.is-style-stripes .has-background tfoot tr, table.is-style-stripes .has-background tbody tr, .wp-block-table.is-style-regular .has-background, .wp-block-table.is-style-stripes .has-background, .wp-block-table.is-style-stripes .has-background thead tr, .wp-block-table.is-style-stripes .has-background tfoot tr, .wp-block-table.is-style-stripes .has-background tbody tr { color: var(--table--has-background-text-color); } table.is-style-stripes, .wp-block-table.is-style-stripes { border-color: var(--table--stripes-border-color); } table.is-style-stripes th, table.is-style-stripes td, .wp-block-table.is-style-stripes th, .wp-block-table.is-style-stripes td { border-width: 0; } table.is-style-stripes tbody tr:nth-child(odd), .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background-color: var(--table--stripes-background-color); } table.is-style-stripes .has-background tbody tr:nth-child(odd), .wp-block-table.is-style-stripes .has-background tbody tr:nth-child(odd) { background-color: var(--global--color-white-90); } table.wp-calendar-table td, table.wp-calendar-table th { background: transparent; border: 0; text-align: center; line-height: 2; vertical-align: middle; word-break: normal; } table.wp-calendar-table th { font-weight: bold; } table.wp-calendar-table thead, table.wp-calendar-table tbody { color: currentColor; border: 1px solid; } table.wp-calendar-table caption { font-weight: bold; text-align: left; margin-bottom: var(--global--spacing-unit); color: currentColor; } .wp-calendar-nav { text-align: left; margin-top: calc(var(--global--spacing-unit) / 2); } .wp-calendar-nav svg { height: 1em; vertical-align: middle; } .wp-calendar-nav svg path { fill: currentColor; } .wp-calendar-nav .wp-calendar-nav-next { float: right; } .wp-block-tag-cloud.alignfull { padding-left: var(--global--spacing-unit); padding-right: var(--global--spacing-unit); } .wp-block-verse { font-family: var(--entry-content--font-family); } .wp-block-video figcaption { color: var(--global--color-primary); font-size: var(--global--font-size-xs); margin-top: calc(0.5 * var(--global--spacing-unit)); margin-bottom: var(--global--spacing-unit); text-align: center; } * > figure > video { max-width: unset; width: 100%; vertical-align: middle; } :root .is-extra-small-text, :root .has-extra-small-font-size { font-size: var(--global--font-size-xs); } :root .is-small-text, :root .has-small-font-size { font-size: var(--global--font-size-sm); } :root .is-regular-text, :root .has-regular-font-size, :root .is-normal-font-size, :root .has-normal-font-size, :root .has-medium-font-size { font-size: var(--global--font-size-base); } :root .is-large-text, :root .has-large-font-size { font-size: var(--global--font-size-lg); line-height: var(--global--line-height-heading); } :root .is-larger-text, :root .has-larger-font-size, :root .is-extra-large-text, :root .has-extra-large-font-size { font-size: var(--global--font-size-xl); line-height: var(--global--line-height-heading); } :root .is-huge-text, :root .has-huge-font-size { font-size: var(--global--font-size-xxl); line-height: var(--global--line-height-heading); font-weight: var(--heading--font-weight-page-title); } :root .is-gigantic-text, :root .has-gigantic-font-size { font-size: var(--global--font-size-xxxl); line-height: var(--global--line-height-heading); font-weight: var(--heading--font-weight-page-title); } /* Block Alignments */ /** * These selectors set the default max width for content appearing inside a post or page. */ /** * .alignleft */ .alignleft { /*rtl:ignore*/ text-align: left; margin-top: 0; } .entry-content > .alignleft { max-width: var(--responsive--aligndefault-width); } @media only screen and (min-width: 482px) { .alignleft { /*rtl:ignore*/ float: left; /*rtl:ignore*/ margin-right: var(--global--spacing-horizontal); margin-bottom: var(--global--spacing-vertical); } .entry-content > .alignleft { max-width: calc(50% - var(--responsive--alignleft-margin)); } } /** * .aligncenter */ .aligncenter { clear: both; display: block; float: none; margin-right: auto; margin-left: auto; text-align: center; } /** * .alignright */ .alignright { margin-top: 0; margin-bottom: var(--global--spacing-vertical); } .entry-content > .alignright { max-width: var(--responsive--aligndefault-width); } @media only screen and (min-width: 482px) { .alignright { /*rtl:ignore*/ float: right; /*rtl:ignore*/ margin-left: var(--global--spacing-horizontal); } .entry-content > .alignright { max-width: calc(50% - var(--responsive--alignright-margin)); } } [class*=inner-container] > .alignleft + *, [class*=inner-container] > .alignright + * { margin-top: 0; } /** * .alignwide */ .alignwide { clear: both; } /** * .alignfull */ .alignfull { clear: both; } .has-left-content { justify-content: flex-start; } .has-right-content { justify-content: flex-end; } .has-parallax { background-attachment: fixed; } .has-drop-cap:not(:focus)::first-letter { font-family: var(--heading--font-family); font-weight: var(--heading--font-weight); line-height: 0.66; text-transform: uppercase; font-style: normal; float: left; margin: 0.1em 0.1em 0 0; font-size: calc(1.2 * var(--heading--font-size-h1)); } .has-drop-cap:not(:focus)::after { content: ""; display: table; clear: both; padding-top: 14px; } .desktop-only { display: none; } @media only screen and (min-width: 482px) { .desktop-only { display: block; } } /* Category 06 contains all "bigger" components which contain elements of the previous two categories like header, footer, page template, single template, comments section, archives, ... */ .site-header { display: flex; align-items: flex-start; flex-wrap: wrap; row-gap: var(--global--spacing-vertical); } .wp-custom-logo .site-header { align-items: center; } @media only screen and (min-width: 482px) { .site-header { padding-top: calc(var(--global--spacing-vertical) / 0.75); } } @media only screen and (min-width: 822px) { .site-header { padding-top: calc(2.4 * var(--global--spacing-vertical)); } } .site-branding { color: var(--branding--color-text); margin-right: 140px; } .site-branding:last-child { margin-right: 0; width: 100%; text-align: center; } @media only screen and (min-width: 482px) { .site-branding { margin-right: initial; margin-top: 4px; } } .site-title { color: var(--branding--color-link); font-family: var(--branding--title--font-family); font-size: var(--branding--title--font-size-mobile); letter-spacing: normal; text-transform: var(--branding--title--text-transform); line-height: var(--global--line-height-heading); margin-bottom: calc(var(--global--spacing-vertical) / 6); } .site-title a { color: currentColor; font-weight: var(--branding--title--font-weight); } .site-title a:link, .site-title a:visited, .site-title a:active { color: currentColor; } .site-title a:hover, .site-title a:focus { color: var(--branding--color-link-hover); } @media only screen and (min-width: 482px) { .site-title { font-size: var(--branding--title--font-size); } } .site-description { color: currentColor; font-family: var(--branding--description--font-family); font-size: var(--branding--description--font-size); line-height: 1.4; } .site-title > a { text-decoration-color: var(--global--color-secondary); } .site-logo { margin: calc(var(--global--spacing-vertical) / 2) 0; } .site-header > .site-logo { width: 100%; padding-bottom: calc(var(--global--spacing-vertical) * 1.5); border-bottom: 1px solid; text-align: center; } .site-logo .custom-logo { margin-left: auto; margin-right: auto; max-width: var(--branding--logo--max-width-mobile); max-height: var(--branding--logo--max-height-mobile); height: auto; display: inline-block; width: auto; } @media only screen and (min-width: 482px) { .site-logo .custom-logo { max-width: var(--branding--logo--max-width); max-height: var(--branding--logo--max-height); height: auto; width: auto; } } @media only screen and (max-width: 481px) { .site-header.has-logo:not(.has-title-and-tagline).has-menu .site-logo { position: absolute; padding-top: calc(0.5 * var(--global--spacing-vertical)); margin-top: 0; top: var(--global--admin-bar--height); } .primary-navigation-open .site-header.has-logo:not(.has-title-and-tagline).has-menu .site-logo { display: none; } .site-header.has-logo:not(.has-title-and-tagline).has-menu .site-logo img { max-height: calc(var(--button--padding-vertical) - 0.25 * var(--global--spacing-unit) + 1.7em); } .site-header.has-logo.has-title-and-tagline { align-items: flex-start; } .site-header.has-logo.has-title-and-tagline.has-menu { justify-content: space-between; } .site-header.has-logo.has-title-and-tagline.has-menu .site-branding { max-width: calc(100% - 160px); } .site-header.has-logo.has-title-and-tagline .site-branding { margin-right: 0; } body:not(.primary-navigation-open) .site-header.has-logo.has-title-and-tagline:after { display: none; } body:not(.primary-navigation-open) .site-header.has-logo.has-title-and-tagline .primary-navigation { position: relative; top: 0; } body:not(.primary-navigation-open) .site-header.has-logo.has-title-and-tagline .menu-button-container { position: relative; padding-top: 0; margin-top: calc(0px - var(--button--padding-vertical) + 0.25 * var(--global--spacing-unit)); } body:not(.primary-navigation-open) .site-header.has-logo.has-title-and-tagline .menu-button-container #primary-mobile-menu { padding-left: calc(var(--global--spacing-horizontal) * 0.6 - 4.5px); padding-right: calc(var(--global--spacing-horizontal) * 0.6 - 4.5px); margin-right: calc(0px - var(--global--spacing-horizontal) * 0.6); } .site-header:not(.has-logo).has-title-and-tagline .site-branding { margin-right: 0; max-width: calc(100% - 160px); } .site-header:not(.has-menu) { justify-content: center; } } .site-footer { padding-top: 0; padding-bottom: calc(1.7 * var(--global--spacing-vertical)); } .no-widgets .site-footer { margin-top: calc(6 * var(--global--spacing-vertical)); } @media only screen and (max-width: 481px) { .no-widgets .site-footer { margin-top: calc(3 * var(--global--spacing-vertical)); } } .site-footer > .site-info { padding-top: var(--global--spacing-vertical); color: var(--footer--color-text); font-family: var(--footer--font-family); font-size: var(--footer--font-size); line-height: var(--global--line-height-body); border-top: 3px solid var(--global--color-border); } .site-footer > .site-info .site-name { text-transform: var(--branding--title--text-transform); font-size: var(--branding--title--font-size); } .site-footer > .site-info .privacy-policy, .site-footer > .site-info .powered-by { margin-top: calc(0.5 * var(--global--spacing-vertical)); } @media only screen and (min-width: 822px) { .site-footer > .site-info { display: flex; align-items: center; } .site-footer > .site-info .site-name { margin-right: calc(0.5 * var(--global--spacing-vertical)); } .site-footer > .site-info .privacy-policy, .site-footer > .site-info .powered-by { margin-top: initial; margin-left: auto; } .site-footer > .site-info .privacy-policy + .powered-by { margin-left: calc(0.5 * var(--global--spacing-vertical)); } } .site-footer > .site-info a { color: var(--footer--color-link); } .site-footer > .site-info a:link, .site-footer > .site-info a:visited, .site-footer > .site-info a:active { color: var(--footer--color-link); } .site-footer > .site-info a:hover { color: var(--footer--color-link-hover); } .site-footer > .site-info a:focus { color: var(--footer--color-link-hover); } .is-dark-theme .site-footer > .site-info a:focus { color: var(--wp--style--color--link, var(--global--color-background)); } .has-background-white .site-footer > .site-info a:focus { color: var(--wp--style--color--link, var(--global--color-white)); } .singular .entry-header { border-bottom: 3px solid var(--global--color-border); padding-bottom: calc(2 * var(--global--spacing-vertical)); margin-bottom: calc(3 * var(--global--spacing-vertical)); } .home .entry-header { border-bottom: none; padding-bottom: 0; margin-bottom: 0; } .singular .has-post-thumbnail .entry-header { border-bottom: none; padding-bottom: calc(1.3 * var(--global--spacing-vertical)); margin-bottom: 0; } .no-results.not-found > *:first-child { margin-bottom: calc(3 * var(--global--spacing-vertical)); } .page-links { clear: both; } .page-links .post-page-numbers { display: inline-block; margin-left: calc(0.66 * var(--global--spacing-unit)); margin-right: calc(0.66 * var(--global--spacing-unit)); min-width: 44px; min-height: 44px; } .page-links .post-page-numbers:first-child { margin-left: 0; } .entry-title { color: var(--entry-header--color); font-size: var(--entry-header--font-size); letter-spacing: var(--heading--letter-spacing-h2); line-height: var(--heading--line-height-h2); overflow-wrap: break-word; } .entry-title a { color: var(--entry-header--color-link); text-underline-offset: 0.15em; } .entry-title a:hover { color: var(--entry-header--color-hover); } .entry-title a:focus { color: var(--entry-header--color-focus); } .entry-title a:active { color: var(--entry-header--color-link); } .singular .entry-title { font-size: var(--global--font-size-page-title); } h1.entry-title { line-height: var(--heading--line-height-h1); font-weight: var(--heading--font-weight-page-title); } /** * Entry Content */ .entry-content, .entry-summary { font-family: var(--entry-content--font-family); } .entry-content p { word-wrap: break-word; } .entry-content > iframe[style] { margin: var(--global--spacing-vertical) 0 !important; max-width: 100% !important; } .entry-footer { color: var(--global--color-primary); clear: both; float: none; font-size: var(--global--font-size-xs); display: block; } .entry-footer > span { display: inline-block; } .entry-footer a { color: currentColor; } .entry-footer a:hover, .entry-footer a:focus { color: var(--global--color-primary-hover); } .entry-footer a:active { color: currentColor; } .site-main > article > .entry-footer { margin-top: var(--global--spacing-vertical); padding-top: var(--global--spacing-unit); padding-bottom: calc(3 * var(--global--spacing-vertical)); border-bottom: var(--separator--height) solid var(--separator--border-color); } body:not(.single) .site-main > article:last-of-type .entry-footer { border-bottom: var(--separator--height) solid transparent; } .single .site-main > article > .entry-footer { margin-top: calc(3.4 * var(--global--spacing-vertical)); margin-bottom: calc(3.4 * var(--global--spacing-vertical)); padding-bottom: 0; padding-top: calc(0.8 * var(--global--spacing-vertical)); border-top: 3px solid var(--separator--border-color); border-bottom: var(--separator--height) solid transparent; display: grid; grid-template-columns: repeat(2, 1fr); column-gap: calc(2 * var(--global--spacing-horizontal)); } .single .site-main > article > .entry-footer .post-taxonomies, .single .site-main > article > .entry-footer .full-size-link { justify-content: flex-end; text-align: right; } .single .site-main > article > .entry-footer .full-size-link:first-child:last-child { grid-column: span 2; } .single .site-main > article > .entry-footer .posted-on, .single .site-main > article > .entry-footer .byline, .single .site-main > article > .entry-footer .cat-links, .single .site-main > article > .entry-footer .tags-links { display: block; } @media only screen and (max-width: 481px) { .single .site-main > article > .entry-footer { display: block; } .single .site-main > article > .entry-footer .full-size-link { display: block; } .single .site-main > article > .entry-footer .post-taxonomies, .single .site-main > article > .entry-footer .full-size-link { text-align: left; } } /** * Post Thumbnails */ .post-thumbnail { text-align: center; } .post-thumbnail .wp-post-image { display: block; width: auto; max-width: 100%; margin-left: auto; margin-right: auto; margin-top: calc(2 * var(--global--spacing-vertical)); } /** * Author */ .author-bio { position: relative; font-size: var(--global--font-size-xs); max-width: var(--responsive--aligndefault-width); } .site-main > article > .author-bio { margin-top: calc(2 * var(--global--spacing-vertical)); } .author-bio.show-avatars .avatar { display: inline-block; vertical-align: top; border-radius: 50%; } .author-bio.show-avatars .author-bio-content { display: inline-block; padding-left: var(--global--spacing-horizontal); max-width: calc(var(--responsive--aligndefault-width) - 90px); } .author-bio .author-bio-content .author-title { font-family: var(--entry-author-bio--font-family); font-size: var(--entry-author-bio--font-size); display: inline; } .author-bio .author-bio-content .author-description { font-size: var(--global--font-size-xs); margin-top: calc(0.5 * var(--global--spacing-vertical)); margin-bottom: calc(0.5 * var(--global--spacing-vertical)); } .page-title { font-size: var(--global--font-size-page-title); } h1.page-title, h2.page-title { font-weight: var(--heading--font-weight-page-title); } h1.page-title { line-height: var(--heading--line-height-h1); } .page-header { border-bottom: 3px solid var(--global--color-border); padding-bottom: calc(2 * var(--global--spacing-vertical)); } .archive .content-area .format-aside .entry-content, .archive .content-area .format-status .entry-content, .archive .content-area .format-link .entry-content, .search .content-area .format-aside .entry-content, .search .content-area .format-status .entry-content, .search .content-area .format-link .entry-content, .blog .content-area .format-aside .entry-content, .blog .content-area .format-status .entry-content, .blog .content-area .format-link .entry-content { font-size: var(--global--font-size-lg); } .archive .format-image .entry-content, .archive .format-gallery .entry-content, .archive .format-video .entry-content, .search .format-image .entry-content, .search .format-gallery .entry-content, .search .format-video .entry-content, .blog .format-image .entry-content, .blog .format-gallery .entry-content, .blog .format-video .entry-content { margin-top: calc(2 * var(--global--spacing-vertical)); } .archive .entry-footer .cat-links, .archive .entry-footer .tags-links, .search .entry-footer .cat-links, .search .entry-footer .tags-links, .blog .entry-footer .cat-links, .blog .entry-footer .tags-links { display: block; } .archive.logged-in .entry-footer .posted-on, .search.logged-in .entry-footer .posted-on, .blog.logged-in .entry-footer .posted-on { margin-right: calc(0.5 * var(--global--spacing-unit)); } .archive-description { margin-top: var(--global--spacing-vertical); font-size: var(--global--font-size-xl); line-height: var(--global--line-height-heading); } .error404 main p { font-size: var(--global--font-size-lg); margin-bottom: calc(var(--global--spacing-vertical) * 1.6666666667); } .search-no-results .page-content { margin-top: calc(3 * var(--global--spacing-vertical)); } /** * Comments Wrapper */ .comments-area > * { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } .comments-area > *:first-child { margin-top: 0; } .comments-area > *:last-child { margin-bottom: 0; } .comments-area.show-avatars .avatar { border-radius: 50%; position: absolute; top: 10px; } .comments-area.show-avatars .fn { display: inline-block; padding-left: 85px; } .comments-area.show-avatars .comment-metadata { padding: 8px 0 9px 85px; } /** * Comment Title */ .comments-title, .comment-reply-title { font-size: var(--heading--font-size-h2); letter-spacing: var(--heading--letter-spacing-h2); } .comment-reply-title { display: flex; justify-content: space-between; } .comment-reply-title small a { font-family: var(--global--font-secondary); font-size: var(--global--font-size-xs); font-style: normal; font-weight: normal; letter-spacing: normal; } /* Nested comment reply title*/ .comment .comment-respond .comment-reply-title { font-size: var(--global--font-size-lg); } /** * Comment Lists */ .comment-list { padding-left: 0; list-style: none; } .comment-list > li { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } .comment-list .children { list-style: none; padding-left: 0; } .comment-list .children > li { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } @media only screen and (min-width: 482px) { .comment-list .depth-2, .comment-list .depth-3 { padding-left: calc(4 * var(--global--spacing-horizontal)); } } /** * Comment Meta */ .comment-meta .comment-author { line-height: var(--global--line-height-heading); margin-bottom: calc(0.25 * var(--global--spacing-unit)); } @media only screen and (min-width: 482px) { .comment-meta .comment-author { margin-bottom: 0; padding-right: 0; } } .comment-meta .comment-author .fn { font-family: var(--global--font-secondary); font-weight: normal; font-size: var(--global--font-size-lg); hyphens: auto; word-wrap: break-word; word-break: break-word; } .comment-meta .comment-metadata { color: var(--global--color-primary); font-size: var(--global--font-size-xs); padding: 8px 0 9px 0; } .comment-meta .comment-metadata .edit-link { margin-left: var(--global--spacing-horizontal); } @media only screen and (min-width: 482px) { .comment-meta { margin-right: inherit; } .comment-meta .comment-author { max-width: inherit; } } .reply { font-size: var(--global--font-size-sm); line-height: var(--global--line-height-heading); } .bypostauthor { display: block; } .says { display: none; } .pingback .url, .trackback .url { font-family: var(--global--font-primary); } .comment-body { position: relative; margin-bottom: calc(1.7 * var(--global--spacing-vertical)); } .comment-body > * { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } .comment-body .reply { margin: 0; } .comment-content { word-wrap: break-word; } .pingback .comment-body, .trackback .comment-body { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } .comment-respond { margin-top: var(--global--spacing-vertical); } .comment-respond > * { margin-top: var(--global--spacing-unit); margin-bottom: var(--global--spacing-unit); } .comment-respond > *:first-child { margin-top: 0; } .comment-respond > *:last-child { margin-bottom: 0; } .comment-respond > *:last-child.comment-form { margin-bottom: var(--global--spacing-vertical); } .comment-author { padding-top: 3px; } .comment-author .url { color: currentColor; } .comment-form { display: flex; flex-wrap: wrap; } .comment-form > * { flex-basis: 100%; } .comment-form .comment-notes { font-size: var(--global--font-size-sm); } .comment-form .comment-form-url, .comment-form .comment-form-comment { width: 100%; } .comment-form .comment-form-author, .comment-form .comment-form-email { flex-basis: 0; flex-grow: 1; } @media only screen and (max-width: 481px) { .comment-form .comment-form-author, .comment-form .comment-form-email { flex-basis: 100%; } } .comment-form .comment-form-cookies-consent > label, .comment-form .comment-notes { font-size: var(--global--font-size-xs); font-weight: normal; } .comment-form > p { margin-bottom: var(--global--spacing-unit); } .comment-form > p:first-of-type { margin-top: 0; } .comment-form > p:last-of-type { margin-bottom: 0; } .comment-form > p label, .comment-form > p input[type=email], .comment-form > p input[type=text], .comment-form > p input[type=url], .comment-form > p textarea { display: block; font-size: var(--global--font-size-sm); margin-bottom: calc(0.5 * var(--global--spacing-unit)); width: 100%; font-weight: var(--form--label-weight); } .comment-form > p.comment-form-cookies-consent { display: flex; } @media only screen and (min-width: 482px) { .comment-form > p.comment-form-author { margin-right: calc(1.5 * var(--global--spacing-horizontal)); } .comment-form > p.comment-notes, .comment-form > p.logged-in-as { display: block; } } .menu-button-container { display: none; justify-content: space-between; position: absolute; right: 0; padding-top: calc(0.5 * var(--global--spacing-vertical)); padding-bottom: calc(0.25 * var(--global--spacing-vertical)); } @media only screen and (max-width: 481px) { .menu-button-container { display: flex; } } .menu-button-container #primary-mobile-menu { display: flex; margin-left: auto; padding: calc(var(--button--padding-vertical) - 0.25 * var(--global--spacing-unit)) calc(0.5 * var(--button--padding-horizontal)); font-size: var(--primary-nav--font-size-button); font-weight: var(--primary-nav--font-weight-button); background-color: transparent; border: none; color: var(--primary-nav--color-link); } .menu-button-container #primary-mobile-menu .dropdown-icon { display: flex; align-items: center; } .menu-button-container #primary-mobile-menu .dropdown-icon .svg-icon { margin-left: calc(0.25 * var(--global--spacing-unit)); } .menu-button-container #primary-mobile-menu .dropdown-icon.open .svg-icon { position: relative; top: -1px; } .menu-button-container #primary-mobile-menu .dropdown-icon.close { display: none; } .menu-button-container #primary-mobile-menu[aria-expanded*=true] .dropdown-icon.open { display: none; } .menu-button-container #primary-mobile-menu[aria-expanded*=true] .dropdown-icon.close { display: flex; } .has-logo.has-title-and-tagline .menu-button-container #primary-mobile-menu[aria-expanded*=true] .dropdown-icon.close { animation-name: twentytwentyone-close-button-transition; animation-duration: 0.3s; } .primary-navigation-open .menu-button-container { width: 100%; z-index: 500; background-color: var(--global--color-background); } .primary-navigation-open .menu-button-container #primary-mobile-menu { position: static; } .primary-navigation { position: absolute; top: var(--global--admin-bar--height); right: 0; color: var(--primary-nav--color-text); font-size: var(--primary-nav--font-size); line-height: 1.15; margin-top: 0; margin-bottom: 0; } .primary-navigation > .primary-menu-container { position: fixed; visibility: hidden; opacity: 0; top: 0; right: 0; bottom: 0; left: 0; padding-top: calc(var(--button--line-height) * var(--primary-nav--font-size-button) + 42px + 5px); padding-left: var(--global--spacing-unit); padding-right: var(--global--spacing-unit); padding-bottom: var(--global--spacing-horizontal); background-color: var(--global--color-background); transform: translateY(var(--global--spacing-vertical)); } @media (prefers-reduced-motion: no-preference) { .primary-navigation > .primary-menu-container { transition: all 0.15s ease-in-out; } } @media only screen and (max-width: 481px) { .primary-navigation > .primary-menu-container { height: 100vh; z-index: 499; overflow-x: hidden; overflow-y: auto; border: 2px solid transparent; } .has-logo.has-title-and-tagline .primary-navigation > .primary-menu-container { position: fixed; transform: translateY(0) translateX(100%); } .admin-bar .has-logo.has-title-and-tagline .primary-navigation > .primary-menu-container { top: var(--global--admin-bar--height); } .admin-bar .primary-navigation > .primary-menu-container { height: calc(100vh - var(--global--admin-bar--height)); } .primary-navigation > .primary-menu-container:focus { border: 2px solid var(--global--color-primary); } } @media only screen and (max-width: 481px) { .primary-navigation-open .primary-navigation { width: 100%; position: fixed; z-index: 2; } } .primary-navigation-open .primary-navigation > .primary-menu-container { position: absolute; visibility: visible; opacity: 1; transform: translateY(0); } @media only screen and (max-width: 481px) { .primary-navigation-open .has-logo.has-title-and-tagline .primary-navigation > .primary-menu-container { transform: translateX(0) translateY(0); } } @media only screen and (min-width: 482px) { .primary-navigation { position: relative; margin-left: auto; } .primary-navigation > .primary-menu-container { visibility: visible; opacity: 1; position: relative; padding: 0; background-color: transparent; overflow: initial; transform: none; } .primary-navigation #toggle-menu { display: none; } .primary-navigation > .primary-menu-container ul > li .sub-menu-toggle[aria-expanded=false] ~ ul { display: none; } .admin-bar .primary-navigation { top: initial; } .admin-bar .primary-navigation > .primary-menu-container { top: initial; } } .primary-navigation > div > .menu-wrapper { display: flex; justify-content: flex-start; flex-wrap: wrap; list-style: none; margin: 0; max-width: none; padding-left: 0; position: relative; } @media only screen and (max-width: 481px) { .primary-navigation > div > .menu-wrapper { padding-bottom: 100px; } .primary-navigation > div > .menu-wrapper ul { padding-left: 0; } } .primary-navigation > div > .menu-wrapper li { display: block; position: relative; width: 100%; } @media only screen and (min-width: 482px) { .primary-navigation > div > .menu-wrapper li { margin: 0; width: inherit; } .primary-navigation > div > .menu-wrapper li:last-child { margin-right: 0; } } .primary-navigation > div > .menu-wrapper .sub-menu-toggle { display: flex; height: calc(2 * var(--primary-nav--padding) + 1.15em + 1px); width: 44px; padding: 0; justify-content: center; align-items: center; background: transparent; color: currentColor; border: none; } .primary-navigation > div > .menu-wrapper .sub-menu-toggle:focus { outline: 2px solid var(--wp--style--color--link, var(--global--color-primary)); } @media only screen and (max-width: 481px) { .primary-navigation > div > .menu-wrapper .sub-menu-toggle { display: none; } } .primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-plus, .primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-minus { height: 100%; display: flex; align-items: center; } .primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-plus svg, .primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-minus svg { margin-top: -1px; } .primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-minus { display: none; } .primary-navigation > div > .menu-wrapper .sub-menu-toggle[aria-expanded=true] .icon-minus { display: flex; } .primary-navigation > div > .menu-wrapper .sub-menu-toggle[aria-expanded=true] .icon-plus { display: none; } .primary-navigation > div > .menu-wrapper > li > .sub-menu { position: relative; } @media only screen and (min-width: 482px) and (prefers-reduced-motion: no-preference) { .primary-navigation > div > .menu-wrapper > li > .sub-menu { transition: all 0.5s ease; } } @media only screen and (min-width: 482px) { .primary-navigation > div > .menu-wrapper > li > .sub-menu { left: 0; margin: 0; min-width: max-content; position: absolute; top: 100%; padding-top: 3px; z-index: 88888; } .primary-navigation > div > .menu-wrapper > li > .sub-menu:before, .primary-navigation > div > .menu-wrapper > li > .sub-menu:after { content: ""; display: block; position: absolute; width: 0; top: -10px; left: var(--global--spacing-horizontal); border-style: solid; border-color: var(--primary-nav--border-color) transparent; border-width: 0 7px 10px 7px; } .primary-navigation > div > .menu-wrapper > li > .sub-menu:after { top: -9px; border-color: var(--global--color-background) transparent; } .primary-navigation > div > .menu-wrapper > li > .sub-menu li { background: var(--global--color-background); } .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-left { /* rtl:ignore */ left: 0; /* rtl:ignore */ right: auto; } .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-left:before, .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-left:after { /* rtl:ignore */ left: var(--global--spacing-horizontal); /* rtl:ignore */ right: auto; } .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-right { /* rtl:ignore */ right: 0; /* rtl:ignore */ left: auto; } .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-right:before, .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-right:after { /* rtl:ignore */ left: auto; /* rtl:ignore */ right: var(--global--spacing-horizontal); } } .primary-navigation .primary-menu > .menu-item:hover > a { color: var(--primary-nav--color-link-hover); } @media only screen and (min-width: 482px) { .primary-navigation .primary-menu-container { margin-right: calc(0px - var(--primary-nav--padding)); margin-left: calc(0px - var(--primary-nav--padding)); } .primary-navigation .primary-menu-container > ul > .menu-item { display: flex; } .primary-navigation .primary-menu-container > ul > .menu-item > a { padding-left: var(--primary-nav--padding); padding-right: var(--primary-nav--padding); } .primary-navigation .primary-menu-container > ul > .menu-item > a + .sub-menu-toggle { margin-left: calc(5px - var(--primary-nav--padding)); } } .primary-navigation a { display: block; font-family: var(--primary-nav--font-family-mobile); font-size: var(--primary-nav--font-size-mobile); font-weight: var(--primary-nav--font-weight); padding: var(--primary-nav--padding) 0; text-decoration: none; } @media only screen and (min-width: 482px) { .primary-navigation a { display: block; font-family: var(--primary-nav--font-family); font-size: var(--primary-nav--font-size); font-weight: var(--primary-nav--font-weight); } } .primary-navigation a + svg { fill: var(--primary-nav--color-text); } .primary-navigation a:hover, .primary-navigation a:link, .primary-navigation a:visited { color: var(--primary-nav--color-link-hover); } .primary-navigation a:hover { text-decoration: underline; text-decoration-style: dotted; } .primary-navigation a:focus { position: relative; z-index: 99999; outline-offset: 0; text-decoration-thickness: 2px; } .primary-navigation .current-menu-item > a:first-child, .primary-navigation .current_page_item > a:first-child { text-decoration: underline; text-decoration-style: solid; } .primary-navigation .current-menu-item > a:first-child:hover, .primary-navigation .current_page_item > a:first-child:hover { text-decoration: underline; text-decoration-style: dotted; } .primary-navigation .sub-menu { margin: 0; padding: 0; list-style: none; margin-left: var(--primary-nav--padding); border: 1px solid var(--primary-nav--border-color); } .primary-navigation .sub-menu .sub-menu { border: none; } @media only screen and (min-width: 482px) { .primary-navigation .sub-menu > .menu-item > .sub-menu { padding: 0; } } @media only screen and (max-width: 481px) { .primary-navigation .sub-menu .menu-item:last-child { margin-bottom: 0; } } .primary-navigation .sub-menu .menu-item > a { padding: calc(1.25 * var(--primary-nav--padding)) var(--primary-nav--padding); display: block; font-size: var(--primary-nav--font-size-sub-menu-mobile); font-style: var(--primary-nav--font-style-sub-menu-mobile); } @media only screen and (min-width: 482px) { .primary-navigation .sub-menu .menu-item > a { font-size: var(--primary-nav--font-size-sub-menu); font-style: var(--primary-nav--font-style); } } .primary-navigation .menu-item-has-children > .svg-icon { display: none; } @media only screen and (min-width: 482px) { .primary-navigation .menu-item-has-children > .svg-icon { display: inline-block; height: 100%; } .primary-navigation .menu-item-has-children .sub-menu .svg-icon { display: none; } } .primary-navigation .menu-item-description { display: block; clear: both; font-size: var(--global--font-size-xs); text-transform: none; line-height: 1.7; } .primary-navigation .menu-item-description > span { display: inline-block; } @media only screen and (max-width: 481px) { .lock-scrolling .site { position: fixed; max-width: 100%; width: 100%; } } @keyframes twentytwentyone-close-button-transition { from { opacity: 0; } to { opacity: 1; } } .footer-navigation { margin-top: calc(2 * var(--global--spacing-vertical)); margin-bottom: var(--global--spacing-vertical); color: var(--footer--color-text); font-size: var(--global--font-size-xs); font-family: var(--footer--font-family); } .footer-navigation-wrapper { display: flex; justify-content: center; flex-wrap: wrap; list-style: none; padding-left: 0; } .footer-navigation-wrapper li { display: inline; line-height: 3; } .footer-navigation-wrapper li a { padding: calc(1.25 * var(--primary-nav--padding)) var(--primary-nav--padding); color: var(--footer--color-link); } .footer-navigation-wrapper li a:link, .footer-navigation-wrapper li a:visited, .footer-navigation-wrapper li a:active { color: var(--footer--color-link); } .footer-navigation-wrapper li a:hover { text-decoration: underline; text-decoration-style: dotted; text-decoration-skip-ink: none; color: var(--footer--color-link-hover); } .is-dark-theme .footer-navigation-wrapper li a:focus .svg-icon { fill: var(--wp--style--color--link, var(--global--color-background)); } .has-background-white .footer-navigation-wrapper li a:focus .svg-icon { fill: var(--wp--style--color--link, var(--global--color-white)); } .footer-navigation-wrapper li .svg-icon { vertical-align: middle; fill: var(--footer--color-link); } .footer-navigation-wrapper li .svg-icon:hover { transform: scale(1.1); } @media (prefers-reduced-motion: no-preference) { .footer-navigation-wrapper li .svg-icon { transition: transform 0.1s ease; } } .footer-navigation-wrapper .sub-menu-toggle, .footer-navigation-wrapper .menu-item-description { display: none; } /* Next/Previous navigation */ .navigation { color: var(--global--color-primary); } .navigation a { color: var(--global--color-primary); text-decoration: none; } .navigation a:hover { color: var(--global--color-primary-hover); text-decoration: underline; text-decoration-style: dotted; } .navigation a:focus { color: var(--global--color-secondary); } .navigation a:active { color: var(--global--color-primary); } .navigation .nav-links > * { min-width: 44px; min-height: 44px; } .navigation .nav-links .nav-next a, .navigation .nav-links .nav-previous a { display: flex; flex-direction: column; } .navigation .nav-links .dots { text-align: center; } @media only screen and (min-width: 592px) { .navigation .nav-links { display: flex; justify-content: center; flex-wrap: wrap; } .navigation .nav-links .nav-next, .navigation .nav-links .nav-previous { flex: 0 1 auto; margin-bottom: inherit; margin-top: inherit; max-width: calc(50% - 0.5 * var(--global--spacing-unit)); } .navigation .nav-links .nav-next { text-align: right; } } .navigation .svg-icon { display: inline-block; fill: currentColor; vertical-align: middle; position: relative; } .navigation .nav-previous .svg-icon, .navigation .prev .svg-icon { top: -2px; margin-right: calc(0.25 * var(--global--spacing-unit)); } .navigation .nav-next .svg-icon, .navigation .next .svg-icon { top: -1px; margin-left: calc(0.25 * var(--global--spacing-unit)); } .post-navigation { margin: var(--global--spacing-vertical) auto; } @media only screen and (min-width: 822px) { .post-navigation { margin: var(--global--spacing-vertical) auto; } } .post-navigation .meta-nav { line-height: var(--global--line-height-body); color: var(--global--color-primary); } .post-navigation .post-title { display: inline-block; font-family: var(--global--font-primary); font-size: var(--global--font-size-lg); font-weight: var(--pagination--font-weight-strong); line-height: var(--global--line-height-heading); } @media only screen and (min-width: 822px) { .post-navigation .post-title { margin: 5px calc(24px + 0.25 * var(--global--spacing-unit)) 0; } } @media only screen and (min-width: 482px) { .post-navigation .nav-links { justify-content: space-between; } } .post-navigation .nav-next, .post-navigation .nav-previous { margin-top: var(--global--spacing-vertical); margin-bottom: var(--global--spacing-vertical); } .post-navigation .nav-next:first-child, .post-navigation .nav-previous:first-child { margin-top: 0; } .post-navigation .nav-next:last-child, .post-navigation .nav-previous:last-child { margin-bottom: 0; } .pagination, .comments-pagination { border-top: 3px solid var(--global--color-border); padding-top: var(--global--spacing-vertical); margin: var(--global--spacing-vertical) auto; } @media only screen and (min-width: 822px) { .pagination, .comments-pagination { margin: var(--global--spacing-vertical) auto; } } .pagination .nav-links, .comments-pagination .nav-links { margin-top: calc(-1 * var(--global--spacing-vertical)); } .pagination .nav-links a:hover, .comments-pagination .nav-links a:hover { color: var(--pagination--color-link-hover); } .is-dark-theme .pagination .nav-links a:active, .is-dark-theme .pagination .nav-links a:hover:active, .is-dark-theme .pagination .nav-links a:hover:focus, .is-dark-theme .comments-pagination .nav-links a:active, .is-dark-theme .comments-pagination .nav-links a:hover:active, .is-dark-theme .comments-pagination .nav-links a:hover:focus { color: var(--global--color-background); } .has-background-white .pagination .nav-links a:active, .has-background-white .pagination .nav-links a:hover:active, .has-background-white .pagination .nav-links a:hover:focus, .has-background-white .comments-pagination .nav-links a:active, .has-background-white .comments-pagination .nav-links a:hover:active, .has-background-white .comments-pagination .nav-links a:hover:focus { color: var(--global--color-white); } .pagination .nav-links > *, .comments-pagination .nav-links > * { color: var(--pagination--color-text); font-family: var(--pagination--font-family); font-size: var(--pagination--font-size); font-weight: var(--pagination--font-weight); margin-top: var(--global--spacing-vertical); margin-left: calc(0.66 * var(--global--spacing-unit)); margin-right: calc(0.66 * var(--global--spacing-unit)); } .pagination .nav-links > *.current, .comments-pagination .nav-links > *.current { text-decoration: underline; } .pagination .nav-links > *:not(.dots):not(.current):hover, .comments-pagination .nav-links > *:not(.dots):not(.current):hover { text-decoration-style: dotted; } .pagination .nav-links > *:first-child, .comments-pagination .nav-links > *:first-child { margin-left: 0; } .pagination .nav-links > *:last-child, .comments-pagination .nav-links > *:last-child { margin-right: 0; } .pagination .nav-links > *.next, .comments-pagination .nav-links > *.next { margin-left: auto; } .pagination .nav-links > *.prev, .comments-pagination .nav-links > *.prev { margin-right: auto; } @media only screen and (max-width: 821px) { .pagination .nav-links, .comments-pagination .nav-links { display: flex; flex-wrap: wrap; } .pagination .page-numbers, .comments-pagination .page-numbers { display: none; } .pagination .page-numbers.prev, .pagination .page-numbers.next, .comments-pagination .page-numbers.prev, .comments-pagination .page-numbers.next { display: inline-block; flex: 0 1 auto; } } @media only screen and (max-width: 481px) { .pagination .nav-short, .comments-pagination .nav-short { display: none; } } .comments-pagination { padding-top: calc(0.66 * var(--global--spacing-vertical)); margin: calc(3 * var(--global--spacing-vertical)) auto; } @media only screen and (min-width: 822px) { .comments-pagination { margin: calc(3 * var(--global--spacing-vertical)) auto calc(4 * var(--global--spacing-vertical)) auto; } } .comments-pagination .nav-links > * { font-size: var(--global--font-size-md); } .widget-area { margin-top: calc(6 * var(--global--spacing-vertical)); padding-bottom: calc(var(--global--spacing-vertical) / 3); color: var(--footer--color-text); font-size: var(--footer--font-size); font-family: var(--footer--font-family); } @media only screen and (min-width: 652px) { .widget-area { display: grid; grid-template-columns: repeat(2, 1fr); column-gap: calc(2 * var(--global--spacing-horizontal)); } } @media only screen and (min-width: 1024px) { .widget-area { grid-template-columns: repeat(3, 1fr); } } @media only screen and (max-width: 481px) { .widget-area { margin-top: calc(3 * var(--global--spacing-vertical)); } } .widget-area .wp-block-social-links.alignright { margin-top: var(--global--spacing-vertical); justify-content: flex-end; } .widget-area .wp-block-social-links.alignleft { margin-top: var(--global--spacing-vertical); } .widget-area:after { content: ""; display: table; clear: both; } .widget h1, .widget h2, .widget h3, .widget h4, .widget h5, .widget h6 { font-weight: var(--widget--font-weight-title); line-height: var(--widget--line-height-title); } .widget h1 { font-size: var(--global--font-size-md); } .widget h2 { font-size: var(--global--font-size-sm); } .widget h3 { font-size: var(--global--font-size-xs); } .widget h4 { font-size: var(--global--font-size-xs); } .widget h5 { font-size: var(--global--font-size-xs); } .widget h6 { font-size: var(--global--font-size-xs); } .widget ul { list-style-type: none; padding: 0; } .widget ul li { line-height: var(--widget--line-height-list); } .widget ul.sub-menu, .widget ul.children { margin-left: var(--widget--spacing-menu); } .widget ul .sub-menu-toggle { display: none; } .widget a { color: var(--footer--color-link); text-decoration: underline; text-decoration-style: solid; text-decoration-color: currentColor; } .widget a:link, .widget a:visited, .widget a:active { color: var(--footer--color-link); } .widget a:hover { color: var(--footer--color-link-hover); text-decoration-style: dotted; } .search-form { display: flex; flex-wrap: wrap; margin: auto; max-width: var(--responsive--aligndefault-width); } .search-form > label { width: 100%; margin-bottom: 0; font-weight: var(--form--label-weight); } .search-form .search-field { flex-grow: 1; max-width: inherit; margin-top: calc(var(--global--spacing-vertical) / 3); margin-right: calc(0.66 * var(--global--spacing-horizontal)); } .search-form .search-submit { margin-top: calc(var(--global--spacing-vertical) / 3); margin-left: 10px; } .widget_search > .search-form .search-field { margin-right: calc(-1 * var(--button--border-width)); -webkit-appearance: none; margin-bottom: calc(0.5 * var(--global--spacing-vertical)); } .widget_search > .search-form .search-submit { margin-left: 0; margin-bottom: calc(0.5 * var(--global--spacing-vertical)); } .widget_rss a.rsswidget .rss-widget-icon { display: none; } /* Category 07 is for any utility classes that are not assigned to a specific component. */ .screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); -webkit-clip-path: inset(50%); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; word-break: normal; } .skip-link:focus { background-color: #f1f1f1; border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); clip: auto !important; -webkit-clip-path: none; clip-path: none; color: #21759b; display: block; font-size: 0.875rem; font-weight: 700; height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; } /* Do not show the outline on the skip link target. */ #content[tabindex="-1"]:focus { outline: 0; } .has-black-color[class] { color: var(--global--color-black); } .has-black-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-black, #000); color: var(--local--color-primary); } .has-gray-color[class] { color: var(--global--color-gray); } .has-gray-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-gray, #000); color: var(--local--color-primary); } .has-dark-gray-color[class] { color: var(--global--color-dark-gray); } .has-dark-gray-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-dark-gray, #000); color: var(--local--color-primary); } .has-green-color[class] { color: var(--global--color-green); } .has-green-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-green, #fff); color: var(--local--color-primary); } .has-blue-color[class] { color: var(--global--color-blue); } .has-blue-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-blue, #fff); color: var(--local--color-primary); } .has-purple-color[class] { color: var(--global--color-purple); } .has-purple-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-purple, #fff); color: var(--local--color-primary); } .has-red-color[class] { color: var(--global--color-red); } .has-red-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-red, #fff); color: var(--local--color-primary); } .has-orange-color[class] { color: var(--global--color-orange); } .has-orange-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-orange, #fff); color: var(--local--color-primary); } .has-yellow-color[class] { color: var(--global--color-yellow); } .has-yellow-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-yellow, #fff); color: var(--local--color-primary); } .has-white-color[class] { color: var(--global--color-white); } .has-white-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-white, #fff); color: var(--local--color-primary); } .has-background a, .has-background p, .has-background h1, .has-background h2, .has-background h3, .has-background h4, .has-background h5, .has-background h6 { color: currentColor; } .has-black-background-color[class] { background-color: var(--global--color-black); } .has-black-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-black, #000); background-color: var(--local--color-background); } .has-dark-gray-background-color[class] { background-color: var(--global--color-dark-gray); } .has-dark-gray-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-dark-gray, #000); background-color: var(--local--color-background); } .has-gray-background-color[class] { background-color: var(--global--color-gray); } .has-gray-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-gray, #000); background-color: var(--local--color-background); } .has-light-gray-background-color[class] { background-color: var(--global--color-light-gray); } .has-light-gray-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-light-gray, #fff); background-color: var(--local--color-background); } .has-green-background-color[class] { background-color: var(--global--color-green); } .has-green-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-green, #fff); background-color: var(--local--color-background); } .has-blue-background-color[class] { background-color: var(--global--color-blue); } .has-blue-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-blue, #fff); background-color: var(--local--color-background); } .has-purple-background-color[class] { background-color: var(--global--color-purple); } .has-purple-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-purple, #fff); background-color: var(--local--color-background); } .has-red-background-color[class] { background-color: var(--global--color-red); } .has-red-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-red, #fff); background-color: var(--local--color-background); } .has-orange-background-color[class] { background-color: var(--global--color-orange); } .has-orange-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-orange, #fff); background-color: var(--local--color-background); } .has-yellow-background-color[class] { background-color: var(--global--color-yellow); } .has-yellow-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-yellow, #fff); background-color: var(--local--color-background); } .has-white-background-color[class] { background-color: var(--global--color-white); } .has-white-background-color[class] > [class*=__inner-container] { --local--color-background: var(--global--color-white, #fff); background-color: var(--local--color-background); } .has-background:not(.has-text-color).has-black-background-color[class], .has-background:not(.has-text-color).has-gray-background-color[class], .has-background:not(.has-text-color).has-dark-gray-background-color[class] { color: var(--global--color-white); } .has-background:not(.has-text-color).has-black-background-color[class] > [class*=__inner-container], .has-background:not(.has-text-color).has-gray-background-color[class] > [class*=__inner-container], .has-background:not(.has-text-color).has-dark-gray-background-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-background, #fff); color: var(--local--color-primary, var(--global--color-primary)); } .is-dark-theme .has-background:not(.has-text-color).has-black-background-color[class] > [class*=__inner-container], .is-dark-theme .has-background:not(.has-text-color).has-gray-background-color[class] > [class*=__inner-container], .is-dark-theme .has-background:not(.has-text-color).has-dark-gray-background-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-primary, #000); } .has-background:not(.has-text-color).has-green-background-color[class], .has-background:not(.has-text-color).has-blue-background-color[class], .has-background:not(.has-text-color).has-purple-background-color[class], .has-background:not(.has-text-color).has-red-background-color[class], .has-background:not(.has-text-color).has-orange-background-color[class], .has-background:not(.has-text-color).has-yellow-background-color[class], .has-background:not(.has-text-color).has-white-background-color[class] { color: var(--global--color-dark-gray); } .has-background:not(.has-text-color).has-green-background-color[class] > [class*=__inner-container], .has-background:not(.has-text-color).has-blue-background-color[class] > [class*=__inner-container], .has-background:not(.has-text-color).has-purple-background-color[class] > [class*=__inner-container], .has-background:not(.has-text-color).has-red-background-color[class] > [class*=__inner-container], .has-background:not(.has-text-color).has-orange-background-color[class] > [class*=__inner-container], .has-background:not(.has-text-color).has-yellow-background-color[class] > [class*=__inner-container], .has-background:not(.has-text-color).has-white-background-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-primary, #000); color: var(--local--color-primary, var(--global--color-primary)); } .is-dark-theme .has-background:not(.has-text-color).has-green-background-color[class] > [class*=__inner-container], .is-dark-theme .has-background:not(.has-text-color).has-blue-background-color[class] > [class*=__inner-container], .is-dark-theme .has-background:not(.has-text-color).has-purple-background-color[class] > [class*=__inner-container], .is-dark-theme .has-background:not(.has-text-color).has-red-background-color[class] > [class*=__inner-container], .is-dark-theme .has-background:not(.has-text-color).has-orange-background-color[class] > [class*=__inner-container], .is-dark-theme .has-background:not(.has-text-color).has-yellow-background-color[class] > [class*=__inner-container], .is-dark-theme .has-background:not(.has-text-color).has-white-background-color[class] > [class*=__inner-container] { --local--color-primary: var(--global--color-background, #fff); } .has-purple-to-yellow-gradient-background { background: linear-gradient(160deg, var(--global--color-purple), var(--global--color-yellow)); } .has-yellow-to-purple-gradient-background { background: linear-gradient(160deg, var(--global--color-yellow), var(--global--color-purple)); } .has-green-to-yellow-gradient-background { background: linear-gradient(160deg, var(--global--color-green), var(--global--color-yellow)); } .has-yellow-to-green-gradient-background { background: linear-gradient(160deg, var(--global--color-yellow), var(--global--color-green)); } .has-red-to-yellow-gradient-background { background: linear-gradient(160deg, var(--global--color-red), var(--global--color-yellow)); } .has-yellow-to-red-gradient-background { background: linear-gradient(160deg, var(--global--color-yellow), var(--global--color-red)); } .has-purple-to-red-gradient-background { background: linear-gradient(160deg, var(--global--color-purple), var(--global--color-red)); } .has-red-to-purple-gradient-background { background: linear-gradient(160deg, var(--global--color-red), var(--global--color-purple)); } header *, main *, footer * { max-width: var(--global--spacing-measure); } html, body, div, header, nav, article, figure, hr, main, section, footer { max-width: none; } .is-IE.is-dark-theme { color: #fff; } .is-IE.is-dark-theme *, .is-IE.is-dark-theme a, .is-IE.is-dark-theme .site-description, .is-IE.is-dark-theme .entry-title, .is-IE.is-dark-theme .entry-footer, .is-IE.is-dark-theme .widget-area, .is-IE.is-dark-theme .post-navigation .meta-nav, .is-IE.is-dark-theme .footer-navigation-wrapper li a:link, .is-IE.is-dark-theme .site-footer > .site-info, .is-IE.is-dark-theme .site-footer > .site-info a, .is-IE.is-dark-theme .site-footer > .site-info a:visited { color: #fff; } .is-IE.is-dark-theme .sub-menu-toggle svg, .is-IE.is-dark-theme .sub-menu-toggle path, .is-IE.is-dark-theme .post-navigation .meta-nav svg, .is-IE.is-dark-theme .post-navigation .meta-nav path { fill: #fff; } .is-IE.is-dark-theme .primary-navigation > div > .menu-wrapper > li > .sub-menu li { background: #000; } @media only screen and (max-width: 481px) { .is-IE.is-dark-theme.primary-navigation-open .primary-navigation > .primary-menu-container, .is-IE.is-dark-theme.primary-navigation-open .menu-button-container { background-color: #000; } } .is-IE.is-dark-theme .skip-link:focus { color: #21759b; } .is-IE .navigation .nav-links { display: block; } .is-IE .post-thumbnail .wp-post-image { min-width: auto; } .stylelintrc-css.json000064400000001261152525047610010666 0ustar00{ "extends": [ "@wordpress/stylelint-config" ], "rules": { "indentation": "tab", "no-duplicate-selectors": null, "function-url-quotes": null, "selector-attribute-quotes": null, "declaration-block-no-duplicate-properties": null, "function-calc-no-unspaced-operator": null, "selector-pseudo-class-no-unknown": null, "selector-class-pattern": null, "font-weight-notation": null, "selector-type-no-unknown": null, "max-line-length": null, "at-rule-empty-line-before": null, "selector-pseudo-element-colon-notation": null, "number-leading-zero": null, "no-descending-specificity": null, "length-zero-no-unit": [true, {"ignore": ["custom-properties"]}] } } single.php000064400000003242152525047610006546 0ustar00 sprintf( __( 'Published in%s', 'twentytwentyone' ), '%title' ), ) ); } // If comments are open or there is at least one comment, load up the comment template. if ( comments_open() || get_comments_number() ) { comments_template(); } // Previous/next post navigation. $twentytwentyone_next = is_rtl() ? twenty_twenty_one_get_icon_svg( 'ui', 'arrow_left' ) : twenty_twenty_one_get_icon_svg( 'ui', 'arrow_right' ); $twentytwentyone_prev = is_rtl() ? twenty_twenty_one_get_icon_svg( 'ui', 'arrow_right' ) : twenty_twenty_one_get_icon_svg( 'ui', 'arrow_left' ); $twentytwentyone_next_label = esc_html__( 'Next post', 'twentytwentyone' ); $twentytwentyone_previous_label = esc_html__( 'Previous post', 'twentytwentyone' ); the_post_navigation( array( 'next_text' => '

' . $twentytwentyone_next_label . $twentytwentyone_next . '

%title

', 'prev_text' => '

' . $twentytwentyone_prev . $twentytwentyone_previous_label . '

%title

', ) ); endwhile; // End of the loop. get_footer(); comments.php000064400000005110152525047610007106 0ustar00

    60, 'style' => 'ol', 'short_ping' => true, ) ); ?>
esc_html__( 'Page', 'twentytwentyone' ) . ' ', 'mid_size' => 0, 'prev_text' => sprintf( '%s %s', is_rtl() ? twenty_twenty_one_get_icon_svg( 'ui', 'arrow_right' ) : twenty_twenty_one_get_icon_svg( 'ui', 'arrow_left' ), esc_html__( 'Older comments', 'twentytwentyone' ) ), 'next_text' => sprintf( '%s %s', esc_html__( 'Newer comments', 'twentytwentyone' ), is_rtl() ? twenty_twenty_one_get_icon_svg( 'ui', 'arrow_left' ) : twenty_twenty_one_get_icon_svg( 'ui', 'arrow_right' ) ), ) ); ?>

esc_html__( 'Leave a comment', 'twentytwentyone' ), 'title_reply_before' => '

', 'title_reply_after' => '

', ) ); ?>
inc/template-tags.php000064400000016446152525047610010617 0ustar00%2$s'; $time_string = sprintf( $time_string, esc_attr( get_the_date( DATE_W3C ) ), esc_html( get_the_date() ) ); echo ''; printf( /* translators: %s: Publish date. */ esc_html__( 'Published %s', 'twentytwentyone' ), $time_string // phpcs:ignore WordPress.Security.EscapeOutput ); echo ''; } } if ( ! function_exists( 'twenty_twenty_one_posted_by' ) ) { /** * Prints HTML with meta information about theme author. * * @since Twenty Twenty-One 1.0 * * @return void */ function twenty_twenty_one_posted_by() { if ( ! get_the_author_meta( 'description' ) && post_type_supports( get_post_type(), 'author' ) ) { echo ''; printf( /* translators: %s: Author name. */ esc_html__( 'By %s', 'twentytwentyone' ), '' ); echo ''; } } } if ( ! function_exists( 'twenty_twenty_one_entry_meta_footer' ) ) { /** * Prints HTML with meta information for the categories, tags and comments. * Footer entry meta is displayed differently in archives and single posts. * * @since Twenty Twenty-One 1.0 * * @return void */ function twenty_twenty_one_entry_meta_footer() { // Early exit if not a post. if ( 'post' !== get_post_type() ) { return; } // Hide meta information on pages. if ( ! is_single() ) { if ( is_sticky() ) { echo '

' . esc_html_x( 'Featured post', 'Label for sticky posts', 'twentytwentyone' ) . '

'; } $post_format = get_post_format(); if ( 'aside' === $post_format || 'status' === $post_format ) { echo '

' . twenty_twenty_one_continue_reading_text() . '

'; // phpcs:ignore WordPress.Security.EscapeOutput } // Posted on. twenty_twenty_one_posted_on(); // Edit post link. edit_post_link( sprintf( /* translators: %s: Post title. Only visible to screen readers. */ esc_html__( 'Edit %s', 'twentytwentyone' ), '' . get_the_title() . '' ), '', '
' ); if ( has_category() || has_tag() ) { echo '
'; $categories_list = get_the_category_list( wp_get_list_item_separator() ); if ( $categories_list ) { printf( /* translators: %s: List of categories. */ '' . esc_html__( 'Categorized as %s', 'twentytwentyone' ) . ' ', $categories_list // phpcs:ignore WordPress.Security.EscapeOutput ); } $tags_list = get_the_tag_list( '', wp_get_list_item_separator() ); if ( $tags_list ) { printf( /* translators: %s: List of tags. */ '' . esc_html__( 'Tagged %s', 'twentytwentyone' ) . '', $tags_list // phpcs:ignore WordPress.Security.EscapeOutput ); } echo '
'; } } else { echo '
'; // Posted on. twenty_twenty_one_posted_on(); // Posted by. twenty_twenty_one_posted_by(); // Edit post link. edit_post_link( sprintf( /* translators: %s: Post title. Only visible to screen readers. */ esc_html__( 'Edit %s', 'twentytwentyone' ), '' . get_the_title() . '' ), '', '' ); echo '
'; if ( has_category() || has_tag() ) { echo '
'; $categories_list = get_the_category_list( wp_get_list_item_separator() ); if ( $categories_list ) { printf( /* translators: %s: List of categories. */ '' . esc_html__( 'Categorized as %s', 'twentytwentyone' ) . ' ', $categories_list // phpcs:ignore WordPress.Security.EscapeOutput ); } $tags_list = get_the_tag_list( '', wp_get_list_item_separator() ); if ( $tags_list ) { printf( /* translators: %s: List of tags. */ '' . esc_html__( 'Tagged %s', 'twentytwentyone' ) . '', $tags_list // phpcs:ignore WordPress.Security.EscapeOutput ); } echo '
'; } } } } if ( ! function_exists( 'twenty_twenty_one_post_thumbnail' ) ) { /** * Displays an optional post thumbnail. * * Wraps the post thumbnail in an anchor element on index views, or a div * element when on single views. * * @since Twenty Twenty-One 1.0 * * @return void */ function twenty_twenty_one_post_thumbnail() { if ( ! twenty_twenty_one_can_show_post_thumbnail() ) { return; } ?>
false ) ); ?>
esc_html__( 'Page', 'twentytwentyone' ) . ' ', 'mid_size' => 0, 'prev_text' => sprintf( '%s %s', is_rtl() ? twenty_twenty_one_get_icon_svg( 'ui', 'arrow_right' ) : twenty_twenty_one_get_icon_svg( 'ui', 'arrow_left' ), wp_kses( __( 'Newer posts', 'twentytwentyone' ), array( 'span' => array( 'class' => array(), ), ) ) ), 'next_text' => sprintf( '%s %s', wp_kses( __( 'Older posts', 'twentytwentyone' ), array( 'span' => array( 'class' => array(), ), ) ), is_rtl() ? twenty_twenty_one_get_icon_svg( 'ui', 'arrow_left' ) : twenty_twenty_one_get_icon_svg( 'ui', 'arrow_right' ) ), ) ); } } inc/block-patterns.php000064400000050052152525047610010767 0ustar00 esc_html__( 'Twenty Twenty-One', 'twentytwentyone' ) ) ); } add_action( 'init', 'twenty_twenty_one_register_block_pattern_category' ); } /** * Register Block Patterns. */ if ( function_exists( 'register_block_pattern' ) ) { /** * Register Block Pattern. * * @since Twenty Twenty-One 1.0 * * @return void */ function twenty_twenty_one_register_block_pattern() { // Large Text. register_block_pattern( 'twentytwentyone/large-text', array( 'title' => esc_html__( 'Large text', 'twentytwentyone' ), 'categories' => array( 'twentytwentyone' ), 'viewportWidth' => 1440, 'blockTypes' => array( 'core/heading' ), 'content' => '

' . esc_html__( 'A new portfolio default theme for WordPress', 'twentytwentyone' ) . '

', ) ); // Links Area. register_block_pattern( 'twentytwentyone/links-area', array( 'title' => esc_html__( 'Links area', 'twentytwentyone' ), 'categories' => array( 'twentytwentyone' ), 'viewportWidth' => 1440, 'blockTypes' => array( 'core/cover' ), 'description' => esc_html_x( 'A huge text followed by social networks and email address links.', 'Block pattern description', 'twentytwentyone' ), 'content' => '

', ) ); // Media & Text Article Title. register_block_pattern( 'twentytwentyone/media-text-article-title', array( 'title' => esc_html__( 'Media and text article title', 'twentytwentyone' ), 'categories' => array( 'twentytwentyone' ), 'viewportWidth' => 1440, 'description' => esc_html_x( 'A Media & Text block with a big image on the left and a heading on the right. The heading is followed by a separator and a description paragraph.', 'Block pattern description', 'twentytwentyone' ), 'content' => '
' . esc_attr__( '“Playing in the Sand” by Berthe Morisot', 'twentytwentyone' ) . '

' . esc_html__( 'Playing in the Sand', 'twentytwentyone' ) . '


' . wp_kses_post( __( 'Berthe Morisot
(French, 1841-1895)', 'twentytwentyone' ) ) . '

', ) ); // Overlapping Images. register_block_pattern( 'twentytwentyone/overlapping-images', array( 'title' => esc_html__( 'Overlapping images', 'twentytwentyone' ), 'categories' => array( 'twentytwentyone' ), 'viewportWidth' => 1024, 'blockTypes' => array( 'core/columns' ), 'description' => esc_html_x( 'Three images inside an overlapping columns block.', 'Block pattern description', 'twentytwentyone' ), 'content' => '
' . esc_attr__( '“Roses Trémières” by Berthe Morisot', 'twentytwentyone' ) . '
' . esc_attr__( '“In the Bois de Boulogne” by Berthe Morisot', 'twentytwentyone' ) . '
' . esc_attr__( '“Young Woman in Mauve” by Berthe Morisot', 'twentytwentyone' ) . '
', ) ); // Two Images Showcase. register_block_pattern( 'twentytwentyone/two-images-showcase', array( 'title' => esc_html__( 'Two images showcase', 'twentytwentyone' ), 'categories' => array( 'twentytwentyone' ), 'viewportWidth' => 1440, 'description' => esc_html_x( 'A media & text block with a big image on the left and a smaller one with bordered frame on the right.', 'Block pattern description', 'twentytwentyone' ), 'content' => '
' . esc_attr__( '“Daffodils” by Berthe Morisot', 'twentytwentyone' ) . '
' . esc_attr__( '“Self portrait” by Berthe Morisot', 'twentytwentyone' ) . '
', ) ); // Overlapping Images and Text. register_block_pattern( 'twentytwentyone/overlapping-images-and-text', array( 'title' => esc_html__( 'Overlapping images and text', 'twentytwentyone' ), 'categories' => array( 'twentytwentyone' ), 'viewportWidth' => 1440, 'blockTypes' => array( 'core/columns' ), 'description' => esc_html_x( 'An overlapping columns block with two images and a text description.', 'Block pattern description', 'twentytwentyone' ), 'content' => '
' . esc_attr__( '“The Garden at Bougival” by Berthe Morisot', 'twentytwentyone' ) . '

' . esc_html__( 'Beautiful gardens painted by Berthe Morisot in the late 1800s', 'twentytwentyone' ) . '

' . esc_attr__( '“Villa with Orange Trees, Nice” by Berthe Morisot', 'twentytwentyone' ) . '
', ) ); // Portfolio List. register_block_pattern( 'twentytwentyone/portfolio-list', array( 'title' => esc_html__( 'Portfolio list', 'twentytwentyone' ), 'categories' => array( 'twentytwentyone' ), 'description' => esc_html_x( 'A list of projects with thumbnail images.', 'Block pattern description', 'twentytwentyone' ), 'content' => '
' . esc_attr__( '“Roses Trémières” by Berthe Morisot', 'twentytwentyone' ) . '

“Villa with Orange Trees, Nice” by Berthe Morisot

' . esc_attr__( '“In the Bois de Boulogne” by Berthe Morisot', 'twentytwentyone' ) . '

' . esc_attr__( '“The Garden at Bougival” by Berthe Morisot', 'twentytwentyone' ) . '

' . esc_attr__( '“Young Woman in Mauve” by Berthe Morisot', 'twentytwentyone' ) . '

' . esc_attr__( '“Reading” by Berthe Morisot', 'twentytwentyone' ) . '

', ) ); register_block_pattern( 'twentytwentyone/contact-information', array( 'title' => esc_html__( 'Contact information', 'twentytwentyone' ), 'categories' => array( 'twentytwentyone' ), 'blockTypes' => array( 'core/columns' ), 'description' => esc_html_x( 'A block with 3 columns that display contact information and social media links.', 'Block pattern description', 'twentytwentyone' ), 'content' => '

' . esc_html_x( 'example@example.com', 'Block pattern sample content', 'twentytwentyone' ) . '
' . esc_html_x( '123-456-7890', 'Block pattern sample content', 'twentytwentyone' ) . '

' . esc_html_x( '123 Main Street', 'Block pattern sample content', 'twentytwentyone' ) . '
' . esc_html_x( 'Cambridge, MA, 02139', 'Block pattern sample content', 'twentytwentyone' ) . '

', ) ); } add_action( 'init', 'twenty_twenty_one_register_block_pattern' ); } inc/back-compat.php000064400000004654152525047610010227 0ustar00

'; printf( /* translators: %s: WordPress Version. */ esc_html__( 'This theme requires WordPress 5.3 or newer. You are running version %s. Please upgrade.', 'twentytwentyone' ), esc_html( $GLOBALS['wp_version'] ) ); echo '

'; } /** * Prevents the Customizer from being loaded on WordPress versions prior to 5.3. * * @since Twenty Twenty-One 1.0 * * @global string $wp_version WordPress version. * * @return void */ function twenty_twenty_one_customize() { wp_die( sprintf( /* translators: %s: WordPress Version. */ esc_html__( 'This theme requires WordPress 5.3 or newer. You are running version %s. Please upgrade.', 'twentytwentyone' ), esc_html( $GLOBALS['wp_version'] ) ), '', array( 'back_link' => true, ) ); } add_action( 'load-customize.php', 'twenty_twenty_one_customize' ); /** * Prevents the Theme Preview from being loaded on WordPress versions prior to 5.3. * * @since Twenty Twenty-One 1.0 * * @global string $wp_version WordPress version. * * @return void */ function twenty_twenty_one_preview() { if ( isset( $_GET['preview'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification wp_die( sprintf( /* translators: %s: WordPress Version. */ esc_html__( 'This theme requires WordPress 5.3 or newer. You are running version %s. Please upgrade.', 'twentytwentyone' ), esc_html( $GLOBALS['wp_version'] ) ) ); } } add_action( 'template_redirect', 'twenty_twenty_one_preview' ); inc/block-styles.php000064400000004611152525047610010452 0ustar00 'twentytwentyone-columns-overlap', 'label' => esc_html__( 'Overlap', 'twentytwentyone' ), ) ); // Cover: Borders. register_block_style( 'core/cover', array( 'name' => 'twentytwentyone-border', 'label' => esc_html__( 'Borders', 'twentytwentyone' ), ) ); // Group: Borders. register_block_style( 'core/group', array( 'name' => 'twentytwentyone-border', 'label' => esc_html__( 'Borders', 'twentytwentyone' ), ) ); // Image: Borders. register_block_style( 'core/image', array( 'name' => 'twentytwentyone-border', 'label' => esc_html__( 'Borders', 'twentytwentyone' ), ) ); // Image: Frame. register_block_style( 'core/image', array( 'name' => 'twentytwentyone-image-frame', 'label' => esc_html__( 'Frame', 'twentytwentyone' ), ) ); // Latest Posts: Dividers. register_block_style( 'core/latest-posts', array( 'name' => 'twentytwentyone-latest-posts-dividers', 'label' => esc_html__( 'Dividers', 'twentytwentyone' ), ) ); // Latest Posts: Borders. register_block_style( 'core/latest-posts', array( 'name' => 'twentytwentyone-latest-posts-borders', 'label' => esc_html__( 'Borders', 'twentytwentyone' ), ) ); // Media & Text: Borders. register_block_style( 'core/media-text', array( 'name' => 'twentytwentyone-border', 'label' => esc_html__( 'Borders', 'twentytwentyone' ), ) ); // Separator: Thick. register_block_style( 'core/separator', array( 'name' => 'twentytwentyone-separator-thick', 'label' => esc_html__( 'Thick', 'twentytwentyone' ), ) ); // Social icons: Dark gray color. register_block_style( 'core/social-links', array( 'name' => 'twentytwentyone-social-icons-color', 'label' => esc_html__( 'Dark gray', 'twentytwentyone' ), ) ); } add_action( 'init', 'twenty_twenty_one_register_block_styles' ); } inc/starter-content.php000064400000021031152525047610011166 0ustar00 array( 'front' => array( 'post_type' => 'page', 'post_title' => esc_html_x( 'Create your website with blocks', 'Theme starter content', 'twentytwentyone' ), 'post_content' => '

' . esc_html_x( 'Create your website with blocks', 'Theme starter content', 'twentytwentyone' ) . '

' . esc_attr__( '“Roses Trémières” by Berthe Morisot', 'twentytwentyone' ) . '
' . esc_attr__( '“In the Bois de Boulogne” by Berthe Morisot', 'twentytwentyone' ) . '
' . esc_attr__( '“Young Woman in Mauve” by Berthe Morisot', 'twentytwentyone' ) . '

' . esc_html_x( 'Add block patterns', 'Theme starter content', 'twentytwentyone' ) . '

' . esc_html_x( 'Block patterns are pre-designed groups of blocks. To add one, select the Add Block button [+] in the toolbar at the top of the editor. Switch to the Patterns tab underneath the search bar, and choose a pattern.', 'Theme starter content', 'twentytwentyone' ) . '

' . esc_html_x( 'Frame your images', 'Theme starter content', 'twentytwentyone' ) . '

' . esc_html_x( 'Twenty Twenty-One includes stylish borders for your content. With an Image block selected, open the "Styles" panel within the Editor sidebar. Select the "Frame" block style to activate it.', 'Theme starter content', 'twentytwentyone' ) . '

' . esc_html_x( 'Overlap columns', 'Theme starter content', 'twentytwentyone' ) . '

' . esc_html_x( 'Twenty Twenty-One also includes an overlap style for column blocks. With a Columns block selected, open the "Styles" panel within the Editor sidebar. Choose the "Overlap" block style to try it out.', 'Theme starter content', 'twentytwentyone' ) . '

', ), 'about', 'contact', 'blog', ), // Default to a static front page and assign the front and posts pages. 'options' => array( 'show_on_front' => 'page', 'page_on_front' => '{{front}}', 'page_for_posts' => '{{blog}}', ), // Set up nav menus for each of the two areas registered in the theme. 'nav_menus' => array( // Assign a menu to the "primary" location. 'primary' => array( 'name' => esc_html__( 'Primary menu', 'twentytwentyone' ), 'items' => array( 'link_home', // Note that the core "home" page is actually a link in case a static front page is not used. 'page_about', 'page_blog', 'page_contact', ), ), // Assign a menu to the "footer" location. 'footer' => array( 'name' => esc_html__( 'Secondary menu', 'twentytwentyone' ), 'items' => array( 'link_facebook', 'link_twitter', 'link_instagram', 'link_email', ), ), ), ); /** * Filters the array of starter content. * * @since Twenty Twenty-One 1.0 * * @param array $starter_content Array of starter content. */ return apply_filters( 'twenty_twenty_one_starter_content', $starter_content ); } inc/error_log000064400000004032152525047610007240 0ustar00[21-May-2025 15:15:00 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_action() in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/back-compat.php:24 Stack trace: #0 {main} thrown in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/back-compat.php on line 24 [21-May-2025 15:15:00 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/menu-functions.php:39 Stack trace: #0 {main} thrown in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/menu-functions.php on line 39 [21-May-2025 15:15:00 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/template-functions.php:38 Stack trace: #0 {main} thrown in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/template-functions.php on line 38 [19-Jul-2025 18:49:28 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_action() in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/back-compat.php:24 Stack trace: #0 {main} thrown in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/back-compat.php on line 24 [19-Jul-2025 18:49:28 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/menu-functions.php:39 Stack trace: #0 {main} thrown in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/menu-functions.php on line 39 [19-Jul-2025 18:49:29 UTC] PHP Fatal error: Uncaught Error: Call to undefined function add_filter() in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/template-functions.php:38 Stack trace: #0 {main} thrown in /home/alexum/stockholmmaskinservice.se/wp-content/themes/twentytwentyone/inc/template-functions.php on line 38 inc/template-functions.php000064400000042405152525047610011663 0ustar00'; } } add_action( 'wp_head', 'twenty_twenty_one_pingback_header' ); /** * Remove the `no-js` class from body if JS is supported. * * @since Twenty Twenty-One 1.0 * * @return void */ function twenty_twenty_one_supports_js() { echo ''; } add_action( 'wp_footer', 'twenty_twenty_one_supports_js' ); /** * Changes comment form default fields. * * @since Twenty Twenty-One 1.0 * * @param array $defaults The form defaults. * @return array */ function twenty_twenty_one_comment_form_defaults( $defaults ) { // Adjust height of comment form. $defaults['comment_field'] = preg_replace( '/rows="\d+"/', 'rows="5"', $defaults['comment_field'] ); return $defaults; } add_filter( 'comment_form_defaults', 'twenty_twenty_one_comment_form_defaults' ); /** * Determines if post thumbnail can be displayed. * * @since Twenty Twenty-One 1.0 * * @return bool */ function twenty_twenty_one_can_show_post_thumbnail() { /** * Filters whether post thumbnail can be displayed. * * @since Twenty Twenty-One 1.0 * * @param bool $show_post_thumbnail Whether to show post thumbnail. */ return apply_filters( 'twenty_twenty_one_can_show_post_thumbnail', ! post_password_required() && ! is_attachment() && has_post_thumbnail() ); } /** * Returns the size for avatars used in the theme. * * @since Twenty Twenty-One 1.0 * * @return int */ function twenty_twenty_one_get_avatar_size() { return 60; } /** * Creates continue reading text. * * @since Twenty Twenty-One 1.0 */ function twenty_twenty_one_continue_reading_text() { $continue_reading = sprintf( /* translators: %s: Post title. Only visible to screen readers. */ esc_html__( 'Continue reading %s', 'twentytwentyone' ), the_title( '', '', false ) ); return $continue_reading; } /** * Creates the continue reading link for excerpt. * * @since Twenty Twenty-One 1.0 */ function twenty_twenty_one_continue_reading_link_excerpt() { if ( ! is_admin() ) { return '… ' . twenty_twenty_one_continue_reading_text() . ''; } } // Filter the excerpt more link. add_filter( 'excerpt_more', 'twenty_twenty_one_continue_reading_link_excerpt' ); /** * Creates the continue reading link. * * @since Twenty Twenty-One 1.0 */ function twenty_twenty_one_continue_reading_link() { if ( ! is_admin() ) { return ''; } } // Filter the content more link. add_filter( 'the_content_more_link', 'twenty_twenty_one_continue_reading_link' ); if ( ! function_exists( 'twenty_twenty_one_post_title' ) ) { /** * Adds a title to posts and pages that are missing titles. * * @since Twenty Twenty-One 1.0 * * @param string $title The title. * @return string */ function twenty_twenty_one_post_title( $title ) { return '' === $title ? esc_html_x( 'Untitled', 'Added to posts and pages that are missing titles', 'twentytwentyone' ) : $title; } } add_filter( 'the_title', 'twenty_twenty_one_post_title' ); /** * Gets the SVG code for a given icon. * * @since Twenty Twenty-One 1.0 * * @param string $group The icon group. * @param string $icon The icon. * @param int $size The icon size in pixels. * @return string */ function twenty_twenty_one_get_icon_svg( $group, $icon, $size = 24 ) { return Twenty_Twenty_One_SVG_Icons::get_svg( $group, $icon, $size ); } /** * Changes the default navigation arrows to svg icons * * @since Twenty Twenty-One 1.0 * * @param string $calendar_output The generated HTML of the calendar. * @return string */ function twenty_twenty_one_change_calendar_nav_arrows( $calendar_output ) { $calendar_output = str_replace( '« ', is_rtl() ? twenty_twenty_one_get_icon_svg( 'ui', 'arrow_right' ) : twenty_twenty_one_get_icon_svg( 'ui', 'arrow_left' ), $calendar_output ); $calendar_output = str_replace( ' »', is_rtl() ? twenty_twenty_one_get_icon_svg( 'ui', 'arrow_left' ) : twenty_twenty_one_get_icon_svg( 'ui', 'arrow_right' ), $calendar_output ); return $calendar_output; } add_filter( 'get_calendar', 'twenty_twenty_one_change_calendar_nav_arrows' ); /** * Get custom CSS. * * Return CSS for non-latin language, if available, or null * * @since Twenty Twenty-One 1.0 * * @param string $type Whether to return CSS for the "front-end", "block-editor", or "classic-editor". * @return string */ function twenty_twenty_one_get_non_latin_css( $type = 'front-end' ) { // Fetch site locale. $locale = get_bloginfo( 'language' ); /** * Filters the fallback fonts for non-latin languages. * * @since Twenty Twenty-One 1.0 * * @param array $font_family An array of locales and font families. */ $font_family = apply_filters( 'twenty_twenty_one_get_localized_font_family_types', array( // Arabic. 'ar' => array( 'Tahoma', 'Arial', 'sans-serif' ), 'ary' => array( 'Tahoma', 'Arial', 'sans-serif' ), 'azb' => array( 'Tahoma', 'Arial', 'sans-serif' ), 'ckb' => array( 'Tahoma', 'Arial', 'sans-serif' ), 'fa-IR' => array( 'Tahoma', 'Arial', 'sans-serif' ), 'haz' => array( 'Tahoma', 'Arial', 'sans-serif' ), 'ps' => array( 'Tahoma', 'Arial', 'sans-serif' ), // Chinese Simplified (China) - Noto Sans SC. 'zh-CN' => array( '\'PingFang SC\'', '\'Helvetica Neue\'', '\'Microsoft YaHei New\'', '\'STHeiti Light\'', 'sans-serif' ), // Chinese Traditional (Taiwan) - Noto Sans TC. 'zh-TW' => array( '\'PingFang TC\'', '\'Helvetica Neue\'', '\'Microsoft YaHei New\'', '\'STHeiti Light\'', 'sans-serif' ), // Chinese (Hong Kong) - Noto Sans HK. 'zh-HK' => array( '\'PingFang HK\'', '\'Helvetica Neue\'', '\'Microsoft YaHei New\'', '\'STHeiti Light\'', 'sans-serif' ), // Cyrillic. 'bel' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ), 'bg-BG' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ), 'kk' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ), 'mk-MK' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ), 'mn' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ), 'ru-RU' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ), 'sah' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ), 'sr-RS' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ), 'tt-RU' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ), 'uk' => array( '\'Helvetica Neue\'', 'Helvetica', '\'Segoe UI\'', 'Arial', 'sans-serif' ), // Devanagari. 'bn-BD' => array( 'Arial', 'sans-serif' ), 'hi-IN' => array( 'Arial', 'sans-serif' ), 'mr' => array( 'Arial', 'sans-serif' ), 'ne-NP' => array( 'Arial', 'sans-serif' ), // Greek. 'el' => array( '\'Helvetica Neue\', Helvetica, Arial, sans-serif' ), // Gujarati. 'gu' => array( 'Arial', 'sans-serif' ), // Hebrew. 'he-IL' => array( '\'Arial Hebrew\'', 'Arial', 'sans-serif' ), // Japanese. 'ja' => array( 'sans-serif' ), // Korean. 'ko-KR' => array( '\'Apple SD Gothic Neo\'', '\'Malgun Gothic\'', '\'Nanum Gothic\'', 'Dotum', 'sans-serif' ), // Thai. 'th' => array( '\'Sukhumvit Set\'', '\'Helvetica Neue\'', 'Helvetica', 'Arial', 'sans-serif' ), // Vietnamese. 'vi' => array( '\'Libre Franklin\'', 'sans-serif' ), ) ); // Return if the selected language has no fallback fonts. if ( empty( $font_family[ $locale ] ) ) { return ''; } /** * Filters the elements to apply fallback fonts to. * * @since Twenty Twenty-One 1.0 * * @param array $elements An array of elements for "front-end", "block-editor", or "classic-editor". */ $elements = apply_filters( 'twenty_twenty_one_get_localized_font_family_elements', array( 'front-end' => array( 'body', 'input', 'textarea', 'button', '.button', '.faux-button', '.wp-block-button__link', '.wp-block-file__button', '.has-drop-cap:not(:focus)::first-letter', '.entry-content .wp-block-archives', '.entry-content .wp-block-categories', '.entry-content .wp-block-cover-image', '.entry-content .wp-block-latest-comments', '.entry-content .wp-block-latest-posts', '.entry-content .wp-block-pullquote', '.entry-content .wp-block-quote.is-large', '.entry-content .wp-block-quote.is-style-large', '.entry-content .wp-block-archives *', '.entry-content .wp-block-categories *', '.entry-content .wp-block-latest-posts *', '.entry-content .wp-block-latest-comments *', '.entry-content p', '.entry-content ol', '.entry-content ul', '.entry-content dl', '.entry-content dt', '.entry-content cite', '.entry-content figcaption', '.entry-content .wp-caption-text', '.comment-content p', '.comment-content ol', '.comment-content ul', '.comment-content dl', '.comment-content dt', '.comment-content cite', '.comment-content figcaption', '.comment-content .wp-caption-text', '.widget_text p', '.widget_text ol', '.widget_text ul', '.widget_text dl', '.widget_text dt', '.widget-content .rssSummary', '.widget-content cite', '.widget-content figcaption', '.widget-content .wp-caption-text' ), 'block-editor' => array( '.editor-styles-wrapper > *', '.editor-styles-wrapper p', '.editor-styles-wrapper ol', '.editor-styles-wrapper ul', '.editor-styles-wrapper dl', '.editor-styles-wrapper dt', '.editor-post-title__block .editor-post-title__input', '.editor-styles-wrapper .wp-block h1', '.editor-styles-wrapper .wp-block h2', '.editor-styles-wrapper .wp-block h3', '.editor-styles-wrapper .wp-block h4', '.editor-styles-wrapper .wp-block h5', '.editor-styles-wrapper .wp-block h6', '.editor-styles-wrapper .has-drop-cap:not(:focus)::first-letter', '.editor-styles-wrapper cite', '.editor-styles-wrapper figcaption', '.editor-styles-wrapper .wp-caption-text' ), 'classic-editor' => array( 'body#tinymce.wp-editor', 'body#tinymce.wp-editor p', 'body#tinymce.wp-editor ol', 'body#tinymce.wp-editor ul', 'body#tinymce.wp-editor dl', 'body#tinymce.wp-editor dt', 'body#tinymce.wp-editor figcaption', 'body#tinymce.wp-editor .wp-caption-text', 'body#tinymce.wp-editor .wp-caption-dd', 'body#tinymce.wp-editor cite', 'body#tinymce.wp-editor table' ), ) ); // Return if the specified type doesn't exist. if ( empty( $elements[ $type ] ) ) { return ''; } // Include file if function doesn't exist. if ( ! function_exists( 'twenty_twenty_one_generate_css' ) ) { require_once get_theme_file_path( 'inc/custom-css.php' ); // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude.FileIncludeFound } // Return the specified styles. return twenty_twenty_one_generate_css( // @phpstan-ignore-line. implode( ',', $elements[ $type ] ), 'font-family', implode( ',', $font_family[ $locale ] ), null, null, false ); } /** * Print the first instance of a block in the content, and then break away. * * @since Twenty Twenty-One 1.0 * * @param string $block_name The full block type name, or a partial match. * Example: `core/image`, `core-embed/*`. * @param string|null $content The content to search in. Use null for get_the_content(). * @param int $instances How many instances of the block will be printed (max). Default 1. * @return bool Returns true if a block was located & printed, otherwise false. */ function twenty_twenty_one_print_first_instance_of_block( $block_name, $content = null, $instances = 1 ) { $instances_count = 0; $blocks_content = ''; if ( ! $content ) { $content = get_the_content(); } // Parse blocks in the content. $blocks = parse_blocks( $content ); // Loop blocks. foreach ( $blocks as $block ) { // Sanity check. if ( ! isset( $block['blockName'] ) ) { continue; } // Check if this the block matches the $block_name. $is_matching_block = false; // If the block ends with *, try to match the first portion. if ( '*' === $block_name[-1] ) { $is_matching_block = 0 === strpos( $block['blockName'], rtrim( $block_name, '*' ) ); } else { $is_matching_block = $block_name === $block['blockName']; } if ( $is_matching_block ) { // Increment count. $instances_count++; // Add the block HTML. $blocks_content .= render_block( $block ); // Break the loop if the $instances count was reached. if ( $instances_count >= $instances ) { break; } } } if ( $blocks_content ) { /** This filter is documented in wp-includes/post-template.php */ echo apply_filters( 'the_content', $blocks_content ); // phpcs:ignore WordPress.Security.EscapeOutput return true; } return false; } /** * Retrieve protected post password form content. * * @since Twenty Twenty-One 1.0 * @since Twenty Twenty-One 1.4 Corrected parameter name for `$output`, * added the `$post` parameter. * * @param string $output The password form HTML output. * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post. * @return string HTML content for password form for password protected post. */ function twenty_twenty_one_password_form( $output, $post = 0 ) { $post = get_post( $post ); $label = 'pwbox-' . ( empty( $post->ID ) ? wp_rand() : $post->ID ); $output = '

' . esc_html__( 'This content is password protected. Please enter a password to view.', 'twentytwentyone' ) . '

'; return $output; } add_filter( 'the_password_form', 'twenty_twenty_one_password_form', 10, 2 ); /** * Filters the list of attachment image attributes. * * @since Twenty Twenty-One 1.0 * * @param string[] $attr Array of attribute values for the image markup, keyed by attribute name. * See wp_get_attachment_image(). * @param WP_Post $attachment Image attachment post. * @param string|int[] $size Requested image size. Can be any registered image size name, or * an array of width and height values in pixels (in that order). * @return string[] The filtered attributes for the image markup. */ function twenty_twenty_one_get_attachment_image_attributes( $attr, $attachment, $size ) { if ( is_admin() ) { return $attr; } if ( isset( $attr['class'] ) && false !== strpos( $attr['class'], 'custom-logo' ) ) { return $attr; } $width = false; $height = false; if ( is_array( $size ) ) { $width = (int) $size[0]; $height = (int) $size[1]; } elseif ( $attachment && is_object( $attachment ) && $attachment->ID ) { $meta = wp_get_attachment_metadata( $attachment->ID ); if ( isset( $meta['width'] ) && isset( $meta['height'] ) ) { $width = (int) $meta['width']; $height = (int) $meta['height']; } } if ( $width && $height ) { // Add style. $attr['style'] = isset( $attr['style'] ) ? $attr['style'] : ''; $attr['style'] = 'width:100%;height:' . round( 100 * $height / $width, 2 ) . '%;max-width:' . $width . 'px;' . $attr['style']; } return $attr; } add_filter( 'wp_get_attachment_image_attributes', 'twenty_twenty_one_get_attachment_image_attributes', 10, 3 ); inc/custom-css.php000064400000002257152525047610010143 0ustar00 tags and can only be interpreted as CSS on the browser. * Using wp_strip_all_tags() here is sufficient escaping to avoid * malicious attempts to close and open a