/* ============ Calilatino Trade — design tokens ============ */
:root{
  --radius:.5rem;
  --background:oklch(100% 0 0);
  --foreground:oklch(22% .03 264);
  --card:oklch(100% 0 0);
  --primary:oklch(25% .062 264);
  --primary-foreground:oklch(98.5% .005 250);
  --secondary:oklch(96.2% .008 250);
  --muted-foreground:oklch(50% .025 258);
  --accent:oklch(54% .215 27.5);
  --accent-foreground:oklch(99% .005 250);
  --destructive:oklch(57.7% .245 27.325);
  --border:oklch(90% .012 255);
  --input:oklch(90% .012 255);
  --ring:oklch(54% .215 27.5);
  --whatsapp:oklch(62% .16 150);
  --gradient-hero:linear-gradient(120deg, oklch(22% .06 264/.94), oklch(25% .062 264/.72) 55%, oklch(40% .14 27/.55));
  --shadow-card:0 10px 30px -18px oklch(25% .062 264/.45);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--background);color:var(--foreground);
  font-family:Barlow,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,.brand-name,.step-num{font-family:Archivo,ui-sans-serif,system-ui,sans-serif}
h1,h2,h3{margin:0;line-height:1.15}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--ring);outline-offset:2px}

/* ============ layout helpers ============ */
.container{max-width:80rem;margin-inline:auto;padding-inline:1rem}
.section{padding-block:4rem}
.section--tight{max-width:56rem}
.bg-secondary{background:var(--secondary)}
.bg-primary{background:var(--primary);color:var(--primary-foreground)}
.eyebrow{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:var(--accent)}
.eyebrow--light{color:oklch(98.5% .005 250/.7)}
.section-title{margin-top:.75rem;font-size:1.5rem;font-weight:800;text-transform:uppercase;color:var(--primary)}
.bg-primary .section-title{color:var(--primary-foreground)}
.section-title--narrow{max-width:42rem}
.grid{display:grid;gap:1.5rem}

/* ============ buttons ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  white-space:nowrap;border:0;border-radius:var(--radius);cursor:pointer;
  font-family:inherit;font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.025em;
  height:2.25rem;padding:0 1rem;transition:background-color .2s,color .2s,filter .2s,border-color .2s;
}
.btn svg{width:1rem;height:1rem;flex-shrink:0}
.btn--lg{height:2.5rem;padding:0 2rem}
.btn--accent{background:var(--accent);color:var(--accent-foreground);box-shadow:0 4px 6px -4px oklch(0% 0 0/.25)}
.btn--accent:hover{background:oklch(54% .215 27.5/.9)}
.btn--outline-light{background:transparent;color:var(--primary-foreground);border:2px solid oklch(98.5% .005 250/.7)}
.btn--outline-light:hover{background:var(--primary-foreground);color:var(--primary)}
.btn--wa{background:var(--whatsapp);color:#fff;box-shadow:0 4px 6px -4px oklch(0% 0 0/.25)}
.btn--wa:hover{filter:brightness(1.1)}
.btn--block{width:100%}

/* ============ header ============ */
.site-header{
  position:sticky;top:0;z-index:40;border-bottom:1px solid oklch(90% .012 255/.6);
  background:oklch(100% 0 0/.95);backdrop-filter:blur(8px);
}
@supports (backdrop-filter:blur(1px)){.site-header{background:oklch(100% 0 0/.8)}}
.header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding-block:.75rem}
.brand{display:flex;align-items:center;gap:.75rem;min-width:0}
.brand img{width:3.5rem;height:3.5rem;flex-shrink:0;border-radius:var(--radius);object-fit:cover;object-position:top}
.brand-text{min-width:0}
.brand-name{display:block;font-size:1.125rem;font-weight:800;letter-spacing:-.02em;color:var(--primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand-name .accent{color:var(--accent)}
.brand-tag{display:block;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.header-actions{display:flex;align-items:center;gap:.5rem}
.main-nav{display:none;align-items:center;gap:1.25rem}
.main-nav a{font-size:.875rem;font-weight:600;color:oklch(22% .03 264/.8);transition:color .2s}
.main-nav a:hover{color:var(--accent)}
.header-cta{display:none}
.nav-toggle{
  display:grid;place-items:center;width:2.5rem;height:2.5rem;flex-shrink:0;
  border:1px solid var(--border);border-radius:var(--radius);background:transparent;cursor:pointer;color:inherit;
}
.mobile-nav{display:none;border-top:1px solid var(--border);background:var(--background)}
.mobile-nav.open{display:block}
.mobile-nav ul{padding:.5rem 1rem 1rem}
.mobile-nav a{display:block;padding:.625rem 0;font-size:.9375rem;font-weight:600;color:var(--primary);border-bottom:1px solid oklch(90% .012 255/.6)}

/* ============ hero ============ */
.hero{position:relative;isolation:isolate;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-overlay{position:absolute;inset:0;background-image:var(--gradient-hero);z-index:-1}
.hero-inner{position:relative;padding-block:6rem}
.hero .eyebrow{color:oklch(98.5% .005 250/.8)}
.hero h1{
  margin-top:1rem;max-width:56rem;font-size:1.875rem;font-weight:900;
  text-transform:uppercase;line-height:1.05;color:var(--primary-foreground);
}
.hero-lead{margin-top:1.5rem;max-width:42rem;font-size:1rem;line-height:1.7;color:oklch(98.5% .005 250/.85)}
.hero-actions{margin-top:2.25rem;display:flex;flex-direction:column;gap:.75rem}

/* ============ cards ============ */
.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:1.75rem}
.card--elevated{box-shadow:var(--shadow-card)}
.card h2,.card h3{color:var(--primary)}
.card-title{margin-top:1.25rem;font-size:1.25rem;font-weight:800}
.card-text{margin-top:.625rem;font-size:.875rem;line-height:1.7;color:var(--muted-foreground)}
.icon-box{display:grid;place-items:center;width:3rem;height:3rem;border-radius:var(--radius);background:var(--primary);color:var(--primary-foreground)}
.icon-box svg{width:1.5rem;height:1.5rem}
.icon-box--soft{width:2.75rem;height:2.75rem;background:oklch(54% .215 27.5/.1);color:var(--accent)}
.icon-box--soft svg{width:1.375rem;height:1.375rem}

/* servicios */
.service-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:1.75rem;transition:border-color .2s}
.service-card:hover{border-color:var(--accent)}
.service-card__row{display:grid;gap:1rem}
.service-card h3{font-size:1.125rem;font-weight:800;color:var(--primary)}
.service-card p{margin-top:.5rem;font-size:.875rem;line-height:1.7;color:var(--muted-foreground)}

/* proceso */
.steps{margin-top:2.5rem}
.step{border-top:4px solid var(--accent);padding-top:1.25rem}
.step-num{font-size:1.5rem;font-weight:900;color:var(--accent)}
.step h3{margin-top:.5rem;font-size:1.125rem;font-weight:800;color:var(--primary)}
.step p{margin-top:.5rem;font-size:.875rem;line-height:1.7;color:var(--muted-foreground)}

/* destinos */
.dest-card{border-radius:var(--radius);background:oklch(98.5% .005 250/.05);padding:1.75rem}
.dest-card__head{display:flex;align-items:center;gap:.625rem;color:var(--primary-foreground)}
.dest-card__head svg{width:1.375rem;height:1.375rem;color:var(--accent)}
.dest-card h3{font-size:1.125rem;font-weight:800;text-transform:uppercase}
.dest-card ul{margin-top:1.25rem;display:grid;gap:.625rem}
.dest-card li{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:oklch(98.5% .005 250/.85)}
.dest-card li svg{width:.875rem;height:.875rem;flex-shrink:0;color:var(--accent)}

/* rastreo */
.track-card{padding:2rem}
.track-form{margin-top:1.5rem;display:grid;gap:.75rem}
.track-result{margin-top:1rem;font-size:.875rem;font-weight:600;color:var(--primary)}
.track-result.error{color:var(--destructive)}

/* testimonios */
.gallery img{height:14rem;width:100%;border-radius:var(--radius);object-fit:cover}
.quote{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:1.5rem;margin:0}
.quote svg{width:1.25rem;height:1.25rem;color:var(--accent)}
.quote p{margin-top:.75rem;font-size:.875rem;line-height:1.7;color:oklch(22% .03 264/.85)}
.quote footer{margin-top:1rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--primary)}
.pay{margin-top:3rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:1.5rem}
.pay > p{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--muted-foreground)}
.pay-list{margin-top:1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.875rem;font-weight:600;color:var(--primary)}
.pay-list span{display:inline-flex;align-items:center;gap:.5rem;border-radius:var(--radius);background:var(--secondary);padding:.5rem .75rem}
.pay-list svg{width:1rem;height:1rem;color:var(--accent)}

/* faq */
.faq{margin-top:2.5rem;display:grid;gap:.75rem}
.faq-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden}
.faq-q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.125rem 1.25rem;background:transparent;border:0;cursor:pointer;text-align:left;
  font-family:inherit;font-size:.9375rem;font-weight:700;color:var(--primary);
}
.faq-q svg{width:1.125rem;height:1.125rem;flex-shrink:0;color:var(--accent);transition:transform .2s}
.faq-item.open .faq-q svg{transform:rotate(180deg)}
.faq-a{padding:0 1.25rem 1.25rem;font-size:.875rem;line-height:1.75;color:var(--muted-foreground)}
.faq-a[hidden]{display:none}

/* formulario */
.quote-grid{display:grid;gap:2.5rem}
.form-card{padding:1.75rem}
.form-card > .eyebrow + .section-title + p{margin-top:.75rem;font-size:.875rem;color:var(--muted-foreground)}
.form{margin-top:1.75rem;display:grid;gap:1.25rem}
.form-row{display:grid;gap:1.25rem}
label{font-size:.875rem;font-weight:600;color:var(--primary)}
.field input,.field select,.field textarea,.track-form input{
  margin-top:.5rem;width:100%;border:1px solid var(--input);border-radius:var(--radius);
  background:var(--background);color:inherit;font-family:inherit;font-size:.875rem;
  padding:.5rem .75rem;transition:box-shadow .15s,border-color .15s;
}
.field input,.field select,.track-form input{height:2.25rem}
.field textarea{padding-top:.5rem;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus,.track-form input:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 1px var(--ring)}
.error-msg{margin-top:.25rem;font-size:.75rem;font-weight:600;color:var(--destructive)}
.legal-note{margin-top:1rem;font-size:.75rem;line-height:1.6;color:var(--muted-foreground)}
.aside-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:1.5rem}
.aside-card h3{font-size:1rem;font-weight:800;text-transform:uppercase;color:var(--primary)}
.aside-card ul{margin-top:1rem;display:grid;gap:.625rem;font-size:.875rem;color:var(--muted-foreground)}
.aside-card a:hover{color:var(--accent)}
.map{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);margin-top:1.5rem}
.map iframe{width:100%;height:230px;border:0;display:block}
.aside-legal{margin-top:1.5rem;font-size:.75rem;color:var(--muted-foreground)}
.aside-legal a{font-weight:600;color:var(--accent);text-decoration:underline}

/* ============ footer ============ */
.site-footer{background:var(--primary);color:var(--primary-foreground)}
.footer-top{display:grid;gap:2.5rem;padding-block:3.5rem}
.footer-brand{display:flex;align-items:center;gap:.75rem}
.footer-brand img{width:3rem;height:3rem;border-radius:var(--radius);object-fit:cover;object-position:top}
.footer-brand p:first-child{font-family:Archivo,sans-serif;font-weight:800;letter-spacing:.02em}
.footer-brand p:last-child{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:oklch(98.5% .005 250/.65)}
.footer-about{margin-top:1rem;font-size:.875rem;line-height:1.7;color:oklch(98.5% .005 250/.75);max-width:22rem}
.socials{margin-top:1.25rem;display:flex;gap:.75rem}
.socials a{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius);background:oklch(98.5% .005 250/.08);transition:background-color .2s}
.socials a:hover{background:var(--accent)}
.socials svg{width:1.125rem;height:1.125rem}
.site-footer h3{font-size:.875rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.site-footer .footer-col ul{margin-top:1rem;display:grid;gap:.625rem;font-size:.875rem;color:oklch(98.5% .005 250/.75)}
.footer-col li{display:flex;align-items:center;gap:.5rem}
.footer-col li.opacity{opacity:.7}
.footer-col svg{width:1rem;height:1rem;flex-shrink:0;color:var(--accent)}
.footer-col a:hover{color:#fff;text-decoration:underline}
.footer-bottom{border-top:1px solid oklch(98.5% .005 250/.15)}
.footer-bottom .container{padding-block:1.75rem;display:grid;gap:.75rem;font-size:.75rem;line-height:1.7;color:oklch(98.5% .005 250/.7)}
.footer-bottom a{font-weight:600;text-decoration:underline}

/* ============ whatsapp fab ============ */
.wa-fab{
  position:fixed;bottom:1.25rem;right:1.25rem;z-index:50;display:inline-flex;align-items:center;gap:.5rem;
  border-radius:9999px;background:var(--whatsapp);color:#fff;padding:.75rem 1rem;
  font-size:.875rem;font-weight:700;box-shadow:0 10px 25px -8px oklch(0% 0 0/.45);transition:transform .2s;
}
.wa-fab:hover{transform:scale(1.05)}
.wa-fab svg{width:1.25rem;height:1.25rem}

/* ============ paginas internas ============ */
.page-hero{background:var(--primary);color:var(--primary-foreground);padding-block:3.5rem}
.page-hero h1{margin-top:.75rem;font-size:1.75rem;font-weight:900;text-transform:uppercase}
.page-hero p{margin-top:1rem;max-width:48rem;font-size:.9375rem;color:oklch(98.5% .005 250/.8)}
.legal-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:1.75rem}
.legal-block + .legal-block{margin-top:1.5rem}
.legal-block h2{font-size:1.125rem;font-weight:800;text-transform:uppercase;color:var(--primary)}
.legal-block h3{margin-top:1.5rem;font-size:.9375rem;font-weight:800;color:var(--primary)}
.legal-block p{margin-top:.625rem;font-size:.875rem;line-height:1.75;color:var(--muted-foreground)}
.back-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:2rem;font-size:.875rem;font-weight:700;color:var(--accent)}
.thanks{display:grid;place-items:center;min-height:60vh;text-align:center}
.thanks h1{font-size:1.875rem;font-weight:900;text-transform:uppercase;color:var(--primary)}
.thanks p{margin-top:1rem;max-width:34rem;font-size:.9375rem;line-height:1.7;color:var(--muted-foreground)}
.thanks .actions{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}
.thanks .icon-box{margin-inline:auto;background:oklch(54% .215 27.5/.1);color:var(--accent);width:3.5rem;height:3.5rem;margin-bottom:1.5rem}

/* ============ responsive ============ */
@media (min-width:640px){
  .header-cta{display:inline-flex}
  .hero-inner{padding-block:8rem}
  .hero h1{font-size:3rem}
  .hero-lead{font-size:1.125rem}
  .hero-actions{flex-direction:row}
  .brand-name{font-size:1.25rem}
  .section-title{font-size:1.875rem}
  .grid--2,.grid--4,.form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .track-form{grid-template-columns:minmax(0,1fr) auto}
  .service-card__row{grid-template-columns:auto minmax(0,1fr);align-items:center}
  .form-card{padding:2.25rem}
}
@media (min-width:768px){
  .grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (min-width:1024px){
  .container{padding-inline:2rem}
  .section{padding-block:5rem}
  .hero h1{font-size:3.75rem}
  .brand img{width:4rem;height:4rem}
  .quote-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
  .footer-top{grid-template-columns:repeat(4,minmax(0,1fr))}
  .footer-brand-col{grid-column:span 2}
}
@media (min-width:1280px){
  .main-nav{display:flex}
  .nav-toggle{display:none}
  .mobile-nav{display:none!important}
}

/* ============ botón de idioma ============ */
.lang-btn{
  display:inline-flex;align-items:center;gap:.375rem;height:2.25rem;padding:0 .75rem;
  border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--primary);
  font-family:inherit;font-size:.8125rem;font-weight:700;letter-spacing:.05em;cursor:pointer;
  transition:border-color .2s,color .2s,background-color .2s;
}
.lang-btn:hover{border-color:var(--accent);color:var(--accent)}
.lang-btn svg{width:1rem;height:1rem}
