/*
Theme Name: GT Framework
Theme URI: https://lrcnet.com/
Author: Greg Trumpfheller
Author URI: https://lrcnet.com/
Description: A modern WordPress framework for rapidly building responsive websites with unified theme settings, configurable headers and footers, Gutenberg support, development safeguards, and integrated cache tools.
Version: 7.6.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: gt-starter
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: full-width-template, custom-logo, custom-menu, featured-images, block-styles, wide-blocks, accessibility-ready
*/

:root {
    --gt-navy: #172b3a;
    --gt-copper: #b66a3c;
    --gt-ivory: #f7f4ee;
    --gt-blue-gray: #e8eef1;
    --gt-text: #29343b;
    --gt-white: #ffffff;
    --gt-content-width: 1280px;
    --gt-wide-width: 1440px;
    --gt-page-padding: clamp(20px, 4vw, 64px);
    --gt-frame-size: clamp(6px, 1vw, 18px);
    --gt-frame-color: var(--gt-blue-gray);
    --gt-radius: 16px;
    --gt-shadow: 0 14px 40px rgba(23,43,58,.10);
    --gt-header-height: 94px;
    --gt-header-padding-x: 48px;
    --gt-logo-max-width: 220px;
    --gt-menu-font-size: 22px;
    --gt-menu-gap: 52px;
    --gt-footer-bg: var(--gt-navy);
    --gt-footer-color: var(--gt-white);
    --gt-body-size: 18px;
}
html { box-sizing: border-box; scroll-behavior: smooth; background: var(--gt-frame-color); }
*,*::before,*::after { box-sizing: inherit; }
body { margin: var(--gt-frame-size); min-height: calc(100svh - (var(--gt-frame-size)*2)); overflow-x: clip; background: var(--gt-white); color: var(--gt-text); font-size:var(--gt-body-size); font-family: Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; line-height: 1.65; border-radius: var(--gt-radius); box-shadow: var(--gt-shadow); }
a { color: var(--gt-copper); } a:hover { color: var(--gt-navy); } img { max-width:100%; height:auto; }
.gt-site-shell { min-height:100%; overflow:clip; border-radius:inherit; }
.gt-topbar { background:var(--gt-navy); color:var(--gt-white); font-size:.9rem; }
.gt-topbar__inner { width:100%; padding:8px var(--gt-page-padding); text-align:center; }
.gt-site-header { position:relative; z-index:100; width:100%; background:var(--gt-white); border-bottom:1px solid rgba(23,43,58,.08); transition:box-shadow .2s ease; }
.gt-site-header.is-sticky { position:sticky; top:0; }
.admin-bar .gt-site-header.is-sticky { top:32px; }
.gt-site-header.is-scrolled { box-shadow:0 10px 28px rgba(23,43,58,.10); }
.gt-header-inner { width:100%; min-height:var(--gt-header-height); padding:14px var(--gt-header-padding-x); display:grid; grid-template-columns:minmax(150px,auto) 1fr auto; align-items:center; gap:clamp(20px,3vw,48px); }
.gt-brand { display:flex; align-items:center; min-width:0; }
.gt-brand a { display:flex; align-items:center; text-decoration:none; }
.gt-brand img { display:block; width:auto; max-width:var(--gt-logo-max-width); max-height:72px; }
.gt-site-title { color:var(--gt-navy); font-size:1.5rem; font-weight:800; }
.gt-nav { justify-self:center; min-width:0; }
.gt-menu { display:flex; align-items:center; justify-content:center; gap:var(--gt-menu-gap); list-style:none; padding:0; margin:0; }
.gt-menu a { color:var(--gt-navy); font-size:var(--gt-menu-font-size); font-weight:700; line-height:1.2; letter-spacing:.02em; text-decoration:none; white-space:nowrap; }
.gt-menu a:hover,.gt-menu .current-menu-item>a,.gt-menu .current-menu-ancestor>a { color:var(--gt-copper); }
.gt-menu li { position:relative; }
.gt-menu .sub-menu { position:absolute; left:0; top:calc(100% + 14px); min-width:220px; list-style:none; padding:10px; margin:0; background:var(--gt-white); border-radius:12px; box-shadow:var(--gt-shadow); opacity:0; visibility:hidden; transform:translateY(-6px); transition:.18s ease; }
.gt-menu li:hover>.sub-menu,.gt-menu li:focus-within>.sub-menu { opacity:1; visibility:visible; transform:translateY(0); }
.gt-menu .sub-menu a { display:block; padding:10px 12px; font-size:16px; }
.gt-header-actions { display:flex; align-items:center; }
/* Mobile CTA is hidden on desktop; the header-actions CTA is the desktop button. */
.gt-mobile-contact { display:none; }
.gt-contact-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 26px; border-radius:999px; background:var(--gt-copper); color:var(--gt-white); font-size:17px; font-weight:750; text-decoration:none; white-space:nowrap; box-shadow:0 8px 20px rgba(182,106,60,.22); }
.gt-contact-button:hover { background:var(--gt-navy); color:var(--gt-white); transform:translateY(-1px); }
.gt-menu-toggle { display:none; border:0; background:transparent; color:var(--gt-navy); padding:10px; cursor:pointer; }
.gt-menu-toggle>span:not(.screen-reader-text) { display:block; width:26px; height:2px; margin:5px 0; background:currentColor; }
.gt-main { width:100%; }
.gt-content { width:calc(100% - (var(--gt-page-padding)*2)); max-width:none; margin-inline:auto; padding-block:clamp(40px,6vw,84px); }
.gt-content--wide { width:min(calc(100% - (var(--gt-page-padding)*2)),var(--gt-wide-width)); }
.gt-content--full { width:100%; padding-block:0; }
.entry-header { margin-bottom:32px; }
.entry-title { margin:0; color:var(--gt-navy); font-size:clamp(2.2rem,5vw,4.5rem); line-height:1.05; text-wrap:balance; }
.entry-content>* { max-width:100%; margin-left:0; margin-right:0; }
.entry-content>.gt-reading-width { width:min(100%,780px); margin-left:auto; margin-right:auto; }
.entry-content>.alignwide { max-width:var(--gt-wide-width); }
.entry-content>.alignfull { max-width:none; width:calc(100vw - (var(--gt-frame-size)*2)); margin-left:calc(50% - 50vw + var(--gt-frame-size)); margin-right:calc(50% - 50vw + var(--gt-frame-size)); }
.gt-site-footer { background:var(--gt-footer-bg); color:var(--gt-footer-color); }
.gt-site-footer a { color:color-mix(in srgb,var(--gt-footer-color) 86%,transparent); }
.gt-site-footer a:hover,.gt-site-footer a:focus-visible { color:var(--gt-footer-color); }
.gt-footer-inner { width:min(calc(100% - (var(--gt-page-padding)*2)),var(--gt-wide-width)); margin-inline:auto; padding:58px 0 28px; }

.gt-footer-builder {
    display:flex;
    flex-wrap:wrap;
    gap:clamp(32px,4vw,64px);
    align-items:flex-start;
}

.gt-footer-block {
    order:var(--gt-footer-block-order,1);
    flex:1 1 240px;
    min-width:min(100%,240px);
}

.gt-footer-block--company,
.gt-footer-block--contact,
.gt-footer-block--social {
    flex:1 1 260px;
}

.gt-footer-block--navigation {
    flex:1 1 320px;
}

.gt-footer-block--navigation.gt-footer-navigation-count-2 {
    flex-basis:460px;
}

.gt-footer-block--navigation.gt-footer-navigation-count-3 {
    flex-basis:620px;
}

.gt-footer-block--copyright {
    flex:1 0 100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    margin-top:8px;
    padding-top:24px;
    border-top:1px solid color-mix(in srgb,var(--gt-footer-color) 18%,transparent);
    font-size:.9rem;
    opacity:.84;
}
.gt-footer-logo { display:block; width:auto; max-width:min(var(--gt-logo-max-width),240px); max-height:86px; object-fit:contain; }
.gt-footer-company-name { margin:0; font-size:clamp(1.65rem,2.4vw,2.4rem); font-weight:800; }
.gt-footer-description { max-width:560px; margin:20px 0 0; font-size:clamp(1rem,1.15vw,1.14rem); line-height:1.7; opacity:.86; }
.gt-footer-navigation-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); gap:clamp(24px,3vw,46px); }
.gt-footer-title { margin:0 0 17px; color:var(--gt-footer-color); font-size:1.25rem; }
.gt-footer-menu,.gt-footer-legal-menu { list-style:none; padding:0; margin:0; }
.gt-footer-menu li+li { margin-top:9px; }
.gt-footer-menu a { display:inline-block; text-decoration:none; line-height:1.45; }
.gt-footer-contact,.gt-footer-social { display:flex; flex-direction:column; align-items:flex-start; gap:9px; }
.gt-footer-contact address { font-style:normal; margin-top:4px; line-height:1.55; }
.gt-footer-cta { display:inline-flex; margin-top:11px; padding:10px 17px; border:1px solid currentColor; border-radius:999px; text-decoration:none; }
.gt-footer-legal-menu { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 18px; }
.gt-footer-legal-menu a { text-decoration:none; }

.gt-dev-banner {
    position: relative;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px 18px;
    width: 100%;
    padding: 12px var(--gt-page-padding);
    border-bottom: 3px solid #7f1d1d;
    background: #b91c1c;
    color: #ffffff;
    font-size: clamp(14px, 1.1vw, 17px);
    line-height: 1.35;
    text-align: center;
    box-shadow: 0 8px 22px rgba(127, 29, 29, .24);
}
.gt-dev-banner--bottom {
    border-top: 3px solid #7f1d1d;
    border-bottom: 0;
}
.gt-dev-banner strong {
    flex: 0 0 auto;
    padding: 4px 9px;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 999px;
    font-size: .82em;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}
.gt-dev-watermark {
    position: fixed;
    z-index: 8;
    top: 50%;
    left: 50%;
    width: 120vw;
    pointer-events: none;
    user-select: none;
    transform: translate(-50%, -50%) rotate(-18deg);
    color: rgba(127, 29, 29, .055);
    font-size: clamp(48px, 10vw, 150px);
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
}
.gt-dev-badge {
    position: fixed;
    z-index: 9999;
    right: max(12px, calc(var(--gt-frame-size) + 8px));
    bottom: max(12px, calc(var(--gt-frame-size) + 8px));
    padding: 9px 14px;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: #b91c1c;
    color: #ffffff;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .1em;
    line-height: 1;
    text-transform: uppercase;
    box-shadow: 0 8px 24px rgba(127, 29, 29, .30);
    pointer-events: none;
}
@media (max-width: 700px) {
    .gt-dev-banner {
        flex-direction: column;
        gap: 6px;
        padding-block: 10px;
    }
    .gt-dev-watermark {
        font-size: clamp(38px, 13vw, 80px);
    }
}
@media print {
    .gt-dev-banner,
    .gt-dev-badge {
        display: flex !important;
    }
    .gt-dev-watermark {
        color: rgba(127, 29, 29, .10);
    }
}

@media(max-width:980px){
    .gt-header-inner {
        display:flex;
        justify-content:space-between;
        gap:18px;
    }
    .gt-menu-toggle { display:block; }
    .gt-header-actions { display:none; }
    .gt-nav {
        position:absolute;
        top:100%;
        left:0;
        right:0;
        display:none;
        padding:18px var(--gt-header-padding-x) 24px;
        background:var(--gt-white);
        border-top:1px solid rgba(23,43,58,.08);
        box-shadow:0 14px 30px rgba(23,43,58,.12);
    }
    .gt-nav.is-open { display:block; }
    .gt-menu {
        flex-direction:column;
        align-items:stretch;
        gap:0;
    }
    .gt-menu > li > a {
        display:block;
        padding:12px 0;
    }
    .gt-mobile-contact {
        display:block;
        margin-top:14px;
    }
    .gt-mobile-contact .gt-contact-button {
        width:100%;
    }
}

@media(max-width:980px){
    .gt-footer-block,
    .gt-footer-block--company,
    .gt-footer-block--navigation,
    .gt-footer-block--contact,
    .gt-footer-block--social {
        flex-basis:calc(50% - 24px);
    }
}
@media(max-width:700px){
    .gt-footer-builder {
        display:flex;
        flex-direction:column;
    }

    .gt-footer-block,
    .gt-footer-block--company,
    .gt-footer-block--navigation,
    .gt-footer-block--contact,
    .gt-footer-block--social,
    .gt-footer-block--copyright {
        width:100%;
        min-width:0;
        flex-basis:auto;
    }

    .gt-footer-navigation-grid{grid-template-columns:1fr}
    .gt-footer-block--copyright{align-items:flex-start;flex-direction:column}
    .gt-footer-legal-menu{justify-content:flex-start}
}


/* GT Framework 7.4 plugin registry */
.gt-framework-health-summary{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 12px;
    font-size:12px;
    color:#50575e
}
.gt-framework-health-summary span{
    padding:5px 8px;
    border:1px solid #dcdcde;
    border-radius:999px;
    background:#f6f7f7
}
.gt-plugin-item--registered{align-items:flex-start}
.gt-plugin-item__copy{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0
}
.gt-plugin-health{
    padding-left:20px;
    color:#646970;
    font-size:12px;
    line-height:1.4
}
.gt-plugin-item__meta{
    display:flex;
    align-items:center;
    gap:8px;
    flex:0 0 auto
}
.gt-plugin-item__link{
    font-size:12px;
    text-decoration:none
}
.gt-status-dot.is-warning{background:#dba617}
.gt-status-dot.is-error{background:#d63638}
.gt-component-details{
    display:grid;
    gap:6px;
    margin:14px 0
}
.gt-component-details div{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding-bottom:6px;
    border-bottom:1px solid #edf0f2
}
.gt-component-details dt{
    color:#646970
}
.gt-component-details dd{
    margin:0;
    font-weight:600;
    text-align:right
}
.gt-component-pill.is-healthy{background:#edfaef;color:#116329}
.gt-component-pill.is-warning,
.gt-component-pill.is-configuration{background:#fff8e5;color:#775b00}
.gt-component-pill.is-error{background:#fcf0f1;color:#8a2424}


/* GT Framework 7.5 Cache Manager */
.gt-cache-manager{max-width:980px}
.gt-cache-provider-list{display:grid;gap:12px;margin:18px 0}
.gt-cache-provider{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:16px;
    padding:18px;
    border:1px solid #dcdcde;
    border-radius:10px;
    background:#fff
}
.gt-cache-provider__select{padding-top:5px}
.gt-cache-provider__heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px
}
.gt-cache-provider__heading h3{margin:0}
.gt-cache-provider__copy>p{margin:7px 0 12px;color:#646970}
.gt-cache-provider__details{
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    margin:0
}
.gt-cache-provider__details div{display:flex;gap:6px}
.gt-cache-provider__details dt{color:#646970}
.gt-cache-provider__details dd{margin:0;font-weight:600}
.gt-cache-manager__actions{display:flex;flex-wrap:wrap;gap:10px}
.gt-component-pill.is-inactive{background:#f0f0f1;color:#50575e}
@media(max-width:600px){
    .gt-cache-provider__heading{align-items:flex-start;flex-direction:column}
}


/* GT Framework 7.6 Scheduler */
.gt-scheduler{max-width:1040px}
.gt-scheduler-list{display:grid;gap:14px;margin:18px 0}
.gt-scheduler-job{
    padding:18px;
    border:1px solid #dcdcde;
    border-radius:10px;
    background:#fff
}
.gt-scheduler-job__heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px
}
.gt-scheduler-job__heading h3{margin:0}
.gt-scheduler-job__heading p{margin:6px 0 0;color:#646970}
.gt-scheduler-job__details{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:10px 18px;
    margin:16px 0
}
.gt-scheduler-job__details div{
    padding:10px;
    border-radius:8px;
    background:#f6f7f7
}
.gt-scheduler-job__details dt{
    margin-bottom:4px;
    color:#646970;
    font-size:12px
}
.gt-scheduler-job__details dd{margin:0;font-weight:600}
.gt-activity-table td:first-child{white-space:nowrap}
