/*
Theme Name: Hello Elementor Child
Theme URI: https://elementor.com/hello-theme/?utm_source=wp-themes&utm_campaign=theme-uri&utm_medium=wp-dash
Template: hello-elementor
Author: Elementor Team
Author URI: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
Description: Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators.
Tags: accessibility-ready,flexible-header,custom-colors,custom-menu,custom-logo,featured-images,rtl-language-support,threaded-comments,translation-ready
Version: 3.4.9.1779503742
Updated: 2026-05-23 02:35:42

*/
/*
Theme Name: Hello Elementor Child
Theme URI: https://developer.your-site.com/
Description: Custom child theme for Hello Elementor — converted from SWM theme styles.
Author: Your Name
Author URI: https://developer.your-site.com/
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child
*/

/* ==========================================================================
   TABLE OF CONTENTS
   ==========================================================================
   1. CSS Custom Properties (Design Tokens)
   2. Reset & Base
   3. Typography
   4. Links & Colors
   5. Layout & Container
   6. Images & Media
   7. Tables
   8. Blockquotes
   9. Forms & Inputs
   10. Buttons
   11. Blog — Post Cards
   12. Blog — Single Post
   13. Post Meta
   14. Post Navigation (Prev/Next)
   15. Share Icons
   16. Author Box
   17. Comments
   18. Related Posts
   19. Pagination
   20. Sidebar & Widgets
   21. Search Page
   22. Error 404 Page
   23. Back to Top
   24. Gutenberg Block Overrides
   25. Sticky Header Shell
   26. Utility Classes
   27. Transitions & Animations
   28. Print Styles
   29. Responsive — Tablet (≤1024px)
   30. Responsive — Mobile (≤767px)
   31. Responsive — Small Mobile (≤480px)
   ========================================================================== */


/* ==========================================================================
   1. CSS CUSTOM PROPERTIES (DESIGN TOKENS)
   ==========================================================================
   Override these in Elementor → Site Settings → Custom CSS, or in the
   Customizer, to rebrand the entire site in one place.
   ========================================================================== */

:root {
    /* ---- Colors ---- */
    --swm-color-body:         #ffffff;
    --swm-color-dark-1:       #1a1a1a;
    --swm-color-dark-2:       #2a2a2a;
    --swm-color-light-1:      #ffffff;
    --swm-color-light-2:      #f5f5f5;
    --swm-color-text:         #555555;
    --swm-color-headings:     #1a1a1a;
    --swm-color-link:         #1a1a1a;
    --swm-color-link-hover:   #555555;
    --swm-color-border:       #e0e0e0;
    --swm-color-border-hover: #aaaaaa;

    /* ---- Typography — Body ---- */
    --body-font-size:            16px;
    --swm-body-font-family:      inherit;
    --swm-body-line-height:      1.7;

    /* ---- Typography — Headings ---- */
    --swm-headings-font-family:       inherit;
    --swm-headings-font-style:        normal;
    --swm-headings-font-weight:       700;
    --swm-headings-letter-spacing:    0;

    /* h1 */
    --swm-h1-font-size:        48px;
    --swm-h1-line-height:      1.2;
    --swm-h1-font-weight:      700;
    --swm-h1-text-transform:   none;
    --swm-h1-font-size-1366:   42px;  --swm-h1-line-height-1366: 1.2;
    --swm-h1-font-size-1024:   36px;  --swm-h1-line-height-1024: 1.25;
    --swm-h1-font-size-768:    30px;  --swm-h1-line-height-768:  1.3;

    /* h2 */
    --swm-h2-font-size:        36px;
    --swm-h2-line-height:      1.25;
    --swm-h2-font-weight:      700;
    --swm-h2-text-transform:   none;
    --swm-h2-font-size-1366:   32px;  --swm-h2-line-height-1366: 1.25;
    --swm-h2-font-size-1024:   28px;  --swm-h2-line-height-1024: 1.3;
    --swm-h2-font-size-768:    24px;  --swm-h2-line-height-768:  1.3;

    /* h3 */
    --swm-h3-font-size:        28px;
    --swm-h3-line-height:      1.3;
    --swm-h3-font-weight:      700;
    --swm-h3-text-transform:   none;
    --swm-h3-font-size-1366:   26px;  --swm-h3-line-height-1366: 1.3;
    --swm-h3-font-size-1024:   24px;  --swm-h3-line-height-1024: 1.35;
    --swm-h3-font-size-768:    22px;  --swm-h3-line-height-768:  1.35;

    /* h4 */
    --swm-h4-font-size:        22px;
    --swm-h4-line-height:      1.35;
    --swm-h4-font-weight:      700;
    --swm-h4-text-transform:   none;
    --swm-h4-font-size-1366:   20px;  --swm-h4-line-height-1366: 1.35;
    --swm-h4-font-size-1024:   20px;  --swm-h4-line-height-1024: 1.4;
    --swm-h4-font-size-768:    18px;  --swm-h4-line-height-768:  1.4;

    /* h5 */
    --swm-h5-font-size:        18px;
    --swm-h5-line-height:      1.4;
    --swm-h5-font-weight:      700;
    --swm-h5-text-transform:   none;
    --swm-h5-font-size-1366:   17px;  --swm-h5-line-height-1366: 1.4;
    --swm-h5-font-size-1024:   16px;  --swm-h5-line-height-1024: 1.45;
    --swm-h5-font-size-768:    16px;  --swm-h5-line-height-768:  1.45;

    /* h6 */
    --swm-h6-font-size:        16px;
    --swm-h6-line-height:      1.45;
    --swm-h6-font-weight:      700;
    --swm-h6-text-transform:   none;
    --swm-h6-font-size-1366:   15px;  --swm-h6-line-height-1366: 1.45;
    --swm-h6-font-size-1024:   15px;  --swm-h6-line-height-1024: 1.5;
    --swm-h6-font-size-768:    14px;  --swm-h6-line-height-768:  1.5;

    /* ---- Border Radii ---- */
    --swm-border-radius-5:    5px;
    --swm-border-radius-10:  10px;
    --swm-border-radius-15:  15px;
    --swm-border-radius-20:  20px;
    --swm-border-radius-25:  25px;
    --swm-border-radius-30:  30px;
}


/* ==========================================================================
   2. RESET & BASE
   ========================================================================== */

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    height: 100%;
    font-size: 100%;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

body {
    height: 100%;
    margin: 0;
    padding: 0;
    font-weight: normal;
    font-style: normal;
    font-size: var(--body-font-size);
    line-height: var(--swm-body-line-height);
    background: var(--swm-color-body);
    color: var(--swm-color-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    word-wrap: break-word;
    overflow-x: hidden;
}

::selection {
    background: var(--swm-color-dark-1);
    color: var(--swm-color-light-1);
}

figure { margin: 0; padding: 0; }
figure figcaption { text-align: center; }
address { font-style: normal; }

iframe, object, embed, video { max-width: 100%; }

svg:not(:root) {
    overflow: hidden;
    width: 1em;
    height: 1em;
    position: relative;
}

.clear { clear: both; }


/* ==========================================================================
   3. TYPOGRAPHY
   ========================================================================== */

h1, h2, h3, h4, h5, h6 {
    text-rendering: optimizeLegibility;
    margin-bottom: 20px;
    color: var(--swm-color-headings);
    font-family: var(--swm-headings-font-family);
    font-style: var(--swm-headings-font-style);
    letter-spacing: var(--swm-headings-letter-spacing);
}

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: inherit; }

h1 { font-size: var(--swm-h1-font-size); line-height: var(--swm-h1-line-height); font-weight: var(--swm-h1-font-weight); text-transform: var(--swm-h1-text-transform); }
h2 { font-size: var(--swm-h2-font-size); line-height: var(--swm-h2-line-height); font-weight: var(--swm-h2-font-weight); text-transform: var(--swm-h2-text-transform); }
h3 { font-size: var(--swm-h3-font-size); line-height: var(--swm-h3-line-height); font-weight: var(--swm-h3-font-weight); text-transform: var(--swm-h3-text-transform); }
h4 { font-size: var(--swm-h4-font-size); line-height: var(--swm-h4-line-height); font-weight: var(--swm-h4-font-weight); text-transform: var(--swm-h4-text-transform); }
h5 { font-size: var(--swm-h5-font-size); line-height: var(--swm-h5-line-height); font-weight: var(--swm-h5-font-weight); text-transform: var(--swm-h5-text-transform); }
h6 { font-size: var(--swm-h6-font-size); line-height: var(--swm-h6-line-height); font-weight: var(--swm-h6-font-weight); text-transform: var(--swm-h6-text-transform); }

/* Responsive heading sizes */
@media (max-width: 1366px) {
    h1 { font-size: var(--swm-h1-font-size-1366); line-height: var(--swm-h1-line-height-1366); }
    h2 { font-size: var(--swm-h2-font-size-1366); line-height: var(--swm-h2-line-height-1366); }
    h3 { font-size: var(--swm-h3-font-size-1366); line-height: var(--swm-h3-line-height-1366); }
    h4 { font-size: var(--swm-h4-font-size-1366); line-height: var(--swm-h4-line-height-1366); }
    h5 { font-size: var(--swm-h5-font-size-1366); line-height: var(--swm-h5-line-height-1366); }
    h6 { font-size: var(--swm-h6-font-size-1366); line-height: var(--swm-h6-line-height-1366); }
}

@media (max-width: 1024px) {
    h1 { font-size: var(--swm-h1-font-size-1024); line-height: var(--swm-h1-line-height-1024); }
    h2 { font-size: var(--swm-h2-font-size-1024); line-height: var(--swm-h2-line-height-1024); }
    h3 { font-size: var(--swm-h3-font-size-1024); line-height: var(--swm-h3-line-height-1024); }
    h4 { font-size: var(--swm-h4-font-size-1024); line-height: var(--swm-h4-line-height-1024); }
    h5 { font-size: var(--swm-h5-font-size-1024); line-height: var(--swm-h5-line-height-1024); }
    h6 { font-size: var(--swm-h6-font-size-1024); line-height: var(--swm-h6-line-height-1024); }
}

@media (max-width: 767px) {
    h1 { font-size: var(--swm-h1-font-size-768); line-height: var(--swm-h1-line-height-768); }
    h2 { font-size: var(--swm-h2-font-size-768); line-height: var(--swm-h2-line-height-768); }
    h3 { font-size: var(--swm-h3-font-size-768); line-height: var(--swm-h3-line-height-768); }
    h4 { font-size: var(--swm-h4-font-size-768); line-height: var(--swm-h4-line-height-768); }
    h5 { font-size: var(--swm-h5-font-size-768); line-height: var(--swm-h5-line-height-768); }
    h6 { font-size: var(--swm-h6-font-size-768); line-height: var(--swm-h6-line-height-768); }
}

p {
    margin: 0 0 25px 0;
    -moz-osx-font-smoothing: grayscale;
    word-break: normal;
}

p + h1, p + h2, p + h3, p + h4, p + h5, p + h6 { margin-top: 1.5em; }
ul + h1, ul + h2, ul + h3, ul + h4, ul + h5, ul + h6,
ol + h1, ol + h2, ol + h3, ol + h4, ol + h5, ol + h6 { margin-top: 1.42em; }

small { font-size: smaller; }
del { text-decoration: line-through; }
sub, sup { font-size: smaller; line-height: 0; position: relative; }
sup { vertical-align: super; }
sub { vertical-align: sub; }

pre {
    clear: both;
    width: 100%;
    overflow: auto;
    padding: 2em;
    line-height: 2em;
    font-size: 80%;
    font-family: Monaco, "Andale Mono", "Courier New", Courier, monospace;
    margin-bottom: 40px;
    background: var(--swm-color-light-2);
    color: var(--swm-color-dark-1);
    text-transform: none;
}

code, kbd, samp {
    font-family: Monaco, "Andale Mono", "Courier New", Courier, monospace;
}

code {
    display: block;
    margin: 20px 0;
}

hr {
    height: 0;
    border: 0;
    border-bottom: 1px solid var(--swm-color-border);
    margin-bottom: 30px;
}

/* Lists */
ul, ol { margin-bottom: 20px; }
ul { list-style: disc outside none; margin-left: 7px; }
ol { list-style: decimal; margin-left: 20px; }
ul ul, ul ol, ol ol, ol ul { margin: 4px 0 5px 30px; }
ul ul li, ul ol li, ol ol li, ol ul li { margin-bottom: 6px; }

.elementor-widget-container ul,
.elementor-widget-container ol {
    list-style-position: outside;
}

.elementor-widget-container li {
    margin-left: 1em;
    padding: 3px 0;
}


/* ==========================================================================
   4. LINKS & COLORS
   ========================================================================== */

.site-content a,
.elementor-widget-container a {
    color: var(--swm-color-link);
    text-decoration: none;
}

.site-content a:hover,
.elementor-widget-container a:hover {
    color: var(--swm-color-link-hover);
}

.swm-color-headings,
.swm-color-headings a,
.swm-heading-text,
a.swm-heading-text {
    color: var(--swm-color-headings);
}


/* ==========================================================================
   5. LAYOUT & CONTAINER
   ========================================================================== */

/* Let Elementor handle containers; these are fallback for non-Elementor pages */
.swm-container {
    width: 100%;
    max-width: 100%;
    padding: 0 15px;
    margin: 0 auto;
    position: relative;
}

#swm-wrap { position: relative; overflow: hidden; }
#swm-page { width: 100%; }

/* Reading progress bar */
.swm-reading-progress-bar-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 999998;
}

.swm-reading-progress-bar { width: 0%; }

/* Admin bar offset for smooth scroll */
.admin-bar #smooth-wrapper { top: 32px !important; }
@media (max-width: 782px) {
    .admin-bar #smooth-wrapper { top: 46px !important; }
}


/* ==========================================================================
   6. IMAGES & MEDIA
   ========================================================================== */

img, img a, a img, :link img, :visited img {
    max-width: 100%;
    height: auto;
    display: inline-block;
    vertical-align: middle;
    image-rendering: auto;
}

.alignleft  { float: left;  margin: 0 25px 25px 0; }
.alignright { float: right; margin: 20px 0 25px 25px; }

.wp-caption {
    border: 0;
    display: block;
    text-align: center;
    margin-bottom: 15px;
    max-width: 100%;
    clear: both;
}

p.wp-caption-text { margin: 0; padding: 10px; }


/* ==========================================================================
   7. TABLES
   ========================================================================== */

table {
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
    margin: 0 0 50px;
}

th {
    font-weight: 700;
    text-align: left;
    padding: 0.5em 1em;
    border: 1px solid var(--swm-color-border);
    color: var(--swm-color-headings);
}

td {
    padding: 0.5em 1em;
    border: 1px solid var(--swm-color-border);
    vertical-align: middle;
}

tr th:first-child, tr td:first-child { border-left: 1px solid var(--swm-color-border); }
tr:first-child th, tr:first-child td { border-top: 1px solid var(--swm-color-border); }

table thead { font-weight: 700; }
table caption { padding: 0 0 20px; font-size: 110%; }

.wp-block-table td, .wp-block-table th { border-color: var(--swm-color-border); }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background-color: var(--swm-color-light-2); }
.wp-block-table.is-style-stripes { border: 0; border-bottom: 1px solid var(--swm-color-border); padding: 0 0 10px; }

dl { margin-bottom: 1.7em; }
dt { float: left; clear: left; width: 100px; font-weight: 700; }
dd { margin: 0 0 0 110px; padding: 0 0 0.7em; }


/* ==========================================================================
   8. BLOCKQUOTES
   ========================================================================== */

blockquote {
    display: block;
    position: relative;
    padding: 5px 0 11px 82px;
    margin: 27px 0 34px;
    font-weight: 700;
    color: var(--swm-color-headings);
    font-size: calc(var(--body-font-size) + 2px);
}

blockquote::before {
    content: '';
    position: absolute;
    height: 30px;
    width: 30px;
    margin-left: -52px;
    margin-top: 5px;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDM4MC45IDI5MS4xIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzODAuOSAyOTEuMTsiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8cGF0aCBkPSJNMzUuMywyNjcuN2MtMjEuMy0yMy41LTM0LjEtNDkuMS0zNC4xLTkxLjdjMC03NC43LDUzLjMtMTQwLjgsMTI4LTE3NC45bDE5LjIsMjcuN0M3Ny45LDY3LjEsNjMsMTE2LjIsNTguNywxNDguMiBjMTAuNy02LjQsMjUuNi04LjUsNDAuNS02LjRjMzguNCw0LjMsNjguMywzNC4xLDY4LjMsNzQuN2MwLDE5LjItOC41LDM4LjQtMjEuMyw1My4zYy0xNC45LDE0LjktMzIsMjEuMy01My4zLDIxLjMgQzY5LjQsMjkxLjEsNDguMSwyODAuNSwzNS4zLDI2Ny43TDM1LjMsMjY3Ljd6IE0yNDguNiwyNjcuN2MtMjEuMy0yMy41LTM0LjEtNDkuMS0zNC4xLTkxLjdjMC03NC43LDUzLjMtMTQwLjgsMTI4LTE3NC45bDE5LjIsMjcuNyBjLTcwLjQsMzguNC04NS4zLDg3LjUtODkuNiwxMTkuNWMxMC43LTYuNCwyNS42LTguNSw0MC41LTYuNGMzOC40LDQuMyw2OC4zLDM0LjEsNjguMyw3NC43YzAsMTkuMi04LjUsMzguNC0yMS4zLDUzLjMgYy0xMi44LDE0LjktMzIsMjEuMy01My4zLDIxLjNDMjgyLjcsMjkxLjEsMjYxLjQsMjgwLjUsMjQ4LjYsMjY3LjdMMjQ4LjYsMjY3Ljd6Ii8+IDwvc3ZnPg==");
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

blockquote p { color: var(--swm-color-headings); margin: 0 0 5px; }

blockquote cite {
    display: block;
    font-weight: 400;
    font-size: var(--body-font-size);
    font-family: var(--swm-body-font-family);
    font-style: normal;
    text-transform: none;
}

.wp-block-pullquote { padding: 1em 0 0; text-align: left; }
.wp-block-pullquote blockquote { border: none; margin: 0; }
.wp-block-pullquote p { margin-bottom: 10px; }

.wp-block-pullquote.is-style-solid-color {
    padding: 3rem 2rem;
    position: relative;
    margin-top: 4rem;
    margin-bottom: 4rem;
}

@media (max-width: 480px) {
    blockquote {
        padding: 0 0 6px 65px;
        margin-top: 18px;
    }
    blockquote::before {
        margin-top: 0;
        width: 45px;
        height: 25px;
        margin-left: -72px;
    }
}


/* ==========================================================================
   9. FORMS & INPUTS
   ========================================================================== */

input,
textarea,
select {
    font: inherit;
    resize: none;
    -webkit-appearance: none;
}

input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="url"],
input[type="tel"],
input[type="search"],
textarea,
select {
    box-sizing: border-box;
    outline: none;
    padding: 12px 0;
    margin: 0 0 20px;
    max-width: 100%;
    background: transparent;
    line-height: 25px;
    color: var(--swm-color-text);
    border: 0;
    border-bottom: 1px solid var(--swm-color-border);
}

input:focus,
textarea:focus {
    border-color: var(--swm-color-border-hover);
}

select {
    padding: 0 0 10px;
    font-size: 100%;
    background: no-repeat right calc(50% - 5px) / 14px 14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}

textarea {
    min-height: 80px;
    height: 230px;
    width: 100%;
    line-height: 1.5em;
}

label { display: block; cursor: pointer; }

input[type="checkbox"] { width: auto; margin-right: 5px; }
input[type="submit"] { height: auto; border: 0; cursor: pointer; }

form { margin-bottom: 20px; }

/* Password-protected post form */
form.post-password-form label { display: inline-block; float: left; margin: 0 4px 0 0; }
form.post-password-form p:nth-child(2) { display: flex; align-items: flex-end; }

/* Placeholder colors */
::placeholder { color: var(--swm-color-text); opacity: 1; }


/* ==========================================================================
   10. BUTTONS
   ========================================================================== */

button,
.button,
a.button,
input[type="submit"],
.wp-block-button a,
.wp-block-file a.wp-block-file__button,
.wp-block-button__link {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    cursor: pointer;
    vertical-align: middle;
    outline: none;
    text-decoration: none;
    text-align: center;
    text-transform: uppercase;
    font-size: 12px;
    font-family: var(--swm-headings-font-family);
    font-style: var(--swm-headings-font-style);
    font-weight: var(--swm-headings-font-weight);
    letter-spacing: var(--swm-headings-letter-spacing);
    line-height: normal;
    padding: 10px 25px;
    border: 1px solid var(--swm-color-dark-1);
    border-radius: var(--swm-border-radius-30);
    background: transparent;
    color: var(--swm-color-dark-1);
    transition: all 0.3s ease-in-out;
}

button:hover,
.button:hover,
a.button:hover,
input[type="submit"]:hover,
.wp-block-button a:hover,
.wp-block-file a.wp-block-file__button:hover {
    background: var(--swm-color-dark-1);
    border-color: var(--swm-color-dark-1);
    color: var(--swm-color-light-1);
}

.is-style-outline .wp-block-button__link {
    background: transparent;
}

.is-style-outline .wp-block-button__link:hover {
    background: var(--swm-color-dark-1);
    color: var(--swm-color-light-1);
}


/* ==========================================================================
   11. BLOG — POST CARDS
   ========================================================================== */

.swm-post-content {
    position: relative;
    min-height: 100px;
    height: 100%;
    clear: both;
    padding-bottom: 70px;
}

/* Post image */
.swm-post-image { display: block; margin-bottom: 30px; padding: 0; position: relative; z-index: 3; }
.swm-post-image img { width: 100%; margin: 0; border-radius: var(--swm-border-radius-15); position: relative; z-index: 1; }
.swm-post-image figure { position: relative; }

/* Category badge on image */
.swm-post-image-category {
    position: absolute;
    left: 25px;
    bottom: 25px;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
}

.swm-post-image-category a {
    background: var(--swm-color-dark-1);
    color: var(--swm-color-light-1);
    padding: 5px 17px;
    border-radius: var(--swm-border-radius-30);
    margin-right: 8px;
    margin-top: 8px;
}

.swm-post-image-category a:hover { color: var(--swm-color-light-1); }

/* Date badge on image */
.swm-post-image-date {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    background: var(--swm-color-body);
    width: 93px;
    height: 76px;
    gap: 5px;
    line-height: 1;
    border-radius: 0 0 0 var(--swm-border-radius-15);
}

.swm-post-image-date-day { font-size: 22px; line-height: 22px; }
.swm-post-image-date-month { font-size: 13px; text-transform: uppercase; padding-bottom: 3px; }

/* Inverse-radius corners on date badge */
.swm-post-image-date::before,
.swm-post-image-date::after {
    content: "";
    position: absolute;
    background-color: transparent;
    height: calc(2 * var(--swm-border-radius-15));
    width: var(--swm-border-radius-15);
}

.swm-post-image-date::after {
    right: 0;
    bottom: calc(-2 * var(--swm-border-radius-15));
    border-top-right-radius: var(--swm-border-radius-15);
    box-shadow: 0 calc(-1 * var(--swm-border-radius-15)) 0 0 var(--swm-color-body);
}

.swm-post-image-date::before {
    left: calc(-1 * var(--swm-border-radius-15));
    top: 0;
    border-top-right-radius: var(--swm-border-radius-15);
    box-shadow: 0 calc(-1 * var(--swm-border-radius-15)) 0 0 var(--swm-color-body);
}

/* Read more button */
.swm-post-button { display: inline-flex; margin-top: 22px; }

.swm-post-button a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 100%;
    line-height: 19px;
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 500;
    padding: 4px 0;
    border: 1px solid transparent;
    border-radius: var(--swm-border-radius-10);
    overflow: hidden;
    transition: all 0.3s ease-out;
}

.swm-post-button a:hover {
    border-color: currentColor;
    padding-left: 15px;
    padding-right: 15px;
    border-radius: var(--swm-border-radius-30);
}

.swm-post-button a::before {
    content: '';
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 100%;
    background: currentColor;
    opacity: 0;
    visibility: hidden;
    margin: 0 0 0 -6px;
    transition: all 0.3s ease-in-out;
}

.swm-post-button a:hover::before {
    margin: 0 10px 0 0;
    opacity: 1;
    visibility: visible;
}

.swm-post-button-arrow {
    margin-left: 7px;
    transform: rotate(-45deg);
    font-size: 14px;
    opacity: 1;
    visibility: visible;
    transition: all 0.3s ease-in-out;
}

.swm-post-button a:hover .swm-post-button-arrow {
    margin: 0;
    opacity: 0;
    visibility: hidden;
    width: 0;
}

/* Post title */
.swm-post-title h2,
.swm-post-title h2 a,
.swm-post-title h1 { margin-bottom: 0; position: relative; }

/* Sticky post indicator */
article.sticky .swm-post-title h2 a { position: relative; text-decoration: underline; }
article.sticky .swm-post-title h2 a::after {
    content: '*';
    position: absolute;
    bottom: 0;
    right: -0.55em;
    font-size: 150%;
}


/* ==========================================================================
   12. BLOG — SINGLE POST
   ========================================================================== */

.single-post .swm-post-content { padding: 0; }
.single .swm-post-content { margin-bottom: 42px; }

.swm-post-title-content { clear: both; }

/* Tags */
.swm-post-single-tags,
.swm_post_share_links {
    margin-bottom: 30px;
    flex-basis: 50%;
    display: flex;
    flex-wrap: wrap;
}

.swm-post-single-tags { gap: 20px; }

.swm-post-single-tags a {
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0 1px;
    background-image: linear-gradient(currentColor, currentColor);
    transition: background-size 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
    color: var(--swm-color-dark-1);
    line-height: 1.2;
}

.swm-post-single-tags a:hover {
    background-size: 100% 1px;
    color: var(--swm-color-dark-1);
}

.swm-single-tag-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}


/* ==========================================================================
   13. POST META
   ========================================================================== */

.swm-post-meta { margin-bottom: 24px; }

.swm-post-meta > * {
    line-height: 1;
    display: inline-flex;
    vertical-align: middle;
    flex-wrap: wrap;
    color: var(--swm-color-headings);
}

.swm-post-meta a,
.swm-post-meta a:hover { color: inherit; position: relative; }

.swm-post-meta-separator { color: var(--swm-color-text); }
.swm-post-meta-separator::after { content: '/'; margin: 0 12px; }
.swm-post-meta-cat-separator::after { content: ','; margin-right: 5px; }
.swm-post-meta-separator:last-of-type { display: none; }

/* Hide date/cat on blog list when image is present (shown on image instead) */
.swm-blog-post .entry-date,
.swm-blog-post .swm-post-meta-separator-date,
.swm-blog-post .swm-post-meta-cat-list,
.swm-blog-post .swm-post-meta-separator-cat-list { display: none; }

.swm-blog-post .swm-post-pf-no-img .entry-date,
.swm-blog-post .swm-post-pf-no-img .swm-post-meta-separator-date,
.swm-blog-post .swm-post-pf-no-img .swm-post-meta-cat-list,
.swm-blog-post .swm-post-pf-no-img .swm-post-meta-separator-cat-list { display: inline-block; }

.swm-blog-post .swm-post-meta-cat-list { overflow-wrap: anywhere; line-height: 1.25; }

@media (max-width: 1024px) {
    .swm-blog-post .entry-date,
    .swm-blog-post .swm-post-meta-separator-date,
    .swm-blog-post .swm-post-meta-cat-list,
    .swm-blog-post .swm-post-meta-separator-cat-list { display: inline-block; }

    .swm-blog-post .swm-post-image-date,
    .swm-blog-post .swm-post-image-category { display: none; }
}


/* ==========================================================================
   14. POST NAVIGATION (PREV / NEXT)
   ========================================================================== */

.swm-post-single-pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 80px;
    text-align: center;
    line-height: 1;
    font-size: 14px;
    border-top: 1px solid var(--swm-color-border);
    border-bottom: 1px solid var(--swm-color-border);
    padding: 25px 0;
}

.swm-single-next-prev-links { text-transform: uppercase; font-weight: 500; }

.swm-single-next-prev-links a {
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 20px;
    gap: 8px;
}

.swm-single-next-prev-links-arrow {
    display: inline-flex;
    fill: var(--swm-color-dark-1);
}

.swm-single-prev-link .swm-single-next-prev-links-arrow { transform: rotate(180deg); }


/* ==========================================================================
   15. SHARE ICONS
   ========================================================================== */

.swm_post_share_links {
    text-align: right;
    position: relative;
    display: inline-block;
    vertical-align: baseline;
}

.swm-single-tag-share.swm-no-post-tags-content .swm_post_share_links { text-align: left; }

ul.swm_post_share_icons_list {
    position: relative;
    display: inline-block;
    vertical-align: baseline;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 15px;
}

ul.swm_post_share_icons_list li {
    display: inline-block;
    vertical-align: baseline;
    line-height: 1;
    padding: 0;
    margin: 0 12px 0 0;
}

ul.swm_post_share_icons_list li:last-child { margin-right: 0; }
ul.swm_post_share_icons_list li a { color: var(--swm-color-text); fill: var(--swm-color-text); }
ul.swm_post_share_icons_list li a:hover { color: var(--swm-color-dark-1); }

ul.swm_post_share_icons_text {
    font-size: 15px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

ul.swm_post_share_icons_text li a {
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0 2px;
    background-image: linear-gradient(currentColor, currentColor);
    transition: background-size 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
    color: var(--swm-color-dark-1);
    line-height: 1.3;
}

ul.swm_post_share_icons_text li a:hover {
    background-size: 100% 2px;
    color: var(--swm-color-dark-1);
}


/* ==========================================================================
   16. AUTHOR BOX
   ========================================================================== */

.swm-about-author-box { clear: both; overflow: hidden; display: block; margin-bottom: 100px; }

.swm-about-author {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    clear: both;
}

.swm-about-author-left-wrap { flex-shrink: 0; }

.swm-about-author img {
    float: left;
    width: 180px;
    height: auto;
    border-radius: 100%;
}

.swm-about-author p { padding-left: 0; overflow: hidden; margin-bottom: 0; }
.swm-about-author-bio-website { margin-top: 20px; }
.swm-about-author-biotext { overflow: hidden; padding: 0 0 0 40px; }

.swm-about-author-title-subtitle { margin: 0 0 15px; }
.swm-about-author-title-subtitle a { font-size: 24px; line-height: 1; }
.swm-about-author-title-subtitle span { display: block; font-size: 95%; }

ul.swm-post-author-icon { margin: 20px 0 0; }

ul.swm-post-author-icon li {
    float: left;
    list-style: none;
    padding: 0;
    margin: 0 17px 0 0;
    font-size: 15px;
    display: inline-block;
}


/* ==========================================================================
   17. COMMENTS
   ========================================================================== */

#comments { padding: 0; clear: both; margin-bottom: 95px; position: relative; }
#comment-wrap { position: relative; }
#comment-wrap > ol { margin-left: 0; }

.comment-body { position: relative; padding: 0; }

.comment-avatar { float: left; display: inline-block; border-radius: 100%; overflow: hidden; }
.comment-avatar img { display: inline-block; width: 112px; height: 112px; float: left; }

.comment-postinfo { margin-left: 140px; position: relative; }
.comment-title-section { display: flex; align-items: center; justify-content: space-between; }
.comment-content { padding: 0; position: relative; float: left; z-index: 1; width: 100%; }
.comment-text { padding-top: 5px; width: 75%; }

h5.comment-author { margin-bottom: 5px; }

#comment-wrap ol.commentlist li ul.children { padding-left: 90px; }
#comment-wrap ol { padding: 0; margin: 0; }
#comment-wrap ol li.comment { list-style: none; margin-left: 0; padding: 0; }
#comment-wrap ol.commentlist li article { padding: 25px 0; display: block; }
#comment-wrap ol.commentlist > li:first-child > article { padding-top: 0; }

/* Comment reply link */
#comments .swm-comment-reply a.comment-reply-link {
    text-align: center;
    margin: 0;
    border: 1px solid transparent;
    border-radius: var(--swm-border-radius-30);
    padding: 5px 0;
    font-size: 14px;
    text-transform: uppercase;
    font-weight: 700;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    line-height: 23px;
    transition: 0.2s cubic-bezier(0.22, 0.61, 0.36, 1);
    color: var(--swm-color-headings);
}

#comments .swm-comment-reply a.comment-reply-link:hover {
    border-color: var(--swm-color-dark-1);
    padding: 5px 20px;
    color: var(--swm-color-dark-1);
}

/* By-post-author avatar hover */
#comment-wrap ol li.bypostauthor .comment-avatar img {
    transition: all 0.2s ease-out;
    border: 1px solid transparent;
    border-radius: 100%;
}

#comment-wrap ol li.bypostauthor:hover .comment-avatar img {
    border-color: var(--swm-color-border);
    padding: 5px;
}

/* Comment form */
#respond { position: relative; clear: both; padding: 0; margin-bottom: 80px; }
#respond h3 { padding: 0; margin: 0 0 30px; font-weight: 700; }

h3.swm-single-pg-titles { margin-bottom: 45px; font-weight: 700; }

#commentform { padding: 0; display: block; }
.comment-respond label { display: none; }

#commentform textarea#comment {
    width: 100%;
    clear: both;
    margin: 0 0 26px;
    height: 145px;
    border: 0;
    border-bottom: 1px solid var(--swm-color-border);
    padding: 0 0 20px;
}

#commentform textarea#comment:hover,
#commentform textarea#comment:focus { border-color: var(--swm-color-border-hover); }

#commentform p.comment-form-author,
#commentform p.comment-form-email { width: 50%; float: left; }

#commentform input:not([type="submit"]),
#commentform textarea { color: var(--swm-color-text); }

#commentform input::placeholder,
#commentform textarea::placeholder {
    color: var(--swm-color-text);
    opacity: 1;
    font-size: calc(var(--body-font-size) - 1px);
}

#commentform p.form-submit { clear: both; margin-top: 10px; display: inline-block; margin-bottom: 30px; }
#commentform p.comment-form-cookies-consent { margin: 0 0 20px; clear: both; }
p.comment-form-cookies-consent label { display: inline; margin-left: 5px; }

#commentform p.logged-in-as,
#respond p.comment-notes { margin-bottom: 35px; margin-top: -30px; font-size: 95%; }

#respond h3 small a#cancel-comment-reply-link {
    display: block;
    text-transform: none;
    color: red;
    font-family: var(--swm-body-font-family);
    font-size: var(--body-font-size);
}


/* ==========================================================================
   18. RELATED POSTS
   ========================================================================== */

.swm-related-posts-section { clear: both; display: block; }
.swm-related-posts a { text-decoration: none; }
.swm-related-posts, .swm-related-posts a { color: var(--swm-color-headings); }
.swm-related-date-cat, .swm-related-date-cat a { color: var(--swm-color-text); }

.swm-related-posts ul { padding: 0; margin: 0 -12px; }

.swm-related-posts ul li {
    float: left;
    padding: 0;
    list-style: none;
    position: relative;
}

.swm-related-posts ul li img {
    height: auto;
    max-width: 100%;
    width: 100%;
    margin-bottom: 20px;
    border-radius: var(--swm-border-radius-10);
}

.swm-related-link {
    font-size: calc(var(--body-font-size) + 12px);
    font-weight: 700;
    line-height: 1.2em;
    clear: both;
    margin-top: 5px;
}

.swm-single-related-posts-1 .swm-related-posts ul li { margin: 0 15px 30px; width: calc(100% - 30px); }
.swm-single-related-posts-2 .swm-related-posts ul li { margin: 0 15px 30px; width: calc(50% - 30px); }
.swm-single-related-posts-3 .swm-related-posts ul li { margin: 0 15px 30px; width: calc(33.3% - 30px); }
.swm-single-related-posts-4 .swm-related-posts ul li { margin: 0 15px 30px; width: calc(25% - 30px); }

/* Underline-on-hover for related post meta links */
.swm-related-posts .swm-related-date-cat a {
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0 1px;
    background-image: linear-gradient(currentColor, currentColor);
    transition: background-size 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
    color: var(--swm-color-dark-1);
}

.swm-related-posts .swm-related-date-cat a:hover { background-size: 100% 1px; }

/* Tiny post meta */
.swm-tiny-post-meta > * {
    line-height: 1;
    display: inline-flex;
    vertical-align: middle;
    flex-wrap: wrap;
    color: var(--swm-color-headings);
    font-size: calc(var(--body-font-size) - 1px);
}

.swm-tiny-post-meta a, .swm-tiny-post-meta a:hover { color: inherit; }
.swm-tiny-post-meta-separator { color: var(--swm-color-text); }
.swm-tiny-post-meta-separator::after { content: '/'; margin: 0 12px; }
.swm-tiny-post-meta-cat-separator::after { content: ','; margin-right: 5px; }
.swm-tiny-post-meta-separator:last-of-type { display: none; }


/* ==========================================================================
   19. PAGINATION
   ========================================================================== */

.swm-pagination-wrap,
nav.woocommerce-pagination {
    width: auto;
    margin: 30px auto;
    text-align: center;
}

.swm-pagination {
    width: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.swm-pagination-menu { display: inline-flex; margin-bottom: 30px; }

.swm-pagination a,
.swm-pagination .page-numbers.current,
.swm-pagination-menu > a,
.swm-pagination-menu > span,
nav.woocommerce-pagination > a,
nav.woocommerce-pagination > span.page-numbers.current,
.post-page-numbers {
    width: 45px;
    height: 45px;
    line-height: 45px;
    position: relative;
    font-size: 14px;
    margin: 0 5px;
    text-align: center;
    border-radius: 100%;
    border: 1px solid transparent;
    font-weight: 600;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: all 0.3s ease-in-out;
    color: var(--swm-color-text);
}

.swm-pagination a.page-numbers:not(.next, .prev, .current),
.swm-pagination .page-numbers,
.swm-pagination .page-numbers.dots { opacity: 0.5; }

.swm-pagination a.page-numbers:hover,
.swm-pagination .page-numbers { opacity: 1; }

.swm-pagination .page-numbers.current,
nav.woocommerce-pagination > span.page-numbers.current,
.swm-pagination a.page-numbers:not(.prev, .next):hover,
.post-page-numbers.current,
a.post-page-numbers:hover {
    border: 1px solid var(--swm-color-dark-1);
    background: transparent;
    color: var(--swm-color-dark-1);
}

.swm-pagination a.prev.page-numbers { min-width: 25px; margin-right: 20px; }
.swm-pagination a.next.page-numbers { min-width: 25px; margin-left: 20px; }

.swm-pagination a.page-numbers svg { font-size: 20px; }
.swm-pagination a.prev.page-numbers svg { transform: rotate(180deg); }


/* ==========================================================================
   20. SIDEBAR & WIDGETS
   ========================================================================== */

.sidebar { display: block; padding: 0; }
.sidebar a { text-decoration: none; color: inherit; }
.sidebar, .sidebar select { color: var(--swm-color-text); }

.swm-sidebar-widget-box {
    position: relative;
    display: block;
    clear: both;
    width: 100%;
    float: left;
}

.sidebar .swm-sidebar-widget-box { margin-bottom: 50px; }
.swm-widget-content { width: 100%; display: block; padding: 0; }

.sidebar .swm-widget-content > ul,
.sidebar .swm-widget-content ul.menu { list-style: none; margin: 0; }

.sidebar ul li { margin: 0; display: block; line-height: 1.75em; }
.sidebar ul li ul li { border: 0; padding: 2px 0; }
.sidebar ul li a:hover, .sidebar a:hover { color: var(--swm-color-dark-1); }
.sidebar p { line-height: 1.5em; }
.sidebar input { width: 100%; }
.sidebar select { width: 100%; margin: 7px 0 0; line-height: normal; font-size: 100%; }

/* Tag cloud */
.sidebar .tagcloud,
.footer .tagcloud {
    margin: 0;
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 20px;
}

.sidebar .tagcloud a,
.footer .tagcloud a,
.widget .wp-block-tag-cloud a {
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0 1px;
    background-image: linear-gradient(currentColor, currentColor);
    transition: background-size 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
    color: var(--swm-color-dark-1);
    line-height: 1.2;
}

.widget .tagcloud a:hover,
.widget .wp-block-tag-cloud a:hover {
    color: var(--swm-color-dark-1);
    background-size: 100% 1px;
}

/* Calendar widget */
#wp-calendar { width: 100%; margin: 0 0 10px; }
table#wp-calendar { border: none; }

#wp-calendar caption {
    text-align: center;
    padding: 7px 0;
    border-radius: var(--swm-border-radius-5);
    background: var(--swm-color-dark-1);
    color: var(--swm-color-light-1);
    font-weight: 700;
}

table#wp-calendar thead th { padding: 6px; text-align: center; color: var(--swm-color-headings); }
table#wp-calendar tbody td { text-align: center; padding: 6px; font-size: calc(var(--body-font-size) - 2px); }
#wp-calendar tbody td a { font-weight: bold; }

.sidebar #wp-calendar thead th,
.sidebar #wp-calendar caption,
.sidebar #wp-calendar tbody td { border-color: var(--swm-color-border); }

table#wp-calendar tbody td#today { font-weight: 700; }

.wp-calendar-nav-prev { float: left; }
.wp-calendar-nav-next { float: right; }
.wp-calendar-nav-prev, .wp-calendar-nav-next { font-size: calc(var(--body-font-size) - 2px); }

/* Search widget */
.widget_search form { margin: 0; }

.widget_search .swm-search-form {
    margin: -9px 0 0;
    clear: both;
    display: block;
    position: relative;
}

.widget_search .swm-search-form input[type="text"] {
    margin: 0;
    width: 100%;
    padding: 5px 0 7px;
    border-width: 1px;
    font-size: 100%;
}

.widget_search .swm-search-form button.swm-search-button {
    background: none;
    border: 0;
    height: 39px;
    position: absolute;
    right: 0;
    top: 0;
    padding: 0;
    color: var(--swm-color-dark-1);
}

/* Search icon (CSS-only magnifying glass) */
.swm-search-icon {
    width: 14px;
    height: 14px;
    display: block;
    border: 2px solid var(--swm-color-dark-1);
    border-radius: 50%;
    position: relative;
}

.swm-search-icon::after {
    content: '';
    position: absolute;
    right: -4px;
    bottom: -3px;
    width: 5px;
    height: 2px;
    transform: rotate(45deg);
    background: var(--swm-color-dark-1);
}

/* Sidebar heading sizes */
.sidebar h2.wp-block-heading {
    font-size: var(--swm-h5-font-size);
    line-height: var(--swm-h5-line-height);
    font-weight: var(--swm-h5-font-weight);
}

/* Widget list spacing */
.widget_product_categories ul li,
.widget_meta ul li,
.widget_pages ul li,
.widget_categories ul li,
.widget_archive ul li { margin-bottom: 3px; }

.widget_product_categories ul li:last-child,
.widget_meta ul li:last-child,
.widget_pages ul li:last-child,
.widget_archive ul li:last-child,
.widget_categories ul li:last-child { margin-bottom: 0; }

/* Latest comments */
.wp-block-latest-comments__comment-author,
.wp-block-latest-comments__comment-link,
.wp-block-rss__item-title a { font-weight: 700; }

.wp-block-latest-comments__comment img { border-radius: 100%; }
.wp-block-latest-comments__comment-date { margin-left: 10px; }

li.wp-block-latest-comments__comment {
    list-style: none;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 15px;
}

ol.wp-block-latest-comments { margin: 0; }

/* Latest posts */
.wp-block-latest-posts__post-title { display: block; }
ul.wp-block-latest-posts__list li { margin-bottom: 20px; }
ul.wp-block-latest-posts__list li:last-child { margin-bottom: 0; }
.wp-block-latest-posts__featured-image { float: left; margin: 0 20px 20px 0; width: 100px; height: 100px; }
.wp-block-latest-posts__featured-image img { border-radius: var(--swm-border-radius-5); }

/* RSS widget */
.widget_rss ul li { margin-bottom: 25px; }
.rss-date { display: block; font-size: 100%; margin-bottom: 10px; color: var(--swm-color-text); }
.widget_rss a.rsswidget { line-height: 1; }

/* RSS block items */
.wp-block-rss__item-publish-date,
.wp-block-rss__item-author { font-size: calc(var(--body-font-size) - 2px); display: inline-block; }

.wp-block-rss__item-publish-date::after { content: "/"; margin: 0 9px; }
ul li.wp-block-rss__item { margin-bottom: 20px; }
.wp-block-rss__item-excerpt { margin-top: 10px; }


/* ==========================================================================
   21. SEARCH PAGE
   ========================================================================== */

.swm-search-featured-img { float: left; margin-right: 30px; }
.swm-search-featured-img img { width: 150px; }

.swm-search-page-text { overflow: hidden; }
.swm-search-p-query-text { color: var(--swm-color-dark-1); }

ul.swm-search-list { padding: 0; margin: 0; }
ul.swm-search-list > li { list-style: none; margin: 0 0 -1px; padding: 0 0 50px; }
ul.swm-search-list > li h5 { margin: 0 0 15px; }

input[type="text"].swm-search-form-input { width: 100%; margin: 0; padding: 5px 0; }
form.swm-search-form { margin: 0 0 20px; }
.swm-search-form_inner { position: relative; }
.search_pg_box { margin-top: 80px; }
.swm-search-button { position: absolute; top: 5px; right: 0; }
.swm-search-page-no-result-text { margin-top: 80px; }


/* ==========================================================================
   22. ERROR 404 PAGE
   ========================================================================== */

.swm-error-page-content { display: block; text-align: center; margin: 0 0 40px; padding-top: 150px; }
.swm-error-page-number { font-size: 5em; display: block; line-height: 1; }
.swm-error-page-title { display: block; margin: 30px 0 10px; font-size: 1.9em; }
.swm-error-page-subtitle { max-width: 400px; display: block; margin: 0 auto; text-align: center; }
.swm-error-page-button { margin-top: 35px; }
.swm-error-page-button a { display: inline-block; }

.swm-error-page-404 h1 { font-size: 15em; margin-bottom: 0; line-height: 1; }


/* ==========================================================================
   23. BACK TO TOP
   ========================================================================== */

.swm-btt-btn {
    position: fixed;
    font-size: 12px;
    right: 0;
    bottom: 72px;
    cursor: pointer;
    z-index: 1040;
    opacity: 0;
    visibility: hidden;
    transition: all 200ms linear, margin-right 0ms;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    text-transform: uppercase;
    padding: 15px 10px;
    border-radius: var(--swm-border-radius-10) 0 0 var(--swm-border-radius-10);
    font-weight: 400;
    gap: 7px;
    line-height: 10px;
}

.swm-btt-btn.active-progress { visibility: visible; opacity: 1; z-index: 999998; }
.swm-btt-btn svg { transform: rotate(-90deg); font-size: 13px; }
.swm-btt-btn span { writing-mode: vertical-lr; transform: rotate(180deg); font-weight: 400; }

/* Inverse-radius corners */
.swm-btt-btn::before,
.swm-btt-btn::after {
    display: block;
    content: "";
    position: absolute;
    background-color: transparent;
    height: 30px;
    width: 15px;
}

.swm-btt-btn::before {
    right: 0;
    top: -30px;
    border-bottom-right-radius: 15px;
    box-shadow: 0 15px 0 0 var(--swm-color-dark-2);
}

.swm-btt-btn::after {
    right: 0;
    bottom: -30px;
    border-top-right-radius: 15px;
    box-shadow: 0 -15px 0 0 var(--swm-color-dark-2);
}

/* Light variant */
.swm-btt-btn-light { color: var(--swm-color-dark-1); background: var(--swm-color-light-1); fill: var(--swm-color-dark-1); }
.swm-btt-btn-light::before { box-shadow: 0 15px 0 0 var(--swm-color-light-1); }
.swm-btt-btn-light::after  { box-shadow: 0 -15px 0 0 var(--swm-color-light-1); }

/* Dark variant */
.swm-btt-btn-dark { color: var(--swm-color-light-1); background: var(--swm-color-dark-2); fill: var(--swm-color-light-1); }


/* ==========================================================================
   24. GUTENBERG BLOCK OVERRIDES
   ========================================================================== */

/* Separator */
.wp-block-separator:not(.is-style-wide):not(.is-style-dots) { width: 3em; margin: 30px 0; }
.wp-block-separator:not(.is-style-dots), .wp-block-separator.is-style-dots { margin: 30px 0; }
.wp-block-separator.is-style-dots::before { font-size: 2.5rem; color: var(--swm-color-light-2); }

/* Cover, media-text, image, video, audio */
.wp-block-cover { margin-bottom: 30px; }
.wp-block-cover.alignleft, .wp-block-cover.alignright { max-width: 40%; }
.wp-block-image, .wp-block-video, .wp-block-audio, figure { margin-bottom: 50px; }
.wp-block-gallery { margin-bottom: 34px; }

.wp-block-media-text { margin-bottom: 30px; }
.wp-block-media-text__content { padding: 1.8rem 3rem; }
.wp-block-media-text__content p { margin: 15px 0; }

/* Button block */
.wp-block-button { margin-bottom: 30px; }
a.wp-block-button__link { display: inline-flex; margin-bottom: 20px; }
.wp-block-button__link { padding-left: 35px; padding-right: 35px; }

/* File block */
.wp-block-file { align-items: center; display: flex; flex-wrap: wrap; justify-content: space-between; font-size: 100%; }
.wp-block-file a.wp-block-file__button { border-radius: 3px; padding: 10px 30px; }

/* Group block */
.wp-block-group.has-background { padding: 30px 40px; margin-bottom: 30px; }

/* Alignments */
.alignwide { margin-right: auto; margin-bottom: 50px; margin-left: auto; }
.alignfull { width: 100%; margin-bottom: 50px; }

/* Font sizes */
.has-large-font-size { font-size: 1.25em; line-height: 1.4; color: var(--swm-color-headings); }
.has-x-large-font-size, .has-small-font-size, .has-medium-font-size { font-weight: 700; }
p[style*="font-size"], .has-small-font-size, .has-normal-font-size, .has-medium-font-size { line-height: 1.65em; }

/* Drop cap */
.has-drop-cap:not(:focus)::first-letter { color: var(--swm-color-dark-1); }
.has-drop-cap { color: var(--swm-color-headings); }

/* Search block */
.wp-block-search__inside-wrapper { display: flex; justify-self: center; }
input.wp-block-search__input.wp-block-search__input { width: 100%; margin: 0; border: 0; border-bottom: 1px solid; }
.wp-block-search__button.has-icon.wp-element-button { padding: 0; border-radius: 50%; width: 40px; height: 40px; flex-shrink: 0; }

/* Column block */
.wp-block-column { padding: 20px; }
.wp-block-column p { margin: 0; }

/* Post author block */
.wp-block-post-author { margin-bottom: 20px; }

/* List block */
ul.wp-block-list { margin-bottom: 30px; }
ul.wp-block-categories.wp-block-categories-list.aligncenter li { list-style: none; }

/* Archive, categories, latest posts block lists */
ul.wp-block-archives li, .wp-block-categories li, .wp-block-latest-posts li {
    margin: 0;
    padding: 2px 0;
    display: block;
    line-height: 1.8em;
}

ul.wp-block-page-list li, ul.wp-block-categories-list li, ul.wp-block-archives-list li { margin: 0; padding: 5px 0; }

/* Post template */
ul.wp-block-post-template li { margin-bottom: 40px; }

/* Post list in single content */
.swm-post-list-single-content-section ul li .wp-block-post-title { font-size: 22px; font-weight: 700; line-height: 1.2; margin-bottom: 8px; }
.swm-post-list-single-content-section ul li { list-style: none; padding: 0; margin-left: 0; }
.swm-post-list-single-content-section ul li figure { margin-bottom: 20px; }
.swm-post-list-single-content-section ul { padding: 0; margin: 0; }

/* Pullquote citation */
.wp-block-pullquote:not(.is-style-solid-color) .wp-block-pullquote__citation { color: var(--swm-color-text); }

/* Cover text */
.wp-block-cover-image-text,
.wp-block-cover-text,
p.wp-block-cover-text,
section.wp-block-cover-image h2,
.wp-block-cover-text a { color: var(--swm-color-light-1); }


/* ==========================================================================
   25. STICKY HEADER SHELL
   ========================================================================== */

#swm-sticky-header {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    display: block;
    opacity: 0;
    transform: translate(0, -120px);
    transition: all 0.2s ease-out;
}

#swm-sticky-header.sticky-on {
    opacity: 1;
    z-index: 9;
    transform: translate(0, 0);
}

.swmShowStickyHeader #swm-sticky-header { opacity: 1; z-index: 9; transform: translate(0, 0); }
.swmShowStickyHeader.admin-bar #swm-sticky-header { top: 32px; }
.elementor-editor-active.swmShowStickyHeader #swm-sticky-header { display: none; }


/* ==========================================================================
   26. UTILITY CLASSES
   ========================================================================== */

.left  { float: left; }
.right { float: right; }
.center { text-align: center !important; }
.pos-abs { position: absolute; }

.swm-flex { display: flex; }
.swm-flex-center { display: flex; align-items: center; justify-content: center; }
.swm-abs { position: absolute; top: 0; left: 0; display: block; }
.swm-abs-center { position: absolute; top: 50%; left: 50%; display: block; transform: translate(-50%, -50%); }
.swm-ul-li, .swm-ul-li li { margin: 0; padding: 0; list-style: none; }

.screen-reader-text { clip: rect(1px, 1px, 1px, 1px); height: 1px; overflow: hidden; position: absolute !important; width: 1px; word-wrap: normal !important; }


/* ==========================================================================
   27. TRANSITIONS & ANIMATIONS
   ========================================================================== */

.swm-anim::before,
.swm-anim::after,
.swm-anim,
.swm-anim a,
.swm-anim input,
.swm-anim svg,
.swm-anim > i,
input,
textarea,
.elementor-widget-image img,
.swm-post-button a {
    transition: all 0.3s ease-in-out;
}

/* Scroll-load fade in */
body:not(.elementor-editor-active) .swm-scroll-load { opacity: 0; transition: opacity 0.6s ease-out; }
body:not(.elementor-editor-active) .swm--loaded { opacity: 1; }

/* Elementor fast fade animations */
.animated.animated-fast.fadeIn { animation-duration: 0.3s; }
.animated.animated-fast.fadeInDown { animation-name: fadeInDownCustom; animation-duration: 0.3s; }
.animated.animated-fast.fadeInLeft { animation-name: fadeInLeftCustom; animation-duration: 0.3s; }
.animated.animated-fast.fadeInRight { animation-name: fadeInRightCustom; animation-duration: 0.3s; }
.animated.animated-fast.fadeInUp { animation-name: fadeInUpCustom; animation-duration: 0.3s; }

@keyframes fadeInUpCustom    { from { opacity: 0; transform: translate3d(0, 25%, 0); }  to { opacity: 1; transform: none; } }
@keyframes fadeInDownCustom  { from { opacity: 0; transform: translate3d(0, -25%, 0); } to { opacity: 1; transform: none; } }
@keyframes fadeInLeftCustom  { from { opacity: 0; transform: translate3d(-25%, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes fadeInRightCustom { from { opacity: 0; transform: translate3d(25%, 0, 0); }  to { opacity: 1; transform: none; } }

/* Isotope transitions (if used with Elementor portfolio) */
.isotope, .isotope .isotope-item { transition-duration: 0.8s; }
.isotope { transition-property: height, width; }
.isotope .isotope-item { transition-property: transform, opacity, border-color, box-shadow; }
.isotope.no-transition, .isotope.no-transition .isotope-item, .isotope .isotope-item.no-transition { transition-duration: 0s; }
.isotope-item { z-index: 2; }
.isotope-hidden.isotope-item { pointer-events: none; z-index: 1; }


/* ==========================================================================
   28. PRINT STYLES
   ========================================================================== */

@media print {
    * { background: transparent !important; box-shadow: none !important; text-shadow: none !important; }
    pre, blockquote { page-break-inside: avoid; }
    thead { display: table-header-group; }
    tr, img { page-break-inside: avoid; }
    img { max-width: 100% !important; }
    @page { margin: 0.5cm; }
    p, h2, h3 { orphans: 3; widows: 3; }
    h2, h3 { page-break-after: avoid; }
}


/* ==========================================================================
   29. RESPONSIVE — TABLET (≤1024px)
   ========================================================================== */

@media (max-width: 1024px) {

    .swm-hide-tablet { display: none !important; }
    .swm-btt-btn span { display: none; }
    .swm-btt-btn { bottom: 40px; }

    .swm-custom-two-third,
    #sidebar {
        width: 100%;
        float: none;
        clear: both;
        margin-left: 0;
        margin-bottom: 0;
        margin-top: 50px;
    }

    .swm-custom-two-third { margin-top: 0; }

    .swm-post-content { padding-bottom: 60px; }
    .swm-related-posts-section { padding: 0 0 40px; }
    .swm-about-author-box { margin-bottom: 60px; }
    .swm-about-author-title-subtitle a { font-size: 30px; }

    h3.swm-single-pg-titles,
    #comments h3.swm-single-pg-titles,
    #respond h3.comment-reply-title { font-size: 45px; line-height: 1.2; margin-bottom: 30px; }

    .sidebar .swm-sidebar-widget-box { margin-bottom: 70px; }

    .wp-block-media-text__content { padding: 1.8rem 2.5rem; }
}


/* ==========================================================================
   30. RESPONSIVE — MOBILE (≤767px)
   ========================================================================== */

@media (max-width: 767px) {

    .swm-hide-mobile { display: none !important; }

    .swm-one-half, .swm-one-third, .swm-one-fourth, .swm-one-fifth, .swm-one-sixth,
    .swm-two-third, .swm-three-fourth, .swm-four-fifth, .swm-five-sixth {
        width: 100%;
        float: none;
        clear: both;
        margin-left: 0;
        margin-bottom: 30px;
    }

    .swm-post-content { padding-bottom: 50px; }

    .swm-post-single-tags, .swm_post_share_links { flex-basis: 100%; margin-bottom: 30px; }
    .swm_post_share_links { text-align: left; }

    #comments { margin-bottom: 36px; }
    .swm-about-author-box { margin-bottom: 40px; }

    #commentform p.comment-form-author,
    #commentform p.comment-form-email,
    #commentform p.comment-form-url { width: 100%; }

    #comment-wrap ol.commentlist li ul.children { padding-left: 0; }

    .swm-related-posts ul { margin: 0; }

    .swm-single-related-posts-1 .swm-related-posts > ul > li,
    .swm-single-related-posts-2 .swm-related-posts > ul > li,
    .swm-single-related-posts-3 .swm-related-posts > ul > li,
    .swm-single-related-posts-4 .swm-related-posts > ul > li {
        margin: 0 0 40px;
        width: 100%;
    }

    .swm-pagination-wrap, nav.woocommerce-pagination { margin-top: 20px; margin-bottom: 20px; }
    #sidebar { margin-top: 30px; }
    .sidebar .swm-sidebar-widget-box { margin-bottom: 50px; }

    .wp-block-media-text__content { padding: 1rem 1.5rem; }

    .swm-error-page-404 h1 { font-size: 5em; }
    .swm-error-page-content { padding-top: 60px; }

    /* Gallery: 2 columns on mobile */
    .gallery-columns-2 dl.gallery-item,
    .gallery-columns-3 dl.gallery-item,
    .gallery-columns-4 dl.gallery-item,
    .gallery-columns-5 dl.gallery-item,
    .gallery-columns-6 dl.gallery-item,
    .gallery-columns-7 dl.gallery-item,
    .gallery-columns-8 dl.gallery-item,
    .gallery-columns-9 dl.gallery-item { width: 50%; padding: 1.5%; }
}


/* ==========================================================================
   31. RESPONSIVE — SMALL MOBILE (≤480px)
   ========================================================================== */

@media (max-width: 480px) {

    .swm-single-next-prev-links { margin: 10px 0; }

    .comment-avatar { float: none; display: inline-block; text-align: center; }
    .comment-avatar img { float: none; display: block; }
    .comment-postinfo { margin-left: 0; }
    .comment-content { text-align: center; float: none; }

    .swm-related-posts-section { padding: 0 0 30px; }

    /* Gallery: single column */
    .gallery-columns-2 dl.gallery-item,
    .gallery-columns-3 dl.gallery-item,
    .gallery-columns-4 dl.gallery-item,
    .gallery-columns-5 dl.gallery-item,
    .gallery-columns-6 dl.gallery-item,
    .gallery-columns-7 dl.gallery-item,
    .gallery-columns-8 dl.gallery-item,
    .gallery-columns-9 dl.gallery-item { width: 100%; padding: 1.5%; margin-bottom: 2%; }
}

@media (max-width: 600px) {
    .swm-about-author { flex-direction: column; justify-content: flex-start; align-items: flex-start; }
    .swm-about-author-left-wrap, .swm-about-author-left-wrap img { width: 100%; }
    .swm-about-author img { float: none; }
    .swm-about-author-left-wrap { padding: 30px 30px 35px; }
    .swm-about-author-biotext { padding: 0 30px 30px; }
}
