/* ============================================================
   FoodTrack · web de presentación
   Paleta tomada de la propia aplicación.
   ============================================================ */

:root{
  --naranja:#F08A2C;
  --naranja-oscuro:#D96F12;
  --naranja-suave:#FDE4CB;
  --crema:#FDF1E6;
  --blanco:#FFFFFF;
  --tinta:#241A12;
  --tinta-suave:#7A6A5D;
  --linea:#EFE2D5;
  --verde:#12A150;

  --ancho:1180px;
  --radio:22px;
  --sombra:0 18px 48px rgba(36,26,18,.10);
  --sombra-sutil:0 4px 18px rgba(36,26,18,.06);
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth;scroll-padding-top:86px}

body{
  margin:0;
  font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--tinta);
  background:var(--crema);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit}

h1,h2,h3{line-height:1.12;letter-spacing:-.022em;margin:0}
h1{font-size:clamp(2.2rem,5.2vw,3.7rem);font-weight:800}
h2{font-size:clamp(1.8rem,3.6vw,2.7rem);font-weight:800}
h3{font-size:1.16rem;font-weight:700}
p{margin:0 0 1em}
em{font-style:normal;color:var(--naranja-oscuro)}

.wrap{width:min(100% - 40px,var(--ancho));margin-inline:auto}
.wrap--narrow{width:min(100% - 40px,760px)}

.skip{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--tinta);color:#fff;padding:12px 18px;border-radius:0 0 12px 0;
}
.skip:focus{left:0}

:focus-visible{outline:3px solid var(--naranja-oscuro);outline-offset:3px;border-radius:6px}

/* ───────────────────────── Navegación ───────────────────────── */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(253,241,230,.86);
  backdrop-filter:saturate(1.6) blur(14px);
  -webkit-backdrop-filter:saturate(1.6) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.nav.is-stuck{border-bottom-color:var(--linea);box-shadow:0 6px 22px rgba(36,26,18,.05)}
.nav__inner{display:flex;align-items:center;gap:24px;min-height:70px}

.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;letter-spacing:-.02em}
.brand__mark{
  width:34px;height:34px;border-radius:11px;flex:none;
  background:var(--naranja);color:#fff;
  display:grid;place-items:center;
  box-shadow:0 6px 16px rgba(240,138,44,.36);
}
.brand__name{font-size:1.06rem}

.nav__links{display:flex;gap:24px;margin-left:auto;font-size:.94rem;font-weight:600}
.nav__links a{text-decoration:none;color:var(--tinta-suave);transition:color .18s ease}
.nav__links a:hover{color:var(--tinta)}

/* ───────────────────────── Botones ───────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--naranja);color:#fff;text-decoration:none;
  font-weight:700;font-size:1rem;
  padding:15px 28px;border-radius:15px;
  box-shadow:0 10px 26px rgba(240,138,44,.32);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn:hover{background:var(--naranja-oscuro);transform:translateY(-2px);box-shadow:0 14px 32px rgba(240,138,44,.38)}
.btn--sm{padding:10px 18px;font-size:.9rem;border-radius:12px;margin-left:4px}
.btn--lg{padding:17px 34px;font-size:1.05rem}
.btn--ghost{
  background:transparent;color:var(--tinta);
  box-shadow:none;border:1.5px solid var(--linea);
}
.btn--ghost:hover{background:var(--blanco);color:var(--tinta);border-color:var(--naranja);box-shadow:var(--sombra-sutil)}

/* ───────────────────────── Hero ───────────────────────── */
.hero{padding:clamp(48px,7vw,96px) 0 clamp(56px,8vw,110px);overflow:hidden}
.hero__inner{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center}

.eyebrow{
  font-size:.79rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--naranja-oscuro);margin:0 0 14px;
}
.lede{font-size:1.12rem;color:var(--tinta-suave);max-width:54ch;margin-top:20px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}

.stats{display:flex;gap:40px;margin:44px 0 0;padding-top:26px;border-top:1px solid var(--linea)}
.stats dt{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-suave);font-weight:700}
.stats dd{margin:4px 0 0;font-size:1.6rem;font-weight:800;letter-spacing:-.03em}

.hero__art{position:relative;display:grid;place-items:center;min-height:520px}
.hero__art::before{
  content:"";position:absolute;inset:-8% -14%;
  background:radial-gradient(58% 52% at 52% 44%,rgba(240,138,44,.30),transparent 72%);
  filter:blur(8px);
}
/* Marco de teléfono */
.phone{
  position:relative;
  border-radius:38px;
  padding:9px;
  background:linear-gradient(160deg,#2c241d,#15100c);
  box-shadow:var(--sombra),0 0 0 1.5px rgba(255,255,255,.06) inset;
}
.phone img{border-radius:30px;display:block;width:100%}
.phone::after{
  content:"";position:absolute;top:17px;left:50%;transform:translateX(-50%);
  width:31%;height:15px;border-radius:12px;background:#15100c;
}

.phone--lead{position:relative;z-index:2;width:min(290px,72%)}
.phone--back{
  position:absolute;z-index:1;width:min(232px,58%);
  right:-2%;bottom:2%;
  transform:rotate(7deg);opacity:.96;
}

/* ───────────────────────── Secciones ───────────────────────── */
.section{padding:clamp(60px,8vw,110px) 0}
.section--alt{background:var(--blanco)}
.section__title{max-width:20ch}
.section__lede{font-size:1.08rem;color:var(--tinta-suave);max-width:62ch;margin-top:18px}

/* Tarjetas de funciones */
.grid{list-style:none;padding:0;margin:48px 0 0;display:grid;gap:20px}
.grid--features{grid-template-columns:repeat(3,1fr)}
.card{
  background:var(--blanco);border:1px solid var(--linea);
  border-radius:var(--radio);padding:28px 26px;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.section--alt .card{background:var(--crema)}
.card:hover{transform:translateY(-4px);box-shadow:var(--sombra);border-color:var(--naranja-suave)}
.card__icon{
  display:grid;place-items:center;width:46px;height:46px;border-radius:14px;
  background:var(--naranja-suave);font-size:1.35rem;margin-bottom:16px;
}
.card h3{margin-bottom:8px}
.card p{color:var(--tinta-suave);font-size:.96rem;margin:0}

/* ───────────────────────── Galería ───────────────────────── */
.shots{
  display:flex;gap:26px;
  padding:48px max(20px,calc((100vw - var(--ancho))/2)) 10px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
.shots::-webkit-scrollbar{height:8px}
.shots::-webkit-scrollbar-thumb{background:var(--naranja-suave);border-radius:8px}
.shots::-webkit-scrollbar-track{background:transparent}
.shot{margin:0;flex:0 0 250px;scroll-snap-align:center}
.shot figcaption{
  margin-top:18px;font-size:.9rem;color:var(--tinta-suave);line-height:1.45;
}
.shot figcaption strong{display:block;color:var(--tinta);font-weight:700;font-size:.97rem}
.shots__hint{
  text-align:center;color:var(--tinta-suave);font-size:.86rem;margin:6px 0 0;
}

/* ───────────────────────── Texto largo ───────────────────────── */
.prose{margin-top:26px;font-size:1.06rem}
.prose p{color:var(--tinta-suave);max-width:68ch}
.list{margin:0 0 1.2em;padding-left:1.1em;color:var(--tinta-suave)}
.list li{margin-bottom:.7em;max-width:66ch}
.list strong{color:var(--tinta)}

.note{
  margin-top:30px;padding:16px 20px;border-radius:14px;
  background:var(--naranja-suave);color:var(--naranja-oscuro);
  font-size:.92rem;border-left:4px solid var(--naranja);
}

/* ───────────────────────── Tecnología ───────────────────────── */
.stack{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:46px}
.stack__group{
  background:var(--crema);border:1px solid var(--linea);
  border-radius:var(--radio);padding:26px;
}
.section--alt .stack__group{background:var(--crema)}
.stack__group h3{margin-bottom:16px;font-size:1.02rem}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tags li{
  background:var(--blanco);border:1px solid var(--linea);
  padding:7px 13px;border-radius:30px;font-size:.87rem;font-weight:600;
}

.specs{margin-top:48px;background:var(--crema);border:1px solid var(--linea);border-radius:var(--radio);padding:30px 32px}
.specs__title{margin-bottom:18px}
.specs table{width:100%;border-collapse:collapse;font-size:.97rem}
.specs th,.specs td{text-align:left;padding:14px 0;vertical-align:top;border-bottom:1px solid var(--linea)}
.specs tr:last-child th,.specs tr:last-child td{border-bottom:0}
.specs th{width:31%;font-weight:700;padding-right:20px}
.specs td{color:var(--tinta-suave)}

/* ───────────────────────── Desarrollador ───────────────────────── */
.dev{display:grid;grid-template-columns:1.25fr .75fr;gap:24px;margin-top:46px;align-items:start}
.dev__card{
  display:flex;gap:22px;
  background:var(--crema);border:1px solid var(--linea);
  border-radius:var(--radio);padding:32px;
}
.dev__avatar{
  flex:none;width:76px;height:76px;border-radius:50%;
  background:var(--naranja-suave);color:var(--naranja-oscuro);
  display:grid;place-items:center;font-weight:800;font-size:1.5rem;letter-spacing:.02em;
}
.dev__role{color:var(--naranja-oscuro);font-weight:600;font-size:.95rem;margin:6px 0 14px}
.dev__bio{color:var(--tinta-suave);font-size:.98rem}
.dev__meta{list-style:none;margin:20px 0 0;padding:0;font-size:.94rem}
.dev__meta li{padding:9px 0;border-top:1px solid var(--linea);display:flex;gap:12px;flex-wrap:wrap}
.dev__meta span{color:var(--tinta-suave);min-width:110px;font-weight:600}
.dev__meta a{color:var(--naranja-oscuro);font-weight:600}

.cta{
  background:var(--tinta);color:#fff;border-radius:var(--radio);
  padding:34px 30px;box-shadow:var(--sombra);
}
.cta h3{font-size:1.32rem;margin-bottom:12px}
.cta p{color:rgba(255,255,255,.76);font-size:.97rem}
.cta .btn{margin-top:10px;width:100%}
.cta__small{margin:16px 0 0;font-size:.85rem;color:rgba(255,255,255,.5);word-break:break-all}

/* ───────────────────────── Pie ───────────────────────── */
.foot{background:var(--blanco);border-top:1px solid var(--linea);padding:52px 0 40px}
.foot__inner{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:start}
.brand--foot .brand__mark{width:30px;height:30px;border-radius:10px}
.foot__copy{margin:14px 0 0;color:var(--tinta-suave);font-size:.9rem}
.foot__links{display:flex;gap:22px;font-size:.92rem;font-weight:600}
.foot__links a{text-decoration:none;color:var(--tinta-suave)}
.foot__links a:hover{color:var(--naranja-oscuro)}
.foot__legal{
  grid-column:1/-1;margin:26px 0 0;padding-top:22px;border-top:1px solid var(--linea);
  color:var(--tinta-suave);font-size:.83rem;max-width:80ch;
}
.foot__legal a{color:var(--tinta-suave)}

/* ───────────────────────── Aparición al hacer scroll ───────────── */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease}
.reveal.is-in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}

/* ───────────────────────── Adaptable ───────────────────────── */
@media (max-width:980px){
  .hero__inner{grid-template-columns:1fr;gap:44px}
  .hero__art{min-height:440px;order:-1}
  .grid--features{grid-template-columns:repeat(2,1fr)}
  .stack{grid-template-columns:1fr}
  .dev{grid-template-columns:1fr}
  .nav__links{display:none}
}

@media (max-width:640px){
  body{font-size:16px}
  .grid--features{grid-template-columns:1fr}
  .stats{gap:26px}
  .stats dd{font-size:1.35rem}
  .dev__card{flex-direction:column;padding:26px}
  .specs th{width:auto;display:block;padding-bottom:4px}
  .specs td{display:block;padding-top:0;padding-bottom:14px}
  .specs tr{display:block;border-bottom:1px solid var(--linea)}
  .specs th,.specs td{border-bottom:0}
  .foot__inner{grid-template-columns:1fr}
  .shot{flex:0 0 215px}
  .phone--back{display:none}
  .phone--lead{width:min(270px,80%)}
}

/* Solo se desactiva lo que molesta de verdad: el desplazamiento animado
   y las apariciones. Los estados de hover se quedan. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
}
