:root {
  --color-navy:        #0B2D5A;
  --color-navy-mid:    #1B5FAA;
  --color-gold:        #F5A623;
  --color-gold-light:  #F0C040;
  --color-teal:        #0891B2;
  --color-terracotta:  #C4704A;

  --neutral-50:   #FAFAF8;
  --neutral-100:  #F4F0E8;
  --neutral-200:  #E8E3D8;
  --neutral-300:  #D1C9BB;
  --neutral-400:  #A89F94;
  --neutral-500:  #8A8278;
  --neutral-600:  #6B6560;
  --neutral-900:  #1A1814;

  --color-star:     #F59E0B;
  --color-success:  #059669;
  --color-urgency:  #EA580C;
  --color-error:    #DC2626;

  --gradient-hero: linear-gradient(135deg, #0B2D5A 0%, #0F4C8A 50%, #0891B2 100%);
  --gradient-cta:  linear-gradient(90deg, #F5A623 0%, #F0C040 100%);
  --gradient-surface: linear-gradient(90deg, #FAFAF8 0%, #F4F0E8 100%);

  --font-base: 'Plus Jakarta Sans', sans-serif;

  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
}

* { font-family: var(--font-base); }
body { background: var(--neutral-50); color: var(--neutral-900); }

.prose-tripitea { color: var(--neutral-600); font-size: 15px; line-height: 1.8; }
.prose-tripitea h2 { color: var(--neutral-900); font-size: 18px; font-weight: 500; margin: 1.5rem 0 0.75rem; letter-spacing: -0.02em; }
.prose-tripitea p { margin-bottom: 1rem; }

.badge { display: inline-flex; align-items: center; font-size: 10px; font-weight: 500; padding: 3px 8px; border-radius: var(--radius-sm); letter-spacing: 0.02em; }
.badge-navy    { background: #0B2D5A; color: #fff; }
.badge-gold    { background: #FEF3C7; color: #92400E; }
.badge-success { background: #ECFDF5; color: #065F46; }
.badge-urgency { background: #FFF7ED; color: #9A3412; }
.badge-teal    { background: #E0F2FE; color: #0C4A6E; }
.badge-terra   { background: #FDF2EE; color: #9B3922; }
.badge-neutral { background: #F4F0E8; color: #6B6560; border: 0.5px solid #E8E3D8; }

.section-title { font-size: 22px; font-weight: 500; color: var(--neutral-900); letter-spacing: -0.03em; }
.section-subtitle { font-size: 15px; color: var(--neutral-500); margin-top: 6px; }

.btn-cta {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--gradient-cta); color: var(--color-navy); font-weight: 500;
  border-radius: var(--radius-md); transition: all 150ms ease; text-decoration: none; border: none; cursor: pointer;
}
.btn-cta:hover { filter: brightness(1.05); transform: scale(1.01); }
.btn-cta-sm { padding: 9px 16px; font-size: 13px; }
.btn-cta-md { padding: 12px 24px; font-size: 15px; }
.btn-cta-lg { padding: 14px 32px; font-size: 16px; }

.btn-primary {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--color-navy); color: #fff; font-weight: 500;
  border-radius: var(--radius-md); transition: all 150ms ease; text-decoration: none; border: none; cursor: pointer;
}
.btn-primary:hover { background: #0d3a72; }
.btn-primary-md { padding: 12px 24px; font-size: 15px; }

.btn-outline {
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; color: var(--color-teal); font-weight: 500;
  border: 1.5px solid var(--color-teal);
  border-radius: var(--radius-md); transition: all 150ms ease; text-decoration: none; cursor: pointer;
}
.btn-outline:hover { background: rgba(8,145,178,0.05); }
.btn-outline-md { padding: 11px 24px; font-size: 15px; }

.card-hotel {
  background: #fff; border: 0.5px solid var(--neutral-200); border-radius: var(--radius-lg);
  overflow: hidden; transition: box-shadow 200ms ease, transform 200ms ease;
}
.card-hotel:hover { box-shadow: 0 4px 20px rgba(11,45,90,0.10); transform: translateY(-2px); }

.hero-gradient { background: var(--gradient-hero); }
.surface-warm { background: var(--neutral-100); }
