/* =========================================================
   Crystal International -- Site Styles
   Extracted from index.html into source/css/style.css
   ========================================================= */

        * {
            -webkit-tap-highlight-color: transparent;
        }

        /* ================= START: CONTENT PROTECTION CSS ================= */
        /* Disables text selection across the site as a companion to the JS
           copy/selectstart guards in source/js/main.js. Form fields are
           explicitly re-enabled so checkout, search, and any input/textarea
           still work normally for typing, selecting, and pasting. */
        body {
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }
        input, textarea, [contenteditable="true"] {
            -webkit-user-select: text;
            -moz-user-select: text;
            -ms-user-select: text;
            user-select: text;
        }
        /* ================= END: CONTENT PROTECTION CSS ================= */

        body {
            font-family: 'Inter', sans-serif;
            scroll-behavior: smooth;
            overflow-x: hidden;
            transition: background-color 0.3s ease, color 0.3s ease;
        }
        .font-serif-premium {
            font-family: 'Playfair Display', serif;
        }

        /* Enhanced Swiper custom controls */
        .swiper-button-next, .swiper-button-prev {
            color: #800020 !important;
            background: rgba(255, 255, 255, 0.95);
            width: 38px !important;
            height: 38px !important;
            border-radius: 50%;
            box-shadow: 0 4px 14px rgba(128, 0, 32, 0.2);
            transition: all 0.3s ease;
        }
        .dark .swiper-button-next, .dark .swiper-button-prev {
            color: #f43f5e !important;
            background: rgba(24, 24, 27, 0.95);
            box-shadow: 0 4px 14px rgba(0, 0, 0, 0.6);
        }
        @media (min-width: 640px) {
            .swiper-button-next, .swiper-button-prev {
                width: 44px !important;
                height: 44px !important;
            }
        }
        .swiper-button-next:hover, .swiper-button-prev:hover {
            background: #800020 !important;
            color: #ffffff !important;
            transform: scale(1.08);
        }
        .dark .swiper-button-next:hover, .dark .swiper-button-prev:hover {
            background: #9f1239 !important;
            color: #ffffff !important;
        }
        .swiper-button-next::after, .swiper-button-prev::after {
            font-size: 13px !important;
            font-weight: bold;
        }

        /* Swiper Bullet Indicators */
        .swiper-pagination-bullet {
            background: #cbd5e1 !important;
            opacity: 0.8 !important;
            transition: all 0.3s ease !important;
        }
        .dark .swiper-pagination-bullet {
            background: #52525b !important;
        }
        .swiper-pagination-bullet-active {
            background: #800020 !important;
            width: 24px !important;
            border-radius: 4px !important;
            opacity: 1 !important;
        }
        .dark .swiper-pagination-bullet-active {
            background: #e11d48 !important;
        }

        /* Glassmorphism Cards */
        .glass-card {
            background: rgba(255, 255, 255, 0.88);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(244, 227, 230, 0.8);
            box-shadow: 0 10px 30px -10px rgba(128, 0, 32, 0.08);
            transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .glass-card:hover {
            border-color: rgba(128, 0, 32, 0.45);
            box-shadow: 0 14px 35px -5px rgba(128, 0, 32, 0.2);
            transform: translateY(-2px);
        }
        .dark .glass-card {
            background: rgba(24, 24, 27, 0.92);
            border: 1px solid rgba(136, 19, 55, 0.35);
            box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.6);
        }
        .dark .glass-card:hover {
            border-color: rgba(225, 29, 72, 0.6);
            box-shadow: 0 14px 35px -5px rgba(128, 0, 32, 0.45);
        }
        .sticky-sidebar {
            position: -webkit-sticky;
            position: sticky;
            top: 90px;
        }

        /* Plain Flat Page Background (crystal shapes & glow removed) */
        .crystal-glow-bg {
            position: fixed;
            inset: 0;
            pointer-events: none;
            z-index: -2;
            background: #ffffff;
            transition: background 0.5s ease;
        }
        .dark .crystal-glow-bg {
            background: #09090b;
        }

        /* Custom Scrollbar */
        ::-webkit-scrollbar {
            width: 6px;
        }
        ::-webkit-scrollbar-track {
            background: #fff5f5;
        }
        .dark ::-webkit-scrollbar-track {
            background: #18181b;
        }
        ::-webkit-scrollbar-thumb {
            background: #cbd5e1;
            border-radius: 4px;
        }
        .dark ::-webkit-scrollbar-thumb {
            background: #3f3f46;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: #800020;
        }
        .dark ::-webkit-scrollbar-thumb:hover {
            background: #e11d48;
        }

        /* Mobile input zoom guard */
        @media screen and (max-width: 640px) {
            input[type="text"], input[type="email"], input[type="tel"], input[type="number"], select, textarea {
                font-size: 16px !important;
            }
        }

        /* Print invoice layout */
        @media print {
            body * {
                visibility: hidden;
            }
            #printable-receipt, #printable-receipt * {
                visibility: visible;
            }
            #printable-receipt {
                position: absolute;
                left: 0;
                top: 0;
                width: 100%;
                border: none !important;
                box-shadow: none !important;
                background: #ffffff !important;
                color: #1c1917 !important;
            }
            .no-print {
                display: none !important;
            }
        }

        /* ================= START: DEVELOPER'S SIGN CSS ================= */
        /* =========================================================
           DEVELOPER'S SIGN COMPONENT STYLES
           ========================================================= */

        /* Container */
        .dev-sign-container {
            position: relative;
            display: inline-block;
            font-family: 'Inter', sans-serif;
        }

        /* Base Badge Button */
        .dev-sign-btn {
            display: flex;
            align-items: center;
            gap: 0.375rem;
            padding: 0.25rem 0.75rem;
            background: rgba(28, 25, 23, 0.9);
            border: 1px solid rgba(190, 18, 60, 0.6);
            border-radius: 9999px;
            color: #ffffff;
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
            cursor: pointer;
            text-decoration: none;
        }

        .dev-sign-btn:active {
            transform: scale(0.95);
        }

        .dev-sign-btn:hover {
            background: #09090b;
        }

        /* Avatar Badge Icon */
        .dev-sign-avatar {
            width: 1rem;
            height: 1rem;
            background-color: #9f1239;
            color: #ffffff;
            font-weight: 900;
            font-size: 9px;
            border-radius: 9999px;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
        }

        /* Button Text Label */
        .dev-sign-text {
            font-size: 10px;
            font-weight: 800;
            letter-spacing: 0.05em;
            color: #ffe4e6;
        }

        /* Popover Card Window */
        .dev-card-popover {
            position: absolute;
            bottom: calc(100% + 0.75rem);
            right: 50%;
            transform: translateX(50%);
            display: flex;
            flex-direction: column;
            background-color: rgba(28, 25, 23, 0.95);
            color: #ffffff;
            backdrop-filter: blur(12px);
            padding: 0.875rem;
            border-radius: 1rem;
            border: 1px solid rgba(244, 63, 94, 0.4);
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
            width: 85vw;
            max-width: 16rem;
            font-size: 0.75rem;
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transition: opacity 0.25s ease, visibility 0.25s ease, background-color 0.3s ease, border-color 0.3s ease;
            z-index: 50;
            text-decoration: none;
            box-sizing: border-box;
        }

        /* INVISIBLE STABILITY HOVER BRIDGE */
        .dev-card-popover::before {
            content: '';
            position: absolute;
            bottom: -0.85rem;
            left: 0;
            right: 0;
            height: 0.85rem;
        }

        .dev-card-popover:hover {
            border-color: #f43f5e;
            background-color: #09090b;
        }

        /* Stable Display State on Hover / Focus / Active Class */
        .dev-sign-container:hover .dev-card-popover,
        .dev-sign-container:focus-within .dev-card-popover,
        .dev-card-popover.show {
            opacity: 1;
            visibility: visible;
            pointer-events: auto;
        }

        /* Desktop Alignment */
        @media (min-width: 640px) {
            .dev-card-popover {
                right: 0;
                left: auto;
                transform: translateX(0);
                width: 16rem;
            }
        }

        /* Card Header */
        .dev-card-header {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            margin-bottom: 0.5rem;
            padding-bottom: 0.5rem;
            border-bottom: 1px solid rgba(159, 18, 57, 0.4);
        }

        .dev-card-header-avatar {
            width: 1.75rem;
            height: 1.75rem;
            border-radius: 9999px;
            background-color: #9f1239;
            color: #ffffff;
            font-weight: 900;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.75rem;
            border: 1px solid rgba(251, 113, 133, 0.3);
            flex-shrink: 0;
        }

        .dev-card-info {
            flex-grow: 1;
            min-width: 0;
        }

        .dev-card-name {
            font-weight: 800;
            color: #fecdd3;
            display: block;
            font-size: 11px;
            line-height: 1;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .dev-card-popover:hover .dev-card-name {
            color: #ffffff;
            text-decoration: underline;
        }

        .dev-card-sub {
            font-size: 9px;
            color: #a8a29e;
            font-family: monospace;
        }

        .dev-card-sub strong {
            color: #fb7185;
            font-weight: 800;
        }

        /* Card Content Body */
        .dev-card-body {
            font-size: 10px;
            color: #d6d3d1;
            font-weight: 500;
            line-height: 1.6;
            margin: 0;
        }

        .dev-card-body strong {
            color: #fb7185;
            font-weight: 800;
        }

        .dev-card-popover:hover .dev-card-body strong {
            text-decoration: underline;
        }

        /* Card Footer Action */
        .dev-card-footer {
            font-size: 9px;
            color: #f43f5e;
            font-weight: 700;
            margin-top: 0.5rem;
            display: inline-flex;
            align-items: center;
            justify-content: flex-end;
            gap: 0.25rem;
            text-align: right;
            width: 100%;
        }
        /* ================= END: DEVELOPER'S SIGN CSS ================= */