/* =========================================
   Design System — Inspired by Apple / Airbnb
   ========================================= */
:root{
  /* Color */
  --bg:           #fbfbf9;
  --bg-alt:       #f5f5f3;
  --surface:      #ffffff;
  --ink:          #1d1d1f;
  --ink-2:        #424245;
  --muted:        #86868b;
  --line:         #ebebe8;
  --line-2:       #dcdcd8;

  --primary:      #0071e3;
  --primary-ink:  #0058b8;

  --accent-green: #c8f0c0;
  --accent-blue:  #c6e7f7;
  --accent-amber: #fbe8a6;
  --accent-mint:  #c4f0dd;
  --accent-rose:  #ffd7d7;

  --success:      #1aa85a;
  --danger:       #d64545;

  /* Type scale */
  --fs-hero:      clamp(2.4rem, 5vw, 3.75rem);
  --fs-display:   clamp(1.9rem, 3.8vw, 2.75rem);
  --fs-h2:        clamp(1.6rem, 2.6vw, 2.1rem);
  --fs-lead:      1.18rem;
  --fs-body:      1rem;
  --fs-small:     .9rem;

  /* Radius & Shadow */
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 22px;
  --r-pill: 999px;

  --shadow-sm: 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 8px 24px rgba(0,0,0,.06);
  --shadow-lg: 0 20px 60px rgba(0,0,0,.08);

  /* Spacing rhythm */
  --section-y: clamp(6rem, 12vw, 12rem);
  --gap: clamp(1rem, 2vw, 1.5rem);

  /* Motion */
  --ease: cubic-bezier(.2,.7,.2,1);
}

/* Reset */
*{box-sizing:border-box}
html,body{overflow-x:clip}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{
  margin:0;
  padding:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'SF Pro Display','Segoe UI',Roboto,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  font-size:var(--fs-body);
  letter-spacing:-.005em;
}
h1,h2,h3,h4,h5{font-family:inherit;letter-spacing:-.025em;line-height:1.1;color:var(--ink)}
p{color:var(--ink-2)}
a{color:var(--ink);text-decoration:none;transition:color .25s var(--ease)}
a:hover{color:var(--primary)}
hr{border:0;border-top:1px solid var(--line);margin:1.25rem 0}

img{max-width:100%;display:block}
.container{max-width:1180px;margin:0 auto;padding:0 1.25rem}

/* =========================================
   NAVIGATION
   ========================================= */
.appio-nav{
  position:sticky;top:0;z-index:50;
  background:rgba(251,251,249,.72);
  backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  border-bottom:1px solid transparent;
  transition:background .3s var(--ease), border-color .3s var(--ease);
}
.appio-nav.scrolled{
  background:rgba(251,251,249,.88);
  border-bottom-color:var(--line);
}
.appio-nav .navbar-brand{font-weight:600;letter-spacing:-.01em}
.brand-text{font-size:1.05rem}
.logo-mark i{font-size:1.2rem;color:var(--ink)}
.appio-nav .nav-link{
  color:var(--ink-2);font-weight:500;font-size:.92rem;
  padding:.5rem .2rem !important;position:relative;
}
.appio-nav .nav-link:hover{color:var(--ink)}
.nav-right .nav-link{color:var(--ink)}

/* =========================================
   HERO
   ========================================= */
.hero{
  padding:clamp(4rem,8vw,8rem) 1.25rem clamp(3rem,6vw,5rem);
  max-width:880px;
}
.hero-title{
  font-size:var(--fs-hero);
  font-weight:700;
  margin:0 0 1.25rem;
  letter-spacing:-.035em;
}
.hero-sub{
  font-size:var(--fs-lead);
  color:var(--ink-2);
  margin-bottom:2rem;
  max-width:720px;
  line-height:1.55;
}
.strike{text-decoration:line-through;color:var(--muted);text-decoration-thickness:1px}
.hl{
  padding:2px 8px;border-radius:6px;
  font-weight:500;white-space:nowrap;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.hl-green{background:var(--accent-green)}
.hl-blue{background:var(--accent-blue)}
.hl-yellow{background:var(--accent-amber)}
.hl-mint{background:var(--accent-mint)}

.hero-cta{gap:.9rem !important}

/* Buttons */
.btn-pill{
  border-radius:var(--r-pill);
  font-weight:500;
  font-size:.95rem;
  padding:.65rem 1.4rem !important;
  transition:all .3s var(--ease);
  border:1px solid transparent;
}
.btn-primary.btn-pill{
  background:var(--ink);
  border-color:var(--ink);
  color:#fff;
}
.btn-primary.btn-pill:hover{
  background:#000;border-color:#000;
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}
.btn-ghost.btn-pill{
  background:transparent;
  border:1px solid var(--line-2);
  color:var(--ink);
}
.btn-ghost.btn-pill:hover{
  background:var(--surface);
  border-color:var(--ink);
}

.works-on{color:var(--muted);font-size:.85rem}
.icon-dot{color:var(--muted);font-size:1rem;transition:color .25s var(--ease)}
.icon-dot:hover{color:var(--ink)}


.model-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:2rem;position:relative;height:100%;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.model-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.model-num{position:absolute;top:1.25rem;right:1.5rem;font-size:2.8rem;font-weight:800;color:var(--line-2);line-height:1}
.model-items{margin:1.25rem 0}
.model-item{display:flex;gap:.75rem;margin-bottom:.75rem;font-size:.95rem;color:var(--ink-2)}
.model-tick{color:var(--success);flex-shrink:0;font-size:1rem}
.model-meta{margin-top:1.5rem;display:flex;gap:.5rem;flex-wrap:wrap}
.funnel-strip{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:2rem}
.funnel-steps{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.75rem}
.funnel-step{background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--r-pill);padding:.4rem 1rem;font-size:.9rem;font-weight:500}
.funnel-arrow{color:var(--muted);font-size:1.1rem}

/* =========================================
   SHARED SECTION / CARD / TITLE
   ========================================= */
section{padding:var(--section-y) 0}
.section-title{
  font-size:var(--fs-h2);
  font-weight:700;
  margin-bottom:1.5rem;
  letter-spacing:-.025em;

  position:relative;
  padding-bottom:.4rem

}
.section-sub{
  color:var(--muted);
  font-size:1.02rem;
  max-width:640px;
  margin:0 auto 4rem;
}
.card-base{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.card-base:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color:var(--line-2);
}

/* =========================================
   CONCERNS + CEO
   ========================================= */
.concerns-row{max-width:1080px;padding-top:var(--section-y);padding-bottom:var(--section-y)}
.concern-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:2rem 2.25rem;
  box-shadow:var(--shadow-sm);
}
.concern-item + .concern-item{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--line)}
.c-title{
  font-weight:600;
  font-size:1.02rem;
  margin-bottom:.5rem;
  display:flex;gap:.6rem;align-items:flex-start;
}
.c-body{color:var(--ink-2);font-size:.96rem;padding-left:1.7rem}
.check{color:var(--success);font-size:1.1rem;margin-top:2px}

.who-title{font-weight:700;font-size:1.4rem;margin-bottom:.8rem}
.who-text{color:var(--ink-2);font-size:.96rem}
.signature{
  font-family:'Brush Script MT','Segoe Script',cursive;
  font-size:1.8rem;
  margin-top:1.5rem;
  color:var(--ink);
}

/* =========================================
   MEET TOM
   ========================================= */
.meet-tom{padding:3rem 0 var(--section-y)}
.tom-card{
  max-width:560px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  overflow:hidden;
  box-shadow:var(--shadow-md);
}
.tom-photo{
  min-height:210px;
  background:
    radial-gradient(circle at 50% 38%, #f3d2ae 0 32%, #e0a978 33% 62%, #c48a5e 63% 100%);
}
.tom-card h4{font-weight:700;font-size:1.15rem}
.tom-card p{font-size:.94rem;color:var(--ink-2);margin-bottom:.5rem}

/* =========================================
   NOT ANOTHER BUILDER
   ========================================= */
.not-builder{max-width:780px;padding-top:1rem;padding-bottom:var(--section-y)}
.nb-title{
  font-size:var(--fs-display);
  font-weight:700;
  letter-spacing:-.03em;
  margin-bottom:1rem;
}
.no-badge{
  background:var(--accent-rose);
  color:var(--danger);
  padding:0 14px;
  border-radius:10px;
  font-weight:700;
  display:inline-block;
}
.nb-sub{
  color:var(--ink-2);
  font-size:var(--fs-lead);
  margin:1rem auto 1.8rem;
  max-width:620px;
}

/* =========================================
   WHY SECTION
   ========================================= */
.why-section{max-width:1080px;padding-top:var(--section-y);padding-bottom:var(--section-y)}
.why-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:2.5rem 2.25rem;
  height:100%;
  box-shadow:var(--shadow-sm);
  transition:box-shadow .35s var(--ease), transform .35s var(--ease);
}
.why-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.why-row + .why-row{margin-top:1.75rem;padding-top:1.75rem;border-top:1px solid var(--line)}
.why-head{
  font-weight:600;
  font-size:1rem;
  margin:0 0 .5rem;
  letter-spacing:-.01em;
}
.why-body{color:var(--ink-2);font-size:.93rem;margin-top:.25rem}
.why-card .feat-icon{margin-bottom:1rem}
.why-card:hover .feat-icon{background:var(--ink)}
.why-card:hover .feat-icon i{color:var(--bg)}

/* =========================================
   INCLUDED FEATURES
   ========================================= */
.included-section{max-width:1080px;padding-top:var(--section-y);padding-bottom:var(--section-y)}
.feature-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:2rem 1.75rem;
  height:100%;
  box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.feature-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
  border-color:var(--line-2);
}
.feature-card h5{
  font-weight:600;
  font-size:1rem;
  margin:0 0 .5rem;
  letter-spacing:-.01em;
}
.feature-card p{font-size:.9rem;color:var(--ink-2);margin:0;line-height:1.55}
.feat-icon{
  width:40px;height:40px;
  border-radius:10px;
  background:var(--bg-alt);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:1rem;
  transition:background .3s var(--ease);
}
.feat-icon i{color:var(--ink);font-size:1.1rem}
.feature-card:hover .feat-icon{background:var(--ink);}
.feature-card:hover .feat-icon i{color:#fff}

/* =========================================
   CASE STUDIES — horizontal slider
   ========================================= */
.case-section{max-width:1080px;padding-top:var(--section-y);padding-bottom:var(--section-y)}
.case-section .text-center p a{color:var(--primary);font-weight:500}
.case-slider-wrap{position:relative;margin-top:1.5rem}
.case-slider{
  display:flex;
  gap:1.25rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:1rem 1.5rem 1.5rem;
  scrollbar-width:none;
  cursor:grab;
  scroll-padding-left:1.5rem;
  mask-image:linear-gradient(90deg, transparent 0, #000 2rem, #000 calc(100% - 2rem), transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 2rem, #000 calc(100% - 2rem), transparent 100%);
}
.case-slider.dragging{cursor:grabbing}
.case-slider::-webkit-scrollbar{display:none}
.case-card{
  flex:0 0 300px;
  scroll-snap-align:start;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:1.75rem;
  position:relative;
  min-height:220px;
  display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.case-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
  border-color:var(--line-2);
}
.case-ribbon{
  position:absolute;top:14px;right:-8px;
  background:#eadbff;color:#5e3aa0;
  font-size:.68rem;padding:3px 12px;border-radius:4px;
  transform:rotate(6deg);font-weight:600;letter-spacing:.02em;
}
.case-logo{
  font-weight:700;
  font-size:1.6rem;
  margin-bottom:1rem;
  line-height:1.05;
  letter-spacing:-.02em;
}
.case-logo span{font-weight:400;font-size:1.05rem;color:var(--muted)}
.case-logo.calcom{font-family:'Georgia',serif;font-style:italic}
.case-logo.kit{letter-spacing:.01em}
.case-logo.pampers{font-size:1.15rem}
.case-card p{font-size:.92rem;color:var(--ink-2);margin:0 0 1rem;flex-grow:1}
.leer-mas{
  font-size:.88rem;font-weight:500;
  color:var(--primary);
  align-self:flex-start;
}
.leer-mas:hover{color:var(--primary-ink)}

.slider-dots{margin-top:1rem}
.slider-dots .dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--line-2);border:0;padding:0;
  transition:background .25s var(--ease), width .25s var(--ease);
}
.slider-dots .dot.active{background:var(--ink);width:22px;border-radius:4px}

/* =========================================
   PRICING
   ========================================= */
.pricing-section{max-width:980px;text-align:center;padding-top:var(--section-y);padding-bottom:var(--section-y)}
.price-card{
  max-width:520px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-md);
  padding:2.25rem;
  box-shadow:var(--shadow-md);
  margin:0 auto;
}
.price-card h5{font-weight:600;font-size:1.1rem}
.price-card p{font-size:.9rem}

/* =========================================
   FAQ
   ========================================= */
.faq-section{max-width:780px;padding-top:var(--section-y);padding-bottom:var(--section-y)}
.faq-accordion{border-radius:var(--r-md);overflow:hidden;background:transparent}
.faq-accordion .accordion-item{
  background:transparent;
  border:0;
  border-radius:0;
}
.faq-accordion .accordion-button{
  background:transparent;
  font-weight:500;font-size:.98rem;
  color:var(--ink);
  box-shadow:none;
  padding:1.15rem 1.5rem;
}
.faq-accordion .accordion-button:not(.collapsed){
  color:var(--ink);
  background:var(--bg-alt);
}
.faq-accordion .accordion-button:focus{box-shadow:none;border-color:transparent}
.faq-accordion .accordion-body{
  color:var(--ink-2);font-size:.94rem;
  padding:0 1.5rem 1.25rem;
}

/* =========================================
   FINAL CTA
   ========================================= */
.final-cta{max-width:780px;text-align:center;padding-top:var(--section-y);padding-bottom:var(--section-y)}
.final-title{
  font-size:var(--fs-display);
  font-weight:700;
  letter-spacing:-.03em;
  margin-bottom:1.5rem;
}
.final-device{color:var(--ink)}
.final-device i{font-size:3.5rem !important}
.tag{
  padding:2px 10px;border-radius:6px;
  font-weight:600;font-size:.82rem;
  display:inline-block;
}
.tag-red{background:var(--accent-rose);color:var(--danger)}
.tag-green{background:var(--accent-green);color:#1a6d2a}

footer{padding:2rem 0 3rem;color:var(--muted)}

/* =========================================
   SCROLL REVEAL ANIMATIONS
   ========================================= */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
  will-change:opacity,transform;
}
.reveal.in{opacity:1;transform:none}

/* =========================================
   RESPONSIVE
   ========================================= */
@media (max-width: 767px){
  .hero{padding-top:3rem}
  .case-card{flex-basis:270px;padding:1.5rem}
  .concern-card,.why-card{padding:1.5rem}
  .price-card{padding:1.75rem}
}

/* =========================================
   CONCERNS COLLAPSIBLE
   ========================================= */
.concerns-stack .concern-card{display:none}
.concerns-stack .concern-card.active{display:block;animation:concernFade .35s ease}
@keyframes concernFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.who-pills{display:flex;flex-wrap:wrap;gap:.4rem}
.who-pill{cursor:pointer;background:#f1f3f5;border:1px solid #dee2e6;color:#333;transition:all .2s}
.who-pill:hover{background:#e9ecef}
.who-pill.active{background:var(--accent-green,#8fd19e);border-color:#2f855a;color:#1a6d2a;font-weight:600}
.model-meta{display:flex;gap:.5rem;flex-wrap:wrap}

/* Hero verb rotator */
.verb-rotate{
  display:inline-block;
  transition:opacity .25s ease, transform .25s ease;
}
.verb-rotate.verb-swap{opacity:0;transform:translateY(-6px)}

.hero-title .hero-pre{
  display:inline-block;
  font-size:.55em;
  font-weight:500;
  opacity:.6;
  letter-spacing:.01em;
}

/* =========================================
   VISUAL POLISH
   ========================================= */

/* Hero con halo suave */
.hero{position:relative}
.hero::before{display:none}
.hero > *{position:relative;z-index:1}
.hero-title{font-weight:800;letter-spacing:-.04em}
.hero-pre{color:var(--muted)}

/* Alternancia de fondos para ritmo visual */
.concerns-row,
.included-section,
.case-section,
.faq-section{background:transparent}
.not-builder,
.why-section,
.pricing-section,
.final-cta{
  position:relative;
}
.not-builder::before,
.why-section::before,
.pricing-section::before{
  content:"";
  position:absolute;
  top:0;bottom:0;
  left:50%;
  width:100vw;
  transform:translateX(-50%);
  background:linear-gradient(180deg, var(--bg) 0%, var(--bg-alt) 50%, var(--bg) 100%);
  z-index:0;
}
.not-builder > *,
.why-section > *,
.pricing-section > *{position:relative;z-index:1}

 

/* Cards: sombras más ricas + transición suave */
.concern-card,.why-card,.feature-card,.case-card,.price-card,.model-card{
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .3s var(--ease);
}
.why-card:hover,.feature-card:hover,.case-card:hover,.price-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(0,0,0,.08);
  border-color:var(--line-2);
}

/* Concern stack: más énfasis en el activo */
.concerns-stack{position:relative}
.concerns-stack .concern-card.active{
  box-shadow:0 24px 60px -20px rgba(0,0,0,.12), 0 6px 18px rgba(0,0,0,.04);
  border-color:var(--line-2);
}

/* Who pills: look refinado */
.who-pills{gap:.5rem}
.who-pill{
  padding:.35rem .9rem !important;
  font-size:.84rem !important;
  font-weight:500;
  border-radius:var(--r-pill) !important;
  background:var(--surface) !important;
  border:1px solid var(--line-2) !important;
  color:var(--ink-2) !important;
  letter-spacing:.005em;
  transition:all .25s var(--ease) !important;
}
.who-pill:hover{
  background:var(--bg-alt) !important;
  border-color:var(--ink-2) !important;
  color:var(--ink) !important;
  transform:translateY(-1px);
}
.who-pill.active{
  background:var(--ink) !important;
  border-color:var(--ink) !important;
  color:#fff !important;
  font-weight:600;
  box-shadow:0 6px 16px rgba(0,0,0,.18);
}

/* Badges en model-meta: más aire */
.model-meta .badge{
  background:var(--bg-alt) !important;
  color:var(--ink-2) !important;
  border:1px solid var(--line);
  font-weight:500;
  padding:.4rem .75rem;
  border-radius:var(--r-pill);
  font-size:.78rem;
}

/* Feat icons con círculo suave */
.feat-icon{
  width:52px;height:52px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:var(--bg-alt);
  color:var(--ink);
  font-size:1.35rem;
  margin-bottom:1rem;
}

/* FAQ: botones más limpios */
.faq-accordion .accordion-button{
  font-weight:600;
  color:var(--ink);
  background:transparent;
  border:0 !important;
  border-radius:var(--r-sm) !important;
  box-shadow:none !important;
  margin-bottom:.5rem;
  transition:background .25s var(--ease);
}
.faq-accordion .accordion-button:not(.collapsed){
  background:var(--bg-alt);
}
.faq-accordion .accordion-item{border:0;background:transparent}

/* Final CTA con panel */
.final-cta{
  background:linear-gradient(180deg, var(--bg-alt) 0%, var(--bg) 100%);
  border-radius:var(--r-lg);
  margin-top:2rem;
}
.final-title{font-weight:800;letter-spacing:-.035em}

/* Tag chips en case-card */
.tag{
  display:inline-block;
  padding:.3rem .8rem;
  border-radius:var(--r-pill);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.01em;
}
.tag-green{background:var(--accent-green);color:#1a6d2a}
.tag-blue{background:var(--accent-blue);color:#0a4a75}

/* Smooth entry para concerns al cambiar */
.concerns-stack .concern-card.active{animation:concernFade .5s var(--ease)}
@keyframes concernFade{
  from{opacity:0;transform:translateY(8px) scale(.995)}
  to{opacity:1;transform:none}
}

/* =========================================
   FOOTER FIJO NEGRO
   ========================================= */
/* páginas legales: una columna legible + índice */
.legal-doc{max-width:820px;padding-top:2rem;padding-bottom:4rem}
.legal-doc .row{--bs-gutter-x:0}
.legal-doc .row>[class*="col-"]{flex:0 0 100%;max-width:100%}
.legal-head{text-align:center;margin-bottom:2rem}
.legal-head h1{font-size:clamp(1.8rem,4vw,2.4rem);margin:.35rem 0 .25rem}
.legal-kicker{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#8a8a90)}
.legal-updated{font-size:.82rem;color:var(--muted,#8a8a90);margin:0}
.legal-intro{max-width:640px;margin:1rem auto 0;font-size:.95rem;opacity:.85}
.legal-intro a{text-decoration:underline}
.legal-toc{display:flex;flex-wrap:wrap;gap:.35rem .5rem;justify-content:center;margin:0 0 2.5rem;padding:1rem;border:1px solid var(--line,rgba(0,0,0,.08));border-radius:14px}
.legal-toc a{font-size:.8rem;padding:.2rem .65rem;border-radius:999px;color:inherit;opacity:.75;text-decoration:none;background:rgba(127,127,127,.08)}
.legal-toc a:hover{opacity:1}
.legal-toc a.is-group{font-weight:700;opacity:1}
.legal-doc h4{margin:2.5rem 0 1rem;font-size:1.35rem}
.legal-doc h5{margin:2rem 0 .6rem;font-size:1.1rem;scroll-margin-top:90px}
.legal-doc h4{scroll-margin-top:90px}
.legal-doc h6{margin:1.1rem 0 .35rem}
.legal-doc p,.legal-doc li{line-height:1.7}
.legal-doc hr{opacity:.12}
.legal-doc .py-4{padding-top:0!important}
.legal-consent{margin:1rem 0;padding:1rem 1.25rem;border:1px solid var(--line,rgba(127,127,127,.2));border-radius:14px}
.legal-consent .btn{margin-right:.35rem}
.legal-table{font-size:.85rem;margin:.5rem 0 1rem}
.legal-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;opacity:.7;font-weight:600}
.legal-table td{vertical-align:top}
.legal-doc .row>[class*="col-"]>h5:first-child{margin-top:0}

/* footer fijo revelado: misma altura que el espacio reservado en body */
:root{--foot-h:200px}
.site-footer{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:0;
  background:#222;
  color:#bdbdc2;
  height:var(--foot-h);
  padding:0 1rem;
  display:flex;align-items:center;justify-content:center;
}
.site-footer > .container{display:flex;flex-direction:column;align-items:center;gap:1rem}
body{padding-bottom:var(--foot-h)}
.page-wrap{background:var(--bg);z-index:1;position:relative;min-height:100vh}
.site-footer .footer-app-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.7rem 1.6rem;
  border-radius:var(--r-pill);
  background:#fff;color:#0a0a0a;
  font-weight:600;font-size:.95rem;
  transition:transform .2s ease, background .2s ease;
  margin-bottom:1.5rem;
}
.site-footer .footer-app-btn:hover{
  background:var(--accent-green);
  color:#0a0a0a;
  transform:translateY(-1px);
}
.site-footer .footer-copy{color:#8a8a90;margin:0;letter-spacing:.02em}
.site-footer p{color:#bdbdc2;margin:0}
 

/* Wrap que tapa el footer fijo */
.page-wrap{
  position:relative;
  z-index:2;
  background:var(--bg);
  min-height:100vh; 

   box-shadow: 0 20px 60px rgba(0, 0, 0, .8);
}

/* Nav fijo arriba con cambio en scroll */
.site-nav{
  position:sticky;top:0;z-index:50;
  background:rgba(251,251,249,.72);
  backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  border-bottom:1px solid transparent;
  transition:background .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
  will-change:background;
}
.site-nav.scrolled{
  background:rgba(251,251,249,.88);
  border-bottom-color:var(--line);
  box-shadow:0 2px 10px rgba(0,0,0,.04);
}
.site-nav .navbar-brand{font-weight:600;letter-spacing:-.01em}
.site-nav .nav-link{
  color:var(--ink-2);font-weight:500;font-size:.92rem;
  padding:.5rem .6rem !important;
}
.site-nav .nav-link:hover{color:var(--ink)}

/* =========================================
   THEME TOGGLE
   ========================================= */
.theme-toggle{
  width:38px;height:38px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;
  border:1px solid var(--line-2);
  background:var(--surface);
  color:var(--ink);
  transition:background .25s var(--ease), border-color .25s var(--ease), color .25s var(--ease);
}
.theme-toggle:hover{background:var(--bg-alt);border-color:var(--ink-2)}
.theme-toggle .theme-icon-light{display:none}
.theme-toggle .theme-icon-dark{display:inline}
[data-theme="dark"] .theme-toggle .theme-icon-light{display:inline}
[data-theme="dark"] .theme-toggle .theme-icon-dark{display:none}

/* =========================================
   DARK MODE
   ========================================= */
[data-theme="dark"]{
  --bg:           #0f0f12;
  --bg-alt:       #16161a;
  --surface:      #1a1a1e;
  --ink:          #ececf0;
  --ink-2:        #a8a8b0;
  --muted:        #6f6f77;
  --line:         #1f1f25;
  --line-2:       #2a2a31;

  --accent-green: #254a36;
  --accent-blue:  #23455c;
  --accent-amber: #5a4820;
  --accent-mint:  #244c42;
  --accent-rose:  #5c2d2d;

  --shadow-sm: 0 1px 2px rgba(0,0,0,.2);
  --shadow-md: 0 6px 20px rgba(0,0,0,.25);
  --shadow-lg: 0 16px 48px rgba(0,0,0,.35);
}
[data-theme="dark"] body{background:var(--bg);color:var(--ink)}
[data-theme="dark"] .page-wrap{background:var(--bg)}
[data-theme="dark"] .site-nav{background:rgba(15,15,18,.7)}
[data-theme="dark"] .site-nav.scrolled{background:rgba(15,15,18,.92);border-bottom-color:var(--line)}
[data-theme="dark"] .brand-text,
[data-theme="dark"] .logo-mark i,
[data-theme="dark"] .navbar-brand{color:var(--ink)}

[data-theme="dark"] .btn-primary.btn-pill{background:#f5f5f7;border-color:#f5f5f7;color:#0a0a0a}
[data-theme="dark"] .btn-primary.btn-pill:hover{background:#fff;border-color:#fff}
[data-theme="dark"] .btn-ghost.btn-pill{color:var(--ink);border-color:var(--line-2)}
[data-theme="dark"] .btn-ghost.btn-pill:hover{background:var(--bg-alt);border-color:var(--ink)}

[data-theme="dark"] .hl{color:#f5f5f7}
[data-theme="dark"] .hl-green{background:#2f6b47}
[data-theme="dark"] .hl-blue{background:#2a5b7a}
[data-theme="dark"] .hl-yellow{background:#7a6026}
[data-theme="dark"] .hl-mint{background:#2f6b5a}

[data-theme="dark"] .concern-card,
[data-theme="dark"] .why-card,
[data-theme="dark"] .feature-card,
[data-theme="dark"] .case-card,
[data-theme="dark"] .price-card,
[data-theme="dark"] .model-card,
[data-theme="dark"] .funnel-strip{
  background:var(--surface);
  border-color:var(--line);
}
[data-theme="dark"] .concern-item + .concern-item{border-top-color:var(--line)}
[data-theme="dark"] hr{border-top-color:var(--line)}

[data-theme="dark"] .who-pill{background:var(--surface) !important;border-color:var(--line-2) !important;color:var(--ink-2) !important}
[data-theme="dark"] .who-pill:hover{background:var(--bg-alt) !important;color:var(--ink) !important}
[data-theme="dark"] .who-pill.active{background:#f5f5f7 !important;border-color:#f5f5f7 !important;color:#0a0a0a !important}

[data-theme="dark"] .feat-icon{background:var(--bg-alt);color:var(--ink)}
[data-theme="dark"] .feature-card:hover .feat-icon{background:#f5f5f7}
[data-theme="dark"] .feature-card:hover .feat-icon i{color:#0a0a0a}

[data-theme="dark"] .model-meta .badge{background:var(--bg-alt) !important;color:var(--ink-2) !important;border-color:var(--line)}

[data-theme="dark"] .not-builder::before,
[data-theme="dark"] .why-section::before,
[data-theme="dark"] .pricing-section::before{
  background:linear-gradient(180deg, var(--bg) 0%, var(--bg-alt) 50%, var(--bg) 100%);
}
[data-theme="dark"] .final-cta{background:linear-gradient(180deg, var(--bg-alt) 0%, var(--bg) 100%)}

[data-theme="dark"] .faq-accordion .accordion-button{background:transparent;color:var(--ink)}
[data-theme="dark"] .faq-accordion .accordion-button:not(.collapsed){background:var(--bg-alt)}
[data-theme="dark"] .faq-accordion .accordion-button::after{filter:invert(1) brightness(1.5)}
[data-theme="dark"] .faq-accordion .accordion-body{color:var(--ink-2)}

[data-theme="dark"] .navbar-toggler-icon{filter:invert(1)}
[data-theme="dark"] .logo-mark i{color:var(--ink)}
[data-theme="dark"] .no-badge{filter:brightness(.85)}
[data-theme="dark"] .tag-green{background:#2f6b47;color:#c8f0c0}
[data-theme="dark"] .tag-blue{background:#2a5b7a;color:#c6e7f7}

[data-theme="dark"] .site-footer{background:#050506}

/* =========================================
   NO-BADGE (por tema)
   ========================================= */
.no-badge{padding:2px 12px;border-radius:8px;font-weight:600;letter-spacing:-.01em}
.no-badge-green{background:var(--accent-green);color:#1a6d2a}
.no-badge-blue{background:var(--accent-blue);color:#0a4a75}
[data-theme="dark"] .no-badge-green{background:#2f6b47;color:#d8f5c6}
[data-theme="dark"] .no-badge-blue{background:#2a5b7a;color:#d6ecff}

/* text-muted por tema */
.text-muted{color:var(--muted) !important}
[data-theme="dark"] .text-muted{color:var(--muted) !important}

/* final-device grande por tema */
.final-device i{font-size:3.5rem;color:var(--ink-2)}

/* =========================================
   APPLE-LIKE: sombras más sutiles
   ========================================= */
:root{
  --shadow-sm: 0 1px 1.5px rgba(0,0,0,.025);
  --shadow-md: 0 4px 14px rgba(0,0,0,.04);
  --shadow-lg: 0 14px 40px rgba(0,0,0,.05);
}
[data-theme="dark"]{
  --shadow-sm: 0 1px 1.5px rgba(0,0,0,.3);
  --shadow-md: 0 4px 14px rgba(0,0,0,.35);
  --shadow-lg: 0 14px 40px rgba(0,0,0,.45);
}
.why-card:hover,.feature-card:hover,.case-card:hover,.price-card:hover,.model-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(0,0,0,.05);
}
[data-theme="dark"] .why-card:hover,
[data-theme="dark"] .feature-card:hover,
[data-theme="dark"] .case-card:hover,
[data-theme="dark"] .price-card:hover,
[data-theme="dark"] .model-card:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.4);
  border-color:var(--line-2);
}
.btn-primary.btn-pill:hover{box-shadow:0 6px 18px rgba(0,0,0,.12)}
.concerns-stack .concern-card.active{
  box-shadow:0 12px 32px -16px rgba(0,0,0,.08), 0 2px 8px rgba(0,0,0,.03);
}
[data-theme="dark"] .concerns-stack .concern-card.active{
  box-shadow:0 12px 32px -16px rgba(0,0,0,.55), 0 2px 8px rgba(0,0,0,.3);
}
.site-nav.scrolled{box-shadow:0 1px 0 var(--line)}

/* Menu responsive: más aire en móvil */
@media (max-width: 991px){
  .site-nav .navbar-collapse{
    padding:1rem 0 1.25rem;
    margin-top:.75rem;
    border-top:1px solid var(--line);
  }
  .site-nav .navbar-nav{
    gap:.25rem !important;
    margin-bottom:1rem;
  }
  .site-nav .nav-link{
    padding:.75rem .25rem !important;
    font-size:1rem;
    border-bottom:1px solid var(--line);
  }
  .site-nav .nav-link:last-child{border-bottom:0}
  .site-nav .nav-right{
    gap:.75rem !important;
    flex-wrap:wrap;
    padding-top:.5rem;
  }
  .site-nav .nav-right .btn-primary{flex:1;text-align:center}
  .navbar-toggler{
    border:1px solid var(--line-2);
    padding:.4rem .6rem;
    border-radius:10px;
  }
  .navbar-toggler:focus{box-shadow:none}
}
[data-theme="dark"] .site-nav .navbar-collapse,
[data-theme="dark"] .site-nav .nav-link{border-color:var(--line)}
[data-theme="dark"] .navbar-toggler{border-color:var(--line-2)}
[data-theme="dark"] .navbar-toggler-icon{filter:invert(1) opacity(.85)}
