:root{--csv-ai-navy:#06172b;--csv-ai-blue:#0a477b;--csv-ai-orange:#ed6b21;--csv-ai-gold:#e8bd68}
.csv-ai{position:fixed;left:max(16px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom));z-index:9988;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#fff;pointer-events:none}
.csv-ai__launcher,.csv-ai__panel{pointer-events:auto}.csv-ai__launcher{display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.82);border-radius:999px;padding:5px;background:linear-gradient(145deg,#0e365d,#06172b);box-shadow:0 14px 34px rgba(6,23,43,.34),inset 0 1px 1px rgba(255,255,255,.25);color:#fff;cursor:pointer;max-width:300px}
.csv-ai__avatar{width:64px;height:64px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#fff,#e8f2fb 62%,#c7d7e7);border:2px solid var(--csv-ai-gold);flex:none}
.csv-ai__avatar img{width:100%;height:112%;object-fit:contain;object-position:50% 9%;transition:opacity .18s ease,transform .18s ease}
.csv-ai__teaser{display:grid;text-align:left;padding-right:12px;max-width:205px;overflow:hidden;transition:max-width .22s ease,opacity .2s ease,padding .22s ease}.csv-ai__teaser strong{font-size:13px}.csv-ai__teaser span{font-size:12px;color:#dceaf5}
.csv-ai--quiet .csv-ai__teaser,.csv-ai--closed .csv-ai__teaser{max-width:0;opacity:0;padding:0}.csv-ai__panel{position:absolute;left:0;bottom:78px;width:min(390px,calc(100vw - 32px));max-height:min(650px,calc(100dvh - 120px));display:none;grid-template-rows:auto auto 1fr auto;border-radius:24px;overflow:hidden;background:linear-gradient(155deg,rgba(8,37,65,.98),rgba(3,20,37,.99));border:1px solid rgba(255,255,255,.28);box-shadow:0 24px 70px rgba(0,0,0,.42);backdrop-filter:blur(18px)}
.csv-ai--open .csv-ai__panel{display:grid}.csv-ai__head{display:flex;align-items:center;gap:10px;padding:14px 14px 10px;border-bottom:1px solid rgba(255,255,255,.12)}.csv-ai__head strong{flex:1}.csv-ai__head select,.csv-ai__icon-btn{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:#fff;border-radius:12px;padding:7px}.csv-ai__icon-btn{width:38px;height:38px;cursor:pointer;font-size:19px}
.csv-ai__notice{padding:8px 14px;font-size:11px;color:#bfd0df;background:rgba(255,255,255,.05)}.csv-ai__notice a{color:#fff;text-decoration:underline}.csv-ai__messages{overflow:auto;padding:14px;min-height:190px;display:grid;align-content:start;gap:10px}.csv-ai__msg{max-width:88%;padding:10px 12px;border-radius:15px;font-size:14px;line-height:1.45;white-space:pre-wrap}.csv-ai__msg--bot{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.12)}.csv-ai__msg--user{justify-self:end;background:linear-gradient(135deg,#145f9d,#0a477b)}
.csv-ai__quick{display:flex;gap:7px;overflow-x:auto;padding:0 14px 10px;scrollbar-width:none}.csv-ai__quick button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;white-space:nowrap;border:1px solid rgba(232,189,104,.75);background:linear-gradient(145deg,#185f96,#0a3b67);color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important;filter:none!important;text-shadow:0 1px 2px rgba(0,0,0,.45);border-radius:999px;padding:7px 11px;font-weight:700;font-size:11px;line-height:1.2;cursor:pointer}.csv-ai__quick button:hover,.csv-ai__quick button:active{color:#fff!important;-webkit-text-fill-color:#fff!important;background:linear-gradient(145deg,#2175b4,#0d477a);filter:none!important;opacity:1!important}.csv-ai__quick button:focus-visible{outline:3px solid #fff;outline-offset:2px;color:#fff!important;-webkit-text-fill-color:#fff!important}
.csv-ai__form{display:grid;grid-template-columns:1fr auto auto;gap:7px;padding:11px;border-top:1px solid rgba(255,255,255,.13);background:rgba(0,0,0,.16)}.csv-ai__form input{min-width:0;border:1px solid rgba(255,255,255,.25);border-radius:14px;background:#fff;color:#06172b;padding:11px;font-size:16px}.csv-ai__send{border:0;border-radius:13px;background:linear-gradient(145deg,#ff8b3d,#d9500e);color:#fff;padding:0 13px;font-weight:850;cursor:pointer}.csv-ai__mic[aria-pressed=true]{background:#b51e31;box-shadow:0 0 0 4px rgba(255,90,100,.2)}
.csv-ai--suppressed{opacity:0;visibility:hidden;pointer-events:none}.csv-cert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:22px;margin-top:26px}.csv-cert-card{display:flex;flex-direction:column;align-self:start;border:1px solid rgba(255,255,255,.28);border-radius:26px;overflow:visible;background:#071c32;box-shadow:0 18px 44px rgba(6,23,43,.2);color:#fff;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}.csv-cert-card:hover{transform:translateY(-3px);box-shadow:0 24px 52px rgba(6,23,43,.3)}.csv-cert-card img{display:block;width:100%;height:auto;max-width:100%;aspect-ratio:auto;object-fit:contain;object-position:center;margin:0 auto;background:#fff;border-radius:25px 25px 0 0}.csv-cert-card__body{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.csv-cert-card__body span{color:#d5e4f0;font-size:13px}.csv-cert-card__body b{display:block;font-size:17px;margin-bottom:3px}
.csv-cert-modal{position:fixed;inset:0;z-index:10020;display:none;place-items:center;padding:20px;background:rgba(2,12,24,.88);backdrop-filter:blur(10px)}.csv-cert-modal[aria-hidden=false]{display:grid}.csv-cert-modal__dialog{position:relative;width:min(920px,96vw);height:min(92dvh,1100px);display:grid;grid-template-rows:auto 1fr;background:#07192c;border:1px solid rgba(255,255,255,.3);border-radius:22px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.55)}.csv-cert-modal__bar{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;color:#fff}.csv-cert-modal__bar button{border:1px solid rgba(255,255,255,.35);background:#fff;color:#06172b;border-radius:999px;padding:8px 13px;font-weight:800;cursor:pointer}.csv-cert-modal__stage{overflow:auto;padding:12px;background:#e8edf2;text-align:center}.csv-cert-modal__stage img{display:block;width:auto;max-width:100%;height:auto;margin:auto;box-shadow:0 8px 28px rgba(0,0,0,.2)}
@media(max-width:640px){.csv-ai{left:max(10px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom))}.csv-ai__avatar{width:56px;height:56px}.csv-ai__panel{position:fixed;inset:max(10px,env(safe-area-inset-top)) 8px max(10px,env(safe-area-inset-bottom));width:auto;max-height:none;border-radius:20px}.csv-ai__launcher{max-width:265px}.csv-cert-grid{grid-template-columns:1fr}.csv-cert-card img{height:auto;aspect-ratio:auto;object-fit:contain}.csv-cert-modal{padding:8px}.csv-cert-modal__dialog{width:100%;height:calc(100dvh - 16px);border-radius:16px}}
@media(max-width:360px){.csv-ai__teaser{display:none}.csv-ai__avatar{width:52px;height:52px}}
@media(prefers-reduced-motion:reduce){.csv-ai *,.csv-cert-card{animation:none!important;transition:none!important;scroll-behavior:auto!important}.csv-ai--state-changing :is(.csv-ai__avatar,.csv-ai__head-avatar) img{opacity:1!important;transform:none!important}}
.csv-ai--closed .csv-ai__launcher{display:grid}
.csv-ai__head{display:grid!important;grid-template-columns:52px minmax(0,1fr) auto auto auto}.csv-ai__head strong{min-width:0}.csv-ai__head select{width:58px;min-width:58px}.csv-ai__head .csv-ai__icon-btn{min-width:38px;padding:7px!important}.csv-ai__form>*{min-width:0}.csv-ai__form input{width:auto!important;max-width:none!important}.csv-ai__msg{overflow-wrap:anywhere}
.csv-ai__head-avatar{display:block;width:52px;height:54px;overflow:hidden;align-self:center;background:transparent}.csv-ai__head-avatar img{display:block;width:48px;height:auto;max-width:none;opacity:1;object-fit:initial;filter:drop-shadow(0 4px 4px rgba(0,0,0,.24));transition:opacity .18s ease,transform .18s ease}
.csv-ai--state-changing :is(.csv-ai__avatar,.csv-ai__head-avatar) img{opacity:.18!important;transform:translateY(2px) scale(.98)!important}
@media(max-width:640px){.csv-ai__panel{inset:max(64px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom))}}
.csv-ai__panel{grid-template-columns:minmax(0,1fr)}.csv-ai__panel>*{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.csv-ai__notice{white-space:normal!important;overflow-wrap:anywhere}.csv-ai__head strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.csv-ai__head select{background:#fff!important;color:#06172b!important}body:has(#csv-ai.csv-ai--open) .floatbar,body:has(#csv-ai.csv-ai--open) #csv-whatsapp-float{opacity:0!important;pointer-events:none!important}
.csv-ai__panel>div:nth-child(3){min-height:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr) auto}
.csv-ai__result{display:grid;gap:5px;margin:0 0 9px;padding:11px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.07)}.csv-ai__result:last-child{margin-bottom:0}.csv-ai__result strong{color:#fff;font-size:14px}.csv-ai__result>span{color:#dceaf5;font-size:12px}.csv-ai__actions{display:flex!important;flex-wrap:wrap;gap:7px;margin-top:5px}.csv-ai__action{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 10px;border:1px solid rgba(255,255,255,.6);border-radius:999px;background:#fff;color:#07335a!important;font-size:11px;font-weight:800;text-decoration:none}.csv-ai__action--call{background:#16854d;color:#fff!important;border-color:#75d3a2}.csv-ai__action:focus-visible{outline:3px solid #ffd978;outline-offset:2px}

/* Lanzador orgánico: la mascota se asoma sin marco ni fondo. */
.csv-ai__launcher{position:relative;display:grid;place-items:end center;width:102px;height:112px;min-width:102px;min-height:112px;padding:8px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible;color:#fff}
.csv-ai__launcher:hover,.csv-ai__launcher:active{background:transparent!important;box-shadow:none!important;transform:none!important}
.csv-ai__launcher:focus-visible{outline:3px solid #fff;outline-offset:2px;border-radius:18px!important;box-shadow:0 0 0 6px rgba(10,71,123,.42)!important}
.csv-ai__avatar{width:88px;height:98px;border:0!important;border-radius:0!important;overflow:hidden;background:transparent!important;box-shadow:none!important;display:block;transition:width .18s ease,height .18s ease}
.csv-ai__avatar img{display:block;width:88px;height:auto;max-width:none;object-fit:initial;object-position:initial;filter:drop-shadow(0 8px 8px rgba(3,18,32,.3));transform:translateY(0);transition:opacity .18s ease!important}
.csv-ai__teaser{position:absolute;left:96px;bottom:34px;display:grid;width:max-content;max-width:210px;padding:9px 12px!important;border:1px solid rgba(255,255,255,.72);border-radius:15px;background:rgba(6,23,43,.95);box-shadow:0 10px 26px rgba(6,23,43,.26);text-align:left;overflow:visible;opacity:1;transform:translateX(0);transition:opacity .2s ease,transform .2s ease,visibility .2s ease!important}
.csv-ai__teaser::before{content:"";position:absolute;left:-7px;bottom:17px;width:12px;height:12px;background:#06172b;border-left:1px solid rgba(255,255,255,.72);border-bottom:1px solid rgba(255,255,255,.72);transform:rotate(45deg)}
.csv-ai--quiet .csv-ai__teaser,.csv-ai--closed .csv-ai__teaser{max-width:210px;padding:9px 12px!important;opacity:0;visibility:hidden;transform:translateX(-5px)}
.csv-ai--quiet:not(.csv-ai--open) .csv-ai__avatar{width:80px;height:90px}.csv-ai--quiet:not(.csv-ai--open) .csv-ai__avatar img{width:80px}
@media(max-width:640px){.csv-ai__launcher{width:86px;height:96px;min-width:86px;min-height:96px;padding:6px!important}.csv-ai__avatar{width:74px;height:84px}.csv-ai__avatar img{width:74px}.csv-ai__teaser{left:81px;bottom:29px;max-width:min(205px,calc(100vw - 110px))}.csv-ai--quiet:not(.csv-ai--open) .csv-ai__avatar{width:66px;height:76px}.csv-ai--quiet:not(.csv-ai--open) .csv-ai__avatar img{width:66px}}
@media(max-width:640px){.csv-ai__head{grid-template-columns:50px minmax(0,1fr) 52px 38px 38px!important;gap:7px!important}.csv-ai__head-avatar{width:50px;height:52px}.csv-ai__head-avatar img{width:46px}}
@media(max-width:360px){.csv-ai__teaser{display:grid}.csv-ai__avatar{width:68px;height:78px}.csv-ai__avatar img{width:68px}}
.csv-ai--closed .csv-ai__launcher{display:grid!important}

/* La figura completa permanece visible en todas las poses y tamaños. */
.csv-ai__avatar img,.csv-ai__head-avatar img{width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain!important;object-position:center bottom!important}
.csv-ai__launcher::before,.csv-ai__launcher::after,.csv-ai__avatar::before,.csv-ai__avatar::after{content:none!important;display:none!important;background:none!important;box-shadow:none!important}.csv-ai__launcher,.csv-ai__avatar,.csv-ai__launcher img{background:none!important;background-image:none!important;box-shadow:none!important;filter:none!important}
.csv-ai__quick{flex-wrap:wrap;overflow-x:hidden;overflow-y:auto;max-height:118px}
.csv-ai--open .csv-ai__launcher{display:none!important}
@media(max-width:430px){.csv-ai__quick{max-height:none;overflow:visible}.csv-ai__quick button{max-width:100%;white-space:normal;text-align:center}.csv-ai__quick button[data-q="nearest"],.csv-ai__quick button[data-q="prices"],.csv-ai__quick button[data-q="services"]{flex:1 1 96px;min-width:0}}

.csv-cert-card--link{align-self:start;min-height:0;justify-content:center;background:linear-gradient(145deg,#0b3158,#06182d)}
.csv-cert-card--link .csv-cert-card__body{width:100%;min-height:116px}

/* Certificados: garantía móvil 320–430 px, por encima de estilos heredados. */
@media (min-width:320px) and (max-width:430px){
  #certificacion-aenor + .csv-cert-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    overflow:visible!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    animation:none!important;
  }
  #certificacion-aenor + .csv-cert-grid > .csv-cert-card{
    display:flex!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    padding:0!important;
    overflow:visible!important;
    align-self:start!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    animation:none!important;
  }
  #certificacion-aenor + .csv-cert-grid > .csv-cert-card--link{
    min-height:0!important;
  }
  #certificacion-aenor + .csv-cert-grid > .csv-cert-card--link > .csv-cert-card__body{
    min-height:104px!important;
  }
  #certificacion-aenor + .csv-cert-grid > .csv-cert-card > img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
    object-position:center!important;
    margin:0 auto!important;
    overflow:visible!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    animation:none!important;
  }
}

/* Asistente CSV: conversación compacta y estable en móvil. */
.csv-ai__panel{grid-template-rows:auto auto minmax(0,1fr) auto;width:min(380px,calc(100vw - 24px));max-height:min(620px,calc(100dvh - 96px));border:0!important;border-radius:18px;background:#071d33;box-shadow:0 14px 38px rgba(0,0,0,.28);backdrop-filter:none}
.csv-ai__head{grid-template-columns:38px minmax(0,1fr) 48px 32px 32px!important;gap:6px!important;min-height:48px;padding:6px 8px!important}.csv-ai__head-avatar{width:36px;height:36px}.csv-ai__head-avatar img{width:100%!important}.csv-ai__head strong{font-size:14px}.csv-ai__head select{width:48px!important;min-width:48px!important;height:32px;padding:3px!important;border-radius:9px}.csv-ai__head .csv-ai__icon-btn{width:32px!important;height:32px!important;min-width:32px!important;padding:2px!important;border-radius:9px;font-size:17px}
.csv-ai__notice{display:block;padding:3px 10px!important;background:rgba(255,255,255,.035);font-size:10px;line-height:1.35}.csv-ai__notice summary{width:max-content;cursor:pointer;color:#bfd0df}.csv-ai__notice span{display:block;padding:3px 0 5px;color:#bfd0df}.csv-ai__notice:not([open]) span{display:none}
.csv-ai__panel>div:nth-child(3){min-height:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr) auto}.csv-ai__messages{min-height:0!important;height:100%;overflow-y:auto;overscroll-behavior:contain;scroll-padding-bottom:20px;padding:12px 12px 20px;gap:9px;scrollbar-gutter:stable}.csv-ai__msg{max-width:91%;padding:9px 11px;border-radius:13px;line-height:1.46;background:rgba(255,255,255,.09)}.csv-ai__msg--user{background:#155a91}.csv-ai__msg--bot{border-color:rgba(255,255,255,.08)}
.csv-ai__quick{gap:6px;height:43px;min-height:43px;box-sizing:border-box;max-height:none!important;overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important;padding:5px 10px 8px;background:#071d33}.csv-ai__quick[hidden]{display:flex!important;visibility:hidden}.csv-ai__quick button{flex:0 0 auto!important;min-height:30px;padding:5px 9px;border-color:rgba(255,255,255,.3);border-radius:999px;background:#0d3b63!important;box-shadow:none!important;text-shadow:none!important;font-size:10px;font-weight:700}.csv-ai__quick button::before,.csv-ai__quick button::after,.csv-ai__send::before,.csv-ai__send::after,.csv-ai__icon-btn::before,.csv-ai__icon-btn::after{content:none!important;display:none!important}.csv-ai__quick button:hover,.csv-ai__quick button:active{background:#145886!important}
.csv-ai__form{position:sticky;bottom:0;z-index:2;grid-template-columns:minmax(0,1fr) 38px 38px;gap:5px;padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#06172b}.csv-ai__form input{height:40px;padding:8px 10px;border-radius:11px}.csv-ai__form .csv-ai__mic,.csv-ai__send{width:38px;height:38px;align-self:center;padding:0!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:10px!important;background:#0d3b63!important;box-shadow:none!important;text-shadow:none!important;filter:none!important;font-size:15px}.csv-ai__send{color:#fff;font-size:18px;font-weight:800}.csv-ai__head .csv-ai__icon-btn{background:#0d3b63!important;border-color:rgba(255,255,255,.22)!important;box-shadow:none!important;text-shadow:none!important;filter:none!important}.csv-ai__mic[aria-pressed=true]{background:#8f2940!important;box-shadow:none!important}
.csv-ai__panel:has(.csv-ai__messages>.csv-ai__msg:only-child)>div:nth-child(3){grid-template-rows:auto auto;align-self:center;overflow:visible}.csv-ai__panel:has(.csv-ai__messages>.csv-ai__msg:only-child) .csv-ai__messages{height:auto;padding-bottom:8px}.csv-ai__panel:has(.csv-ai__messages>.csv-ai__msg:only-child) .csv-ai__quick{padding-top:0}
@media(max-width:640px){.csv-ai{left:auto;right:max(8px,env(safe-area-inset-right));bottom:calc(max(8px,env(safe-area-inset-bottom)) + 148px)}.csv-ai__launcher{width:64px;height:74px;min-width:64px;min-height:74px;padding:3px!important}.csv-ai__avatar,.csv-ai--quiet:not(.csv-ai--open) .csv-ai__avatar{width:58px;height:68px}.csv-ai__avatar img,.csv-ai--quiet:not(.csv-ai--open) .csv-ai__avatar img{width:58px}.csv-ai__teaser{display:none!important}.csv-ai__panel{inset:max(8px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));height:calc(100dvh - max(14px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));max-height:none;border-radius:16px}.csv-ai__panel:has(.csv-ai__messages>.csv-ai__msg:only-child){top:auto;height:auto;min-height:0}.csv-ai__head{grid-template-columns:36px minmax(0,1fr) 46px 32px 32px!important}.csv-ai__messages{padding:11px 11px 20px}.csv-ai__msg{font-size:15px;line-height:1.42}.csv-ai__quick{padding-inline:8px}}
@supports(height:100svh){@media(max-width:640px){.csv-ai__panel{height:calc(100svh - max(14px,env(safe-area-inset-top) + env(safe-area-inset-bottom)))}}}
