*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{overflow-x:clip}
body{margin:0}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;right:-999px;top:8px;z-index:1000;background:#fff;color:#000;padding:8px 14px}
.skip:focus{right:8px}
:focus-visible{outline:3px solid var(--accent,#f5bc51);outline-offset:2px}
.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;opacity:0;pointer-events:none}
.cform{position:relative}

/* form */
.cform{display:grid;gap:14px}
.cform .cf-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cform label{display:grid;gap:6px;font-size:.92rem}
.cform input,.cform select,.cform textarea{font:inherit;width:100%;padding:12px 14px;border-radius:10px;border:1px solid #cfd6e0;background:#fff;color:#111}
.cform textarea{resize:vertical}
.cform input[dir=ltr]{text-align:right}
.flash{padding:12px 14px;border-radius:10px;font-weight:600}
.flash-ok{background:#e7f7ee;color:#11643a;border:1px solid #9bd8b5}
.flash-err{background:#fdecec;color:#8a1c1c;border:1px solid #f2b0b0}
@media (max-width:640px){.cform .cf-row{grid-template-columns:1fr}}

/* map */
.map iframe{width:100%;height:100%;min-height:360px;border:0;display:block}

/* whatsapp */
.wa-float{position:fixed;bottom:20px;right:20px;z-index:900;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 10px 25px rgba(0,0,0,.25);transition:transform .2s}
.wa-float:hover{transform:scale(1.08)}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.9);display:none;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:12px}
.lightbox.open{display:flex}
.lightbox img{max-height:80vh;width:auto;border-radius:8px}
.lightbox p{color:#fff;margin:0;font-size:1rem}
.lightbox button{position:absolute;top:14px;left:18px;background:none;border:0;color:#fff;font-size:42px;line-height:1;cursor:pointer}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

.social{display:flex;gap:8px;flex-wrap:wrap}
.social a{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;text-decoration:none;font-weight:700;font-size:.8rem;border:1px solid currentColor}
