/* MV First Travel Ltd — shared styles */
@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700;800&family=Source+Sans+3:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --bg:#FBF6EE;
  --surface:#FFFFFF;
  --green-tint:#F1F7F3;
  --green-tint-border:#D6E7DC;
  --border:#EFE4D5;
  --border-warm:#E6DACA;
  --muted:#8A7C6B;
  --muted-2:#A2937F;
  --body-text:#4E4437;
  --ink:#241C13;
  --green:#146B4A;
  --green-dark:#0F5539;
  --green-text-dark:#1D4F3A;
  --orange:#E2751B;
  --orange-dark:#C7620F;
  --red:#A8321F;
  --red-2:#C0392B;
  --error-bg:#FBEAEA;
  --error-border:#E3B4B4;
  --error-text:#8A2E2E;
  --footer-bg:#241C13;
  --footer-text:#CDBFAB;
  --footer-muted:#8A7C6B;
}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:'Source Sans 3',system-ui,sans-serif;
}
a{color:var(--green); text-decoration:none;}
a:hover{color:var(--green-dark); text-decoration:underline;}
input, textarea, select{font-family:'Source Sans 3',system-ui,sans-serif;}
::placeholder{color:var(--muted-2);}
img{max-width:100%;}

.container{max-width:1180px; margin:0 auto; padding:0 24px;}

/* ---- Header ---- */
.site-header{background:#fff; border-bottom:1px solid var(--border);}
.site-header-inner{
  max-width:1180px; margin:0 auto; padding:12px 24px;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 20px;
}
.brand{display:flex; align-items:center; gap:12px; flex:0 0 auto; text-decoration:none;}
.brand:hover{text-decoration:none;}
.brand img{width:96px; height:72px; object-fit:contain;}
.brand-name{font-family:'Figtree',sans-serif; font-weight:800; font-size:18px; color:var(--green); line-height:1.15; display:block;}
.brand-tag{font-size:12.5px; color:var(--muted); line-height:1.15;}
.main-nav{display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; font-size:14.5px; white-space:nowrap; flex:1 1 auto; min-width:0;}
.main-nav a{color:var(--ink); text-decoration:none;}
.main-nav a:hover, .main-nav a.active{color:var(--green); text-decoration:none;}
.header-contact{display:flex; align-items:center; gap:14px; flex:0 0 auto;}
.header-phone{text-align:right; line-height:1.25;}
.header-phone .primary{font-family:'Figtree',sans-serif; font-weight:700; font-size:15.5px; color:var(--ink); display:block; text-decoration:none;}
.header-phone .secondary{font-size:13px; color:var(--muted); display:block; text-decoration:none;}

.trust-bar{background:var(--green); color:#DFF0E7;}
.trust-bar-inner{
  max-width:1180px; margin:0 auto; padding:9px 24px;
  display:flex; flex-wrap:wrap; align-items:center; gap:16px; font-size:13px;
}
.trust-bar-inner a{margin-left:auto; color:#fff; text-decoration:underline; text-underline-offset:3px;}
.trust-bar-inner a:hover{color:#fff;}

/* ---- Buttons ---- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
  font-family:'Figtree',sans-serif; font-weight:700; white-space:nowrap;
  border-radius:999px; text-decoration:none; border:none;
}
.btn:hover{text-decoration:none;}
.btn-primary{background:var(--orange); color:#fff; font-size:16px; padding:14px 26px;}
.btn-primary:hover{background:var(--orange-dark); color:#fff;}
.btn-primary.sm{font-size:15px; padding:13px 24px;}
.btn-secondary{background:transparent; border:1.5px solid var(--green); color:var(--green); font-size:16px; padding:12.5px 24px;}
.btn-secondary:hover{background:var(--green-tint); color:var(--green);}
.btn-secondary.sm{font-size:15px; padding:10.5px 20px;}
.btn-on-green{border:1.5px solid rgba(255,255,255,.55); color:#fff; font-size:16px; padding:12.5px 22px;}
.btn-on-green:hover{background:rgba(255,255,255,.12); color:#fff;}
.btn-header{background:var(--orange); color:#fff; font-size:13.5px; padding:10px 18px;}
.btn-header:hover{background:var(--orange-dark); color:#fff;}
.btn-outline-header{border:1.5px solid rgba(255,255,255,.22); color:#F1E7D9; font-size:13px; padding:5px 14px; border-radius:999px;}
.btn-outline-header:hover{background:rgba(255,255,255,.10); color:#F1E7D9;}
.btn-whatsapp{background:var(--green); border-radius:999px; padding:6px 14px; color:#fff; font-weight:600; font-size:13px;}
.btn-whatsapp:hover{background:var(--green-dark); color:#fff;}

/* ---- Chips / badges ---- */
.chip{background:#fff; border:1px solid var(--border-warm); border-radius:999px; padding:5px 12px; font-size:13.5px; color:var(--body-text);}
.badge-dark{background:var(--green); color:#fff; padding:4px 12px; border-radius:999px; font-size:13px;}

/* ---- Cards / panels ---- */
.card{background:#fff; border:1px solid var(--border); border-radius:14px; padding:20px;}
.panel{background:#fff; border:1px solid var(--border); border-radius:18px; box-shadow:0 2px 12px rgba(80,58,30,.07); padding:24px;}
.tint-box{background:var(--green-tint); border:1px solid var(--green-tint-border); border-radius:12px; padding:14px 16px; font-size:14.5px; line-height:1.6; color:var(--green-text-dark);}
.tint-card{background:var(--green-tint); border:1px solid var(--green-tint-border); border-radius:14px; padding:18px;}

/* ---- Section ---- */
.section{max-width:1180px; margin:0 auto; padding:26px 24px 0;}
.section:first-of-type{padding-top:34px;}
.section.pad-bottom{padding-bottom:34px;}
.section-head{display:flex; align-items:baseline; justify-content:space-between; margin-bottom:12px; flex-wrap:wrap; gap:8px;}
.section-title{font-family:'Figtree',sans-serif; font-size:22px; font-weight:800; letter-spacing:-.01em;}
.eyebrow{font-family:'Figtree',sans-serif; font-size:12.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--orange);}
.page-title{font-family:'Figtree',sans-serif; font-size:38px; font-weight:800; letter-spacing:-.02em;}
.page-lead{font-size:17px; line-height:1.65; color:var(--body-text); max-width:62ch; margin-top:8px;}

/* ---- Hero ---- */
.hero{display:grid; grid-template-columns:1fr 1fr; gap:34px; align-items:center;}
.hero-title{font-family:'Figtree',sans-serif; font-size:46px; font-weight:800; line-height:1.04; letter-spacing:-.02em; margin:12px 0 14px;}
.hero-sub{font-size:17px; line-height:1.65; color:var(--body-text); max-width:48ch;}
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:20px;}
.hero-badges{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; font-size:13.5px; color:var(--body-text);}
.hero-media{border-radius:18px; overflow:hidden; height:380px;}
.hero-media img{width:100%; height:100%; object-fit:cover; display:block;}

/* ---- Rail (horizontal scroll) ---- */
.rail{display:flex; gap:14px; overflow-x:auto; padding-bottom:10px; scroll-snap-type:x mandatory;}
.rail-card{flex:0 0 300px; scroll-snap-align:start;}
.rail-card .img{height:190px; border-radius:14px; overflow:hidden;}
.rail-card img{width:100%; height:100%; object-fit:cover; display:block;}
.rail-card-title{font-family:'Figtree',sans-serif; font-weight:700; font-size:15px; margin-top:8px;}
.rail-card-sub{font-size:13.5px; color:var(--muted);}
.rail-review{flex:0 0 330px; scroll-snap-align:start; align-self:flex-start;}
.rail-review .quote{font-size:15px; line-height:1.6;}
.rail-review .attrib{font-size:13px; color:var(--muted); margin-top:10px;}

/* ---- Route pills ---- */
.route-pill{
  flex:0 0 auto; scroll-snap-align:start; background:#fff; border:1px solid var(--border-warm);
  border-radius:999px; padding:12px 22px; display:flex; align-items:center; gap:12px; white-space:nowrap;
}
.route-code{font-family:'Figtree',sans-serif; font-weight:800; font-size:17px; letter-spacing:.02em;}
.route-code .sep{color:var(--orange); margin:0 6px;}
.route-place{font-size:13.5px; color:var(--muted);}

/* ---- Grids ---- */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.step-card{background:#fff; border:1px solid var(--border); border-radius:14px; padding:18px;}
.step-label{font-family:'Figtree',sans-serif; font-size:12.5px; font-weight:700; color:var(--orange);}
.step-body{font-size:14.5px; line-height:1.55; margin-top:6px; color:var(--body-text);}

/* ---- CTA band ---- */
.cta-band{background:var(--green); color:#EAF6EF; border-radius:18px; padding:26px; display:flex; align-items:center; gap:24px; flex-wrap:wrap;}
.cta-band-title{font-family:'Figtree',sans-serif; font-size:24px; font-weight:800; color:#fff;}
.cta-band-sub{font-size:15.5px; line-height:1.6; margin-top:6px;}
.cta-band-actions{display:flex; gap:12px; flex-wrap:wrap;}

/* ---- Forms ---- */
.form-section-label{
  font-family:'Figtree',sans-serif; font-size:12.5px; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; color:var(--muted); margin-top:22px;
}
.form-section-label:first-child{margin-top:0;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:8px;}
.field{display:block;}
.field label, .field > span{display:block; font-size:12.5px; color:var(--muted); margin-bottom:4px;}
.required-mark{color:var(--red-2);}
.field input, .field select, .field textarea{
  width:100%; box-sizing:border-box; border:1px solid var(--border-warm); border-radius:10px;
  padding:10px 12px; font-size:15px; background:#fff; outline:none;
}
.field input:focus, .field select:focus, .field textarea:focus{
  border-color:var(--green); box-shadow:0 0 0 3px rgba(20,107,74,.12);
}
.field textarea{resize:vertical;}
.ticket-strip{
  display:flex; align-items:center; justify-content:space-between; gap:16px; background:var(--green); color:#DFF0E7;
  border-radius:10px; padding:9px 14px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.1em; flex-wrap:wrap;
}
.ticket-strip span:first-child{color:#fff; font-weight:500;}
.form-divider{position:relative; height:0; margin-top:22px;}
.form-divider .dash{border-top:2px dashed var(--border-warm);}
.form-divider::before, .form-divider::after{
  content:""; position:absolute; top:50%; width:28px; height:28px; border-radius:50%;
  background:var(--bg); transform:translateY(-50%);
}
.form-divider::before{left:-38px;}
.form-divider::after{right:-38px;}
.form-error{
  background:var(--error-bg); border:1px solid var(--error-border); color:var(--error-text);
  border-radius:10px; padding:11px 14px; font-size:14px; line-height:1.5; margin-top:16px;
}
.form-success{background:var(--green-tint); border:1px solid var(--green-tint-border); border-radius:14px; padding:22px; margin-top:14px;}
.form-success.compact{padding:20px;}
.form-success-title{font-family:'Figtree',sans-serif; font-size:20px; font-weight:800; color:var(--green-text-dark);}
.form-success.compact .form-success-title{font-size:18px;}
.form-success-body{font-size:15px; line-height:1.65; color:var(--green-text-dark); margin-top:8px; max-width:56ch;}
.submit-row{display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-top:16px;}
.submit-note{font-size:14px; color:var(--muted); line-height:1.5;}
.tag-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px;}
.tag-row .tag{background:var(--bg); border:1px solid var(--border-warm); border-radius:999px; padding:6px 13px; font-size:13.5px;}
.hp-field{position:absolute; left:-9999px; top:-9999px;}

/* ---- FAQ accordion ---- */
.faq-list{display:flex; flex-direction:column; gap:10px;}
.faq-item{background:#fff; border:1px solid var(--border); border-radius:14px; padding:16px 18px;}
.faq-q{display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; background:none; border:none; width:100%; text-align:left; padding:0; font-family:'Figtree',sans-serif; font-weight:700; font-size:16.5px; color:var(--ink);}
.faq-mark{font-family:'Figtree',sans-serif; font-weight:700; font-size:20px; color:var(--green); flex:0 0 auto;}
.faq-a{font-size:15px; line-height:1.65; color:var(--body-text); margin-top:10px; max-width:74ch; display:none;}
.faq-item.open .faq-a{display:block;}

/* ---- Terms (how it works page) ---- */
.terms-warn{background:#fff; border:1px solid #E6C4BB; border-radius:14px; padding:20px;}
.terms-warn-title{font-family:'Figtree',sans-serif; font-weight:700; font-size:17px; color:var(--red);}
.terms-warn-body{font-size:15px; line-height:1.65; color:var(--body-text); margin-top:7px;}
.terms-warn-note{margin-top:10px; background:#FBEEE9; border-radius:10px; padding:10px 12px; font-family:'Figtree',sans-serif; font-weight:700; font-size:14.5px; color:var(--red);}
.terms-card{background:#fff; border:1px solid var(--border); border-radius:14px; padding:20px;}
.terms-card-title{font-family:'Figtree',sans-serif; font-weight:700; font-size:17px;}
.terms-card-body{font-size:15px; line-height:1.65; color:var(--body-text); margin-top:7px;}

/* ---- WhatsApp float ---- */
.whatsapp-float-wrap{max-width:1180px; margin:0 auto; padding:0 24px 18px; display:flex; justify-content:flex-end;}
.whatsapp-float{
  display:flex; align-items:center; gap:10px; background:var(--green); color:#fff;
  font-family:'Figtree',sans-serif; font-weight:700; font-size:15px; padding:13px 22px; border-radius:999px;
  box-shadow:0 6px 18px rgba(20,107,74,.28); white-space:nowrap; text-decoration:none;
}
.whatsapp-float:hover{background:var(--green-dark); color:#fff; text-decoration:none;}
.whatsapp-dot{width:9px; height:9px; border-radius:50%; background:#7FE3AE; display:inline-block;}
.whatsapp-hours{font-weight:500; font-size:12.5px; opacity:.85;}

/* ---- Footer ---- */
.site-footer{background:var(--footer-bg); color:var(--footer-text);}
.footer-grid{max-width:1180px; margin:0 auto; padding:28px 24px; display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:26px;}
.footer-brand{display:flex; align-items:center; gap:10px;}
.footer-brand img{width:88px; height:62px; object-fit:contain; background:#fff; border-radius:10px; padding:5px;}
.footer-brand-name{font-family:'Figtree',sans-serif; font-weight:800; font-size:16px; color:#fff;}
.footer-desc{font-size:13.5px; line-height:1.6; margin-top:10px;}
.footer-col-title{font-family:'Figtree',sans-serif; font-weight:700; font-size:14.5px; color:#fff;}
.footer-links{display:flex; flex-direction:column; gap:6px; margin-top:10px; font-size:13.5px;}
.footer-links a{color:var(--footer-text); text-decoration:none;}
.footer-links a:hover{color:#fff; text-decoration:none;}
.footer-office{font-size:13.5px; line-height:1.6; margin-top:10px;}
.footer-social{display:flex; gap:10px; margin-top:12px; flex-wrap:wrap;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.10);}
.footer-bottom-inner{max-width:1180px; margin:0 auto; padding:14px 24px; display:flex; flex-wrap:wrap; gap:16px; font-size:12.5px; color:var(--footer-muted);}

/* ---- Responsive ---- */
@media (max-width: 860px){
  .hero{grid-template-columns:1fr;}
  .hero-media{height:260px;}
  .grid-2, .grid-3, .grid-4{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:24px;}
  .quote-layout, .contact-layout{grid-template-columns:1fr !important;}
}
@media (max-width: 520px){
  .footer-grid{grid-template-columns:1fr;}
  .hero-title{font-size:34px;}
  .page-title{font-size:30px;}
}
