/*
Theme Name: Mar Carolina
Theme URI: https://marcarolina.com
Author: Mar Carolina
Description: Tema personalizado de servicios digitales — Mar Carolina Dev
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: mar-carolina
*/


    :root {
      --white:   #fffdf9;
      --soft:    #f5f0ff;
      --black:   #1a1025;
      --pink:    #ff6fd8;
      --purple:  #a78bfa;
      --mint:    #6ee7b7;
      --yellow:  #fde68a;
      --peach:   #fca5a5;
      --sky:     #93c5fd;
      --gray:    #6b7280;
      --ease:    cubic-bezier(0.76, 0, 0.24, 1);
    }
    /* DARK MODE */
    body.dark {
      --white:  #0f0a1a;
      --soft:   #160f26;
      --black:  #f0eaff;
      --gray:   #9ca3af;
    }
    body.dark .nav-bg { background:rgba(15,10,26,0.92) !important; }
    body.dark .ventaja-visual { background:rgba(167,139,250,.06); border-color:rgba(167,139,250,.12); }
    body.dark .vent-item { background:rgba(255,255,255,.05); color:#f0eaff; }
    body.dark .svc-card { border-color:rgba(255,255,255,.08); }
    body.dark .precio-card:not(.featured) { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.08); }
    body.dark .btn-precio-outline { border-color:rgba(255,255,255,.15); color:#f0eaff; }
    body.dark .cf-group input, body.dark .cf-group textarea { background:rgba(255,255,255,.05); border-color:rgba(167,139,250,.2); color:#f0eaff; }
    body.dark .h-card { background:rgba(255,255,255,.06) !important; border-color:rgba(255,255,255,.1) !important; }
    body.dark .hc-val { color:#f0eaff; }
    body.dark .tab-btn { color:rgba(255,255,255,.4); }
    body.dark .tab-btn.active { color:var(--purple); }
    body.dark footer { background:#07040f; }
    body.dark .cta-band { background:#07040f; }
    body.dark #cur { mix-blend-mode:normal; }
    body.dark .precio-card.featured { background:#1a1025; }
    .dark-toggle {
      position:relative; z-index:1;
      width:38px; height:38px; border-radius:50%;
      background:rgba(167,139,250,.15); border:1.5px solid rgba(167,139,250,.3);
      display:flex; align-items:center; justify-content:center;
      font-size:17px; cursor:pointer; transition:all .25s;
      flex-shrink:0;
    }
    .dark-toggle:hover { background:rgba(167,139,250,.28); transform:rotate(20deg); }
    *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { font-family:'Nunito', sans-serif; background:var(--white); color:var(--black); overflow-x:hidden; cursor:none; transition:background .4s, color .4s; }
    .wrap { max-width:1080px; margin:0 auto; }

    /* CURSOR */
    #cur { position:fixed; width:12px; height:12px; border-radius:50%; background:var(--pink); pointer-events:none; z-index:9999; transform:translate(-50%,-50%); mix-blend-mode:multiply; transition:width .2s,height .2s; }
    #cur-ring { position:fixed; width:36px; height:36px; border-radius:50%; border:2px solid var(--purple); pointer-events:none; z-index:9998; transform:translate(-50%,-50%); opacity:.5; transition:left .1s,top .1s,width .3s,height .3s; }

    /* NAV */
    nav {
      position:fixed; top:0; left:0; right:0; z-index:200;
      display:flex; align-items:center; justify-content:space-between;
      padding:18px 5%;
    }
    .nav-bg { position:absolute; inset:0; background:rgba(255,253,249,0.9); backdrop-filter:blur(20px); border-bottom:1px solid rgba(167,139,250,.15); }
    .nav-logo { position:relative; z-index:1; font-family:'Plus Jakarta Sans', sans-serif; font-size:20px; font-weight:800; text-decoration:none; color:var(--black); display:flex; align-items:center; gap:8px; }
    .nav-logo-dot { width:10px; height:10px; border-radius:50%; background:var(--pink); display:inline-block; animation:pulse 2s infinite; }
    @keyframes pulse { 0%,100%{transform:scale(1);} 50%{transform:scale(1.3);} }
    .nav-links { position:relative; z-index:1; display:flex; gap:32px; list-style:none; }
    .nav-links a { font-size:14px; font-weight:700; color:var(--black); text-decoration:none; position:relative; }
    .nav-links a::after { content:''; position:absolute; bottom:-2px; left:0; width:0; height:2px; background:var(--pink); border-radius:2px; transition:width .3s var(--ease); }
    .nav-links a:hover::after { width:100%; }
    .nav-cta { position:relative; z-index:1; padding:10px 24px; background:var(--black); color:var(--yellow); font-size:13px; font-weight:800; letter-spacing:.04em; text-decoration:none; border-radius:100px; transition:transform .2s,box-shadow .2s; box-shadow:3px 3px 0 var(--pink); }
    .nav-cta:hover { transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--pink); }

    /* HERO */
    .hero {
      min-height:100vh; padding:120px 5% 70px;
      display:grid; grid-template-columns:1fr 1fr;
      gap:60px; align-items:center;
      position:relative; overflow:hidden;
    }
    /* mesh gradient background */
    .hero::before {
      content:'';
      position:absolute; inset:0; z-index:0;
      background:
        radial-gradient(ellipse 60% 50% at 80% 20%, rgba(255,111,216,.15) 0%, transparent 70%),
        radial-gradient(ellipse 50% 60% at 10% 80%, rgba(110,231,183,.18) 0%, transparent 70%),
        radial-gradient(ellipse 40% 40% at 60% 90%, rgba(147,197,253,.2) 0%, transparent 70%),
        radial-gradient(ellipse 30% 30% at 30% 10%, rgba(253,230,138,.2) 0%, transparent 60%);
    }
    .hero-left { position:relative; z-index:1; max-width:540px; }
    .hero-inner { max-width:1080px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; height:100%; }

    .hero-badge {
      display:inline-flex; align-items:center; gap:8px;
      padding:7px 16px; border-radius:100px;
      background:rgba(167,139,250,.15);
      border:1px solid rgba(167,139,250,.3);
      font-size:12px; font-weight:700; color:var(--purple);
      letter-spacing:.06em; text-transform:uppercase;
      margin-bottom:28px;
      animation:fadeUp .6s var(--ease) .1s both;
    }
    .hero-badge span { font-size:16px; }

    .hero-title {
      font-family:'Plus Jakarta Sans', sans-serif;
      font-size:clamp(28px,3vw,42px);
      font-weight:800; line-height:1.0;
      letter-spacing:-.02em;
      margin-bottom:10px;
      animation:fadeUp .8s var(--ease) .2s both;
    }
    .hero-title .line1 { color:var(--black); display:block; }
    .hero-title .line2 {
      display:block;
      background:linear-gradient(135deg, var(--pink), var(--purple));
      -webkit-background-clip:text; -webkit-text-fill-color:transparent;
      background-clip:text;
    }
    .hero-title .line3 { color:var(--black); display:block; }

    /* rotating word */
    .rotating-wrap { display:inline-block; overflow:hidden; vertical-align:bottom; }
    .rotating-word {
      display:inline-block;
      transition:transform .5s var(--ease), opacity .5s ease;
      background:linear-gradient(135deg, var(--mint), var(--sky));
      -webkit-background-clip:text; -webkit-text-fill-color:transparent;
      background-clip:text;
    }
    .rotating-word.out { transform:translateY(-110%); opacity:0; }
    .rotating-word.in  { transform:translateY(110%);  opacity:0; }

    .hero-sub {
      font-size:15px; font-weight:500; color:var(--gray);
      line-height:1.75; max-width:480px;
      margin-bottom:36px; margin-top:20px;
      animation:fadeUp .8s var(--ease) .4s both;
    }
    .hero-sub strong { color:var(--black); font-weight:800; }

    .hero-actions {
      display:flex; align-items:center; gap:16px;
      animation:fadeUp .8s var(--ease) .55s both;
    }
    .btn-primary {
      display:inline-flex; align-items:center; gap:10px;
      padding:14px 30px; background:var(--black); color:var(--yellow);
      font-family:'Nunito',sans-serif; font-size:14px; font-weight:800;
      text-decoration:none; border-radius:100px;
      box-shadow:4px 4px 0 var(--pink);
      transition:transform .2s var(--ease), box-shadow .2s var(--ease);
      letter-spacing:.02em;
    }
    .btn-primary:hover { transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--pink); }
    .btn-secondary {
      font-size:14px; font-weight:700; color:var(--purple);
      text-decoration:none; display:flex; align-items:center; gap:6px;
      padding:14px 20px; border-radius:100px;
      border:2px solid rgba(167,139,250,.35);
      transition:all .2s;
    }
    .btn-secondary:hover { border-color:var(--purple); background:rgba(167,139,250,.08); }

    /* HERO RIGHT — visual cards */
    .hero-right { position:relative; z-index:1; height:460px; }
    .h-card {
      position:absolute; border-radius:20px; padding:20px 22px;
      box-shadow:0 8px 32px rgba(26,16,37,.08);
    }
    .hc1 { top:0; left:10px; width:200px; background:rgba(255,111,216,.12); border:1px solid rgba(255,111,216,.25); animation:hfloat 7s ease-in-out infinite; }
    .hc2 { top:60px; right:0; width:190px; background:rgba(110,231,183,.15); border:1px solid rgba(110,231,183,.3); animation:hfloat 9s ease-in-out infinite .8s; }
    .hc3 { bottom:100px; left:0; width:185px; background:rgba(147,197,253,.15); border:1px solid rgba(147,197,253,.3); animation:hfloat 8s ease-in-out infinite .4s; }
    .hc4 { bottom:20px; right:10px; width:175px; background:rgba(253,230,138,.2); border:1px solid rgba(253,230,138,.4); animation:hfloat 10s ease-in-out infinite 1.2s; }
    @keyframes hfloat { 0%,100%{transform:translateY(0);} 50%{transform:translateY(-12px);} }
    .hc-emoji { font-size:28px; margin-bottom:8px; }
    .hc-label { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gray); margin-bottom:4px; }
    .hc-val { font-size:26px; font-weight:800; font-family:'Plus Jakarta Sans', sans-serif; color:var(--black); }
    .hc-tag { display:inline-block; margin-top:8px; padding:4px 12px; border-radius:100px; font-size:11px; font-weight:700; }
    .t-pink { background:rgba(255,111,216,.2); color:#c026a0; }
    .t-mint { background:rgba(110,231,183,.25); color:#059669; }
    .t-sky  { background:rgba(147,197,253,.25); color:#2563eb; }
    .t-yellow { background:rgba(253,230,138,.35); color:#b45309; }

    /* TICKER */
    .ticker { overflow:hidden; padding:14px 0; background:var(--black); }
    .ticker-track { display:inline-flex; white-space:nowrap; animation:ticker 22s linear infinite; }
    .ticker-item { font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--white); padding:0 28px; opacity:.8; }
    .ticker-sep { color:var(--pink); opacity:1; }
    @keyframes ticker { from{transform:translateX(0);} to{transform:translateX(-50%);} }

    /* SECTION COMMONS */
    .section-tag {
      display:inline-flex; align-items:center; gap:8px;
      font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
      margin-bottom:12px;
    }
    .section-tag::before { content:'✦'; font-size:10px; }
    .st-pink { color:var(--pink); }
    .st-purple { color:var(--purple); }
    .st-mint { color:#059669; }

    .section-title {
      font-family:'Plus Jakarta Sans', sans-serif;
      font-size:clamp(22px,2.2vw,34px);
      font-weight:800; line-height:1.05;
      letter-spacing:-.02em; margin-bottom:56px;
    }
    .section-title em { font-style:normal; }
    .em-pink { color:var(--pink); }
    .em-purple { color:var(--purple); }
    .em-mint { color:#10b981; }

    /* VENTAJA / ABOUT TEASER */
    .ventaja {
      padding:80px 5%; display:flex; flex-direction:column; align-items:center; gap:40px;
    }
    .ventaja > .sr, .ventaja > .ventaja-visual { max-width:680px; margin-left:auto; margin-right:auto; }
      display:grid; grid-template-columns:1fr 1fr;
      gap:80px; align-items:center;
      background:var(--soft);
    }
    .ventaja-pills { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:32px; }
    .pill {
      padding:8px 18px; border-radius:100px; font-size:13px; font-weight:700;
    }
    .pill-pink { background:rgba(255,111,216,.15); color:#c026a0; border:1px solid rgba(255,111,216,.3); }
    .pill-purple { background:rgba(167,139,250,.15); color:#7c3aed; border:1px solid rgba(167,139,250,.3); }
    .pill-mint { background:rgba(110,231,183,.2); color:#059669; border:1px solid rgba(110,231,183,.3); }
    .pill-yellow { background:rgba(253,230,138,.3); color:#b45309; border:1px solid rgba(253,230,138,.5); }
    .ventaja h2 { font-family:'Plus Jakarta Sans', sans-serif; font-size:clamp(20px,2vw,30px); font-weight:800; line-height:1.1; margin-bottom:20px; }
    .ventaja p { font-size:16px; color:var(--gray); line-height:1.8; margin-bottom:16px; font-weight:500; }
    .ventaja p strong { color:var(--black); font-weight:800; }
    .ventaja-visual {
      border-radius:28px; padding:40px; max-width:560px; max-width:520px; max-width:600px; width:100%;
      background:linear-gradient(135deg, rgba(255,111,216,.2), rgba(167,139,250,.25), rgba(110,231,183,.2));
      border:1px solid rgba(167,139,250,.2);
      display:flex; flex-direction:column; gap:16px;
      max-width:560px; margin:0 auto; width:100%;
    }
    .vent-item {
      display:flex; align-items:center; gap:16px;
      padding:16px 20px; border-radius:14px;
      background:rgba(255,255,255,.8);
      font-size:15px; font-weight:700;
    }
    .vent-icon { font-size:24px; flex-shrink:0; }

    /* SERVICES */
    .services { padding:80px 5%; }
    .services-inner { max-width:1080px; margin:0 auto; }
    .svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
    .svc-card {
      padding:36px 30px; border-radius:24px;
      border:1.5px solid rgba(0,0,0,.07);
      position:relative; overflow:hidden; cursor:pointer;
      transition:transform .3s var(--ease), box-shadow .3s;
    }
    .svc-card:hover { transform:translateY(-8px); box-shadow:0 24px 60px rgba(26,16,37,.1); }
    .svc-card::before { content:''; position:absolute; inset:0; opacity:0; transition:opacity .3s; border-radius:24px; }
    .svc-card:hover::before { opacity:1; }
    .sc-web::before { background:linear-gradient(135deg,rgba(255,111,216,.08),rgba(167,139,250,.08)); }
    .sc-app::before { background:linear-gradient(135deg,rgba(110,231,183,.1),rgba(147,197,253,.1)); }
    .sc-social::before { background:linear-gradient(135deg,rgba(253,230,138,.15),rgba(252,165,165,.1)); }
    .svc-num { font-family:'Plus Jakarta Sans', sans-serif; font-size:52px; font-weight:800; opacity:.07; line-height:1; margin-bottom:16px; }
    .svc-icon { font-size:36px; margin-bottom:16px; display:block; }
    .svc-name { font-family:'Plus Jakarta Sans', sans-serif; font-size:22px; font-weight:800; margin-bottom:10px; }
    .svc-desc { font-size:14px; color:var(--gray); line-height:1.7; font-weight:500; margin-bottom:20px; }
    .svc-features { display:flex; flex-direction:column; gap:8px; }
    .svc-feature { font-size:13px; font-weight:700; display:flex; align-items:center; gap:8px; }
    .svc-feature::before { content:'✓'; width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; flex-shrink:0; }
    .sf-pink .svc-feature::before { background:rgba(255,111,216,.2); color:#c026a0; }
    .sf-mint .svc-feature::before { background:rgba(110,231,183,.25); color:#059669; }
    .sf-yellow .svc-feature::before { background:rgba(253,230,138,.35); color:#b45309; }

    /* PRECIOS */
    .precios { padding:80px 5%; background:var(--soft); }
    .precios-inner { max-width:1080px; margin:0 auto; }
    .precios-tabs {
      display:flex; gap:12px; margin-bottom:48px;
      border-bottom:2px solid rgba(167,139,250,.2);
      padding-bottom:0;
    }
    .tab-btn {
      padding:12px 28px; border-radius:12px 12px 0 0;
      font-size:14px; font-weight:800; cursor:pointer;
      border:none; background:transparent; color:var(--gray);
      transition:all .25s; border-bottom:3px solid transparent;
      margin-bottom:-2px;
    }
    .tab-btn.active { color:var(--purple); border-bottom-color:var(--purple); background:rgba(167,139,250,.08); }
    .precio-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
    .precio-card {
      padding:36px 28px; border-radius:24px;
      border:1.5px solid rgba(0,0,0,.07);
      background:white; position:relative; overflow:hidden;
      transition:transform .3s var(--ease), box-shadow .3s;
    }
    .precio-card:hover { transform:translateY(-6px); box-shadow:0 20px 50px rgba(26,16,37,.09); }
    .precio-card.featured {
      background:var(--black); color:white;
      border-color:transparent;
      box-shadow:0 20px 60px rgba(26,16,37,.2);
      transform:scale(1.04);
    }
    .featured-tag {
      position:absolute; top:20px; right:20px;
      padding:5px 14px; border-radius:100px;
      background:var(--pink); color:white;
      font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
    }
    .precio-plan { font-size:13px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; margin-bottom:12px; }
    .p-web { color:var(--purple); }
    .p-web-feat { color:var(--pink); }
    .precio-amount { font-family:'Plus Jakarta Sans', sans-serif; font-size:32px; font-weight:800; line-height:1; margin-bottom:6px; }
    .precio-amount span { font-size:20px; font-weight:600; opacity:.6; }
    .precio-desc { font-size:14px; opacity:.6; margin-bottom:24px; font-weight:500; }
    .precio-features { display:flex; flex-direction:column; gap:10px; margin-bottom:28px; }
    .pf-item { font-size:14px; font-weight:600; display:flex; align-items:center; gap:10px; }
    .pf-check { width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; flex-shrink:0; background:rgba(110,231,183,.2); color:#059669; font-weight:800; }
    .precio-card.featured .pf-check { background:rgba(110,231,183,.25); }
    .btn-precio {
      width:100%; padding:13px; border-radius:100px; border:none;
      font-family:'Nunito',sans-serif; font-size:14px; font-weight:800; cursor:pointer;
      transition:all .25s; letter-spacing:.02em;
    }
    .btn-precio-outline { background:transparent; border:2px solid rgba(0,0,0,.12); color:var(--black); }
    .btn-precio-outline:hover { border-color:var(--purple); color:var(--purple); }
    .btn-precio-solid { background:var(--pink); color:white; box-shadow:3px 3px 0 rgba(255,111,216,.4); }
    .btn-precio-solid:hover { transform:translate(-1px,-1px); box-shadow:5px 5px 0 rgba(255,111,216,.4); }

    /* PROYECTOS */
    .proyectos { padding:80px 5%; }
    .proyectos-inner { max-width:1080px; margin:0 auto; }
    .proy-grid { display:grid; grid-template-columns:1fr 1fr 1fr; grid-template-rows:260px 260px; gap:16px; }
    .proy-card { border-radius:22px; overflow:hidden; position:relative; cursor:pointer; }
    .proy-card:first-child { grid-row:span 2; }
    .proy-card:nth-child(4) { grid-column:span 2; }
    .proy-bg { width:100%; height:100%; transition:transform .5s var(--ease); }
    .proy-card:hover .proy-bg { transform:scale(1.04); }
    .pb1 { background:linear-gradient(135deg,#ff6fd8,#a78bfa); }
    .pb2 { background:linear-gradient(135deg,#6ee7b7,#93c5fd); }
    .pb3 { background:linear-gradient(135deg,#fde68a,#fca5a5); }
    .pb4 { background:linear-gradient(135deg,#a78bfa,#93c5fd); }
    .proy-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(26,16,37,.8) 0%,transparent 55%); opacity:0; transition:opacity .35s; }
    .proy-card:hover .proy-overlay { opacity:1; }
    .proy-info { position:absolute; bottom:0; left:0; right:0; padding:24px; transform:translateY(8px); opacity:0; transition:all .35s var(--ease); }
    .proy-card:hover .proy-info { transform:translateY(0); opacity:1; }
    .proy-tag { font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--mint); margin-bottom:4px; }
    .proy-name { font-size:18px; font-weight:800; color:white; font-family:'Plus Jakarta Sans', sans-serif; }
    /* decorative shapes inside project cards */
    .proy-deco { position:absolute; border-radius:50%; opacity:.3; pointer-events:none; }

    /* SOBRE MI */
    .sobre-mi { padding:80px 5%; background:var(--soft); display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
    .sm-visual { position:relative; height:480px; }
    .sm-main {
      position:absolute; inset:0; border-radius:28px;
      background:linear-gradient(135deg, #ff6fd8 0%, #a78bfa 50%, #6ee7b7 100%);
      display:flex; align-items:center; justify-content:center;
      overflow:hidden;
    }
    .sm-placeholder {
      display:flex; flex-direction:column; align-items:center; gap:12px;
    }
    .sm-logo-box {
      width:120px; height:120px; border-radius:22px;
      background:rgba(255,255,255,.2); border:2px dashed rgba(255,255,255,.5);
      display:flex; align-items:center; justify-content:center;
      font-size:13px; font-weight:700; color:rgba(255,255,255,.8); text-align:center; line-height:1.5;
    }
    .sm-label-box { font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.6); }
    .sm-badge {
      position:absolute; border-radius:100px; padding:10px 20px;
      font-size:13px; font-weight:800; box-shadow:4px 4px 0 rgba(0,0,0,.12);
    }
    .smb1 { bottom:-14px; left:20px; background:var(--yellow); color:var(--black); }
    .smb2 { top:-14px; right:20px; background:var(--black); color:var(--mint); }
    .sm-text h2 { font-family:'Plus Jakarta Sans', sans-serif; font-size:clamp(20px,2vw,30px); font-weight:800; line-height:1.1; margin-bottom:20px; margin-top:12px; }
    .sm-text h2 em { font-style:normal; color:var(--pink); }
    .sm-text p { font-size:16px; color:var(--gray); line-height:1.8; margin-bottom:14px; font-weight:500; }
    .sm-text p strong { color:var(--black); font-weight:800; }
    .sm-skills { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
    .skill-chip {
      padding:8px 18px; border-radius:100px; font-size:13px; font-weight:700;
      border:2px solid transparent; cursor:default; transition:all .2s;
    }
    .sk-pink { border-color:rgba(255,111,216,.4); color:#c026a0; }
    .sk-pink:hover { background:rgba(255,111,216,.1); }
    .sk-purple { border-color:rgba(167,139,250,.4); color:#7c3aed; }
    .sk-purple:hover { background:rgba(167,139,250,.1); }
    .sk-mint { border-color:rgba(110,231,183,.5); color:#059669; }
    .sk-mint:hover { background:rgba(110,231,183,.12); }

    /* CONTACTO */
    .contacto { padding:80px 5%; }
    .contacto-inner-wrap { max-width:1080px; margin:0 auto; }
    .contacto-inner {
      display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start;
    }
    .contacto-left h2 { font-family:'Plus Jakarta Sans', sans-serif; font-size:clamp(20px,2vw,30px); font-weight:800; line-height:1.1; margin-bottom:20px; margin-top:12px; }
    .contacto-left h2 em { font-style:normal; color:var(--pink); }
    .contacto-left p { font-size:16px; color:var(--gray); line-height:1.8; font-weight:500; margin-bottom:28px; }
    .contacto-items { display:flex; flex-direction:column; gap:14px; }
    .c-item { display:flex; align-items:center; gap:14px; font-size:15px; font-weight:700; }
    .c-icon { width:44px; height:44px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
    .ci-p { background:rgba(255,111,216,.12); }
    .ci-pu { background:rgba(167,139,250,.12); }
    .ci-m { background:rgba(110,231,183,.15); }

    .contacto-form { display:flex; flex-direction:column; gap:16px; }
    .cf-group { display:flex; flex-direction:column; gap:7px; }
    .cf-group label { font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--gray); }
    .cf-group input, .cf-group textarea {
      padding:14px 18px; background:var(--soft);
      border:2px solid rgba(167,139,250,.2); border-radius:14px;
      font-family:'Nunito',sans-serif; font-size:15px; color:var(--black);
      outline:none; transition:border-color .25s, box-shadow .25s; resize:none;
    }
    .cf-group input:focus, .cf-group textarea:focus { border-color:var(--pink); box-shadow:0 0 0 4px rgba(255,111,216,.1); }
    .cf-group textarea { min-height:120px; }
    .cf-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .btn-enviar {
      padding:15px 36px; background:var(--black); color:var(--yellow);
      border:none; border-radius:100px;
      font-family:'Nunito',sans-serif; font-size:15px; font-weight:800;
      letter-spacing:.04em; cursor:pointer;
      box-shadow:5px 5px 0 var(--pink);
      transition:transform .2s var(--ease), box-shadow .2s;
      align-self:flex-start;
    }
    .btn-enviar:hover { transform:translate(-2px,-2px); box-shadow:8px 8px 0 var(--pink); }

    /* CTA BAND */
    .cta-band {
      margin:0 auto 80px; padding:60px 5%; max-width:1020px;
      background:var(--black); border-radius:30px;
      display:grid; grid-template-columns:1fr auto;
      align-items:center; gap:40px;
      position:relative; overflow:hidden;
    }
    .cta-band::before {
      content:'';
      position:absolute; inset:0;
      background:radial-gradient(ellipse 60% 80% at 80% 50%, rgba(255,111,216,.15) 0%, transparent 70%),
                 radial-gradient(ellipse 40% 60% at 10% 50%, rgba(110,231,183,.1) 0%, transparent 70%);
    }
    .cta-band > * { position:relative; z-index:1; }
    .cta-band h2 { font-family:'Plus Jakarta Sans', sans-serif; font-size:clamp(18px,1.8vw,28px); font-weight:800; color:white; line-height:1.1; }
    .cta-band h2 em { font-style:normal; color:var(--yellow); }
    .cta-band p { font-size:16px; color:rgba(255,255,255,.5); margin-top:10px; font-weight:500; }

    /* FOOTER */
    footer { background:var(--black); padding:52px 5% 32px; }
    .footer-inner { max-width:1080px; margin:0 auto; }
    .footer-top { display:flex; align-items:center; justify-content:space-between; padding-bottom:32px; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:24px; }
    .footer-logo { font-family:'Plus Jakarta Sans', sans-serif; font-size:20px; font-weight:800; color:white; display:flex; align-items:center; gap:8px; }
    .footer-logo-dot { width:10px; height:10px; border-radius:50%; background:var(--pink); }
    .footer-links { display:flex; gap:28px; }
    .footer-links a { font-size:13px; font-weight:700; color:rgba(255,255,255,.4); text-decoration:none; letter-spacing:.06em; text-transform:uppercase; transition:color .2s; }
    .footer-links a:hover { color:var(--pink); }
    .footer-bottom { display:flex; align-items:center; justify-content:space-between; }
    .footer-copy { font-size:13px; color:rgba(255,255,255,.25); font-weight:500; }
    .footer-social { display:flex; gap:10px; }
    .soc { width:36px; height:36px; border-radius:10px; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; font-size:15px; text-decoration:none; transition:background .2s,transform .2s; }
    .soc:hover { background:var(--pink); transform:translateY(-3px); }

    /* SCROLL REVEAL */
    .sr { opacity:0; transform:translateY(30px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
    .sr.vis { opacity:1; transform:translateY(0); }
    .sr-d1{transition-delay:.1s;} .sr-d2{transition-delay:.2s;} .sr-d3{transition-delay:.3s;}

    @keyframes fadeUp { from{opacity:0;transform:translateY(24px);} to{opacity:1;transform:translateY(0);} }

    /* TABLET */
    @media(max-width:1024px){
      nav{padding:18px 28px;}
      .hero{grid-template-columns:1fr;padding:110px 28px 60px;min-height:auto;}
      .hero-right{display:none;}
      .ventaja,.sobre-mi{grid-template-columns:1fr;padding:80px 28px;gap:48px;}
      .sm-visual{height:280px;}
      .services,.proyectos,.precios,.contacto{padding:80px 28px;}
      .svc-grid,.precio-grid{grid-template-columns:1fr 1fr;}
      .proy-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;}
      .proy-card{height:200px;}
      .proy-card:first-child{grid-row:auto;}
      .proy-card:nth-child(4){grid-column:auto;}
      .contacto-inner{grid-template-columns:1fr;gap:48px;}
      .cta-band{margin:0 28px 80px;padding:56px 36px;grid-template-columns:1fr;gap:24px;}
      footer{padding:44px 28px 28px;}
      .footer-top{flex-direction:column;gap:24px;align-items:flex-start;}
    }
    /* MOBILE */
    @media(max-width:640px){
      #cur,#cur-ring{display:none;} body{cursor:auto;}
      nav{padding:14px 20px;}
      .nav-links,.nav-cta{display:none;}
      .hero{padding:90px 20px 50px;}
      .hero-title{font-size:clamp(38px,10vw,56px);}
      .hero-actions{flex-direction:column;align-items:stretch;}
      .btn-primary,.btn-secondary{justify-content:center;}
      .ventaja,.sobre-mi{padding:60px 20px;}
      .services,.proyectos,.precios,.contacto{padding:60px 20px;}
      .svc-grid,.precio-grid{grid-template-columns:1fr;}
      .precio-card.featured{transform:none;}
      .proy-grid{grid-template-columns:1fr;grid-template-rows:auto;gap:10px;}
      .proy-card{height:180px;}
      .cf-row{grid-template-columns:1fr;}
      .cta-band{margin:0 20px 60px;padding:40px 24px;}
      .cta-band .btn-primary{width:100%;justify-content:center;}
      footer{padding:36px 20px 24px;}
      .footer-bottom{flex-direction:column;gap:14px;align-items:flex-start;}
    }
  
/* ── CF7 STYLES ────────────────────────────────── */
.wpcf7 { width:100%; }
.wpcf7 form { display:flex; flex-direction:column; gap:14px; }
.wpcf7 br { display:none; }

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 select,
.wpcf7 textarea {
  width:100%;
  padding:14px 18px;
  background:#f5f0ff;
  border:2px solid rgba(167,139,250,.2);
  border-radius:14px;
  font-family:'Plus Jakarta Sans', sans-serif;
  font-size:15px;
  color:#1a1025;
  outline:none;
  transition:border-color .25s, box-shadow .25s;
  resize:none;
  appearance:none;
  -webkit-appearance:none;
}
.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  border-color:#ff6fd8;
  box-shadow:0 0 0 4px rgba(255,111,216,.1);
}
.wpcf7 textarea { min-height:120px; }
.wpcf7 select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 16px center;
  padding-right:40px;
  cursor:pointer;
}
.wpcf7 input[type="submit"] {
  padding:15px 36px;
  background:#1a1025;
  color:#fde68a;
  border:none;
  border-radius:100px;
  font-family:'Plus Jakarta Sans', sans-serif;
  font-size:15px;
  font-weight:800;
  letter-spacing:.04em;
  cursor:pointer;
  box-shadow:5px 5px 0 #ff6fd8;
  transition:transform .2s, box-shadow .2s;
  align-self:flex-start;
  width:auto;
}
.wpcf7 input[type="submit"]:hover {
  transform:translate(-2px,-2px);
  box-shadow:8px 8px 0 #ff6fd8;
}
.wpcf7 .wpcf7-spinner { display:none !important; }
.wpcf7 .wpcf7-response-output {
  margin-top:16px; padding:14px 20px;
  border-radius:12px; font-size:14px; font-weight:600; border:none !important;
}
.wpcf7 .wpcf7-mail-sent-ok { background:rgba(110,231,183,.2); color:#065f46; border-left:4px solid #6ee7b7 !important; }
.wpcf7 .wpcf7-mail-sent-ng { background:rgba(255,111,216,.1); color:#9d174d; border-left:4px solid #ff6fd8 !important; }
.wpcf7 .wpcf7-not-valid-tip { font-size:12px; color:#ff6fd8; margin-top:4px; display:block; }
.wpcf7 .wpcf7-not-valid { border-color:#ff6fd8 !important; box-shadow:0 0 0 4px rgba(255,111,216,.1) !important; }

/* Dark mode CF7 */
body.dark .wpcf7 input[type="text"],
body.dark .wpcf7 input[type="email"],
body.dark .wpcf7 select,
body.dark .wpcf7 textarea {
  background:rgba(255,255,255,.05);
  border-color:rgba(167,139,250,.2);
  color:#f0eaff;
}

@media(max-width:640px){
  .wpcf7 input[type="submit"] { width:100%; text-align:center; }
}



/* HAMBURGER MENU */
.ham-btn {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer;
  padding:6px; z-index:201; position:relative;
}
.ham-btn span {
  display:block; width:24px; height:2.5px;
  background:var(--black); border-radius:2px;
  transition:all .3s ease;
}
body.dark .ham-btn span { background:var(--white); }
.ham-btn.open span:nth-child(1) { transform:translateY(7.5px) rotate(45deg); }
.ham-btn.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.ham-btn.open span:nth-child(3) { transform:translateY(-7.5px) rotate(-45deg); }

.mobile-menu {
  display:none;
  position:fixed; top:0; left:0; right:0; bottom:0;
  z-index:199;
  background:var(--white);
  flex-direction:column; align-items:center; justify-content:center;
  gap:32px; padding:40px;
  opacity:0; transform:translateY(-10px);
  pointer-events:none;
  transition:opacity .3s, transform .3s;
}
.mobile-menu.open {
  opacity:1; transform:translateY(0);
  pointer-events:all;
}
body.dark .mobile-menu { background:var(--black); }
.mobile-menu a {
  font-size:28px; font-weight:800;
  color:var(--black); text-decoration:none;
  transition:color .2s;
}
body.dark .mobile-menu a { color:var(--white); }
.mobile-menu a:hover { color:var(--pink); }
.mobile-menu .mobile-cta {
  margin-top:8px; padding:14px 36px;
  background:var(--black); color:var(--yellow);
  font-size:16px; font-weight:800;
  border-radius:100px;
  box-shadow:4px 4px 0 var(--pink);
}
@media(max-width:640px){
  .ham-btn { display:flex; }
  .mobile-menu { display:flex; }
}