/* Shared preferences, dark theme, forms and responsive polish. Loaded last. */
:root { color-scheme: light; }
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #171411;
  --bg-2: #241e19;
  --ink: #f7efe5;
  --ink-2: #d8ccbf;
  --ink-dim: #aa9d90;
  --line: #342c25;
  --line-strong: #504238;
  --accent: #e98b50;
  --accent-ink: #ffb37b;
  --accent-2: #f2a672;
  --accent-soft: #342318;
  --gold: #d7a25f;
  --green: #9eae91;
  --shadow: 0 28px 60px -42px rgba(0,0,0,.82);
  --deep: #100d0b;
  --deep-2: #19130f;
  --on-deep: #fff6ec;
  --on-deep-muted: #cdbfb1;
}
html[data-theme="dark"] body { background: var(--bg) !important; color: var(--ink) !important; }
html[data-theme="dark"] nav { background: rgba(23,20,17,.92) !important; border-bottom-color: var(--line) !important; }
html[data-theme="dark"] .mobile-menu { background: var(--bg) !important; }
html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select { background: #2a231d !important; color: var(--ink) !important; border-color: var(--line-strong) !important; }
html[data-theme="dark"] option { background: #2a231d; color: var(--ink); }
html[data-theme="dark"] .hero-stat { background: rgba(36,30,25,.76) !important; border-color: var(--line-strong) !important; }
html[data-theme="dark"] .case-number { background: rgba(36,30,25,.94) !important; color: var(--ink) !important; }
html[data-theme="dark"] .services-band,
html[data-theme="dark"] .cta,
html[data-theme="dark"] .resource-cta { background: var(--deep) !important; color: var(--on-deep) !important; }
html[data-theme="dark"] .services-band .services-heading h2,
html[data-theme="dark"] .cta h2 { color: var(--on-deep) !important; }
html[data-theme="dark"] .services-band .services-heading p,
html[data-theme="dark"] .services-band .services-list p { color: var(--on-deep-muted) !important; }
html[data-theme="dark"] .cta .btn-ghost { color: var(--on-deep) !important; border-color: #55473c !important; }
html[data-theme="dark"] .project-form { background: #211b17 !important; border-color: #4a3b31 !important; }
html[data-theme="dark"] .settings-panel,
html[data-theme="dark"] .preference-welcome { box-shadow: 0 22px 58px -26px rgba(0,0,0,.96); }

html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] .nav-cta,
html[data-theme="dark"] .form-submit,
html[data-theme="dark"] .contact-cta { background: var(--accent) !important; color: #1f1a14 !important; }
html[data-theme="dark"] .btn-primary:hover,
html[data-theme="dark"] .nav-cta:hover,
html[data-theme="dark"] .form-submit:hover,
html[data-theme="dark"] .contact-cta:hover { background: var(--accent-2) !important; color: #1f1a14 !important; }
html[data-theme="dark"] .step-num,
html[data-theme="dark"] .filter-chip.active,
html[data-theme="dark"] .soon-badge { background: var(--accent) !important; color: #1f1a14 !important; border-color: var(--accent) !important; }

html[data-theme="dark"] .soon-visual { background: linear-gradient(var(--line) 1px, transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px),linear-gradient(145deg,var(--accent-soft),var(--bg)) !important; background-size:28px 28px,28px 28px,100% 100% !important; }

/* Settings control */
.site-settings { position: relative; z-index: 80; flex: 0 0 auto; }
.settings-toggle {
  width: 44px; height: 44px; padding: 0; border-radius: 12px;
  border: 1px solid var(--line-strong); background: var(--bg-2); color: var(--ink);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer; transition: transform .2s, background .2s, border-color .2s;
  -webkit-tap-highlight-color: transparent;
}
.settings-toggle:hover,
.settings-toggle:focus-visible,
.settings-toggle[aria-expanded="true"] { background: var(--accent-soft); border-color: var(--accent); outline: none; transform: rotate(7deg); }
.settings-toggle svg { width: 19px; height: 19px; }
.settings-panel {
  position: absolute; top: calc(100% + 12px); right: 0; width: min(300px, calc(100vw - 32px));
  padding: 17px; border: 1px solid var(--line-strong); border-radius: 16px;
  background: var(--bg); color: var(--ink); box-shadow: 0 18px 45px -26px rgba(31,26,20,.55);
  opacity: 0; visibility: hidden; transform: translateY(7px) scale(.98); transform-origin: top right;
  transition: opacity .18s, transform .18s, visibility .18s;
}
.site-settings.is-open .settings-panel { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.settings-title { font-family: 'Fraunces', Georgia, 'Times New Roman', serif; font-size: 1.15rem; font-weight: 500; margin-bottom: 12px; }
.settings-group + .settings-group { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 14px; }
.settings-label { display: block; margin-bottom: 8px; color: var(--ink-dim); font: 500 .68rem 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .09em; text-transform: uppercase; }
.settings-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.settings-option {
  min-height: 42px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 10px;
  background: var(--bg-2); color: var(--ink-2); display: flex; align-items: center; justify-content: center;
  gap: 7px; text-align: center; font: 600 .82rem 'Inter', sans-serif; cursor: pointer;
}
.settings-option:hover,.settings-option:focus-visible { border-color: var(--accent); color: var(--ink); outline: none; }
.settings-option.active { background: var(--accent-soft); border-color: var(--accent); color: var(--accent-ink); }
.settings-note { margin-top: 10px; color: var(--ink-dim); font-size: .72rem; line-height: 1.45; }
.footer-email { overflow-wrap: anywhere; }

/* First visit helper: non-blocking, no layout shift, no automatic redirect. */
.preference-welcome {
  position: fixed; z-index: 10020; right: 22px; bottom: 22px; width: min(430px, calc(100vw - 32px));
  padding: 20px; border: 1px solid var(--line-strong); border-radius: 18px;
  background: var(--bg); color: var(--ink); box-shadow: 0 22px 58px -30px rgba(31,26,20,.62);
  opacity: 0; transform: translateY(14px) scale(.98); pointer-events: none; transition: .18s ease;
}
.preference-welcome.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.preference-welcome.is-leaving { opacity: 0; transform: translateY(10px) scale(.98); }
.preference-welcome > strong { display:block; padding-right:28px; font:500 1.22rem/1.2 'Fraunces',Georgia,'Times New Roman',serif; }
.preference-welcome > p { margin:7px 0 16px; color:var(--ink-dim); font-size:.84rem; }
.welcome-close { position:absolute; right:10px; top:9px; width:34px; height:34px; border:0; border-radius:10px; background:transparent; color:var(--ink-dim); font-size:1.35rem; cursor:pointer; }
.welcome-close:hover { background:var(--bg-2); color:var(--ink); }
.welcome-row { display:grid; grid-template-columns:88px 1fr; gap:10px; align-items:center; padding:9px 0; border-top:1px solid var(--line); }
.welcome-row > span { color:var(--ink-dim); font:600 .65rem 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:.08em; text-transform:uppercase; }
.welcome-row > div { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.welcome-row a,.welcome-row button { min-height:38px; display:flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:9px; background:var(--bg-2); color:var(--ink-2); font:600 .78rem 'Inter',sans-serif; cursor:pointer; }
.welcome-row a.active,.welcome-row button.active { border-color:var(--accent); background:var(--accent-soft); color:var(--accent-ink); }
.welcome-done { width:100%; margin-top:12px; min-height:42px; border:0; border-radius:10px; background:var(--ink); color:var(--bg); font:700 .82rem 'Inter',sans-serif; cursor:pointer; }
.welcome-done:hover { background:var(--accent); color:#1f1a14; }

/* One contact form system across Home, FAQ, Plans, Informatics and Marketing. */
.project-contact { padding: 104px 0; background: #15110e; color: #fff6ec; position: relative; overflow: hidden; }
.project-contact::before { content:""; position:absolute; width:720px; height:720px; border-radius:50%; background:radial-gradient(circle,var(--accent),transparent 63%); opacity:.13; right:-250px; top:-300px; pointer-events:none; }
.project-contact__grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:64px; align-items:start; position:relative; z-index:1; }
.project-contact__copy .mono { color:var(--accent-2); }
.project-contact__copy h2 { margin:16px 0 22px; font:500 clamp(2.45rem,5vw,4.6rem)/1 'Fraunces',Georgia,'Times New Roman',serif; letter-spacing:-.03em; color:#fff6ec; }
.project-contact__copy h2 em { color:var(--accent); font-style:italic; }
.project-contact__copy > p { color:#cdbfb1; max-width:530px; }
.contact-direct { display:grid; gap:5px; margin-top:32px; font-size:.86rem; }
.contact-direct a { color:var(--accent-2); font-weight:700; }
.contact-direct span { color:#9f9185; }
.project-form { background:var(--bg); color:var(--ink); border:1px solid rgba(255,255,255,.13); border-radius:22px; padding:30px; box-shadow:0 30px 70px -34px rgba(0,0,0,.72); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.project-form label { display:grid; gap:8px; min-width:0; }
.project-form label > span { color:var(--ink-2); font-size:.78rem; font-weight:700; }
.project-form input,.project-form select,.project-form textarea { width:100%; min-width:0; border:1px solid var(--line-strong); border-radius:11px; background:var(--bg-2); color:var(--ink); padding:13px 14px; font:500 .92rem 'Inter',sans-serif; outline:none; transition:border-color .2s,box-shadow .2s; }
.project-form textarea { resize:vertical; min-height:132px; line-height:1.5; }
.project-form input:focus,.project-form select:focus,.project-form textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px rgba(232,123,58,.16); }
.form-message { grid-column:1/-1; }
.form-submit { margin-top:20px; width:100%; min-height:50px; justify-content:center; border:0; background:var(--ink); color:var(--bg); }
.form-submit:hover { background:var(--accent); color:#1f1a14; }
.form-privacy { margin-top:13px; color:var(--ink-dim); font-size:.73rem; text-align:center; }
.form-status { min-height:1.3em; margin-top:8px; color:var(--accent-ink); font-size:.78rem; text-align:center; }

/* Mobile navigation + layout consistency across page-specific styles. */
@media (min-width: 821px) and (max-width: 1080px) {
  .nav-links { gap: 13px !important; font-size: .79rem !important; }
  .nav-cta { padding: 9px 12px !important; font-size: .78rem !important; }
  nav .wrap, nav .nav-inner { gap: 9px; }
}
@media (max-width: 900px) {
  nav .wrap, nav .nav-inner { gap:8px; }
  .site-settings { margin-left:auto; }
  .settings-toggle,.menu-toggle { width:44px !important; height:44px !important; min-width:44px !important; min-height:44px !important; border-radius:12px !important; }
  .menu-toggle { background:var(--accent-soft) !important; color:var(--ink) !important; border-color:var(--line-strong) !important; }
  .menu-toggle:hover,.menu-toggle:focus-visible,.menu-toggle.is-open { background:var(--accent) !important; color:#1f1a14 !important; border-color:var(--accent) !important; }
  .settings-panel { position:fixed; top:72px; right:16px; }
  nav .mobile-menu { background:var(--bg) !important; backdrop-filter:none !important; -webkit-backdrop-filter:none !important; max-height:calc(100vh - 72px); overflow:auto; overscroll-behavior:contain; }
  .project-contact__grid { grid-template-columns:1fr; gap:34px; }
  .project-contact { padding:82px 0; }
  .foot-grid { gap:34px !important; }
}
@media (max-width: 620px) {
  .wrap { padding-left:18px !important; padding-right:18px !important; }
  nav .wrap, nav .nav-inner { padding-left:14px !important; padding-right:14px !important; }
  .logo { font-size:1.12rem !important; gap:8px !important; min-width:0; }
  .logo-mark { width:30px !important; height:30px !important; flex:0 0 30px; }
  .form-grid { grid-template-columns:1fr; }
  .form-message { grid-column:auto; }
  .project-form { padding:21px 17px; border-radius:17px; }
  .project-contact { padding:68px 0; }
  .project-contact__copy h2 { font-size:clamp(2.25rem,11vw,3.25rem); }
  .project-contact__copy > p { font-size:.95rem; }
  .preference-welcome { left:12px; right:12px; bottom:12px; width:auto; padding:17px; }
  .welcome-row { grid-template-columns:1fr; gap:6px; }
  .settings-panel { left:12px; right:12px; width:auto; top:68px; }
  .cta { margin-left:12px !important; margin-right:12px !important; padding:64px 20px !important; border-radius:22px !important; }
  .foot-grid { grid-template-columns:1fr !important; gap:26px !important; }
  footer { padding-top:58px !important; }
  .foot-bottom { flex-direction:column; align-items:flex-start; }
  .wa-float { right:14px !important; bottom:14px !important; width:52px !important; height:52px !important; }
}
@media (max-width: 360px) {
  .logo > span:last-child { font-size:1rem; }
  .settings-toggle,.menu-toggle { width:40px !important; height:40px !important; min-width:40px !important; min-height:40px !important; }
  nav .wrap, nav .nav-inner { gap:6px; padding-left:10px !important; padding-right:10px !important; }
  .project-form { padding:18px 14px; }
  .project-contact__copy h2 { font-size:2.15rem; }
}
@media (prefers-reduced-motion: reduce) {
  .settings-toggle,.settings-panel,.preference-welcome { transition:none; }
}

/* v6 form simplification: name + need + message */
.project-form .form-grid{grid-template-columns:1fr 1fr}
.project-form .form-message{grid-column:1/-1}
html[data-theme="dark"] .international-note,html[data-theme="dark"] .lab-note{background:#211b17!important;border-color:#4a3b31!important}
html[data-theme="dark"] .about-collab{background:#100d0b!important}
@media(max-width:620px){.project-form .form-grid{grid-template-columns:1fr}.project-form .form-message{grid-column:auto}}


/* === merged from nav-dropdown.css for fewer render-blocking requests === */
/* ============================================================
   nav-dropdown.css — submenú "Trabajos" (Informática / Marketing)
   Compartido por todas las páginas. Usa las variables de cada hoja.
   ============================================================ */
.nav-dropdown { position: relative; display: inline-flex; align-items: center; }
.nav-dropdown-toggle { display: inline-flex; align-items: center; gap: 4px; }
.nav-caret { font-size: .7em; transition: transform .2s; }
.nav-dropdown:hover .nav-caret,
.nav-dropdown:focus-within .nav-caret { transform: rotate(180deg); }
.nav-submenu {
  position: absolute; top: 100%; left: 50%;
  min-width: 170px; padding: 8px; margin-top: 10px;
  display: flex; flex-direction: column; gap: 2px;
  background: var(--bg); border: 1px solid var(--line);
  border-radius: 12px; box-shadow: 0 18px 40px -24px rgba(31,26,20,.45);
  opacity: 0; visibility: hidden; transform: translate(-50%, 6px);
  transition: opacity .2s, transform .2s, visibility .2s; z-index: 60;
}
.nav-submenu::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.nav-dropdown:hover .nav-submenu,
.nav-dropdown:focus-within .nav-submenu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.nav-links .nav-submenu a { padding: 8px 12px; border-radius: 8px; white-space: nowrap; }
.nav-links .nav-submenu a:hover,
.nav-links .nav-submenu a.active { background: var(--bg-2); color: var(--accent-ink, var(--accent)); }

/* Mobile */
.mobile-menu a.mobile-sublink { padding-left: 22px; font-size: .92em; opacity: .85; }

/* Footer */
.foot-sublabel { display: block; padding: 6px 0 2px; color: var(--ink-2); font-size: .95rem; }
.foot-grid a.foot-sublink { padding-left: 14px; }


/* === merged from motion.css for fewer render-blocking requests === */
/* v7 motion system — lightweight CSS/JS depth, no WebGL. */
.motion-reveal{opacity:0;transform:translateY(28px) scale(.985);transition:opacity .72s cubic-bezier(.2,.75,.2,1),transform .72s cubic-bezier(.2,.75,.2,1);transition-delay:var(--reveal-delay,0ms)}
.motion-reveal.is-visible{opacity:1;transform:none}
.motion-card{transform-style:preserve-3d;will-change:transform;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
@media (hover:hover) and (pointer:fine){.motion-card:hover{box-shadow:0 26px 60px -42px rgba(31,26,20,.5);border-color:var(--accent)!important}}
.motion-tilt{transform-style:preserve-3d;will-change:transform;transition:transform .18s ease-out}
.page-ambient{position:fixed;inset:auto auto 8vh -10vw;width:32vw;height:32vw;border-radius:50%;background:radial-gradient(circle,var(--accent) 0%,transparent 68%);opacity:.045;filter:blur(22px);pointer-events:none;z-index:-1;animation:ambientDrift 14s ease-in-out infinite alternate}
@keyframes ambientDrift{to{transform:translate(18vw,-12vh) scale(1.15)}}
@media(max-width:700px){.motion-reveal{transform:translateY(18px)}.page-ambient{display:none}.motion-tilt{transform:none!important}}
@media(prefers-reduced-motion:reduce){.motion-reveal{opacity:1!important;transform:none!important;transition:none!important}.motion-card,.motion-tilt{transform:none!important;transition:none!important}.page-ambient{display:none!important}}


/* === Mobile/performance polish === */
/* Expensive blur/continuous motion is unnecessary on small screens. */
@media (max-width: 820px) {
  nav {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .hero-stat,
  .hero-float {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}
@media (max-width: 620px) {
  .hero-float,
  .eyebrow .dot {
    animation: none !important;
  }
}
