﻿/*
Theme Name: LCG-Theme
Theme URI: https://website.com/lcg-theme
Author: Lauren Graces
Author URI: https://website.com/lcg-theme
Description: This theme is for Laurel Crown Graphics.
Requires at least: 5.6
Tested up to: 5.9
Requires PHP: 8.0
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lcg-theme
Tags: one-column, custom-menu, custom-logo, featured-images, translation-ready
*/

/**
1. Normalize
2. Theme Specific CSS
*/


/* 1. Normalize */

/*! 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, monospace;
    /* 1 */
    font-size: 1em;
    /* 2 */
}

/* Text-level semantics
     ========================================================================== */

/**
   * Remove the gray background on active links in IE 10.
   */

a {
    background-color: transparent;
}

/**
   * 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: underline 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, 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;
}


/* 2. Theme Specific CSS */

/* General */

:root {
    /* Measurements */
    --lcg-big-padding: 60px 0;
    --lcg-mobile-padding: 20px 0;
    --lcg-light-padding: 0 25px;

    /* Foundations */
    --background: #F4F7F5;
    --surface: #FFFFFF;
    --surface-elevated: #E7EFEC;
    --panel: #FFFFFF;
    --panel-2: #E7EFEC;

    /* Brand */
    --accent: #5FAEA8;
    --accent-hover: #4D9993;
    --secondary-accent: #B89A65;
    --secondary-hover: #A68550;

    /* Typography */
    --text: #20252A;
    --text-muted: #6D7880;
    --text-inverse: #F7FAF9;

    /* Links */
    --link: var(--accent);
    --link-hover: var(--accent-hover);
    --visited: #4E7E96;

    /* Borders */
    --border: #D7E0DC;
    --border-strong: #BCC8C5;

    /* States */
    --success: #4E9B73;
    --warning: #D2A347;
    --error: #C96262;

    /* Navigation */
    --menu-bg: #FFFFFF;
    --menu-text: #20252A;

    /* Hero */
    --hero-overlay: linear-gradient(rgba(244, 247, 245, .70), rgba(244, 247, 245, .85));

    /* Shadows */
    --shadow: 0 10px 30px rgba(32, 37, 42, .08);

    /* Legacy theme aliases */
    --lcg-gray1: var(--text-muted);
    --lcg-gray2: var(--surface-elevated);
    --lcg-gray3: var(--border);
    --lcg-light-blue: var(--accent);
    --lcg-deep-blue: var(--surface-elevated);
    --lcg-black-blue: var(--text);
    --lcg-yellow: var(--secondary-accent);
}

:root[data-theme="dark"],
body.dark-mode {
    /* Foundations */
    --background: #0E1418;
    --surface: #182127;
    --surface-elevated: #23303A;
    --panel: #182127;
    --panel-2: #23303A;

    /* Brand */
    --accent: #4FB6B2;
    --accent-hover: #67CFC8;
    --secondary-accent: #C9A86A;
    --secondary-hover: #D7B87B;

    /* Typography */
    --text: #F1F4F2;
    --text-muted: #9BA8A4;
    --text-inverse: #0E1418;

    /* Links */
    --link: var(--accent);
    --link-hover: var(--accent-hover);
    --visited: #78AEB8;

    /* Borders */
    --border: #314048;
    --border-strong: #45555F;

    /* States */
    --success: #58B384;
    --warning: #D5AA4F;
    --error: #D36D6D;

    /* Navigation */
    --menu-bg: #182127;
    --menu-text: #F1F4F2;

    /* Hero */
    --hero-overlay: linear-gradient(rgba(14, 20, 24, .70), rgba(14, 20, 24, .88));

    /* Shadows */
    --shadow: 0 12px 32px rgba(0, 0, 0, .35);
}

*,
::after,
::before {
    box-sizing: border-box;
}

body {
    background: var(--background);
    color: var(--text);
    font-family: 'Poppins', sans-serif;
    font: normal, 21px/2.1rem, 'Poppins', sans-serif;
}

h1 {
    font-size: 66px;
    line-height: 70px;
}

h2 {
    font-size: 40px;
    line-height: 4.0rem;
    font-weight: bold;
    text-transform: uppercase;
}

h3 {
    font-size: 36px;
    line-height: 3.6rem;
    font-weight: bold;
}

h4 {
    font-size: 28px;
    line-height: 2.8rem;
    font-weight: bold;
}

h5 {
    font-size: 22px;
    line-height: 2.2rem;
    font-weight: bold;
}

p {
    font-size: 15px;
    line-height: 1.7rem;
}

a {
    color: var(--link);
    text-decoration: none;
}

a:hover {
    color: var(--link-hover);
}

a:visited {
    color: var(--visited);
}

img {
    max-width: 100%;
    height: auto;
}

/* Containers */

.container {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
}

@media (max-width: 575px) {
    .container {
        padding: var(--lcg-light-padding);
    }
}

@media (min-width: 576px) {
    .container {
        max-width: 540px;
        padding-right: 15px;
        padding-left: 15px;
    }
}

@media (min-width: 768px) {
    .container {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .container {
        max-width: 1140px;
    }
}

/************** HOME PAGE *****************/

/* Top Bar Section */
.top-bar {
    background: var(--surface);
    color: var(--text);
    padding: 15px 0;
}

.top-bar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.lcg-logo-dark {
    display: none;
}

:root[data-theme="dark"] .lcg-has-dark-logo .lcg-logo-light,
body.dark-mode .lcg-has-dark-logo .lcg-logo-light {
    display: none;
}

:root[data-theme="dark"] .lcg-logo-dark,
body.dark-mode .lcg-logo-dark {
    display: block;
}


.header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.login-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 9px 14px;
    border: 1px solid var(--border-strong);
    border-radius: 12px;
    background: var(--accent);
    color: var(--text-inverse);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.login-button:visited {
    color: #fff;
}

.login-button:hover,
.login-button:focus {
    background: var(--accent-hover);
    border-color: var(--accent-hover);
    color: var(--text-inverse);
    box-shadow: var(--shadow);
    transform: translateY(-1px);
}
.searchbox input[type="text"] {
    padding: 7px 10px;
    border: 1px solid var(--border-strong);
}

.searchbox input[type="submit"] {
    padding: 9px 10px;
    background: var(--accent);
    color: var(--text-inverse);
    border: none;
}

@media (max-width: 768px) {
    .header-actions {
        display: none;
    }

    .top-bar .container {
        justify-content: center;
    }
}
/* Theme Toggle */
header {
    position: relative;
}

.theme-toggle {
    position: fixed;
    right: 18px;
    bottom: 78px;
    z-index: 90;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: var(--surface);
    color: var(--text);
    box-shadow: var(--shadow);
    cursor: pointer;
}

.theme-toggle:hover,
.theme-toggle:focus {
    background: var(--surface-elevated);
    outline: 2px solid transparent;
    box-shadow: 0 0 0 3px rgba(95, 174, 168, .24), var(--shadow);
}

.theme-icon {
    display: block;
    width: 22px;
    height: 22px;
}

.theme-toggle .sun-icon {
    display: none;
}

body.dark-mode .theme-toggle {
    border-color: var(--border);
    background: var(--surface);
    color: var(--text);
}

body.dark-mode .theme-toggle:hover,
body.dark-mode .theme-toggle:focus {
    background: var(--panel-2);
}

body.dark-mode .theme-toggle .moon-icon {
    display: none;
}

body.dark-mode .theme-toggle .sun-icon {
    display: block;
}

@media (max-width: 768px) {
    .theme-toggle {
        right: 12px;
        bottom: 72px;
        width: 40px;
        height: 40px;
    }

    .theme-icon {
        width: 20px;
        height: 20px;
    }

    .top-bar .container {
        padding-right: 58px;
        padding-left: 58px;
    }
}
/* Main Menu */

.menu-area {
    position: relative;
    z-index: 30;
    background: var(--menu-bg);
}

.main-menu {
    position: relative;
    height: 55px;
    display: flex;
    justify-content: center;
}

.main-menu ul {
    margin: 0;
    padding-left: 0;
}

.main-menu ul li {
    display: inline-block;
    line-height: 55px;
    position: relative;
}

.main-menu ul li.current_page_item>a {
    font-weight: bold;
}

.main-menu ul li a {
    color: var(--text);
    padding: 0 30px;
    text-decoration: none;
    display: block;
}

.main-menu ul li a:hover,
.main-menu ul li a:active {
    color: var(--text-muted);
    transition: .5s all;
}

.main-menu ul li a:focus+ul {
    display: block;
}

.main-menu li.menu-item-has-children::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: calc(50% - 6px);
    width: 0px;
    height: 0px;
    border-top: 6px solid transparent;
    border-right: 6px solid transparent;
    border-bottom: 6px solid var(--menu-text);
    border-left: 6px solid transparent;
}

.main-menu ul.sub-menu {
    position: absolute;
    padding-left: 0;
    background-color: var(--panel-2);
    z-index: 1;
    text-align: left;
    display: none;
}

.main-menu ul .menu-item-has-children:hover>ul,
.main-menu ul .menu-item-has-children:focus+ul {
    display: block
}

.main-menu ul.sub-menu li {
    width: max-content;
}

.main-menu ul.sub-menu a {
    color: var(--text);
}

.menu-icon,
.check-button {
    cursor: pointer;
    display: none;
}

.menu-icon .bar1,
.menu-icon .bar2,
.menu-icon .bar3 {
    width: 28px;
    height: 3px;
    background-color: var(--menu-text);
    margin: 5px 0;
    transition: 0.4s;
}

@media (max-width: 767px) {

    .menu-icon,
    .check-button {
        display: block;
    }

    .check-button {
        border: none;
        background: transparent;
        height: 55px;
    }

    .main-menu ul {
        position: absolute;
        width: 100%;
        background: var(--panel-2);
        left: -999px;
        text-align: left;
        transition: all cubic-bezier(.79, .14, .15, .86) .5s;
        padding: 0;
        margin: 0;
        z-index: 50;
    }

    .main-menu ul:not(.sub-menu) {
        margin-top: 55px;
    }

    .main-menu ul li {
        display: block;
        margin: 15px 0;
        line-height: 30px;
    }

    .main-menu ul li a {
        color: var(--text);
    }

    .main-menu ul.sub-menu {
        position: relative;
        top: 0;
        margin-left: 30px;
        display: block;
        width: auto;
    }

    .main-menu ul.sub-menu a {
        color: var(--text-muted);
    }

    .show-dropdown {
        left: 0 !important;
    }

    .animate-button .bar1 {
        -webkit-transform: rotate(-45deg) translate(-4px, 4px);
        transform: rotate(-45deg) translate(-4px, 4px);
    }

    .animate-button .bar2 {
        opacity: 0;
    }

    .animate-button .bar3 {
        -webkit-transform: rotate(45deg) translate(-7px, -7px);
        transform: rotate(45deg) translate(-7px, -7px);
    }
}

/* Hero */
.hero {
    background-size: cover;
    background-position: center center;
    color: var(--text);
    text-align: center;
}

.hero-items {
    padding: var(--lcg-light-padding);
}

.hero .overlay {
    background: var(--hero-overlay);
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero .hero-items h1 {
    margin-top: 0;
    font-weight: normal;
}

.hero .hero-items a {
    color: var(--text-inverse);
    padding: 15px 25px;
    display: inline-block;
    background: var(--accent);
    margin: 20px 0 0;
}

.hero .hero-items a:hover {
    background: var(--secondary-accent);
    transition: .5s all;
}

/* Services */
.services {
    background: var(--panel-2);
    padding: var(--lcg-big-padding);
    color: var(--text);
}

.services .container {
    display: flex;
    flex-wrap: wrap;
    text-align: center;
}

.services .container>* {
    flex: 1 1 250px;
}

.services-item {
    padding: var(--lcg-light-padding);
}

.services-item p {
    margin-bottom: 40px;
}

.services-item figure img {
    background: var(--surface);
    padding: 15px;
}

.services h2 {
    text-align: center;
    position: relative;
}

.services h2::after {
    content: '';
    position: absolute;
    background-color: var(--accent);
    width: 35px;
    height: 5px;
    right: calc(50% - 15px);
    bottom: 0;
}

.services h4 {
    margin: 0;
}

@media (max-width: 768px) {
    .services .container {
        flex-direction: column;
        padding: 0;
    }

    .services-item {
        max-width: 100%;
    }
}

/* Home Blog */
.home .home-blog {
    padding: var(--lcg-big-padding);
}

.home-blog .container article:first-child {
    grid-area: feat-item;
}

.home-blog .container {
    display: grid;
    grid-template-areas: 'feat-item feat-item';
    grid-gap: 25px;
}

.home-blog .home-latest-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
}

.home-blog .home-latest-column {
    min-width: 0;
}

.home-blog .home-latest-column h3 {
    margin: 0 0 20px;
    color: var(--text);
    font-size: 28px;
    line-height: 1.25;
    text-align: left;
}

.home-blog .home-latest-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.home-blog .home-latest-list article:first-child {
    grid-area: auto;
}

.home-blog .home-recent-item {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 18px;
    margin: 0;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
    text-align: left;
}

.home-blog .home-recent-image {
    display: block;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
    background: var(--surface-elevated);
}

.home-blog .home-recent-image img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0 !important;
    object-fit: cover;
}

.home-blog .home-recent-body {
    min-width: 0;
}

.home-blog .home-recent-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    margin: 0 0 6px;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 700;
}

.home-blog .home-recent-body h4 {
    margin: 0 0 8px;
    font-size: 20px;
    line-height: 1.25;
}

.home-blog .home-recent-body h4 a {
    color: var(--text);
    text-decoration: none;
}

.home-blog .home-recent-body h4 a:hover,
.home-blog .home-recent-body h4 a:focus {
    color: var(--link-hover);
}

.home-blog .home-recent-excerpt p {
    margin: 0;
    color: var(--text-muted);
    font-size: 14px;
}

.home-blog .home-recent-item-no-image {
    grid-template-columns: 1fr;
}

@media (max-width: 900px) {
    .home-blog .home-latest-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .home-blog .home-recent-item {
        grid-template-columns: 1fr;
    }

    .home-blog .home-recent-image {
        aspect-ratio: 16 / 9;
    }
}

.home .home-blog h2 {
    text-align: center;
    position: relative;
}

.home .home-blog h2::after {
    content: '';
    position: absolute;
    background-color: var(--accent);
    width: 35px;
    height: 5px;
    right: calc(50% - 15px);
    bottom: 0;
}

.home .home-blog .latest-news {
    text-align: center;
}

.home .home-blog .col-12 .latest-news {
    margin-bottom: 40px;
}

.home .home-blog .latest-news img {
    float: none !important;
    margin: 0 0 25px 0 !important;
}

.home .home-blog .latest-news h3 {
    color: var(--text);
    margin: 0;
    line-height: 2.6rem;
}

.home .home-blog .meta-info p {
    font-weight: bold;
    margin-bottom: 0;
}

.home .home-blog .meta-info p:last-child {
    margin-top: 5px;
}

.home .home-blog span,
.home .home-blog span a {
    color: var(--text-muted);
    font-weight: normal;
    text-decoration: none;
    margin: 0 2px 0 0;
}

@media (max-width: 768px) {
    .home-blog .container {
        display: block;
    }
}

/* Footer */
footer {
    background: var(--panel-2);
    padding: 15px 0;
    color: var(--text);
}

footer .container .row {
    align-items: center;
}

/* Footer - Footer Menu */
.site-footer .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.site-footer .copyright p {
    margin: 0;
}

.footer-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-menu ul li {
    display: inline;
    margin: 0 15px 0 0;
}

.footer-menu ul li:last-child {
    margin: 0;
}

.footer-menu ul li a {
    text-decoration: none;
    color: var(--text);
}

.footer-menu ul li.current_page_item a {
    font-weight: bold;
}

@media (max-width: 768px) {
    .site-footer .container {
        justify-content: safe;
    }
}

@media (max-width: 575px) {
    .site-footer .container {
        flex-wrap: wrap;
    }
}

/************** INNER PAGES *****************/

/* Blog, Archive, Search */
.blog main .container,
.archive main .container {
    display: flex;
    align-items: flex-start;
    gap: clamp(32px, 5vw, 72px);
}

.blog .blog-items,
.archive .archive-items {
    flex: 1;
    min-width: 0;
}

.blog .blog-items h2,
.archive .blog-items h2 {
    margin-top: 0;
}

.blog article {
    margin-bottom: 20px;
}

body:not(.home) aside.sidebar {
    flex: 0 0 min(330px, 32vw);
    position: sticky;
    top: 96px;
    align-self: flex-start;
    padding: 25px;
    background: var(--surface-elevated);
    height: max-content;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
}

@media screen and (max-width: 991px) {

    body:not(.home) aside.sidebar {
        position: static;
        max-height: none;
        overflow: visible;
    }

    body:not(.home) aside.sidebar,
    .blog .blog-items,
    .archive .archive-items {
        min-width: 100%;
    }
}

.blog h1,
.archive h1 {
    text-align: center;
    margin-top: 0;
}

.archive-description {
    text-align: center;
    max-width: 50%;
    margin: 0 auto 30px auto;
}

.archive-description p {
    font-size: 85%;
}

.home #primary>#main {
    padding: 0;
}

#primary>#main {
    padding: var(--lcg-big-padding);
}

@media screen and (max-width: 991px) {
    #primary>#main {
        padding: var(--lcg-mobile-padding);
    }
}

.meta-info p {
    margin: 0;
}

.wp-post-image {
    float: left;
    margin: 0 15px 10px 0;
}

@media screen and (max-width: 550px) {
    .wp-post-image {
        width: 100%;
    }
}

article {
    display: inline-block;
    width: 100%;
}

article.post h1,
.search h1,
.archive h1 {
    font-size: 50px;
    line-height: 4.0rem;
    margin-bottom: 15px;
}

article.post h2 {
    line-height: 3rem;
    text-transform: none;
}

article h2 {
    line-height: 3rem;
    margin-bottom: 10px;
    text-transform: none;
}

article.post h3,
article.post h4,
article.post h5 {
    margin-bottom: 0;
}

.searchform input[type="text"] {
    padding: 7px 10px;
    border: 1px solid var(--border-strong);
}

.searchform input[type="submit"] {
    padding: 11px 10px;
    background: var(--accent);
    color: var(--text-inverse);
    border: none;
}

.searchform div {
    display: flex;
}

.searchform input[type=text] {
    max-width: 70%;
}

.searchform input[type=submit] {
    max-width: 70%;
}

@media (max-width: 991px) {

    .blog .container,
    .archive .container {
        flex-wrap: wrap;
        gap: 28px;
    }
}

/* Comments */
#commentform input[type="submit"] {
    color: var(--text-inverse);
    padding: 15px 25px;
    display: inline-block;
    background: var(--accent);
    margin: 20px 0 0;
    border: none;
}

#commentform input[type="submit"]:hover {
    background: var(--secondary-accent);
    transition: .5s all;
}

#commentform label {
    display: block;
}

#commentform label[for="wp-comment-cookies-consent"] {
    display: inline;
    margin-left: 5px;
}

#commentform input[type="text"],
#commentform textarea {
    padding: 7px 10px;
    border: 1px solid var(--border-strong);
    width: 100%;
}

.comments-area #reply-title {
    border-top: 1px solid var(--border);
    padding: 20px 0 0;
}

/* Project sharing */
.project-share {
    border-top: 1px solid var(--border);
    margin-top: 40px;
    padding-top: 24px;
}

.project-share h2 {
    margin: 0 0 14px;
}

.project-share-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.project-share-links a {
    background: var(--accent);
    color: var(--text-inverse);
    display: inline-block;
    padding: 10px 16px;
    text-decoration: none;
}

.project-share-links a:hover,
.project-share-links a:focus {
    background: var(--secondary-accent);
    color: var(--text-inverse);
}

/* Pagination */
.lcg-pagination {
    display: flex;
    justify-content: space-between;
}

.pages {
    margin-top: 20px;
}

.nav-links {
    margin-top: 40px;
}

.nav-links .page-numbers {
    padding: 10px 15px;
    display: inline-block;
    background: var(--border);
}

.nav-links .current {
    background-color: var(--accent);
    color: var(--text-inverse);
}

.nav-links .next,
.nav-links .prev {
    background-color: transparent;
}

.nav-links .prev {
    padding-left: 0;
}

/* =WordPress Core
-------------------------------------------------------------- */
.alignnone {
    margin: 5px 20px 20px 0;
}

.aligncenter,
div.aligncenter {
    display: block;
    margin: 5px auto 5px auto;
}

.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}

.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

a img.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}

a img.alignnone {
    margin: 5px 20px 20px 0;
}

a img.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.wp-caption {
    background: var(--surface);
    border: 1px solid var(--border);
    max-width: 96%;
    /* Image does not overflow the content area */
    padding: 5px 3px 10px;
    text-align: center;
}

.wp-caption.alignnone {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignleft {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignright {
    margin: 5px 0 20px 20px;
}

.wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    max-width: 98.5%;
    padding: 0;
    width: auto;
}

.wp-caption p.wp-caption-text {
    font-size: 11px;
    line-height: 17px;
    margin: 0;
    padding: 0 4px 5px;
}

/* Text meant only for screen readers. */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
    /* Many screen reader and browser combinations announce broken words as they would appear visually. */
}

.screen-reader-text:focus {
    background-color: var(--surface-elevated);
    clip: auto !important;
    clip-path: none;
    color: var(--text);
    display: block;
    font-size: 1em;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
    /* Above WP toolbar. */
}

@media all and (min-width: 768px) {
    .alignfull {
        margin: 30px calc(50% - 50vw);
        max-width: 100vw;
        width: 100vw;
    }

    .alignwide {
        margin: 30px calc(25% - 25vw);
    }
}

.site-content {
    overflow: hidden;
}

/* Portfolio */
.portfolio-page {
    padding-top: 52px;
    padding-bottom: 70px;
}

.portfolio-intro .container,
.portfolio-projects .container {
    max-width: 1140px;
}

.portfolio-page-content {
    max-width: 780px;
    margin: 0 auto 34px;
    text-align: center;
}

.portfolio-page-content h1 {
    margin-bottom: 14px;
}

.portfolio-page-content .content {
    color: var(--text);
}

.portfolio-filters {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    align-items: end;
    margin: 0 0 30px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.portfolio-filter-field {
    min-width: 0;
}

.portfolio-filter-field label {
    display: block;
    margin: 0 0 6px;
    color: var(--text);
    font-size: 14px;
    font-weight: 700;
}

.portfolio-filter-field select {
    width: 100%;
    min-height: 44px;
    padding: 8px 12px;
    border: 1px solid var(--border-strong);
    border-radius: 8px;
    background: var(--surface);
    color: var(--text);
}

.portfolio-filter-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.portfolio-filter-actions button,
.portfolio-filter-actions a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    border-radius: 8px;
    font-weight: 700;
    text-decoration: none;
}

.portfolio-filter-actions button {
    border: 1px solid var(--accent);
    background: var(--accent);
    color: var(--text-inverse);
    cursor: pointer;
}

.portfolio-filter-actions a {
    border: 1px solid var(--border-strong);
    color: var(--text);
}

.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 8px;
    grid-auto-flow: row;
    gap: 18px;
    align-items: start;
}

.project-card {
    width: 100%;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.08);
}

.project-card-link,
.project-card-link:visited {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.project-card-image {
    height: 230px;
    overflow: hidden;
    background: var(--surface-elevated);
}

.project-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.portfolio-grid .project-card:nth-child(6n + 2) .project-card-image {
    height: 300px;
}

.portfolio-grid .project-card:nth-child(6n + 3) .project-card-image {
    height: 190px;
}

.portfolio-grid .project-card:nth-child(6n + 5) .project-card-image {
    height: 270px;
}

.portfolio-grid .project-card:nth-child(6n + 6) .project-card-image {
    height: 210px;
}

.project-card-photo-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
    padding: 8px;
    background: var(--surface-elevated);
}

.project-card-photo-strip img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 4px;
}

.project-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 12px;
    padding: 16px;
}

.project-card-body h2 {
    margin: 0;
    font-size: 20px;
    line-height: 1.25;
}

.project-card-excerpt {
    margin: 0;
}

.project-card-cta {
    margin-top: auto;
    color: var(--accent);
    font-weight: 700;
}

.portfolio-empty {
    text-align: center;
}

.portfolio-pagination {
    margin-top: 32px;
}

.portfolio-pagination ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.portfolio-pagination a,
.portfolio-pagination span {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 9px 13px;
    border: 1px solid var(--border-strong);
    border-radius: 8px;
    text-decoration: none;
}

.portfolio-pagination .current {
    border-color: var(--accent);
    background: var(--accent);
    color: var(--text-inverse);
}

body.lcg-lightbox-open {
    overflow: hidden;
}

.lcg-lightbox {
    position: fixed;
    z-index: 9999;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px;
    background: rgba(14, 20, 24, 0.88);
}

.lcg-lightbox.is-open {
    display: flex;
}

.lcg-lightbox-figure {
    max-width: min(1100px, 92vw);
    max-height: 88vh;
    margin: 0;
    text-align: center;
}

.lcg-lightbox-image {
    display: block;
    max-width: 100%;
    max-height: 80vh;
    margin: 0 auto;
    border-radius: 8px;
    object-fit: contain;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
}

.lcg-lightbox-caption {
    margin-top: 12px;
    color: #fff;
    font-weight: 700;
}

.lcg-lightbox-close,
.lcg-lightbox-nav {
    position: absolute;
    display: inline-flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 50%;
    background: rgba(14, 20, 24, 0.72);
    color: #fff;
    cursor: pointer;
    font-size: 30px;
    line-height: 1;
}

.lcg-lightbox-close {
    top: 18px;
    right: 18px;
}

.lcg-lightbox-prev {
    left: 18px;
}

.lcg-lightbox-next {
    right: 18px;
}

.project-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 34px 0 0;
}

.project-gallery-item {
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: 8px;
    background: var(--surface-elevated);
}

.project-gallery-item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 900px) {
    .portfolio-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .portfolio-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .project-card-image,
    .portfolio-grid .project-card:nth-child(n) .project-card-image {
        height: 240px;
    }

    .project-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .portfolio-page {
        padding-top: 34px;
        padding-bottom: 46px;
    }

    .portfolio-page-content {
        margin-bottom: 24px;
        text-align: left;
    }

    .portfolio-grid {
        grid-template-columns: 1fr;
    }

    .project-card-image,
    .portfolio-grid .project-card:nth-child(n) .project-card-image {
        height: 260px;
    }

    .portfolio-filters {
        grid-template-columns: 1fr;
        padding: 14px;
    }

    .project-gallery {
        grid-template-columns: 1fr;
    }

    .lcg-lightbox {
        padding: 54px 12px 18px;
    }

    .lcg-lightbox-image {
        max-height: 72vh;
    }

    .lcg-lightbox-prev {
        left: 10px;
    }

    .lcg-lightbox-next {
        right: 10px;
    }
}

/* Back To Top Button */
#back-to-top {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 1000;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: var(--accent);
    color: var(--text-inverse);
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    box-shadow: var(--shadow);
    cursor: pointer;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease, background .25s ease;
}

#back-to-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

#back-to-top:hover,
#back-to-top:focus {
    background: var(--panel-2);
    outline: 2px solid transparent;
    box-shadow: 0 0 0 3px rgba(95, 174, 168, .28), var(--shadow);
}

body.dark-mode #back-to-top {
    background: var(--secondary-accent);
    color: var(--text-inverse);
}

body.dark-mode #back-to-top:hover,
body.dark-mode #back-to-top:focus {
    background: var(--surface);
}

@media (max-width: 768px) {
    #back-to-top {
        right: 14px;
        bottom: 14px;
        width: 42px;
        height: 42px;
        font-size: 24px;
    }
}
.lcg-tldr {
    margin: 2rem 0;
    border: 1px solid var(--border);
    background: var(--surface);
    border-radius: 16px;
    overflow: hidden;
}

.lcg-tldr-toggle {
    width: 100%;
    padding: 1rem 1.25rem;

    background: none;
    border: none;

    color: var(--text);

    display: flex;
    justify-content: space-between;
    align-items: center;

    cursor: pointer;

    font-size: 1rem;
    font-weight: 600;
}

.lcg-tldr-content {

    max-height: 0;
    overflow: hidden;

    transition: max-height .35s ease;

    padding: 0 1.25rem;
}

.lcg-tldr.open .lcg-tldr-content {
    padding-bottom: 1rem;
}

.lcg-tldr-icon {
    font-size: 1.4rem;
}
/* Price Estimator */
#lg-estimator,
#lg-estimator * {
    box-sizing: border-box !important;
}

#lg-estimator {
    --estimator-bg: var(--background);
    --estimator-shell: var(--surface);
    --estimator-panel: var(--panel);
    --estimator-panel-2: var(--panel-2);
    --estimator-border: var(--border);
    --estimator-border-strong: var(--border-strong);
    --estimator-text: var(--text);
    --estimator-muted: var(--text-muted);
    --estimator-accent: var(--accent);
    --estimator-accent-hover: var(--accent-hover);
    --estimator-secondary: var(--secondary-accent);
    --estimator-secondary-hover: var(--secondary-hover);
    --estimator-success: var(--success);
    --estimator-error: var(--error);
    --estimator-shadow: var(--shadow);

    width: 100% !important;
    max-width: 100% !important;
    margin: 24px 0 !important;
    color: var(--estimator-text) !important;
    font-family: inherit !important;
    line-height: 1.4 !important;
}

#lg-estimator .lge-shell,
#lg-estimator .lcg-shell {
    width: 100% !important;
    background: linear-gradient(180deg, var(--estimator-shell), var(--estimator-panel-2)) !important;
    border: 1px solid var(--estimator-border) !important;
    border-radius: 24px !important;
    box-shadow: var(--estimator-shadow) !important;
    padding: 24px !important;
}

#lg-estimator .lge-header,
#lg-estimator .lcg-header {
    margin-bottom: 24px !important;
}

#lg-estimator .lcg-catalog {
    margin-bottom: 24px !important;
}

#lg-estimator .lcg-catalog-header {
    margin-bottom: 14px !important;
}

#lg-estimator .lcg-catalog-filters {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-bottom: 16px !important;
}

#lg-estimator .lcg-catalog-filters button,
#lg-estimator .lcg-catalog-select {
    appearance: none !important;
    border: 1px solid var(--estimator-border) !important;
    border-radius: 999px !important;
    cursor: pointer !important;
    font: inherit !important;
}

#lg-estimator .lcg-catalog-filters button {
    background: var(--estimator-shell) !important;
    color: var(--estimator-text) !important;
    padding: 8px 14px !important;
}

#lg-estimator .lcg-catalog-filters button.active {
    background: var(--estimator-accent) !important;
    border-color: var(--estimator-accent) !important;
    color: var(--estimator-shell) !important;
}

#lg-estimator .lcg-catalog-grid {
    display: grid !important;
    gap: 16px !important;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important;
}

#lg-estimator .lcg-catalog-card {
    background: var(--estimator-shell) !important;
    border: 1px solid var(--estimator-border) !important;
    border-radius: 20px !important;
    display: grid !important;
    gap: 10px !important;
    padding: 18px !important;
}

#lg-estimator .lcg-catalog-card h3,
#lg-estimator .lcg-catalog-card p {
    margin-bottom: 0 !important;
}

#lg-estimator .lcg-catalog-type,
#lg-estimator .lcg-catalog-meta {
    color: var(--estimator-muted) !important;
    font-size: 12px !important;
}

#lg-estimator .lcg-catalog-type {
    text-transform: uppercase !important;
    letter-spacing: .12em !important;
}

#lg-estimator .lcg-catalog-price {
    color: var(--estimator-accent-hover) !important;
    font-size: 20px !important;
    font-weight: 700 !important;
}

#lg-estimator .lcg-catalog-description {
    color: var(--estimator-muted) !important;
}

#lg-estimator .lcg-catalog-card ul {
    margin: 0 !important;
    padding-left: 18px !important;
}

#lg-estimator .lcg-catalog-select {
    background: var(--estimator-accent) !important;
    color: var(--estimator-shell) !important;
    justify-self: start !important;
    margin-top: 4px !important;
    padding: 10px 16px !important;
}

#lg-estimator .lge-eyebrow,
#lg-estimator .lge-summary-eyebrow,
#lg-estimator .lcg-eyebrow,
#lg-estimator .lcg-summary-eyebrow,
#lg-estimator .lcg-step-count {
    text-transform: uppercase !important;
    letter-spacing: .12em !important;
    font-size: 12px !important;
    color: var(--estimator-muted) !important;
    margin: 0 0 8px !important;
}

#lg-estimator h1,
#lg-estimator h2,
#lg-estimator h3,
#lg-estimator h4,
#lg-estimator p {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
    color: inherit !important;
}

#lg-estimator h1,
#lg-estimator h2 {
    font-size: 32px !important;
    line-height: 1.1 !important;
}

#lg-estimator .lge-subtext,
#lg-estimator .lge-step-text,
#lg-estimator .lge-result-label,
#lg-estimator .lge-summary-list span,
#lg-estimator .lge-result-details span,
#lg-estimator .lge-summary-eyebrow,
#lg-estimator .lge-note,
#lg-estimator .lcg-subtext,
#lg-estimator .lcg-step-text,
#lg-estimator .lcg-estimate-label,
#lg-estimator .lcg-summary-list span,
#lg-estimator .lcg-result-details span,
#lg-estimator .lcg-summary-eyebrow,
#lg-estimator .lcg-note,
#lg-estimator small {
    color: var(--estimator-muted) !important;
}

#lg-estimator .lge-progress,
#lg-estimator .lcg-progress {
    margin-top: 20px !important;
}

#lg-estimator .lge-progress-bar,
#lg-estimator .lcg-progress-bar {
    width: 100% !important;
    height: 10px !important;
    background: var(--estimator-panel-2) !important;
    border: 1px solid var(--estimator-border) !important;
    border-radius: 999px !important;
    overflow: hidden !important;
    margin-bottom: 10px !important;
}

#lg-estimator #lge-progress-fill,
#lg-estimator #lcg-progress-fill {
    display: block !important;
    height: 100% !important;
    width: 20%;
    background: linear-gradient(90deg, var(--estimator-accent), var(--estimator-secondary)) !important;
    transition: width .45s cubic-bezier(.22, 1, .36, 1) !important;
}

#lg-estimator .lge-progress-steps,
#lg-estimator .lcg-progress-steps {
    display: flex !important;
    justify-content: space-between !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    font-size: 12px !important;
    color: var(--estimator-muted) !important;
}

#lg-estimator .lge-progress-steps span.active,
#lg-estimator .lcg-progress-steps span.active {
    color: var(--estimator-text) !important;
    font-weight: 700 !important;
}

#lg-estimator .lge-grid,
#lg-estimator .lcg-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, .8fr) !important;
    gap: 24px !important;
    align-items: start !important;
}

#lg-estimator .lge-main,
#lg-estimator .lge-summary,
#lg-estimator .lcg-card,
#lg-estimator .lcg-main,
#lg-estimator .lcg-summary {
    background: var(--estimator-shell) !important;
    border: 1px solid var(--estimator-border) !important;
    border-radius: 20px !important;
    padding: 22px !important;
}

#lg-estimator .lge-summary,
#lg-estimator .lcg-summary {
    position: sticky !important;
    top: 20px !important;
}

#lg-estimator .lge-step,
#lg-estimator .lcg-step {
    display: none !important;
}

#lg-estimator .lge-step.active,
#lg-estimator .lcg-step.active {
    display: block !important;
    animation: estimatorStepIn .28s ease both;
}

@keyframes estimatorStepIn {
    from {
        opacity: 0;
        transform: translateY(8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

#lg-estimator .lge-card-group,
#lg-estimator .lge-addon-list,
#lg-estimator .lcg-card-group,
#lg-estimator .lcg-addon-list {
    display: grid !important;
    gap: 14px !important;
    margin-top: 18px !important;
}

#lg-estimator .lge-card,
#lg-estimator .lcg-card-option,
#lg-estimator select,
#lg-estimator .lcg-step label {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
    border: 1px solid var(--estimator-border) !important;
    background: var(--estimator-panel) !important;
    color: var(--estimator-text) !important;
    border-radius: 18px !important;
    padding: 18px !important;
}

#lg-estimator select {
    margin-top: 8px !important;
    appearance: auto !important;
}

#lg-estimator .lge-card,
#lg-estimator .lcg-card-option,
#lg-estimator .lcg-step label {
    cursor: pointer !important;
    transition: background .2s ease, border-color .2s ease, transform .2s ease !important;
}

#lg-estimator .lge-card:hover,
#lg-estimator .lcg-card-option:hover,
#lg-estimator .lcg-step label:hover {
    background: var(--estimator-panel-2) !important;
    border-color: var(--estimator-accent) !important;
    transform: translateY(-1px) !important;
}

#lg-estimator .lge-card.active,
#lg-estimator .lcg-card-option.active {
    border-color: var(--estimator-accent) !important;
    background: var(--estimator-panel-2) !important;
}

#lg-estimator .lge-card strong,
#lg-estimator .lge-addon strong,
#lg-estimator .lcg-card-option strong,
#lg-estimator .lcg-addon strong {
    display: block !important;
    font-size: 17px !important;
    margin-bottom: 6px !important;
}

#lg-estimator .lge-card span,
#lg-estimator .lge-addon span,
#lg-estimator .lge-addon small,
#lg-estimator .lcg-card-option span,
#lg-estimator .lcg-addon span,
#lg-estimator .lcg-addon small {
    display: block !important;
}

#lg-estimator .lge-card em,
#lg-estimator .lge-addon em,
#lg-estimator .lcg-card-option em,
#lg-estimator .lcg-addon em {
    display: inline-block !important;
    margin-top: 10px !important;
    font-style: normal !important;
    font-size: 13px !important;
    color: var(--estimator-success) !important;
}

#lg-estimator .lge-addon,
#lg-estimator .lcg-addon-row {
    display: grid !important;
    grid-template-columns: 20px 1fr auto !important;
    gap: 14px !important;
    align-items: start !important;
    background: var(--estimator-panel) !important;
    border: 1px solid var(--estimator-border) !important;
    border-radius: 16px !important;
    padding: 16px !important;
}

#lg-estimator .lge-addon input,
#lg-estimator .lcg-addon,
#lg-estimator input[type="checkbox"] {
    accent-color: var(--estimator-accent) !important;
    margin-top: 5px !important;
}

#lg-estimator .lge-nav,
#lg-estimator .lcg-controls {
    display: flex !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin-top: 24px !important;
}

#lg-estimator .lge-btn,
#lg-estimator .lcg-controls button,
#lg-estimator #lcg-submit-lead,
#lg-estimator #lge-submit-lead,
#lg-estimator .lcg-download-pdf,
#lg-estimator #lge-download-pdf {
    appearance: none !important;
    border: 0 !important;
    border-radius: 14px !important;
    padding: 14px 20px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    min-width: 120px !important;
    background: var(--estimator-accent) !important;
    color: var(--text-inverse) !important;
}

#lg-estimator .lge-btn-primary,
#lg-estimator #lcg-next,
#lg-estimator #lcg-submit-lead,
#lg-estimator #lge-next,
#lg-estimator #lge-submit-lead {
    background: linear-gradient(90deg, var(--estimator-accent), var(--estimator-secondary)) !important;
    color: var(--text-inverse) !important;
}

#lg-estimator .lge-btn-primary:hover,
#lg-estimator #lcg-next:hover,
#lg-estimator #lcg-submit-lead:hover,
#lg-estimator #lge-next:hover,
#lg-estimator #lge-submit-lead:hover {
    background: linear-gradient(90deg, var(--estimator-accent-hover), var(--estimator-secondary-hover)) !important;
}

#lg-estimator .lge-btn-secondary,
#lg-estimator #lcg-prev,
#lg-estimator #lge-prev,
#lg-estimator .lcg-download-pdf,
#lg-estimator #lge-download-pdf {
    background: var(--estimator-panel-2) !important;
    color: var(--estimator-text) !important;
    border: 1px solid var(--estimator-border) !important;
}

#lg-estimator .lcg-download-pdf:hover,
#lg-estimator #lge-download-pdf:hover {
    background: var(--estimator-secondary) !important;
    color: var(--text-inverse) !important;
    border-color: var(--estimator-secondary) !important;
}

#lg-estimator .lge-summary-list,
#lg-estimator .lge-result-details,
#lg-estimator .lcg-summary-list,
#lg-estimator .lcg-result-details {
    display: grid !important;
    gap: 14px !important;
    margin-bottom: 20px !important;
}

#lg-estimator .lge-summary-list div,
#lg-estimator .lge-result-details div,
#lg-estimator .lcg-summary-list div,
#lg-estimator .lcg-result-details div,
#lg-estimator .lcg-summary p {
    display: flex !important;
    justify-content: space-between !important;
    gap: 12px !important;
    border-bottom: 1px solid var(--estimator-border) !important;
    padding-bottom: 10px !important;
}

#lg-estimator .lge-estimate-box,
#lg-estimator .lge-result-card,
#lg-estimator .lge-lead-box,
#lg-estimator .lcg-estimate-box,
#lg-estimator .lcg-result-card,
#lg-estimator .lcg-lead-form {
    background: var(--estimator-panel) !important;
    border: 1px solid var(--estimator-border) !important;
    border-radius: 18px !important;
    padding: 18px !important;
}

#lg-estimator .lge-result-top,
#lg-estimator .lcg-result-top {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 18px !important;
    margin-bottom: 18px !important;
}

#lg-estimator .lge-lead-capture,
#lg-estimator .lcg-lead-form {
    display: grid !important;
    gap: 12px !important;
    margin-top: 20px !important;
    margin-bottom: 24px !important;
}

#lg-estimator .lcg-hidden-field {
    display: none !important;
}

#lg-estimator .lge-lead-capture input,
#lg-estimator .lge-lead-capture textarea,
#lg-estimator .lcg-lead-form input,
#lg-estimator .lcg-lead-form textarea {
    width: 100% !important;
    background: var(--estimator-panel) !important;
    color: var(--estimator-text) !important;
    border: 1px solid var(--estimator-border-strong) !important;
    border-radius: 12px !important;
    padding: 14px !important;
}

#lg-estimator .lge-lead-capture input:focus,
#lg-estimator .lge-lead-capture textarea:focus,
#lg-estimator .lcg-lead-form input:focus,
#lg-estimator .lcg-lead-form textarea:focus,
#lg-estimator select:focus {
    border-color: var(--estimator-accent) !important;
    outline: 2px solid transparent !important;
    box-shadow: 0 0 0 3px var(--estimator-border) !important;
}

#lg-estimator .lge-lead-capture textarea,
#lg-estimator .lcg-lead-form textarea {
    min-height: 120px !important;
    resize: vertical !important;
}

#lg-estimator #lead-status,
#lg-estimator #lge-lead-status,
#lg-estimator #lcg-lead-status {
    color: var(--estimator-muted) !important;
}

@media (max-width: 900px) {
    #lg-estimator .lge-grid,
    #lg-estimator .lcg-grid {
        grid-template-columns: 1fr !important;
    }

    #lg-estimator .lge-summary,
    #lg-estimator .lcg-summary {
        position: static !important;
    }

    #lg-estimator .lge-result-top,
    #lg-estimator .lcg-result-top {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 640px) {
    #lg-estimator .lge-shell,
    #lg-estimator .lge-main,
    #lg-estimator .lge-summary,
    #lg-estimator .lcg-shell,
    #lg-estimator .lcg-card,
    #lg-estimator .lcg-main,
    #lg-estimator .lcg-summary {
        padding: 16px !important;
    }

    #lg-estimator h1,
    #lg-estimator h2 {
        font-size: 26px !important;
    }

    #lg-estimator .lge-nav,
    #lg-estimator .lcg-controls {
        flex-direction: column !important;
    }

    #lg-estimator .lge-btn,
    #lg-estimator .lcg-controls button,
    #lg-estimator #lcg-submit-lead,
    #lg-estimator #lge-submit-lead,
    #lg-estimator .lcg-download-pdf,
    #lg-estimator #lge-download-pdf {
        width: 100% !important;
    }
}
/* Contact Page */
.page-template-page-contact .site-main {
    background: var(--background);
    color: var(--text);
    padding: 48px 16px 72px;
}

.page-template-page-contact .site-main .container {
    width: min(100%, 960px);
    margin: 0 auto;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    box-shadow: var(--shadow);
    padding: 28px;
}

.page-template-page-contact .site-main h1 {
    margin: 0 0 24px;
    background: var(--accent);
    color: var(--text-inverse);
    border-radius: 18px;
    padding: 28px;
    font-size: clamp(2rem, 5vw, 3.25rem);
    line-height: 1.05;
    letter-spacing: 0;
}

.page-template-page-contact .form-success,
.page-template-page-contact .form-error {
    margin: 0 0 18px;
    border-radius: 14px;
    padding: 14px 16px;
    font-weight: 700;
}

.page-template-page-contact .form-success {
    background: color-mix(in srgb, var(--success) 14%, var(--surface));
    border: 1px solid color-mix(in srgb, var(--success) 45%, var(--border));
    color: var(--success);
}

.page-template-page-contact .form-error {
    background: color-mix(in srgb, var(--error) 12%, var(--surface));
    border: 1px solid color-mix(in srgb, var(--error) 45%, var(--border));
    color: var(--error);
}
.page-template-page-contact .contact-direct {
    display: grid;
    gap: 14px;
    margin: 0 0 18px;
    background: var(--panel-2);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 20px;
}

.page-template-page-contact .contact-direct h2 {
    margin: 0;
    color: var(--text);
    font-size: 22px;
    line-height: 1.25;
}

.page-template-page-contact .contact-direct-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.page-template-page-contact .contact-direct-link,
.page-template-page-contact .contact-direct-link:visited {
    display: grid;
    gap: 6px;
    min-height: 88px;
    align-content: center;
    border: 1px solid var(--border-strong);
    border-radius: 14px;
    background: var(--surface);
    color: var(--text);
    padding: 16px;
    text-decoration: none;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.page-template-page-contact .contact-direct-link:hover,
.page-template-page-contact .contact-direct-link:focus-visible {
    border-color: var(--accent);
    box-shadow: var(--shadow);
    transform: translateY(-1px);
}

.page-template-page-contact .contact-direct-label {
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.page-template-page-contact .contact-direct-value {
    overflow-wrap: anywhere;
    color: var(--accent);
    font-weight: 800;
}
.page-template-page-contact .contact-form {
    display: grid;
    gap: 16px;
    background: var(--panel-2);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 22px;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.page-template-page-contact .hidden-field {
    display: none;
}

.page-template-page-contact .form-group {
    display: grid;
    gap: 8px;
}

.page-template-page-contact .form-group label {
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.page-template-page-contact .contact-form input,
.page-template-page-contact .contact-form select,
.page-template-page-contact .contact-form textarea {
    width: 100%;
    background: var(--panel);
    color: var(--text);
    border: 1px solid var(--border-strong);
    border-radius: 14px;
    padding: 14px 16px;
    font: inherit;
    line-height: 1.4;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.page-template-page-contact .contact-form textarea {
    min-height: 160px;
    resize: vertical;
}

.page-template-page-contact .contact-form input:focus,
.page-template-page-contact .contact-form select:focus,
.page-template-page-contact .contact-form textarea:focus {
    background: var(--surface);
    border-color: var(--accent);
    outline: 2px solid transparent;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
}

.page-template-page-contact .contact-submit {
    appearance: none;
    justify-self: start;
    min-width: 160px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(90deg, var(--accent), var(--secondary-accent));
    color: var(--text-inverse);
    cursor: pointer;
    font-weight: 800;
    padding: 14px 22px;
    transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.page-template-page-contact .contact-submit:hover,
.page-template-page-contact .contact-submit:focus-visible {
    background: linear-gradient(90deg, var(--accent-hover), var(--secondary-hover));
    box-shadow: var(--shadow);
    transform: translateY(-1px);
}

@media (min-width: 760px) {
    .page-template-page-contact .contact-form {
        grid-template-columns: 1fr 1fr;
    }

    .page-template-page-contact .form-group-wide,
    .page-template-page-contact .contact-submit {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .page-template-page-contact .site-main {
        padding: 28px 12px 48px;
    }

    .page-template-page-contact .site-main .container,
    .page-template-page-contact .contact-direct,
    .page-template-page-contact .contact-form {
        padding: 16px;
        border-radius: 16px;
    }

    .page-template-page-contact .contact-direct-options {
        grid-template-columns: 1fr;
    }

    .page-template-page-contact .site-main h1 {
        padding: 22px;
        border-radius: 16px;
    }

    .page-template-page-contact .contact-submit {
        width: 100%;
    }
}

/* Responsive Interface Polish */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

body {
    min-width: 320px;
}

.site-content,
.site-main,
#primary,
#main,
article,
.entry-content,
.post-content,
.page-content,
.wp-block-group,
.wp-block-columns,
.wp-block-column {
    max-width: 100%;
}

iframe,
embed,
object,
video,
.wp-block-embed,
.wp-block-image,
figure,
table {
    max-width: 100%;
}

iframe,
embed,
object,
video {
    height: auto;
}

.wp-block-embed.is-type-video,
.wp-block-embed.is-provider-youtube,
.wp-block-embed__wrapper {
    aspect-ratio: 16 / 9;
    width: 100%;
    max-width: 900px;
}

.wp-block-embed {
    margin-right: auto;
    margin-left: auto;
}

.wp-block-embed iframe,
.wp-block-embed embed,
.wp-block-embed object,
.wp-block-embed video,
.wp-block-embed__wrapper iframe,
.wp-block-embed__wrapper embed,
.wp-block-embed__wrapper object,
.wp-block-embed__wrapper video {
    display: block;
    width: 100%;
    height: 100%;
}

.content iframe[src*="youtube.com"],
.content iframe[src*="youtube-nocookie.com"],
.content iframe[src*="youtu.be"],
.page-content iframe[src*="youtube.com"],
.page-content iframe[src*="youtube-nocookie.com"],
.page-content iframe[src*="youtu.be"],
.entry-content iframe[src*="youtube.com"],
.entry-content iframe[src*="youtube-nocookie.com"],
.entry-content iframe[src*="youtu.be"] {
    aspect-ratio: 16 / 9;
    display: block;
    width: 100%;
    max-width: 900px;
    height: auto;
    margin-right: auto;
    margin-left: auto;
}

.wp-block-embed.is-vertical-video,
.wp-block-embed.is-vertical-video .wp-block-embed__wrapper {
    aspect-ratio: 9 / 16;
    width: 100%;
    max-width: 420px;
}

.wp-block-embed.is-vertical-video iframe,
.wp-block-embed.is-vertical-video embed,
.wp-block-embed.is-vertical-video object,
.wp-block-embed.is-vertical-video video {
    width: 100%;
    height: 100%;
}

.wp-block-embed.is-type-video,
.wp-block-embed.is-provider-youtube {
    width: 100%;
    max-width: 900px;
    margin-right: auto;
    margin-left: auto;
}

.wp-block-embed.is-type-video .wp-block-embed__wrapper,
.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper {
    position: relative;
    width: 100%;
    max-width: 900px;
    height: 0;
    padding-top: 56.25%;
    overflow: hidden;
}

.wp-block-embed.is-type-video .wp-block-embed__wrapper > iframe,
.wp-block-embed.is-type-video .wp-block-embed__wrapper > embed,
.wp-block-embed.is-type-video .wp-block-embed__wrapper > object,
.wp-block-embed.is-type-video .wp-block-embed__wrapper > video,
.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper > iframe,
.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper > embed,
.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper > object,
.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper > video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
}

.wp-block-embed.is-vertical-video {
    max-width: 420px;
}

.wp-block-embed.is-vertical-video .wp-block-embed__wrapper {
    max-width: 420px;
    padding-top: 177.7778%;
}

input,
select,
textarea,
button,
.login-button,
.main-menu a,
.searchbox input[type="submit"],
.searchform input[type="submit"] {
    max-width: 100%;
}

input,
select,
textarea {
    min-width: 0;
}

button,
[type="button"],
[type="reset"],
[type="submit"],
.login-button,
.main-menu a {
    min-height: 44px;
}

.top-bar .container {
    gap: 16px;
}

.searchbox,
.searchform {
    display: flex;
    align-items: stretch;
    gap: 8px;
    max-width: 100%;
}

.searchbox input[type="text"],
.searchform input[type="text"] {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
}

.searchbox input[type="submit"],
.searchform input[type="submit"] {
    flex: 0 0 auto;
    border-radius: 10px;
    cursor: pointer;
}

.main-menu ul.sub-menu {
    min-width: 220px;
    box-shadow: var(--shadow);
}

.main-menu ul.sub-menu li,
.main-menu ul.sub-menu a {
    width: 100%;
}

.main-menu ul.sub-menu a {
    padding: 12px 18px;
    line-height: 1.35;
}

.entry-content table,
.post-content table,
.page-content table {
    display: block;
    width: 100%;
    overflow-x: auto;
    border-collapse: collapse;
}

.entry-content pre,
.post-content pre,
.page-content pre,
.entry-content code,
.post-content code,
.page-content code {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

@media (max-width: 1199px) {
    h1,
    article.post h1,
    .search h1,
    .archive h1 {
        font-size: 48px;
        line-height: 1.12;
    }

    h2,
    article h2,
    article.post h2 {
        font-size: 34px;
        line-height: 1.2;
    }

    h3 {
        font-size: 30px;
        line-height: 1.25;
    }

    .main-menu ul li a {
        padding: 0 18px;
    }
}

@media (max-width: 991px) {
    .container {
        max-width: 100%;
        padding-right: 22px;
        padding-left: 22px;
    }

    #primary>#main,
    .home .home-blog,
    .services {
        padding-top: 36px;
        padding-bottom: 42px;
    }

    .blog main .container,
    .archive main .container,
    .search main .container {
        display: flex;
        flex-direction: column;
        gap: 28px;
    }

    body:not(.home) aside.sidebar {
        width: 100%;
        flex: 1 1 auto;
        order: 2;
        border-radius: 16px;
    }

    .blog .blog-items,
    .archive .archive-items,
    .search .search-items,
    .site-main article {
        width: 100%;
    }

    .archive-description {
        max-width: 760px;
        padding: 0 8px;
    }

    .wp-post-image {
        float: none;
        display: block;
        margin: 0 0 18px;
        width: 100%;
        max-height: 420px;
        object-fit: cover;
        border-radius: 14px;
    }

    .home-blog .container {
        grid-template-areas: none;
        grid-template-columns: 1fr;
    }

    .home-blog .container article:first-child {
        grid-area: auto;
    }
}

@media (max-width: 768px) {
    .top-bar {
        padding: 12px 0;
    }

    .top-bar .container {
        justify-content: center;
        align-items: center;
        flex-direction: column;
        padding-right: 62px;
        padding-left: 18px;
        text-align: center;
    }

    .top-bar .container > * {
        max-width: 100%;
    }

    .header-actions {
        display: flex;
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
        gap: 10px;
    }

    .login-button {
        flex: 0 0 auto;
        padding: 10px 14px;
    }

    .searchbox,
    .searchform {
        width: min(100%, 430px);
    }

    .theme-toggle {
        right: 12px;
        bottom: 72px;
    }

    .main-menu {
        justify-content: flex-start;
        padding: 0 18px;
    }

    .check-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 48px;
        padding: 0;
    }

    .main-menu ul:not(.sub-menu) {
        right: auto;
        top: 0;
        max-height: calc(100vh - 55px);
        overflow-y: auto;
        border-top: 1px solid var(--border);
        box-shadow: var(--shadow);
    }

    .main-menu ul li {
        margin: 0;
        line-height: 1.35;
        border-bottom: 1px solid var(--border);
    }

    .main-menu ul li a {
        padding: 14px 22px;
    }

    .main-menu li.menu-item-has-children::after {
        display: none;
    }

    .main-menu ul.sub-menu {
        margin: 0;
        padding-left: 18px;
        border-top: 1px solid var(--border);
        box-shadow: none;
        background: var(--surface);
    }

    .hero .overlay {
        min-height: 420px;
        padding: 48px 0;
    }

    .hero .hero-items h1,
    h1,
    article.post h1,
    .search h1,
    .archive h1 {
        font-size: 38px;
        line-height: 1.12;
    }

    h2,
    article h2,
    article.post h2 {
        font-size: 30px;
        line-height: 1.18;
    }

    h3 {
        font-size: 26px;
        line-height: 1.22;
    }

    h4 {
        font-size: 22px;
        line-height: 1.3;
    }

    p,
    li {
        font-size: 15px;
        line-height: 1.7;
    }

    article.post h1,
    .search h1,
    .archive h1 {
        text-align: left;
    }

    .archive-description {
        max-width: 100%;
        text-align: left;
    }

    .site-footer .container {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 14px;
        text-align: center;
    }

    .footer-menu ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px 16px;
    }

    .footer-menu ul li {
        margin: 0;
    }
}

@media (max-width: 640px) {
    .container {
        padding-right: 16px;
        padding-left: 16px;
    }

    #primary>#main,
    .home .home-blog,
    .services {
        padding-top: 28px;
        padding-bottom: 34px;
    }

    .top-bar .container {
        padding-right: 58px;
        padding-left: 14px;
    }

    .searchbox,
    .searchform {
        flex-direction: column;
        width: 100%;
    }

    .searchbox input[type="text"],
    .searchbox input[type="submit"],
    .searchform input[type="text"],
    .searchform input[type="submit"],
    .login-button {
        width: 100%;
    }

    .theme-toggle {
        width: 38px;
        height: 38px;
    }

    .hero .overlay {
        min-height: 360px;
        padding: 40px 0;
    }

    .hero .hero-items a,
    .contact-submit,
    .page-template-page-contact .contact-submit {
        width: 100%;
        text-align: center;
    }

    .services-item {
        padding: 0 0 24px;
    }

    .blog article,
    .archive article,
    .search article,
    .single article,
    .page article {
        margin-bottom: 28px;
    }

    body:not(.home) aside.sidebar {
        padding: 18px;
    }

    #back-to-top {
        right: 12px;
        bottom: 12px;
    }

    #lg-estimator .lge-addon,
    #lg-estimator .lcg-addon-row {
        grid-template-columns: 22px 1fr !important;
    }

    #lg-estimator .lge-addon em,
    #lg-estimator .lcg-addon em {
        grid-column: 2;
    }

    #lg-estimator .lge-summary-list div,
    #lg-estimator .lge-result-details div,
    #lg-estimator .lcg-summary-list div,
    #lg-estimator .lcg-result-details div,
    #lg-estimator .lcg-summary p {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 4px !important;
    }
}

@media (max-width: 420px) {
    .container {
        padding-right: 14px;
        padding-left: 14px;
    }

    .top-bar .container {
        padding-right: 54px;
    }

    .hero .hero-items h1,
    h1,
    article.post h1,
    .search h1,
    .archive h1 {
        font-size: 32px;
    }

    h2,
    article h2,
    article.post h2 {
        font-size: 26px;
    }

    .main-menu ul li a {
        padding-right: 18px;
        padding-left: 18px;
    }

    .page-template-page-contact .site-main {
        padding-right: 10px;
        padding-left: 10px;
    }

    .page-template-page-contact .site-main .container,
    .page-template-page-contact .contact-direct,
    .page-template-page-contact .contact-form,
    #lg-estimator .lge-shell,
    #lg-estimator .lge-main,
    #lg-estimator .lge-summary,
    #lg-estimator .lcg-shell,
    #lg-estimator .lcg-card,
    #lg-estimator .lcg-main,
    #lg-estimator .lcg-summary {
        border-radius: 14px !important;
        padding: 14px !important;
    }
}
/* Mobile header cleanup: keep search off the small-screen header and preserve the round theme toggle. */
@media (max-width: 768px) {
    .top-bar .header-actions {
        display: none !important;
    }

    .top-bar .container {
        justify-content: center;
        padding-right: 62px;
    }

    .theme-toggle {
        width: 44px !important;
        min-width: 44px !important;
        max-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
        flex: 0 0 44px !important;
        padding: 0 !important;
        aspect-ratio: 1 / 1;
        border-radius: 50% !important;
    }
}

@media (max-width: 640px) {
    .theme-toggle {
        width: 38px !important;
        min-width: 38px !important;
        max-width: 38px !important;
        height: 38px !important;
        min-height: 38px !important;
        max-height: 38px !important;
        flex-basis: 38px !important;
    }
}
/* Respect editor alignment on the portfolio page. */
.portfolio-page .has-text-align-center,
.portfolio-page-content .has-text-align-center,
.portfolio-page-content h1 {
    text-align: center !important;
}

.portfolio-page .has-text-align-left,
.portfolio-page-content .has-text-align-left {
    text-align: left !important;
}

.portfolio-page .has-text-align-right,
.portfolio-page-content .has-text-align-right {
    text-align: right !important;
}
/* Center the portfolio intro over the portfolio/filter area. */
.portfolio-intro .container {
    display: flex;
    justify-content: center;
}

.portfolio-page .portfolio-page-content {
    width: 100% !important;
    max-width: 1140px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    text-align: center !important;
}

.portfolio-page .portfolio-page-content h1,
.portfolio-page .portfolio-page-content .content,
.portfolio-page .portfolio-page-content .content > *,
.portfolio-page .portfolio-page-content .wp-block-button,
.portfolio-page .portfolio-page-content .wp-block-buttons {
    text-align: center !important;
    justify-content: center !important;
    margin-right: auto;
    margin-left: auto;
}

/* Final responsive video override. Keep WordPress video embeds at a stable 16:9 ratio. */
figure.wp-block-embed.is-type-video,
figure.wp-block-embed.is-provider-youtube,
.content figure.wp-block-embed.is-type-video,
.content figure.wp-block-embed.is-provider-youtube {
    display: block !important;
    width: 100% !important;
    max-width: 900px !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

figure.wp-block-embed.is-type-video .wp-block-embed__wrapper,
figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper,
.content figure.wp-block-embed.is-type-video .wp-block-embed__wrapper,
.content figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

figure.wp-block-embed.is-type-video .wp-block-embed__wrapper::before,
figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper::before {
    display: none !important;
}

figure.wp-block-embed.is-type-video .wp-block-embed__wrapper iframe,
figure.wp-block-embed.is-type-video .wp-block-embed__wrapper embed,
figure.wp-block-embed.is-type-video .wp-block-embed__wrapper object,
figure.wp-block-embed.is-type-video .wp-block-embed__wrapper video,
figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper iframe,
figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper embed,
figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper object,
figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper video {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
}

.content iframe[src*="youtube.com"],
.content iframe[src*="youtube-nocookie.com"],
.content iframe[src*="youtu.be"],
.page-content iframe[src*="youtube.com"],
.page-content iframe[src*="youtube-nocookie.com"],
.page-content iframe[src*="youtu.be"],
.entry-content iframe[src*="youtube.com"],
.entry-content iframe[src*="youtube-nocookie.com"],
.entry-content iframe[src*="youtu.be"] {
    aspect-ratio: 16 / 9 !important;
    display: block !important;
    width: 100% !important;
    max-width: 900px !important;
    height: auto !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

figure.wp-block-embed.is-vertical-video,
.content figure.wp-block-embed.is-vertical-video {
    max-width: 420px !important;
}

figure.wp-block-embed.is-vertical-video .wp-block-embed__wrapper,
.content figure.wp-block-embed.is-vertical-video .wp-block-embed__wrapper {
    aspect-ratio: 9 / 16 !important;
}

.content iframe[src*="/shorts/"],
.page-content iframe[src*="/shorts/"],
.entry-content iframe[src*="/shorts/"] {
    aspect-ratio: 9 / 16 !important;
    max-width: 420px !important;
}

/* Last-word rule: embedded video iframes inside WP wrappers must fill the ratio box. */
body figure.wp-block-embed.is-type-video .wp-block-embed__wrapper > iframe,
body figure.wp-block-embed.is-type-video .wp-block-embed__wrapper > embed,
body figure.wp-block-embed.is-type-video .wp-block-embed__wrapper > object,
body figure.wp-block-embed.is-type-video .wp-block-embed__wrapper > video,
body figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper > iframe,
body figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper > embed,
body figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper > object,
body figure.wp-block-embed.is-provider-youtube .wp-block-embed__wrapper > video {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    aspect-ratio: auto !important;
}

/* Fixed compact video size. Add `lcg-video-small` to a video embed block or wrapper. */
figure.wp-block-embed.lcg-video-small,
.lcg-video-small {
    position: relative !important;
    display: block !important;
    width: 337.92px !important;
    max-width: 100% !important;
    height: 190.08px !important;
    max-height: 190.08px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    overflow: hidden !important;
}

figure.wp-block-embed.lcg-video-small .wp-block-embed__wrapper,
.lcg-video-small .wp-block-embed__wrapper,
.lcg-video-small > div {
    position: relative !important;
    display: block !important;
    width: 337.92px !important;
    max-width: 100% !important;
    height: 190.08px !important;
    max-height: 190.08px !important;
    aspect-ratio: auto !important;
    padding: 0 !important;
    overflow: hidden !important;
}

figure.wp-block-embed.lcg-video-small iframe,
figure.wp-block-embed.lcg-video-small embed,
figure.wp-block-embed.lcg-video-small object,
figure.wp-block-embed.lcg-video-small video,
.lcg-video-small iframe,
.lcg-video-small embed,
.lcg-video-small object,
.lcg-video-small video {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    aspect-ratio: auto !important;
}

/* Editable pricing package pattern */
.lcg-pricing-pattern {
    width: min(100%, 960px);
    margin: 36px auto;
    color: var(--text);
}

.lcg-pricing-pattern__header {
    margin-bottom: 24px;
    text-align: center;
}

.lcg-pricing-pattern__eyebrow {
    margin: 0 0 8px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.lcg-pricing-pattern__intro {
    color: var(--text-muted);
}

.lcg-pricing-pattern__grid {
    align-items: stretch !important;
    gap: 18px !important;
}

.lcg-pricing-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--surface);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.08);
    padding: 22px;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.lcg-pricing-card h3 {
    margin: 0 0 10px;
    font-size: 24px;
    line-height: 1.2;
}

.lcg-pricing-card__price {
    margin: 0 0 16px;
    color: var(--accent);
    font-size: 24px;
    font-weight: 800;
    line-height: 1.1;
}

.lcg-pricing-card__badge {
    display: none;
}

.lcg-pricing-card p {
    margin-top: 0;
}

.lcg-pricing-card ul {
    display: grid;
    gap: 8px;
    margin: 0 0 16px;
    padding-left: 20px;
}

.lcg-pricing-card li::marker {
    color: var(--accent);
}
.lcg-pricing-card:hover,
.lcg-pricing-card:focus-within {
    border-color: var(--accent);
    box-shadow: 0 20px 44px rgba(0, 0, 0, 0.14);
    transform: translateY(-2px);
}

.lcg-pricing-card__cta {
    margin-top: auto;
}

.lcg-pricing-card__cta .wp-block-button__link,
.lcg-pricing-card__cta .wp-block-button__link:visited {
    display: inline-flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--accent);
    color: var(--text-inverse);
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}

.lcg-pricing-card__cta .wp-block-button__link:hover,
.lcg-pricing-card__cta .wp-block-button__link:focus-visible {
    background: var(--accent-hover);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
}

@media (max-width: 900px) {
    .lcg-pricing-pattern__grid {
        flex-wrap: wrap !important;
    }

    .lcg-pricing-card {
        flex-basis: calc(50% - 9px) !important;
    }
}

@media (max-width: 640px) {
    .lcg-pricing-card {
        flex-basis: 100% !important;
        padding: 18px;
    }
}
/* Editable branding pricing table pattern */
.lcg-pricing-table-wrap {
    width: min(100%, 960px);
    margin: 2rem auto;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--surface);
}

.lcg-pricing-table-wrap .lcg-toggle-table {
    display: block;
    margin: 0;
}

.lcg-pricing-table-wrap .lcg-toggle-table .wp-block-button__link,
.lcg-pricing-table-wrap .lcg-toggle-table .wp-block-button__link:visited {
    display: block;
    width: 100%;
    border: 0;
    border-radius: 0;
    background: var(--panel);
    color: var(--text);
    padding: 1rem 1.25rem;
    text-align: left;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
}

.lcg-pricing-table-wrap .lcg-toggle-table .wp-block-button__link::after {
    content: " +";
    float: right;
}

.lcg-pricing-table-wrap .lcg-toggle-table.active .wp-block-button__link::after {
    content: " -";
}

.lcg-table-content {
    display: none;
    max-width: 100%;
    overflow-x: auto;
}

.lcg-table-content.open {
    display: block;
}

.lcg-pricing-table {
    margin: 0;
}

.lcg-pricing-table table {
    width: 100%;
    min-width: 650px;
    border-collapse: collapse;
}

.lcg-pricing-table th,
.lcg-pricing-table td {
    padding: .95rem 1rem;
    border-bottom: 1px solid var(--border);
    text-align: left;
}

.lcg-pricing-table th {
    background: var(--surface);
    color: var(--text);
    cursor: pointer;
    font-weight: 700;
}

.lcg-pricing-table th::after {
    content: " sort";
    font-size: .8rem;
    opacity: .7;
}

.lcg-pricing-table td {
    color: var(--text);
}

.lcg-pricing-table tr:hover td {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
}

.lcg-pricing-table tbody tr:last-child td {
    border-bottom: 0;
}

@media (max-width: 700px) {
    .lcg-pricing-table-wrap {
        border-radius: 12px;
    }

    .lcg-pricing-table-wrap .lcg-toggle-table .wp-block-button__link {
        font-size: .95rem;
    }
}
/* Keep editable pricing patterns centered even when inserted as alignwide blocks. */
.page .lcg-pricing-pattern.alignwide,
.single .lcg-pricing-pattern.alignwide,
.page .lcg-pricing-table-wrap.alignwide,
.single .lcg-pricing-table-wrap.alignwide,
.lcg-pricing-pattern.alignwide,
.lcg-pricing-table-wrap.alignwide {
    margin-right: auto !important;
    margin-left: auto !important;
}

.lcg-pricing-pattern__grid {
    justify-content: center !important;
}
/* Consistent primary navigation alignment and spacing */
@media (min-width: 769px) {
    .main-menu {
        align-items: stretch;
        justify-content: center;
        padding: 0;
    }

    .main-menu .primary-menu-container {
        display: flex;
        justify-content: center;
        width: 100%;
    }

    .main-menu .primary-menu {
        display: flex;
        align-items: stretch;
        justify-content: center;
        width: min(100%, 920px);
        gap: 0;
    }

    .main-menu .primary-menu > li {
        display: flex;
        flex: 1 1 0;
        align-items: stretch;
        margin: 0;
        line-height: 1.25;
    }

    .main-menu .primary-menu > li > a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        padding: 0 12px;
        text-align: center;
        white-space: nowrap;
    }

    .main-menu .primary-menu > li > .sub-menu {
        top: 100%;
        right: auto;
        bottom: auto;
        left: 50%;
        min-width: 220px;
        margin: 0;
        padding: 0;
        transform: translateX(-50%);
    }

    .main-menu .primary-menu > li > .sub-menu > li {
        display: block;
        width: 100%;
        margin: 0;
        line-height: 1.35;
    }

    .main-menu .primary-menu > li > .sub-menu > li > a {
        display: flex;
        align-items: center;
        min-height: 48px;
        width: 100%;
        padding: 10px 18px;
        box-sizing: border-box;
        text-align: left;
        white-space: nowrap;
    }
}

@media (max-width: 768px) {
    .main-menu {
        align-items: center;
        justify-content: center;
        height: 55px;
        padding: 0;
    }

    .check-button {
        position: absolute;
        top: 0;
        left: 50%;
        z-index: 52;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 55px;
        min-width: 55px;
        height: 55px;
        margin: 0;
        padding: 0;
        transform: translateX(-50%);
    }

    .check-button .menu-icon,
    .check-button .menu-icon span {
        display: block;
    }

    .main-menu .primary-menu-container {
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        width: 100%;
    }

    .main-menu .primary-menu {
        position: absolute;
        top: 55px;
        right: auto;
        left: -999px;
        width: 100%;
        margin-top: 0;
        padding: 0;
        text-align: center;
    }

    .main-menu .primary-menu.show-dropdown {
        left: 0;
    }

    .main-menu .primary-menu > li {
        display: block;
        width: 100%;
        margin: 0;
        line-height: 1.35;
    }

    .main-menu .primary-menu > li > a {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 52px;
        min-height: 52px;
        width: 100%;
        padding: 0 20px;
        box-sizing: border-box;
        text-align: center;
    }

    .main-menu .primary-menu .sub-menu {
        display: none !important;
    }
}

/* Mobile header and floating control alignment */
@media (max-width: 768px) {
    .top-bar .container {
        position: relative;
        display: flex;
        justify-content: center;
        width: 100%;
        max-width: none;
        padding-right: 16px;
        padding-left: 16px;
        text-align: center;
    }

    .top-bar .logo,
    .top-bar .custom-logo-link {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        margin-right: auto;
        margin-left: auto;
    }

    .top-bar .custom-logo {
        display: block;
        margin-right: auto;
        margin-left: auto;
    }

    .top-bar .lcg-has-dark-logo .lcg-logo-dark {
        display: none;
    }

    :root[data-theme="dark"] .top-bar .lcg-has-dark-logo .lcg-logo-light,
    body.dark-mode .top-bar .lcg-has-dark-logo .lcg-logo-light {
        display: none;
    }

    :root[data-theme="dark"] .top-bar .lcg-has-dark-logo .lcg-logo-dark,
    body.dark-mode .top-bar .lcg-has-dark-logo .lcg-logo-dark {
        display: block;
    }

    .theme-toggle,
    #back-to-top {
        right: 16px !important;
        width: 44px !important;
        min-width: 44px !important;
        max-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
        padding: 0 !important;
        border-radius: 50% !important;
        aspect-ratio: 1 / 1;
    }

    #back-to-top {
        bottom: 16px !important;
    }

    .theme-toggle {
        bottom: 72px !important;
    }
}
