/* ==========================================================================
   VADU · Header y footer
   Los colores salen de la paleta global de Kadence:
   1 Charcoal · 2 Champagne · 6 Taupe · 7 Beige · 8 Ivory · 9 Blanco
   ========================================================================== */

:root{
  --vadu-ink: var(--global-palette1, #1C1B1A);
  --vadu-gold: var(--global-palette2, #D4B895);
  --vadu-taupe: var(--global-palette6, #8D867E);
  --vadu-beige: var(--global-palette7, #DCCEBE);
  --vadu-ivory: var(--global-palette8, #F7F4ED);
  --vadu-serif: "Cormorant Garamond", Georgia, serif;
  --vadu-sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --vadu-ease: cubic-bezier(.22,.61,.36,1);
  /* Ancho del sitio: un solo lugar. Todo (header, hero, secciones, footer) se alinea a esto. */
  --vadu-max: 1680px;
  --vadu-gutter: clamp(16px, 4.5vw, 96px);
}

.vadu-wrap{ max-width:var(--vadu-max); margin:0 auto; padding-left:var(--vadu-gutter); padding-right:var(--vadu-gutter); }
.vadu-kicker{ font-family:var(--vadu-sans); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--vadu-taupe); margin:0 0 .9rem; }

/* --- Barra superior ------------------------------------------------------ */
.vadu-topbar{ background:var(--vadu-ink); color:var(--vadu-ivory); font-family:var(--vadu-sans); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
.vadu-topbar__inner{ display:flex; justify-content:space-between; align-items:center; gap:1rem; min-height:36px; }
.vadu-topbar__text{ margin:0; display:flex; align-items:center; gap:.7rem; }
.vadu-topbar__mail{ color:var(--vadu-ivory); text-decoration:none; text-transform:none; letter-spacing:.04em; opacity:.8; transition:opacity .3s, color .3s; }
.vadu-topbar__mail:hover{ color:var(--vadu-gold); opacity:1; }
.vadu-dot{ width:7px; height:7px; border-radius:50%; background:var(--vadu-gold); position:relative; flex:none; }
.vadu-dot::after{ content:""; position:absolute; inset:0; border-radius:50%; background:var(--vadu-gold); animation:vadu-pulse 2.4s var(--vadu-ease) infinite; }
@keyframes vadu-pulse{ 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(3); opacity:0; } }

/* --- Barra principal ----------------------------------------------------- */
.vadu-header{ position:sticky; top:0; z-index:100; background:color-mix(in srgb, var(--vadu-ivory) 88%, transparent);
  backdrop-filter:saturate(1.2) blur(12px); -webkit-backdrop-filter:saturate(1.2) blur(12px);
  border-bottom:1px solid transparent; transition:transform .45s var(--vadu-ease), border-color .3s, background .3s; }
.admin-bar .vadu-header{ top:32px; }
.vadu-header.is-scrolled{ border-bottom-color:color-mix(in srgb, var(--vadu-ink) 10%, transparent); }
.vadu-header.is-hidden{ transform:translateY(-100%); }
.vadu-header__inner{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; min-height:92px; transition:min-height .35s var(--vadu-ease); }
.vadu-header.is-scrolled .vadu-header__inner{ min-height:68px; }

.vadu-logo{ display:block; justify-self:center; line-height:0; }
.vadu-logo__img{ width:auto; height:54px; transition:height .35s var(--vadu-ease); }
.vadu-header.is-scrolled .vadu-logo__img{ height:40px; }
.vadu-logo__text{ font-family:var(--vadu-serif); font-size:2rem; color:var(--vadu-ink); line-height:1; }

.vadu-nav__list{ list-style:none; margin:0; padding:0; display:flex; gap:2rem; }
.vadu-nav__list a{ position:relative; font-family:var(--vadu-sans); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--vadu-ink); text-decoration:none; padding:.4rem 0; }
.vadu-nav__list a::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--vadu-gold); transform:scaleX(0); transform-origin:right; transition:transform .45s var(--vadu-ease); }
.vadu-nav__list a:hover::after, .vadu-nav__list .current-menu-item > a::after{ transform:scaleX(1); transform-origin:left; }

.vadu-header__actions{ justify-self:end; display:flex; align-items:center; gap:1.4rem; }
.vadu-cta{ display:inline-flex; align-items:center; gap:.6rem; padding:.8rem 1.3rem; border:1px solid var(--vadu-ink); color:var(--vadu-ink); text-decoration:none;
  font-family:var(--vadu-sans); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; position:relative; overflow:hidden; isolation:isolate; transition:color .45s var(--vadu-ease); }
.vadu-cta::before{ content:""; position:absolute; inset:0; background:var(--vadu-ink); transform:translateY(101%); transition:transform .45s var(--vadu-ease); z-index:-1; }
.vadu-cta:hover{ color:var(--vadu-ivory); }
.vadu-cta:hover::before{ transform:translateY(0); }
.vadu-arrow{ transition:transform .45s var(--vadu-ease); }
.vadu-cta:hover .vadu-arrow{ transform:translateX(4px); }

.vadu-burger{ display:inline-flex; align-items:center; gap:.7rem; background:none; border:0; padding:.5rem 0; cursor:pointer; color:var(--vadu-ink);
  font-family:var(--vadu-sans); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; }
.vadu-burger:hover, .vadu-burger:focus{ background:none; color:var(--vadu-ink); }
.vadu-burger__lines{ display:grid; gap:6px; width:26px; }
.vadu-burger__lines i{ display:block; height:1px; background:currentColor; transition:transform .45s var(--vadu-ease), width .45s var(--vadu-ease); }
.vadu-burger__lines i:last-child{ width:65%; justify-self:end; }
.vadu-burger:hover .vadu-burger__lines i:last-child{ width:100%; }

/* --- Menú de pantalla completa ------------------------------------------ */
.vadu-overlay{ position:fixed; inset:0; z-index:1000; background:var(--vadu-ink); color:var(--vadu-ivory); display:flex; flex-direction:column; overflow-y:auto;
  clip-path:inset(0 0 100% 0); transition:clip-path .7s var(--vadu-ease); }
.vadu-overlay[hidden]{ display:none; }
.vadu-overlay.is-open{ clip-path:inset(0 0 0 0); }
.vadu-overlay__top{ display:flex; justify-content:space-between; align-items:center; min-height:92px; width:100%; }
.vadu-logo--light .vadu-logo__img{ filter:invert(1); height:44px; }
.vadu-close{ display:inline-flex; align-items:center; gap:.8rem; background:none; border:0; color:var(--vadu-ivory); cursor:pointer;
  font-family:var(--vadu-sans); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; padding:.5rem 0; }
.vadu-close:hover, .vadu-close:focus{ background:none; color:var(--vadu-gold); }
.vadu-close__x{ position:relative; width:22px; height:22px; }
.vadu-close__x::before, .vadu-close__x::after{ content:""; position:absolute; top:50%; left:0; right:0; height:1px; background:currentColor; transition:transform .45s var(--vadu-ease); }
.vadu-close__x::before{ transform:rotate(45deg); }
.vadu-close__x::after{ transform:rotate(-45deg); }
.vadu-close:hover .vadu-close__x::before{ transform:rotate(135deg); }
.vadu-close:hover .vadu-close__x::after{ transform:rotate(45deg); }

.vadu-overlay__body{ flex:1; width:100%; display:grid; grid-template-columns:1.6fr 1fr; gap:4rem; align-items:center; padding-top:2rem; padding-bottom:3rem; }
.vadu-overlay__list{ list-style:none; margin:0; padding:0; counter-reset:vadu; }
.vadu-overlay__list li{ counter-increment:vadu; border-top:1px solid color-mix(in srgb, var(--vadu-ivory) 14%, transparent);
  opacity:0; transform:translateY(24px); transition:opacity .6s var(--vadu-ease), transform .6s var(--vadu-ease); transition-delay:calc(.25s + var(--i, 0) * .07s); }
.vadu-overlay__list li:last-child{ border-bottom:1px solid color-mix(in srgb, var(--vadu-ivory) 14%, transparent); }
.vadu-overlay.is-open .vadu-overlay__list li{ opacity:1; transform:none; }
.vadu-overlay__list a{ display:grid; grid-template-columns:3.2rem 1fr; align-items:baseline; column-gap:1rem; padding:1.1rem 0; color:var(--vadu-ivory); text-decoration:none;
  font-family:var(--vadu-serif); font-weight:300; font-size:clamp(2.2rem, 5.4vw, 4.6rem); line-height:1; transition:color .4s var(--vadu-ease), padding .4s var(--vadu-ease); }
.vadu-overlay__list a::before{ content:counter(vadu, decimal-leading-zero); font-family:var(--vadu-sans); font-size:.72rem; letter-spacing:.16em; color:var(--vadu-taupe); align-self:center; }
.vadu-overlay__list a:hover, .vadu-overlay__list .current-menu-item > a{ color:var(--vadu-gold); font-style:italic; padding-left:.6rem; }
.vadu-overlay__desc{ grid-column:2; display:block; font-family:var(--vadu-sans); font-style:normal; font-size:.82rem; letter-spacing:.02em; color:var(--vadu-taupe); margin-top:.5rem; line-height:1.4; }

.vadu-overlay__aside{ opacity:0; transform:translateY(16px); transition:opacity .6s var(--vadu-ease) .55s, transform .6s var(--vadu-ease) .55s; }
.vadu-overlay.is-open .vadu-overlay__aside{ opacity:1; transform:none; }
.vadu-overlay__quote{ font-family:var(--vadu-serif); font-weight:300; font-size:clamp(1.6rem, 2.6vw, 2.3rem); line-height:1.15; margin:0 0 2.5rem; color:var(--vadu-ivory); }
.vadu-overlay__quote em{ color:var(--vadu-gold); }
.vadu-overlay__contact{ display:grid; gap:.5rem; margin-bottom:2rem; }
.vadu-overlay__contact a, .vadu-socials a{ color:var(--vadu-ivory); text-decoration:none; font-family:var(--vadu-sans); font-size:.95rem; width:max-content; border-bottom:1px solid transparent; transition:border-color .3s, color .3s; }
.vadu-overlay__contact a:hover, .vadu-socials a:hover{ color:var(--vadu-gold); border-bottom-color:var(--vadu-gold); }
.vadu-socials{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:1.4rem; }

body.vadu-lock{ overflow:hidden; }

/* --- Footer ------------------------------------------------------------- */
.vadu-footer{ background:var(--vadu-ink); color:var(--vadu-ivory); overflow:hidden; margin-top:0; }
.vadu-footer a{ color:inherit; }
.vadu-footer__cta{ padding-top:clamp(4rem, 9vw, 8rem); padding-bottom:clamp(3rem, 6vw, 5rem); border-bottom:1px solid color-mix(in srgb, var(--vadu-ivory) 14%, transparent); }
.vadu-footer__big{ display:flex; align-items:center; justify-content:space-between; gap:2rem; text-decoration:none; color:var(--vadu-ivory);
  font-family:var(--vadu-serif); font-weight:300; font-size:clamp(2.6rem, 7vw, 6.4rem); line-height:1; letter-spacing:-.01em; }
.vadu-footer__big em{ color:var(--vadu-gold); }
.vadu-footer__circle{ flex:none; display:grid; place-items:center; width:clamp(64px, 9vw, 120px); aspect-ratio:1; border-radius:50%; border:1px solid var(--vadu-gold);
  font-family:var(--vadu-sans); font-size:clamp(1.2rem, 2vw, 1.8rem); color:var(--vadu-gold); transition:background .45s var(--vadu-ease), color .45s var(--vadu-ease), transform .45s var(--vadu-ease); }
.vadu-footer__big:hover .vadu-footer__circle{ background:var(--vadu-gold); color:var(--vadu-ink); transform:rotate(-45deg); }

.vadu-footer__grid{ display:grid; grid-template-columns:1.5fr 1fr 1.2fr 1.2fr; gap:3rem; padding-top:4rem; padding-bottom:3rem; }
.vadu-footer__logo{ filter:invert(1); height:52px; width:auto; margin-bottom:1.4rem; }
.vadu-footer__brand p{ font-family:var(--vadu-sans); font-size:.9rem; line-height:1.6; color:color-mix(in srgb, var(--vadu-ivory) 70%, transparent); max-width:30ch; margin:0; }
.vadu-footer__list{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.vadu-footer__list a{ font-family:var(--vadu-sans); font-size:.92rem; text-decoration:none; color:color-mix(in srgb, var(--vadu-ivory) 85%, transparent); transition:color .3s, padding .3s var(--vadu-ease); }
.vadu-footer__list a:hover{ color:var(--vadu-gold); padding-left:.35rem; }

.vadu-footer__word{ font-family:var(--vadu-serif); font-weight:300; font-size:clamp(7rem, 30vw, 28rem); line-height:.78; letter-spacing:-.02em; text-align:center;
  color:transparent; -webkit-text-stroke:1px color-mix(in srgb, var(--vadu-gold) 45%, transparent); user-select:none; margin-bottom:-.1em; }

.vadu-footer__bottom{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; padding-top:1.4rem; padding-bottom:1.6rem;
  border-top:1px solid color-mix(in srgb, var(--vadu-ivory) 14%, transparent); font-family:var(--vadu-sans); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--vadu-taupe); position:relative; background:var(--vadu-ink); }
.vadu-footer__bottom p{ margin:0; }
.vadu-totop{ text-decoration:none; color:var(--vadu-ivory) !important; }
.vadu-totop:hover{ color:var(--vadu-gold) !important; }

/* --- Celular y tablet --------------------------------------------------- */
@media (max-width: 1024px){
  .vadu-nav{ display:none; }
  .vadu-header__inner{ grid-template-columns:auto 1fr; min-height:72px; }
  .vadu-logo{ justify-self:start; }
  .vadu-logo__img{ height:42px; }
  .vadu-header.is-scrolled .vadu-logo__img{ height:34px; }
  .vadu-overlay__body{ grid-template-columns:1fr; gap:3rem; align-items:start; }
  .vadu-footer__grid{ grid-template-columns:1fr 1fr; }
  .vadu-footer__brand{ grid-column:1 / -1; }
}
@media (max-width: 640px){
  .vadu-topbar__mail{ display:none; }
  .vadu-topbar__inner{ justify-content:center; }
  .vadu-topbar{ font-size:.6rem; letter-spacing:.08em; }
  .vadu-topbar__text{ gap:.5rem; white-space:nowrap; }
  .vadu-cta{ display:none; }
  .vadu-overlay__top{ min-height:72px; }
  .vadu-overlay__list a{ grid-template-columns:2.2rem 1fr; }
  .vadu-footer__big{ flex-direction:column; align-items:flex-start; }
  .vadu-footer__grid{ grid-template-columns:1fr; gap:2.2rem; }
  .vadu-footer__bottom{ flex-direction:column; align-items:flex-start; }
}
@media (max-width: 782px){ .admin-bar .vadu-header{ top:46px; } }

@media (prefers-reduced-motion: reduce){
  .vadu-overlay, .vadu-overlay__list li, .vadu-overlay__aside, .vadu-header{ transition:none !important; }
  .vadu-dot::after{ animation:none; }
}

/* Submenú dentro del menú de pantalla completa (servicios y casos) */
.vadu-overlay__list .sub-menu{ list-style:none; margin:-.2rem 0 1.2rem; padding:0 0 0 4.2rem; display:flex; flex-wrap:wrap; gap:.3rem 1.6rem; }
.vadu-overlay__list .sub-menu li{ counter-increment:none; border:0 !important; opacity:1; transform:none; transition:none; }
.vadu-overlay__list .sub-menu a{ display:inline-block; padding:.2rem 0; font-family:var(--vadu-sans); font-size:.86rem; font-weight:400; letter-spacing:.02em; line-height:1.4; color:color-mix(in srgb, var(--vadu-ivory) 70%, transparent); }
.vadu-overlay__list .sub-menu a::before{ content:none; }
.vadu-overlay__list .sub-menu a:hover, .vadu-overlay__list .sub-menu .current-menu-item > a{ color:var(--vadu-gold); font-style:normal; padding-left:0; }
@media (max-width: 640px){ .vadu-overlay__list .sub-menu{ padding-left:3.2rem; } }

/* Pantallas grandes: el texto crece un poco para que la proporción se mantenga */
@media (min-width: 1800px){ html{ font-size:17.5px; } }
@media (min-width: 2300px){ html{ font-size:19px; } :root{ --vadu-max: 1920px; } }

/* --- Megamenú discreto (solo escritorio) ------------------------------- */
.vadu-mega{ position:absolute; left:0; right:0; top:100%; background:var(--vadu-ivory); border-top:1px solid color-mix(in srgb, var(--vadu-ink) 10%, transparent);
  border-bottom:1px solid color-mix(in srgb, var(--vadu-ink) 10%, transparent); box-shadow:0 24px 40px -28px rgba(28,27,26,.28);
  opacity:0; transform:translateY(-6px); transition:opacity .35s var(--vadu-ease), transform .35s var(--vadu-ease); }
.vadu-mega[hidden]{ display:none; }
.vadu-mega.is-open{ opacity:1; transform:none; }
.vadu-mega__inner{ display:grid; grid-template-columns:minmax(220px, 1fr) 3fr; gap:clamp(2rem, 4vw, 4rem); padding-top:2.2rem; padding-bottom:2.4rem; }
.vadu-mega__title{ font-family:var(--vadu-serif); font-weight:300; font-size:1.9rem; line-height:1.1; color:var(--vadu-ink); margin:0 0 1.2rem; }
.vadu-mega__title em{ color:var(--vadu-taupe); }
.vadu-mega__all{ font-family:var(--vadu-sans); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--vadu-ink); text-decoration:none; border-bottom:1px solid var(--vadu-gold); padding-bottom:.25rem; }
.vadu-mega__list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, 1fr); gap:0; }
.vadu-mega__list li{ border-left:1px solid color-mix(in srgb, var(--vadu-ink) 10%, transparent); }
.vadu-mega__list a{ display:flex; flex-direction:column; gap:.45rem; height:100%; padding:.2rem 1.4rem .4rem; text-decoration:none; color:var(--vadu-ink); }
.vadu-mega__num{ font-family:var(--vadu-sans); font-size:.68rem; letter-spacing:.2em; color:var(--vadu-taupe); margin-bottom:.6rem; }
.vadu-mega__name{ font-family:var(--vadu-serif); font-size:1.35rem; line-height:1.15; transition:color .3s; }
.vadu-mega__desc{ font-family:var(--vadu-sans); font-size:.84rem; line-height:1.5; color:color-mix(in srgb, var(--vadu-ink) 62%, transparent); }
.vadu-mega__list a:hover .vadu-mega__name, .vadu-mega__list a:focus-visible .vadu-mega__name{ font-style:italic; color:var(--vadu-taupe); }
.vadu-mega__img{ display:block; overflow:hidden; aspect-ratio:4/3; margin-bottom:.6rem; background:var(--vadu-beige); }
.vadu-mega__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--vadu-ease); }
.vadu-mega__list a:hover .vadu-mega__img img{ transform:scale(1.05); }
/* Indicador discreto en el ítem que abre panel */
.vadu-nav__list a[data-vadu-mega]{ padding-right:.9rem; }
.vadu-nav__list a[data-vadu-mega]::before{ content:""; position:absolute; right:0; top:50%; width:5px; height:5px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:translateY(-70%) rotate(45deg); transition:transform .3s var(--vadu-ease); opacity:.6; }
.vadu-nav__list a[aria-expanded="true"]::before{ transform:translateY(-30%) rotate(225deg); }
.vadu-nav__list a[aria-expanded="true"]::after{ transform:scaleX(1); transform-origin:left; }
/* Descripciones de subítems: solo en el megamenú, no en el menú de pantalla completa */
.vadu-overlay__list .sub-menu .vadu-overlay__desc{ display:none; }
@media (max-width: 1024px){ .vadu-mega{ display:none !important; } }
@media (prefers-reduced-motion: reduce){ .vadu-mega{ transition:none; } }

/* ==========================================================================
   Menú en celular y tablet (≤1024 px) · rediseño 2026-09-28
   Marfil, lista compacta, subpáginas en acordeón y «Hablemos» fijo abajo.
   ========================================================================== */
.vadu-sub-toggle, .vadu-overlay__mobile{ display:none; }
@media (max-width: 1024px){
  .vadu-overlay{ background:var(--vadu-ivory); color:var(--vadu-ink); }
  .vadu-overlay__top{ min-height:72px; border-bottom:1px solid color-mix(in srgb, var(--vadu-ink) 10%, transparent); }
  .vadu-logo--light .vadu-logo__img{ filter:none; height:36px; }
  .vadu-close{ color:var(--vadu-ink); }
  .vadu-close:hover, .vadu-close:focus{ color:var(--vadu-taupe); }
  .vadu-overlay__body{ display:flex; flex-direction:column; align-items:stretch; gap:0; padding-top:.6rem; padding-bottom:0; }
  .vadu-overlay__aside{ display:none; }

  .vadu-overlay__list li{ border-top:0; border-bottom:1px solid color-mix(in srgb, var(--vadu-ink) 10%, transparent); position:relative; }
  .vadu-overlay__list li:last-child{ border-bottom:1px solid color-mix(in srgb, var(--vadu-ink) 10%, transparent); }
  .vadu-overlay__list a{ grid-template-columns:2.2rem 1fr; padding:.95rem 3.2rem .95rem 0; font-size:clamp(1.9rem, 8.4vw, 2.5rem); color:var(--vadu-ink); }
  .vadu-overlay__list a::before{ color:var(--vadu-taupe); }
  .vadu-overlay__list a:hover, .vadu-overlay__list .current-menu-item > a, .vadu-overlay__list .current-menu-ancestor > a{ color:var(--vadu-ink); font-style:italic; padding-left:0; }
  .vadu-overlay__desc{ display:none; }

  .vadu-sub-toggle{ display:grid; place-items:center; position:absolute; right:0; top:.9rem; width:2.6rem; height:2.6rem; border:1px solid color-mix(in srgb, var(--vadu-ink) 22%, transparent); border-radius:50%; background:none; padding:0; cursor:pointer; color:var(--vadu-ink); }
  .vadu-sub-toggle:hover, .vadu-sub-toggle:focus{ background:none; color:var(--vadu-ink); }
  .vadu-sub-toggle span, .vadu-sub-toggle span::after{ content:""; display:block; width:12px; height:1px; background:currentColor; transition:transform .35s var(--vadu-ease); }
  .vadu-sub-toggle span{ position:relative; }
  .vadu-sub-toggle span::after{ position:absolute; top:0; left:0; transform:rotate(90deg); }
  li.is-open > .vadu-sub-toggle span::after{ transform:rotate(0deg); }
  li.is-open > .vadu-sub-toggle{ background:var(--vadu-ink); color:var(--vadu-ivory); border-color:var(--vadu-ink); }

  /* Subpáginas en acordeón: cerradas por defecto, se abren con el «+» */
  .vadu-overlay__list .sub-menu{ display:flex; flex-direction:column; gap:0; margin:0; padding:0 0 0 3.2rem; max-height:0; overflow:hidden; transition:max-height .45s var(--vadu-ease), padding .45s var(--vadu-ease); }
  .vadu-overlay__list .sub-menu > li{ border:0 !important; }
  .vadu-overlay__list li.is-open > .sub-menu{ max-height:22rem; padding-bottom:.9rem; }
  .vadu-overlay__list .sub-menu a{ display:flex; justify-content:space-between; align-items:center; padding:.55rem 0; font-size:1rem; color:color-mix(in srgb, var(--vadu-ink) 78%, transparent); }
  .vadu-overlay__list .sub-menu a::after{ content:"→"; font-size:.9rem; color:var(--vadu-taupe); }
  .vadu-overlay__list .sub-menu a:hover{ color:var(--vadu-ink); font-style:normal; }

  .vadu-overlay__mobile{ display:grid; gap:1rem; margin-top:auto; padding:1.4rem 0 calc(1.4rem + env(safe-area-inset-bottom)); }
  .vadu-overlay__cta{ display:flex; justify-content:space-between; align-items:center; padding:1.05rem 1.3rem; background:var(--vadu-ink); color:var(--vadu-ivory); text-decoration:none; font-family:var(--vadu-sans); font-size:.8rem; letter-spacing:.18em; text-transform:uppercase; }
  .vadu-overlay__cta:hover{ color:var(--vadu-gold); }
  .vadu-overlay__meta{ display:flex; flex-wrap:wrap; gap:.4rem 1.4rem; font-family:var(--vadu-sans); font-size:.86rem; }
  .vadu-overlay__meta a{ color:color-mix(in srgb, var(--vadu-ink) 70%, transparent); text-decoration:none; }
  .vadu-overlay__meta a:hover{ color:var(--vadu-ink); }
}

/* ==========================================================================
   QA móvil · 2026-09-28: áreas táctiles de al menos 40 px y texto de al menos 11–12 px
   ========================================================================== */
@media (max-width: 640px){
  /* Barra superior: legible y en dos líneas si hace falta (no se desborda en 360 px) */
  .vadu-topbar{ font-size:11px; letter-spacing:.06em; }
  .vadu-topbar__inner{ min-height:0; padding-top:.55rem; padding-bottom:.55rem; }
  .vadu-topbar__text{ white-space:normal; justify-content:center; text-align:center; line-height:1.45; }
  /* Footer: enlaces con área táctil cómoda */
  .vadu-footer__list{ gap:0; }
  .vadu-footer__list a{ display:inline-flex; align-items:center; min-height:40px; }
  .vadu-footer__bottom{ font-size:.72rem; }
  .vadu-footer__bottom a, .vadu-totop{ display:inline-flex; align-items:center; min-height:40px; }
  .vadu-overlay__meta a{ display:inline-flex; align-items:center; min-height:40px; }
}

/* ==========================================================================
   Escritorio sin menú de pantalla completa · 2026-09-28
   La navegación + el megamenú ya cubren todo; el botón «Menú» queda solo en celular y tablet.
   ========================================================================== */
@media (min-width: 1025px){
  .vadu-burger{ display:none; }
  .vadu-overlay{ display:none !important; }
}
/* Foco: solo visible al navegar con teclado, con una línea fina dorada en lugar del azul del navegador */
.vadu-header a:focus:not(:focus-visible), .vadu-overlay a:focus:not(:focus-visible), .vadu-overlay button:focus:not(:focus-visible), .vadu-mega a:focus:not(:focus-visible){ outline:none; }
.vadu-header a:focus-visible, .vadu-header button:focus-visible, .vadu-overlay a:focus-visible, .vadu-overlay button:focus-visible, .vadu-mega a:focus-visible{ outline:1px solid var(--vadu-gold); outline-offset:4px; }
/* Megamenú de Servicios con imagen: el número va sobre la imagen, discreto */
.vadu-mega__list a{ position:relative; }
.vadu-mega__img + .vadu-mega__num{ position:absolute; top:.6rem; left:2rem; margin:0; padding:.25rem .5rem; background:color-mix(in srgb, var(--vadu-ivory) 88%, transparent); color:var(--vadu-ink); }
.vadu-mega__img{ position:relative; }
.vadu-mega__img::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--vadu-ink) 10%, transparent); pointer-events:none; }

/* --- Acceso al portal de clientes · 2026-09-28 ------------------------- */
.vadu-portal-link{ display:inline-flex; align-items:center; gap:.5rem; color:var(--vadu-ink); text-decoration:none; font-family:var(--vadu-sans); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; padding:.5rem 0; position:relative; white-space:nowrap; }
.vadu-portal-link svg{ flex:none; transition:transform .45s var(--vadu-ease); }
.vadu-portal-link span{ position:relative; }
.vadu-portal-link span::after{ content:""; position:absolute; left:0; right:0; bottom:-3px; height:1px; background:var(--vadu-gold); transform:scaleX(0); transform-origin:right; transition:transform .45s var(--vadu-ease); }
.vadu-portal-link:hover span::after, .vadu-portal-link:focus-visible span::after{ transform:scaleX(1); transform-origin:left; }
.vadu-portal-link:hover svg{ transform:translateY(-1px); }
@media (max-width: 1180px) and (min-width: 1025px){ .vadu-header__actions{ gap:1rem; } }
@media (max-width: 640px){
  /* Celular: solo el ícono, en un círculo táctil junto a «Menú» */
  .vadu-portal-link{ width:40px; height:40px; justify-content:center; border:1px solid color-mix(in srgb, var(--vadu-ink) 22%, transparent); border-radius:50%; padding:0; }
  .vadu-portal-link span{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .vadu-header__actions{ gap:1rem; }
}
.vadu-overlay__portal{ font-weight:600; }
