/* ============================================================
   DEF para Hoteles y Posadas: Design system
   Base cream (#F2ECDF) is DEF's own real meta theme-color.
   Pine green + warm gold built around it: green already reads
   as DEF's "positive/active" status color in their real product
   (turno activo, aprobado, en línea). 60/30/10 kept literal.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --cream:      #F2ECDF;
  --cream-dim:  #E8E0CE;
  --pine:       #2F4A3E;
  --pine-deep:  #1F332A;
  --pine-light: #4C7361;
  --gold:       #D8A64E;
  --gold-deep:  #B0812F;
  --ink:        #1C1913;
  --rust:       #B15C38;

  --radius: 18px;
  --radius-sm: 12px;
  --ease: cubic-bezier(.16,.84,.32,1.06);
  --ease-soft: cubic-bezier(.22,.68,0,1);
  --shadow: 0 14px 34px -10px rgba(28,25,19,.35);
  --shadow-sm: 0 6px 16px -6px rgba(28,25,19,.28);

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', -apple-system, sans-serif;
}

:root, [data-theme="light"]{
  --bg: var(--cream);
  --bg-alt: var(--cream-dim);
  --surface: #FFFCF6;
  --text: var(--ink);
  --text-dim: #5B5546;
  --border: rgba(28,25,19,.12);
  --header-bg: rgba(242,236,223,.86);
  --primary: var(--pine);
  --primary-hover: var(--pine-deep);
  --on-primary: #F6F2E7;
  --accent: var(--gold);
  --on-accent: #2A1B08;
  --chip-bg: rgba(47,74,62,.08);
}

[data-theme="dark"]{
  --bg: #14150F;
  --bg-alt: #1B1C14;
  --surface: #1E1F16;
  --text: #EFEADA;
  --text-dim: #B4AE9A;
  --border: rgba(239,234,218,.12);
  --header-bg: rgba(20,21,15,.86);
  --primary: var(--pine-light);
  --primary-hover: #5E8A76;
  --on-primary: #0E1712;
  --accent: var(--gold);
  --on-accent: #251707;
  --chip-bg: rgba(76,115,97,.14);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
}
body{
  font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.6;
  -webkit-font-smoothing:antialiased;transition:background .4s var(--ease), color .4s var(--ease);overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.1;letter-spacing:-.01em;}
.container{width:100%;max-width:1180px;margin:0 auto;padding:0 24px;}
section{position:relative;}
.eyebrow{
  font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);
  display:inline-flex;align-items:center;gap:8px;
}
.eyebrow::before{content:'';width:22px;height:2px;background:var(--accent);border-radius:2px;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border-radius:999px;
  font-weight:700;font-size:.95rem;border:2px solid transparent;cursor:pointer;white-space:nowrap;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.btn:active{transform:scale(.96);}
.btn-primary{background:var(--pine);color:var(--on-primary);box-shadow:var(--shadow-sm);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.btn-gold{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-sm);}
.btn-gold:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.btn-outline{background:transparent;border-color:var(--border);color:var(--text);}
.btn-outline:hover{background:var(--surface);}
.btn-wa{background:#25D366;color:#08300F;}
.btn-wa:hover{transform:translateY(-2px);box-shadow:0 10px 24px -6px rgba(37,211,102,.5);}
.btn-block{width:100%;}

header{
  position:fixed;top:0;left:0;right:0;z-index:100;background:var(--header-bg);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);transition:background .4s var(--ease);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1180px;margin:0 auto;}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:1.2rem;}
.brand-badge{
  width:38px;height:38px;border-radius:11px;background:linear-gradient(150deg,var(--pine),var(--pine-deep));
  display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:var(--font-display);font-weight:700;flex-shrink:0;
}
.nav-links{display:flex;gap:26px;font-weight:600;font-size:.9rem;}
.nav-links a{opacity:.82;transition:opacity .2s,color .2s;}
.nav-links a:hover{opacity:1;color:var(--primary);}
.nav-actions{display:flex;align-items:center;gap:10px;}
.icon-btn{
  width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--surface);
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);transition:transform .3s var(--ease);
}
.icon-btn:hover{transform:rotate(-8deg) scale(1.06);}
.icon-btn svg{width:18px;height:18px;}
.lang-switch{font-weight:700;font-size:.8rem;border:1px solid var(--border);border-radius:999px;padding:8px 14px;background:var(--surface);}
.moon{display:none;}
[data-theme="dark"] .sun{display:none;}
[data-theme="dark"] .moon{display:block;}
.nav-toggle{display:none;background:none;border:0;color:var(--text);cursor:pointer;}
@media (max-width:880px){
  .nav-links{position:fixed;top:70px;left:0;right:0;background:var(--bg);flex-direction:column;padding:20px 24px;gap:18px;
    border-bottom:1px solid var(--border);transform:translateY(-8px);opacity:0;pointer-events:none;transition:.3s var(--ease);}
  .nav-links.open{transform:translateY(0);opacity:1;pointer-events:auto;}
  .nav-toggle{display:block;}
}

.hero{min-height:96vh;display:flex;align-items:center;padding:140px 0 70px;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.hero h1{font-size:clamp(2.3rem,5.4vw,3.7rem);margin:16px 0 18px;}
.hero p.lead{font-size:1.15rem;color:var(--text-dim);max-width:520px;margin-bottom:30px;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:38px;}
.hero-stats{display:flex;gap:30px;flex-wrap:wrap;}
.hero-stat b{display:block;font-family:var(--font-display);font-size:1.6rem;color:var(--primary);}
.hero-stat span{font-size:.8rem;color:var(--text-dim);}
@media (max-width:880px){.hero-grid{grid-template-columns:1fr;}.hero{padding-top:110px;}}

/* phone-style chat mockup, built from DEF's own real example dialogue */
.phone{
  background:var(--pine-deep);border-radius:36px;padding:14px;box-shadow:var(--shadow);max-width:340px;margin-inline:auto;
  border:1px solid rgba(255,255,255,.06);
}
.phone-screen{background:var(--surface);border-radius:24px;overflow:hidden;min-height:460px;display:flex;flex-direction:column;}
.phone-bar{background:var(--pine);color:var(--cream);padding:14px 18px;display:flex;align-items:center;gap:10px;font-weight:700;font-size:.9rem;}
.phone-bar .dot{width:9px;height:9px;border-radius:50%;background:#25D366;box-shadow:0 0 0 3px rgba(37,211,102,.25);}
.chat-body{flex:1;padding:16px;display:flex;flex-direction:column;gap:10px;font-size:.86rem;}
.bubble{max-width:82%;padding:10px 14px;border-radius:16px;line-height:1.4;}
.bubble.guest{align-self:flex-start;background:var(--chip-bg);border-bottom-left-radius:4px;}
.bubble.def{align-self:flex-end;background:var(--pine);color:var(--on-primary);border-bottom-right-radius:4px;}
.chat-routed{margin:10px 16px 16px;padding:12px 14px;border-radius:12px;background:var(--bg-alt);font-size:.78rem;border:1px solid var(--border);}
.chat-routed div{display:flex;justify-content:space-between;padding:3px 0;color:var(--text-dim);}
.chat-routed b{color:var(--text);}

.rv{opacity:0;transform:translateY(26px) scale(.985);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.rv.in{opacity:1;transform:translateY(0) scale(1);}
.rv-l{opacity:0;transform:translateX(-30px);transition:opacity .65s var(--ease-soft),transform .65s var(--ease-soft);}
.rv-l.in{opacity:1;transform:translateX(0);}
.rv-r{opacity:0;transform:translateX(30px);transition:opacity .65s var(--ease-soft),transform .65s var(--ease-soft);}
.rv-r.in{opacity:1;transform:translateX(0);}
.stagger .rv:nth-child(1){transition-delay:.03s;}
.stagger .rv:nth-child(2){transition-delay:.10s;}
.stagger .rv:nth-child(3){transition-delay:.17s;}
.stagger .rv:nth-child(4){transition-delay:.24s;}
.stagger .rv:nth-child(5){transition-delay:.31s;}
.stagger .rv:nth-child(6){transition-delay:.38s;}

.section{padding:104px 0;}
.section-alt{background:var(--bg-alt);}
.section-head{max-width:660px;margin-bottom:52px;}
.section-head h2{font-size:clamp(1.85rem,3.4vw,2.55rem);margin-top:14px;}
.section-head p{color:var(--text-dim);margin-top:14px;font-size:1.03rem;}

.problem-band{
  background:var(--pine-deep);color:#F1ECDE;border-radius:24px;padding:56px 44px;margin:0 24px;max-width:1132px;margin-inline:auto;
}
.problem-band h2{color:#fff;font-size:clamp(1.7rem,3.6vw,2.3rem);}
.problem-band p{opacity:.88;margin-top:16px;font-size:1.05rem;max-width:680px;}
.problem-band b{color:var(--gold);}

.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.module-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s;
}
.module-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--primary);}
.module-card .tag{font-size:1.7rem;line-height:1;}
.module-card .stat{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin-top:12px;}
.module-card h3{font-size:1.12rem;margin:6px 0 8px;}
.module-card p{color:var(--text-dim);font-size:.9rem;}
@media (max-width:880px){.module-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.module-grid{grid-template-columns:1fr;}}

.integrations{display:flex;gap:14px;flex-wrap:wrap;}
.integration-chip{
  background:var(--chip-bg);border:1px solid var(--border);border-radius:999px;padding:10px 20px;font-weight:700;font-size:.88rem;
}

.faq-item{border-bottom:1px solid var(--border);padding:22px 0;}
.faq-item h4{font-size:1.02rem;font-weight:700;font-family:var(--font-body);}
.faq-item p{color:var(--text-dim);margin-top:8px;font-size:.94rem;}

.cta-band{
  background:linear-gradient(135deg,var(--pine),var(--pine-deep));border-radius:24px;padding:64px 48px;text-align:center;
  color:#F3EFE0;margin:0 24px;max-width:1132px;margin-inline:auto;
}
.cta-band h2{color:#fff;font-size:clamp(1.8rem,4vw,2.5rem);}
.cta-band p{opacity:.9;margin:14px 0 30px;font-size:1.05rem;}

footer{padding:60px 0 34px;border-top:1px solid var(--border);}
.foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:30px;margin-bottom:36px;}
.foot-links{display:flex;gap:26px;flex-wrap:wrap;font-weight:600;font-size:.9rem;}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:var(--text-dim);font-size:.82rem;padding-top:22px;border-top:1px solid var(--border);}
.wa-float{
  position:fixed;bottom:22px;right:22px;z-index:90;width:60px;height:60px;border-radius:50%;background:#25D366;
  display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px -6px rgba(37,211,102,.55);animation:pulse-wa 2.6s infinite;
}
.wa-float svg{width:30px;height:30px;fill:#fff;}
@keyframes pulse-wa{0%,100%{transform:scale(1);}50%{transform:scale(1.07);}}
.credit-strip{text-align:center;padding:16px 0;font-size:.78rem;color:var(--text-dim);background:var(--bg-alt);}
.credit-strip a{font-weight:700;color:var(--primary);}
.disclaimer{font-size:.72rem;color:var(--text-dim);opacity:.75;margin-top:6px;}
