/* MiContacto — tarjeta pública (mobile first) */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg)}
body{margin:0;min-height:100vh;min-height:100dvh;font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.45;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
.ic{width:22px;height:22px;flex:none}
.ic-sm{width:16px;height:16px}
.ic-inline{width:18px;height:18px;display:inline-block;vertical-align:-3px;color:var(--primary)}
[hidden]{display:none!important}

/* Fondo */
.mc-glow{position:fixed;inset:-20vh -20vw auto;height:70vh;pointer-events:none;z-index:0;
  background:radial-gradient(60% 60% at 30% 30%,color-mix(in srgb,var(--primary) 26%,transparent),transparent 70%),
             radial-gradient(50% 50% at 80% 10%,color-mix(in srgb,var(--secondary) 18%,transparent),transparent 70%);
  filter:blur(10px);opacity:.9}
.has-bg .mc-glow{display:none}
.mc-bg{position:fixed;inset:0;z-index:0;background-size:cover;background-repeat:no-repeat;opacity:var(--bg-opacity);filter:blur(var(--bg-blur));transform:scale(1.04)}
.bg-full.overlay-dark .mc-bg::after,.bg-full.overlay-light .mc-bg::after{content:"";position:absolute;inset:0}
.bg-full.overlay-dark .mc-bg::after{background:rgba(0,0,0,var(--overlay-a))}
.bg-full.overlay-light .mc-bg::after{background:rgba(255,255,255,var(--overlay-a))}
.bg-header .mc-bg{position:absolute;height:42vh;max-height:420px;bottom:auto;transform:none;
  -webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
.bg-header.overlay-dark .mc-bg{box-shadow:inset 0 0 0 100vmax rgba(0,0,0,calc(var(--overlay-a) * .6))}
.bg-header.overlay-light .mc-bg{box-shadow:inset 0 0 0 100vmax rgba(255,255,255,calc(var(--overlay-a) * .6))}

/* Contenedor */
.mc{position:relative;z-index:1;width:100%;max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;
  padding:calc(env(safe-area-inset-top,0px) + 28px) calc(env(safe-area-inset-right,0px) + 20px) calc(env(safe-area-inset-bottom,0px) + 20px) calc(env(safe-area-inset-left,0px) + 20px)}
@media (min-width:640px){
  body:not(.is-preview){padding:40px 0;background:
    radial-gradient(120% 80% at 50% -10%,color-mix(in srgb,var(--primary) 16%,var(--bg)),var(--bg) 60%)}
  body:not(.is-preview) .mc{min-height:auto;border-radius:34px;padding:40px 30px 26px;background:color-mix(in srgb,var(--bg) 88%,transparent);
    box-shadow:0 40px 120px -30px rgba(0,0,0,calc(.35 + var(--shadow-a) * .4)),0 0 0 1px color-mix(in srgb,var(--text) 8%,transparent);
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
  body.has-bg.bg-full:not(.is-preview) .mc{background:color-mix(in srgb,var(--bg) 70%,transparent)}
}

/* Encabezado */
.mc-top{display:flex;justify-content:center;margin-bottom:22px}
.layout-left .mc-top{justify-content:flex-start}
.mc-logo{max-height:46px;max-width:62%;width:auto;object-fit:contain}

/* Héroe */
.mc-hero{display:flex;flex-direction:column;align-items:center;text-align:center}
.layout-left .mc-hero{align-items:flex-start;text-align:left}
.mc-photo{--size:128px;width:var(--size);height:var(--size);border-radius:50%;padding:4px;margin-bottom:18px;position:relative;
  background:conic-gradient(from 200deg,var(--primary),var(--secondary),var(--primary));
  box-shadow:0 18px 50px -16px color-mix(in srgb,var(--primary) calc(var(--shadow-a) * 140%),transparent)}
.photo-rounded .mc-photo{border-radius:calc(var(--radius) + 12px)}
.photo-square .mc-photo{border-radius:14px}
.mc-photo img,.mc-initials{width:100%;height:100%;border-radius:inherit;object-fit:cover;border:3px solid var(--bg);background:var(--surface)}
.mc-initials{display:grid;place-items:center;font-family:var(--font-head);font-weight:700;font-size:44px;letter-spacing:-.02em;color:var(--primary)}
.mc-name{font-family:var(--font-head);font-weight:750;font-size:clamp(30px,8.6vw,38px);line-height:1.04;letter-spacing:-.025em;margin:0 0 8px;text-wrap:balance}
.mc-name span{color:color-mix(in srgb,var(--text) 78%,var(--primary))}
.mc-role{margin:0;font-size:17px;font-weight:600;color:var(--text);opacity:.92}
.mc-company{display:inline-flex;align-items:center;gap:7px;margin:12px 0 0;padding:6px 13px;border-radius:999px;font-size:14px;font-weight:600;
  color:var(--primary);background:color-mix(in srgb,var(--primary) 13%,transparent);border:1px solid color-mix(in srgb,var(--primary) 26%,transparent)}
.is-light .mc-company{color:color-mix(in srgb,var(--primary) 80%,#000)}
.mc-bio{margin:16px 0 0;color:var(--muted);font-size:15.5px;max-width:36ch;text-wrap:pretty}
.layout-left .mc-bio{max-width:none}

/* Botones */
.mc-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:28px}
.mc-btn{display:flex;align-items:center;gap:12px;min-height:58px;padding:0 18px;border-radius:var(--radius);text-decoration:none;font-weight:650;font-size:16px;
  background:var(--surface);color:var(--text);border:1px solid color-mix(in srgb,var(--text) 9%,transparent);
  box-shadow:0 10px 30px -14px rgba(0,0,0,calc(var(--shadow-a) * .9)),inset 0 1px 0 color-mix(in srgb,#fff 6%,transparent);
  transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s,background .18s;-webkit-tap-highlight-color:transparent;user-select:none;overflow:hidden}
.mc-btn.is-full{grid-column:1/-1}
.mc-btn.is-half{justify-content:center;flex-direction:column;gap:6px;min-height:84px;padding:12px 10px;text-align:center;font-size:15px}
.mc-btn-ic{display:grid;place-items:center;width:36px;height:36px;border-radius:calc(var(--radius) * .6);flex:none;
  color:var(--primary);background:color-mix(in srgb,var(--primary) 14%,transparent)}
.is-light .mc-btn-ic{color:color-mix(in srgb,var(--primary) 85%,#000)}
.mc-btn-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-btn.is-full .mc-btn-label{flex:1}
.mc-btn.is-full::after{content:"";width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);opacity:.35;margin-right:4px}
.mc-btn.is-primary{background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 72%,var(--secondary)));color:var(--btn-text);border-color:transparent;
  box-shadow:0 16px 36px -14px color-mix(in srgb,var(--primary) calc(40% + var(--shadow-a) * 60%),transparent)}
.mc-btn.is-primary .mc-btn-ic{color:var(--btn-text);background:color-mix(in srgb,var(--btn-text) 18%,transparent)}
.mc-btn.is-primary::after{opacity:.6}
.mc-btn:active{transform:scale(.97)}
@media (hover:hover){.mc-btn:hover{transform:translateY(-2px)}}
.mc-btn:focus-visible,.mc-social a:focus-visible,.mc-install-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 70%,transparent);outline-offset:2px}

/* Redes */
.mc-social{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px}
.layout-left .mc-social{justify-content:flex-start}
.mc-social a{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;color:var(--text);background:var(--surface);
  border:1px solid color-mix(in srgb,var(--text) 9%,transparent);transition:transform .18s,color .18s}
.mc-social a .ic{width:20px;height:20px}
.mc-social a:active{transform:scale(.92)}
@media (hover:hover){.mc-social a:hover{color:var(--primary);transform:translateY(-2px)}}

.mc-address{display:flex;align-items:flex-start;justify-content:center;gap:6px;margin:22px 0 0;color:var(--muted);font-size:14px;text-align:center}
.mc-address .ic{margin-top:2px}
.layout-left .mc-address{justify-content:flex-start;text-align:left}

/* Instalar + pie */
.mc-install{display:flex;justify-content:center;margin-top:26px}
.mc-install-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px dashed color-mix(in srgb,var(--text) 28%,transparent);
  background:transparent;font-size:14px;font-weight:600;color:var(--text)}
.mc-foot{margin-top:auto;padding-top:34px;text-align:center;font-size:12.5px;color:var(--muted)}
.mc-foot a{text-decoration:none;opacity:.8}
.mc-foot a strong{color:var(--text)}
.mc-foot-min{padding-top:18px}

/* Modo QR (siempre claro para máximo contraste al escanear) */
.mc-qr{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#F7F6F3;color:#141414;
  padding:calc(env(safe-area-inset-top,0px) + 24px) 22px calc(env(safe-area-inset-bottom,0px) + 24px);animation:qrIn .28s cubic-bezier(.2,.8,.2,1)}
.mc-qr-inner{width:100%;max-width:440px;display:flex;flex-direction:column;align-items:center;text-align:center}
.mc-qr-logo{max-height:40px;width:auto;margin-bottom:16px}
.mc-qr-name{font-family:var(--font-head);font-weight:750;font-size:28px;letter-spacing:-.02em;margin:0;line-height:1.1}
.mc-qr-role{margin:6px 0 0;font-size:16px;color:#555}
.mc-qr-code{width:min(78vw,56vh,380px);aspect-ratio:1;margin:24px 0 18px;padding:14px;background:#fff;border-radius:22px;
  box-shadow:0 24px 60px -24px rgba(0,0,0,.35),0 0 0 1px rgba(0,0,0,.06)}
.mc-qr-code svg,.mc-qr-code img{width:100%;height:100%;display:block}
.mc-qr-hint{margin:0;font-weight:700;font-size:19px}
.mc-qr-url{margin:6px 0 0;font-size:14px;color:#666;word-break:break-all}
.mc-qr-close{position:absolute;top:calc(env(safe-area-inset-top,0px) + 14px);right:calc(env(safe-area-inset-right,0px) + 14px);width:52px;height:52px;border-radius:50%;
  border:0;background:#141414;color:#fff;display:grid;place-items:center}
@keyframes qrIn{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}

/* Hojas inferiores */
.mc-sheet{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.45);animation:fade .2s}
.mc-sheet-panel{width:100%;max-width:480px;background:var(--surface);color:var(--text);border-radius:26px 26px 0 0;
  padding:10px 20px calc(env(safe-area-inset-bottom,0px) + 18px);animation:up .28s cubic-bezier(.2,.8,.2,1)}
.mc-sheet-handle{width:42px;height:5px;border-radius:9px;background:color-mix(in srgb,var(--text) 22%,transparent);margin:0 auto 14px}
.mc-sheet h2{font-family:var(--font-head);font-size:20px;margin:0 0 16px;text-align:center}
.mc-sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px}
.mc-sheet-grid a,.mc-sheet-grid button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;border-radius:16px;border:0;
  background:color-mix(in srgb,var(--text) 6%,transparent);text-decoration:none;font-size:13px;font-weight:600}
.mc-sheet-grid .ic{color:var(--primary)}
.mc-sheet-close{width:100%;margin-top:16px;padding:15px;border-radius:14px;border:0;background:var(--primary);color:var(--btn-text);font-weight:700;font-size:16px}
.mc-steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.mc-steps li{display:flex;align-items:center;gap:12px;font-size:15.5px}
.mc-step-n{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--primary);color:var(--btn-text);font-weight:800;font-size:14px}
.mc-sheet-note{font-size:13px;color:var(--muted);margin:14px 0 0;text-align:center}
@keyframes up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}

.mc-toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);z-index:80;transform:translate(-50%,20px);opacity:0;pointer-events:none;
  background:#141414;color:#fff;padding:12px 18px;border-radius:999px;font-size:14px;font-weight:600;transition:.25s;white-space:nowrap}
.mc-toast.show{opacity:1;transform:translate(-50%,0)}

/* Animación de entrada */
.animate .rv{opacity:0;transform:translateY(14px);animation:rv .6s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i,0) * 55ms + 60ms)}
@keyframes rv{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .animate .rv{animation:none;opacity:1;transform:none}
  .mc-qr,.mc-sheet,.mc-sheet-panel{animation:none}
  .mc-btn,.mc-social a{transition:none}
}
@media (max-width:360px){
  .mc{padding-left:14px;padding-right:14px}
  .mc-btn.is-half{min-height:78px}
}
@media (display-mode:standalone){.mc-install{display:none!important}}
.is-preview .mc{min-height:100vh}
