/*
Theme Name: Royal Revitalization
Theme URI: https://royalrevitalizations.com
Author: Royal Revitalization
Description: Custom theme v2.0 — Built strictly from Google Stitch UI. Tailwind CSS + Material 3 design system. WCAG 2.1 AA. Integrated with enterprise booking, CRM, and management platform.
Version: 2.1.6
License: Proprietary
Text Domain: royal-rev
Requires at least: 6.0
Requires PHP: 8.0
*/

/* Tailwind CDN handles all styling via header.php */

/* Base font consistency — ensures Plus Jakarta Sans everywhere */
body, p, li, td, th, label, input, select, textarea, button, a, span, div {
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
h1, h2, h3, h4, h5, h6 {
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
}
.font-body-md, .font-body-lg {
  font-family: "Plus Jakarta Sans", sans-serif !important;
}
.font-headline-lg, .font-headline-md, .font-display-lg {
  font-family: "Playfair Display", serif !important;
}
/* This file only exists for WordPress theme identification */

/* Off-canvas mobile menu */
.offcanvas-overlay { position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:998;opacity:0;visibility:hidden;transition:opacity 0.3s,visibility 0.3s; }
.offcanvas-overlay.open { opacity:1;visibility:visible; }
.offcanvas-menu { position:fixed;top:0;left:-320px;width:320px;max-width:85vw;max-height:100vh;max-height:100dvh;background:#fff;z-index:999;transition:left 0.35s cubic-bezier(0.22,1,0.36,1);display:flex;flex-direction:column; }
.offcanvas-menu.open { left:0; }

/* Stitch custom classes */
.material-symbols-outlined { font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24; }
.text-gold-gradient { background:linear-gradient(135deg,#755b00 0%,#e6c364 50%,#755b00 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text; }
.bg-royal-gradient { background:linear-gradient(135deg,#22695c 0%,#1a5247 100%); }
.hero-gradient { background:linear-gradient(135deg,rgba(34,105,92,0.05) 0%,rgba(251,249,248,1) 100%); }
.border-elegant { border-bottom:1px solid #E8E8E8; }
.form-input-border { width:100%;border:1px solid #E8E8E8;border-radius:0.5rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;color:#1b1c1c;background:#fff;transition:border-color 0.2s; }
.form-input-border:focus { border-color:#22695c;outline:none;box-shadow:0 0 0 3px rgba(34,105,92,0.15); }

/* Animations from Stitch */
@keyframes hero-fade-up { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes subtle-pulse { 0%{transform:scale(1)} 50%{transform:scale(1.02)} 100%{transform:scale(1)} }
@keyframes shimmer { 0%{transform:translateX(-150%) skewX(-25deg)} 100%{transform:translateX(150%) skewX(-25deg)} }
@keyframes fadeInUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }

.animate-hero-title { animation:hero-fade-up 1.2s cubic-bezier(0.22,1,0.36,1) forwards;opacity:0; }
.animate-hero-subtitle { animation:hero-fade-up 1.2s cubic-bezier(0.22,1,0.36,1) forwards;animation-delay:0.3s;opacity:0; }
.animate-hero-buttons { animation:hero-fade-up 1.2s cubic-bezier(0.22,1,0.36,1) forwards;animation-delay:0.6s;opacity:0; }
.btn-pulse { animation:subtle-pulse 3s cubic-bezier(0.4,0,0.2,1) infinite; }
.btn-transition { transition:all 0.4s cubic-bezier(0.4,0,0.2,1); }
.btn-hover-effect:hover { transform:scale(1.05);box-shadow:0 10px 25px -5px rgba(0,0,0,0.1),0 8px 10px -6px rgba(0,0,0,0.1); }
.shimmer-btn { position:relative;overflow:hidden; }
.shimmer-btn::after { content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent);animation:shimmer 3s infinite; }
.service-card-animate { opacity:0;animation:fadeInUp 0.6s cubic-bezier(0.16,1,0.3,1) forwards; }
.service-card-hover { transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1),box-shadow 0.4s ease,border-color 0.4s ease; }
.service-card-hover:hover { transform:translateY(-8px);box-shadow:0 12px 24px -8px rgba(34,105,92,0.15); }
.btn-luxury-hover { transition:all 0.4s cubic-bezier(0.16,1,0.3,1); }
.reveal-item { opacity:0;transform:translateY(20px);transition:all 0.6s cubic-bezier(0.22,1,0.36,1); }
.reveal-item.active { opacity:1;transform:translateY(0); }
.row-hover:hover { background-color:rgba(34,105,92,0.03);transform:translateY(-4px);box-shadow:0 10px 30px -10px rgba(0,0,0,0.08); }
section { scroll-margin-top:140px; }

/* Skip link */
.skip-link { position:absolute;left:-9999px;top:0;z-index:100000;background:#1b1c1c;color:#fff;padding:12px 24px;font-size:16px;text-decoration:none; }
.skip-link:focus { left:0;outline:3px solid #C9A84C;outline-offset:2px; }

/* Focus visible */
*:focus-visible { outline:3px solid #C9A84C !important;outline-offset:3px !important; }
:focus:not(:focus-visible) { outline:none; }

/* Reduced motion */
@media (prefers-reduced-motion:reduce) {
  .animate-hero-title,.animate-hero-subtitle,.animate-hero-buttons,.btn-pulse,.shimmer-btn::after,.service-card-animate,.reveal-item { animation:none !important;opacity:1 !important;transform:none !important; }
  .btn-transition,.btn-hover-effect,.service-card-hover,.btn-luxury-hover,.row-hover { transition:none !important;transform:none !important; }
}

/* Print */
@media print { header,footer,.offcanvas-menu,.offcanvas-overlay,#aw-widget-root,.fixed { display:none !important; } body { color:#000;background:#fff; } }

/* ============================================
   v2.1 ADDITIONS — Missing Stitch Effects
   ============================================ */

/* Glass card (locations hub services badge) */
.glass-card { background: rgba(255,255,255,0.85); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.3); }

/* Coming soon blur */
.coming-soon-blur img { filter: blur(2px) brightness(0.95); }

/* Shimmer premium (packages VIP column) */
@keyframes shimmer-premium-glow { 0%{background-position:200% center} 100%{background-position:-200% center} }
.shimmer-premium { background: linear-gradient(90deg, transparent 0%, rgba(34,105,92,0.03) 50%, transparent 100%); background-size: 200% auto; animation: shimmer-premium-glow 6s linear infinite; }

/* Glass header (packages) */
.glass-header { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }

/* Active nav pill (services sticky nav) */
.nav-active { color: #22695c !important; border-bottom: 2px solid #22695c; padding-bottom: 4px; }

/* Pulse ring effect (services CTA button) */
@keyframes pulse-ring { 0%{box-shadow:0 0 0 0 rgba(34,105,92,0.4)} 70%{box-shadow:0 0 0 10px rgba(34,105,92,0)} 100%{box-shadow:0 0 0 0 rgba(34,105,92,0)} }
.pulse-btn { animation: pulse-ring 2.5s infinite; }

/* Text selection color */
::selection { background: rgba(34,105,92,0.2); }

/* Service card staggered entrance */
.service-card-stagger { opacity: 0; }
.service-card-stagger.visible { animation: fadeInUp 0.6s cubic-bezier(0.16,1,0.3,1) forwards; }

/* Footer newsletter input */
.footer-newsletter input:focus { border-color: #22695c; }

/* Location card mouse-move glow */
article[data-glow]::after {
  content: '';
  position: absolute;
  top: var(--mouse-y, 50%);
  left: var(--mouse-x, 50%);
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(34,105,92,0.06) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
}
article[data-glow]:hover::after { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .shimmer-premium, .pulse-btn, .service-card-stagger { animation: none !important; opacity: 1; }
}


/* v2.1.6 — Mobile responsive fixes */

/* Force single column on mobile for service cards */
@media (max-width: 767px) {
  .grid.md\:grid-cols-2,
  .grid.md\:grid-cols-3,
  .grid.md\:grid-cols-4,
  .grid.lg\:grid-cols-5 {
    grid-template-columns: 1fr !important;
  }
  
  /* Reduce heading sizes on mobile */
  .text-display-lg, .font-display-lg {
    font-size: 32px !important;
    line-height: 40px !important;
  }
  .text-headline-lg, .font-headline-lg {
    font-size: 28px !important;
    line-height: 36px !important;
  }
  .text-headline-md, .font-headline-md {
    font-size: 20px !important;
    line-height: 28px !important;
  }
  
  /* Service card: stack name and price vertically on mobile */
  .service-card-hover .flex.justify-between.items-start {
    flex-direction: column;
    gap: 4px;
  }
  
  /* Reduce hero height on mobile */
  [class*="h-[560px]"] {
    height: 400px !important;
    min-height: 350px !important;
  }
  
  /* Reduce section padding on mobile */
  .py-section-padding-desktop {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
  
  /* Accessibility widget - move up to avoid overlap with browser nav */
  #aw-widget-root {
    bottom: 80px !important;
  }
  
  /* Prevent text overflow on cards */
  .rounded-xl, .rounded-lg {
    overflow: hidden;
    word-wrap: break-word;
  }
  
  /* Category nav pills scroll horizontally */
  nav.sticky {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  nav.sticky > div {
    min-width: max-content;
  }
}
