/*
Theme Name: HAWI Studios
Theme URI: https://hawistudios.com
Author: HAWI Studios
Author URI: https://hawistudios.com
Description: A modern, highly responsive WordPress theme crafted for HAWI Studios. Features a refined dark aesthetic (#111111, #d92c39, #ffffff), dynamic social media follower stats, grid-based blog layout, and custom page templates.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: hawi-studios
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: custom-colors, custom-menu, featured-images, full-width-template, responsive-layout, theme-options, translation-ready
*/

:root {
  --hawi-red: #d92c39;
  --hawi-dark: #0a0a0c;
  --hawi-white: #ffffff;
  --hawi-dark-surface: #111113;
  --hawi-dark-card: #141416;
  --hawi-dark-border: rgba(255, 255, 255, 0.08);
  --radius: 0.625rem;
}

/* Global resets & dark theme defaults */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background-color: #0a0a0c;
  color: #ffffff;
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

body,
h1, h2, h3, h4, h5, h6,
p, span, a, button, input, select, textarea,
.font-sans {
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

body {
  margin: 0;
  padding: 0;
  background-color: #0a0a0c;
  color: #ffffff;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* Hyperminimalist pure dark backgrounds (no noise, no grid lines) */
.bg-grid-pattern {
  background-color: #0a0a0c;
}

.bg-radial-vignette {
  background-color: #0a0a0c;
}

/* Custom Logo & Branding Sizing Guards (Prevents giant image blowouts & clipping) */
.custom-logo-wrap,
.custom-logo-link {
  display: inline-flex !important;
  align-items: center !important;
  height: 44px !important;
  max-height: 44px !important;
  overflow: visible !important;
  text-decoration: none !important;
}

.custom-logo,
.custom-logo-link img,
.site-logo img,
.site-branding img {
  height: 42px !important;
  max-height: 42px !important;
  width: auto !important;
  max-width: 220px !important;
  object-fit: contain !important;
  display: block !important;
  overflow: visible !important;
  padding: 1px 0 !important;
}

footer .custom-logo,
footer .custom-logo-link img,
footer .site-logo img {
  height: 44px !important;
  max-height: 44px !important;
  max-width: 220px !important;
  overflow: visible !important;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 6px;
}
::-webkit-scrollbar-track {
  background: #0a0a0c;
}
::-webkit-scrollbar-thumb {
  background: #202024;
  border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
  background: #d92c39;
}

/* Selection Color */
::selection {
  background-color: #d92c39;
  color: #ffffff;
}

/* ==========================================================================
   Hyperminimalist shadcn UI Components (Dark Zinc & HAWI Red Accent)
   ========================================================================== */

/* Uniform Buttons */
.shadcn-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  height: 2.5rem;
  min-height: 2.5rem;
  padding: 0 1.25rem;
  border-radius: 0.5rem;
  font-weight: 500;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  transition: all 0.15s ease;
  cursor: pointer;
  user-select: none;
  text-decoration: none !important;
  white-space: nowrap;
  box-sizing: border-box;
}
.shadcn-btn:focus-visible {
  outline: 2px solid #d92c39;
  outline-offset: 2px;
}
.shadcn-btn:active {
  transform: scale(0.98);
}
.shadcn-btn-primary {
  background-color: #d92c39;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.shadcn-btn-primary:hover {
  background-color: #be202d;
  color: #ffffff !important;
}
.shadcn-btn-secondary {
  background-color: #141417;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.shadcn-btn-secondary:hover {
  background-color: #1b1b20;
  border-color: rgba(255, 255, 255, 0.16);
  color: #ffffff !important;
}
.shadcn-btn-outline {
  background-color: transparent;
  color: #d4d4d8 !important;
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.shadcn-btn-outline:hover {
  background-color: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.24);
  color: #ffffff !important;
}
.shadcn-btn-ghost {
  background-color: transparent;
  color: #a1a1aa !important;
  border: 1px solid transparent;
}
.shadcn-btn-ghost:hover {
  background-color: rgba(255, 255, 255, 0.04);
  color: #ffffff !important;
}

/* Button Sizing Variations (Always Uniform) */
.shadcn-btn-sm {
  height: 2.125rem;
  min-height: 2.125rem;
  padding: 0 0.875rem;
  font-size: 0.6875rem;
  gap: 0.375rem;
  border-radius: 0.375rem;
}
.shadcn-btn-lg {
  height: 2.875rem;
  min-height: 2.875rem;
  padding: 0 1.5rem;
  font-size: 0.8125rem;
  border-radius: 0.5rem;
}

/* Badges */
.shadcn-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border-radius: 9999px;
  padding: 0.2rem 0.65rem;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1;
  transition: all 0.15s ease;
  user-select: none;
}
.shadcn-badge-outline {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background-color: #111114;
  color: #a1a1aa;
}
.shadcn-badge-secondary {
  border: 1px solid rgba(255, 255, 255, 0.08);
  background-color: #16161a;
  color: #e4e4e7;
}
.shadcn-badge-hawi {
  border: 1px solid rgba(217, 44, 57, 0.25);
  background-color: rgba(217, 44, 57, 0.06);
  color: #f4f4f5;
}

/* Cards */
.shadcn-card {
  background-color: #111114;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.75rem;
  transition: border-color 0.15s ease;
}
.shadcn-card:hover {
  border-color: rgba(255, 255, 255, 0.16);
}
.shadcn-card-header {
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.shadcn-card-title {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
  color: #ffffff;
  letter-spacing: -0.01em;
}
.shadcn-card-description {
  font-size: 0.8125rem;
  color: #71717a;
  line-height: 1.5;
}
.shadcn-card-content {
  padding: 1.25rem 1.5rem;
  padding-top: 0;
}
.shadcn-card-footer {
  padding: 1.25rem 1.5rem;
  padding-top: 0;
  display: flex;
  align-items: center;
}

/* Separator */
.shadcn-separator {
  height: 1px;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.07);
  margin: 1rem 0;
}

/* Subtle pulse border animation */
@keyframes border-pulse {
  0%, 100% { border-color: #262626; }
  50% { border-color: rgba(217, 44, 57, 0.5); }
}
.animate-border-pulse {
  animation: border-pulse 4s ease-in-out infinite;
}

/* Prose formatting for single articles */
.hawi-prose {
  color: #ffffff;
  font-size: 1.125rem;
  line-height: 1.85;
}

.hawi-prose p {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  color: #e5e5e5;
}

.hawi-prose h1,
.hawi-prose h2,
.hawi-prose h3,
.hawi-prose h4,
.hawi-prose h5,
.hawi-prose h6 {
  color: #ffffff;
  font-weight: 700;
  line-height: 1.3;
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}

.hawi-prose h1 { font-size: 2.25rem; }
.hawi-prose h2 { font-size: 1.875rem; border-bottom: 1px solid #282828; padding-bottom: 0.5rem; }
.hawi-prose h3 { font-size: 1.5rem; }
.hawi-prose h4 { font-size: 1.25rem; }

.hawi-prose a {
  color: #d92c39;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}

.hawi-prose a:hover {
  color: #ffffff;
}

.hawi-prose blockquote {
  border-left: 4px solid #d92c39;
  padding-left: 1.5rem;
  margin: 2rem 0;
  font-style: italic;
  color: #ffffff;
  background-color: #171717;
  padding: 1.25rem 1.5rem;
  border-radius: 0 0.5rem 0.5rem 0;
}

.hawi-prose ul,
.hawi-prose ol {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
  padding-left: 2rem;
  color: #e5e5e5;
}

.hawi-prose li {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.hawi-prose img {
  max-width: 100%;
  height: auto;
  border-radius: 0.75rem;
  margin: 2rem 0;
  border: 1px solid #282828;
}

.hawi-prose code {
  background-color: #1c1c1c;
  color: #d92c39;
  padding: 0.2rem 0.4rem;
  border-radius: 0.25rem;
  font-size: 0.95em;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.hawi-prose pre {
  background-color: #171717;
  border: 1px solid #282828;
  padding: 1.25rem;
  border-radius: 0.5rem;
  overflow-x: auto;
  margin: 2rem 0;
}

.hawi-prose pre code {
  background: transparent;
  color: #ffffff;
  padding: 0;
}

.hawi-prose hr {
  border: 0;
  border-top: 1px solid #282828;
  margin: 3rem 0;
}

/* ==========================================================================
   Accessibility & High-Contrast Overrides for Article Callouts & Summaries
   Fixes pale text on light backgrounds and enforces brand dark aesthetic
   ========================================================================== */
.hawi-prose .ace-quick-answer,
.ace-quick-answer,
.hawi-prose .quick-answer,
.hawi-prose .callout-box,
.hawi-prose .summary-box,
.hawi-prose .info-box {
  background: #171717 !important;
  background-color: #171717 !important;
  border: 1px solid #262626 !important;
  border-left: 4px solid #d92c39 !important;
  border-radius: 1rem !important;
  padding: 1.5rem 1.75rem !important;
  margin: 2rem 0 !important;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5) !important;
}

.hawi-prose .ace-quick-answer h2,
.hawi-prose .ace-quick-answer h3,
.hawi-prose .ace-quick-answer h4,
.ace-quick-answer h2,
.ace-quick-answer h3,
.ace-quick-answer h4 {
  color: #ffffff !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  margin-top: 0 !important;
  margin-bottom: 0.75rem !important;
  letter-spacing: -0.01em !important;
}

.hawi-prose .ace-quick-answer p,
.ace-quick-answer p,
.hawi-prose .ace-quick-answer li,
.ace-quick-answer li,
.hawi-prose .ace-quick-answer span {
  color: #e4e4e7 !important; /* High contrast zinc-200 on #171717 (11.5:1 ratio, exceeds AAA) */
  font-size: 1.05rem !important;
  line-height: 1.75 !important;
  margin-bottom: 0 !important;
}

.hawi-prose .ace-quick-answer strong,
.ace-quick-answer strong {
  color: #ffffff !important;
  font-weight: 700 !important;
}

/* Key Field Takeaways card alignment and typography */
.hawi-prose .ace-key-takeaways,
.ace-key-takeaways {
  background: #171717 !important;
  background-color: #171717 !important;
  border: 1px solid #262626 !important;
  border-left: 4px solid #d92c39 !important;
  border-radius: 1rem !important;
  padding: 1.5rem 1.75rem !important;
  margin: 2rem 0 !important;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5) !important;
}

.hawi-prose .ace-key-takeaways h2,
.hawi-prose .ace-key-takeaways h3,
.hawi-prose .ace-key-takeaways h4,
.ace-key-takeaways h2,
.ace-key-takeaways h3,
.ace-key-takeaways h4 {
  color: #ffffff !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  margin-top: 0 !important;
  margin-bottom: 1rem !important;
}

.hawi-prose .ace-key-takeaways ul,
.ace-key-takeaways ul {
  padding-left: 1.25rem !important;
  margin: 0 !important;
}

.hawi-prose .ace-key-takeaways li,
.ace-key-takeaways li {
  color: #e4e4e7 !important;
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
  line-height: 1.7 !important;
}

.hawi-prose .ace-key-takeaways strong,
.ace-key-takeaways strong {
  color: #ffffff !important;
  font-weight: 700 !important;
}

/* ==========================================================================
   FAQ Section, Accordions & Schema Elements High-Contrast Styling
   Fixes white-on-light text contrast failure (WCAG AAA compliant)
   ========================================================================== */
.hawi-prose .ace-faq-section,
.ace-faq-section,
.hawi-prose .faq-section,
.hawi-prose .faq-container {
  background: #171717 !important;
  background-color: #171717 !important;
  border: 1px solid #262626 !important;
  border-left: 4px solid #d92c39 !important;
  border-radius: 1rem !important;
  padding: 1.75rem 2rem !important;
  margin: 2.5rem 0 !important;
  box-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.5) !important;
}

.hawi-prose .ace-faq-item,
.ace-faq-item {
  border-bottom: 1px solid #262626 !important;
  padding-bottom: 1.5rem !important;
  margin-bottom: 1.5rem !important;
}

.hawi-prose .ace-faq-item:last-child,
.ace-faq-item:last-child {
  border-bottom: none !important;
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.hawi-prose .ace-faq-question,
.ace-faq-question,
.hawi-prose .ace-faq-section h2,
.hawi-prose .ace-faq-section h3,
.hawi-prose .ace-faq-section h4 {
  color: #ffffff !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  line-height: 1.4 !important;
  margin-top: 0 !important;
  margin-bottom: 0.75rem !important;
  letter-spacing: -0.01em !important;
}

.hawi-prose .ace-faq-answer,
.ace-faq-answer,
.hawi-prose .ace-faq-answer p,
.ace-faq-answer p,
.hawi-prose .ace-faq-answer li,
.ace-faq-answer li,
.hawi-prose .ace-faq-answer span,
.ace-faq-answer span {
  color: #e4e4e7 !important; /* Zinc-200 on #171717 (11.5:1 contrast, exceeds WCAG AAA) */
  font-size: 1.05rem !important;
  line-height: 1.75 !important;
  margin: 0 !important;
}

.hawi-prose .ace-faq-answer strong,
.ace-faq-answer strong {
  color: #ffffff !important;
  font-weight: 700 !important;
}

/* Universal defense against any light background boxes in post content */
.hawi-prose .bg-slate-50,
.hawi-prose .bg-gray-50,
.hawi-prose .bg-white,
.hawi-prose [class*="bg-"][class*="-50"],
.hawi-prose [class*="bg-"][class*="-100"],
.hawi-prose [style*="background-color: rgb(24"],
.hawi-prose [style*="background-color: rgb(25"],
.hawi-prose [style*="background: rgb(24"],
.hawi-prose [style*="background: rgb(25"],
.hawi-prose [style*="background-color: #f"],
.hawi-prose [style*="background: #f"] {
  background-color: #171717 !important;
  background: #171717 !important;
  border-color: #262626 !important;
  color: #e4e4e7 !important;
}

.hawi-prose [class*="ace-"] {
  border-color: #262626 !important;
}

/* Smooth Scrolling */
html {
  scroll-behavior: smooth;
}

/* WS Form integration styling */
.wsf-form {
  max-width: 100%;
}
.wsf-form input,
.wsf-form textarea,
.wsf-form select {
  background-color: #171717 !important;
  color: #ffffff !important;
  border: 1px solid #282828 !important;
  border-radius: 0.5rem !important;
  padding: 0.75rem 1rem !important;
}
.wsf-form input:focus,
.wsf-form textarea:focus,
.wsf-form select:focus {
  border-color: #d92c39 !important;
  outline: none !important;
}
.wsf-form button[type="submit"],
.wsf-form input[type="submit"] {
  background-color: #d92c39 !important;
  color: #ffffff !important;
  border: none !important;
  font-weight: 600 !important;
  padding: 0.85rem 2rem !important;
  border-radius: 0.5rem !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}
.wsf-form button[type="submit"]:hover,
.wsf-form input[type="submit"]:hover {
  background-color: #ffffff !important;
  color: #111111 !important;
}

/* ==========================================================================
   Accessibility, Readability & Brand Color Enforcement (No Blue)
   Strictly #111111, #d92c39, #ffffff and neutral dark tones.
   ========================================================================== */

/* 1. YouTube Gallery / Plugin Refresh & Navigation Overrides */
/* Overwrite any default blue buttons, spinners, or pagination from yt gallery or plugins */
.hawi-shortcode-wrapper button,
.hawi-shortcode-wrapper .yt-gallery-refresh,
.hawi-shortcode-wrapper [class*="refresh"],
.hawi-shortcode-wrapper [class*="load-more"],
.hawi-shortcode-wrapper .btn-primary,
.yt-gallery-btn,
button.yt-channel-gallery-load-more,
.yt-channel-gallery-refresh {
  background-color: #d92c39 !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: 0 4px 15px rgba(217, 44, 57, 0.3) !important;
}

.hawi-shortcode-wrapper button:hover,
.hawi-shortcode-wrapper [class*="refresh"]:hover,
.hawi-shortcode-wrapper [class*="load-more"]:hover {
  background-color: #c42430 !important;
  color: #ffffff !important;
}

/* Eliminate blue SVGs and spinners */
.hawi-shortcode-wrapper svg,
[class*="yt_channel_gallery"] svg {
  fill: currentColor !important;
}

/* 2. Article Post Readability & High Contrast (WCAG AA compliant) */
.entry-content,
.hawi-prose {
  color: #f5f5f5 !important; /* Pristine high-contrast light text */
  font-size: 1.125rem;
  line-height: 1.8;
}

/* Light text on dark background - ensure no dark text on dark surfaces */
.hawi-prose p,
.entry-content p {
  color: #ededed !important;
  line-height: 1.85 !important;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.hawi-prose strong,
.entry-content strong,
.hawi-prose b,
.entry-content b {
  color: #ffffff !important;
  font-weight: 700;
}

/* High readability links: Crimson red with hover glow */
.hawi-prose a,
.entry-content a {
  color: #ff4d5a !important; /* Accessible high-contrast bright red */
  text-decoration: underline !important;
  text-underline-offset: 3px;
  font-weight: 600;
  transition: all 0.2s ease;
}

.hawi-prose a:hover,
.entry-content a:hover {
  color: #ffffff !important;
  text-decoration-color: #ffffff !important;
}

/* 3. Callout Boxes / Highlights / Summary Panels in Posts (Fix green, blue, washed out boxes) */
/* Force all direct-answer summaries, key takeaway boxes to brand obsidian card with crisp red accent */
.entry-content div[style*="background"],
.entry-content section[style*="background"],
.entry-content aside,
.entry-content [class*="summary"],
.entry-content [class*="takeaway"],
.entry-content [class*="highlight"],
.entry-content [class*="callout"],
.entry-content [class*="alert"],
.entry-content [class*="box"],
.entry-content [class*="card"] {
  background: #171717 !important;
  border: 1px solid #282828 !important;
  border-left: 4px solid #d92c39 !important;
  color: #f0f0f0 !important;
  border-radius: 0.75rem !important;
  padding: 1.5rem !important;
  margin: 2rem 0 !important;
}

/* Headings inside callout boxes */
.entry-content [class*="summary"] h2,
.entry-content [class*="summary"] h3,
.entry-content [class*="summary"] h4,
.entry-content [class*="takeaway"] h2,
.entry-content [class*="takeaway"] h3,
.entry-content [class*="takeaway"] h4,
.entry-content [class*="callout"] h2,
.entry-content [class*="callout"] h3,
.entry-content [class*="callout"] h4 {
  color: #ffffff !important;
  margin-top: 0 !important;
  font-weight: 800 !important;
}

.entry-content [class*="summary"] p,
.entry-content [class*="takeaway"] p,
.entry-content [class*="callout"] p {
  color: #dedede !important;
}

/* 4. High-Contrast Table Styling in Posts (Fix dark-on-dark, blue rows, transparent text) */
.entry-content table,
.hawi-prose table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 2.5rem 0 !important;
  background-color: #171717 !important;
  border: 1px solid #282828 !important;
  border-radius: 0.75rem !important;
  overflow: hidden !important;
}

.entry-content th,
.hawi-prose th {
  background-color: #202020 !important;
  color: #ffffff !important;
  font-weight: 800 !important;
  font-size: 0.8125rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  padding: 1rem 1.25rem !important;
  border-bottom: 2px solid #2d2d2d !important;
  text-align: left !important;
}

.entry-content td,
.hawi-prose td {
  padding: 1rem 1.25rem !important;
  border-bottom: 1px solid #242424 !important;
  color: #f0f0f0 !important; /* Bright, fully readable text */
  background-color: #171717 !important; /* Force dark background */
  font-size: 0.9375rem !important;
}

.entry-content tr:nth-child(even) td,
.hawi-prose tr:nth-child(even) td {
  background-color: #1a1a1a !important;
}

.entry-content tr:hover td,
.hawi-prose tr:hover td {
  background-color: #212121 !important;
}

/* Force links or spans inside tables to be white/red, never blue or dark gray */
.entry-content td a,
.hawi-prose td a {
  color: #ff4d5a !important;
  font-weight: 600 !important;
}

.entry-content td span,
.hawi-prose td span {
  color: inherit !important;
}

/* 5. Lists inside Posts */
.entry-content ul,
.hawi-prose ul {
  list-style-type: disc !important;
  padding-left: 1.5rem !important;
  margin: 1.5rem 0 !important;
}

.entry-content ol,
.hawi-prose ol {
  list-style-type: decimal !important;
  padding-left: 1.5rem !important;
  margin: 1.5rem 0 !important;
}

.entry-content li,
.hawi-prose li {
  color: #e5e5e5 !important;
  margin-bottom: 0.65rem !important;
  line-height: 1.75 !important;
}

.entry-content li strong,
.hawi-prose li strong {
  color: #ffffff !important;
}

/* 6. Comments Section High Readability */
#comments {
  margin-top: 3.5rem;
  padding-top: 2.5rem;
  border-top: 1px solid #262626;
}
#comments label {
  color: #dedede !important;
  font-size: 0.875rem;
  font-weight: 600;
}
#comments input[type="text"],
#comments input[type="email"],
#comments input[type="url"],
#comments textarea {
  background-color: #171717 !important;
  border: 1px solid #282828 !important;
  color: #ffffff !important;
  border-radius: 0.5rem !important;
  padding: 0.75rem 1rem !important;
  width: 100% !important;
}
#comments input:focus,
#comments textarea:focus {
  border-color: #d92c39 !important;
  outline: none !important;
}
#comments input[type="submit"] {
  background-color: #d92c39 !important;
  color: #ffffff !important;
  border: none !important;
  font-weight: 700 !important;
  padding: 0.75rem 1.75rem !important;
  border-radius: 0.5rem !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}
#comments input[type="submit"]:hover {
  background-color: #c42430 !important;
}

/* 7. YouTube Channel Gallery Shortcode Sizing & Ultra-Modern Theming */
.hawi-shortcode-wrapper {
  position: relative;
  width: 100%;
}

#ytcg-gallery-wrapper,
.ytcg-gallery-wrapper {
  display: block !important;
  width: 100% !important;
  position: relative !important;
}

#ytcg-gallery-container,
.ytcg-gallery-container {
  display: block !important;
  width: 100% !important;
  position: relative !important;
}

#ytcg-gallery-wrapper .ytcg-card,
.ytcg-card {
  background-color: #171717 !important;
  background: #171717 !important;
  border: 1px solid #262626 !important;
  border-radius: 1.25rem !important;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.45) !important;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
  overflow: hidden !important;
}

#ytcg-gallery-wrapper .ytcg-card:hover,
.ytcg-card:hover {
  border-color: rgba(217, 44, 57, 0.5) !important;
  transform: translateY(-4px) !important;
  box-shadow: 0 20px 40px -10px rgba(217, 44, 57, 0.25), 0 0 0 1px rgba(217, 44, 57, 0.2) !important;
}

#ytcg-gallery-wrapper .ytcg-thumbnail-container,
.ytcg-thumbnail-container {
  border-radius: 1rem !important;
  overflow: hidden !important;
  position: relative !important;
}

#ytcg-gallery-wrapper .ytcg-thumbnail-container img,
.ytcg-thumbnail-container img {
  border-radius: 1rem !important;
  transition: transform 0.5s ease !important;
}

#ytcg-gallery-wrapper .ytcg-card:hover .ytcg-thumbnail-container img,
.ytcg-card:hover .ytcg-thumbnail-container img {
  transform: scale(1.04) !important;
}

/* ==========================================================================
   Fix YouTube Gallery Play Button: Remove rectangular box, enforce clean circle
   ========================================================================== */
#ytcg-gallery-wrapper .ytcg-play-icon,
.ytcg-play-icon {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 9999px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: none !important;
}

#ytcg-gallery-wrapper .ytcg-play-icon i,
.ytcg-play-icon i {
  color: #d92c39 !important;
  background-color: #ffffff !important;
  border-radius: 50% !important;
  font-size: 52px !important;
  line-height: 1 !important;
  width: 52px !important;
  height: 52px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.7), 0 0 25px rgba(217, 44, 57, 0.5) !important;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease, color 0.3s ease, background-color 0.3s ease !important;
}

#ytcg-gallery-wrapper .ytcg-card:hover .ytcg-play-icon,
.ytcg-card:hover .ytcg-play-icon {
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

#ytcg-gallery-wrapper .ytcg-card:hover .ytcg-play-icon i,
.ytcg-card:hover .ytcg-play-icon i {
  color: #ffffff !important;
  background-color: #d92c39 !important;
  transform: scale(1.15) !important;
  box-shadow: 0 8px 30px rgba(217, 44, 57, 0.8), 0 0 35px rgba(217, 44, 57, 0.7) !important;
}

/* Authentic Brand-Colored Social Buttons & Badges */
.hawi-social-btn:hover {
  background-color: var(--brand-hover-bg) !important;
  border-color: var(--brand-hover-bg) !important;
  color: var(--brand-hover-txt) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.6) !important;
}
.hawi-brand-badge:hover {
  border-color: var(--brand-color) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
}

/* WordPress Admin Bar Compatibility for Sticky Header */
.admin-bar #masthead {
  top: 32px !important;
}
@media screen and (max-width: 782px) {
  .admin-bar #masthead {
    top: 46px !important;
  }
}

/* ==========================================================================
   YouTube Channel Gallery: Ultra-Minimal & Centered Load More Button
   ========================================================================== */

/* 1. Transparent Full-Grid Spanning Container */
#ytcg-load-more-container,
.ytcg-load-more-container,
div#ytcg-load-more-container {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 3rem auto 1.5rem !important;
  padding: 0 !important;
  clear: both !important;
  float: none !important;
  position: relative !important;
}

#ytcg-load-more-container [data-ytcg-sentinel] {
  width: 1px !important;
  height: 1px !important;
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* 2. Ultra-Minimal Load More Button */
#ytcg-load-more-container button,
.ytcg-load-more-btn,
.hawi-shortcode-wrapper button.ytcg-load-more-btn,
.hawi-shortcode-wrapper #ytcg-load-more-btn,
.hawi-shortcode-wrapper button[class*="reload"],
.hawi-shortcode-wrapper button[class*="refresh"],
.hawi-shortcode-wrapper [id*="load-more"] button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  width: auto !important;
  min-width: 120px !important;
  height: 38px !important;
  padding: 0 1.25rem !important;
  background: #0e0e11 !important;
  background-color: #0e0e11 !important;
  color: #a1a1aa !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 9999px !important;
  font-family: inherit !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
  outline: none !important;
  margin: 0 auto !important;
  float: none !important;
}

#ytcg-load-more-container button:hover,
.ytcg-load-more-btn:hover,
.hawi-shortcode-wrapper button.ytcg-load-more-btn:hover {
  background: #141418 !important;
  background-color: #141418 !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
  color: #ffffff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5) !important;
}

#ytcg-load-more-container button:active,
.ytcg-load-more-btn:active,
.hawi-shortcode-wrapper button.ytcg-load-more-btn:active {
  transform: scale(0.96) !important;
  transition: transform 0.08s ease !important;
}

#ytcg-load-more-container button i,
.ytcg-load-more-btn i {
  font-size: 0.75rem !important;
  color: inherit !important;
  opacity: 0.8 !important;
}

/* 3. Spinner: Perfectly centered during active AJAX fetching */
.hawi-shortcode-wrapper .ytcg-spinner,
.hawi-shortcode-wrapper .yt-gallery-loading,
.hawi-shortcode-wrapper [class*="spinner"]:not(:empty) {
  grid-column: 1 / -1 !important;
  justify-self: center !important;
  align-self: center !important;
  margin: 2.5rem auto !important;
  text-align: center !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

/* 8. WS Form Dark Theme Styling (Strict #111111, #d92c39, #ffffff) */
.wsf-form,
.wsf-form label,
.wsf-label {
  color: #ffffff !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
}

.wsf-form input[type="text"],
.wsf-form input[type="email"],
.wsf-form input[type="tel"],
.wsf-form input[type="url"],
.wsf-form input[type="number"],
.wsf-form textarea,
.wsf-form select {
  background-color: #111111 !important;
  background: #111111 !important;
  border: 1px solid #262626 !important;
  color: #ffffff !important;
  border-radius: 0.875rem !important;
  padding: 0.875rem 1.125rem !important;
  font-family: 'Poppins', sans-serif !important;
  transition: all 0.2s ease !important;
}

.wsf-form input:focus,
.wsf-form textarea:focus,
.wsf-form select:focus {
  border-color: #d92c39 !important;
  box-shadow: 0 0 0 3px rgba(217, 44, 57, 0.25) !important;
  outline: none !important;
}

.wsf-form button[type="submit"],
.wsf-form .wsf-button,
.wsf-submit {
  background-color: #d92c39 !important;
  background: #d92c39 !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 0.875rem !important;
  font-weight: 600 !important;
  padding: 0.875rem 2rem !important;
  box-shadow: 0 0 25px -4px rgba(217, 44, 57, 0.45) !important;
  transition: all 0.2s ease !important;
}

.wsf-form button[type="submit"]:hover,
.wsf-form .wsf-button:hover,
.wsf-submit:hover {
  background-color: #ff3344 !important;
  background: #ff3344 !important;
  box-shadow: 0 0 35px rgba(217, 44, 57, 0.65) !important;
  transform: translateY(-1px) !important;
}

/* 9. GSAP & Cinematic Motion Acceleration Utilities */
.gsap-reveal {
  will-change: transform, opacity;
  transform: translateZ(0);
}

.perspective-1000 {
  perspective: 1000px;
  transform-style: preserve-3d;
}

.transform-gpu {
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
}

/* Accessibility: Respect Reduced Motion Preferences */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   10. Modern Haptic & Minimal Mobile Navigation
   ========================================================================== */

#mobile-menu-toggle {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  outline: none !important;
}

#mobile-menu-toggle .burger-box {
  width: 20px;
  height: 14px;
}

#mobile-menu-toggle .burger-line {
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s ease;
  transform-origin: center;
}

#mobile-menu-toggle.is-active .burger-line-top {
  transform: translateY(6.25px) rotate(45deg);
}

#mobile-menu-toggle.is-active .burger-line-bottom {
  transform: translateY(-6.25px) rotate(-45deg);
}

#mobile-menu {
  transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  transform-origin: top center;
}

#mobile-menu.hidden {
  display: none;
  opacity: 0;
  transform: translateY(-8px);
}

#mobile-menu:not(.hidden) {
  display: block;
  opacity: 1;
  transform: translateY(0);
}

/* Tactile Haptic Micro-Interactions */
button:active,
.shadcn-btn:active,
.hawi-social-btn:active,
.hawi-brand-badge:active {
  transform: scale(0.96) !important;
  transition: transform 0.08s cubic-bezier(0.2, 0.8, 0.2, 1) !important;
}

/* ==========================================================================
   11. Endless Modern Blog Card Marquee
   ========================================================================== */

.hawi-marquee-viewport {
  position: relative;
  width: 100%;
  overflow: hidden;
  mask-image: linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
}

.hawi-marquee-track {
  display: flex;
  width: max-content;
  animation: hawi-marquee-slide 38s linear infinite;
  will-change: transform;
}

.hawi-marquee-viewport:hover .hawi-marquee-track,
.hawi-marquee-track:hover {
  animation-play-state: paused;
}

.hawi-marquee-group {
  display: flex;
  gap: 1.25rem;
  flex-shrink: 0;
}

.hawi-marquee-card {
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s ease, box-shadow 0.25s ease;
}

.hawi-marquee-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px -10px rgba(0, 0, 0, 0.7), 0 0 20px -5px rgba(217, 44, 57, 0.25);
}

@keyframes hawi-marquee-slide {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-50%, 0, 0);
  }
}

@media (max-width: 640px) {
  .hawi-marquee-track {
    animation-duration: 28s;
  }
  .hawi-marquee-viewport {
    mask-image: linear-gradient(to right, transparent 0%, black 2%, black 98%, transparent 100%);
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 2%, black 98%, transparent 100%);
  }
}

/* Mobile Menu Scrollbar styling */
#mobile-menu::-webkit-scrollbar {
  width: 4px;
}
#mobile-menu::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 9999px;
}




