/* Aviso de cookies + botón de accesibilidad (abajo a la derecha). Compartido por index.html y privacidad.html */
.plw-skip{position:fixed;left:1rem;top:-4rem;z-index:100;background:#fff;color:#0b1a10;font-weight:700;padding:.7rem 1.1rem;border-radius:.6rem;box-shadow:0 8px 30px rgba(0,0,0,.35);text-decoration:none;transition:top .2s}
.plw-skip:focus{top:1rem}

.plw{--plw-bg:#0f2040;--plw-fg:#f3f7ff;--plw-mute:rgba(228,236,250,.78);--plw-line:rgba(255,255,255,.2);--plw-acc:#a3dc54;--plw-acc-d:#4e8a18;font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px;line-height:1.5;color:var(--plw-fg)}
.plw *,.plw *::before,.plw *::after{box-sizing:border-box}
.plw button{font:inherit;color:inherit;cursor:pointer}
.plw a{color:var(--plw-acc);text-underline-offset:.18em}
.plw :focus-visible{outline:3px solid #ffd54a;outline-offset:2px}
.plw [hidden]{display:none!important}

/* botón flotante */
.plw-fab{position:fixed;left:max(1rem,env(safe-area-inset-left,0px));bottom:max(1rem,env(safe-area-inset-bottom,0px));z-index:62;width:3.5rem;height:3.5rem;border-radius:50%;border:2px solid #fff;background:linear-gradient(135deg,#2a5aa8,#1e3a6e);display:grid;place-items:center;box-shadow:0 14px 30px -10px rgba(10,30,70,.75);transition:transform .3s cubic-bezier(.2,.7,.1,1),box-shadow .3s,background .3s}
.plw-fab:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 20px 36px -10px rgba(10,30,70,.85)}
.plw-fab svg{width:1.75rem;height:1.75rem;color:#fff}
.plw-fab[aria-expanded=true]{background:linear-gradient(135deg,#6aaa2a,#4e8a18)}

/* panel de accesibilidad */
.plw-panel{position:fixed;left:max(1rem,env(safe-area-inset-left,0px));bottom:calc(max(1rem,env(safe-area-inset-bottom,0px)) + 4.3rem);z-index:64;width:min(23.5rem,calc(100vw - 2rem));max-height:calc(100vh - 7rem);max-height:calc(100dvh - 7rem);overflow:auto;background:var(--plw-bg);border:1px solid var(--plw-line);border-radius:1.2rem;padding:1.1rem;box-shadow:0 30px 70px -20px rgba(0,0,0,.7);animation:plwIn .35s cubic-bezier(.2,.7,.1,1)}
@keyframes plwIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.plw-ph{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}
.plw-ph h2{font-size:1.15rem;font-weight:700;letter-spacing:.01em;margin:0}
.plw-x{width:2.2rem;height:2.2rem;border-radius:50%;border:1px solid var(--plw-line);background:transparent;display:grid;place-items:center;font-size:1.2rem;line-height:1}
.plw-x:hover{background:rgba(255,255,255,.12)}
.plw-sec{margin:.9rem 0 .45rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--plw-mute);font-weight:700}
.plw-size{display:grid;grid-template-columns:3rem 1fr 3rem;gap:.5rem;align-items:center}
.plw-size button{height:2.8rem;border-radius:.7rem;border:1px solid var(--plw-line);background:rgba(255,255,255,.07);font-weight:700;font-size:1.05rem}
.plw-size button:hover:not(:disabled){background:rgba(255,255,255,.16)}
.plw-size button:disabled{opacity:.35;cursor:not-allowed}
.plw-size output{text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.plw-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.plw-t{display:flex;align-items:center;gap:.6rem;text-align:left;min-height:3rem;padding:.55rem .7rem;border-radius:.8rem;border:1px solid var(--plw-line);background:rgba(255,255,255,.06);font-size:.86rem;font-weight:500;line-height:1.2;transition:background .25s,border-color .25s}
.plw-t:hover{background:rgba(255,255,255,.14)}
.plw-t i{flex:none;width:1.9rem;height:1.1rem;border-radius:999px;background:rgba(255,255,255,.22);position:relative;transition:background .25s}
.plw-t i::after{content:"";position:absolute;left:.15rem;top:.15rem;width:.8rem;height:.8rem;border-radius:50%;background:#fff;transition:transform .25s}
.plw-t[aria-pressed=true]{background:rgba(163,220,84,.16);border-color:var(--plw-acc)}
.plw-t[aria-pressed=true] i{background:var(--plw-acc)}
.plw-t[aria-pressed=true] i::after{transform:translateX(.8rem);background:#0b1a10}
.plw-voice{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.plw-b{min-height:2.9rem;padding:.5rem .8rem;border-radius:.8rem;border:1px solid var(--plw-line);background:rgba(255,255,255,.08);font-weight:700;font-size:.88rem}
.plw-b:hover{background:rgba(255,255,255,.18)}
.plw-b.main{background:var(--plw-acc);border-color:var(--plw-acc);color:#0b1a10}
.plw-b.main:hover{background:#b9ec72}
.plw-pf{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--plw-line);font-size:.85rem}
.plw-status{min-height:1.2rem;margin:.6rem 0 0;font-size:.82rem;color:var(--plw-mute)}

/* aviso de cookies: banda a lo largo de la parte inferior */
.plw-ck{position:fixed;left:max(25vw,4.9rem);right:max(1rem,env(safe-area-inset-right,0px));bottom:max(1rem,env(safe-area-inset-bottom,0px));z-index:63;max-height:72vh;max-height:72dvh;overflow:auto;background:var(--plw-bg);border:1px solid var(--plw-line);border-radius:1.2rem;padding:1.1rem max(1.2rem,env(safe-area-inset-right,0px)) max(1.1rem,env(safe-area-inset-bottom,0px)) max(1.2rem,env(safe-area-inset-left,0px));box-shadow:0 18px 50px -12px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.04);animation:plwUp .5s .3s cubic-bezier(.2,.7,.1,1) both}
@keyframes plwUp{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}
.plw-ck-in{max-width:78rem;margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 2.2rem}
.plw-ck-txt{flex:1 1 30rem;min-width:0}
.plw-ck h2{margin:0 0 .3rem;font-size:1.05rem;font-weight:700}
.plw-ck p{margin:0;font-size:.9rem;color:var(--plw-mute)}
.plw-opts{flex:1 1 100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:.1rem 0}
.plw-sw{display:grid;grid-template-columns:auto 1fr;gap:.2rem .7rem;align-items:start;padding:.65rem .75rem;border:1px solid var(--plw-line);border-radius:.8rem;background:rgba(255,255,255,.06);font-weight:700;font-size:.9rem;cursor:pointer}
.plw-sw input{width:1.15rem;height:1.15rem;margin:.1rem 0 0;accent-color:#a3dc54}
.plw-sw small{grid-column:2;font-weight:400;font-size:.8rem;color:var(--plw-mute)}
.plw-cb{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:.5rem}
.plw-cb .plw-b{white-space:nowrap}

/* botón de ir arriba (a la derecha, después de Servicios) */
.plw-top{position:fixed;right:max(1rem,env(safe-area-inset-right,0px));bottom:calc(max(1rem,env(safe-area-inset-bottom,0px)) + var(--plw-ckh,0px));z-index:62;width:3.3rem;height:3.3rem;border-radius:50%;border:2px solid #fff;background:linear-gradient(135deg,#6aaa2a,#3f7a14);color:#fff;display:grid;place-items:center;box-shadow:0 14px 30px -10px rgba(30,70,10,.8);opacity:0;transform:translateY(14px) scale(.85);pointer-events:none;transition:opacity .35s,transform .35s cubic-bezier(.2,.7,.1,1),bottom .3s}
.plw-top.on{opacity:1;transform:none;pointer-events:auto}
.plw-top:hover{transform:translateY(-3px) scale(1.06)}
.plw-top svg{width:1.5rem;height:1.5rem}
.plw-top::before,.plw-top::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid rgba(140,200,67,.9);opacity:0;pointer-events:none}
.plw-top.on::before{animation:plwPulse 2.2s ease-out infinite}
.plw-top.on::after{animation:plwPulse 2.2s 1.1s ease-out infinite}
@keyframes plwPulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(2.2);opacity:0}}

/* guía de lectura */
.plw-guide{position:fixed;left:0;right:0;top:0;height:3.6rem;z-index:54;pointer-events:none;border-block:3px solid #ffd54a;box-shadow:0 0 0 200vmax rgba(0,0,0,.58);will-change:transform}

/* ---- modos de accesibilidad aplicados a la página ---- */
html.plw-fx :is(main,footer,#nav,#field){filter:var(--plw-fx)}
html.plw-links a:not(.plw a){text-decoration:underline!important;text-underline-offset:.2em;outline:2px solid #ffd54a;outline-offset:2px;background:rgba(255,213,74,.18)}
html.plw-cursor,html.plw-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 9-6.5 1.7L9.5 20z' fill='black' stroke='white' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 6 4,auto!important}
html.plw-font{--f-display:Arial,Helvetica,sans-serif;--f-body:Verdana,Tahoma,sans-serif;--f-mono:Verdana,Tahoma,sans-serif}
html.plw-font :is(.display,.scrub,.mod h3,.mod .n,.stat b,.sc-text h4,.pillar h4,.tile h5,.brand,.ghost,.ghost2,.ghost3,.trait h4){font-family:Arial,Helvetica,sans-serif!important;font-weight:700;letter-spacing:0!important;overflow-wrap:anywhere}
html.plw-font .h1{font-size:clamp(2.4rem,5.6vw,5rem)}
html.plw-font :is(.sec-head .display,.approach .display,.work-head .display){font-size:clamp(2rem,5vw,3.8rem)}
html.plw-font .scrub{font-size:clamp(1.9rem,5.4vw,4.4rem)}
html.plw-font .contact .big{font-size:clamp(2.1rem,6vw,5.2rem)}
html.plw-font .mod h3{font-size:clamp(1.5rem,3vw,2.4rem)}
html.plw-font .sc-text h4{font-size:clamp(1.8rem,3.6vw,3rem)}
html.plw-spacing :is(p,li,span,a,label,small,h1,h2,h3,h4,h5,button,input,textarea,select){letter-spacing:.05em!important;word-spacing:.16em!important}
html.plw-spacing :is(p,li){line-height:1.9!important}
html.a11y-motion{scroll-behavior:auto!important}
html.a11y-motion *,html.a11y-motion *::before,html.a11y-motion *::after{animation:none!important;transition:none!important}
html.a11y-motion .h1 .ln>span,html.a11y-motion .big .ln>span{transform:none!important}
html.a11y-motion .rv{opacity:1!important;transform:none!important}
html.a11y-motion .h1 .bb::after{transform:scaleX(1)!important}
html.a11y-motion .scrub span{opacity:1!important}
html.a11y-motion .sc-viz .bar{transform:none!important}
html.a11y-motion .sc-viz .draw{stroke-dashoffset:0!important}
html.a11y-motion .sc-viz .rip{opacity:0!important}
html.a11y-motion .ghost,html.a11y-motion .ghost2,html.a11y-motion .ghost3{transform:none!important}

@media (max-width:700px){
  .plw-grid{grid-template-columns:1fr}
  .plw-panel{width:calc(100vw - 2rem)}
  .plw-opts{grid-template-columns:1fr}
  .plw-cb{flex:1 1 100%}
  .plw-cb .plw-b{flex:1 1 auto}
}
@media (prefers-reduced-motion:reduce){.plw-panel,.plw-ck{animation:none}}
html.a11y-motion .plw-ck,html.a11y-motion .plw-panel,html.a11y-motion .plw-top::before,html.a11y-motion .plw-top::after{animation:none!important}

/* aislamiento frente a los estilos globales de la página */
.plw label.plw-sw{font-family:inherit;font-size:.9rem;font-weight:700;text-transform:none;letter-spacing:0;color:var(--plw-fg);line-height:1.35}
.plw .plw-sw span{font-family:inherit;text-transform:none;letter-spacing:0;color:var(--plw-fg)}
.plw .plw-sw small{font-family:inherit;text-transform:none;letter-spacing:0;font-size:.8rem;font-weight:400;color:var(--plw-mute)}
.plw input[type=checkbox]{width:1.15rem;height:1.15rem;min-width:0;padding:0;border:0;background:none;box-shadow:none;border-radius:0;accent-color:#a3dc54}
.plw :is(h2,p,small,span,button,output){text-transform:none}
.plw .plw-sec{text-transform:uppercase}
@media (max-width:700px){.plw-ck{padding-block:.9rem}.plw-ck p{font-size:.85rem}.plw-sw{padding:.55rem .65rem}}
