html { overflow-x: hidden; }
        body {
            font-family: 'Inter', sans-serif;
            color: #4b5563;
            background-color: #ffffff;
        }

        h1, h2, h3, h4, h5, h6 {
            font-family: 'Montserrat', sans-serif;
            font-weight: 700;
        }

        :where(h1, h2, h3, h4, h5, h6) {
            color: #111111;
        }

        .transition-all-300 {
            transition: all 0.3s ease-in-out;
        }
        .header-cta-phone {
            border-radius: 9999px;
            padding: 0.25rem 0.5rem 0.25rem 0.25rem;
            margin: 0 -0.25rem 0 0;
            transition: box-shadow 0.35s ease, transform 0.2s ease;
            box-shadow: 0 0 18px rgba(197, 155, 39, 0.4);
        }
        .header-cta-phone:hover {
            box-shadow: 0 0 24px rgba(197, 155, 39, 0.6), 0 0 36px rgba(197, 155, 39, 0.3);
        }
        @media (prefers-reduced-motion: reduce) {
            .animate-pulse-glow, .animate-spin-arc { animation: none; }
            .animate-pulse-glow { opacity: 1; filter: drop-shadow(0 0 12px rgba(197, 155, 39, 0.4)); }
        }
        .btn-hover-primary:hover { transform: scale(1.02); box-shadow: 0 10px 25px rgba(0,0,0,0.15); }
        .btn-hover-dark:hover { box-shadow: 0 8px 20px rgba(0,0,0,0.25); }
        .btn-hover-control:hover { transform: scale(1.08); }
        #page-loader .loader-wrap { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
        #page-loader .loader-pin-wrap { position: relative; width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; margin-bottom: 1.5rem; }
        #page-loader .loader { width: 44.8px; height: 44.8px; position: relative; transform: rotate(45deg); }
        #page-loader .loader::before, #page-loader .loader::after { content: ""; position: absolute; inset: 0; border-radius: 50% 50% 0 50%; background: transparent; background-image: radial-gradient(circle 11.2px at 50% 50%, transparent 94%, #c59b27); }
        #page-loader .loader::after { animation: loader-pin-pulse 1s infinite; transform: perspective(336px) translateZ(0); }
        @keyframes loader-pin-pulse { to { transform: perspective(336px) translateZ(168px); opacity: 0; } }
        #page-loader .loader-dots-ring { position: absolute; inset: -8px; width: calc(100% + 16px); height: calc(100% + 16px); animation: loader-spin 1.2s linear infinite; }
        #page-loader .loader-dots-ring span { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: #c59b27; }
        #page-loader .loader-dots-ring span:nth-child(1) { top: 0; left: 50%; transform: translateX(-50%); }
        #page-loader .loader-dots-ring span:nth-child(2) { top: 50%; right: 0; transform: translateY(-50%); }
        #page-loader .loader-dots-ring span:nth-child(3) { bottom: 0; left: 50%; transform: translateX(-50%); }
        #page-loader .loader-dots-ring span:nth-child(4) { top: 50%; left: 0; transform: translateY(-50%); }
        #page-loader .loader-dots-ring span:nth-child(5) { top: 12%; right: 12%; }
        #page-loader .loader-dots-ring span:nth-child(6) { bottom: 12%; right: 12%; }
        #page-loader .loader-dots-ring span:nth-child(7) { bottom: 12%; left: 12%; }
        #page-loader .loader-dots-ring span:nth-child(8) { top: 12%; left: 12%; }
        @keyframes loader-spin { to { transform: rotate(360deg); } }
        #page-loader .loader-brand { font-family: Montserrat, sans-serif; font-weight: 800; font-size: 0.875rem; letter-spacing: 0.05em; color: #fff; text-transform: uppercase; margin: 0; }
        @media (prefers-reduced-motion: reduce) { #page-loader .loader::after { animation: none; opacity: 0; } #page-loader .loader-dots-ring { animation: none; } }

        /* Gallery job modal - mobile first */
        #gallery-job-modal { position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,0.95); display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; overflow: auto; -webkit-overflow-scrolling: touch; }
        #gallery-job-modal.is-open { opacity: 1; visibility: visible; }
        #gallery-job-modal .gallery-modal-inner { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 1rem; padding-top: max(1rem, env(safe-area-inset-top)); padding-bottom: max(1.5rem, env(safe-area-inset-bottom)); background: #fff; border-radius: 0.75rem; margin: auto 0; }
        #gallery-job-modal .gallery-modal-image-wrap { position: relative; width: 100%; flex-shrink: 0; border-radius: 0.5rem; overflow: hidden; background: #1a1a1a; aspect-ratio: 16/10; max-height: 50vh; }
        #gallery-job-modal .gallery-modal-image-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
        #gallery-job-modal .gallery-modal-body { flex: 1; padding: 1.25rem 0 0; overflow-y: auto; }
        #gallery-job-modal .gallery-modal-body h3 { font-family: Montserrat, sans-serif; font-weight: 800; font-size: 1.25rem; color: #111; margin-bottom: 0.5rem; text-transform: uppercase; letter-spacing: 0.05em; }
        #gallery-job-modal .gallery-modal-meta { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; margin-bottom: 1rem; }
        #gallery-job-modal .gallery-modal-meta span { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.8125rem; color: #6b7280; }
        #gallery-job-modal .gallery-modal-meta i { width: 1rem; height: 1rem; color: #c59b27; flex-shrink: 0; }
        #gallery-job-modal .gallery-modal-desc { font-size: 0.9375rem; line-height: 1.6; color: #4b5563; }
        #gallery-job-modal .gallery-modal-close { position: absolute; top: 0.75rem; right: 0.75rem; z-index: 10; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: rgba(0,0,0,0.6); color: #fff; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s, transform 0.2s; }
        #gallery-job-modal .gallery-modal-close:hover { background: #c59b27; transform: scale(1.05); }
        #gallery-job-modal .gallery-modal-close:focus { outline: 2px solid #c59b27; outline-offset: 2px; }
        .gallery-item-clickable { cursor: pointer; -webkit-tap-highlight-color: transparent; }
        @media (min-width: 768px) {
            #gallery-job-modal { align-items: center; justify-content: center; padding: 2rem; }
            #gallery-job-modal .gallery-modal-inner { max-width: 520px; max-height: 90vh; flex-direction: column; border-radius: 0.75rem; overflow: hidden; background: #fff; padding: 0; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5); }
            #gallery-job-modal .gallery-modal-image-wrap { max-height: none; aspect-ratio: 16/10; border-radius: 0; }
            #gallery-job-modal .gallery-modal-body { padding: 1.5rem; color: #374151; }
            #gallery-job-modal .gallery-modal-body h3 { font-size: 1.125rem; }
            #gallery-job-modal .gallery-modal-close { top: 0.5rem; right: 0.5rem; background: rgba(0,0,0,0.5); }
        }
