/* Travel Partners page styles - aligned with site palette */

:root {
    --container-max: 1100px;
    --container-pad: clamp(16px,3vw,32px);
    --text: #0e0e0e;
    --muted: #6b6b6b;
    --border: #e8e8e8;
    --accent: #0f3b2a; /* deep green */
    --beige: #f5efe6;
}

.tp-main { font-family: 'Alliance', system-ui, -apple-system, sans-serif; color: var(--text); padding-top: 0; }
.container { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-pad); }

/* Navbar scroll state similar to other pages */
.navbar { position: fixed; top: 0; left: 0; right: 0; z-index: 9999; }
.navbar.scrolled { background: rgba(255,255,255,0.95); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 2px 20px rgba(0,0,0,0.1); transition: all .3s ease; }
.navbar.scrolled .brand-name, .navbar.scrolled .phone-number, .navbar.scrolled .nav-icon { color: #000; }
.navbar.scrolled .nav-icon svg { stroke: #000; }
.navbar.scrolled .hamburger-menu span { background-color: #000; }

/* Sidebar on top of navbar */
.sidebar-overlay { z-index: 10000; }
.sidebar { z-index: 10001; }

/* Hero */
.tp-hero { position: relative; min-height: 70vh; display: grid; place-items: center; }
.tp-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.7); }
.tp-hero__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.35)); }
.tp-hero__content { position: relative; z-index: 1; width: 100%; max-width: var(--container-max); padding: 0 var(--container-pad); color: #fff; }
.tp-eyebrow { text-transform: uppercase; letter-spacing: .2em; font-size: .8rem; opacity: .9; }
.tp-title { font-size: clamp(2rem,5vw,3.5rem); line-height: 1.15; margin: .5rem 0 1rem; font-weight: 600; }
.btn-primary { display: inline-flex; align-items: center; justify-content: center; background: var(--accent); color: #fff; padding: .9rem 1.25rem; border: 0; border-radius: 0; text-decoration: none; }
.btn-primary:hover { background: #000; }

/* About band */
.tp-about { background: linear-gradient(180deg, #0f3b2a, #174d39); color: #fff; padding: clamp(32px,6vw,72px) 0; }
.tp-about__inner { max-width: var(--container-max); margin: 0 auto; padding: 0 var(--container-pad); }
.tp-about h2 { font-size: clamp(1.75rem,3.5vw,2.5rem); margin: 0 0 1rem; }
.tp-about__copy { columns: 1; column-gap: 32px; max-width: 900px; }
.tp-about__copy p { margin: 0 0 1rem; }
.tp-about__gallery { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 20px; }
.tp-about__gallery img { width: 100%; height: 260px; object-fit: cover; border-radius: 8px; }

/* What we do */
.tp-what { background: #fff; padding: clamp(32px,6vw,72px) 0; }
.tp-what__grid { display: grid; grid-template-columns: 1fr; gap: clamp(20px,3vw,32px); align-items: start; }
.tp-what__copy h2 { font-size: clamp(1.75rem,3.5vw,2.5rem); margin: 0 0 .75rem; }
.tp-what__copy p { color: var(--muted); }
.tp-what__boxes { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.tp-box { background: #fff; border: 1px solid var(--border); padding: 16px; border-radius: 0; }
.tp-box h3 { margin: 0 0 6px; font-weight: 700; font-size: 1.1rem; color: #111; }
.tp-box p { margin: 0; color: var(--muted); font-weight: 400; }

/* Dark carousel (simple, static) */
.tp-dark { background: #1f1f1f; color: #fff; padding: clamp(40px,7vw,96px) 0; }
.tp-dark .center { text-align: center; }
.tp-slide { display: grid; grid-template-columns: 1.1fr 1fr; gap: 32px; align-items: center; margin-top: 24px; }
.tp-slide__img { width: 100%; height: 340px; object-fit: cover; border-radius: 8px; }
.tp-slide__copy h3 { font-size: clamp(1.5rem,3vw,2rem); margin: 0 0 .5rem; }
.tp-dots { display: flex; gap: 8px; justify-content: center; margin-top: 16px; }
.tp-dots .dot { width: 8px; height: 8px; border-radius: 50%; background: #777; }
.tp-dots .dot.active { background: #fff; }

/* Timeline */
.tp-timeline { padding: clamp(48px,8vw,96px) 0; }
.tp-timeline h2 { font-size: clamp(2.25rem,4.5vw,3.5rem); margin: 0 0 clamp(48px,8vw,72px); }
.center { text-align: center; }
.timeline { position: relative; margin-top: 16px; }
.tl-row { display: grid; grid-template-columns: 1fr 40px 1fr; gap: 16px; align-items: start; margin: 100px 0; opacity: 0; transform: translateY(30px); transition: all 0.6s ease; }
.tl-row.animate { opacity: 1; transform: translateY(0); }
.tl-col h3 { color: #000; margin-top: 6px; font-size: 1.5rem; font-weight: 400; }
.tl-col p { color: var(--muted); }
.tl-dot { width: 24px; height: 24px; border-radius: 50%; background: #000; margin: 0 auto; position: relative; }
.timeline:before { content: ""; position: absolute; left: calc(50% - 1px); top: 0; bottom: 0; width: 2px; background: #000; }
.tl-step { text-transform: uppercase; letter-spacing: .2em; color: #000; font-size: 1rem; font-weight: 600; }

/* Contact */
.tp-contact { background: #fff; padding: clamp(32px,6vw,72px) 0; }
.tp-contact__card { background: #fff; border: 1px solid var(--border); padding: clamp(16px,3vw,32px); border-radius: 0; }
.tp-contact h2 { font-weight: 400; }
.tp-form { display: grid; gap: 14px; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fg { display: grid; gap: 6px; }
.fg input, .fg textarea, .fg select { width: 100%; border: 1px solid var(--border); padding: 12px; background: #fff; font-family: 'Alliance', sans-serif; border-radius: 0; }
.fg .btn-primary { width: auto; display: inline-block; max-width: none; }
.fg:has(.btn-primary) { display: block; }

/* Footer newsletter spacing */
.newsletter-form { margin-bottom: 1rem; }

/* Responsive */
@media (max-width: 1024px){
  .tp-what__grid { grid-template-columns: 1fr; }
  .tp-what__boxes { grid-template-columns: 1fr 1fr; }
  .tp-about__copy { columns: 1; }
  .tp-slide { grid-template-columns: 1fr; }
}
@media (max-width: 720px){
  .tp-about__gallery img, .tp-slide__img { height: 220px; }
  .tp-what__boxes { grid-template-columns: 1fr; }
  .grid-2 { grid-template-columns: 1fr; }
  .tl-row { margin: 60px 0; padding: 0 20px; }
  .tl-col h3 { font-size: 1.25rem; }
  .tl-col p { font-size: 0.9rem; line-height: 1.5; }
}
@media (max-width: 480px){
  .tl-row { margin: 50px 0; padding: 0 16px; }
  .tl-col h3 { font-size: 1.1rem; }
  .tl-col p { font-size: 0.85rem; }
  .tl-step { font-size: 0.85rem; }
}


