/* The Shore CMS - Advanced Styling with TailwindCSS */
@tailwind base;
@tailwind components;
@tailwind utilities;

/* Import Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');

/* Custom Animations for Hero Sections */
@keyframes pulseSlow {
  0%, 100% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(1.05); }
}

@keyframes pulseMedium {
  0%, 100% { opacity: 0.25; transform: scale(1); }
  50% { opacity: 0.35; transform: scale(1.03); }
}

@keyframes floatElement1 {
  0%, 100% { transform: translateY(0) translateX(0); }
  25% { transform: translateY(-10px) translateX(5px); }
  50% { transform: translateY(-20px) translateX(0); }
  75% { transform: translateY(-10px) translateX(-5px); }
}

@keyframes floatElement2 {
  0%, 100% { transform: translateY(0) translateX(0); }
  25% { transform: translateY(10px) translateX(-5px); }
  50% { transform: translateY(20px) translateX(0); }
  75% { transform: translateY(10px) translateX(5px); }
}

@keyframes floatElement3 {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-15px); }
  50% { transform: rotate(0deg) translateY(-25px); }
  75% { transform: rotate(-5deg) translateY(-15px); }
}

.animate-pulse-slow {
  animation: pulseSlow 8s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.animate-pulse-medium {
  animation: pulseMedium 6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.floating-element-1 {
  animation: floatElement1 12s ease-in-out infinite;
}

.floating-element-2 {
  animation: floatElement2 15s ease-in-out infinite;
}

.floating-element-3 {
  animation: floatElement3 18s ease-in-out infinite;
}

.shape-triangle {
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

/* Custom CSS Classes for Header */
.nav-link {
  @apply px-3 py-2 rounded-md text-sm font-medium text-gray-700 hover:text-primary hover:bg-primary/5 transition-all duration-200;
  text-decoration: none;
}

.mobile-nav-link {
  @apply block px-3 py-2 rounded-md text-base font-medium text-gray-700 hover:text-primary hover:bg-primary/5 transition-all duration-200;
  text-decoration: none;
}

.dropdown-item {
  @apply flex items-center px-4 py-2.5 text-sm text-gray-700 hover:bg-gray-50 transition-all duration-200;
  text-decoration: none;
}

.btn {
  @apply inline-flex items-center justify-center px-4 py-2 font-medium transition-all duration-200 rounded-lg border-0;
  text-decoration: none;
}

.btn-sm {
  @apply px-3 py-1.5 text-sm;
}

.btn-primary {
  @apply bg-primary text-white hover:bg-primary-700 hover:shadow-lg;
}

.btn-accent {
  @apply bg-accent text-white hover:bg-accent-700 hover:shadow-lg;
}

.btn-outline-primary {
  @apply bg-transparent border-2 border-primary text-primary hover:bg-primary hover:text-white;
}

.btn:hover {
  transform: translateY(-1px);
}

/* Therapy-specific Button Styles */
.btn-primary-therapy {
  @apply bg-primary text-white font-medium py-3 px-6 rounded-xl shadow-md hover:bg-primary-700 hover:shadow-lg transition-all duration-300 transform hover:-translate-y-0.5;
  text-decoration: none;
}

.btn-outline-therapy {
  @apply bg-transparent border-2 border-primary text-primary font-medium py-3 px-6 rounded-xl shadow hover:bg-primary hover:text-white transition-all duration-300 transform hover:-translate-y-0.5;
  text-decoration: none;
}

.btn-ghost-therapy {
  @apply bg-transparent text-primary font-medium py-3 px-6 rounded-xl hover:bg-primary/10 transition-all duration-300;
  text-decoration: none;
}

.btn-success-therapy {
  @apply bg-green-500 text-white font-medium py-3 px-6 rounded-xl shadow-md hover:bg-green-600 hover:shadow-lg transition-all duration-300 transform hover:-translate-y-0.5;
  text-decoration: none;
}

.btn-accent-therapy {
  @apply bg-accent text-white font-medium py-3 px-6 rounded-xl shadow-md hover:bg-accent-700 hover:shadow-lg transition-all duration-300 transform hover:-translate-y-0.5;
  text-decoration: none;
}

.btn-outline-white {
  @apply bg-transparent border-2 border-white text-white font-medium py-3 px-6 rounded-xl shadow hover:bg-white hover:text-primary transition-all duration-300 transform hover:-translate-y-0.5;
  text-decoration: none;
}

/* Enhanced Form Styles */
.form-card {
  @apply bg-white rounded-xl shadow-lg border-0 transition-all duration-300;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
}

.form-card:hover {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -6px rgba(0, 0, 0, 0.05);
}

.form-header {
  @apply text-center mb-6;
}

.form-title {
  @apply text-2xl font-bold text-gray-800 mb-2;
  font-family: 'Playfair Display', Georgia, serif;
}

.form-subtitle {
  @apply text-gray-600 text-sm;
}

.form-group {
  @apply mb-5 relative;
}

.form-label {
  @apply block text-sm font-medium text-gray-700 mb-2;
}

.form-input {
  @apply w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-primary focus:border-transparent transition-all duration-200;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05);
}

.form-input:focus {
  box-shadow: 0 4px 6px -1px rgba(0, 53, 111, 0.1), 0 2px 4px -1px rgba(0, 53, 111, 0.06);
}

.form-input.error {
  @apply border-red-500 focus:ring-red-500;
}

.form-text {
  @apply text-xs text-gray-500 mt-1;
}

.form-check {
  @apply flex items-center mb-4;
}

.form-check-input {
  @apply h-4 w-4 text-primary border-gray-300 rounded focus:ring-primary;
}

.form-check-label {
  @apply ml-2 block text-sm text-gray-700;
}

.form-error {
  @apply text-red-600 text-sm mt-1;
}

.form-link {
  @apply text-primary hover:text-primary-700 font-medium transition-colors duration-200;
  text-decoration: none;
}

.btn-form {
  @apply w-full py-3 px-4 rounded-lg font-medium transition-all duration-200 transform hover:-translate-y-0.5;
  text-decoration: none;
}

.btn-primary-form {
  @apply bg-primary text-white hover:bg-primary-700 hover:shadow-lg;
}

.btn-outline-form {
  @apply bg-transparent border-2 border-primary text-primary hover:bg-primary hover:text-white;
}

.form-footer {
  @apply text-center mt-4;
}

.social-login {
  @apply mt-6;
}

.social-login-title {
  @apply relative text-center mb-4;
}

.social-login-title::before,
.social-login-title::after {
  @apply absolute top-1/2 w-1/4 h-px bg-gray-300 content-[''];
}

.social-login-title::before {
  @apply left-0;
}

.social-login-title::after {
  @apply right-0;
}

.social-login-buttons {
  @apply flex justify-center space-x-4;
}

.social-btn {
  @apply w-10 h-10 rounded-full flex items-center justify-center text-white transition-all duration-200 hover:scale-110;
}

.social-btn-facebook {
  @apply bg-blue-600 hover:bg-blue-700;
}

.social-btn-google {
  @apply bg-red-600 hover:bg-red-700;
}

.social-btn-twitter {
  @apply bg-blue-400 hover:bg-blue-500;
}

.divider {
  @apply flex items-center my-6;
}

.divider-line {
  @apply flex-grow border-t border-gray-300;
}

.divider-text {
  @apply px-4 text-sm text-gray-500;
}

/* Therapy-specific Form Styles */
.form-label-therapy {
  @apply block text-sm font-medium text-gray-700 mb-2;
}

.form-input-therapy {
  @apply w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-primary focus:border-transparent transition-all duration-200;
}

.form-text-therapy {
  @apply text-xs text-gray-500 mt-1;
}

.form-textarea-therapy {
  @apply w-full px-4 py-3 rounded-lg border border-gray-300 focus:ring-2 focus:ring-primary focus:border-transparent transition-all duration-200;
  min-height: 120px;
}

/* Badge Styles */
.badge-therapy {
  @apply inline-flex items-center px-3 py-1 rounded-full text-xs font-medium bg-primary/10 text-primary;
}

/* Footer Styles - Beautiful Blue Background */
.footer-dark {
  background: linear-gradient(135deg, #00356F 0%, #001a2e 30%, #00346D 70%, #002952 100%) !important;
  color: #ffffff !important;
}

.footer-dark * {
  color: inherit;
}

.footer-dark .footer-link {
  color: rgba(255, 255, 255, 0.9) !important;
}

.footer-dark .footer-link:hover {
  color: #ffffff !important;
}

.footer-dark .social-link {
  background-color: rgba(255, 255, 255, 0.1);
}

.footer-dark .social-link:hover {
  background-color: rgba(255, 255, 255, 0.2);
}