:root{--orange:#e96516;--dark:#222321;--muted:#62635f;--paper:#f7f6f2;--line:#e8e5df;--white:#fff;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--dark);background:var(--white);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--orange)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:4px}img{max-width:100%;height:auto}.container{width:min(1160px,calc(100% - 44px));margin:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:10px;top:10px;z-index:99;background:white;padding:12px}.site-header{border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:10}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:98px;gap:30px}.brand img{display:block;width:142px;height:auto}.nav{display:flex;align-items:center;gap:29px}.nav a{font-size:14px;font-weight:600}.nav a[aria-current=page]{color:var(--orange)}.mobile-menu{display:none}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.15em;color:var(--orange);text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(43px,5.3vw,76px);line-height:1.06;letter-spacing:-.052em;font-weight:760}h2{font-size:clamp(29px,3.4vw,47px);line-height:1.15;letter-spacing:-.035em}h3{font-size:21px;letter-spacing:-.025em}p{line-height:1.75;color:var(--muted)}.lead{font-size:clamp(17px,1.7vw,20px);line-height:1.7}.hero{background:var(--paper);padding:100px 0 110px}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center}.hero h1{max-width:680px}.hero h1 em{color:var(--orange);font-style:normal}.hero-art{aspect-ratio:1.15;border-radius:6px;background:linear-gradient(145deg,#dedbd4,#f2eee6);display:grid;place-items:center;position:relative;overflow:hidden}.browser{width:83%;background:white;box-shadow:0 30px 80px #3333;border-radius:10px;transform:rotate(-5deg);overflow:hidden}.browser-bar{background:#252523;padding:12px;display:flex;gap:6px}.browser-bar i{height:7px;width:7px;border-radius:50%;background:#f1a371}.browser-screen{padding:36px 26px 55px;background:#fff}.browser-screen b{display:block;font-size:clamp(24px,3vw,41px);letter-spacing:-.05em;line-height:1.1}.browser-screen strong{color:var(--orange)}.browser-screen p{font-size:12px;margin-top:18px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;align-items:center;gap:20px;padding:16px 23px;border:1px solid var(--dark);font-size:14px;font-weight:700;background:var(--dark);color:#fff;border-radius:3px}.button:hover{background:var(--orange);border-color:var(--orange);color:white}.button-outline{background:transparent;color:var(--dark)}.button-outline:hover{color:white}.section{padding:95px 0}.section-alt{background:var(--paper)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}.section-heading p{max-width:500px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{padding:31px;border:1px solid var(--line);background:#fff;min-height:230px}.card-number{font-size:12px;color:var(--orange);font-weight:800;letter-spacing:.12em}.card h3{margin-top:25px}.card p{font-size:15px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.project{border:1px solid var(--line);background:white;overflow:hidden}.project-visual{height:245px;background:linear-gradient(135deg,#ebe8e2,#d8d5cd);display:flex;align-items:center;justify-content:center;padding:30px}.project-visual span{font-size:clamp(25px,3vw,43px);font-weight:800;letter-spacing:-.045em;color:#444;opacity:.85;text-align:center}.project-visual img{width:100%;height:100%;object-fit:cover}.project-body{padding:25px}.project-body p{font-size:14px}.project-body a{color:var(--orange);font-weight:700;font-size:14px}.about-split{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.about-panel{background:#e8e3db;padding:65px 50px;min-height:350px;display:flex;flex-direction:column;justify-content:center}.about-panel strong{font-size:clamp(40px,5vw,70px);letter-spacing:-.05em}.about-panel span{color:var(--orange);font-size:21px;font-weight:700}.cta{background:var(--dark);color:white;padding:65px 0}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{max-width:720px}.cta p{color:#bbb}.button-light{background:white;color:var(--dark);border-color:white;white-space:nowrap}.page-hero{padding:85px 0 60px;background:var(--paper)}.page-hero h1{font-size:clamp(40px,5vw,64px);max-width:900px}.page-hero p{max-width:760px}.prose{max-width:780px}.prose h2{margin-top:45px}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px}.contact-panel{padding:30px;background:var(--paper)}label{display:block;font-weight:700;font-size:14px;margin-bottom:8px}input,textarea{display:block;width:100%;border:1px solid #c8c7c3;padding:14px;font:inherit;border-radius:3px;margin-bottom:20px}textarea{min-height:145px;resize:vertical}button{cursor:pointer}.notice{padding:16px 20px;border-left:3px solid var(--orange);background:#fff6ed;font-size:14px;line-height:1.6}.footer{padding:65px 0 25px;background:#f0efeb}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer h2{font-size:16px;letter-spacing:0}.footer a{display:block;font-size:14px;margin:0 0 12px}.footer p,.footer small{font-size:13px}.footer-bottom{border-top:1px solid #d9d6d0;padding-top:25px;margin-top:40px;font-size:12px;color:var(--muted)}@media(max-width:850px){.nav{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{cursor:pointer;font-weight:700;list-style:none}.mobile-menu nav{position:absolute;right:0;top:35px;width:210px;background:white;box-shadow:0 14px 35px #0002;padding:15px}.mobile-menu nav a{display:block;padding:11px}.hero-grid,.about-split,.contact-grid{grid-template-columns:1fr;gap:35px}.hero{padding:70px 0}.hero-art{max-height:360px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.cta-inner{align-items:start;flex-direction:column}}@media(max-width:560px){.header-inner{min-height:78px}.brand img{width:112px}.hero{padding:58px 0}.section{padding:65px 0}.cards,.project-grid,.footer-grid{grid-template-columns:1fr}.section-heading{display:block}.about-panel{min-height:260px;padding:35px}.project-visual{height:205px}.cta{padding:50px 0}}

.preview-banner{background:#252523;color:#fff;text-align:center;padding:8px 15px;font:600 12px system-ui;letter-spacing:.04em}button:disabled,input:disabled,textarea:disabled{opacity:.65;cursor:not-allowed}

.project-grid+.actions{margin-top:30px}.text-link{color:var(--orange);font-weight:700}.project-visual{min-height:225px}

/* Vista previa v4: capturas reales aportadas en la galería de Blito.es */
.project-visual-photo{padding:0;overflow:hidden;background:#e6e4df}.project-visual-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}

/* V5: imágenes de portfolio a sangre y con proporción uniforme */
.project-visual.project-visual-photo{display:block;position:relative;width:100%;height:auto;min-height:0;aspect-ratio:16/9;padding:0!important;overflow:hidden;background:#e6e4df}
.project-visual.project-visual-photo img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center top;margin:0;padding:0;border:0}
.project-visual.project-visual-photo + .project-body{border-top:1px solid var(--line)}
@media(max-width:560px){.project-visual.project-visual-photo{height:auto;min-height:0;aspect-ratio:16/9}}

/* v7: screenshots keep full width, top navigation and hero visible; no secondary crop */
.project-visual.project-visual-photo img{object-fit:contain;object-position:center top}

/* V8: todas las capturas de proyectos al mismo formato, desde la cabecera */
.project-visual.project-visual-photo{aspect-ratio:5/4!important;height:auto!important;min-height:0!important;background:#fff!important}
.project-visual.project-visual-photo img{object-fit:fill!important;object-position:top center!important;width:100%!important;height:100%!important}
@media(max-width:560px){.project-visual.project-visual-photo{aspect-ratio:5/4!important}}

/* v9: same-sized screenshot panels, no padding or letterboxing */
.project-grid .project-visual.project-visual-photo{width:100%!important;height:auto!important;aspect-ratio:4/3!important;min-height:0!important;padding:0!important;background:#fff!important;overflow:hidden!important;position:relative!important;display:block!important}
.project-grid .project-visual.project-visual-photo img{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center top!important;padding:0!important;margin:0!important}
.project-grid .project{display:flex;flex-direction:column}
.project-grid .project-body{flex:1}

/* V10: todas las capturas ocupan el ancho completo; sin reglas heredadas de contain. */
.project-grid .project-visual.project-visual-photo { display:block!important; width:100%!important; aspect-ratio:4 / 3!important; height:auto!important; min-height:0!important; padding:0!important; margin:0!important; overflow:hidden!important; background:#fff!important; position:relative!important; }
.project-grid .project-visual.project-visual-photo img { display:block!important; width:100%!important; height:100%!important; position:absolute!important; inset:0!important; object-fit:cover!important; object-position:center top!important; max-width:none!important; padding:0!important; margin:0!important; border:0!important; }
.project-grid .project { display:flex; flex-direction:column; }
.project-grid .project-body { flex:1; }

/* V12 — Corrección definitiva de asociación y visualización de capturas */
.project-grid .project-visual.project-visual-photo {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  display: block !important;
  position: relative !important;
  overflow: hidden !important;
  background: #fff !important;
}
.project-grid .project-visual.project-visual-photo img {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: contain !important;
  object-position: center top !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* V13: recortes preparados directamente a partir de capturas originales 4:3.
   La imagen ya contiene el encuadre correcto; no se recorta ni se deforma con CSS. */
.project-grid .project-visual.project-visual-photo {aspect-ratio:4/3!important;background:#fff!important}
.project-grid .project-visual.project-visual-photo img {object-fit:fill!important;object-position:top left!important}
.project-grid .project-body {padding:26px 27px 29px}
.project-grid .project-body p:not(.eyebrow) {line-height:1.75}


/* v15 — diseño editorial de tarjetas y servicios, sin alterar WordPress */
.cards .card{display:flex;flex-direction:column;align-items:flex-start;min-height:250px;padding:30px;transition:border-color .2s ease,transform .2s ease}
.cards .card:hover{border-color:#e2b08c;transform:translateY(-2px)}
.cards .card .service-icon{width:38px;height:38px;color:var(--orange);flex:none;margin-bottom:25px}
.cards .card h3{margin:0 0 13px;font-size:21px;line-height:1.3}
.cards .card p{margin:0;font-size:15px;line-height:1.7}
.project-grid{align-items:stretch;gap:30px}
.project-grid .project{display:flex;flex-direction:column;height:100%;border:1px solid var(--line);transition:box-shadow .2s ease,border-color .2s ease}
.project-grid .project:hover{box-shadow:0 12px 35px rgba(24,24,24,.065);border-color:#d7d1c8}
.project-grid .project-visual.project-visual-photo{aspect-ratio:16/10!important;background:#f5f3ef!important}
.project-grid .project-visual.project-visual-photo img{object-fit:cover!important;object-position:center top!important}
.project-grid .project-body.project-body-equal{display:flex;flex-direction:column;flex:1;padding:26px 28px 29px}
.project-grid .project-body .eyebrow{margin:0 0 12px;font-size:11px;line-height:1.4}
.project-grid .project-body h3{margin:0 0 13px;font-size:22px;line-height:1.25}
.project-grid .project-body p:not(.eyebrow){margin:0 0 18px;line-height:1.7;flex:1}
.project-grid .project-body a{display:inline-flex;align-self:flex-start;margin-top:auto;padding-top:8px;font-size:14px}
.community-note{margin-top:70px;padding:42px 48px;background:var(--paper);border-left:3px solid var(--orange)}
.community-note h2{font-size:clamp(26px,3vw,36px);margin:0 0 12px}
.community-note p:last-child{max-width:780px;margin:0}
@media(max-width:850px){.project-grid{gap:20px}}
@media(max-width:560px){.cards .card{min-height:0}.project-grid .project-visual.project-visual-photo{aspect-ratio:16/10!important}.project-grid .project-body.project-body-equal{padding:23px}.community-note{padding:28px 24px;margin-top:45px}}
@media(prefers-reduced-motion:reduce){.cards .card,.project-grid .project{transition:none}.cards .card:hover{transform:none}}

/* V16 — gallery cards with consistent image frame and aligned body actions */
.project-grid .project-visual.project-visual-photo{aspect-ratio:8/5!important}
.project-grid .project-visual.project-visual-photo img{object-fit:cover!important;object-position:center!important}
.project-grid .project-body.project-body-equal{min-height:230px}
.project-grid .project-body.project-body-equal > a{margin-top:auto}
.community-note .community-link{display:inline-flex;margin-top:22px;text-decoration:none}
@media(max-width:560px){.project-grid .project-body.project-body-equal{min-height:0}}

/* V17: Sobre mí — trayectoria, servicio continuado y colaboración */
.about-hero .lead{max-width:820px}.about-intro-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:clamp(35px,7vw,100px);align-items:center}.about-intro-grid h2{margin-bottom:25px}.about-intro-grid p{max-width:680px}.about-milestones{display:grid;gap:0;border-top:1px solid var(--line)}.about-milestone{display:flex;align-items:baseline;gap:22px;padding:22px 0;border-bottom:1px solid var(--line)}.about-milestone strong{font-size:clamp(33px,3.6vw,52px);line-height:1.1;letter-spacing:-.05em;white-space:nowrap}.about-milestone span{font-size:14px;line-height:1.5;color:var(--muted)}.about-milestone-text{display:block}.about-milestone-text strong{display:block;font-size:22px;letter-spacing:-.025em;line-height:1.35;margin-bottom:8px}.about-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.about-service{background:#fff;border:1px solid var(--line);padding:30px;min-height:215px}.about-service-number{font-weight:800;font-size:12px;letter-spacing:.1em;color:var(--orange)}.about-service h3{margin:20px 0 12px}.about-service p{margin:0;font-size:15px}.about-quote{background:var(--paper);padding:38px;border-left:3px solid var(--orange)}.about-quote p{color:var(--dark);font-weight:650;font-size:clamp(19px,2vw,25px);line-height:1.5}.about-quote span{font-size:13px;font-weight:700;color:var(--muted)}.about-community{max-width:850px}.about-community h2{max-width:780px}.about-community p{font-size:16px}.about-community .button{margin-top:15px}@media(max-width:800px){.about-intro-grid{grid-template-columns:1fr;gap:30px}.about-milestones{grid-template-columns:repeat(2,1fr);gap:0 25px}.about-milestone-text{grid-column:1/-1}}@media(max-width:560px){.about-service-grid,.about-milestones{grid-template-columns:1fr}.about-milestone-text{grid-column:auto}.about-service{min-height:0;padding:25px}.about-quote{padding:28px}.about-milestone{padding:17px 0}}

/* V18 — Sobre mí: presentación personal, fotografía real, trayectoria y servicios */
.about-v18-hero{padding:clamp(56px,7vw,105px) 0}
.about-v18-hero-grid{display:grid;grid-template-columns:minmax(0,1.07fr) minmax(300px,.93fr);align-items:center;gap:clamp(32px,6vw,100px)}
.about-v18-hero h1{font-size:clamp(55px,6.5vw,100px);line-height:1.02;letter-spacing:-.065em;margin:16px 0 18px}
.about-v18-hero h1 span{color:var(--orange)}
.about-v18-kicker{font-size:clamp(19px,2.3vw,29px);font-weight:700;color:var(--dark);margin:0 0 24px}
.about-v18-hero .lead{max-width:600px;font-size:clamp(17px,1.5vw,20px);line-height:1.75}
.about-v18-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.about-v18-actions .button{display:inline-flex;align-items:center;justify-content:center}
.about-v18-proof{display:flex;flex-wrap:wrap;gap:14px 34px;border-top:1px solid var(--line);margin-top:42px;padding-top:22px;color:var(--muted);font-size:13px}
.about-v18-proof strong{display:block;color:var(--dark);font-size:18px}
.about-v18-portrait{margin:0;min-width:0}
.about-v18-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:45% center;border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.08)}
.about-v18-portrait figcaption{font-size:13px;line-height:1.5;color:var(--muted);margin-top:14px}
.about-v18-service-icon{width:40px;height:40px;color:var(--orange);display:block;margin-bottom:18px}
.about-service h3{margin:0 0 12px}
.about-service{min-height:225px}
.about-v18-secondary-link{margin-top:28px!important}
.about-v18-hero .eyebrow{margin-bottom:0}
@media(max-width:850px){.about-v18-hero-grid{grid-template-columns:1fr}.about-v18-portrait{max-width:540px}.about-v18-hero{padding:58px 0}.about-v18-hero h1{font-size:clamp(52px,11vw,76px)}}
@media(max-width:560px){.about-v18-hero{padding:38px 0 55px}.about-v18-hero h1{font-size:clamp(47px,12vw,64px)}.about-v18-portrait{max-width:100%}.about-v18-actions .button{font-size:13px}.about-v18-proof{gap:16px}.about-v18-portrait figcaption{font-size:12px}}

/* v19: separador sutil en cabeceras interiores; la portada conserva su tratamiento anterior. */
.interior-page .site-header{border-bottom:1px solid #d5d1c9;}

/* V20: trayectoria compacta, una sola fecha y apartado de especialización */
.about-milestone-history{align-items:flex-start}
.about-milestone-history span b{display:inline-block;color:var(--dark);margin-bottom:6px;font-size:15px}
.about-milestone-tech strong{font-size:20px;letter-spacing:-.02em;white-space:normal}
.about-milestone-tech p{font-size:14px;line-height:1.65;color:var(--muted);margin:12px 0 0}
.about-milestone-tech p b{color:var(--dark)}
@media(max-width:800px){.about-milestones{grid-template-columns:1fr}.about-milestone-tech{grid-column:auto}}
@media(max-width:560px){.about-milestone-history{gap:14px}.about-milestone-history strong{font-size:34px}}

/* V22 — Services page: consistent icons, readable detail, and 3-step process */
.services-process .section-heading h2{max-width:690px}
.services-process .section-heading>p{max-width:395px}
.services-process .process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.services-process .process-step{background:#fff;border:1px solid var(--line);padding:30px;min-height:240px}
.services-process .process-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.services-process .process-number{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--orange)}
.services-process .process-head svg{width:38px;height:38px;color:var(--orange)}
.services-process .process-step h3{margin-bottom:12px}
.services-process .process-step p{font-size:15px;margin-bottom:0}
.services-process .process-projects{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:32px}
.services-process .process-projects p{margin:0;max-width:540px}
.services-process .process-projects .button{flex:none}
@media(max-width:850px){.services-process .process-grid{grid-template-columns:1fr}.services-process .process-step{min-height:0}.services-process .process-projects{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.services-process .process-step{padding:25px}.services-process .process-projects{margin-top:25px}}

/* V23 — solo Servicios: imagen auténtica, interacciones discretas y proceso visual */
.services-v23-hero{padding:clamp(55px,7vw,100px) 0;background:var(--paper)}
.services-v23-hero-grid{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(0,.97fr);align-items:center;gap:clamp(35px,5vw,75px)}
.services-v23-hero h1{font-size:clamp(38px,4.5vw,62px);line-height:1.08;max-width:700px}
.services-v23-hero .lead{max-width:580px}
.services-v23-photo{margin:0;min-width:0}
.services-v23-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:7px;border:1px solid #e5e0d7}
.services-v23-photo figcaption{font-size:12px;line-height:1.5;color:var(--muted);margin-top:12px}
/* Mantener exactamente la misma altura por fila */
.interior-page .cards .card{transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease,background-color .24s ease}
.interior-page .cards .card:hover{transform:translateY(-3px);border-color:#e4c4ad;box-shadow:0 12px 28px rgba(32,27,20,.07);background:#fffdfb}
.interior-page .cards .card .service-icon{transition:transform .24s ease}
.interior-page .cards .card:hover .service-icon{transform:translateY(-2px)}
.services-process .process-timeline{position:relative;gap:24px}
.services-process .process-timeline:before{content:'';position:absolute;top:53px;left:12%;right:12%;height:1px;background:#d8c8b8;z-index:0}
.services-process .process-timeline-step{position:relative;z-index:1;background:transparent;border:0;padding:0 15px 8px;min-height:0;text-align:center}
.services-process .process-timeline-head{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;margin:0 0 16px}
.services-process .process-timeline-head svg{width:72px;height:72px;padding:18px;border:1px solid #e4d9cf;border-radius:50%;background:#fff;color:var(--orange);box-shadow:0 0 0 9px var(--paper)}
.services-process .process-timeline-head .process-number{font-size:11px}
.services-process .process-timeline-step h3{font-size:23px;margin:0 0 12px}
.services-process .process-timeline-step p{max-width:315px;margin:0 auto;font-size:15px}
@media(max-width:850px){.services-v23-hero-grid{grid-template-columns:1fr;gap:30px}.services-v23-photo{max-width:620px}.services-process .process-timeline:before{display:none}.services-process .process-timeline{gap:25px}.services-process .process-timeline-step{padding:0 8px 24px;border-bottom:1px solid var(--line)}}
@media(max-width:560px){.services-v23-hero{padding:42px 0 55px}.services-v23-hero h1{font-size:clamp(36px,10vw,49px)}.services-v23-photo img{aspect-ratio:4/3}.services-process .process-timeline-head svg{width:66px;height:66px}}
@media(prefers-reduced-motion:reduce){.interior-page .cards .card,.interior-page .cards .card .service-icon{transition:none!important}.interior-page .cards .card:hover,.interior-page .cards .card:hover .service-icon{transform:none!important}}

/* V24 — Contacto: trato personal y formulario de prueba; sin CTA duplicado */
.contact-v24-section{padding-top:88px;padding-bottom:105px}
.contact-v24-section .contact-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(45px,7vw,105px);align-items:start}
.contact-v24-section .contact-grid>div:first-child h2{max-width:520px;margin:0 0 24px}
.contact-v24-section .contact-grid>div:first-child>p{max-width:510px;margin-bottom:18px}
.contact-v24-emphasis{font-weight:700;color:var(--dark)}
.contact-v24-personal{display:flex;align-items:center;gap:18px;margin:32px 0 27px;padding:21px 22px;background:var(--paper);border:1px solid var(--line);border-radius:6px}
.contact-v24-icon{display:grid;place-items:center;flex:none;width:58px;height:58px;background:#fff;border-radius:12px;color:var(--orange)}
.contact-v24-personal strong{display:block;font-size:16px;line-height:1.4;margin-bottom:4px}
.contact-v24-personal p{font-size:14px;line-height:1.5;margin:0}
.contact-v24-section .notice{max-width:510px}
.contact-v24-section .contact-panel{padding:clamp(26px,3vw,43px);border:1px solid var(--line);border-radius:6px}
.contact-v24-section .contact-panel label{margin-bottom:21px}
.contact-v24-section .contact-panel input,.contact-v24-section .contact-panel textarea{margin:9px 0 0;background:#fff;border-color:#d1cec8;opacity:1;color:var(--dark)}
.contact-v24-section .contact-panel input:disabled,.contact-v24-section .contact-panel textarea:disabled{opacity:1;-webkit-text-fill-color:var(--muted)}
.contact-v24-section .contact-panel textarea{min-height:170px}
.contact-v24-section .contact-panel button:disabled{cursor:not-allowed;opacity:.65;background:#595a57;border-color:#595a57;color:#fff}
@media(max-width:850px){.contact-v24-section .contact-grid{grid-template-columns:1fr;gap:38px}.contact-v24-section{padding:70px 0 85px}}
@media(max-width:560px){.contact-v24-section{padding:56px 0 70px}.contact-v24-personal{padding:18px;gap:12px}.contact-v24-icon{width:50px;height:50px}.contact-v24-section .contact-panel{padding:24px}}

/* V25 — pequeños ajustes aprobados */
.services-v23-photo figcaption{max-width:490px}
.services-process.section{padding-top:76px}
.contact-v25-action{margin:0 0 22px}
.contact-v25-cta{background:var(--orange);border-color:var(--orange);color:#fff}
.contact-v25-cta:hover{background:var(--dark);border-color:var(--dark);color:#fff}
.footer-grid>div:first-child p{max-width:310px;line-height:1.65}
@media(max-width:560px){.services-process.section{padding-top:58px}.contact-v25-cta{justify-content:center}}

/* v28: refinamientos de espacios, portada y pie de página */
.footer-tagline{font-weight:700;color:var(--dark)}
.footer-signature{display:block;margin-top:12px}
.hero-art .browser-feature{transform:none;width:100%;max-width:490px;margin:0 auto;overflow:hidden;border-radius:12px;box-shadow:0 16px 38px #00000016;background:#fff}
.browser-feature .browser-bar{display:flex;align-items:center;gap:8px;padding:13px 16px;background:#242424;transform:none}
.browser-feature .window-dot{display:block;width:12px;height:12px;min-width:12px;border-radius:50%;background:#ff5f57}
.browser-feature .window-dot.yellow{background:#febc2e}.browser-feature .window-dot.green{background:#28c840}
.browser-feature-screen{aspect-ratio:16/10;overflow:hidden;background:#eae7df}
.browser-feature-screen img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}
.browser-feature-caption{text-align:center;font-weight:800;color:var(--dark);font-size:clamp(19px,2.2vw,28px);letter-spacing:-.035em;margin:18px 0 0}
.browser-feature-caption strong{color:var(--orange)}
.services-v23-hero + .section,.page-hero + .section{padding-top:clamp(42px,5vw,68px)}
.contact-hero-v28 .container{position:relative;padding-right:min(31%,360px)}
.contact-hero-symbol{position:absolute;right:3%;top:50%;transform:translateY(-50%) rotate(-7deg);width:clamp(125px,17vw,230px);color:var(--orange);opacity:.65}
.contact-hero-symbol svg{display:block;width:100%}
@media(max-width:850px){.contact-hero-v28 .container{padding-right:0}.contact-hero-symbol{display:none}}
@media(max-width:560px){.hero-art .browser-feature{max-width:100%}.browser-feature-caption{font-size:21px}.footer-signature{margin-top:10px}}

/* v29: portfolio screenshots, subtle tilt and clearer contact symbol */
@media(min-width:851px){.hero-art .browser-feature{transform:rotate(-2deg);width:94%;max-width:500px;box-shadow:0 24px 48px #00000020}}
.browser-feature-screen img{object-position:center top}
.contact-hero-symbol{width:clamp(165px,21vw,290px);opacity:1;color:var(--orange);right:1%}
@media(max-width:850px){.hero-art .browser-feature{transform:none}}

/* V30 — tarjetas: mostrar siempre el ancho completo de la captura, sin deformación.
   Se utiliza un escenario uniforme con fondo neutro y ajuste contain. */
.project-grid .project{display:flex;flex-direction:column;min-width:0}
.project-grid .project-visual.project-visual-photo{display:flex!important;align-items:flex-start!important;justify-content:center!important;width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:8/5!important;padding:0!important;margin:0!important;position:relative!important;overflow:hidden!important;background:#f1f0ec!important}
.project-grid .project-visual.project-visual-photo img{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain!important;object-position:center top!important;margin:0!important;padding:0!important;border:0!important}
.project-grid .project-body{display:flex;flex-direction:column;flex:1;align-items:flex-start}
.project-grid .project-body h3{margin-bottom:12px}
.project-grid .project-body>p:not(.eyebrow){flex:1}
.project-grid .project-body>a{margin-top:auto;padding-top:9px}
/* Marco del navegador de Inicio: no generar línea por desbordamiento de bordes rotados */
.hero-art .browser-feature{isolation:isolate;backface-visibility:hidden;outline:1px solid transparent}
.browser-feature .browser-bar{position:relative;z-index:1;margin-bottom:-1px;padding-bottom:14px}
@media(max-width:560px){.project-grid .project-visual.project-visual-photo{aspect-ratio:8/5!important}}

/* V31 — Galería de capturas preencuadradas 16:9, sin recorte CSS.
   El encuadre se prepara en images/galeria-v31/; conservar todo el ancho. */
.project-grid .project-visual.project-visual-photo {
  aspect-ratio:16/9!important;height:auto!important;min-height:0!important;
  display:block!important;position:relative!important;padding:0!important;
  overflow:hidden!important;background:#f4f2ed!important;
}
.project-grid .project-visual.project-visual-photo img {
  display:block!important;position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;max-width:100%!important;
  object-fit:fill!important;object-position:center top!important;
}
@media(max-width:560px){.project-grid .project-visual.project-visual-photo{aspect-ratio:16/9!important}}

/* V32: ligera inclinación de la ventana de Inicio también en móvil. */
@media(max-width:767px){.hero-art .browser-feature{transform:rotate(-1.5deg);width:94%;margin:8px auto 12px;}}

/* V33 — formulario accesible y protección antispam */
.contact-trap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-privacy{display:flex!important;align-items:flex-start;gap:10px;font-size:.9rem;line-height:1.5;margin:14px 0!important}
.contact-privacy input{width:18px!important;height:18px!important;min-width:18px;margin:3px 0 0!important}
.contact-privacy a{text-decoration:underline}
.cf-turnstile{margin:18px 0;min-height:65px}
.contact-form-note{font-size:.82rem;opacity:.8;margin-top:12px}


/* V34 - Galería Proyectos: marco discreto, capturas completas y tarjetas consistentes.
   Alcance limitado a la página Proyectos; Inicio y Contacto no cambian. */
.projects-gallery-v34 .project-grid{gap:28px;align-items:stretch}
.projects-gallery-v34 .project-grid .project{border-radius:9px;overflow:hidden;border:1px solid #e3dfd7;background:#fff;box-shadow:0 2px 9px rgba(34,35,33,.025)}
.projects-gallery-v34 .project-grid .project-visual.project-visual-photo{display:flex!important;flex-direction:column!important;aspect-ratio:auto!important;height:auto!important;min-height:0!important;position:relative!important;background:#eeeae3!important;overflow:hidden!important;padding:0!important}
.projects-gallery-v34 .project-browser-bar{height:25px;flex:0 0 25px;width:100%;display:flex;align-items:center;padding:0 12px;background:#eeeae4;border-bottom:1px solid #ddd8d0}
.projects-gallery-v34 .project-browser-dots{display:block;width:8px;height:8px;border-radius:50%;background:#e7a095;box-shadow:14px 0 #e8c577,28px 0 #98bf9a}
.projects-gallery-v34 .project-grid .project-visual.project-visual-photo img{display:block!important;position:static!important;inset:auto!important;width:100%!important;height:auto!important;aspect-ratio:16/9!important;object-fit:contain!important;object-position:center top!important;max-width:100%!important;margin:0!important;padding:0!important;border:0!important}
.projects-gallery-v34 .project-grid .project-body.project-body-equal{min-height:0;flex:1;padding:25px 27px 27px}
.projects-gallery-v34 .project-grid .project-body>a{margin-top:auto}
@media(max-width:560px){.projects-gallery-v34 .project-grid{gap:20px}.projects-gallery-v34 .project-grid .project-body.project-body-equal{padding:22px}}
