:root{
    --ivory:#FBF7EE;
    --wine:#6E1423;
    --gold:#B8912F;
  }
  html { scroll-behavior: smooth; }
  body { font-family: 'Inter', sans-serif; background:var(--ivory); color:#2B2420; }
  h1,h2,h3,h4, .font-serif { font-family: 'Fraunces', serif; }

  ::selection{ background: var(--gold); color:#2B2420; }

  .hairline { height:1px; background:linear-gradient(to right, transparent, var(--gold), transparent); }

  .no-scrollbar::-webkit-scrollbar{ display:none; }
  .no-scrollbar{ -ms-overflow-style:none; scrollbar-width:none; }

  .hero-slide{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    opacity:0; z-index:0;
    will-change: opacity, transform;
    backface-visibility:hidden;
    animation: kenburns 20s ease-in-out infinite alternate;
  }
  .hero-slide.active{ z-index:1; }
  .hero-slide:nth-child(odd){ animation-duration: 22s; }
  @keyframes kenburns{
    0%   { transform: scale(1) translate3d(0,0,0); }
    100% { transform: scale(1.15) translate3d(-1.2%,-1%,0); }
  }

  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 3px;
  }

  @media (prefers-reduced-motion: reduce) {
    *{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
  }

  .num-mark{ font-family:'Fraunces', serif; }

  .card-shadow{ box-shadow: 0 18px 40px -20px rgba(43,36,32,0.35); }

  #lightbox{ backdrop-filter: blur(14px); background: rgba(43,36,32,0.72); }

  .snap-x-rail{ scroll-snap-type: x mandatory; }
  .snap-item{ scroll-snap-align: start; }

  textarea, input { background: #fff; }

  @keyframes spin {
    to { transform: rotate(360deg); }
  }
  .animate-spin { animation: spin 1s linear infinite; }

  #submit-btn:disabled {
    opacity: 0.7;
    cursor: not-allowed;
  }

  #fields-accommodation,
  #fields-transport {
    will-change: opacity, transform;
  }