body { font-feature-settings: "ss01", "cv11"; text-rendering: optimizeLegibility; }
::selection { background: #7baaf7; color: #fff; }
:focus-visible { outline: 2px solid #4285F4; outline-offset: 3px; border-radius: 6px; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
.glass { background: rgba(246,244,239,.82); backdrop-filter: saturate(160%) blur(12px); -webkit-backdrop-filter: saturate(160%) blur(12px); transform: translate3d(0,0,0); }
.glass-dark { background: rgba(20,20,23,.88); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); transform: translate3d(0,0,0); }
.grain { position: relative; isolation: isolate; }
.grain::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E"); opacity: .07; mix-blend-mode: overlay; }
.eyebrow { display: inline-flex; align-items: center; gap: .75rem; font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow .num { font-variant-numeric: tabular-nums; opacity: .55; }
.eyebrow .bar { width: 28px; height: 1px; background: currentColor; opacity: .4; }
.link-u { background: linear-gradient(currentColor, currentColor) no-repeat left 100% / 0% 1.5px; transition: background-size .35s ease, color .2s; padding-bottom: 2px; }
.link-u:hover { background-size: 100% 1.5px; }
.field { width: 100%; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.12); color: #fff; padding: .9rem 1rem; border-radius: 14px; font-size: .9rem; transition: border-color .2s, background .2s, box-shadow .2s; }
.field::placeholder { color: #8b8b94; }
.field:focus { outline: none; border-color: #7baaf7; background: rgba(255,255,255,.07); box-shadow: 0 0 0 4px rgba(123,170,247,.15); }
.btn-primary { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; background: #4285F4; color: #fff; font-weight: 700; border-radius: 14px; transition: background .2s, transform .2s; }
.btn-primary:hover { background: #2f6fe0; }
.btn-primary:active { transform: translateY(1px); }
.btn-primary .arr { transition: transform .25s; }
.btn-primary:hover .arr { transform: translateX(3px); }
.svc { transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.svc:hover { transform: translate3d(0,-3px,0); box-shadow: 0 18px 40px -22px rgba(17,17,19,.35); border-color: #d9d3c6; }
.marker-highlight { display: inline; background-image: linear-gradient(to right, rgba(123,170,247,.45), rgba(123,170,247,.45)); background-size: 0% 35%; background-repeat: no-repeat; background-position: left 85%; transition: background-size 1.5s cubic-bezier(.22,1,.36,1); border-radius: 4px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.marker-highlight.is-visible { background-size: 100% 35%; }
.outline-text { color: transparent; -webkit-text-stroke: 1px currentColor; }
.sep { width: 6px; height: 6px; border-radius: 2px; background: currentColor; transform: rotate(45deg); opacity: .5; flex: none; }
.cv { content-visibility: auto; contain-intrinsic-size: auto 900px; }

/* ---------- Simulador buscador ---------- */
.caret { display: inline-block; width: 1.5px; height: 1em; background: #4285F4; margin-left: 1px; vertical-align: -2px; animation: blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
.shimmer { background: linear-gradient(90deg, #f1f2f4 25%, #e6e8eb 37%, #f1f2f4 63%); background-size: 400% 100%; animation: shimmer 1.3s ease infinite; }
@keyframes shimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }
.g-fade { opacity: 0; transform: translate3d(0,8px,0); transition: opacity .45s ease, transform .45s ease; }
.g-fade.show { opacity: 1; transform: none; }
.pos1 { position: relative; cursor: pointer; transition: box-shadow .3s, background .3s; }
.pos1.won { box-shadow: 0 0 0 2px #4285F4, 0 10px 30px -12px rgba(66,133,244,.6); background: #f5f9ff; }
.tap { position: absolute; width: 34px; height: 34px; border-radius: 999px; background: rgba(66,133,244,.25); border: 2px solid #4285F4; pointer-events: none; animation: tap 1.6s ease-out infinite; }
@keyframes tap { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.6); opacity: 0; } }
.sheet { transform: translate3d(0,105%,0); transition: transform .55s cubic-bezier(.22,1,.36,1); }
.sheet.open { transform: none; }
@keyframes pop { 0% { transform: scale(.8); opacity: 0; } 60% { transform: scale(1.06); } 100% { transform: scale(1); opacity: 1; } }
.pop { animation: pop .5s cubic-bezier(.22,1,.36,1) both; }

details summary::-webkit-details-marker { display: none; }
details[open] .faq-icon { transform: rotate(45deg); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .marker-highlight { background-size: 100% 35%; }
    .g-fade { opacity: 1; transform: none; }
}
