html { -webkit-text-size-adjust: 100%; }
        body { font-family: 'Inter', sans-serif; scroll-behavior: smooth; overflow-x: hidden; }
        h1, h2, h3 { font-family: 'Playfair Display', serif; }
        
        p, .indented-p { 
            text-align: justify; 
            padding-left: 1rem; 
            padding-right: 1rem;
            margin-bottom: 1.25rem;
            line-height: 1.8;
        }

        /* Smooth Cinematic Page Transition Overlay */
        .transition-overlay {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: #0a192f; z-index: 10000; display: flex; align-items: center; justify-content: center;
            transform: translateY(-100%); will-change: transform;
            transition: transform 0.7s cubic-bezier(0.83, 0, 0.17, 1);
        }
        .transition-overlay.active,
        html.ph-arriving .transition-overlay { transform: translateY(0); }
        .transition-overlay > div { opacity: 0; transition: opacity 0.4s ease; }
        .transition-overlay.active > div,
        html.ph-arriving .transition-overlay > div { opacity: 1; }
        
        .marquee-container { overflow: hidden; white-space: nowrap; }
        .marquee-content { display: inline-block; animation: marquee 30s linear infinite; }
        @keyframes marquee { 0% { transform: translateX(100%); } 100% { transform: translateX(-100%); } }

        [x-cloak] { display: none !important; }
        
        .blog-content { 
            word-wrap: break-word;
            overflow-x: auto;
        }
        .blog-content img, .featured-image { max-width: 100%; height: auto; margin: 1.5rem 0; border-radius: 8px; display: block; }
        .blog-content ul { list-style-type: disc; padding-left: 2rem; margin-bottom: 1rem; }
        .blog-content ol { list-style-type: decimal; padding-left: 2rem; margin-bottom: 1rem; }
        
        .blog-content table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; min-width: 400px; }
        .blog-content th, .blog-content td { border: 1px solid #cbd5e1; padding: 0.75rem 1rem; text-align: left; }
        .blog-content th { background-color: #f8fafc; font-weight: 600; }
        
        #ai-chat-bot { position: fixed; bottom: 16px; right: 16px; z-index: 1000; }

        /* ── Futuristic PH AI Assistant Floating Button ── */
        .bot-fab { box-shadow: 0 0 0 0 rgba(212,175,55,0.6), 0 10px 30px -8px rgba(10,25,47,0.6); animation: botFabPulse 2.6s ease-out infinite; }
        @keyframes botFabPulse {
            0% { box-shadow: 0 0 0 0 rgba(212,175,55,0.45), 0 10px 30px -8px rgba(10,25,47,0.6); }
            70% { box-shadow: 0 0 0 14px rgba(212,175,55,0), 0 10px 30px -8px rgba(10,25,47,0.6); }
            100% { box-shadow: 0 0 0 0 rgba(212,175,55,0), 0 10px 30px -8px rgba(10,25,47,0.6); }
        }
        .bot-fab-ring {
            position: absolute; inset: -3px; border-radius: 9999px;
            border: 1px dashed rgba(212,175,55,0.55);
            animation: botFabSpin 14s linear infinite;
            pointer-events: none;
        }
        @keyframes botFabSpin { to { transform: rotate(360deg); } }
        .bot-fab-dot {
            position: absolute; top: 2px; right: 2px; width: 8px; height: 8px;
            background: #22c55e; border-radius: 9999px; border: 1.5px solid #0f2042;
            z-index: 20; box-shadow: 0 0 8px rgba(34,197,94,0.9);
            animation: botFabBlink 1.8s ease-in-out infinite;
        }
        @keyframes botFabBlink { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }
        .bot-fab-scan {
            position: absolute; left: 0; right: 0; height: 40%;
            background: linear-gradient(180deg, transparent, rgba(212,175,55,0.25), transparent);
            opacity: 0; z-index: 5; pointer-events: none;
            animation: botFabScan 4s ease-in-out infinite;
        }
        @keyframes botFabScan {
            0%, 12% { top: -40%; opacity: 0; }
            50% { opacity: 1; }
            88%, 100% { top: 140%; opacity: 0; }
        }
        .bot-fab:hover .bot-fab-ring { border-color: rgba(212,175,55,0.9); }
        .bot-fab:hover .bot-fab-scan { opacity: 0.6; }

        .bot-contact-btn { box-shadow: 0 2px 6px -2px rgba(10,25,47,0.35); }
        .bot-contact-bar { transition: box-shadow 0.3s ease, transform 0.3s ease; }
        .bot-contact-attention {
            box-shadow: 0 0 0 3px rgba(212,175,55,0.5), 0 0 18px rgba(212,175,55,0.35);
            transform: scale(1.02);
        }
        .responsive-iframe {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border: 0;
        }

        /* ================= Lively & Interactive Sub-Page Background =================
         * Elegant, law-themed animated backdrop shown on every sub-page (not home).
         * Features: drifting legal symbols, soft gold/blue glows, mouse parallax,
         * a golden cursor glow, and a golden ripple on click.
         * ========================================================================== */
        #page-bg {
            position: fixed;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            overflow: hidden;
            opacity: 0;
            transition: opacity 0.9s ease;
            background:
                radial-gradient(1100px 560px at 85% -10%, rgba(212,175,55,0.10), transparent 60%),
                radial-gradient(950px 520px at -5% 15%, rgba(43,76,126,0.14), transparent 55%),
                radial-gradient(800px 600px at 55% 110%, rgba(212,175,55,0.07), transparent 55%),
                linear-gradient(180deg, #f7f9fd 0%, #eef3fa 45%, #e7eef7 100%);
        }
        body.page-bg-active #page-bg { opacity: 1; }

        #page-bg::before {
            content: '';
            position: absolute;
            inset: 0;
            background-image: radial-gradient(#1a2e4c 1px, transparent 1px);
            background-size: 26px 26px;
            opacity: 0.05;
            -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 25%, transparent 78%);
            mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 25%, transparent 78%);
        }

        .bg-orb { position: absolute; border-radius: 9999px; filter: blur(64px); will-change: transform; }
        .bg-orb-gold {
            width: 460px; height: 460px; top: -140px; left: -110px;
            background: rgba(212,175,55,0.18);
            animation: orbDriftA 22s ease-in-out infinite alternate;
        }
        .bg-orb-blue {
            width: 520px; height: 520px; bottom: -180px; right: -120px;
            background: rgba(43,76,126,0.16);
            animation: orbDriftB 26s ease-in-out infinite alternate;
        }
        @keyframes orbDriftA { from { transform: translate(0,0) scale(1); } to { transform: translate(90px,70px) scale(1.18); } }
        @keyframes orbDriftB { from { transform: translate(0,0) scale(1.05); } to { transform: translate(-100px,-60px) scale(1); } }

        .bg-cursor-glow {
            position: absolute;
            top: 0; left: 0;
            width: 280px; height: 280px;
            border-radius: 9999px;
            background: radial-gradient(circle, rgba(212,175,55,0.16), transparent 62%);
            margin: -140px 0 0 -140px;
            opacity: 0;
            transition: opacity 0.4s ease;
            will-change: transform;
        }
        body.page-bg-active .bg-cursor-glow { opacity: 1; }

        .bg-symbol-wrap { position: absolute; will-change: transform; }
        .bg-symbol {
            display: block;
            color: #1a2e4c;
            opacity: 0.08;
            animation: symbolFloatA 14s ease-in-out infinite;
            will-change: transform;
            line-height: 1;
        }
        .bg-symbol i { display: block; }
        .bg-symbol[data-tone="gold"] { color: #d4af37; opacity: 0.13; }
        .bg-symbol[data-tone="navy"] { color: #2b4c7e; opacity: 0.10; }
        .bg-symbol.sf-b { animation-name: symbolFloatB; }
        .bg-symbol.sf-c { animation-name: symbolFloatC; }

        @keyframes symbolFloatA {
            0%   { transform: translateY(0) rotate(-5deg); }
            50%  { transform: translateY(-26px) rotate(5deg); }
            100% { transform: translateY(0) rotate(-5deg); }
        }
        @keyframes symbolFloatB {
            0%   { transform: translateY(0) rotate(4deg) scale(1); }
            50%  { transform: translateY(22px) rotate(-4deg) scale(1.06); }
            100% { transform: translateY(0) rotate(4deg) scale(1); }
        }
        @keyframes symbolFloatC {
            0%   { transform: translateX(0) rotate(0deg); }
            50%  { transform: translateX(-18px) rotate(10deg); }
            100% { transform: translateX(0) rotate(0deg); }
        }

        .bg-ripple {
            position: absolute;
            width: 14px; height: 14px;
            margin: -7px 0 0 -7px;
            border-radius: 9999px;
            border: 2px solid rgba(212,175,55,0.65);
            background: rgba(212,175,55,0.12);
            animation: rippleFade 0.95s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
            pointer-events: none;
            will-change: transform, opacity;
        }
        @keyframes rippleFade {
            0%   { transform: scale(0.3); opacity: 1; }
            100% { transform: scale(11); opacity: 0; }
        }

        main, footer { position: relative; z-index: 1; }

        @media (prefers-reduced-motion: reduce) {
            #page-bg .bg-orb,
            #page-bg .bg-symbol { animation: none !important; }
            #page-bg .bg-cursor-glow { display: none; }
            .bg-ripple { display: none; }
        }

        /* Premium Smooth Reveal Animation */
        .premium-fade-in {
            animation: premiumFadeUp 0.8s cubic-bezier(0.215, 0.610, 0.355, 1) both;
        }

        @keyframes premiumFadeUp {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Scroll Reveal Utility Classes (Handled by Intersection Observer) */
        .reveal-on-scroll {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s cubic-bezier(0.215, 0.610, 0.355, 1), transform 0.8s cubic-bezier(0.215, 0.610, 0.355, 1);
            will-change: transform, opacity;
        }
        .reveal-on-scroll.revealed {
            opacity: 1;
            transform: translateY(0);
        }

        /* Split logo mechanism styles */
        .split-gate-left {
            transition: transform 0.7s cubic-bezier(0.85, 0, 0.15, 1);
            transform-origin: left center;
        }
        .split-gate-right {
            transition: transform 0.7s cubic-bezier(0.85, 0, 0.15, 1);
            transform-origin: right center;
        }
        .logo-box-container.revealed .split-gate-left {
            transform: scaleX(0) translateX(-100%);
        }
        .logo-box-container.revealed .split-gate-right {
            transform: scaleX(0) translateX(100%);
        }
        .reveal-content {
            position: absolute;
            left: 50%;
            top: 50%;
            width: 100%;
            height: 100%;
            transform: translate(-50%, -50%) scale(0.92);
            opacity: 0;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            transition: opacity 0.45s ease, transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1), width 0.7s cubic-bezier(0.34, 1.56, 0.64, 1), height 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
            transition-delay: 0.1s;
        }
        .logo-box-container.revealed .reveal-content {
            opacity: 1;
            transform: translate(-50%, -50%) scale(1);
            width: min(88vw, 21rem);
            height: min(70vh, 24rem);
        }

        /* ── Quick Navigation links inside the revealed PH panel ── */
        .qn-link {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            width: 100%;
            text-align: left;
            padding: 0.5rem 0.65rem;
            border-radius: 0.5rem;
            background: #ffffff;
            border: 1px solid rgba(15,32,66,0.10);
            box-shadow: 0 1px 2px rgba(15,32,66,0.05);
            color: #0f2042;
            font-size: 11px;
            font-weight: 600;
            letter-spacing: 0.01em;
            transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
            cursor: pointer;
        }
        .qn-link:hover {
            background: #0f2042;
            border-color: #d4af37;
            color: #d4af37;
            box-shadow: 0 8px 18px -8px rgba(10,25,47,0.45);
            transform: translateX(3px);
        }
        .qn-link .qn-ico {
            color: #a3875f;
            font-size: 10px;
            width: 1rem;
            text-align: center;
            transition: color 0.3s ease;
        }
        .qn-link:hover .qn-ico { color: #d4af37; }
        .qn-link .qn-arrow {
            margin-left: auto;
            font-size: 8px;
            color: #0f2042;
            opacity: 0;
            transform: translateX(-4px);
            transition: all 0.3s ease;
        }
        .qn-link:hover .qn-arrow { opacity: 1; transform: translateX(0); color: #d4af37; }
        .qn-sub { background: rgba(15,32,66,0.045); }

        /* Elegant Odometer Ticket Styles */
        .odometer-digit-container {
            height: 1.5rem;
            overflow: hidden;
            display: inline-block;
            position: relative;
        }
        .odometer-digit-column {
            display: flex;
            flex-direction: column;
            transition: transform 1.2s cubic-bezier(0.34, 1.56, 0.64, 1);
        }
        .odometer-digit-item {
            height: 1.5rem;
            line-height: 1.5rem;
            text-align: center;
        }
        @media (min-width: 640px) {
            .odometer-digit-container { height: 1.75rem; }
            .odometer-digit-item { height: 1.75rem; line-height: 1.75rem; }
        }

        @media (min-width: 768px) {
            p, .indented-p {
                padding-left: 1.5rem;
                padding-right: 1.5rem;
            }
            #ai-chat-bot { bottom: 25px; right: 25px; }
        }

        @media (max-width: 767px) {
            .marquee-content { animation-duration: 22s; }
        }

        /* ================= Google Translate (Light / Search) Widget ================= */
        /* Hide every trace of Google's own default UI (banner, iframe, tooltip, highlight) */
        body { top: 0 !important; position: static !important; }
        .goog-te-banner-frame.skiptranslate,
        .goog-te-banner-frame { display: none !important; visibility: hidden !important; height: 0 !important; }
        .goog-te-gadget-icon { display: none !important; }
        .goog-tooltip, .goog-tooltip:hover { display: none !important; }
        .goog-text-highlight { background: none !important; box-shadow: none !important; }
        #goog-gt-tt, .goog-te-balloon-frame { display: none !important; }
        #google_translate_element { position: absolute; left: -9999px; top: -9999px; height: 0; overflow: hidden; }
        iframe.skiptranslate { display: none !important; }

        /* Custom PH Legal translate widget */
        #ph-translate { position: relative; }
        #ph-translate .pht-trigger {
            display: inline-flex; align-items: center; gap: 0.5rem;
            background: #ffffff; border: 1px solid #e2edf8; color: #0f2042;
            padding: 0.4rem 0.75rem; border-radius: 9999px; font-size: 0.65rem;
            font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em;
            box-shadow: 0 1px 2px rgba(15,32,66,0.06);
            transition: all 0.25s ease; cursor: pointer;
        }
        #ph-translate .pht-trigger:hover { border-color: #d4af37; color: #a3875f; box-shadow: 0 4px 10px rgba(212,175,55,0.15); }
        #ph-translate .pht-panel {
            position: absolute; top: calc(100% + 0.6rem); left: 0; width: 17rem; max-width: 80vw;
            background: #ffffff; border-radius: 0.75rem; border-top: 4px solid #d4af37;
            box-shadow: 0 20px 45px -10px rgba(10,25,47,0.35), 0 6px 18px -8px rgba(10,25,47,0.2);
            z-index: 1005; overflow: hidden;
            transform-origin: top left;
        }
        #ph-translate .pht-search-wrap { padding: 0.85rem 0.85rem 0.6rem 0.85rem; border-bottom: 1px solid #f4f7fa; }
        #ph-translate .pht-search {
            width: 100%; padding: 0.6rem 0.8rem; font-size: 0.8rem; border-radius: 0.5rem;
            border: 1px solid #e2edf8; outline: none; color: #0f2042; background: #f4f7fa;
            transition: box-shadow 0.2s ease, border-color 0.2s ease;
        }
        #ph-translate .pht-search:focus { border-color: #d4af37; box-shadow: 0 0 0 2px rgba(212,175,55,0.35); background: #ffffff; }
        #ph-translate .pht-list { max-height: 15.5rem; overflow-y: auto; padding: 0.4rem; }
        #ph-translate .pht-list::-webkit-scrollbar { width: 6px; }
        #ph-translate .pht-list::-webkit-scrollbar-thumb { background: #e2edf8; border-radius: 4px; }
        #ph-translate .pht-item {
            display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
            width: 100%; text-align: left; padding: 0.55rem 0.7rem; font-size: 0.78rem;
            border-radius: 0.4rem; color: #0f2042; transition: background 0.15s ease, color 0.15s ease; cursor: pointer;
        }
        #ph-translate .pht-item:hover { background: #f4f7fa; color: #a3875f; }
        #ph-translate .pht-item.pht-active { background: #0f2042; color: #d4af37; font-weight: 600; }
        #ph-translate .pht-empty { padding: 1rem 0.7rem; font-size: 0.75rem; color: #9ca3af; text-align: center; }

        /* ================= Read Aloud Widget ================= */
        body.ph-reading ::selection,
        body.ph-reading *::selection {
            background: rgba(212,175,55,0.35) !important; color: inherit !important;
        }
        body.ph-reading ::-moz-selection,
        body.ph-reading *::-moz-selection {
            background: rgba(212,175,55,0.35) !important; color: inherit !important;
        }

        /* Video container styling */
        .news-video-wrapper {
            position: relative;
            width: 100%;
            padding-top: 56.25%;
            background: #000;
            border-radius: 8px;
            overflow: hidden;
        }
        .news-video-wrapper video,
        .news-video-wrapper iframe {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border: 0;
        }
        /* ================= Read Aloud / Premium TTS System ================= */
        .read-aloud-highlight {
            background: linear-gradient(90deg, rgba(212,175,55,0.20) 0%, rgba(212,175,55,0.08) 100%) !important;
            border-left: 3px solid #d4af37 !important;
            padding-left: 0.75rem !important;
            margin-left: -0.75rem !important;
            border-radius: 0 4px 4px 0;
            transition: background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
            scroll-margin-top: 100px;
            position: relative;
            box-shadow: -2px 0 8px rgba(212,175,55,0.12);
        }
        .read-aloud-highlight::before {
            content: '';
            position: absolute;
            left: -1px;
            top: 0;
            bottom: 0;
            width: 3px;
            background: linear-gradient(180deg, #d4af37, #c5a880);
            border-radius: 0 2px 2px 0;
        }

        .tts-word-active {
            background-color: rgba(212,175,55,0.50) !important;
            border-radius: 3px;
            padding: 0 2px;
            margin: 0 -2px;
            box-shadow: 0 0 0 1px rgba(212,175,55,0.3);
            transition: background-color 0.1s ease;
        }

        .read-aloud-fade-in {
            animation: readAloudFadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1) both;
        }
        @keyframes readAloudFadeIn {
            from { opacity: 0; transform: translateY(6px) scale(0.97); }
            to { opacity: 1; transform: translateY(0) scale(1); }
        }

        .read-aloud-panel {
            width: 22rem; max-width: calc(100vw - 2rem);
        }

        @keyframes readAloudWave {
            0%, 60%, 100% { transform: scaleY(0.3); }
            30% { transform: scaleY(1); }
        }
        .read-aloud-wave span {
            display: inline-block; width: 3px; height: 12px;
            background: #d4af37; margin: 0 1px; border-radius: 2px;
            animation: readAloudWave 1.2s ease-in-out infinite;
        }
        .read-aloud-wave span:nth-child(2) { animation-delay: 0.15s; }
        .read-aloud-wave span:nth-child(3) { animation-delay: 0.3s; }
        .read-aloud-wave span:nth-child(4) { animation-delay: 0.45s; }

        .read-aloud-kbd {
            display: inline-block;
            font-size: 9px;
            padding: 1px 5px;
            background: #f4f7fa;
            border: 1px solid #e2edf8;
            border-radius: 3px;
            color: #9ca3af;
            font-family: 'Inter', sans-serif;
            line-height: 1.4;
        }

        /* ================= Read Aloud Sidebar (matches Translation style) ================= */
        #ph-readaloud { position: relative; }
        #ph-readaloud .pra-trigger {
            display: inline-flex; align-items: center; gap: 0.5rem;
            background: #ffffff; border: 1px solid #e2edf8; color: #0f2042;
            padding: 0.4rem 0.75rem; border-radius: 9999px; font-size: 0.65rem;
            font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em;
            box-shadow: 0 1px 2px rgba(15,32,66,0.06);
            transition: all 0.25s ease; cursor: pointer;
        }
        #ph-readaloud .pra-trigger:hover { border-color: #d4af37; color: #a3875f; box-shadow: 0 4px 10px rgba(212,175,55,0.15); }
        #ph-readaloud .pra-trigger.pra-speaking { border-color: #d4af37; color: #a3875f; }
        #ph-readaloud .pra-panel {
            position: absolute; top: calc(100% + 0.6rem); left: 0; width: 24rem; max-width: 80vw;
            background: rgba(255,255,255,0.55);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border-radius: 0.75rem; border-top: 4px solid #d4af37;
            box-shadow: 0 20px 45px -10px rgba(10,25,47,0.35), 0 6px 18px -8px rgba(10,25,47,0.2);
            z-index: 1005; overflow: hidden;
            transform-origin: top left;
        }
        #ph-readaloud .pra-progress { height: 3px; background: rgba(15,32,66,0.08); border-radius: 2px; overflow: hidden; margin-bottom: 0.45rem; }
        #ph-readaloud .pra-bar { height: 100%; background: linear-gradient(90deg, #d4af37, #a3875f); border-radius: 2px; transition: width 0.3s ease; }
        #ph-readaloud .pra-controls { display: flex; align-items: center; gap: 0.5rem; }
        #ph-readaloud .pra-speed { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.6rem; font-weight: 700; color: #0f2042; }
        #ph-readaloud .pra-speed span { min-width: 1.8rem; text-align: center; }