/* =========================================================
   Agustín Segura Prado — Portfolio
   Editorial claro. Fondo blanco, tipografía grande,
   mucho aire. Azul de marca en "Segura".
   ========================================================= */

:root{
  --bg:        #ffffff;
  --bg-2:      #f5f6f8;
  --surface:   #eef0f3;
  --line:      #e4e6ec;
  --line-soft: #edeef2;
  --text:      #15171c;
  --muted:     #565d6b;   /* AA OK sobre blanco */
  --muted-2:   #6a7180;   /* AA OK sobre blanco */
  --accent:    #3a63c0;   /* azul de marca (Segura) */
  --accent-2:  #5b86d6;
  --accent-display:#4f7fe0;
  --accent-ink:#ffffff;
  --accent-dim:rgba(58,99,192,.10);
  --accent-glow:rgba(58,99,192,.22);
  --maxw:      1340px;
  --gap:       clamp(.7rem, 1.4vw, 1.25rem);
  --pad-x:     clamp(1.15rem, 5vw, 5rem);
  --r:         2px;
  --ease:      cubic-bezier(.16,1,.3,1);
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:calc(70px + env(safe-area-inset-top)); }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:clamp(15px,.55vw + 13.5px,17px);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.lock{ overflow:hidden; position:fixed; left:0; right:0; width:100%; }

img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }
::selection{ background:var(--accent); color:var(--accent-ink); }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:2px; }

.skip-link{ position:absolute; left:-9999px; top:0; z-index:10001;
  background:var(--accent); color:var(--accent-ink); padding:.7em 1.2em; border-radius:4px; font-weight:600; }
.skip-link:focus{ left:1rem; top:1rem; }

/* ---------- Helpers ---------- */
.eyebrow{
  font-size:.74rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--muted); font-weight:600; display:flex; align-items:center; gap:.7em;
  margin-bottom:1.1rem;
}
.eyebrow__num{ color:var(--accent); font-variant-numeric:tabular-nums; }
.i{ font-style:italic; font-weight:300; }

.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- Logo del caballito (entra solo si existe el archivo) ---------- */
.nav__logo,.preloader__logo{ display:none; }
body.has-logo .nav__logo{ display:block; height:2.5em; width:auto; }
body.has-logo .footer__brand .nav__logo{ height:2.2em; }
body.has-logo .preloader__logo{ display:block; width:auto; height:clamp(110px,26vw,170px); margin-bottom:1.1rem;
  animation:floatY 3s ease-in-out infinite; }
body.has-logo .preloader__name{ display:none; }
@keyframes floatY{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-8px) } }

/* ---------- Preloader ---------- */
.preloader{
  position:fixed; inset:0; z-index:10000; background:var(--bg);
  display:grid; place-items:center; padding:1rem;
  transition:opacity .8s var(--ease), visibility .8s;
}
.preloader.done{ opacity:0; visibility:hidden; }
.preloader__name{ display:flex; flex-direction:column; align-items:center; gap:.05em; text-align:center; text-transform:uppercase;
  font-family:var(--font-display); font-weight:600; font-size:clamp(1.6rem,6vw,3rem); line-height:1; color:var(--text); }
.preloader__name span{ opacity:0; transform:translateY(20px); animation:plIn .7s var(--ease) forwards; }
.preloader__name span:nth-child(2){ animation-delay:.12s; color:var(--accent); font-style:italic; }
.preloader__name span:nth-child(3){ animation-delay:.24s; }
@keyframes plIn{ to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  .preloader__name span{ animation:none; opacity:1; transform:none; }
  body.has-logo .preloader__logo{ animation:none; }
}

/* ---------- Navigation ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.9rem max(var(--pad-x),env(safe-area-inset-right)) .9rem max(var(--pad-x),env(safe-area-inset-left));
  padding-top:max(.9rem, env(safe-area-inset-top));
  background:rgba(255,255,255,.92);
  border-bottom:1px solid transparent;
  transition:padding .4s var(--ease), border-color .4s var(--ease), background .4s var(--ease);
}
/* OJO: no usar backdrop-filter/filter/transform en .nav — crearía un containing block
   que atraparía el drawer (position:fixed) dentro de la cabecera. */
.nav.scrolled{ padding-block:.6rem; background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); }
.nav__brand{ display:flex; align-items:center; gap:.6rem; flex:none; z-index:1002; }
.nav__name{ font-family:var(--font-display); font-weight:600; font-size:1rem; letter-spacing:.04em; text-transform:uppercase; }
.nav__name-accent{ color:var(--accent); font-style:italic; }
.nav__links{ display:flex; align-items:center; gap:clamp(.85rem,1.6vw,1.9rem); }
.nav__links a{ font-size:.82rem; letter-spacing:.05em; color:var(--muted); font-weight:500; position:relative; padding:.4em 0; transition:color .3s; }
.nav__links a::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px; background:var(--accent); transition:width .35s var(--ease); }
.nav__links a:hover{ color:var(--text); }
.nav__links a:hover::after,.nav__links a.active::after{ width:100%; }
.nav__links a.active{ color:var(--text); }
.nav__cta{ border:1px solid var(--line); border-radius:100px; padding:.55em 1.15em !important; color:var(--text) !important; transition:border-color .3s, background .3s, color .3s; }
.nav__cta::after{ display:none; }
.nav__cta:hover{ background:var(--accent); border-color:var(--accent); color:var(--accent-ink) !important; }

.nav__lang{ display:flex; align-items:center; gap:.15rem; margin-left:.4rem; }
.nav__lang button{ background:none; border:0; cursor:pointer; font-size:.72rem; letter-spacing:.08em; font-weight:600;
  color:var(--muted-2); padding:.45em .5em; border-radius:4px; transition:color .25s; min-height:34px; }
.nav__lang button:hover{ color:var(--text); }
.nav__lang button.active{ color:var(--accent); text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1.5px; }

.nav__toggle{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:10px; z-index:1002; }
.nav__toggle span{ width:26px; height:2px; background:var(--text); border-radius:2px; transition:transform .35s var(--ease), opacity .25s; }
.nav__toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.nav__scrim{ position:fixed; inset:0; z-index:999; background:rgba(20,22,28,.42);
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); overscroll-behavior:contain;
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s; }
.nav__scrim.show{ opacity:1; visibility:visible; }

/* ---------- Hero (foto a media pantalla, sin líneas) ---------- */
.hero{ position:relative; min-height:600px; min-height:min(100svh, 720px);
  display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.hero__text{ align-self:center; justify-self:end; width:100%; max-width:660px;
  padding:clamp(7rem,15vh,9rem) clamp(2rem,4vw,3.5rem) clamp(4rem,8vh,6rem) max(var(--pad-x),env(safe-area-inset-left)); }
.hero__title{ font-family:var(--font-display); font-weight:500; line-height:.92; letter-spacing:-.005em; text-transform:uppercase;
  font-size:clamp(2.5rem,6.2vw,6rem); margin:.22em 0 .42em; font-optical-sizing:auto; }
.hero__title span{ display:block; }
.hero__title-accent{ font-style:italic; font-weight:400; color:var(--accent-display); }
.hero__lede{ max-width:44ch; color:var(--muted); font-size:1.08rem; }
.hero__actions{ display:flex; gap:.9rem; margin-top:2.2rem; flex-wrap:wrap; }
.hero__media{ position:relative; overflow:hidden; background:var(--surface); }
.hero__media img{ width:100%; height:100%; object-fit:cover; }
.hero__caption{ position:absolute; bottom:16px; left:16px; font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:#fff;
  background:rgba(10,12,18,.42); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); padding:.45em .8em; border-radius:2px; }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.6em; font-weight:600; font-size:.9rem;
  padding:.95em 1.7em; border-radius:100px; min-height:48px;
  transition:transform .3s var(--ease), background .3s, color .3s, border-color .3s, box-shadow .3s; letter-spacing:.01em; }
.btn:hover{ transform:translateY(-2px); }
.btn--primary{ background:var(--accent); color:var(--accent-ink); box-shadow:0 12px 30px -14px var(--accent-glow); }
.btn--primary:hover{ background:var(--accent-2); box-shadow:0 18px 40px -14px var(--accent-glow); }
.btn--ghost{ border:1px solid var(--line); color:var(--text); }
.btn--ghost:hover{ border-color:var(--accent); color:var(--accent); }

/* ---------- Sections ---------- */
.section{ max-width:var(--maxw); margin-inline:auto;
  padding:clamp(3.5rem,9vw,8rem) max(var(--pad-x),env(safe-area-inset-right)) clamp(3.5rem,9vw,8rem) max(var(--pad-x),env(safe-area-inset-left)); }
.section__head{ max-width:760px; margin-bottom:clamp(2rem,5vw,3.2rem); position:relative; padding-bottom:1.4rem; }
.section__head::after{ content:""; position:absolute; left:0; bottom:0; width:46px; height:2px; background:var(--accent); }
.section__title{ font-family:var(--font-display); font-weight:500; letter-spacing:-.015em;
  font-size:clamp(2.1rem,5.4vw,4rem); line-height:1.0; margin:.18em 0 .5em; }
.section__desc{ color:var(--muted); max-width:56ch; font-size:1.05rem; line-height:1.7; }

/* ---------- Galería: masonry en grid (orden preservado) ---------- */
/* Masonry real con columnas CSS: empaqueta sin huecos y conserva la calidad (sin recorte) */
.gallery{ column-width:clamp(260px, 31vw, 360px); column-gap:var(--gap); }
.tile{ position:relative; overflow:hidden; border-radius:var(--r); cursor:pointer; background:var(--surface);
  display:block; width:100%; margin:0 0 var(--gap); break-inside:avoid; -webkit-column-break-inside:avoid;
  min-height:120px; /* reserva mínima mientras carga la imagen (lazy) */
  opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.tile.in{ opacity:1; transform:none; }
.tile img{ width:100%; height:auto; display:block; transition:transform .9s var(--ease), filter .5s; }
.tile:hover img,.tile:focus-visible img{ will-change:transform; }
.tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(10,12,18,.45), transparent 50%); opacity:0; transition:opacity .4s; }
.tile__plus{ position:absolute; right:14px; bottom:12px; z-index:2; width:36px; height:36px; border-radius:50%;
  border:1px solid rgba(255,255,255,.7); display:grid; place-items:center; color:#fff;
  opacity:0; transform:scale(.7) rotate(-20deg); transition:.4s var(--ease); background:rgba(10,12,18,.25); }
.tile__plus::before,.tile__plus::after{ content:""; position:absolute; background:#fff; }
.tile__plus::before{ width:13px; height:1.5px; }
.tile__plus::after{ width:1.5px; height:13px; }
.tile:hover img{ transform:scale(1.05); filter:brightness(.92); }
.tile:hover::after,.tile:focus-visible::after{ opacity:1; }
.tile:hover .tile__plus,.tile:focus-visible .tile__plus{ opacity:1; transform:scale(1) rotate(0); border-color:var(--accent); background:var(--accent); }
.tile:hover .tile__plus::before,.tile:hover .tile__plus::after,
.tile:focus-visible .tile__plus::before,.tile:focus-visible .tile__plus::after{ background:var(--accent-ink); }
.tile:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; box-shadow:0 0 0 4px var(--accent-glow); }
@media (hover:none){ .tile__plus{ opacity:.9; transform:none; } }

/* ---------- Audiovisual ---------- */
.av-group{ margin-bottom:clamp(2.4rem,6vw,4.5rem); }
.av-group:last-child{ margin-bottom:0; }
.av-group__head{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  border-bottom:1px solid var(--line); padding-bottom:1rem; margin-bottom:1.8rem; }
.av-group__head h3{ font-family:var(--font-display); font-weight:500; font-size:clamp(1.3rem,3vw,1.9rem); }
.av-group__meta{ color:var(--muted-2); font-size:.82rem; letter-spacing:.04em; overflow-wrap:anywhere; }

.reels{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); max-width:760px; }
@media (max-width:640px){ .reels{ grid-template-columns:repeat(2,1fr); max-width:none; } }
@media (max-width:380px){ .reels{ grid-template-columns:1fr; max-width:300px; } }

.video-wrap{ display:flex; flex-direction:column; }
.video-card{ position:relative; border-radius:var(--r); overflow:hidden; cursor:pointer; background:#0b0f17; border:1px solid var(--line); }
.video-card.reel{ aspect-ratio:9/16; }
.feature-video{ max-width:920px; }
.feature-video .video-card{ aspect-ratio:16/9; }
.video-card img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease), filter .5s; }
.video-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(6,9,16,.5), rgba(6,9,16,.05) 55%); transition:opacity .4s; }
.video-card:hover img{ transform:scale(1.06); filter:brightness(.85); }
.video-card__play{ position:absolute; inset:0; z-index:2; display:grid; place-items:center; }
.video-card__play i{ width:60px; height:60px; border-radius:50%; background:var(--accent); display:grid; place-items:center; position:relative;
  box-shadow:0 10px 30px -6px rgba(0,0,0,.5); transition:transform .4s var(--ease), background .3s; }
.video-card__play i::before{ content:""; border-left:17px solid #fff; border-top:10px solid transparent; border-bottom:10px solid transparent; margin-left:4px; }
.video-card:hover .video-card__play i{ transform:scale(1.12); background:var(--accent-2); }
.video-card__tag{ position:absolute; left:12px; bottom:12px; z-index:2; font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.7); }
.video-card iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; z-index:3; }
.video-card.loading::before{ content:""; position:absolute; z-index:4; inset:0; margin:auto; width:38px; height:38px; border-radius:50%;
  border:2px solid rgba(255,255,255,.25); border-top-color:var(--accent); animation:spin .8s linear infinite; }
.video-fallback{ display:inline-flex; align-items:center; min-height:34px; margin-top:.6rem; font-size:.74rem; color:var(--muted-2); transition:color .3s; }
.video-fallback:hover{ color:var(--accent); }
.video-notice{ display:block; margin-top:.3rem; font-size:.66rem; color:var(--muted); }

/* ---------- About ---------- */
.about__inner{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.about__media{ position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:4/5; border:1px solid var(--line); background:var(--surface); }
.about__media img{ width:100%; height:100%; object-fit:cover; }
.about__text p{ color:var(--muted); margin-bottom:1.1rem; }
.about__text p strong{ color:var(--text); font-weight:600; }
.chips{ list-style:none; display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.8rem; }
.chips li{ font-size:.78rem; letter-spacing:.03em; color:var(--accent); background:var(--accent-dim); border:1px solid transparent; border-radius:100px; padding:.55em 1.1em; }

/* ---------- Contact ---------- */
.contact{ text-align:center; }
.contact__inner{ max-width:820px; margin-inline:auto; }
.contact .eyebrow{ justify-content:center; }
.contact__title{ font-family:var(--font-display); font-weight:500; letter-spacing:-.015em; font-size:clamp(2rem,7vw,4.6rem); line-height:1.02; margin:.18em 0 .7em; }
.contact__mail{ display:inline-block; font-family:var(--font-display); font-style:italic; font-weight:400;
  font-size:clamp(1.1rem,3.6vw,2rem); color:var(--text); padding-bottom:.12em; word-break:break-word;
  border-bottom:1px solid var(--line); transition:color .3s, border-color .3s; }
.contact__mail:hover{ color:var(--accent); border-color:var(--accent); }
.contact__socials{ display:flex; justify-content:center; gap:clamp(1.4rem,4vw,3rem); margin-top:2.6rem; flex-wrap:wrap; }
.contact__socials a{ font-size:.82rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); transition:color .3s; overflow-wrap:anywhere; }
.contact__socials a span{ display:block; margin-top:.35em; text-transform:none; letter-spacing:0; color:var(--muted-2); font-size:.8rem; }
.contact__socials a:hover{ color:var(--accent); }

/* ---------- Footer ---------- */
.footer{ border-top:1px solid var(--line); max-width:var(--maxw); margin-inline:auto;
  padding:3rem max(var(--pad-x),env(safe-area-inset-right)) max(2.4rem, calc(env(safe-area-inset-bottom) + 1.4rem)) max(var(--pad-x),env(safe-area-inset-left)); }
.footer__inner{ display:flex; align-items:center; justify-content:space-between; gap:1.2rem; flex-wrap:wrap; }
.footer__brand{ display:flex; align-items:center; gap:.6rem; font-family:var(--font-display); font-weight:600; font-size:.95rem; letter-spacing:.04em; text-transform:uppercase; }
.footer__brand .nav__name-accent{ color:var(--accent); font-style:italic; }
.footer__tag{ color:var(--muted-2); font-size:.82rem; }
.footer__top{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); transition:color .3s; }
.footer__top:hover{ color:var(--accent); }
.footer__copy{ margin-top:1.8rem; color:var(--muted-2); font-size:.74rem; }
.footer__legal{ margin-top:.6rem; font-size:.74rem; }
.footer__legal a{ color:var(--muted-2); transition:color .3s; }
.footer__legal a:hover{ color:var(--accent); }

/* ---------- Lightbox (overlay oscuro para ver las fotos) ---------- */
.lightbox{ position:fixed; inset:0; z-index:5000; background:rgba(255,255,255,.55);
  -webkit-backdrop-filter:blur(26px) saturate(1.25); backdrop-filter:blur(26px) saturate(1.25); overscroll-behavior:contain;
  display:grid; place-items:center; opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s; }
.lightbox.open{ opacity:1; visibility:visible; }
.lightbox__stage{ max-width:94vw; max-height:90vh; display:flex; flex-direction:column; align-items:center; gap:1rem; }
.lightbox__imgwrap{ position:relative; display:flex; align-items:center; justify-content:center; min-height:60px; min-width:60px; }
.lightbox__img{ max-width:94vw; max-height:84vh; width:auto; height:auto; object-fit:contain; border-radius:2px;
  box-shadow:0 30px 80px -24px rgba(20,28,55,.45); transform:scale(.96); opacity:0; transition:transform .45s var(--ease), opacity .45s, filter .4s; }
.lightbox.open .lightbox__img{ transform:scale(1); opacity:1; }
.lightbox__img.blur{ filter:blur(14px); }
.lightbox__spinner{ position:absolute; width:38px; height:38px; border-radius:50%; border:2px solid rgba(20,22,28,.18); border-top-color:var(--accent); animation:spin .8s linear infinite; opacity:0; transition:opacity .3s; }
.lightbox__spinner.show{ opacity:1; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.lightbox__cap{ display:flex; gap:1.2rem; align-items:center; color:var(--muted); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; }
.lightbox__cap #lbCount{ color:var(--accent); font-variant-numeric:tabular-nums; }
.lightbox__btn{ position:fixed; background:rgba(255,255,255,.7); border:1px solid var(--line); color:var(--text); cursor:pointer;
  width:52px; height:52px; border-radius:50%; display:grid; place-items:center; font-size:1.8rem; line-height:1; transition:.3s var(--ease);
  box-shadow:0 6px 20px -8px rgba(20,28,55,.3); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.lightbox__btn:hover{ background:var(--accent); border-color:var(--accent); color:#fff; transform:scale(1.06); }
.lightbox__close{ top:max(20px,env(safe-area-inset-top)); right:max(20px,env(safe-area-inset-right)); font-size:1.7rem; }
.lightbox__prev{ left:max(20px,env(safe-area-inset-left)); top:50%; transform:translateY(-50%); }
.lightbox__next{ right:max(20px,env(safe-area-inset-right)); top:50%; transform:translateY(-50%); }
.lightbox__prev:hover{ transform:translateY(-50%) scale(1.06); }
.lightbox__next:hover{ transform:translateY(-50%) scale(1.06); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:980px){
  .hero{ min-height:auto; grid-template-columns:1fr; }
  .hero__media{ order:-1; height:62vh; min-height:340px; }
  .hero__text{ justify-self:stretch; max-width:none;
    padding:2.6rem max(var(--pad-x),env(safe-area-inset-left)) clamp(3rem,8vh,4rem); }
  .about__inner{ grid-template-columns:1fr; }
  .about__media{ max-width:400px; }

  .nav__toggle{ display:flex; }
  .nav__links{
    position:fixed; top:0; right:0; bottom:0; width:min(82vw,360px);
    flex-direction:column; align-items:flex-start; justify-content:center; gap:1.1rem; background:var(--bg);
    padding:max(5rem,calc(env(safe-area-inset-top) + 4rem)) max(var(--pad-x),env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) var(--pad-x);
    border-left:1px solid var(--line); box-shadow:-30px 0 80px -30px rgba(20,22,28,.25);
    transform:translateX(105%); transition:transform .45s var(--ease); overflow-y:auto; overscroll-behavior:contain; z-index:1001;
  }
  .nav__links.open{ transform:none; }
  .nav__links a{ font-size:1.15rem; color:var(--text); display:flex; align-items:center; width:100%; min-height:44px; }
  .nav__links a::after{ display:none; }
  /* Contacto igual que el resto de enlaces en el menú móvil */
  .nav__cta{ border:0 !important; border-radius:0 !important; padding:0 !important; color:var(--text) !important; min-height:44px; }
  .nav__cta:hover{ background:none !important; color:var(--accent) !important; }
  .nav__lang{ margin:.8rem 0 0; gap:.4rem; }
  .nav__lang button{ font-size:.9rem; padding:.5em .7em; border:1px solid var(--line); border-radius:6px; }
}

@media (max-width:760px){
  :root{ --gap:.6rem; }
  .gallery{ column-width:clamp(150px, 44vw, 210px); }
  .lightbox__img{ max-width:100vw; }
  .lightbox__btn{ width:48px; height:48px; font-size:1.5rem; }
  .lightbox__close{ right:max(12px,env(safe-area-inset-right)); top:max(12px,env(safe-area-inset-top)); }
  .lightbox__prev,.lightbox__next{ top:auto; bottom:calc(env(safe-area-inset-bottom) + 14px); }
  .lightbox__prev{ left:50%; transform:translateX(-130%); }
  .lightbox__next{ right:50%; transform:translateX(130%); }
  .lightbox__prev:hover{ transform:translateX(-130%) scale(1.06); }
  .lightbox__next:hover{ transform:translateX(130%) scale(1.06); }
  .lightbox__stage{ max-height:86vh; }
}

@media (max-width:520px){
  .gallery{ grid-template-columns:1fr 1fr; }
}
@media (max-width:340px){
  .gallery{ grid-template-columns:1fr; }
}
