@layer components {
  .visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
  .footer-expanded { width:100%; margin:0; padding:64px 0 26px; border-top:1px solid var(--line); background:var(--ink); }
  .footer-lead { display:flex; justify-content:space-between; align-items:center; gap:36px; padding-bottom:36px; border-bottom:1px solid var(--line); }
  .footer-lead p { color:var(--muted); font-size:14px; margin-top:12px; }
  .footer-cta { border:0; padding:0; min-height:44px; font-size:18px; max-width:360px; }
  .footer-grid { display:grid; grid-template-columns:1.1fr .9fr 1.25fr .9fr; gap:36px; padding-block:42px; }
  .footer-grid>* { min-width:0; }
  .footer-grid h3 { font-size:16px; font-weight:700; line-height:1.3; margin-bottom:20px; color:var(--white); }
  .footer-grid p { color:var(--muted); font-size:14px; margin-bottom:15px; max-width:290px; }
  .footer-grid ul { list-style:none; margin:0; padding:0; display:grid; gap:7px; }
  .footer-grid a,.footer-preferences { display:inline-block; color:var(--muted); font-size:14px; line-height:1.5; padding-block:6px; overflow-wrap:anywhere; }
  .footer-grid a:hover,.footer-preferences:hover,.footer-base a:hover { color:var(--lime); }
  .footer-preferences { border:0; padding-inline:0; background:transparent; text-align:left; font-family:inherit; cursor:pointer; }
  .footer-base { display:flex; justify-content:space-between; align-items:center; gap:24px; border-top:1px solid var(--line); padding-top:24px; color:var(--muted); font-size:11px; }
  .footer-base a { min-height:32px; display:flex; align-items:center; gap:12px; white-space:nowrap; }
  .legal-page { padding-block:52px 96px; }
  .legal-heading { max-width:900px; padding-bottom:38px; }
  .legal-back { display:inline-block; color:var(--muted); font-size:13px; padding-block:8px; margin-bottom:32px; }
  .legal-heading .eyebrow { color:var(--lime); margin-bottom:20px; }
  .legal-heading h1 { font-size:clamp(40px,5vw,70px); letter-spacing:-2.5px; line-height:1.06; }
  .legal-heading>p:not(.eyebrow) { margin-top:22px; color:var(--muted); max-width:710px; font-size:18px; }
  .legal-heading .legal-updated { font-size:12px; }
  .legal-review { padding:22px 26px; border:1px solid var(--line); border-left:3px solid var(--lime); border-radius:var(--radius); background:var(--surface); margin-bottom:42px; }
  .legal-review strong { color:var(--lime); font-size:15px; }
  .legal-review p { font-size:14px; color:var(--muted); margin-top:7px; max-width:900px; }
  .legal-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:72px; align-items:start; }
  .legal-sidebar { position:sticky; top:125px; }
  .legal-sidebar nav { display:grid; gap:12px; border-left:1px solid var(--line); padding-left:22px; }
  .legal-sidebar nav a { font-size:14px; padding-block:6px; color:var(--muted); }
  .legal-sidebar nav a[aria-current=page] { color:var(--lime); }
  .legal-sidebar>p { font-size:13px; color:var(--muted); margin-top:28px; }
  .legal-sidebar a:hover { color:var(--lime); }
  .legal-content { max-width:820px; min-width:0; }
  .legal-content section { padding:0 0 32px; margin-bottom:32px; border-bottom:1px solid var(--line); scroll-margin-top:120px; }
  .legal-content h2 { font-size:28px; line-height:1.2; letter-spacing:-.6px; margin-bottom:20px; }
  .legal-content p { font-size:16px; line-height:1.85; color:var(--muted); margin-bottom:18px; }
  .legal-content p:last-child { margin-bottom:0; }
  .legal-content strong { color:var(--white); }
  .legal-content a { color:var(--lime); text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
  .legal-identity { margin:25px 0; display:grid; grid-template-columns:160px minmax(0,1fr); gap:12px 20px; padding:24px; border-radius:var(--radius); background:var(--surface); font-size:14px; line-height:1.6; }
  .legal-identity dt { font-weight:700; }
  .legal-identity dd { margin:0; color:var(--muted); overflow-wrap:anywhere; }
  .legal-table-wrap { overflow-x:auto; margin-block:24px; max-width:100%; }
  .legal-content table { width:100%; min-width:540px; border-collapse:collapse; font-size:14px; line-height:1.6; }
  .legal-content caption { text-align:left; color:var(--muted); margin-bottom:12px; }
  .legal-content th,.legal-content td { text-align:left; vertical-align:top; padding:18px; border:1px solid var(--line); }
  .legal-content th { background:var(--surface); color:var(--white); }
  .legal-content td { color:var(--muted); }
  .legal-content code { overflow-wrap:anywhere; font-size:12px; }
  .form-data-note { font-size:12px; line-height:1.6; margin-top:18px; color:var(--muted); }
  .form-data-note a { color:var(--lime); text-decoration:underline; text-underline-offset:3px; }
  .cookie-banner { position:fixed; z-index:40; left:24px; bottom:24px; width:min(750px,calc(100% - 48px)); max-height:min(75vh,calc(100vh - 150px)); max-height:min(75svh,calc(100svh - 150px)); overflow:auto; overscroll-behavior:contain; padding:27px 30px; background:var(--surface); color:var(--white); border:1px solid var(--line); border-top:3px solid var(--lime); border-radius:12px; box-shadow:0 18px 65px var(--ink); }
  .cookie-kicker { font:10px 'Courier New',monospace; letter-spacing:1.2px; color:var(--lime); margin-bottom:13px; }
  .cookie-banner h2,.cookie-dialog h2 { font-size:26px; letter-spacing:-.7px; line-height:1.2; margin-bottom:14px; }
  .cookie-banner>p:not(.cookie-kicker),.cookie-dialog>p { color:var(--muted); font-size:14px; line-height:1.65; }
  .cookie-policy-link,.cookie-dialog a { color:var(--lime); font-size:13px; text-decoration:underline; text-underline-offset:3px; }
  .cookie-policy-link { display:inline-block; padding-block:10px; }
  .cookie-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:16px; }
  .cookie-actions button { min-height:46px; padding:12px 14px; border:1px solid var(--line); background:var(--ink); color:var(--white); border-radius:6px; font-size:14px; line-height:1.4; font-weight:700; }
  .cookie-actions button:hover { background:var(--lime); border-color:var(--lime); color:var(--ink); }
  .cookie-dialog { width:min(660px,calc(100% - 32px)); max-height:85vh; max-height:85svh; overflow:auto; padding:30px; background:var(--surface); color:var(--white); border:1px solid var(--line); border-top:3px solid var(--lime); border-radius:12px; box-shadow:0 18px 65px var(--ink); }
  .cookie-dialog::backdrop { background:var(--ink); opacity:.85; }
  .cookie-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:10px; }
  .cookie-dialog-heading .cookie-kicker { margin:0; }
  .cookie-close { width:44px; height:44px; border:1px solid var(--line); background:var(--ink); color:var(--white); border-radius:6px; font-size:27px; }
  .cookie-category { margin-block:22px; padding-block:20px; border-block:1px solid var(--line); }
  .cookie-category label { display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:15px; font-weight:700; }
  .cookie-category input[type=checkbox] { accent-color:var(--lime); margin:0; }
  .cookie-category label span { margin-left:auto; font-size:11px; color:var(--muted); font-weight:400; }
  .cookie-category p { color:var(--muted); font-size:13px; margin-top:12px; }
}
@layer responsive {
  @media(max-width:1100px) { .footer-grid { grid-template-columns:1fr 1fr; gap:32px 48px; } .legal-layout { grid-template-columns:180px minmax(0,1fr); gap:40px; } }
  @media(max-width:800px) { .legal-content h2 { font-size:28px; letter-spacing:-.6px; } .cookie-banner h2,.cookie-dialog h2 { font-size:26px; letter-spacing:-.7px; } .footer-base { flex-wrap:wrap; } .legal-layout { grid-template-columns:1fr; gap:35px; } .legal-sidebar { position:static; } .legal-sidebar nav { display:flex; flex-wrap:wrap; gap:8px 24px; } .legal-sidebar>p { display:none; } }
  @media(max-width:600px) {
    .footer-expanded { padding-top:42px; padding-bottom:80px; }
    .footer-lead { flex-direction:column; align-items:flex-start; gap:24px; }
    .footer-cta { font-size:17px; width:100%; }
    .footer-grid { grid-template-columns:1fr; gap:30px; padding-block:30px; }
    .footer-grid h3 { margin-bottom:12px; }
    .footer-grid p { max-width:none; }
    .footer-base { align-items:flex-start; flex-direction:column; gap:12px; }
    .legal-page { padding-block:30px 60px; }
    .legal-heading { padding-bottom:30px; }
    .legal-heading h1 { font-size:40px; letter-spacing:-1.7px; }
    .legal-heading>p:not(.eyebrow) { font-size:16px; }
    .legal-heading .legal-updated { font-size:12px; }
    .legal-review { padding:20px; margin-bottom:30px; }
    .legal-content h2 { font-size:25px; }
    .legal-content p { font-size:15px; }
    .legal-identity { grid-template-columns:1fr; gap:5px; padding:20px; }
    .legal-identity dd { margin-bottom:12px; }
    .cookie-banner { left:12px; bottom:12px; width:calc(100% - 24px); padding:21px 20px; }
    .cookie-actions { grid-template-columns:1fr; gap:8px; }
    .cookie-banner h2,.cookie-dialog h2 { font-size:23px; }
    .cookie-dialog { padding:22px; }
    .cookie-category label span { margin-left:29px; }
  }
}

@layer components {
  .footer-grid .footer-whatsapp { display:inline-flex; align-items:center; gap:8px; }
  .footer-whatsapp-icon { flex:0 0 20px; }
  .footer-whatsapp-icon .brand-icon { width:20px; height:20px; object-fit:contain; }
  .floating-actions { position:fixed; right:max(24px,env(safe-area-inset-right)); bottom:max(24px,env(safe-area-inset-bottom),var(--floating-bottom,0px)); z-index:30; display:flex; flex-direction:column; align-items:flex-end; gap:12px; max-width:calc(100vw - 32px); }
  .floating-whatsapp,.floating-top { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; min-height:48px; border-radius:999px; box-shadow:0 4px 25px var(--ink); }
  .floating-whatsapp { gap:9px; padding:11px 18px; background:var(--lime); color:var(--ink); border:1px solid var(--lime); font-size:14px; font-weight:700; line-height:1.4; white-space:nowrap; transform-origin:center; animation:whatsapp-nudge 5s ease-in-out 1.2s infinite; }
  .floating-whatsapp .brand-icon { width:24px; height:24px; object-fit:contain; }
  .floating-top { width:48px; height:48px; background:var(--ink); color:var(--white); border:1px solid var(--line); font-size:28px; line-height:1; }
  .floating-whatsapp:hover,.floating-top:hover { outline:2px solid var(--lime); outline-offset:3px; }
}
@layer responsive {
  @media(max-width:600px) {
    .floating-actions { right:max(14px,env(safe-area-inset-right)); bottom:max(14px,env(safe-area-inset-bottom),var(--floating-bottom,0px)); gap:10px; }
    .floating-whatsapp { padding:10px 15px; }
    .footer-expanded { padding-bottom:140px; }
  }
}

@keyframes whatsapp-nudge {
  0%,18%,100% { transform:translateX(0) rotate(0); }
  3%,9% { transform:translateX(-2px) rotate(-3deg); }
  6%,12% { transform:translateX(2px) rotate(3deg); }
  15% { transform:translateX(-1px) rotate(-1deg); }
}
@layer components {
  .floating-whatsapp:hover,.floating-whatsapp:focus-visible { animation:none; transform:none; }
  .motion-paused .floating-whatsapp { animation:none; transform:none; }
}
@layer responsive {
  @media(prefers-reduced-motion:reduce) { .floating-whatsapp { animation:none!important; transform:none!important; } }
}
