/* ===========================
   BASE — Premium Taxi v4
=========================== */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  /* Prevent double-tap zoom on iOS */
  touch-action: manipulation;
}

body {
  font-family: 'DM Sans', sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.65;
  min-height: 100vh;
  /* Prevent horizontal scroll on all browsers */
  overflow-x: hidden;
  max-width: 100vw;
  transition: background 0.35s, color 0.35s;
  /* iOS Safari rubber-band scroll fix */
  overscroll-behavior-y: contain;
}

h1,h2,h3,h4 {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: 0.01em;
}

p    { line-height: 1.72; }
a    { transition: color 0.2s; }
img  { display: block; max-width: 100%; }
button, input, select, textarea { font-family: 'DM Sans', sans-serif; }

/* ---- Utility ---- */
.serif  { font-family: 'Cormorant Garamond', serif; }
.gold   { color: var(--gold); }
.muted  { color: var(--text3); }
.italic { font-style: italic; }
.center { text-align: center; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

.section {
  padding: 4.5rem var(--px);
  max-width: var(--max-w);
  margin: 0 auto;
}

.section-title { font-size: clamp(1.9rem,3.8vw,3rem); font-weight: 300; margin-bottom: 0.45rem; text-wrap: balance; }
.section-sub   { color: var(--text3); font-size: 0.94rem; margin-bottom: 2.75rem; line-height: 1.68; max-width: 46rem; }
.section-sub.center { margin-left: auto; margin-right: auto; }

.ornament {
  display: flex; align-items: center; gap: 0.75rem;
  margin-bottom: 1.6rem; color: var(--gold); font-size: 0.82rem;
}
.ornament.center { justify-content: center; }
.ornament::before, .ornament::after {
  content: ''; flex: 1; max-width: 70px; height: 1px; background: var(--border);
}

.divider { width: 36px; height: 1px; background: var(--gold); margin: 0.9rem 0 1.4rem; }

/* ---- Animations ---- */
@keyframes fadeUp   { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes spin     { to{transform:rotate(360deg)} }
@keyframes slideIn  { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
@keyframes pulseDot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.6;transform:scale(0.85)} }
