/*
Theme Name: JuanTheme
Description: A powerful, minimal WordPress theme designed exclusively for Elementor and Elementor Pro. Built from the ground up to provide maximum flexibility and performance when using Elementor's theme builder. Perfect for creating custom websites with complete design freedom.
Author: Juan Londono
Author URI: https://juanlondono.com
Version: 1.0.0
Requires at least: 5.8
Tested up to: 6.6
Requires PHP: 8.0
Network: false
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: juantheme
Domain Path: /languages
Tags: elementor, elementor-pro, minimal, clean, modern, responsive, custom-background, custom-header, custom-logo, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, one-column, two-columns, three-columns, left-sidebar, right-sidebar, footer-widgets, blog
*/

/* Reset and Base Styles */
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
    Ubuntu, Cantarell, sans-serif;
  line-height: 1.6;
  color: #333;
}

/* Container */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Links */
a {
  color: #0073aa;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* Images */
img {
  max-width: 100%;
  height: auto;
}

/* Elementor Compatibility */
.elementor-page {
  overflow-x: hidden;
}

/* Hide default header/footer when Elementor is handling them */
body.elementor-template-full-width header,
body.elementor-template-full-width footer {
  display: none;
}

/* Basic WordPress alignment classes */
.alignleft {
  float: left;
  margin-right: 1em;
}

.alignright {
  float: right;
  margin-left: 1em;
}

.aligncenter {
  display: block;
  margin: 0 auto;
}

/* Screen reader text */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

/* Basic responsive design */
@media (max-width: 768px) {
  .container {
    padding: 0 15px;
  }
}

/* ========================================
   Elementor Compatibility
   ======================================== */

.elementor-page .entry-header {
  display: none;
}

.elementor-page .entry-content {
  margin: 0;
}

.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3 {
  margin: 0;
}

/* ===================================
   JUANTHEME WELCOME SCREEN STYLES
   =================================== */

/* Welcome Screen Container */
.juantheme-welcome-screen {
  margin: 0;
  padding: 0;
  height: 100vh;
  overflow: hidden;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
    Ubuntu, Cantarell, sans-serif;
}

/* Hide header and footer when welcome screen is active */
.juantheme-welcome-active .site-header,
.juantheme-welcome-active .site-footer {
  display: none !important;
}

.juantheme-welcome-active #page {
  margin: 0;
  padding: 0;
}

.juantheme-welcome-container {
  background-color: #0f1120;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  overflow: hidden;
}

.juantheme-welcome-container::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(
    ellipse at center,
    rgba(255, 255, 255, 0.02) 0%,
    transparent 70%
  );
  pointer-events: none;
}

.juantheme-welcome-content {
  text-align: center;
  max-width: 600px;
  position: relative;
  z-index: 2;
  animation: fadeInUp 1s ease-out;
}

/* Logo Section */
.juantheme-logo-section {
  margin-bottom: 40px;
}

.juantheme-welcome-logo {
  max-width: 300px;
  max-height: 300px;
  width: auto;
  height: auto;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 4px 20px rgba(255, 255, 255, 0.1));
  transition: transform 0.3s ease, filter 0.3s ease;
}

.juantheme-welcome-logo:hover {
  transform: scale(1.05);
  filter: drop-shadow(0 6px 30px rgba(255, 255, 255, 0.15));
}

.juantheme-welcome-site-title {
  font-size: 3.5rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
  text-shadow: 0 2px 20px rgba(255, 255, 255, 0.1);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

/* Setup Guide Styling */
.juantheme-setup-guide {
  text-align: left;
  margin: 2rem 0;
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
}

.juantheme-setup-guide h3 {
  color: #4a9eff;
  margin-bottom: 1rem;
  font-size: 1.2rem;
  text-align: center;
}

.juantheme-setup-steps {
  list-style: none;
  padding: 0;
  counter-reset: step-counter;
}

.juantheme-setup-steps li {
  counter-increment: step-counter;
  margin-bottom: 1rem;
  padding-left: 2.5rem;
  position: relative;
}

.juantheme-setup-steps li::before {
  content: counter(step-counter);
  position: absolute;
  left: 0;
  top: 0;
  background: #4a9eff;
  color: white;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: bold;
}

.juantheme-setup-steps strong {
  color: white;
  display: block;
  margin-bottom: 0.25rem;
}

.juantheme-setup-steps small {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.85rem;
}

/* Welcome Message */
.juantheme-welcome-message {
  margin-bottom: 50px;
}

.juantheme-welcome-heading {
  font-size: 2.5rem;
  font-weight: 600;
  color: #ffffff;
  margin: 0 0 20px 0;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  letter-spacing: -0.01em;
}

.juantheme-welcome-description {
  font-size: 1.3rem;
  color: #a8b3cf;
  margin: 0 0 15px 0;
  font-weight: 400;
  line-height: 1.4;
}

.juantheme-welcome-subtitle {
  font-size: 1rem;
  color: #6b7280;
  margin: 0;
  font-weight: 400;
  line-height: 1.5;
}

/* Action Buttons */
.juantheme-welcome-actions {
  margin-bottom: 60px;
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.juantheme-btn {
  display: inline-block;
  padding: 15px 30px;
  text-decoration: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 1rem;
  transition: all 0.3s ease;
  border: 2px solid transparent;
  cursor: pointer;
  text-align: center;
  min-width: 180px;
  position: relative;
  overflow: hidden;
}

.juantheme-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.1),
    transparent
  );
  transition: left 0.5s ease;
}

.juantheme-btn:hover::before {
  left: 100%;
}

.juantheme-btn-primary {
  background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
  color: #ffffff;
  box-shadow: 0 4px 20px rgba(59, 130, 246, 0.3);
}

.juantheme-btn-primary:hover {
  background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%);
  transform: translateY(-2px);
  box-shadow: 0 6px 30px rgba(59, 130, 246, 0.4);
  text-decoration: none;
}

.juantheme-btn-secondary {
  background: transparent;
  color: #a8b3cf;
  border: 2px solid #374151;
}

.juantheme-btn-secondary:hover {
  background: #374151;
  color: #ffffff;
  transform: translateY(-2px);
  text-decoration: none;
  border-color: #4b5563;
}

/* Footer Info */
.juantheme-welcome-footer {
  opacity: 0.7;
}

.juantheme-welcome-credits,
.juantheme-welcome-author {
  font-size: 0.9rem;
  color: #6b7280;
  margin: 8px 0;
  line-height: 1.4;
}

.juantheme-welcome-footer a {
  color: #a8b3cf;
  text-decoration: none;
  transition: color 0.3s ease;
}

.juantheme-welcome-footer a:hover {
  color: #ffffff;
  text-decoration: none;
}

/* Animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Responsive Design */
@media (max-width: 768px) {
  .juantheme-welcome-site-title {
    font-size: 2.5rem;
  }

  .juantheme-welcome-heading {
    font-size: 2rem;
  }

  .juantheme-welcome-description {
    font-size: 1.1rem;
  }

  .juantheme-welcome-logo {
    max-width: 220px;
    max-height: 220px;
  }

  .juantheme-welcome-actions {
    flex-direction: column;
    align-items: center;
  }

  .juantheme-btn {
    min-width: 200px;
  }
}

@media (max-width: 480px) {
  .juantheme-welcome-container {
    padding: 15px;
  }

  .juantheme-welcome-site-title {
    font-size: 2rem;
  }

  .juantheme-welcome-heading {
    font-size: 1.75rem;
  }

  .juantheme-welcome-description {
    font-size: 1rem;
  }

  .juantheme-welcome-logo {
    max-width: 180px;
    max-height: 180px;
  }

  .juantheme-btn {
    padding: 12px 25px;
    font-size: 0.95rem;
  }
}
