/* Cabecera y pie compartidos. La referencia visual es la landing principal. */
header .wrap,footer .wrap { max-width:1120px; margin:0 auto; padding:0 1.5rem; }

header { position:sticky; top:0; z-index:50; background:rgba(16,23,16,.85); backdrop-filter:blur(10px); border-bottom:1px solid rgba(255,255,255,.08); }
.nav { display:flex; align-items:center; justify-content:space-between; padding:.9rem 0; }
.brand { display:flex; align-items:center; gap:.6rem; text-decoration:none; }
.brand-logo { width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; background-image:url('img/logo-circle.webp'); background-size:cover; background-position:center; color:transparent; font-size:1.1rem; flex:none; }
.brand-logo-img { width:40px; height:40px; object-fit:contain; flex:none; }
.brand-wordmark { position:relative; display:inline-block; font-family:'Nunito',sans-serif; font-weight:800; font-size:1.15rem; letter-spacing:.03em; color:#f2f2f2; white-space:nowrap; padding-bottom:.28rem; }
.brand-wordmark span { background:linear-gradient(135deg,var(--accent-soft),var(--accent) 65%,var(--accent-deep)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.brand-wordmark::after { content:''; position:absolute; right:0; bottom:0; left:0; height:2px; border-radius:999px; background:linear-gradient(90deg,#f2f2f2 0%,var(--accent-soft) 52%,var(--accent) 100%); opacity:.92; }
.nav-links { display:flex; align-items:center; gap:1.6rem; font-weight:700; font-size:.9rem; }
.nav-links a { text-decoration:none; color:rgba(255,255,255,.75); transition:color .2s ease; }
.nav-links a:hover,.nav-login:hover { color:var(--accent-soft); }
.nav-panel { display:flex; align-items:center; gap:1.6rem; }
.nav-login { font-weight:700; font-size:.88rem; text-decoration:none; color:rgba(255,255,255,.7); }
header .btn { display:inline-flex; align-items:center; gap:.5rem; padding:.85rem 1.6rem; border-radius:999px; font-weight:800; font-size:.95rem; text-decoration:none; border:0; cursor:pointer; transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease; }
header .btn-primary { background:linear-gradient(135deg,var(--accent-soft),var(--accent) 60%,var(--accent-deep)); color:#1a1a1a; box-shadow:0 10px 26px rgba(255,158,27,.28); }
header .btn-primary:hover { transform:translateY(-2px); box-shadow:0 14px 30px rgba(255,158,27,.38); }
header .btn-primary:hover i { transform:translateX(3px); }
.nav-btn-primary { margin-left:.8rem; flex:none; }
.nav-toggle { display:none; width:40px; height:40px; border-radius:10px; align-items:center; justify-content:center; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); color:#f2f2f2; font-size:1.05rem; cursor:pointer; flex:none; }

footer { border-top:1px solid rgba(255,255,255,.08); padding:3rem 0 2rem; background:#0c110c; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2rem; margin-bottom:2.4rem; }
.footer-brand .accent-text { background:linear-gradient(135deg,var(--accent-soft),var(--accent) 65%,var(--accent-deep)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.footer-brand p { font-size:.85rem; color:rgba(255,255,255,.5); line-height:1.6; margin:.8rem 0 1.2rem; }
.footer-address { display:flex; align-items:flex-start; gap:.5rem; font-size:.82rem; color:rgba(255,255,255,.5); line-height:1.5; margin:0 0 1.2rem; }
.footer-address i { color:var(--accent-soft); margin-top:.2rem; flex:none; }
.footer-address a { color:inherit; text-decoration:none; }
.footer-address a:hover { color:var(--accent-soft); }
.footer-social { display:flex; gap:.7rem; }
.footer-social a { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); display:flex; align-items:center; justify-content:center; text-decoration:none; color:rgba(255,255,255,.7); transition:background .2s ease,color .2s ease; }
.footer-social a:hover { background:var(--accent); color:#1a1a1a; }
.footer-col h4 { font-size:.8rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.5); margin:0 0 1rem; }
.footer-col ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.65rem; }
.footer-col a { text-decoration:none; font-size:.86rem; color:rgba(255,255,255,.68); transition:color .2s ease; }
.footer-col a:hover { color:var(--accent-soft); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.08); padding-top:1.6rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.8rem; font-size:.78rem; color:rgba(255,255,255,.4); }
.wa-float { position:fixed; right:1.2rem; bottom:1.2rem; z-index:300; width:58px; height:58px; border-radius:50%; background:#25d366; display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.7rem; text-decoration:none; box-shadow:0 10px 26px rgba(0,0,0,.35); transition:transform .18s ease,box-shadow .18s ease; }
.wa-float:hover { transform:translateY(-3px) scale(1.05); box-shadow:0 14px 30px rgba(0,0,0,.45); }

a:focus-visible,button:focus-visible { outline:2px solid var(--accent-soft); outline-offset:3px; }
@media (max-width:860px) { .nav { flex-wrap:wrap; row-gap:0; } .brand { order:1; font-size:.95rem; gap:.45rem; flex:none; white-space:nowrap; } .brand-logo,.brand-logo-img { width:32px; height:32px; } .brand-logo { font-size:.95rem; } .brand-wordmark { font-size:.95rem; } .nav-toggle { display:inline-flex; order:2; width:34px; height:34px; font-size:.95rem; margin-left:auto; flex:none; } .nav-btn-primary { order:3; margin-left:.35rem; padding:.5rem .85rem; font-size:.76rem; gap:.3rem; flex:none; white-space:nowrap; } .nav-panel { order:4; flex-basis:100%; flex-direction:column; align-items:stretch; gap:0; max-height:0; overflow:hidden; transition:max-height .35s ease; } .nav-panel.open { max-height:480px; } .nav-links { display:flex; flex-direction:column; gap:0; width:100%; padding-top:.6rem; font-size:1rem; } .nav-links a,.nav-panel .nav-login { width:100%; padding:.85rem 0; border-top:1px solid rgba(255,255,255,.1); } }
@media (max-width:760px) { .footer-grid { grid-template-columns:1fr 1fr; } }
@media (prefers-reduced-motion:reduce) { .nav-panel { transition:none; } }
