@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
  :root {
    --bone-white: #f6f1ec;
    --soft-cream: #efe7de;
    --mocha-taupe: #b8a89a;
    --deep-earth: #6f5e4f;
    --charcoal-brown: #3f362e;

    --ivory-cream: #fffef9;
    --sand-beige: #e8e4dd;
    --forest-green: #2e8b57;
    --clay-orange: #d2691e;
    --brick-red: #b22222;
    --slate-blue: #6a5acd;

    --forest-green-alpha: rgba(46, 139, 87, 0.1);
    --clay-orange-alpha: rgba(210, 105, 30, 0.1);
    --brick-red-alpha: rgba(178, 34, 34, 0.1);
    --slate-blue-alpha: rgba(106, 90, 205, 0.1);
    --charcoal-brown-alpha: rgba(63, 54, 46, 0.1);

    /* Aperture - Square UI */
    --ui-primary: #006aff;
    --ui-primary-hover: #005ed6;
    --ui-primary-light: #e6f0ff;

    --ui-bg: #f6f8fa;
    --ui-bg-card: #ffffff;
    --ui-bg-hover: #f3f4f6;

    --ui-border: #e1e4e8;
    --ui-border-light: #f3f4f6;

    --ui-text-primary: #24292e;
    --ui-text-secondary: #586069;
    --ui-text-tertiary: #8b949e;
    --ui-text-inverse: #ffffff;

    --ui-success: #28a745;
    --ui-success-light: #d4edda;

    --ui-warning: #dbab09;
    --ui-warning-light: #fff3cd;

    --ui-error: #d73a49;
    --ui-error-light: #f8d7da;

    --ui-info: #0366d6;
    --ui-info-light: #cce5ff;

    --ui-shadow-sm:
      0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 4px rgba(0, 0, 0, 0.08);
    --ui-shadow-md:
      0 4px 12px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.08);
    --ui-shadow-lg:
      0 8px 24px rgba(0, 0, 0, 0, 16), 0 4px 6px rgba(0, 0, 0, 0.08);
    --ui-shadow-xl:
      0 20px 25px rgba(0, 0, 0, 0.16), 0 4px 6px rgba(0, 0, 0, 0.08);

    --ui-radius-sm: 4px;
    --ui-radius-md: 6px;
    --ui-radius-lg: 8px;
    --ui-radius-xl: 12px;
    --ui-radius-2xl: 16px;
    --ui-radius-full: 9999px;

    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 8px;
    --radius-xl: 12px;
    --radius-2xl: 16px;
    --radius-full: 9999px;

    /* Font sizes */
    --text-xs: 0.75rem; /* 12px */
    --text-sm: 0.875rem; /* 14px */
    --text-base: 1rem; /* 16px */
    --text-lg: 1.125rem; /* 18px */
    --text-xl: 1.25rem; /* 20px */
    --text-2xl: 1.5rem; /* 24px */
    --text-3xl: 1.875rem; /* 30px */
    --text-4xl: 2.25rem; /* 36px */
    --text-5xl: 3rem; /* 48px */
  }

  body {
    color: var(--charcoal-brown);
    background: var(--bone-white);
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-family: "Playfair Display", serif;
  }
}

@layer components {
  .booking-header {
    @apply fixed top-0 left-0 right-0 z-50;
    background: var(--bone-white);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--mocha-taupe);
  }

  .booking-nav {
    @apply max-w-7xl mx-auto px-8 py-4 flex items-center justify-between;
  }

  .booking-nav .logo a {
    @apply text-xl tracking-tight hover:opacity-80 transition-opacity;
    color: var(--charcoal-brown);
  }

  .booking-nav .nav-actions {
    @apply flex items-center gap-4;
  }

  .nav-primary {
    @apply max-w-7xl mx-auto px-8 py-6 flex items-center justify-between;
  }

  .logo a {
    @apply text-2xl tracking-tight hover:opacity-80 transition-opacity;
    color: var(--charcoal-brown);
  }

  .nav-links {
    @apply hidden md:flex items-center space-x-12;
  }

  .nav-links a {
    @apply hover:opacity-70 transition-opacity font-medium;
    color: var(--charcoal-brown);
  }

  .nav-actions {
    @apply flex items-center;
  }

  .btn-primary {
    @apply inline-flex items-center justify-center px-8 py-3 border text-sm font-medium rounded-lg transition-all duration-300 relative overflow-hidden;
    background: linear-gradient(135deg, #3E352E, var(--deep-earth));
    color: var(--bone-white);
    border-color: #3E352E;
    box-shadow: 0 4px 15px rgba(139, 69, 19, 0.2);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  }

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

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

  .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(139, 69, 19, 0.3);
    background: linear-gradient(135deg, var(--deep-earth), #3E352E);
  }

  .btn-primary:active {
    transform: translateY(0);
    box-shadow: 0 2px 10px rgba(139, 69, 19, 0.2);
  }

  .btn-secondary {
    @apply inline-flex items-center justify-center px-8 py-3 border text-sm font-medium rounded-lg transition-all duration-300 relative overflow-hidden;
    background: linear-gradient(135deg, var(--bone-white), var(--soft-cream));
    color: var(--charcoal-brown);
    border-color: var(--mocha-taupe);
    box-shadow: 0 4px 15px rgba(139, 69, 19, 0.1);
  }

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

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

  .btn-secondary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(139, 69, 19, 0.2);
    background: linear-gradient(135deg, var(--soft-cream), var(--bone-white));
    border-color: #3E352E;
  }

  .btn-secondary:active {
    transform: translateY(0);
    box-shadow: 0 2px 10px rgba(139, 69, 19, 0.1);
  }

  .hero {
    @apply min-h-screen flex items-center justify-center pt-24 relative overflow-hidden;
    background: var(--bone-white);
  }

  .hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
      radial-gradient(
        circle at 20% 80%,
        rgba(139, 69, 19, 0.03) 0%,
        transparent 50%
      ),
      radial-gradient(
        circle at 80% 20%,
        rgba(218, 165, 32, 0.02) 0%,
        transparent 50%
      );
    animation: heroGlow 8s ease-in-out infinite alternate;
  }

  .hero::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image:
      radial-gradient(
        circle at 30% 40%,
        rgba(139, 69, 19, 0.04) 1px,
        transparent 1px
      ),
      radial-gradient(
        circle at 70% 60%,
        rgba(218, 165, 32, 0.03) 1px,
        transparent 1px
      ),
      radial-gradient(
        circle at 50% 80%,
        rgba(139, 69, 19, 0.02) 1px,
        transparent 1px
      );
    background-size:
      100px 100px,
      150px 150px,
      200px 200px;
    background-position:
      0 0,
      50px 50px,
      100px 100px;
    opacity: 0.3;
    pointer-events: none;
  }

  @keyframes heroGlow {
    0% {
      opacity: 0.3;
    }
    100% {
      opacity: 0.6;
    }
  }

  .hero-content {
    @apply max-w-7xl mx-auto px-8 text-center relative z-10;
  }

  .logo-mark {
    @apply w-24 h-24 mx-auto mb-12;
    color: var(--charcoal-brown);
  }

  .hero h1 {
    @apply text-7xl md:text-9xl mb-4 tracking-tight;
    color: var(--charcoal-brown);
    animation: heroFadeIn 1s ease-out 0.5s both;
    opacity: 0;
  }

  .hero h2 {
    @apply text-2xl md:text-3xl mb-6;
    color: var(--charcoal-brown);
    opacity: 0;
    animation: heroFadeIn 1s ease-out 1s both;
  }

  .hero p {
    @apply text-xl mb-12 max-w-2xl mx-auto leading-relaxed;
    color: var(--charcoal-brown);
    opacity: 0;
    animation: heroFadeIn 1s ease-out 1.5s both;
  }

  .hero-actions {
    @apply flex items-center justify-center gap-6 flex-wrap;
    animation: heroFadeIn 1s ease-out 2s both;
    opacity: 0;
  }

  @keyframes heroFadeIn {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }

  .hero-image {
    @apply mt-16 rounded-2xl overflow-hidden;
    background: var(--soft-cream);
  }

  .foundation {
    @apply max-w-7xl mx-auto px-8 py-32 grid md:grid-cols-2 gap-16 items-center;
  }

  .foundation article {
    @apply space-y-8;
  }

  .foundation h3 {
    @apply text-sm font-semibold tracking-widest uppercase mb-4;
    color: var(--mocha-taupe);
  }

  .foundation h4 {
    @apply text-4xl md:text-5xl mb-6;
    color: var(--charcoal-brown);
  }

  .foundation p {
    @apply text-xl leading-relaxed;
    color: var(--charcoal-brown);
    opacity: 0.85;
  }

  .foundation-image {
    @apply rounded-2xl overflow-hidden h-96;
    background: var(--soft-cream);
  }

  .services-preview {
    @apply max-w-7xl mx-auto px-8 py-32;
  }

  .services-preview h3 {
    @apply text-4xl md:text-5xl mb-16 text-center;
    color: var(--charcoal-brown);
  }

  .service-cards {
    @apply grid md:grid-cols-3 gap-12 mb-16;
  }

  .service-card {
    @apply p-10 rounded-2xl transition-shadow;
    background: var(--soft-cream);
  }

  .service-card h4 {
    @apply text-2xl mb-6;
    color: var(--charcoal-brown);
  }

  .service-card p {
    color: var(--charcoal-brown);
    opacity: 0.8;
  }

  .testimonials {
    @apply max-w-7xl mx-auto px-8 py-32 rounded-3xl mb-12;
    background: var(--soft-cream);
  }

  .testimonials h3 {
    @apply text-4xl md:text-5xl mb-16 text-center;
    color: var(--charcoal-brown);
  }

  .testimonial-grid {
    @apply grid md:grid-cols-2 gap-12 mb-16;
  }

  .testimonial {
    @apply p-10 rounded-2xl;
    background: var(--bone-white);
  }

  .testimonial .stars {
    @apply text-2xl mb-6;
    color: var(--mocha-taupe);
  }

  .testimonial p {
    @apply text-xl mb-6 italic leading-relaxed;
    color: var(--charcoal-brown);
    opacity: 0.85;
  }

  .testimonial cite {
    @apply font-semibold not-italic block;
    color: var(--charcoal-brown);
  }

  .site-footer {
    @apply py-16;
    background: var(--charcoal-brown);
  }

  .site-footer a {
    @apply hover:opacity-70 transition-opacity;
    color: var(--mocha-taupe);
  }

  .footer-brand {
    @apply max-w-7xl mx-auto px-8 mb-12;
  }

  .footer-brand span {
    @apply text-2xl block mb-3;
    color: var(--bone-white);
  }

  .footer-brand p {
    color: var(--mocha-taupe);
  }

  .footer-links {
    @apply max-w-7xl mx-auto px-8 mb-12 flex flex-wrap gap-8;
  }

  .footer-legal {
    @apply max-w-7xl mx-auto px-8 mb-12 flex flex-wrap gap-8;
  }

  .footer-contact {
    @apply max-w-7xl mx-auto px-8 flex flex-wrap gap-8;
    color: var(--mocha-taupe);
  }

  .section {
    @apply py-32;
  }

  .section-header {
    @apply max-w-7xl mx-auto px-8 mb-16;
  }

  .section-title {
    @apply text-4xl md:text-5xl mb-6;
    color: var(--charcoal-brown);
  }

  .section-subtitle {
    @apply text-xl max-w-2xl leading-relaxed;
    color: var(--charcoal-brown);
    opacity: 0.8;
  }

  .select-content {
    background: var(--bone-white);
    border: 1px solid var(--mocha-taupe);
  }

  .select-item {
    color: var(--charcoal-brown);
    transition: background 0.15s;
  }

  .select-item:hover,
  .select-item[data-highlighted] {
    background: var(--soft-cream);
  }

  .select-item[data-state="checked"] {
    background: var(--soft-cream);
  }

  /* ========================================
   ELEGANT NAVIGATION STYLES
   ======================================== */

  .site-header {
    @apply fixed top-0 left-0 right-0 z-50 backdrop-blur-md border-b border-amber-100/50 transition-all duration-300;
    background: rgba(255, 255, 255, 0.98);
    background-image:
      radial-gradient(
        circle at 25% 25%,
        rgba(139, 69, 19, 0.02) 0%,
        transparent 50%
      ),
      radial-gradient(
        circle at 75% 75%,
        rgba(218, 165, 32, 0.01) 0%,
        transparent 50%
      );
  }

  .site-header::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image:
      linear-gradient(
        45deg,
        transparent 49%,
        rgba(139, 69, 19, 0.03) 50%,
        transparent 51%
      ),
      linear-gradient(
        -45deg,
        transparent 49%,
        rgba(218, 165, 32, 0.02) 50%,
        transparent 51%
      );
    background-size: 20px 20px;
    opacity: 0.3;
    pointer-events: none;
  }

  .site-header.scrolled {
    @apply shadow-lg;
    background: rgba(255, 255, 255, 0.95);
  }

  .nav-primary {
    @apply max-w-7xl mx-auto px-8 py-6 flex items-center justify-between relative;
  }

  .logo a {
    @apply text-2xl font-bold relative transition-all duration-300;
    color: var(--charcoal-brown);
    text-shadow: 0 1px 2px rgba(139, 69, 19, 0.1);
  }

  .logo a::before {
    content: "";
    position: absolute;
    top: -8px;
    right: -8px;
    bottom: -8px;
    left: -8px;
    background: linear-gradient(
      45deg,
      rgba(139, 69, 19, 0.05),
      rgba(218, 165, 32, 0.03)
    );
    border-radius: 8px;
    z-index: -1;
    opacity: 0;
    transition: opacity 0.3s ease;
  }

  .logo a:hover::before {
    opacity: 1;
  }

  .nav-links {
    @apply hidden md:flex items-center space-x-8;
  }

  .nav-links a {
    @apply text-sm font-medium transition-all duration-300 relative;
    color: var(--charcoal-brown);
    position: relative;
  }

  .nav-links a::after {
    content: "";
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(
      90deg,
      #3E352E,
      var(--golden-brown)
    );
    transition: width 0.3s ease;
    border-radius: 1px;
  }

  .nav-links a:hover::after {
    width: 100%;
  }

  .nav-links a:hover {
    color: #3E352E;
    transform: translateY(-1px);
  }

  .nav-actions {
    @apply flex items-center gap-4;
  }

  .nav-actions .btn-primary,
  .nav-actions .btn-secondary {
    @apply transition-all duration-300;
    position: relative;
    overflow: hidden;
  }

  .nav-actions .btn-primary::before,
  .nav-actions .btn-secondary::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
      90deg,
      transparent,
      rgba(255, 255, 255, 0.2),
      transparent
    );
    transition: left 0.5s ease;
  }

  .nav-actions .btn-primary:hover::before,
  .nav-actions .btn-secondary:hover::before {
    left: 100%;
  }

  .nav-actions .btn-primary:hover,
  .nav-actions .btn-secondary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(139, 69, 19, 0.15);
  }

  .select-trigger {
    background: var(--bone-white);
    border: 1px solid var(--mocha-taupe);
    color: var(--charcoal-brown);
  }

  .select-trigger:hover {
    border-color: var(--deep-earth);
  }

  .select-trigger[data-state="open"] {
    border-color: var(--deep-earth);
  }

  .icon-btn {
    @apply p-2 rounded-lg transition-all duration-300 border border-transparent;
    color: var(--charcoal-brown);
    background: transparent;
  }

  .icon-btn:hover {
    background: var(--soft-cream);
    border-color: var(--mocha-taupe);
    transform: translateY(-1px);
  }

  .icon-btn:active {
    transform: translateY(0);
  }
}
