/*
Theme Name: GMass Blog 2026
Theme URI: https://www.gmass.co/blog/
Author: GMass, Inc.
Description: Custom WordPress theme matching the 2026 GMass website redesign.
Version: 1.0.2
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: gmass-blog-2026
*/
:root {
            --ink: #172A35;
            --ink-2: #334A55;
            --blue: #176B68;
            --blue-2: #3E8985;
            --purple: #176B68;
            --purple-2: #78AAA6;
            --lav: #EEF5F2;
            --sky: #FAF8F3;
            --line: #D9D5CC;
            --muted: #66737A;
            --card: #FFFEFC;
            --shadow: 0 12px 40px rgba(23,42,53,.08);
            --max: 1180px;
            --gmass-red: #A71919;
            --teal: #176B68;
            --teal-dark: #115552;
            --ivory: #FAF8F3;
            --stone: #F1EEE7;
            --gold: #C28B35;
            --mocha: #6F625C;
            --mocha-soft: #F3F0ED;
            --mocha-line: #DED6D1;
        }

        * {
            box-sizing: border-box
        }

        html {
            scroll-behavior: smooth;
            background: var(--ivory)
        }

        body {
            margin: 0;
            background: var(--ivory);
            color: var(--ink);
            font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
            line-height: 1.45
        }

        a {
            color: inherit;
            text-decoration: none
        }

        button, input, textarea, select {
            font: inherit
        }

        .wrap {
            width: min(var(--max),calc(100% - 40px));
            margin: 0 auto
        }

        .cta {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 44px;
            padding: 0 22px;
            border-radius: 8px;
            border: 0;
            color: #fff;
            background: #232323;
            font-family: Arial,Helvetica,sans-serif;
            font-weight: 700;
            box-shadow: 0 8px 20px rgba(35,35,35,.18)
        }

            .cta:link, .cta:visited, .cta:hover, .cta:focus, .cta:active {
                color: #fff;
                text-decoration: none
            }

        .site-nav, .site-footer {
            font-family: inherit;
            box-sizing: border-box
        }

            .site-nav *, .site-footer * {
                box-sizing: border-box
            }

            .site-nav a, .site-footer a {
                color: inherit;
                text-decoration: none
            }

        .site-nav {
            position: sticky;
            top: 0;
            z-index: 100;
            background: rgba(250,248,243,.94);
            backdrop-filter: blur(16px);
            border-bottom: 1px solid var(--line)
        }

        /* New site-wide news bar, preserving the original GMass interaction model. */
        .gmass-news-bar {
            position: relative;
            z-index: 110;
            width: 100%;
            margin: 0;
            padding: 0;
            overflow: hidden;
            overflow-anchor: none;
            background: #1D1F26;
            color: #fff;
            border: 0;
            box-shadow: none
        }

            .gmass-news-bar.is-animating {
                transition: height .46s cubic-bezier(.22,.78,.2,1),opacity .34s ease
            }

            .gmass-news-bar.is-closing {
                opacity: 0
            }

        .gmass-news-bar__main {
            position: relative;
            min-height: 50px;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0 64px
        }

        .gmass-news-bar__messages {
            width: 100%;
            text-align: center;
            font-size: 14px;
            line-height: 1.3;
            font-weight: 750
        }

        .gmass-news-bar__message {
            display: none
        }

            .gmass-news-bar__message.is-active {
                display: block;
                animation: gmassNewsIn .22s ease-out
            }

        .gmass-news-bar__messages a {
            color: #fff;
            text-decoration: none;
            border-bottom: 1px solid rgba(255,255,255,.35)
        }

            .gmass-news-bar__messages a:hover {
                border-bottom-color: #fff
            }

        .gmass-news-bar__close {
            position: absolute;
            right: 14px;
            top: 50%;
            transform: translateY(-50%);
            width: 34px;
            height: 34px;
            display: grid;
            place-items: center;
            padding: 0;
            border: 0;
            border-radius: 8px;
            background: transparent;
            color: #fff;
            font-size: 28px;
            line-height: 1;
            font-weight: 400;
            cursor: pointer;
            opacity: .95
        }

            .gmass-news-bar__close:hover {
                background: rgba(255,255,255,.10)
            }

            .gmass-news-bar__close:focus-visible, .gmass-news-bar__reopen:focus-visible {
                outline: 2px solid #9FE0DA;
                outline-offset: -3px
            }

        .gmass-news-bar__reopen {
            width: 100%;
            min-height: 28px;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 0 12px;
            border: 0;
            background: #1D1F26;
            color: #DCE8E5;
            font-size: 11px;
            line-height: 1;
            font-weight: 800;
            letter-spacing: .02em;
            cursor: pointer
        }

            .gmass-news-bar__reopen:hover {
                color: #fff;
                background: #242730
            }

        .gmass-news-bar.is-collapsed .gmass-news-bar__main {
            display: none
        }

        .gmass-news-bar.is-collapsed .gmass-news-bar__reopen {
            display: flex
        }

        .gmass-news-bar.is-closing .gmass-news-bar__reopen {
            display: none !important
        }

        @keyframes gmassNewsIn {
            from {
                opacity: 0;
                transform: translateY(-2px)
            }

            to {
                opacity: 1;
                transform: translateY(0)
            }
        }

        @media(max-width:640px) {
            .gmass-news-bar__main {
                min-height: 46px;
                padding: 7px 48px 7px 14px
            }

            .gmass-news-bar__messages {
                font-size: 12.5px
            }

            .gmass-news-bar__close {
                right: 7px
            }
        }

        @media(prefers-reduced-motion:reduce) {
            .gmass-news-bar.is-animating {
                transition: none
            }

            .gmass-news-bar__message.is-active {
                animation: none
            }
        }

        .site-nav .wrap {
            width: min(1180px,calc(100% - 40px));
            margin: 0 auto
        }

        .nav-inner {
            height: 76px;
            display: flex;
            align-items: center;
            gap: 22px;
            position: relative
        }

        .real-logo {
            display: flex;
            align-items: center;
            margin-right: auto;
            line-height: 1
        }

            .real-logo img {
                display: block;
                width: auto;
                height: 38px;
                max-width: 180px
            }

        .nav-links {
            display: flex;
            align-items: center;
            gap: 4px;
            font-size: 15.5px;
            font-weight: 750
        }

        .nav-item {
            position: static
        }

        @media(min-width:981px) {
            .nav-links {
                align-self: stretch;
                height: 100%
            }

            .nav-item {
                align-self: stretch;
                display: flex;
                align-items: center
            }
        }

        .nav-link {
            display: flex;
            align-items: center;
            gap: 5px;
            padding: 12px 10px;
            border-radius: 8px;
            color: var(--ink);
            transition: background .15s ease,color .15s ease
        }

            .nav-link:hover, .nav-item.open > .nav-link {
                background: #F1EEE8;
                color: var(--teal-dark)
            }

            .nav-link.drop::after {
                content: "";
                width: 6px;
                height: 6px;
                border-right: 1.7px solid currentColor;
                border-bottom: 1.7px solid currentColor;
                transform: rotate(45deg) translateY(-2px);
                margin-left: 2px;
                opacity: .7;
                transition: transform .15s ease;
                color: var(--teal)
            }

        .nav-item:hover > .drop::after, .nav-item.open > .drop::after {
            transform: rotate(225deg) translate(-1px,-1px)
        }

        .nav-login {
            font-size: 15.5px;
            font-weight: 800;
            padding: 9px 12px;
            border-radius: 8px;
            background: #F0ECE7;
            color: var(--ink);
            white-space: nowrap
        }

            .nav-login:hover {
                background: #E7E1DB
            }

        .site-nav .cta {
            position: relative;
            overflow: hidden;
            isolation: isolate;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 44px;
            padding: 0 22px;
            border-radius: 8px;
            border: 0;
            color: #fff;
            background: #232323;
            font-family: Arial,Helvetica,sans-serif;
            font-weight: 700;
            box-shadow: 0 8px 20px rgba(35,35,35,.18);
            transition: transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,background-color .22s ease,border-color .22s ease
        }

            .site-nav .cta::after {
                content: "";
                position: absolute;
                z-index: 1;
                top: -45%;
                bottom: -45%;
                left: -48%;
                width: 34%;
                pointer-events: none;
                transform: skewX(-20deg);
                background: linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.08) 25%,rgba(255,255,255,.52) 50%,rgba(255,255,255,.08) 75%,rgba(255,255,255,0));
                opacity: 0
            }

            .site-nav .cta:hover {
                transform: translateY(-3px) scale(1.018);
                background: #111;
                box-shadow: 0 16px 34px rgba(23,42,53,.24),0 6px 18px rgba(15,138,133,.18),0 0 0 1px rgba(15,138,133,.20)
            }

                .site-nav .cta:hover::after {
                    opacity: 1;
                    animation: siteCtaSheen .72s cubic-bezier(.2,.7,.2,1) 1
                }

        @keyframes siteCtaSheen {
            0% {
                left: -48%;
                opacity: 0
            }

            12% {
                opacity: 1
            }

            100% {
                left: 122%;
                opacity: 0
            }
        }

        .mega-menu {
            position: absolute;
            left: 0;
            right: 0;
            top: calc(100% - 1px);
            background: rgba(255,254,252,.985);
            border: 1px solid var(--mocha-line);
            border-radius: 0 0 18px 18px;
            box-shadow: 0 22px 55px rgba(23,42,53,.14);
            padding: 20px;
            opacity: 0;
            visibility: hidden;
            transform: translateY(7px);
            transition: opacity .16s ease,transform .16s ease,visibility .16s;
            pointer-events: none
        }

        .nav-item:hover > .mega-menu, .nav-item.open > .mega-menu {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
            pointer-events: auto
        }

        .mega-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 20px;
            padding: 0 6px 15px;
            margin-bottom: 8px;
            border-bottom: 1px solid #ECE6E0
        }

            .mega-head strong {
                font-size: 14px;
                color: var(--mocha);
                letter-spacing: .01em
            }

            .mega-head a {
                font-size: 12px;
                font-weight: 850;
                color: var(--teal)
            }

        .mega-grid {
            display: grid;
            gap: 5px
        }

            .mega-grid.mega-features {
                grid-template-columns: repeat(4,minmax(0,1fr))
            }

            .mega-grid.mega-products, .mega-grid.mega-uses {
                grid-template-columns: repeat(3,minmax(0,1fr))
            }

        .mega-item {
            display: flex;
            gap: 11px;
            align-items: flex-start;
            padding: 10px;
            border-radius: 10px;
            min-width: 0;
            transition: background .13s ease,transform .13s ease
        }

            .mega-item:hover {
                background: #F6F2ED;
                transform: translateY(-1px)
            }

        .mega-icon {
            width: 32px;
            height: 32px;
            border-radius: 9px;
            display: grid;
            place-items: center;
            flex: 0 0 auto;
            background: #EDF5F3;
            border: 1px solid #CFE0DC;
            color: var(--teal);
            font-size: 14px;
            font-weight: 900;
            transition: background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease
        }

            .mega-icon svg {
                width: 18px;
                height: 18px;
                display: block;
                fill: none;
                stroke: currentColor;
                stroke-width: 1.8;
                stroke-linecap: round;
                stroke-linejoin: round;
                vector-effect: non-scaling-stroke
            }

        .mega-item:hover .mega-icon {
            background: var(--teal);
            border-color: var(--teal);
            color: #fff;
            transform: translateY(-1px)
        }

        .mega-copy {
            min-width: 0
        }

            .mega-copy b {
                display: block;
                font-size: 13px;
                line-height: 1.25;
                color: var(--ink);
                margin: 0 0 3px
            }

            .mega-copy span {
                display: block;
                font-size: 11.5px;
                line-height: 1.35;
                color: var(--muted)
            }

        .mega-item.featured {
            background: #F7F0EC;
            border: 1px solid #E8D9D0
        }

            .mega-item.featured .mega-icon, .mega-item.featured:hover .mega-icon {
                background: var(--gmass-red);
                border-color: var(--gmass-red);
                color: #fff
            }

        .nav-mobile-toggle {
            display: none;
            border: 0;
            background: transparent;
            width: 42px;
            height: 42px;
            border-radius: 8px;
            align-items: center;
            justify-content: center;
            color: var(--ink);
            font-size: 24px;
            cursor: pointer
        }

        .dashboard-email {
            align-self: center;
            max-width: 230px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            color: var(--muted);
            font-size: 13px
        }

        @media(max-width:1100px) {
            .nav-inner {
                gap: 12px
            }

            .nav-links {
                gap: 0
            }

            .nav-link {
                padding-left: 7px;
                padding-right: 7px
            }

            .nav-login {
                padding-left: 9px;
                padding-right: 9px
            }

            .site-nav .cta {
                padding: 0 15px
            }
        }

        @media(max-width:980px) {
            .nav-inner {
                height: 70px
            }

            .nav-mobile-toggle {
                display: inline-flex
            }

            .nav-links {
                position: absolute;
                left: 0;
                right: 0;
                top: 70px;
                display: none;
                flex-direction: column;
                align-items: stretch;
                gap: 0;
                padding: 10px;
                background: var(--card);
                border: 1px solid var(--line);
                border-top: 0;
                border-radius: 0 0 16px 16px;
                box-shadow: 0 18px 34px rgba(23,42,53,.12);
                max-height: calc(100vh - 84px);
                overflow: auto
            }

                .nav-links.mobile-open {
                    display: flex
                }

            .nav-item {
                position: relative
            }

            .nav-link {
                justify-content: space-between;
                padding: 12px 11px
            }

            .mega-menu {
                position: static;
                display: none;
                opacity: 1;
                visibility: visible;
                transform: none;
                pointer-events: auto;
                border: 0;
                box-shadow: none;
                border-radius: 10px;
                padding: 8px;
                background: #F7F4EF;
                margin: 0 0 7px
            }

            .nav-item:hover > .mega-menu {
                display: none
            }

            .nav-item.open > .mega-menu {
                display: block
            }

            .mega-head {
                padding: 4px 5px 10px
            }

            .mega-grid.mega-features, .mega-grid.mega-products, .mega-grid.mega-uses {
                grid-template-columns: 1fr 1fr
            }

            .nav-login {
                margin-left: auto
            }

            .dashboard-email {
                display: none
            }
        }

        @media(max-width:640px) {
            .site-nav .wrap {
                width: min(1180px,calc(100% - 24px))
            }

            .real-logo img {
                height: 32px;
                max-width: 150px
            }

            .nav-login {
                display: none
            }

            .site-nav .cta {
                display: none
            }

            .mega-grid.mega-features, .mega-grid.mega-products, .mega-grid.mega-uses {
                grid-template-columns: 1fr
            }

            .mega-copy span {
                font-size: 12px
            }
        }

        @media(prefers-reduced-motion:reduce) {
            .site-nav .cta:hover {
                transform: none
            }

                .site-nav .cta:hover::after {
                    animation: none;
                    opacity: 0
                }
        }

        /* Shared install band for redesigned interior pages. */
        .site-install-band {
            padding: 76px 0;
            border-top: 1px solid var(--line);
            background: var(--stone)
        }

        .site-install-card {
            display: grid;
            grid-template-columns: minmax(0,1fr) auto;
            gap: 42px;
            align-items: center;
            padding: 44px 48px;
            border-radius: 26px;
            background: #172A35;
            color: #fff;
            box-shadow: 0 18px 46px rgba(23,42,53,.14)
        }

        .site-install-copy h2 {
            margin: 0 0 10px;
            color: #fff;
            font-size: clamp(30px,3.2vw,46px);
            line-height: 1.03;
            letter-spacing: -.035em
        }

        .site-install-copy p {
            max-width: 720px;
            margin: 0;
            color: #DCE8E5;
            font-size: 17px;
            line-height: 1.55
        }

        .site-install-actions {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 11px;
            min-width: 260px;
            text-align: center
        }

        .site-install-band .cta {
            position: relative;
            overflow: hidden;
            isolation: isolate;
            min-width: 260px;
            min-height: 64px;
            padding: 0 30px;
            border-radius: 12px;
            background: #fff;
            color: #172A35 !important;
            font-size: 19px;
            font-weight: 850;
            box-shadow: 0 12px 28px rgba(0,0,0,.18);
            transition: transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,background-color .22s ease
        }

            .site-install-band .cta::after {
                content: "";
                position: absolute;
                z-index: 1;
                top: -50%;
                bottom: -50%;
                left: -50%;
                width: 34%;
                pointer-events: none;
                transform: skewX(-20deg);
                background: linear-gradient(90deg,rgba(255,255,255,0),rgba(23,107,104,.05) 25%,rgba(23,107,104,.22) 50%,rgba(23,107,104,.05) 75%,rgba(255,255,255,0));
                opacity: 0
            }

            .site-install-band .cta:hover {
                transform: translateY(-3px) scale(1.015);
                background: #F8FBFA;
                box-shadow: 0 18px 36px rgba(0,0,0,.22),0 0 0 1px rgba(112,207,199,.28)
            }

                .site-install-band .cta:hover::after {
                    opacity: 1;
                    animation: siteCtaSheen .72s cubic-bezier(.2,.7,.2,1) 1
                }

        .site-install-note {
            color: #B9CBC7;
            font-size: 12px;
            line-height: 1.4
        }

            .site-install-note a {
                color: #9FE0DA;
                text-decoration: underline;
                text-underline-offset: 3px
            }

        @media(max-width:820px) {
            .site-install-band {
                padding: 54px 0
            }

            .site-install-card {
                grid-template-columns: 1fr;
                gap: 28px;
                padding: 36px 30px;
                text-align: center
            }

            .site-install-copy p {
                margin-left: auto;
                margin-right: auto
            }

            .site-install-actions {
                min-width: 0
            }

            .site-install-band .cta {
                min-width: min(100%,320px)
            }
        }

        @media(max-width:520px) {
            .site-install-band {
                padding: 42px 0
            }

            .site-install-card {
                padding: 30px 20px;
                border-radius: 20px
            }

            .site-install-band .cta {
                width: 100%;
                min-width: 0
            }
        }

        .site-footer, .site-footer .footer-top, .site-footer .footer-bottom {
            background: #172A35;
            color: #F8FBFA
        }

        .site-footer {
            padding: 0;
            border-top: 1px solid rgba(255,255,255,.10);
            font-size: 16px
        }

            .site-footer .wrap {
                width: min(1180px,calc(100% - 40px));
                margin: 0 auto
            }

        .footer-top {
            padding: 58px 0 48px
        }

        .footer-grid {
            display: grid;
            grid-template-columns: 1.05fr 1.1fr 1fr 1fr;
            gap: 46px;
            align-items: start
        }

        .footer-col {
            min-width: 0
        }

        .footer-box + .footer-box {
            margin-top: 34px
        }

        .site-footer .footer-box h6 {
            position: relative;
            margin: 0 0 18px;
            padding: 0 0 11px;
            color: #fff;
            font-size: 15px;
            line-height: 1.2;
            letter-spacing: .09em;
            text-transform: uppercase;
            font-weight: 900;
            border-bottom: 1px solid rgba(255,255,255,.16)
        }

            .site-footer .footer-box h6::after {
                content: "";
                position: absolute;
                left: 0;
                bottom: -1px;
                width: 34px;
                height: 2px;
                border-radius: 999px;
                background: #70CFC7
            }

        .footer-box ul {
            list-style: none;
            padding: 0;
            margin: 0;
            display: grid;
            gap: 11px
        }

        .footer-box li {
            margin: 0;
            padding: 0
        }

        .site-footer .footer-box a, .site-footer .footer-recent a {
            display: inline-block;
            color: #F1F7F5;
            text-decoration: none;
            font-size: 16px;
            line-height: 1.5;
            font-weight: 550;
            transition: color .13s ease,transform .13s ease
        }

            .site-footer .footer-box a:hover {
                color: #fff;
                transform: translateX(2px)
            }

        .site-footer .footer-box .external::after {
            content: " ↗";
            font-size: .82em;
            color: #9FE0DA
        }

        .footer-subgroup {
            margin-top: 30px
        }

        .site-footer .footer-recent small {
            display: block;
            margin-top: 3px;
            color: #9FE0DA;
            font-size: 11px;
            font-weight: 750;
            opacity: .9
        }

        .footer-bottom {
            padding: 20px 0 24px;
            border-top: 1px solid rgba(255,255,255,.13)
        }

        .footer-bottom-inner {
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center
        }

        .site-footer .footer-bottom p {
            margin: 0;
            color: #DCE8E5;
            font-size: 14px;
            font-weight: 700
        }

        .site-footer .footer-recent h6[aria-hidden="true"] {
            border-bottom-color: transparent
        }

            .site-footer .footer-recent h6[aria-hidden="true"]::after {
                display: none
            }

        @media(max-width:980px) {
            .footer-grid {
                grid-template-columns: 1fr 1fr;
                gap: 40px 54px
            }
        }

        @media(max-width:640px) {
            .site-footer .wrap {
                width: min(1180px,calc(100% - 24px))
            }

            .footer-top {
                padding: 42px 0 36px
            }

            .footer-grid {
                grid-template-columns: 1fr;
                gap: 32px
            }

            .footer-col {
                padding-bottom: 4px
            }
        }

/* ===== WordPress blog layer ===== */
body.gmass-blog-theme { overflow-x: hidden; }
.admin-bar .site-nav { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-nav { top: 46px; } }

.blog-main { min-height: 55vh; }
.blog-hero { padding: 35px 0 54px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg,var(--ivory),#fffdf9); }
.blog-hero-inner { max-width: 920px; }
.blog-kicker { color: var(--teal); font-size: 13px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; margin-bottom: 12px; }
.blog-hero h1 { margin: 0; font-size: clamp(44px,6vw,76px); line-height: .98; letter-spacing: -.045em; color: var(--ink); }
.blog-hero p { max-width: 740px; margin: 20px 0 0; color: var(--ink-2); font-size: 20px; line-height: 1.55; }
.blog-category-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.blog-category-strip a { display:inline-flex; align-items:center; min-height:38px; padding:0 14px; border:1px solid var(--mocha-line); border-radius:999px; background:#fff; color:var(--mocha); font-size:13px; font-weight:800; transition:.16s ease; }
.blog-category-strip a:hover { border-color:#a9cbc7; color:var(--teal); transform:translateY(-1px); }

.posts-section { padding: 54px 0 78px; }
.posts-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:54px; align-items:start; }
.posts-list { display:grid; gap:0; }
.post-card { display:grid; grid-template-columns:220px minmax(0,1fr); gap:28px; padding:30px 0; border-bottom:1px solid var(--line); }
.post-card:first-child { padding-top:0; }
.post-card-thumb { display:block; aspect-ratio: 16/10; border-radius:14px; overflow:hidden; background:var(--stone); border:1px solid var(--line); }
.post-card-thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
.post-card:hover .post-card-thumb img { transform:scale(1.025); }
.post-card-placeholder { width:100%; height:100%; display:grid; place-items:center; padding:22px; color:var(--teal); font-weight:900; font-size:18px; text-align:center; background:linear-gradient(145deg,#eff7f5,#f5efea); }
.post-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; color:var(--muted); font-size:12.5px; font-weight:750; margin-bottom:8px; }
.post-meta .category { color:var(--teal); }
.post-card h2 { margin:0 0 9px; font-size:clamp(24px,2.5vw,33px); line-height:1.08; letter-spacing:-.03em; }
.post-card h2 a:hover { color:var(--teal); }
.post-excerpt { margin:0; color:var(--ink-2); font-size:16px; line-height:1.58; }
.read-more { display:inline-flex; margin-top:14px; color:var(--teal); font-size:13px; font-weight:900; }
.read-more:hover { color:var(--teal-dark); }

.blog-sidebar { position:sticky; top:104px; display:grid; gap:18px; }
.admin-bar .blog-sidebar { top:136px; }
.sidebar-card { padding:22px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(23,42,53,.035); }
.sidebar-card h3 { margin:0 0 13px; color:var(--mocha); font-size:14px; letter-spacing:.06em; text-transform:uppercase; }
.sidebar-card ul { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.sidebar-card li { margin:0; }
.sidebar-card a { color:var(--ink-2); font-size:14px; line-height:1.4; font-weight:700; }
.sidebar-card a:hover { color:var(--teal); }
.sidebar-search { display:flex; gap:8px; }
.sidebar-search input[type="search"] { width:100%; min-width:0; height:42px; padding:0 12px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink); outline:none; }
.sidebar-search input[type="search"]:focus { border-color:#78aaa6; box-shadow:0 0 0 3px rgba(23,107,104,.09); }
.sidebar-search button { height:42px; padding:0 14px; border:0; border-radius:9px; background:var(--ink); color:#fff; font-weight:800; cursor:pointer; }
.sidebar-cta { background:#172A35; color:#fff; }
.sidebar-cta h3 { color:#fff; }
.sidebar-cta p { color:#dce8e5; margin:0 0 15px; font-size:14px; line-height:1.5; }
.sidebar-cta .cta { width:100%; background:#fff; color:#172A35 !important; box-shadow:none; }

.pagination { display:flex; flex-wrap:wrap; gap:7px; padding-top:34px; }
.pagination .page-numbers { min-width:40px; height:40px; display:inline-grid; place-items:center; padding:0 10px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink-2); font-weight:800; font-size:13px; }
.pagination .current, .pagination a:hover { background:var(--ink); color:#fff; border-color:var(--ink); }


/* Blog homepage: preserve the classic GMass three-across article rhythm. */
.posts-section-home { padding-top: 52px; }
.posts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 30px;
  row-gap: 54px;
}
.posts-grid .post-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 0;
  padding: 0;
  border-bottom: 0;
}
.posts-grid .post-card:first-child { padding-top: 0; }
.posts-grid .post-card-thumb {
  width: 100%;
  aspect-ratio: 16 / 10;
  margin-bottom: 15px;
  border-radius: 12px;
}
.posts-grid .post-card-copy { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.posts-grid .post-meta { margin-bottom: 9px; gap: 6px 10px; font-size: 11.5px; }
.posts-grid .post-card h2 {
  margin: 0 0 11px;
  font-size: clamp(21px, 1.9vw, 27px);
  line-height: 1.12;
  letter-spacing: -.025em;
}
.posts-grid .post-excerpt { font-size: 14.5px; line-height: 1.5; }
.posts-grid .post-excerpt p { margin: 0; }
.posts-grid .read-more { margin-top: 14px; }
.pagination-home { justify-content: center; padding-top: 56px; }

@media (max-width: 900px) {
  .posts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 26px; }
}
@media (max-width: 620px) {
  .posts-section-home { padding-top: 38px; }
  .posts-grid { grid-template-columns: 1fr; row-gap: 38px; }
  .posts-grid .post-card { padding: 0; }
  .posts-grid .post-card-thumb { aspect-ratio: 16 / 9; margin-bottom: 13px; }
  .posts-grid .post-card h2 { font-size: 24px; }
}

/* Article */
.article-shell { padding: 34px 0 82px; }
.article-header { max-width:920px; margin:0 auto 34px; text-align:center; }
.article-header .eyebrow { color:var(--teal); font-weight:900; font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
.article-header h1 { margin:13px auto 18px; font-size:clamp(40px,5.3vw,68px); line-height:1.01; letter-spacing:-.045em; color:var(--ink); }
.article-dek { max-width:800px; margin:0 auto 18px; color:var(--ink-2); font-size:20px; line-height:1.55; }
.article-byline { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 14px; color:var(--muted); font-size:13px; font-weight:750; }
.article-featured { max-width:1080px; margin:34px auto 44px; overflow:hidden; border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:var(--shadow); }
.article-featured img { width:100%; height:auto; display:block; }
.article-grid { display:grid; grid-template-columns:minmax(0,780px) 280px; justify-content:center; gap:58px; align-items:start; }
.article-content { min-width:0; font-size:18px; line-height:1.72; color:#263b45; }
.article-content > *:first-child { margin-top:0; }
.article-content p { margin:0 0 1.35em; }
.article-content h2 { margin:2.1em 0 .65em; color:var(--ink); font-size:clamp(30px,3.2vw,42px); line-height:1.08; letter-spacing:-.035em; }
.article-content h3 { margin:1.85em 0 .55em; color:var(--ink); font-size:27px; line-height:1.15; letter-spacing:-.025em; }
.article-content h4 { margin:1.6em 0 .5em; color:var(--ink); font-size:21px; }
.article-content a { color:var(--teal); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.article-content a:hover { color:var(--teal-dark); }
.article-content strong { color:var(--ink); }
.article-content ul, .article-content ol { margin:0 0 1.4em; padding-left:1.35em; }
.article-content li { margin:.42em 0; padding-left:.15em; }
.article-content blockquote { margin:1.7em 0; padding:18px 22px; border-left:4px solid var(--teal); border-radius:0 12px 12px 0; background:#edf5f2; color:var(--ink-2); }
.article-content blockquote p:last-child { margin-bottom:0; }
.article-content img { max-width:100%; height:auto; border-radius:10px; }
.article-content figure { max-width:100%; margin:1.8em auto; }
.article-content figcaption { margin-top:7px; color:var(--muted); font-size:13px; text-align:center; }
.article-content iframe, .article-content video { max-width:100%; }
.article-content table { width:100%; border-collapse:separate; border-spacing:0; margin:1.8em 0; overflow:hidden; border:1px solid var(--line); border-radius:12px; background:#fff; font-size:15px; }
.article-content th, .article-content td { padding:12px 14px; border-bottom:1px solid var(--line); border-right:1px solid var(--line); vertical-align:top; text-align:left; }
.article-content th:last-child, .article-content td:last-child { border-right:0; }
.article-content tr:last-child td { border-bottom:0; }
.article-content th { background:#f1eee7; color:var(--ink); }
.article-content pre { max-width:100%; overflow:auto; padding:18px; border-radius:12px; background:#172A35; color:#edf5f2; font-size:14px; line-height:1.55; }
.article-content code { font-size:.9em; }
.article-content :not(pre) > code { padding:.15em .4em; border-radius:5px; background:#ece8e2; color:#713d36; }
.article-content .wp-block-button__link { color:#fff; text-decoration:none; background:#232323; border-radius:9px; font-weight:800; }
.article-content .alignwide { width:min(1040px,calc(100vw - 40px)); max-width:none; margin-left:50%; transform:translateX(-50%); }
.article-content .alignfull { width:100vw; max-width:none; margin-left:50%; transform:translateX(-50%); }

.article-rail { position:sticky; top:104px; display:grid; gap:18px; }
.admin-bar .article-rail { top:136px; }
.article-rail .sidebar-card { padding:20px; }
.article-tags { max-width:780px; margin:38px auto 0; padding-top:22px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:8px; }
.article-tags a { padding:7px 10px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink-2); font-size:12px; font-weight:800; }
.article-tags a:hover { color:var(--teal); border-color:#a9cbc7; }
.post-nav { max-width:1080px; margin:50px auto 0; padding-top:30px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.post-nav a { display:block; padding:18px 20px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.post-nav a:hover { border-color:#a9cbc7; transform:translateY(-1px); }
.post-nav small { display:block; margin-bottom:5px; color:var(--muted); font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.post-nav strong { display:block; font-size:16px; line-height:1.35; }
.post-nav .next { text-align:right; }

/* Generic pages/search/404 */
.page-shell { padding:64px 0 84px; }
.page-header { max-width:900px; margin:0 auto 36px; }
.page-header h1 { margin:0; font-size:clamp(40px,5vw,62px); line-height:1.03; letter-spacing:-.04em; }
.page-content { max-width:820px; margin:0 auto; }
.empty-state { max-width:700px; margin:70px auto; padding:36px; text-align:center; border:1px solid var(--line); border-radius:20px; background:#fff; }
.empty-state h1, .empty-state h2 { margin-top:0; }

@media (max-width: 980px) {
  .posts-layout, .article-grid { grid-template-columns:1fr; gap:38px; }
  .blog-sidebar, .article-rail { position:static; }
  .article-grid { max-width:780px; margin:0 auto; }
  .article-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
  .blog-hero { padding:48px 0 40px; }
  .posts-section { padding:38px 0 58px; }
  .post-card { grid-template-columns:1fr; gap:18px; padding:25px 0; }
  .post-card-thumb { aspect-ratio:16/9; }
  .article-shell { padding:45px 0 60px; }
  .article-header { text-align:left; }
  .article-byline { justify-content:flex-start; }
  .article-featured { border-radius:14px; margin:26px 0 34px; }
  .article-content { font-size:17px; line-height:1.68; }
  .article-content h2 { margin-top:1.7em; }
  .article-rail { grid-template-columns:1fr; }
  .post-nav { grid-template-columns:1fr; }
  .post-nav .next { text-align:left; }
}

/* Comments */
.comments-area { max-width: 780px; padding-bottom: 78px; }
.comments-title, .comment-reply-title { margin: 0 0 22px; color: var(--ink); font-size: 28px; letter-spacing: -.025em; }
.comment-list { list-style: none; margin: 0 0 36px; padding: 0; display: grid; gap: 18px; }
.comment-list .comment-body { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.comment-list .comment-meta { margin-bottom: 10px; font-size: 13px; }
.comment-list .avatar { border-radius: 50%; vertical-align: middle; margin-right: 8px; }
.comment-list .children { list-style: none; margin: 14px 0 0 24px; padding: 0; display: grid; gap: 14px; }
.comment-list p { margin-bottom: .8em; }
.comment-respond { padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.comment-form { display: grid; gap: 14px; }
.comment-form p { margin: 0; }
.comment-form label { display: block; margin-bottom: 6px; color: var(--ink-2); font-size: 13px; font-weight: 800; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea { width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); }
.comment-form textarea { min-height: 150px; resize: vertical; }
.comment-form .submit { min-height: 44px; padding: 0 20px; border: 0; border-radius: 9px; background: #232323; color: #fff; font-weight: 800; cursor: pointer; }
