@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600&display=swap');

        body {
            font-family: 'Plus Jakarta Sans', sans-serif;
            background-color: #FAF8F5;
            color: #2C2623;
        }

        .font-serif {
            font-family: 'Playfair Display', Georgia, serif;
        }

        .tpt-social-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 0.65rem;
        }

        .tpt-social-card {
            min-width: 0;
            min-height: 92px;
            padding: 0.85rem 0.45rem;
            border: 1px solid #E8E2D9;
            border-radius: 0.85rem;
            background: #FAF8F5;
            color: #1A1817;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 0.5rem;
            font: inherit;
            font-size: 0.76rem;
            font-weight: 700;
            text-decoration: none;
            cursor: pointer;
            transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
        }

        .tpt-social-card:hover,
        .tpt-social-card:focus-visible {
            transform: translateY(-2px);
            border-color: #C5A059;
            background: #fff;
            box-shadow: 0 8px 20px rgba(44, 38, 35, 0.08);
            outline: none;
        }

        .tpt-social-icon {
            width: 2.3rem;
            height: 2.3rem;
            border-radius: 0.75rem;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: #1A1817;
            color: #C5A059;
            font-size: 1.05rem;
            transition: background-color 160ms ease, color 160ms ease;
        }

        .tpt-social-card:hover .tpt-social-icon,
        .tpt-social-card:focus-visible .tpt-social-icon {
            background: #C5A059;
            color: #1A1817;
        }

        .tpt-social-modal[hidden] { display: none; }

        .tpt-social-modal {
            position: fixed;
            inset: 0;
            z-index: 1000;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 1rem;
        }

        .tpt-social-modal__backdrop {
            position: absolute;
            inset: 0;
            background: rgba(26, 24, 23, 0.66);
            backdrop-filter: blur(3px);
        }

        .tpt-social-modal__panel {
            position: relative;
            z-index: 1;
            width: min(100%, 390px);
            padding: 2rem;
            border: 1px solid #E8E2D9;
            border-radius: 1.25rem;
            background: #fff;
            box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
            text-align: center;
        }

        .tpt-social-modal__close {
            position: absolute;
            top: 0.9rem;
            right: 0.9rem;
            width: 2.25rem;
            height: 2.25rem;
            border: 0;
            border-radius: 999px;
            background: #FAF8F5;
            color: #1A1817;
            cursor: pointer;
        }

        .tpt-social-modal__icon {
            width: 3.3rem;
            height: 3.3rem;
            margin: 0 auto 0.9rem;
            border-radius: 1rem;
            display: flex;
            align-items: center;
            justify-content: center;
            background: #1A1817;
            color: #C5A059;
            font-size: 1.45rem;
        }

        .tpt-social-modal__eyebrow {
            margin: 0 0 0.35rem;
            color: #8A682D;
            font-size: 0.7rem;
            font-weight: 700;
            letter-spacing: 0.13em;
            text-transform: uppercase;
        }

        .tpt-social-modal__qr {
            display: block;
            width: min(100%, 250px);
            height: auto;
            margin: 1.25rem auto 0;
            border: 1px solid #E8E2D9;
            border-radius: 1rem;
            background: #fff;
            box-shadow: 0 8px 24px rgba(44, 38, 35, 0.08);
        }

        body.tpt-modal-open { overflow: hidden; }

        @media (max-width: 520px) {
            .tpt-social-grid { grid-template-columns: 1fr; }
            .tpt-social-card {
                min-height: 62px;
                padding: 0.7rem 1rem;
                flex-direction: row;
                justify-content: flex-start;
                font-size: 0.9rem;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .tpt-social-card { transition: none; }
        }
