/* ==========================================================================
   Diganta Travels & Typing — Design tokens
   Concept: government stamp meets boarding pass. Ink navy, brass gold,
   stamp red, paper cream. Fraunces for display, IBM Plex Sans for body,
   IBM Plex Mono for reference codes / dates.
   ========================================================================== */
:root{
  /* ---- Palette sourced from the Diganta logo: indigo plane → magenta
     ribbon → orange sweep, with the crimson typing-hands red as a
     sparing third accent. ---- */
  --navy:        #2A2170;   /* deep indigo — logo plane / dark sections */
  --navy-2:      #1B1550;   /* darker indigo — footer / deepest bg */
  --plum:        #7B3583;   /* mid-ribbon plum, gradient stop */
  --paper:       #F6F2EA;   /* warm paper background */
  --paper-2:     #FFFFFF;   /* card / panel surfaces */
  --gold:        #E48B34;   /* logo orange — primary accent / buttons */
  --gold-dark:   #C36F22;   /* orange hover state */
  --stamp-red:   #C13A63;   /* logo magenta/crimson — secondary accent */
  --teal:        #1F6F63;   /* functional "confirmed" status colour */
  --ink:         #1E1B33;
  --ink-soft:    #4E4A63;
  --line:        #E1D6DD;

  --brand-gradient: linear-gradient(120deg, var(--navy) 0%, var(--stamp-red) 55%, var(--gold) 100%);

  --font-display: 'Fraunces', serif;
  --font-body:    'IBM Plex Sans', sans-serif;
  --font-mono:    'IBM Plex Mono', monospace;

  --radius: 3px;
  --shadow-card: 0 18px 40px -20px rgba(27,21,80,.35);
  --shadow-soft: 0 10px 24px -14px rgba(27,21,80,.25);
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *{ animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

body{
  margin:0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
input,select,textarea{ font-family:inherit; font-size:1rem; }

:focus-visible{
  outline: 2px solid var(--gold-dark);
  outline-offset: 3px;
}

.wrap{
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 28px;
}

h1,h2,h3,h4{
  font-family: var(--font-display);
  color: var(--navy);
  line-height: 1.15;
  margin: 0 0 .5em;
  font-weight: 600;
}
h1{ font-size: clamp(2.3rem, 4.4vw, 3.6rem); font-weight: 600; letter-spacing: -.01em; }
h2{ font-size: clamp(1.7rem, 3vw, 2.5rem); }
h3{ font-size: 1.2rem; margin-bottom: .4em; }
p{ margin: 0 0 1em; color: var(--ink-soft); }

.eyebrow{
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .75rem;
  color: var(--stamp-red);
  font-weight: 600;
  margin-bottom: .9em;
}
.eyebrow-light{ color: var(--gold); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  padding: .9em 1.7em;
  border-radius: var(--radius);
  font-weight: 600;
  font-size: .95rem;
  border: 1.5px solid transparent;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  white-space: nowrap;
}
.btn-gold{
  background: linear-gradient(100deg, var(--stamp-red), var(--gold));
  color: #fff;
  box-shadow: var(--shadow-soft);
}
.btn-gold:hover{ filter: brightness(1.08); transform: translateY(-2px); }
.btn-outline{
  border-color: var(--navy);
  color: var(--navy);
  background: transparent;
}
.btn-outline:hover{ background: var(--navy); color: var(--paper-2); transform: translateY(-2px); }
.btn-sm{ padding: .6em 1.2em; font-size: .85rem; }
.btn-full{ width:100%; }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{
  position: sticky;
  top:0;
  z-index: 500;
  background: rgba(237,231,217,.9);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  transition: box-shadow .25s ease, padding .25s ease;
}
.site-header.scrolled{ box-shadow: 0 8px 24px -18px rgba(11,28,46,.5); }
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1.5rem;
  height: 84px;
  transition: height .25s ease;
}
.site-header.scrolled .header-inner{ height: 66px; }

.brand{ display:flex; align-items:center; gap:.7rem; flex-shrink:0; }
.brand-logo{ width:46px; height:46px; flex-shrink:0; object-fit:contain; }

.brand-word{ font-family: var(--font-display); font-weight:600; font-size: 1.25rem; color: var(--navy); display:flex; flex-direction:column; line-height:1.05; }
.brand-word em{ font-style:normal; font-family: var(--font-mono); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; color: var(--stamp-red); font-weight:600; }

.main-nav{ display:flex; align-items:center; gap: 1.9rem; }
.nav-link{
  font-size:.92rem;
  font-weight:500;
  color: var(--navy);
  position:relative;
  padding: .3em 0;
}
.nav-link::after{
  content:"";
  position:absolute; left:0; bottom:-4px;
  width:0; height:2px;
  background: var(--stamp-red);
  transition: width .2s ease;
}
.nav-link:hover::after, .nav-link.active::after{ width:100%; }
.nav-link.active{ color: var(--stamp-red); }

.header-actions{ display:flex; align-items:center; gap: 1rem; }
.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none; border:none; padding:6px;
}
.nav-toggle span{ width:22px; height:2px; background: var(--navy); border-radius:2px; transition: transform .25s ease, opacity .25s ease; }
.nav-toggle.open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{ background: linear-gradient(155deg, var(--navy) 0%, var(--navy) 55%, var(--plum) 100%); color: var(--paper-2); position:relative; overflow:hidden; padding-top: 4.5rem; }
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(circle at 15% 20%, rgba(228,139,52,.14), transparent 40%),
                     radial-gradient(circle at 85% 75%, rgba(193,58,99,.20), transparent 45%);
  pointer-events:none;
}
.hero-grid{
  position:relative;
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 3rem;
  align-items:center;
  padding-bottom: 4.5rem;
}
.hero-copy h1{ color: var(--paper-2); }
.hero .eyebrow{ color: var(--gold); }
.hero-sub{ color: #C7CFD9; max-width: 46ch; font-size:1.05rem; }
.hero-cta{ display:flex; gap:1rem; flex-wrap:wrap; margin: 1.6rem 0 1.6rem; }
.hero-trust{ font-family: var(--font-mono); font-size:.8rem; color:#9FAAB8; display:flex; gap:.7em; flex-wrap:wrap; }
.hero-trust strong{ color: var(--gold); }
.hero-trust .dot{ opacity:.5; }

/* boarding pass card */
.hero-visual{ display:flex; justify-content:center; }
.boarding-pass{
  background: var(--paper-2);
  color: var(--ink);
  width: 100%;
  max-width: 420px;
  border-radius: 10px;
  box-shadow: var(--shadow-card);
  transform: rotate(2.5deg);
  overflow:hidden;
}
.bp-top{ padding: 1.6rem 1.5rem 1.2rem; }
.bp-route{ display:flex; align-items:center; justify-content:space-between; margin-bottom: 1.3rem; }
.bp-city{ display:flex; flex-direction:column; }
.bp-city-end{ align-items:flex-end; text-align:right; }
.bp-code{ font-family: var(--font-display); font-weight:700; font-size:1.5rem; color: var(--navy); letter-spacing:.02em; }
.bp-label{ font-family: var(--font-mono); font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; color: var(--ink-soft); }
.bp-plane{ flex:1; color: var(--stamp-red); padding: 0 .8rem; }
.bp-plane svg{ width:100%; height:20px; }
.bp-line{ stroke: currentColor; stroke-width:1.5; stroke-dasharray: 4 4; }

.bp-fields{ display:grid; grid-template-columns: repeat(3,1fr); gap: .8rem; border-top: 1px dashed var(--line); padding-top: 1rem; }
.bp-fields div{ display:flex; flex-direction:column; gap:.2rem; }
.f-label{ font-family: var(--font-mono); font-size:.6rem; text-transform:uppercase; letter-spacing:.08em; color: var(--ink-soft); }
.f-value{ font-weight:600; font-size:.85rem; color: var(--navy); }
.f-value.mono{ font-family: var(--font-mono); font-weight:500; }
.bp-status{ color: var(--teal); }

.bp-perforation{
  height: 0;
  border-top: 2px dashed var(--line);
  position:relative;
}
.bp-perforation::before,.bp-perforation::after{
  content:"";
  position:absolute; top:-9px;
  width:18px; height:18px;
  background: var(--navy);
  border-radius:50%;
}
.bp-perforation::before{ left:-9px; }
.bp-perforation::after{ right:-9px; }

.bp-stub{ padding: 1.2rem 1.5rem 1.5rem; display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; }
.bp-stub div{ display:flex; flex-direction:column; gap:.2rem; }
.bp-barcode{ height:26px; width:110px; color: var(--navy); }

/* stats strip */
.stats-strip{ position:relative; border-top: 1px solid rgba(255,255,255,.08); background: var(--navy-2); }
.stats-grid{ display:grid; grid-template-columns: repeat(4,1fr); }
.stat{
  display:flex; flex-direction:column; align-items:center;
  text-align:center;
  padding: 1.9rem 1rem;
  border-right: 1px solid rgba(255,255,255,.08);
}
.stat:last-child{ border-right:none; }
.stat-num{ font-family: var(--font-mono); font-size: 2rem; font-weight:600; color: var(--gold); display:inline; }
.stat-plus{ font-family: var(--font-mono); font-size: 1.3rem; font-weight:600; color: var(--gold); }
.stat-label{ font-size:.78rem; color:#9FAAB8; margin-top:.4rem; letter-spacing:.02em; }

/* ==========================================================================
   Sections generic
   ========================================================================== */
.section{ padding: 5.5rem 0; }
.section-alt{ background: var(--paper-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section-dark{ background: linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 100%); color: var(--paper-2); }
.section-dark h2{ color: var(--paper-2); }
.section-dark p{ color:#C7CFD9; }

.section-head{ max-width: 640px; margin-bottom: 3rem; }
.section-sub{ font-size:1.05rem; }

/* ---------- About ---------- */
.about-grid{ display:grid; grid-template-columns: .8fr 1.2fr; gap: 4rem; align-items:center; }
.about-visual{ display:flex; justify-content:center; }
.stamp-illustration{ width: 100%; max-width: 280px; color: var(--stamp-red); }
.stamp-ring-outer{ fill:none; stroke: currentColor; stroke-width:2; }
.stamp-ring-inner{ fill:none; stroke: currentColor; stroke-width:1; stroke-dasharray:3 4; }
.stamp-arc-text{ font-family: var(--font-mono); font-size:8.4px; letter-spacing:1.5px; fill: currentColor; }
.stamp-center-1{ font-family: var(--font-display); font-weight:700; font-size:22px; fill: currentColor; }
.stamp-center-2{ font-family: var(--font-mono); font-size:10px; letter-spacing:2px; fill: currentColor; }

.about-points{ margin-top:1.6rem; display:flex; flex-direction:column; gap: .9rem; }
.about-points li{ padding-left: 1.6rem; position:relative; color: var(--ink-soft); }
.about-points li::before{
  content:"✓";
  position:absolute; left:0; top:1px;
  color: var(--teal); font-weight:700;
}
.about-points strong{ color: var(--navy); }

/* ---------- Services (tabs + ticket cards) ---------- */
.tabs{ display:flex; gap: .8rem; margin-bottom: 2.5rem; flex-wrap:wrap; }
.tab-btn{
  background: transparent;
  border: 1.5px solid var(--navy);
  color: var(--navy);
  padding: .7em 1.5em;
  border-radius: 999px;
  font-weight:600;
  font-size:.9rem;
  transition: background .2s ease, color .2s ease;
}
.tab-btn.active, .tab-btn:hover{ background: var(--navy); color: var(--paper-2); }

.tab-panel{ display:none; }
.tab-panel.active{ display:block; animation: fadeIn .35s ease; }
@keyframes fadeIn{ from{ opacity:0; transform: translateY(8px);} to{ opacity:1; transform:none; } }

.ticket-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
.ticket-card{
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.8rem 1.6rem;
  position:relative;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.section .ticket-card{ background: #fff; }
.ticket-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-soft); border-color: var(--gold); }
.ticket-code{
  font-family: var(--font-mono);
  font-size:.72rem;
  letter-spacing:.1em;
  color: var(--stamp-red);
  border: 1px dashed var(--stamp-red);
  display:inline-block;
  padding: .2em .6em;
  border-radius: 999px;
  margin-bottom: 1rem;
}
.ticket-card p{ margin:0; font-size:.95rem; }

/* ---------- Process ---------- */
.process-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 2rem; }
.process-step{ position:relative; padding-top: 1rem; border-top: 3px solid var(--gold); }
.process-num{ font-family: var(--font-mono); color: var(--gold-dark); font-size:1.1rem; font-weight:600; display:block; margin-bottom:.6rem; }

/* ---------- Destinations ---------- */
.dest-grid{ display:grid; grid-template-columns: repeat(6,1fr); gap: 1rem; }
.dest-card{
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.3rem 1rem;
  text-align:center;
  transition: transform .2s ease, box-shadow .2s ease;
}
.dest-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.dest-route{ display:block; font-family: var(--font-mono); font-weight:600; color: var(--stamp-red); font-size:.85rem; letter-spacing:.03em; }
.dest-city{ display:block; font-family: var(--font-display); font-weight:600; color: var(--navy); font-size:1.05rem; margin-top:.3rem; }

/* ---------- Testimonials ---------- */
.testi-carousel{ max-width: 760px; margin:0 auto; }
.testi-track{ display:flex; transition: transform .5s cubic-bezier(.65,0,.35,1); }
.testi-card{
  flex: 0 0 100%;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 2.4rem 2.2rem;
  text-align:center;
}
.testi-card p{ font-family: var(--font-display); font-size:1.25rem; font-style:italic; color: var(--navy); line-height:1.5; }
.testi-who{ margin-top:1.2rem; display:flex; flex-direction:column; }
.testi-who strong{ color: var(--stamp-red); font-size:.95rem; }
.testi-who span{ font-family: var(--font-mono); font-size:.75rem; color: var(--ink-soft); }
.testi-controls{ display:flex; align-items:center; justify-content:center; gap:1.4rem; margin-top:1.6rem; }
.testi-controls button{ background:none; border:1.5px solid var(--navy); color: var(--navy); width:38px; height:38px; border-radius:50%; font-size:1rem; transition: background .2s ease, color .2s ease; }
.testi-controls button:hover{ background: var(--navy); color: var(--paper-2); }
.testi-dots{ display:flex; gap:.5rem; }
.testi-dots span{ width:7px; height:7px; border-radius:50%; background: var(--line); cursor:pointer; transition: background .2s ease, transform .2s ease; }
.testi-dots span.active{ background: var(--stamp-red); transform: scale(1.3); }

/* ---------- Blog ---------- */
.blog-filters{ display:flex; gap:.7rem; flex-wrap:wrap; margin-bottom: 2.5rem; }
.filter-btn{
  background: #fff;
  border: 1px solid var(--line);
  color: var(--ink-soft);
  padding: .55em 1.2em;
  border-radius: 999px;
  font-size: .85rem;
  font-weight:600;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.filter-btn.active, .filter-btn:hover{ background: var(--stamp-red); border-color: var(--stamp-red); color:#fff; }

.blog-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 1.8rem; }
.blog-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius: var(--radius);
  overflow:hidden;
  cursor:pointer;
  transition: transform .2s ease, box-shadow .2s ease;
  display:flex; flex-direction:column;
}
.blog-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-card); }
.blog-thumb{
  height: 150px;
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.blog-thumb span{
  font-family: var(--font-mono);
  color: rgba(199,154,60,.5);
  font-size: 2.6rem;
  font-weight:600;
  letter-spacing:.05em;
}
.blog-body{ padding: 1.5rem; display:flex; flex-direction:column; gap:.6rem; flex:1; }
.blog-tag{ font-family: var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color: var(--stamp-red); }
.blog-body h3{ margin:0; font-size:1.1rem; }
.blog-excerpt{ font-size:.9rem; margin:0; flex:1; }
.blog-meta{ font-family: var(--font-mono); font-size:.72rem; color: var(--ink-soft); display:flex; justify-content:space-between; margin-top:.4rem; }
.blog-read{ color: var(--stamp-red); font-weight:600; }

/* Blog modal */
.modal-overlay{
  position:fixed; inset:0; z-index:1000;
  background: rgba(11,28,46,.72);
  display:flex; align-items:center; justify-content:center;
  padding: 2rem;
  opacity:0; visibility:hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.modal-overlay.open{ opacity:1; visibility:visible; }
.modal-card{
  background: var(--paper-2);
  max-width: 640px;
  width:100%;
  max-height: 85vh;
  overflow-y:auto;
  border-radius: 8px;
  position:relative;
  padding: 3rem 2.6rem 2.6rem;
  transform: translateY(20px);
  transition: transform .3s ease;
}
.modal-overlay.open .modal-card{ transform: translateY(0); }
.modal-close{
  position:absolute; top:1rem; right:1.2rem;
  background:none; border:none; font-size:1.8rem; line-height:1; color: var(--ink-soft);
}
.modal-close:hover{ color: var(--stamp-red); }
.modal-body .blog-tag{ margin-bottom:.6rem; display:inline-block; }
.modal-body h3{ font-size:1.6rem; }
.modal-body .blog-meta{ margin-bottom:1.4rem; justify-content:flex-start; gap:1.2rem; }
.modal-body p{ color: var(--ink-soft); }

/* ---------- FAQ ---------- */
.faq-wrap{ max-width: 800px; }
.acc-item{ border-bottom: 1px solid var(--line); }
.acc-trigger{
  width:100%;
  background:none; border:none;
  display:flex; align-items:center; justify-content:space-between;
  padding: 1.3rem 0;
  text-align:left;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight:600;
  color: var(--navy);
}
.acc-icon{ font-family: var(--font-mono); font-size:1.3rem; color: var(--stamp-red); transition: transform .25s ease; flex-shrink:0; margin-left:1rem; }
.acc-item.active .acc-icon{ transform: rotate(45deg); }
.acc-panel{ max-height:0; overflow:hidden; transition: max-height .3s ease; }
.acc-item.active .acc-panel{ max-height: 220px; }
.acc-panel p{ padding-bottom: 1.3rem; margin:0; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns: .85fr 1.15fr; gap: 4rem; }
.contact-sub{ max-width:40ch; }
.contact-list{ display:flex; flex-direction:column; gap:1.1rem; margin-top:1.8rem; }
.contact-list li{ display:flex; flex-direction:column; gap:.2rem; border-left: 2px solid var(--gold); padding-left: 1rem; }
.c-label{ font-family: var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; color: var(--gold); }
.c-value{ font-size:.98rem; color: var(--paper-2); }

.contact-form{ background: var(--paper-2); border-radius: 8px; padding: 2.4rem; color: var(--ink); }
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.form-field{ display:flex; flex-direction:column; gap:.4rem; margin-bottom: 1.2rem; }
.form-field label{ font-size:.82rem; font-weight:600; color: var(--navy); }
.form-field input, .form-field select, .form-field textarea{
  border: 1.5px solid var(--line);
  border-radius: var(--radius);
  padding: .8em .9em;
  background:#fff;
  color: var(--ink);
  transition: border-color .2s ease;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ border-color: var(--gold-dark); outline:none; }
.form-field.invalid input, .form-field.invalid select, .form-field.invalid textarea{ border-color: var(--stamp-red); }
.field-error{ font-size:.76rem; color: var(--stamp-red); min-height: 1em; font-family: var(--font-mono); }
.form-success{
  display:none;
  margin-top: 1rem;
  padding: .9em 1.1em;
  background: rgba(31,111,99,.12);
  border: 1px solid var(--teal);
  color: var(--teal);
  border-radius: var(--radius);
  font-size:.9rem;
  font-weight:600;
}
.form-success.show{ display:block; animation: fadeIn .3s ease; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{ background: linear-gradient(160deg, var(--navy-2) 0%, var(--navy-2) 70%, #2B1E4F 100%); color:#B9C2CE; padding: 4.5rem 0 0; }
.footer-grid{ display:grid; grid-template-columns: 1.4fr .8fr .8fr 1.2fr; gap: 3rem; padding-bottom: 3rem; }
.footer-brand-mark{ display:flex; align-items:center; gap:.7rem; }
.footer-logo{ width:44px; height:44px; object-fit:contain; flex-shrink:0; }
.footer-word{ color: var(--paper-2); }
.footer-brand p{ margin-top:1rem; font-size:.9rem; max-width:32ch; }
.footer-social{ display:flex; gap:.7rem; margin-top:1.2rem; }
.footer-social a{ width:34px; height:34px; border:1px solid #2C4358; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family: var(--font-mono); font-size:.7rem; transition: border-color .2s ease, color .2s ease; }
.footer-social a:hover{ border-color: var(--gold); color: var(--gold); }
.footer-col h4{ color: var(--paper-2); font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; font-family: var(--font-mono); font-weight:600; margin-bottom:1.1rem; }
.footer-col a{ display:block; font-size:.88rem; margin-bottom:.7rem; color:#B9C2CE; transition: color .2s ease; }
.footer-col a:hover{ color: var(--gold); }
.footer-newsletter p{ font-size:.85rem; }
#newsletterForm{ display:flex; gap:.5rem; margin-top:.8rem; }
#newsletterForm input{ flex:1; padding:.7em .8em; border-radius: var(--radius); border:1px solid #2C4358; background: var(--navy); color:#fff; font-size:.85rem; }
#newsletterForm button{ background: var(--gold); border:none; padding: 0 1.1em; border-radius: var(--radius); font-weight:600; color: var(--navy-2); }
.news-success{ display:none; font-size:.78rem; color: var(--gold); margin-top:.6rem; }
.news-success.show{ display:block; }

.footer-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem;
  border-top: 1px solid #1E3348;
  padding: 1.4rem 0;
  font-size:.8rem;
}
.footer-bottom p{ margin:0; color:#7C8AA0; }

/* ==========================================================================
   Floating buttons
   ========================================================================== */
.whatsapp-float{
  position:fixed; bottom: 24px; right: 24px; z-index:400;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 12px 28px -10px rgba(37,211,102,.6);
  transition: transform .2s ease;
}
.whatsapp-float svg{ width:28px; height:28px; }
.whatsapp-float:hover{ transform: scale(1.08); }

.back-top{
  position:fixed; bottom: 24px; right: 92px; z-index:400;
  width:44px; height:44px; border-radius:50%;
  background: var(--navy); color: var(--paper-2);
  border:none; font-size:1.1rem;
  opacity:0; visibility:hidden; transform: translateY(10px);
  transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
}
.back-top.show{ opacity:1; visibility:visible; transform:none; }

/* ==========================================================================
   Reveal-on-scroll
   ========================================================================== */
.reveal{ opacity:0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px){
  .hero-grid{ grid-template-columns: 1fr; }
  .hero-visual{ order:-1; }
  .about-grid{ grid-template-columns:1fr; }
  .about-visual{ order:-1; }
  .ticket-grid{ grid-template-columns: repeat(2,1fr); }
  .process-grid{ grid-template-columns: repeat(2,1fr); gap: 2.2rem 1.6rem; }
  .dest-grid{ grid-template-columns: repeat(3,1fr); }
  .blog-grid{ grid-template-columns: repeat(2,1fr); }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px){
  .main-nav{
    position:fixed; top:66px; left:0; right:0;
    background: var(--paper-2);
    flex-direction:column;
    align-items:flex-start;
    padding: 1.5rem 28px 2rem;
    gap: 1.1rem;
    border-bottom: 1px solid var(--line);
    transform: translateY(-130%);
    transition: transform .3s ease;
    z-index: 400;
  }
  .main-nav.open{ transform: translateY(0); }
  .nav-toggle{ display:flex; }
  .header-actions .btn-sm{ display:none; }
  .stats-grid{ grid-template-columns: repeat(2,1fr); }
  .stat{ border-right:none; border-bottom:1px solid rgba(255,255,255,.08); }
  .ticket-grid{ grid-template-columns: 1fr; }
  .process-grid{ grid-template-columns: 1fr; }
  .dest-grid{ grid-template-columns: repeat(2,1fr); }
  .blog-grid{ grid-template-columns: 1fr; }
  .form-row{ grid-template-columns: 1fr; }
  .footer-grid{ grid-template-columns: 1fr; gap: 2.2rem; }
  .back-top{ right:24px; bottom:90px; }
  .section{ padding: 3.6rem 0; }
}
