.public-brand-hero { flex-direction:column; align-items:stretch; padding-top:96px; padding-bottom:0; }
.public-brand-hero > .container { width:100%; }
.public-brand-hero h1 { font-size:clamp(40px,5.6vw,78px); line-height:1.04; }
.public-brand-hero p { max-width:1000px; }
.public-proof { display:flex; justify-content:center; flex-wrap:wrap; gap:24px 72px; border-top:1px solid #222; padding:28px 24px; margin-top:36px; color:#bbb; font-size:11px; text-transform:uppercase; font-weight:700; letter-spacing:.1em; }
.public-secondary-link { color:#fff; font-size:14px; font-weight:700; padding:12px 0; text-decoration:underline; text-underline-offset:5px; }
.public-secondary-link:hover { color:#ccff00; }
#servicios { scroll-margin-top:96px; }
.public-portfolio-note { max-width:350px; font-size:14px; line-height:1.7; color:#bdbdbd; }
.public-project-card img { filter:none; object-position:top; }
.public-project-summary { color:#b8b8b8; }
.public-case-details { margin:0 0 28px; border-top:1px solid #333; border-bottom:1px solid #333; }
.public-case-details summary { cursor:pointer; padding:16px 0; color:#ccff00; font-size:13px; font-weight:700; }
.public-case-details p { font-size:14px; line-height:1.75; color:#b8b8b8; margin-bottom:18px; }
.public-contact { padding-top:152px; padding-bottom:96px; display:grid; grid-template-columns:1fr 1.15fr; gap:64px; align-items:start; }
.public-eyebrow { font-size:11px; font-weight:800; letter-spacing:.16em; color:#ccff00; margin-bottom:24px; }
.public-contact h1 { font-weight:700; font-size:clamp(38px,4.2vw,58px); line-height:1.08; letter-spacing:-.045em; margin-bottom:28px; }
.public-contact h1 span { color:#ccff00; }
.public-contact-intro > p:not(.public-eyebrow) { color:#bbb; font-size:17px; line-height:1.8; margin-bottom:28px; }
.public-button { display:inline-flex; align-items:center; justify-content:center; background:#ccff00; color:#050505; font-size:14px; font-weight:800; padding:18px 24px; text-align:center; }
.public-button:hover { background:#e0ff67; }
.public-button:disabled { opacity:.6; cursor:wait; }
.public-contact-next { padding-top:40px; margin-top:40px; border-top:1px solid #333; }
.public-contact-next h2 { font-size:21px; font-weight:700; margin-bottom:20px; }
.public-contact-next ol { padding-left:20px; list-style:decimal; color:#bbb; line-height:1.8; }
.public-contact-next li { margin-bottom:12px; }
.public-contact-intro .public-contact-location { margin-top:32px; font-size:13px; }
.public-form-wrap { border:1px solid #333; background:#0c0c0c; padding:32px; }
.public-form-wrap h2 { font-size:26px; font-weight:700; margin-bottom:8px; }
.public-form-wrap > p { font-size:13px; color:#aaa; margin-bottom:28px; }
.public-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:24px; }
.public-form-wrap label { display:block; font-size:13px; font-weight:600; color:#ddd; }
.public-form-wrap input:not([type=hidden]), .public-form-wrap select, .public-form-wrap textarea { display:block; width:100%; margin-top:10px; padding:12px; background:#151515; border:1px solid #454545; color:#fff; font:inherit; font-weight:400; border-radius:2px; min-width:0; }
.public-form-wrap input::placeholder, .public-form-wrap textarea::placeholder { color:#929292; }
.public-form-wrap select { appearance:auto; }
.public-form-wrap textarea { resize:vertical; }
.public-form-wrap button { margin-top:28px; }
.public-form-note { font-size:12px; color:#aaa; line-height:1.7; margin-top:16px; }
.public-status-success { color:#ccff00; line-height:1.7; margin-top:20px; }
.public-status-error { color:#ffb4a9; line-height:1.7; margin-top:20px; }
.public-contact :is(a,button,input,select,textarea):focus-visible, .public-case-details summary:focus-visible, .public-secondary-link:focus-visible { outline:2px solid #ccff00; outline-offset:4px; }
.public-contact button:focus-visible { outline-color:white; }
@media(max-width:900px) { .public-contact { grid-template-columns:1fr; gap:40px; padding-top:128px; } }
@media(max-width:520px) { .public-form-grid { grid-template-columns:1fr; } .public-form-wrap { padding:24px 18px; } .public-button { width:100%; } .public-brand-hero { padding-top:64px; } .public-proof { gap:16px; font-size:10px; } .public-brand-hero a { max-width:100%; } .public-project-card .project-info { padding:24px; } }
