.elementor-kit-14{--e-global-color-primary:#1B1918;--e-global-color-secondary:#A3232A;--e-global-color-text:#2B2725;--e-global-color-accent:#D9BC4C;--e-global-color-paper:#FFFFFF;--e-global-color-ink:#1B1918;--e-global-color-itbniebla:#F1F1EF;--e-global-color-itblinea:#D9D6D2;--e-global-color-itbgris:#6A645F;--e-global-color-itbhondo:#86191F;--e-global-color-itboro:#B49510;--e-global-color-itbvelo:#1B191873;--e-global-color-itbfilete:#FFFFFF2E;--e-global-color-itbsubrayado:#FFFFFF66;--e-global-typography-primary-font-family:"Libre Baskerville";--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.12em;--e-global-typography-primary-letter-spacing:-0.015em;--e-global-typography-secondary-font-family:"Libre Baskerville";--e-global-typography-secondary-font-size:clamp(1.3rem, 1.2rem + .45vw, 1.6rem);--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.25em;--e-global-typography-secondary-letter-spacing:-0.015em;--e-global-typography-text-font-family:"Oswald";--e-global-typography-text-font-size:1.125rem;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.6em;--e-global-typography-text-letter-spacing:0.01em;--e-global-typography-accent-font-family:"Oswald";--e-global-typography-accent-font-size:0.875rem;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.1em;--e-global-typography-accent-letter-spacing:0.09em;--e-global-typography-itbh1-font-family:"Libre Baskerville";--e-global-typography-itbh1-font-size:clamp(2.6rem, 1.6rem + 3.8vw, 5rem);--e-global-typography-itbh1-font-weight:700;--e-global-typography-itbh1-line-height:1.06em;--e-global-typography-itbh1-letter-spacing:-0.028em;--e-global-typography-itbh2-font-family:"Libre Baskerville";--e-global-typography-itbh2-font-size:clamp(2rem, 1.45rem + 2vw, 3.25rem);--e-global-typography-itbh2-font-weight:700;--e-global-typography-itbh2-line-height:1.12em;--e-global-typography-itbh2-letter-spacing:-0.022em;--e-global-typography-itbentradilla-font-family:"Oswald";--e-global-typography-itbentradilla-font-size:1.25rem;--e-global-typography-itbentradilla-font-weight:300;--e-global-typography-itbentradilla-line-height:1.55em;--e-global-typography-itbmini-font-family:"Oswald";--e-global-typography-itbmini-font-size:0.8125rem;--e-global-typography-itbmini-font-weight:500;--e-global-typography-itbmini-text-transform:uppercase;--e-global-typography-itbmini-line-height:1.3em;--e-global-typography-itbmini-letter-spacing:0.08em;background-color:var( --e-global-color-paper );color:var( --e-global-color-text );font-family:"Oswald", Sans-serif;font-size:1.125rem;font-weight:400;line-height:1.6em;letter-spacing:0.01em;}.elementor-kit-14 button,.elementor-kit-14 input[type="button"],.elementor-kit-14 input[type="submit"],.elementor-kit-14 .elementor-button{background-color:var( --e-global-color-secondary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );color:var( --e-global-color-paper );border-style:solid;border-width:1.5px 1.5px 1.5px 1.5px;border-color:var( --e-global-color-secondary );border-radius:0px 0px 0px 0px;padding:15px 21px 15px 21px;}.elementor-kit-14 button:hover,.elementor-kit-14 button:focus,.elementor-kit-14 input[type="button"]:hover,.elementor-kit-14 input[type="button"]:focus,.elementor-kit-14 input[type="submit"]:hover,.elementor-kit-14 input[type="submit"]:focus,.elementor-kit-14 .elementor-button:hover,.elementor-kit-14 .elementor-button:focus{background-color:var( --e-global-color-itbhondo );color:var( --e-global-color-paper );}.elementor-kit-14 e-page-transition{background-color:var( --e-global-color-paper );}.elementor-kit-14 a{color:var( --e-global-color-secondary );}.elementor-kit-14 a:hover{color:var( --e-global-color-itbhondo );}.elementor-kit-14 h1{color:var( --e-global-color-ink );font-family:"Libre Baskerville", Sans-serif;font-size:clamp(2.6rem, 1.6rem + 3.8vw, 5rem);font-weight:700;line-height:1.06em;letter-spacing:-0.028em;}.elementor-kit-14 h2{color:var( --e-global-color-ink );font-family:"Libre Baskerville", Sans-serif;font-size:clamp(2rem, 1.45rem + 2vw, 3.25rem);font-weight:700;line-height:1.12em;letter-spacing:-0.022em;}.elementor-kit-14 h3{color:var( --e-global-color-ink );font-family:"Libre Baskerville", Sans-serif;font-size:clamp(1.3rem, 1.2rem + .45vw, 1.6rem);font-weight:700;line-height:1.25em;letter-spacing:-0.015em;}.elementor-kit-14 h4{color:var( --e-global-color-ink );font-family:"Libre Baskerville", Sans-serif;font-size:1.25rem;font-weight:700;line-height:1.3em;}.elementor-kit-14 h5{color:var( --e-global-color-ink );font-family:"Oswald", Sans-serif;font-size:1rem;font-weight:500;text-transform:uppercase;line-height:1.3em;letter-spacing:0.09em;}.elementor-kit-14 h6{color:var( --e-global-color-ink );font-family:"Oswald", Sans-serif;font-size:0.875rem;font-weight:500;text-transform:uppercase;line-height:1.3em;letter-spacing:0.09em;}.elementor-kit-14 label{color:var( --e-global-color-text );font-family:"Oswald", Sans-serif;font-size:0.875rem;font-weight:500;text-transform:uppercase;letter-spacing:0.06em;}.elementor-kit-14 input:not([type="button"]):not([type="submit"]),.elementor-kit-14 textarea,.elementor-kit-14 .elementor-field-textual{font-family:"Oswald", Sans-serif;font-size:1rem;font-weight:400;line-height:1.4em;color:var( --e-global-color-text );background-color:var( --e-global-color-paper );border-style:solid;border-width:1.5px 1.5px 1.5px 1.5px;border-color:var( --e-global-color-itblinea );border-radius:0px 0px 0px 0px;padding:12px 14px 12px 14px;}.elementor-kit-14 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-14 textarea:focus,.elementor-kit-14 .elementor-field-textual:focus{border-style:solid;border-width:1.5px 1.5px 1.5px 1.5px;border-color:var( --e-global-color-secondary );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1320px;}.e-con{--container-max-width:1320px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1359px){.elementor-kit-14 button,.elementor-kit-14 input[type="button"],.elementor-kit-14 input[type="submit"],.elementor-kit-14 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}}@media(max-width:899px){.elementor-kit-14 button,.elementor-kit-14 input[type="button"],.elementor-kit-14 input[type="submit"],.elementor-kit-14 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:599px){.elementor-kit-14 button,.elementor-kit-14 input[type="button"],.elementor-kit-14 input[type="submit"],.elementor-kit-14 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* Larrasoaña · CSS del kit (generado por servidor/f4-base/genera-kit-css.py desde la maqueta; no editar a mano) */
/* 1 · Tipografías originales servidas en local: cero peticiones a Google Fonts */
@font-face{font-family:"Libre Baskerville";src:url("/wp-content/uploads/itb-fonts/libre-baskerville-latin-ext.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Libre Baskerville";src:url("/wp-content/uploads/itb-fonts/libre-baskerville-latin.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Oswald";src:url("/wp-content/uploads/itb-fonts/oswald-latin-ext.woff2") format("woff2");font-weight:300 600;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Oswald";src:url("/wp-content/uploads/itb-fonts/oswald-latin.woff2") format("woff2");font-weight:300 600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* 2 · Iconos propios: tokens --ico-* (trazo 1,6) pintados por máscara; los de marca llevan además --ico-*-r,
   el relleno, que se pinta debajo en oro claro con el registro corrido.
   Uso: un contenedor VACÍO con las clases «itb-ico» e «itb-ico--nombre». Tamaño = su control Ancho
   (24 px si no se toca); color del trazo = su control Fondo con un color global (si no, el color del texto).
   En los de marca, el fondo del contenedor no se pinta (background-clip:text sin texto): lo heredan sus
   dos capas, ::before (relleno) y ::after (trazo). Elementor usa ::before para la capa de color del
   contenedor, así que aquí se anulan sus bordes, opacidad y mezcla; un icono no lleva capa de color. */
:root{
  --ico-cesta:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 9.5h17l-1.7 9.2a2 2 0 01-2 1.6H7.2a2 2 0 01-2-1.6zM8.5 9.5 11 4.5M15.5 9.5 13 4.5M9.5 13.5v3M14.5 13.5v3'/%3E%3C/svg%3E");
  --ico-buscar:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.5 4.5a6 6 0 110 12 6 6 0 0 1 0-12zM15 15l5 5'/%3E%3C/svg%3E");
  --ico-menu:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h11'/%3E%3C/svg%3E");
  --ico-cerrar:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E");
  --ico-flecha:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13.5 6.5 19 12l-5.5 5.5'/%3E%3C/svg%3E");
  --ico-telefono:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.8 3.5h2.6l1.4 4-1.9 1.3a11 11 0 006.3 6.3l1.3-1.9 4 1.4v2.6a2 2 0 01-2.2 2A16.5 16.5 0 014.8 5.7a2 2 0 012-2.2z'/%3E%3C/svg%3E");
  --ico-correo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16v12H4zM4.5 6.5 12 13l7.5-6.5'/%3E%3C/svg%3E");
  --ico-ubicacion:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0113 0c0 5.4-6.5 11-6.5 11zM12 7.6a2.4 2.4 0 110 4.8 2.4 2.4 0 0 1 0-4.8z'/%3E%3C/svg%3E");
  --ico-mas:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  --ico-menos:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
  --ico-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E");
  --ico-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  --ico-camion:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.5h11V16h-11zM13.5 9.5h3.8l3.2 3.6V16h-7M7 16a1.8 1.8 0 110 3.6A1.8 1.8 0 017 16zM17 16a1.8 1.8 0 110 3.6 1.8 1.8 0 0 1 0-3.6z'/%3E%3C/svg%3E");
  --ico-ristra:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M1.1 10l1.7 3.6a2.3 2.3 0 004.2-2l-1.7-3.6a2.3 2.3 0 00-4.2 2M10.3 18.9h2.8a2.3 2.3 0 000-4.6h-2.7a2.3 2.3 0 00-.1 4.6M20.6 13.7l1.9-4a2.3 2.3 0 00-4.1-1.9l-1.9 3.9a2.3 2.3 0 004.1 2M2.4 4.6l.3 2.1M7 15h0M16 15h0'/%3E%3C/svg%3E");
  --ico-morcilla:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 8.7A8.3 8.3 0 113.9 8.7A2.3 2.3 0 018.5 9.2A3.7 3.7 0 1015.9 9.2A2.3 2.3 0 0120.5 8.7ZM17.9 6.7h0M6.5 6.7h0M18.2 5.8l1.6-2.6M6.2 5.8l-1.6-2.6'/%3E%3C/svg%3E");
  --ico-salchicha:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.1 16.1l8.3-8.3a2.1 2.1 0 00-3-3l-8.3 8.3a2.1 2.1 0 003 3M2.5 16.7h0M15 4.2h0M12.6 20.9l8.3-8.3a2.1 2.1 0 00-3-3l-8.3 8.3a2.1 2.1 0 003 3M9 21.5h0M21.5 9h0'/%3E%3C/svg%3E");
  --ico-lunch:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11.6 7.2H5.4a1.8 4 0 000 8h6.2M11.6 7.2a1.7 4 0 010 8a1.7 4 0 010-8zM13.6 15.8a4.2 4.2 0 108.4 0a4.2 4.2 0 10-8.4 0'/%3E%3C/svg%3E");
  --ico-sin-gluten:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 17q-.4-3-3.4-3.4 .4 3 3.4 3.4M12 17q3-.4 3.4-3.4-3 .4-3.4 3.4M12 12q-.3-2.8-3.1-3.1 .3 2.8 3.1 3.1M12 12q2.8-.3 3.1-3.1-2.8 .3-3.1 3.1M12 8q2-2.4 0-4.8-2 2.4 0 4.8M12 21V8M5 5l14 14'/%3E%3C/svg%3E");
  --ico-sin-lactosa:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.6 11.2v8.9a.9.9 0 0 0 .9.9h7a.9.9 0 0 0 .9-.9v-8.9l-2-4.4h-4.8zM7.6 11.2h8.8M9.6 6.8V4.4h4.8v2.4M4.6 4.6l14.8 14.8'/%3E%3C/svg%3E");
  --ico-frio:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.4 13.9V6.1a2.1 2.1 0 014.2 0v7.8a3.6 3.6 0 11-4.2 0zM9.5 9.4v7.4M17.6 3.6v6.8M14.7 5.3l5.8 3.4M14.7 8.7l5.8-3.4'/%3E%3C/svg%3E");
  --ico-obrador:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.6 11.6 12 5.1l9.4 6.5M4.6 10.2v10h14.8v-10M9.5 20.2v-3.4a2.5 2.5 0 015 0v3.4M15.9 7.8V4.4h2.2v4.9M2.6 20.2h18.8'/%3E%3C/svg%3E");
  --ico-pesa:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.7 10.4h8.6a1 1 0 011 .8l2 7.9a1 1 0 01-1 1.3H5.7a1 1 0 01-1-1.3l2-7.9a1 1 0 011-.8zM9.7 6.9a2.3 2.3 0 104.6 0a2.3 2.3 0 10-4.6 0'/%3E%3C/svg%3E");
  --ico-calendario:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.6 5.6h12.8A1.6 1.6 0 0120 7.2v11.2a1.6 1.6 0 01-1.6 1.6H5.6A1.6 1.6 0 014 18.4V7.2a1.6 1.6 0 011.6-1.6zM4 10.2h16M8.6 3.6v4M15.4 3.6v4M9.4 14.9l1.9 1.9 3.6-3.7'/%3E%3C/svg%3E");
  --ico-codigo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 5.6h14a1.5 1.5 0 011.5 1.5v9.8a1.5 1.5 0 01-1.5 1.5H5a1.5 1.5 0 01-1.5-1.5V7.1A1.5 1.5 0 015 5.6zM7.2 8.6v6.8M16.8 8.6v6.8M10.4 8.6v4.6M13.6 8.6v4.6M10.4 15.4h3.2'/%3E%3C/svg%3E");
  --ico-trazabilidad:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.6 6.6h8.9a1.5 1.5 0 011.5 1.5v7.8a1.5 1.5 0 01-1.5 1.5H9.6L4.6 12zM7.5 12a1.1 1.1 0 102.1 0a1.1 1.1 0 10-2.1 0M7.7 11.3C5.6 9.6 4 7 4.7 3.6M12.4 10.6h5M12.4 13.4h3.4'/%3E%3C/svg%3E");
  --ico-calidad:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.6 14.6a5.4 5.4 0 1010.8 0a5.4 5.4 0 10-10.8 0M8.3 3.2h7.4l-2.5 6.2M8.3 3.2l2.5 6.2M12 12.1L12.6 13.8L14.5 13.9L13 15L13.5 16.8L12 15.8L10.5 16.8L11 15L9.5 13.9L11.4 13.8Z'/%3E%3C/svg%3E");
  --ico-delantal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.6 6.6h6.8l.5 4.4 1.8 1 1 7.4a1.2 1.2 0 01-1.2 1.4H6.5a1.2 1.2 0 01-1.2-1.4l1-7.4 1.8-1zM9.6 6.6V5a2.4 2.4 0 014.8 0v1.6M8.1 11.1H4.3M15.9 11.1h3.8M9.7 14.4h4.6v3.4H9.7z'/%3E%3C/svg%3E");
  --ico-aerogenerador:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.4 20.6c3.4-4.6 6.6-6.4 9.8-6.4s6.4 1.8 9.4 6.4M15.2 14.8V7.6M15.2 7.6L14.3 2.7M15.2 7.6L19.9 9.3M15.2 7.6L11.4 10.8M5.6 17V13M5.6 13L6.5 10.6M5.6 13L7.3 15M5.6 13L3 13.5'/%3E%3C/svg%3E");
  --ico-sello:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12.6V4.9a1.5 1.5 0 00-1.5-1.5H6A1.5 1.5 0 004.5 4.9v14.4A1.5 1.5 0 006 20.8h5.7M8 7.5h8M8 10.5h8M8 13.5h4M13.1 16.4a3.5 3.5 0 107 0a3.5 3.5 0 10-7 0M14.8 19.5l-.6 3.3M18.4 19.5l.6 3.3'/%3E%3C/svg%3E");
  --ico-ristra-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M1.1 10l1.7 3.6a2.3 2.3 0 004.2-2l-1.7-3.6a2.3 2.3 0 00-4.2 2M10.3 18.9h2.8a2.3 2.3 0 000-4.6h-2.7a2.3 2.3 0 00-.1 4.6M20.6 13.7l1.9-4a2.3 2.3 0 00-4.1-1.9l-1.9 3.9a2.3 2.3 0 004.1 2'/%3E%3C/svg%3E");
  --ico-morcilla-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M20.5 8.7A8.3 8.3 0 113.9 8.7A2.3 2.3 0 018.5 9.2A3.7 3.7 0 1015.9 9.2A2.3 2.3 0 0120.5 8.7Z'/%3E%3C/svg%3E");
  --ico-salchicha-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M6.1 16.1l8.3-8.3a2.1 2.1 0 00-3-3l-8.3 8.3a2.1 2.1 0 003 3M12.6 20.9l8.3-8.3a2.1 2.1 0 00-3-3l-8.3 8.3a2.1 2.1 0 003 3'/%3E%3C/svg%3E");
  --ico-lunch-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M11.6 7.2a1.7 4 0 010 8a1.7 4 0 010-8zM13.6 15.8a4.2 4.2 0 108.4 0a4.2 4.2 0 10-8.4 0'/%3E%3C/svg%3E");
  --ico-sin-gluten-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M12 17q-.4-3-3.4-3.4 .4 3 3.4 3.4M12 17q3-.4 3.4-3.4-3 .4-3.4 3.4M12 12q-.3-2.8-3.1-3.1 .3 2.8 3.1 3.1M12 12q2.8-.3 3.1-3.1-2.8 .3-3.1 3.1M12 8q2-2.4 0-4.8-2 2.4 0 4.8'/%3E%3C/svg%3E");
  --ico-sin-lactosa-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M7.6 11.2v8.9a.9.9 0 0 0 .9.9h7a.9.9 0 0 0 .9-.9v-8.9l-2-4.4h-4.8z'/%3E%3C/svg%3E");
  --ico-frio-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M7.4 13.9V6.1a2.1 2.1 0 014.2 0v7.8a3.6 3.6 0 11-4.2 0z'/%3E%3C/svg%3E");
  --ico-obrador-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M4.6 20.2V10.2L12 5.2l7.4 5v10z'/%3E%3C/svg%3E");
  --ico-pesa-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M7.7 10.4h8.6a1 1 0 011 .8l2 7.9a1 1 0 01-1 1.3H5.7a1 1 0 01-1-1.3l2-7.9a1 1 0 011-.8z'/%3E%3C/svg%3E");
  --ico-calendario-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M5.6 5.6h12.8A1.6 1.6 0 0120 7.2v11.2a1.6 1.6 0 01-1.6 1.6H5.6A1.6 1.6 0 014 18.4V7.2a1.6 1.6 0 011.6-1.6z'/%3E%3C/svg%3E");
  --ico-codigo-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M5 5.6h14a1.5 1.5 0 011.5 1.5v9.8a1.5 1.5 0 01-1.5 1.5H5a1.5 1.5 0 01-1.5-1.5V7.1A1.5 1.5 0 015 5.6z'/%3E%3C/svg%3E");
  --ico-trazabilidad-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M9.6 6.6h8.9a1.5 1.5 0 011.5 1.5v7.8a1.5 1.5 0 01-1.5 1.5H9.6L4.6 12z'/%3E%3C/svg%3E");
  --ico-calidad-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M6.6 14.6a5.4 5.4 0 1010.8 0a5.4 5.4 0 10-10.8 0'/%3E%3C/svg%3E");
  --ico-delantal-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M8.6 6.6h6.8l.5 4.4 1.8 1 1 7.4a1.2 1.2 0 01-1.2 1.4H6.5a1.2 1.2 0 01-1.2-1.4l1-7.4 1.8-1z'/%3E%3C/svg%3E");
  --ico-aerogenerador-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M2.4 20.6c3.4-4.6 6.6-6.4 9.8-6.4s6.4 1.8 9.4 6.4z'/%3E%3C/svg%3E");
  --ico-sello-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath transform='translate(1.5 1.5)' d='M13.1 16.4a3.5 3.5 0 107 0a3.5 3.5 0 10-7 0'/%3E%3C/svg%3E");
}
.e-con.itb-ico{--width:24px;width:var(--width);height:var(--width);min-height:0;flex:0 0 var(--width);padding:0;background-color:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.e-con.itb-ico:is(.itb-ico--ristra,.itb-ico--morcilla,.itb-ico--salchicha,.itb-ico--lunch,.itb-ico--sin-gluten,.itb-ico--sin-lactosa,.itb-ico--frio,.itb-ico--obrador,.itb-ico--pesa,.itb-ico--calendario,.itb-ico--codigo,.itb-ico--trazabilidad,.itb-ico--calidad,.itb-ico--delantal,.itb-ico--aerogenerador,.itb-ico--sello){-webkit-mask:none;mask:none;-webkit-background-clip:text;background-clip:text}
.e-con.itb-ico:is(.itb-ico--ristra,.itb-ico--morcilla,.itb-ico--salchicha,.itb-ico--lunch,.itb-ico--sin-gluten,.itb-ico--sin-lactosa,.itb-ico--frio,.itb-ico--obrador,.itb-ico--pesa,.itb-ico--calendario,.itb-ico--codigo,.itb-ico--trazabilidad,.itb-ico--calidad,.itb-ico--delantal,.itb-ico--aerogenerador,.itb-ico--sello)::before,.e-con.itb-ico:is(.itb-ico--ristra,.itb-ico--morcilla,.itb-ico--salchicha,.itb-ico--lunch,.itb-ico--sin-gluten,.itb-ico--sin-lactosa,.itb-ico--frio,.itb-ico--obrador,.itb-ico--pesa,.itb-ico--calendario,.itb-ico--codigo,.itb-ico--trazabilidad,.itb-ico--calidad,.itb-ico--delantal,.itb-ico--aerogenerador,.itb-ico--sello)::after{content:"";display:block;position:absolute;top:0;left:0;width:100%;height:100%;border:0;border-radius:0;opacity:1;mix-blend-mode:normal;transition:none;pointer-events:none;background-color:inherit;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.e-con.itb-ico:is(.itb-ico--ristra,.itb-ico--morcilla,.itb-ico--salchicha,.itb-ico--lunch,.itb-ico--sin-gluten,.itb-ico--sin-lactosa,.itb-ico--frio,.itb-ico--obrador,.itb-ico--pesa,.itb-ico--calendario,.itb-ico--codigo,.itb-ico--trazabilidad,.itb-ico--calidad,.itb-ico--delantal,.itb-ico--aerogenerador,.itb-ico--sello)::before{background-color:var(--ico-relleno,var(--e-global-color-accent));-webkit-mask-image:var(--i2);mask-image:var(--i2)}
.itb-ico--cesta{--i:var(--ico-cesta)}.itb-ico--buscar{--i:var(--ico-buscar)}.itb-ico--menu{--i:var(--ico-menu)}.itb-ico--cerrar{--i:var(--ico-cerrar)}.itb-ico--flecha{--i:var(--ico-flecha)}.itb-ico--telefono{--i:var(--ico-telefono)}.itb-ico--correo{--i:var(--ico-correo)}.itb-ico--ubicacion{--i:var(--ico-ubicacion)}.itb-ico--mas{--i:var(--ico-mas)}.itb-ico--menos{--i:var(--ico-menos)}.itb-ico--check{--i:var(--ico-check)}.itb-ico--chevron{--i:var(--ico-chevron)}.itb-ico--camion{--i:var(--ico-camion)}.itb-ico--ristra{--i:var(--ico-ristra);--i2:var(--ico-ristra-r)}.itb-ico--morcilla{--i:var(--ico-morcilla);--i2:var(--ico-morcilla-r)}.itb-ico--salchicha{--i:var(--ico-salchicha);--i2:var(--ico-salchicha-r)}.itb-ico--lunch{--i:var(--ico-lunch);--i2:var(--ico-lunch-r)}.itb-ico--sin-gluten{--i:var(--ico-sin-gluten);--i2:var(--ico-sin-gluten-r)}.itb-ico--sin-lactosa{--i:var(--ico-sin-lactosa);--i2:var(--ico-sin-lactosa-r)}.itb-ico--frio{--i:var(--ico-frio);--i2:var(--ico-frio-r)}.itb-ico--obrador{--i:var(--ico-obrador);--i2:var(--ico-obrador-r)}.itb-ico--pesa{--i:var(--ico-pesa);--i2:var(--ico-pesa-r)}.itb-ico--calendario{--i:var(--ico-calendario);--i2:var(--ico-calendario-r)}.itb-ico--codigo{--i:var(--ico-codigo);--i2:var(--ico-codigo-r)}.itb-ico--trazabilidad{--i:var(--ico-trazabilidad);--i2:var(--ico-trazabilidad-r)}.itb-ico--calidad{--i:var(--ico-calidad);--i2:var(--ico-calidad-r)}.itb-ico--delantal{--i:var(--ico-delantal);--i2:var(--ico-delantal-r)}.itb-ico--aerogenerador{--i:var(--ico-aerogenerador);--i2:var(--ico-aerogenerador-r)}.itb-ico--sello{--i:var(--ico-sello);--i2:var(--ico-sello-r)}


/* 3 · Botones (widget «button»). Forma, colores y letra los ponen el kit y el propio widget; aquí solo:
   icono delante con la clase itb-btn-ico-NOMBRE (uno de los 13 de interfaz), color del icono con itb-ico-pimenton
   o itb-ico-oro, icono a .8em con itb-ico-peq; flecha que avanza detrás con itb-btn-flecha; solo icono con
   el texto para lectores de pantalla con itb-solo-ico; y enlace con subrayado que se dibuja con itb-enlace. */
.elementor-widget-button[class*="itb-btn-"] .elementor-button-content-wrapper{align-items:center;gap:.6em}
.elementor-widget-button[class*="itb-btn-ico-"] .elementor-button-content-wrapper::before{content:"";flex:none;width:var(--itb-ico-t,1.25em);height:var(--itb-ico-t,1.25em);background-color:var(--itb-ico-color,currentColor);-webkit-mask:var(--itb-ico-antes) center/contain no-repeat;mask:var(--itb-ico-antes) center/contain no-repeat}
.itb-btn-flecha .elementor-button-content-wrapper::after{content:"";flex:none;width:1.25em;height:1.25em;background-color:currentColor;-webkit-mask:var(--ico-flecha) center/contain no-repeat;mask:var(--ico-flecha) center/contain no-repeat}
.itb-ico-pimenton{--itb-ico-color:var(--e-global-color-secondary)}
.itb-ico-oro{--itb-ico-color:var(--e-global-color-accent)}
.itb-ico-peq{--itb-ico-t:.8em}
.itb-solo-ico .elementor-button{position:relative}
.itb-solo-ico .elementor-button-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.itb-enlace .elementor-button,.itb-enlace .elementor-button:hover,.itb-enlace .elementor-button:focus{min-height:0;padding:6px 0;border:0;border-radius:0;background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat;background-color:transparent}
.itb-enlace .elementor-button:hover,.itb-enlace .elementor-button:focus-visible{background-size:100% 1.5px}
.itb-btn-ico-cesta{--itb-ico-antes:var(--ico-cesta)}.itb-btn-ico-buscar{--itb-ico-antes:var(--ico-buscar)}.itb-btn-ico-menu{--itb-ico-antes:var(--ico-menu)}.itb-btn-ico-cerrar{--itb-ico-antes:var(--ico-cerrar)}.itb-btn-ico-flecha{--itb-ico-antes:var(--ico-flecha)}.itb-btn-ico-telefono{--itb-ico-antes:var(--ico-telefono)}.itb-btn-ico-correo{--itb-ico-antes:var(--ico-correo)}.itb-btn-ico-ubicacion{--itb-ico-antes:var(--ico-ubicacion)}.itb-btn-ico-mas{--itb-ico-antes:var(--ico-mas)}.itb-btn-ico-menos{--itb-ico-antes:var(--ico-menos)}.itb-btn-ico-check{--itb-ico-antes:var(--ico-check)}.itb-btn-ico-chevron{--itb-ico-antes:var(--ico-chevron)}.itb-btn-ico-camion{--itb-ico-antes:var(--ico-camion)}

/* 4 · Cabecera fija: la sombra aparece al bajar (el sticky es el nativo de PRO, que pone la clase pasado el umbral) */
.itb-cab.elementor-sticky--effects{box-shadow:0 10px 28px -16px var(--e-global-color-itbvelo)}

/* 5 · Menú lateral (Off-Canvas de PRO). Trampas medidas en las webs de reformas (23-09-2026): Elementor no encola
   la animación de entrada de este widget y, sin fotogramas, al cerrar el cuerpo se queda sin desplazamiento;
   con «reducir movimiento» pasa lo mismo, así que ahí la animación dura 1 ms; y su hoja puede llegar tarde. */
@keyframes slideInLeft{from{transform:translate3d(-100%,0,0);visibility:visible}to{transform:translate3d(0,0,0)}}
@keyframes slideOutLeft{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(-100%,0,0)}}
.e-off-canvas .slideInLeft{animation-name:slideInLeft}
.e-off-canvas .slideOutLeft{animation-name:slideOutLeft}
@media (prefers-reduced-motion:reduce){html body .e-off-canvas .animated.slideInLeft{/* motivo: gana a .animated{animation:none!important} de Elementor, que deja la página sin desplazamiento */animation:slideInLeft 1ms both!important}html body .e-off-canvas .animated.slideOutLeft{/* motivo: el mismo, al cerrar */animation:slideOutLeft 1ms both!important}}
.itb-cajon-host .e-off-canvas[aria-hidden="true"]{position:fixed;inset:0;visibility:hidden}

/* 6 · Rótulo con filete (títulos de columna del pie, firma de la cita): la raya de oro claro encima o delante */
.itb-filete .elementor-heading-title::before{content:"";display:block;width:28px;height:2px;margin-bottom:10px;background:var(--e-global-color-accent)}
.itb-filete-linea .elementor-heading-title{display:flex;align-items:center;gap:12px}
.itb-filete-linea .elementor-heading-title::before{content:"";flex:none;width:32px;height:2px;background:var(--e-global-color-accent)}

/* 7 · Pie: «1951» como marca de agua (decorativa, fuera del árbol de accesibilidad) y el menú legal subrayado */
.itb-pie{position:relative;overflow:hidden}
.itb-pie .e-con-inner{position:relative;z-index:1}
.itb-pie::after{content:"1951";content:"1951" / "";position:absolute;right:0;bottom:-.2em;font:700 clamp(10rem,6rem + 16vw,24rem)/1 "Libre Baskerville",serif;letter-spacing:-.05em;color:var(--e-global-color-paper);opacity:.1;pointer-events:none}
.itb-legal .elementor-item{text-decoration:underline;text-decoration-color:var(--e-global-color-itbsubrayado);text-underline-offset:4px}
.itb-legal .elementor-item:hover,.itb-legal .elementor-item:focus-visible{text-decoration-color:var(--e-global-color-accent)}

/* 8 · Movimiento: solo si el visitante no ha pedido menos (el mismo que la maqueta) */
@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  .elementor-button{transition:transform .25s cubic-bezier(.2,.7,.2,1),background-color .2s,color .2s,border-color .2s}
  .elementor-widget-button:not(.itb-enlace):not(.itb-solo-ico) .elementor-button:hover{transform:translateY(-2px)}
  .itb-btn-flecha .elementor-button-content-wrapper::after{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
  .itb-btn-flecha .elementor-button:hover .elementor-button-content-wrapper::after{transform:translateX(5px)}
  .itb-enlace .elementor-button{transition:background-size .3s cubic-bezier(.2,.7,.2,1),color .2s}
  .itb-cab{transition:box-shadow .3s}
}

/* Pieza archivo (servidor/f4-base/piezas/archivo.css) */
/* Archivo de la tienda (F4.2, plantilla «product-archive» de servidor/f4-plantillas/tienda.php): solo lo que ningún
   control nativo hace. Sin el signo de menor ni el de mayor: Elementor los guarda como entidades. */

/* El main es el destino del «Ir al contenido» del tema (tabindex -1, F4.9 b): foco sin anillo y, como en las demás
   plantillas, por debajo de la cabecera fija de 80 px */
.itb-tienda-main:focus{outline:none}
.itb-tienda-main,.itb-tienda-main [id]{scroll-margin-top:104px}

/* Banda: H1 equilibrado y la entradilla sin el margen de los párrafos del tema */
.itb-tienda-h1 .elementor-heading-title{text-wrap:balance}
.itb-entradilla p{margin-block:0;text-wrap:pretty}
.itb-entradilla p + p{margin-block-start:.8em}

/* Migas (las de Yoast): «/» con 10 px a cada lado y los enlaces subrayados en línea, en pimentón al pasar. El gris del
   «/» y del paso actual es el color de texto del widget (su control, F6.10). Yoast escribe los separadores como texto
   suelto dentro de su span exterior: con ese span en flex cada «/» es una pieza más y el hueco es el de la maqueta */
.itb-migas #breadcrumbs{margin:0}
.itb-migas #breadcrumbs span:not(span span){display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.itb-migas a{text-decoration:underline;text-decoration-color:var(--e-global-color-itblinea);text-decoration-thickness:1.5px;text-underline-offset:4px}
.itb-migas a:hover{text-decoration-color:var(--e-global-color-secondary)}

/* Filtros por familia (menú de PRO): cajas de 44 px con filete, 8 px entre ellas también al saltar de renglón, el
   recuento en gris con cifras de ancho fijo y la familia activa en carbón con el recuento en oro claro */
.itb-filtros .elementor-nav-menu{gap:8px}
/* El clearfix de PRO (un ::after en bloque) es un ítem más de la lista en flex y se llevaba otro hueco de 8 px: a 768 px
   el recuento ya no cabía al lado de los filtros y bajaba de renglón */
.itb-filtros .elementor-nav-menu::after{display:none}
.itb-filtros .elementor-nav-menu .elementor-item{gap:10px;min-height:44px;border:1.5px solid var(--e-global-color-itblinea);background-color:var(--e-global-color-paper)}
.itb-filtros .elementor-nav-menu .elementor-item:hover{border-color:var(--e-global-color-ink)}
.itb-filtros .elementor-nav-menu .elementor-item.elementor-item-active{background-color:var(--e-global-color-ink);border-color:var(--e-global-color-ink)}
.itb-filtros .elementor-item span{font-variant-numeric:tabular-nums;color:var(--e-global-color-itbgris)}
.itb-filtros .elementor-item.elementor-item-active span{color:var(--e-global-color-accent)}

/* Rejilla con la destacada: PRO la pinta en la posición 3 (no admite una estática detrás del último producto, y la
   txistorra tiene tres); aquí pasa detrás del tercer producto, donde la pone la maqueta */
.itb-rejilla--destacada .e-loop-item:has(.itb-destacada){order:1}
.itb-rejilla--destacada .e-loop-item:has(.itb-destacada) + .e-loop-item ~ .e-loop-item .itb-tarjeta{order:2}

/* Búsqueda (F6.21): el número del recuento. Ningún widget ni etiqueta dinámica de Elementor, PRO o WooCommerce da el
   número de resultados (el de WooCommerce solo sale con su widget de productos, que pinta además las tarjetas con otro
   marcado; leído en su código el 14-10-2026). Lo cuenta el navegador: un contador suma las tarjetas que pinta la rejilla
   y lo escribe en el título del recuento, delante de su espacio duro y de «productos». El título va detrás de la
   rejilla en el documento (un contador vale lo contado antes) y delante a la vista, con el orden de su control */
.itb-tienda-busqueda{counter-reset:itb-productos}
.itb-tienda-busqueda .itb-tarjeta{counter-increment:itb-productos}
.itb-cuenta-busqueda .elementor-heading-title::before{content:counter(itb-productos)}
/* «1 producto» y no «1 productos»: WooCommerce lleva a la ficha la búsqueda de un solo producto, pero si una página de
   resultados llega a pintar uno solo, la «s» del título se esconde */
.itb-tienda-busqueda:has(.itb-tarjeta):not(:has(.e-loop-item ~ .e-loop-item)) .itb-plural{display:none}

/* Movimiento al pasar por encima, solo si el visitante no ha pedido menos (DESIGN.md, «Movimiento»): un control de
   Elementor solo puede ir dentro de una consulta de punto de ruptura, no de una de preferencia */
@media (prefers-reduced-motion:no-preference){
  .itb-filtros .elementor-nav-menu .elementor-item{transition:background-color .2s,border-color .2s,color .2s}
}
/* Pieza cabecera (servidor/f4-base/piezas/cabecera.css) */
/* Cabecera (F4.1, plantilla del Theme Builder): solo lo que ningún control nativo hace. Las clases las pone el árbol
   de servidor/f4-plantillas/cabecera-pie.php. Sin el signo de menor ni el de mayor: Elementor los guarda como entidades. */

/* Iconos de 24 px en los botones de solo icono (menú, buscar, cerrar); el kit los pinta a 1,25em */
.itb-ico-24{--itb-ico-t:24px}

/* Menú principal: el subrayado de 2 px va 8 px por encima del borde del enlace y crece desde la izquierda, sin
   cambiar de grueso (la animación «grow» de PRO lo hace crecer desde el centro y desde 0 px de alto) */
.itb-cab-nav .e--pointer-underline .elementor-item::after{bottom:8px}
.itb-cab-nav.itb-cab-nav .e--pointer-underline.e--animation-grow .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted)::after{left:0;height:2px}
@media (prefers-reduced-motion:reduce){.itb-cab-nav .elementor-item::after{transition:none}}
/* En la ficha, la familia del producto se marca como activa, igual que en la maqueta (que da aria-current a la familia
   en la vista de ficha). PRO solo da su clase de activo al enlace de la página actual (current-menu-item); en la ficha,
   WordPress pone current-product-parent en el de la familia. Mismo color pimentón y misma línea a todo el ancho que el
   activo de PRO (medidos en la familia de morcilla), con más clases que las reglas que los apagan (F4.9 c). El color,
   con siete: la hoja de la cabecera (post-111.css) llega después del kit y pone el negro con cinco, y con seis al foco */
.itb-cab-nav.itb-cab-nav.itb-cab-nav.itb-cab-nav .elementor-nav-menu--main .current-product-parent .elementor-item{color:var(--e-global-color-secondary)}
.itb-cab-nav.itb-cab-nav .e--pointer-underline.e--animation-grow .current-product-parent .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted)::after{width:100%;opacity:1}

/* Teléfonos: en la maqueta solo saltan al pasar los botones, y la separación entre icono y número es la suya. Cuatro
   clases para ganar a la regla de iconos del kit (.6em, con tres) sin depender del orden de las hojas */
.elementor-widget-button.itb-sin-salto:not(.itb-enlace) .elementor-button:hover{transform:none}
.elementor-widget-button.itb-cab-tel .elementor-button .elementor-button-content-wrapper{gap:8px}
.elementor-widget-button.itb-cajon-tel .elementor-button .elementor-button-content-wrapper{gap:10px}

/* Botones de la cabecera, del cajón y del teléfono del pie: la caja del widget mide lo que el botón. En Elementor
   4.3 el enlace es hijo directo del widget y va en línea (inline-block): el renglón de esa caja, con la letra de
   18 px del cuerpo, la hacía 8,8 px más alta que el teléfono de 16 px y lo subía 2,4 px del centro de la fila */
.itb-boton-justo .elementor-button{display:flex;width:fit-content}

/* Cesta (carrito de menú de PRO): el icono propio, la palabra «Cesta» y el contador en una caja blanca, en ese orden.
   El widget no tiene campo de texto (solo el subtotal). El relleno va en su control desde el 14-10 (F6.14): la hoja
   de PRO llega después de la del kit y su variable gana al relleno de botón del kit. El alto mínimo no tiene control */
.itb-cesta .elementor-menu-cart__toggle .elementor-button{min-height:48px}
.itb-cesta .elementor-menu-cart__toggle .elementor-button-icon{display:flex;align-items:center;gap:.6em}
.itb-cesta .elementor-menu-cart__toggle .elementor-button-icon svg,.itb-cesta .elementor-menu-cart__toggle .elementor-button-icon i,.itb-cesta .elementor-menu-cart__toggle .elementor-screen-only{display:none}
.itb-cesta .elementor-menu-cart__toggle .elementor-button-icon::before{content:"";order:0;flex:none;width:1.25em;height:1.25em;background-color:currentColor;-webkit-mask:var(--ico-cesta) center/contain no-repeat;mask:var(--ico-cesta) center/contain no-repeat}
.itb-cesta .elementor-menu-cart__toggle .elementor-button-icon::after{content:"Cesta";order:1}
.itb-cesta.itb-cesta .elementor-menu-cart__toggle .elementor-button-icon .elementor-button-icon-qty[data-counter]{order:2;position:static;display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;border-radius:0;font-size:.8125rem;font-weight:600;line-height:1;letter-spacing:0;font-variant-numeric:tabular-nums}
@media (max-width:599px){.itb-cesta .elementor-menu-cart__toggle .elementor-button-icon::after{display:none}}
@media (prefers-reduced-motion:no-preference){.itb-cesta .elementor-menu-cart__toggle .elementor-button:hover{transform:translateY(-2px)}}

/* Panel de la cesta como el de la maqueta (.cesta de local.html, F6.13, 14-10): fondo, sombra, márgenes, color y caja
   del cierre y letra y color del aviso de cesta vacía van en los controles de Menu Cart. Aquí, lo que no tiene control
   (cada excepción, citada en el DESIGN.md): el ancho de 440 px (PRO lo fija en 350), el título «Tu cesta» en la fila
   del cierre con el filete a todo el ancho, el icono de cierre de la casa en lugar de las dos barras de PRO, el aire
   del aviso y el velo del cajón. Dos clases ganan a las reglas de PRO, que van con una. La fila del título no se
   encoge y su alto mínimo es el del contenido: sin eso, la columna del panel la dejaba en 58 px y no en los 81 de la
   maqueta (medido en _qa/f6/cesta/despues-1440.txt) */
.itb-cesta .elementor-menu-cart__main{width:440px}
.itb-cesta .elementor-menu-cart__main::before{content:"Tu cesta";display:flex;flex:none;align-items:center;box-sizing:content-box;min-height:48px;margin:0 calc(-1 * clamp(16px, 4vw, 40px));padding:16px calc(clamp(16px, 4vw, 40px) + 60px) 16px clamp(16px, 4vw, 40px);border-bottom:1px solid var(--e-global-color-itblinea);font-family:var(--e-global-typography-primary-font-family),serif;font-weight:var(--e-global-typography-primary-font-weight);font-size:1.5rem;line-height:1.12;letter-spacing:-.022em;color:var(--e-global-color-ink)}
.itb-cesta .elementor-menu-cart__close-button{position:absolute;top:16px;inset-inline-end:clamp(16px, 4vw, 40px);display:flex;align-items:center;justify-content:center;margin:0}
.itb-cesta .elementor-menu-cart__close-button::before{position:static;width:24px;height:24px;margin:0;border-radius:0;transform:none;-webkit-mask:var(--ico-cerrar) center/contain no-repeat;mask:var(--ico-cerrar) center/contain no-repeat}
.itb-cesta .elementor-menu-cart__close-button::after{display:none}
.itb-cesta .woocommerce-mini-cart__empty-message{margin:0;padding-top:32px}
.itb-cesta.elementor-menu-cart--shown .elementor-menu-cart__container{background-color:var(--e-global-color-itbvelo)}

/* Cajón: cada enlace del menú del móvil con su filete, 56 px de alto con él y la flecha pimentón a la derecha */
.itb-cajon-menu .elementor-nav-menu .elementor-item{display:flex;justify-content:space-between;gap:12px;min-height:56px;border-bottom:1px solid var(--e-global-color-itblinea)}
.itb-cajon-menu .elementor-nav-menu .elementor-item::after{content:"";display:block;position:static;flex:none;width:1.25em;height:1.25em;opacity:1;transition:none;background-color:var(--e-global-color-secondary);-webkit-mask:var(--ico-flecha) center/contain no-repeat;mask:var(--ico-flecha) center/contain no-repeat}
/* PRO apaga (opacidad 0) sus dos seudoelementos en el enlace que no está activo ni bajo el puntero, con cinco clases:
   la misma cadena de :not() con la clase del cajón delante, para que la flecha se vea siempre y la línea de debajo se
   recoja con su transición en vez de apagarse de golpe */
.itb-cajon-menu .elementor-nav-menu .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted)::after,.itb-cajon-menu .elementor-nav-menu .elementor-item:not(:hover):not(:focus):not(.elementor-item-active):not(.highlighted)::before{opacity:1}
/* Bajo el enlace activo y bajo el que está bajo el puntero, una línea pimentón de 2 px sobre el filete que se dibuja de
   izquierda a derecha, el gesto del menú de la cabecera (maqueta v2d, C6 del verificador v3). La flecha ya ocupa el
   ::after; el foco no la dibuja (PRO sí, con dos clases) */
.itb-cajon-menu .elementor-nav-menu .elementor-item{position:relative}
.itb-cajon-menu .elementor-nav-menu .elementor-item::before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background-color:var(--e-global-color-secondary);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.itb-cajon-menu .elementor-nav-menu .elementor-item.elementor-item-active::before,.itb-cajon-menu .elementor-nav-menu .elementor-item:hover::before{transform:scaleX(1)}
/* La familia del producto en su ficha, activa también en el cajón (la misma razón que en el menú de la cabecera) */
.itb-cajon-menu.itb-cajon-menu.itb-cajon-menu.itb-cajon-menu .elementor-nav-menu .current-product-parent .elementor-item{color:var(--e-global-color-secondary)}
.itb-cajon-menu .elementor-nav-menu .current-product-parent .elementor-item::before{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){.itb-cajon-menu .elementor-nav-menu .elementor-item::before{transition:none}}
/* Con el cajón abierto, y mientras se cierra, PRO quita el desplazamiento al cuerpo: con barras de desplazamiento de
   las que ocupan sitio, la barra desaparecía y la página de detrás se movía de lado. La maqueta le guarda el hueco */
html:has(body.e-off-canvas__no-scroll),html:has(body.e-off-canvas__no-scroll-animation){scrollbar-gutter:stable}

/* Buscador (segundo Off-Canvas, arriba): Elementor no encola las animaciones de este widget; con «reducir
   movimiento» duran 1 ms para que el cierre termine (las mismas trampas que el cajón, sección 5 del kit) */
@keyframes slideInDown{from{transform:translate3d(0,-100%,0);visibility:visible}to{transform:translate3d(0,0,0)}}
@keyframes slideOutUp{from{transform:translate3d(0,0,0)}to{visibility:hidden;transform:translate3d(0,-100%,0)}}
.e-off-canvas .slideInDown{animation-name:slideInDown}
.e-off-canvas .slideOutUp{animation-name:slideOutUp}
@media (prefers-reduced-motion:reduce){html body .e-off-canvas .animated.slideInDown{/* motivo: gana a .animated{animation:none!important} de Elementor, que deja la página sin desplazamiento */animation:slideInDown 1ms both!important}html body .e-off-canvas .animated.slideOutUp{/* motivo: el mismo, al cerrar */animation:slideOutUp 1ms both!important}}
/* Campo del buscador como el de la maqueta: 48 px de alto, borde de 1,5 px en tinta (también con el foco, que lo marca
   el anillo pimentón), el texto a 14 px del borde y la letra del cuerpo, de 18 px. Desde el 13-10 (F5.9) es el widget
   «Search» de PRO, que limita la búsqueda a productos: su hoja pone los colores del texto por variables y no trae
   control de letra, alto ni relleno del campo. Cuatro clases, y cinco con el foco: los campos de formulario del kit
   (borde gris, borde pimentón con el foco, letra de 16 px y 12 px de relleno) van con tres y una etiqueta, y con el
   foco con cuatro y una; con tres clases ganaban ellos (medido en _qa/f5/buscador/reglas-1.json) */
.elementor-widget-search.itb-buscador{--e-search-input-color:var(--e-global-color-text);--e-search-placeholder-color:var(--e-global-color-itbgris)}
.elementor-widget-search.itb-buscador.itb-buscador .e-search-input{box-sizing:border-box;height:48px;min-height:48px;padding:0 14px;border-width:1.5px;border-style:solid;border-color:var(--e-global-color-ink);border-radius:0;background-color:var(--e-global-color-paper);font-family:var(--e-global-typography-text-font-family),sans-serif;font-size:var(--e-global-typography-text-font-size);font-weight:var(--e-global-typography-text-font-weight);line-height:normal}
.elementor-widget-search.itb-buscador.itb-buscador .e-search-input:focus{border-color:var(--e-global-color-ink)}
/* Sin botón de enviar (se busca con Intro, como en la maqueta) y fuera del tabulador: PRO lo deja solo para lectores
   de pantalla y el tabulador se paraba en él sin que se viera. Lo mismo el contenedor de resultados en vivo, que van
   apagados. Cuatro clases: la hoja del widget los muestra con tres y llega después del kit */
.elementor-widget-search.itb-buscador .e-search .e-search-submit,.elementor-widget-search.itb-buscador .e-search .e-search-results-container{display:none}
/* Foco del campo: el anillo pimentón de la maqueta, a 3 px */
.elementor-widget-search.itb-buscador .e-search-input:focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:3px}
/* El buscador se abre bajo la fila de la cabecera (80 px; 68 en móvil), como la barra de la maqueta, y asoma por
   debajo de ella; la fila sigue a la vista y su botón lo cierra. Con la barra de administración, debajo de ella.
   Tres clases: la hoja del widget pone top:0 con dos y llega después del kit */
.elementor-widget-off-canvas.itb-buscador-oc .e-off-canvas__main{top:calc(80px + var(--wp-admin--admin-bar--height, 0px));bottom:0;height:auto;overflow:hidden}
@media (max-width:599px){.elementor-widget-off-canvas.itb-buscador-oc .e-off-canvas__main{top:calc(68px + var(--wp-admin--admin-bar--height, 0px))}}

/* Foco visible de la maqueta: pimentón, a 3 px */
[data-elementor-type="header"] :focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:3px}
/* Pieza ficha (servidor/f4-base/piezas/ficha.css) */
/* Ficha de producto (F4.3, plantilla «product» de servidor/f4-plantillas/ficha.php): solo lo que ningún control nativo
   hace. Sin el signo de menor ni el de mayor: Elementor los guarda como entidades. Las reglas que pisan estilos de
   WooCommerce, de Hello o de las hojas de widget (que llegan después del kit) llevan una clase más que ellas. */

/* Raíz: el «Ir al contenido» de Hello enfoca el main (tabindex -1) sin dibujarle un marco; foco y párrafos como en la
   maqueta */
.itb-ficha-main:focus{outline:0}
.itb-ficha-main :focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:3px}
.itb-ficha-main p{text-wrap:pretty}
/* Tras «Ir al contenido» (y hacia #itb-compra desde la barra), lo primero queda bajo la cabecera fija (81 px a 1440,
   69 a 390): el mismo margen que paginas.css; medido el 12-10-2026 */
.itb-ficha-main,.itb-ficha-main [id]{scroll-margin-top:104px}

/* Foto: cuadrada, sobre el degradado radial de la maqueta (blanco en el centro, niebla en los bordes; el control nativo
   solo admite dos colores y no el tamaño de la elipse) y fija al bajar desde 900 px, a la altura de la cabecera */
.itb-ficha .itb-ficha-foto.e-con{aspect-ratio:1 / 1;background-image:radial-gradient(110% 85% at 50% 42%,var(--e-global-color-paper) 0%,var(--e-global-color-paper) 34%,var(--e-global-color-itbniebla) 80%)}
@media (min-width:900px){.itb-ficha .itb-ficha-foto.e-con{position:sticky;top:104px}}
.itb-ficha .itb-ficha-img img{display:block;margin-inline:auto;mix-blend-mode:multiply}

/* Sello «Desde 1951»: el aro de oro de dentro (el seudoelemento de fondo de los contenedores se rehace entero) */
.itb-ficha .itb-sello.e-con::before{content:"";display:block;position:absolute;top:5px;left:5px;width:calc(100% - 10px);height:calc(100% - 10px);border:1px solid var(--e-global-color-itboro);border-radius:50%;background:none;opacity:1;mix-blend-mode:normal;transition:none;pointer-events:none}

/* Columna de compra: la familia se subraya al pasar, el nombre reparte sus renglones y el resumen sin margen */
.itb-ficha-fam a{text-decoration:none}
.itb-ficha-fam a:hover,.itb-ficha-fam a:focus-visible{text-decoration:underline;text-underline-offset:4px}
.itb-ficha-h1 .elementor-heading-title,.itb-rel-tit .elementor-heading-title{text-wrap:balance}
.itb-ficha-desc .woocommerce-product-details__short-description p{margin:0}

/* Sellos, frase de alérgenos y frase de conservación: solo si el producto trae la fila de atributo que los respalda
   (el importador solo la crea cuando el dato es cierto) */
.itb-ficha-info:not(:has(.woocommerce-product-attributes-item--attribute_sin-gluten)) :is(.itb-chip--gluten,.itb-si-gluten){display:none}
.itb-ficha-info:not(:has(.woocommerce-product-attributes-item--attribute_sin-lactosa)) :is(.itb-chip--lactosa,.itb-si-lactosa){display:none}
.itb-ficha-info:not(:has([class*="attribute_conservaci"])) :is(.itb-chip--frio,.itb-acordeon-conservacion){display:none}

/* Formatos: sin precio no hay nada que elegir, así que van como información y no como control (C11 del verificador de
   F5, 13-10; antes eran tarjetas con la marca de opción vacía, que parecían un .elementor-kit-14 que no responde). Una fila por
   formato, entre filetes y con el icono de peso a dos tintas de la etiqueta «Datos del producto». En los variables, un
   término de pa_formato por fila (la lista la escribe la etiqueta dinámica en un Editor de texto) */
.itb-formatos-lista{display:grid;grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;border-bottom:1px solid var(--e-global-color-itblinea)}
.itb-formatos-lista li{display:flex;align-items:center;gap:8px;min-height:48px;margin:0;padding:10px 0;border-top:1px solid var(--e-global-color-itblinea);--i:var(--ico-pesa);--i2:var(--ico-pesa-r)}
/* Icono a dos tintas: relleno de oro claro debajo y trazo carbón encima, en la misma caja de 22 px (como en la etiqueta) */
.itb-formatos-lista li::before,.itb-formatos-lista li::after,.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes tr.woocommerce-product-attributes-item--attribute_formato::before,.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes tr.woocommerce-product-attributes-item--attribute_formato::after{content:"";flex:none;width:22px;height:22px;background-color:var(--e-global-color-ink);-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.itb-formatos-lista li::before,.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes tr.woocommerce-product-attributes-item--attribute_formato::before{order:-2;background-color:var(--ico-relleno,var(--e-global-color-accent));-webkit-mask-image:var(--i2);mask-image:var(--i2)}
.itb-formatos-lista li::after,.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes tr.woocommerce-product-attributes-item--attribute_formato::after{order:-1;margin-left:-30px}
/* El bloque de formatos va en rejilla y no en columna flex: a 390 px, Chrome medía la lista como si sus tarjetas fueran
   una debajo de otra (122 px para una fila de 56) y dejaba un hueco bajo ellas; medido el 12-10-2026 */
.itb-ficha .itb-formatos.e-con{display:grid;grid-template-columns:minmax(0,1fr)}

/* Formato de un producto simple: la fila «Formato» de la tabla de atributos, con el mismo aspecto que una fila de los
   variables (el icono, arriba); el rótulo de la fila queda para el lector de pantalla */
.itb-ficha .itb-ficha-info .itb-formatos-simple:not(:has(.woocommerce-product-attributes-item--attribute_formato)){display:none}
.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes{display:block;width:100%;margin:0;border:0}
.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes tbody{display:block}
.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes tr{display:none}
.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes tr.woocommerce-product-attributes-item--attribute_formato{display:flex;align-items:center;gap:8px;min-height:48px;padding:10px 0;border-top:1px solid var(--e-global-color-itblinea);border-bottom:1px solid var(--e-global-color-itblinea);background:none;--i:var(--ico-pesa);--i2:var(--ico-pesa-r)}
.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes tr th{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes tr td{padding:0;border:0;background:none;font-style:normal;line-height:inherit;text-align:start}
.itb-ficha .itb-ficha-info .itb-formatos-simple table.shop_attributes tr td p{margin:0;padding:0}
/* Con precio, el formulario de WooCommerce trae su propio .elementor-kit-14 de formato: la lista de arriba sobraría */
.itb-ficha-info:has(.variations_form) .itb-formatos{display:none}

/* Compra (solo con precio): botón de 48 px con la cesta delante y cifras de ancho fijo */
.itb-ficha-precio .price,.itb-barra-compra .price{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.itb-ficha .itb-ficha-carrito .cart .button{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:48px;float:none;text-decoration:none}
.itb-ficha .itb-ficha-carrito .cart .button::before{content:"";flex:none;width:1.25em;height:1.25em;background-color:currentColor;-webkit-mask:var(--ico-cesta) center/contain no-repeat;mask:var(--ico-cesta) center/contain no-repeat}

/* Etiqueta: el icono de la cabecera es el de la familia del producto (clase product_cat-… del documento) */
.product_cat-morcilla-y-relleno .itb-etiqueta-fam{--i:var(--ico-morcilla);--i2:var(--ico-morcilla-r)}
.product_cat-salchichas-cocidas .itb-etiqueta-fam{--i:var(--ico-salchicha);--i2:var(--ico-salchicha-r)}
.product_cat-lunch-mortadela .itb-etiqueta-fam{--i:var(--ico-lunch);--i2:var(--ico-lunch-r)}

/* Etiqueta: la tabla de atributos de WooCommerce se deshace (sus filas pasan a ser filas de la etiqueta, para que el EAN,
   que es otro contenedor, caiga entre la vida útil y el obrador como en la maqueta) y cada fila es una rejilla de dos
   columnas: rótulo con su icono a dos tintas y valor a la derecha. Formato solo en los simples (en los variables la
   fila trae todos los formatos juntos); sin gluten y sin lactosa ya van en los sellos */
.itb-ficha .itb-etiqueta-tabla,.itb-ficha .itb-etiqueta-tabla .elementor-widget-container,.itb-ficha .itb-etiqueta-tabla table.shop_attributes,.itb-ficha .itb-etiqueta-tabla table.shop_attributes tbody{display:contents}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla table.shop_attributes tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);column-gap:12px;align-items:baseline;padding:11px 14px;border-top:1px solid var(--e-global-color-itblinea)}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla table.shop_attributes tr:is(.woocommerce-product-attributes-item--attribute_pa_formato,.woocommerce-product-attributes-item--attribute_sin-gluten,.woocommerce-product-attributes-item--attribute_sin-lactosa){display:none}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla tr.woocommerce-product-attributes-item--attribute_formato{order:1;--i:var(--ico-pesa);--i2:var(--ico-pesa-r)}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla tr[class*="attribute_conservaci"]{order:2;--i:var(--ico-frio);--i2:var(--ico-frio-r)}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla tr[class*="attribute_vida-"]{order:3;--i:var(--ico-calendario);--i2:var(--ico-calendario-r)}
.itb-ficha .itb-ficha-info .itb-etiqueta-ean.e-con{order:4;--align-items:baseline}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla tr.woocommerce-product-attributes-item--attribute_elaborado-en{order:5;--i:var(--ico-obrador);--i2:var(--ico-obrador-r)}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla table.shop_attributes tr :is(th,td){width:auto;margin:0;padding:0;border:0;background:none;font-style:normal;line-height:inherit;vertical-align:baseline}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla table.shop_attributes tr th{display:flex;align-items:center;gap:8px;font-size:.8125rem;font-weight:500;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;text-align:start;color:var(--e-global-color-itbgris)}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla table.shop_attributes tr td{text-align:end;font-variant-numeric:tabular-nums}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla table.shop_attributes tr td p{margin:0;padding:0}
/* Icono a dos tintas en el rótulo: relleno de oro claro debajo y trazo carbón encima, en la misma caja de 22 px */
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla table.shop_attributes tr th::before,.itb-ficha .itb-ficha-info .itb-etiqueta-tabla table.shop_attributes tr th::after{content:"";flex:none;width:22px;height:22px;background-color:var(--e-global-color-ink);-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla table.shop_attributes tr th::before{order:-2;background-color:var(--ico-relleno,var(--e-global-color-accent));-webkit-mask-image:var(--i2);mask-image:var(--i2)}
.itb-ficha .itb-ficha-info .itb-etiqueta-tabla table.shop_attributes tr th::after{order:-1;margin-left:-30px}
.itb-ficha .itb-etiqueta-dd .elementor-heading-title{font-variant-numeric:tabular-nums}

/* Acordeones: filete bajo cada uno, títulos de 60 px y el chevrón del kit en pimentón, que gira al abrir (con una clase
   más que la hoja del acordeón, que llega después del kit) */
.itb-ficha-info .itb-acordeon .e-n-accordion-item{border-bottom:1px solid var(--e-global-color-itblinea)}
.itb-ficha-info .itb-acordeon .e-n-accordion-item-title{min-height:60px}
.itb-ficha-info .itb-acordeon .e-n-accordion-item-title::after{content:"";flex:none;width:22px;height:22px;background-color:var(--e-global-color-secondary);-webkit-mask:var(--ico-chevron) center/contain no-repeat;mask:var(--ico-chevron) center/contain no-repeat}
.itb-ficha-info .itb-acordeon .e-n-accordion-item[open] .e-n-accordion-item-title::after{transform:rotate(180deg)}
.itb-acordeon-texto p{margin:0}
.itb-acordeon-texto p + p{margin-top:10px}
/* Frases de varios trozos (texto fijo y dato del producto) en un solo párrafo: contenedor en bloque y widgets en línea;
   el contenedor lleva la letra de sus trozos, porque la línea toma su altura (con la del cuerpo medía 31,9 px y no 27,2) */
.itb-ficha-info .itb-acordeon-frase.e-con{display:block;font-size:1.0625rem;line-height:1.6}
.itb-ficha-info .itb-acordeon-frase .elementor-widget,.itb-ficha-info .itb-acordeon-frase .elementor-widget-container,.itb-ficha-info .itb-acordeon-frase .elementor-heading-title{display:inline}
.itb-ficha-info .itb-acordeon-frase .elementor-widget + .elementor-widget::before{content:" "}
/* «Vida útil: 75 días.»: la fila de la tabla de atributos, en línea, con los dos puntos y el punto final */
.itb-ficha .itb-ficha-info .itb-acordeon-vida h2{display:none}
.itb-ficha .itb-ficha-info .itb-acordeon-vida table.shop_attributes,.itb-ficha .itb-ficha-info .itb-acordeon-vida table.shop_attributes :is(tbody,tr,th,td,p){display:inline;width:auto;margin:0;padding:0;border:0;background:none;font-size:inherit;font-weight:inherit;font-style:normal;line-height:inherit;letter-spacing:inherit;text-transform:none;color:inherit;vertical-align:baseline}
.itb-ficha .itb-ficha-info .itb-acordeon-vida table.shop_attributes tr{display:none}
.itb-ficha .itb-ficha-info .itb-acordeon-vida table.shop_attributes tr[class*="attribute_vida-"]{display:inline}
.itb-ficha .itb-ficha-info .itb-acordeon-vida table.shop_attributes th::after{content:": "}
.itb-ficha .itb-ficha-info .itb-acordeon-vida table.shop_attributes td p::after{content:"."}

/* Relacionados: el enlace a la tienda, al final de su columna desde 900 px. El widget va en flex para que su enlace
   (en línea) no herede la línea de 28,8 px del cuerpo: a una columna sumaba 1 px al hueco bajo el título */
.itb-relacionados-cab .itb-rel-enlace.elementor-widget{display:flex}
@media (min-width:900px){.itb-relacionados-cab .itb-rel-enlace.elementor-widget{justify-self:end}}

/* Relacionados entre 900 y 1199 px: dos tarjetas por fila, tumbadas (foto de 180 px a la izquierda y el texto al
   lado), con filete encima de cada una y debajo de la rejilla, como la maqueta; la tarjeta es la de la tienda */
@media (min-width:900px) and (max-width:1199px){
  .itb-rejilla--relacionados .elementor-loop-container{border-bottom:1px solid var(--e-global-color-itblinea)}
  .itb-rejilla--relacionados .elementor-loop-container .itb-tarjeta.e-con{grid-row:auto;align-content:start;--e-con-grid-template-columns:180px minmax(0, 1fr);--e-con-grid-template-rows:auto auto auto auto 1fr;--gap:0px 24px;--row-gap:0px;--column-gap:24px;--padding-top:24px;--padding-bottom:24px;border-top-width:1px;--border-top-width:1px}
  .itb-rejilla--relacionados .itb-tarjeta .itb-tarjeta-foto.elementor-element{grid-column:1;grid-row:1 / span 5;align-self:start}
  .itb-rejilla--relacionados .itb-tarjeta .elementor-element:not(.itb-tarjeta-foto){grid-column:2}
  .itb-rejilla--relacionados .itb-tarjeta .itb-tarjeta-fam.elementor-element{padding-top:0}
  .itb-rejilla--relacionados .itb-tarjeta .itb-tarjeta-pie.e-con{--padding-top:14px;--padding-bottom:0px}
}

/* Barra de compra (solo con precio, a 899 px o menos): un botón según el tipo de producto y aire debajo de la página
   para que no tape el pie */
.product-type-simple .itb-barra-variable,.product-type-variable .itb-barra-simple{display:none}
.itb-barra-compra .elementor-button{display:inline-flex;align-items:center;min-height:48px;white-space:nowrap}
@media (max-width:899px){body:has(.itb-barra-compra){padding-bottom:calc(73px + env(safe-area-inset-bottom, 0px))}}

/* Movimiento al pasar por encima, solo si el visitante no ha pedido menos (DESIGN.md, «Movimiento»): un control de
   Elementor solo puede ir dentro de una consulta de punto de ruptura, no de una de preferencia */
@media (prefers-reduced-motion:no-preference){
  .itb-ficha-info .itb-acordeon .e-n-accordion-item-title::after{transition:transform .25s}
}
/* Pieza paginas (servidor/f4-base/piezas/paginas.css) */
/* Páginas La casa (66) y Contacto (67) y plantilla de error 404 (F4.5, servidor/f4-plantillas/paginas.php): solo lo que
   ningún control nativo hace. Todo cuelga de .itb-pag, el main de cada documento. Sin el signo de menor ni el de mayor:
   Elementor los guarda como entidades. */

/* Titulares equilibrados y párrafos sin viuda, como la maqueta (h1, h2 y h3 con balance; p con pretty) */
.itb-pag :is(h1,h2,h3){text-wrap:balance}
.itb-pag p{text-wrap:pretty}
/* Salvo el H1 de página: con balance, el de La casa partía la marca («Embutidos / Larrasoaña») para igualar renglones;
   con el corte normal queda «Embutidos Larrasoaña, / embutidos artesanos / desde 1951» (pretty tampoco sirve: trata
   «desde 1951» como viuda y vuelve a partir la marca) */
.itb-pag-h1 .elementor-heading-title{text-wrap:wrap}

/* El main es el destino del «Ir al contenido» del tema (tabindex -1): recibe el foco sin anillo, porque no es un control */
.itb-pag:focus{outline:none}
/* El main y las anclas (#principios, que el pie enlaza con «Cómo trabajamos») quedan por debajo de la cabecera fija, con
   el margen de la maqueta: sin él, a 390 px la cabecera tapaba el título de los principios y, tras «Ir al contenido»,
   las migas */
.itb-pag,.itb-pag [id]{scroll-margin-top:104px}
/* Foco visible de la maqueta: pimentón a 3 px sobre claro y blanco sobre pimentón */
.itb-pag :focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:3px}
.itb-pag-casa :focus-visible{outline-color:var(--e-global-color-paper)}

/* Migas de Yoast, como las de la tienda: «/» con 10 px a cada lado y los enlaces subrayados en línea, en pimentón al
   pasar. El gris del «/» y del paso actual es el color de texto del widget (su control, F6.10). Yoast escribe los
   separadores como texto suelto dentro de su span exterior: con ese span en flex cada «/» es una pieza más y el hueco
   es el de la maqueta */
.itb-pag-migas #breadcrumbs{margin:0}
.itb-pag-migas #breadcrumbs span:not(span span){display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.itb-pag-migas a{text-decoration:underline;text-decoration-color:var(--e-global-color-itblinea);text-decoration-thickness:1.5px;text-underline-offset:4px}
.itb-pag-migas a:hover{text-decoration-color:var(--e-global-color-secondary)}

/* Banda de la casa: el «1951» mide la mitad del ancho de su columna (cqi), y la cita sin el sangrado ni los márgenes
   que el navegador da a un blockquote */
.itb-pag-anio{container-type:inline-size}
.itb-pag-cita blockquote{margin:0;padding:0;border:0;font:inherit;quotes:none}
.itb-pag-parrafos p + p{margin-block-start:.8em}

/* Botones y enlaces con flecha: la caja del widget mide lo que el botón (en 4.3 el enlace es hijo directo del widget y,
   en línea, el renglón del cuerpo lo hacía más alto) */
.itb-pag-boton .elementor-button{display:flex;width:fit-content}

/* Principios: el título queda fijo mientras pasa la lista, desde 1200 px y bajo la cabecera fija, como en la maqueta */
@media (min-width:1200px){.itb-pag-intro{position:sticky;top:120px}}

/* Datos de contacto: la dirección sin cursiva y los enlaces (teléfono y correo) en carbón con el subrayado fino de las
   migas, que pasa a pimentón */
.itb-pag-dato address{font-style:normal}
.itb-pag-dato a{color:var(--e-global-color-ink);text-decoration:underline;text-decoration-color:var(--e-global-color-itblinea);text-decoration-thickness:1.5px;text-underline-offset:4px}
.itb-pag-dato a:hover{color:var(--e-global-color-ink);text-decoration-color:var(--e-global-color-secondary)}
/* Pieza pie (servidor/f4-base/piezas/pie.css) */
/* Pie (F4.1, plantilla del Theme Builder): solo lo que ningún control nativo hace. Las clases las pone el árbol de
   servidor/f4-plantillas/cabecera-pie.php. Sin el signo de menor ni el de mayor: Elementor los guarda como entidades. */

/* Titulares equilibrados y párrafos sin viuda, como la maqueta (h1, h2 y h3 con balance; p con pretty) */
.itb-pie :is(h2,h3){text-wrap:balance}
.itb-pie p{text-wrap:pretty}

/* Columnas Tienda y La casa: el enlace mide lo que su texto, 36 px de alto como mínimo (un enlace de dos renglones
   no suma relleno) y el subrayado de oro claro se dibuja al pasar */
.itb-pie-menu .elementor-nav-menu .elementor-item{min-height:36px;width:fit-content;background:linear-gradient(var(--e-global-color-accent),var(--e-global-color-accent)) 0 85%/0 1.5px no-repeat}
.itb-pie-menu .elementor-nav-menu .elementor-item:hover,.itb-pie-menu .elementor-nav-menu .elementor-item:focus-visible{background-size:100% 1.5px}

/* Datos de contacto: enlaces en blanco (el kit los pinta en pimentón) con el mismo subrayado */
.itb-pie-dato a{color:var(--e-global-color-paper);text-decoration:none;background:linear-gradient(var(--e-global-color-accent),var(--e-global-color-accent)) 0 100%/0 1.5px no-repeat}
.itb-pie-dato a:hover,.itb-pie-dato a:focus-visible{color:var(--e-global-color-paper);background-size:100% 1.5px}

/* Menú legal: 22 px entre enlaces y 4 px entre renglones cuando no cabe en uno. Con el control «espacio entre
   elementos» PRO pone márgenes a cada enlace, y el primero de cada renglón nuevo quedaba sangrado 11 px */
.itb-legal .elementor-nav-menu{gap:4px 22px}
/* El seudoelemento que PRO pone al final de la lista para limpiar flotados se volvía un elemento más de la fila y se
   llevaba 22 px de hueco: los enlaces quedaban 22 px a la izquierda del borde derecho */
.itb-legal .elementor-nav-menu::after{display:none}

/* Teléfono grande: icono a 16 px del número (el kit pone .6em, 36 px a este tamaño; cuatro clases para ganarle) */
.elementor-widget-button.itb-pie-tel .elementor-button .elementor-button-content-wrapper{gap:16px}

/* Movimiento al pasar por encima, solo si el visitante no ha pedido menos (DESIGN.md, «Movimiento»): un control de
   Elementor solo puede ir dentro de una consulta de punto de ruptura, no de una de preferencia */
@media (prefers-reduced-motion:no-preference){.itb-pie-menu .elementor-nav-menu .elementor-item,.itb-pie-dato a{transition:background-size .3s cubic-bezier(.2,.7,.2,1),color .2s}}

/* Foco visible sobre carbón: oro claro, a 3 px */
[data-elementor-type="footer"] :focus-visible{outline:2px solid var(--e-global-color-accent);outline-offset:3px}
/* Logotipo: el anillo rodea la placa blanca y cae sobre su marco carbón, como en la maqueta (alrededor de la imagen
   quedaba dentro de la placa: oro claro sobre blanco, que apenas se ve) */
.itb-pie-logo a:focus-visible{outline:0}
.itb-pie-logo:has(a:focus-visible){outline:2px solid var(--e-global-color-accent);outline-offset:3px}
/* Pieza portada (servidor/f4-base/piezas/portada.css) */
/* Portada (F4.4, página 65, servidor/f4-plantillas/portada.php): solo lo que ningún control nativo hace. Todo cuelga
   de .itb-portada, el main de la página. Sin el signo de menor ni el de mayor: Elementor los guarda como entidades. */

/* Titulares equilibrados y párrafos sin viuda, como la maqueta (h1, h2 y h3 con balance; p con pretty) */
.itb-portada :is(h1,h2,h3){text-wrap:balance}
.itb-portada p{text-wrap:pretty}

/* El main es el destino del «Ir al contenido» del tema (tabindex -1): recibe el foco sin anillo. Foco visible de la
   maqueta: pimentón a 3 px, sin el halo blanco que el tema pone a los enlaces, y blanco sobre pimentón */
.itb-portada:focus{outline:none}
.itb-portada :focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:3px;box-shadow:none}
.itb-po-casa :focus-visible{outline-color:var(--e-global-color-paper)}
/* El main (#content) y las anclas (#la-casa, #principios) quedan por debajo de la cabecera fija: sin margen en el main,
   «Ir al contenido» bajaba la página 81 px (69 a 390 px) y la cabecera tapaba la etiqueta del héroe */
.itb-portada,.itb-portada [id]{scroll-margin-top:104px}

/* Botones y enlaces con flecha: la caja del widget mide lo que el botón (en 4.3 el enlace es hijo directo del widget y,
   en línea, el renglón del cuerpo lo hacía más alto). Los del héroe, 48 px de alto con el texto centrado; en el móvil
   van a todo el ancho con su control (alineación «Justificado» en móvil, F6.17), y por eso aquí no se les pone el ancho
   a medida, que ganaría a la regla de Elementor (dos clases contra tres); el enlace terciario, con el hueco de la
   maqueta (.55em) hasta su flecha */
.itb-portada .elementor-widget-button .elementor-button{display:flex;align-items:center;justify-content:center}
.itb-portada .elementor-widget-button:not(.elementor-mobile-align-justify) .elementor-button{width:fit-content}
.itb-po-boton .elementor-button{min-height:48px}
.itb-portada .itb-po-enlace.elementor-widget-button .elementor-button-content-wrapper{gap:.55em}
/* «Ver los 15 productos», al final de su celda desde 900 px (justify-self:end en la maqueta) */
@media (min-width:900px){.itb-po-cab .itb-po-enlace .elementor-button{margin-inline-start:auto}}

/* Teléfono del héroe: carbón con el subrayado fino de la maqueta (línea, 1,5 px, a 5 px), que pasa a pimentón; 8 px
   entre el icono y el número, y sin el salto de los botones al pasar */
.itb-portada .itb-po-tel.elementor-widget-button .elementor-button-content-wrapper{gap:8px}
.itb-po-tel .elementor-button-text{text-decoration:underline;text-decoration-color:var(--e-global-color-itblinea);text-decoration-thickness:1.5px;text-underline-offset:5px}
.itb-po-tel .elementor-button:hover .elementor-button-text{text-decoration-color:var(--e-global-color-secondary)}
.itb-portada .itb-po-tel.elementor-widget-button .elementor-button:hover{transform:none}

/* Escena del héroe: 5:4 (4:4,2 en el móvil, con el recorte arriba), el degradado radial de la maqueta y la sombra del
   recorte. El sello y la llamada van encima, en sus esquinas: el posicionamiento de Elementor no se usa (trampas.md) */
.itb-po-escena{aspect-ratio:5 / 4;background:radial-gradient(110% 85% at 52% 42%,var(--e-global-color-paper) 0%,var(--e-global-color-paper) 34%,var(--e-global-color-itbniebla) 78%)}
@media (max-width:599px){.itb-po-escena{aspect-ratio:4 / 4.2}}
.itb-po-escena-foto img{display:block;filter:drop-shadow(0 18px 20px color-mix(in srgb,var(--e-global-color-primary) 28%,transparent))}
.e-con.itb-po-sello{position:absolute;top:clamp(14px,2.4vw,28px);right:clamp(14px,2.4vw,28px)}
.itb-po-sello::after{content:"";position:absolute;inset:5px;border:1px solid var(--e-global-color-itboro);border-radius:50%;pointer-events:none}
.e-con.itb-po-llamada{position:absolute;left:clamp(14px,2.4vw,28px);bottom:clamp(14px,2.4vw,28px);max-width:min(300px,62%)}
@media (max-width:599px){.e-con.itb-po-llamada{right:clamp(14px,2.4vw,28px);max-width:none}}

/* Familias: la ficha entera es el enlace. Foto con el halo de la maqueta (blanco que se funde: mucho sobre niebla, poco
   sobre carbón y pimentón, nada sobre blanco), filete interior en la de lunch y recortes colocados en su caja, con la
   sombra de la maqueta */
.itb-po-fam--txistorra{--itb-halo:20%}
.itb-po-fam--morcilla{--itb-halo:85%}
.itb-po-fam--salchichas{--itb-halo:14%}
/* La ficha es un enlace y «.elementor a» (0,1,1) le quita la sombra: el filete necesita dos clases */
.itb-portada .itb-po-fam--lunch{--itb-halo:0%;box-shadow:inset 0 0 0 1px var(--e-global-color-itblinea)}
.itb-po-fam-foto{background:radial-gradient(56% 62% at 50% 54%,color-mix(in srgb,var(--e-global-color-paper) var(--itb-halo,0%),transparent) 0%,transparent 100%)}
.itb-portada .elementor-element.itb-po-recorte{position:absolute;left:9%;top:9%;width:82%;height:82%}
.itb-portada .elementor-element.itb-po-recorte--frito{left:12%;top:12%;width:76%;height:76%}
.itb-portada .elementor-element.itb-po-recorte--morcilla{left:7%;top:12%;width:86%;height:76%}
.itb-portada .elementor-element.itb-po-recorte--salchicha{left:6%;top:6%;width:88%;height:88%}
.itb-portada .elementor-element.itb-po-recorte--lunch-cerdo{left:5%;top:5%;width:50%;height:90%}
.itb-portada .elementor-element.itb-po-recorte--lunch-pavo{left:auto;top:auto;right:4%;bottom:7%;width:62%;height:50%}
.itb-po-recorte img{display:block;filter:drop-shadow(0 18px 20px color-mix(in srgb,var(--e-global-color-primary) 28%,transparent))}
.itb-po-recorte--morcilla img{rotate:-6deg}
/* «Ver la familia»: pimentón (blanco en las fichas oscuras) con el subrayado que se dibuja al pasar por la ficha */
.itb-po-fam-enlace{color:var(--e-global-color-secondary);background:linear-gradient(currentColor,currentColor) 0 100% / 0 1.5px no-repeat}
.itb-po-fam--txistorra .itb-po-fam-enlace,.itb-po-fam--salchichas .itb-po-fam-enlace{color:var(--e-global-color-paper)}
.itb-po-fam:hover .itb-po-fam-enlace{background-size:100% 1.5px}

/* Clásicos: la foto de la tarjeta sobre blanco (la banda ya es niebla). Entre 900 y 1199 px, los cuatro en 2×2 con la
   tarjeta tumbada, como la maqueta (a tres columnas quedaba uno huérfano): pisa, solo aquí, la rejilla interna de la
   tarjeta 118 (foto de 180 px a la izquierda y el texto al lado, con un filete encima de cada una) */
.itb-po-clasicos .elementor-118 .elementor-element.itb-tarjeta-foto{background-color:var(--e-global-color-paper)}
@media (min-width:900px) and (max-width:1199px){
  .itb-po-clasicos .elementor-118 .elementor-element.itb-tarjeta{grid-row:auto;--e-con-grid-template-columns:180px minmax(0,1fr);--e-con-grid-template-rows:auto auto auto auto 1fr;--gap:0px 24px;--row-gap:0px;--column-gap:24px;--padding-top:24px;--padding-bottom:24px;border-top-width:1px;--border-top-width:1px}
  .itb-po-clasicos .elementor-118 .elementor-element.itb-tarjeta-foto{grid-column:1;grid-row:1 / span 5;align-self:start}
  .itb-po-clasicos .elementor-118 .elementor-element:is(.itb-tarjeta-fam,.itb-tarjeta-nombre,.itb-tarjeta-formato,.itb-tarjeta-pie){grid-column:2}
  .itb-po-clasicos .elementor-118 .elementor-element.itb-tarjeta-fam{padding-top:0}
  .itb-po-clasicos .elementor-118 .elementor-element.itb-tarjeta-pie{--padding-top:14px;--padding-bottom:0px}
}

/* La casa: el «1951» mide la mitad del ancho de su columna (cqi); el título de la banda, solo para lectores de
   pantalla (la clase de Elementor pierde contra la posición relativa de los widgets); la cita sin el sangrado, el
   borde ni los márgenes que el tema y el navegador dan a un blockquote. La técnica de ocultación va en el envoltorio
   y también en el propio titular: con ella solo en el envoltorio, el h2 medía 1 x 58 px recortado por su padre y
   recortes-vivos lo daba por un texto tapado (F5.15) */
.itb-po-anio{container-type:inline-size}
.itb-portada .elementor-element.itb-po-oculto{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.itb-portada .elementor-element.itb-po-oculto .elementor-heading-title{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.itb-po-cita blockquote{margin:0;padding:0;border:0;font:inherit;quotes:none}
.itb-po-cita p{margin:0}

/* Cómo trabajamos: la introducción queda fija mientras pasa la lista, desde 1200 px y bajo la cabecera fija */
@media (min-width:1200px){.e-con.itb-po-intro{position:sticky;top:120px}}

/* Movimiento al pasar por encima, solo si el visitante no ha pedido menos (DESIGN.md, «Movimiento»): un control de
   Elementor solo puede ir dentro de una consulta de punto de ruptura, no de una de preferencia */
@media (prefers-reduced-motion:no-preference){
  .itb-po-recorte img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
  .itb-po-fam:hover .itb-po-recorte img{transform:scale(1.05)}
  .itb-po-fam-enlace{transition:background-size .3s cubic-bezier(.2,.7,.2,1),color .2s}
  .itb-po-fam-enlace .itb-ico--flecha,.itb-po-llamada .itb-ico--flecha{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
  .itb-po-fam:hover .itb-po-fam-enlace .itb-ico--flecha,.itb-po-llamada:hover .itb-ico--flecha{transform:translateX(5px)}
}
/* Pieza tarjeta (servidor/f4-base/piezas/tarjeta.css) */
/* Tarjeta de producto (F4.2, plantilla «loop-item» de servidor/f4-plantillas/tienda.php): solo lo que ningún control
   nativo hace. Sirve igual en la tienda, en la portada y en los relacionados de la ficha. Sin el signo de menor ni el
   de mayor: Elementor los guarda como entidades. */

/* La caja con la que la rejilla de bucle de PRO envuelve cada producto no cuenta: así la tarjeta es el elemento de la
   rejilla y sus cinco filas (foto, familia, nombre, formato y compra) son las de la rejilla (subgrid, en los controles
   del contenedor), y nombre, formato y precio caen a la misma altura en toda la fila. Ningún control lo ofrece. */
.e-loop-item:has(.itb-tarjeta){display:contents}

/* Foto cuadrada sobre niebla, multiplicada sobre el fondo (el blanco del envase se funde con la niebla). En bloque y
   con dos clases: la hoja del widget de imagen llega después del kit y los deja en línea (inline-block), y entonces la
   foto medía sus 300 px naturales con 6,8 px de renglón debajo en vez de los 312 de la columna */
.itb-tarjeta .itb-tarjeta-foto a,.itb-tarjeta .itb-tarjeta-foto img{display:block}
.itb-tarjeta-foto a{overflow:hidden}
.itb-tarjeta-foto img{width:100%;aspect-ratio:1 / 1;object-fit:cover;mix-blend-mode:multiply}
@media (max-width:599px){.itb-tarjeta .itb-tarjeta-foto{align-self:start}}

/* Nombre: equilibrado en sus renglones y con el subrayado que se dibuja al pasar por la tarjeta */
.itb-tarjeta-nombre .elementor-heading-title{text-wrap:balance}
.itb-tarjeta-nombre a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1.5px no-repeat}
.itb-tarjeta:hover .itb-tarjeta-nombre a,.itb-tarjeta-nombre a:focus-visible{background-size:100% 1.5px}
.itb-tarjeta-formato p{text-wrap:pretty}

/* Precio: cifras de ancho fijo y sin partir. Sin precio (WooCommerce deja el párrafo vacío) no ocupa sitio y el botón
   queda a la izquierda */
.itb-tarjeta .itb-tarjeta-precio .price{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.itb-tarjeta-precio:has(.price:empty){display:none}

/* Botón de compra (widget de WooCommerce): 48 px de alto, sin el margen ni la flotación que WooCommerce da al
   formulario y al botón de un producto, flecha detrás para ir a la ficha (elegir formato o leer más) y «+» delante
   cuando el producto se añade desde la tarjeta */
.itb-tarjeta .itb-tarjeta-boton form.cart{margin:0}
.itb-tarjeta .itb-tarjeta-boton form.cart .button{float:none;display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:48px;text-decoration:none;white-space:nowrap}
.itb-tarjeta .itb-tarjeta-boton form.cart .button::after{content:"";position:static;flex:none;width:1.25em;height:1.25em;margin:0;background-color:currentColor;-webkit-mask:var(--ico-flecha) center/contain no-repeat;mask:var(--ico-flecha) center/contain no-repeat}
.itb-tarjeta .itb-tarjeta-boton form.cart .button.add_to_cart_button.product_type_simple::after{content:none}
.itb-tarjeta .itb-tarjeta-boton form.cart .button.add_to_cart_button.product_type_simple::before{content:"";flex:none;width:1.25em;height:1.25em;background-color:currentColor;-webkit-mask:var(--ico-mas) center/contain no-repeat;mask:var(--ico-mas) center/contain no-repeat}

/* Tarjeta destacada: ocupa las cinco filas de las tarjetas de su fila; entre 900 y 1199 px, tumbada, una sola */
.e-loop-item:has(.itb-destacada){display:grid;grid-row:span 5}
@media (min-width:900px) and (max-width:1199px){.e-loop-item:has(.itb-destacada){grid-row:span 1}}
@media (max-width:599px){.e-loop-item:has(.itb-destacada){grid-row:auto}}
.itb-destacada h3{text-wrap:balance}
.itb-destacada p{text-wrap:pretty}
.itb-destacada .itb-destacada-boton .elementor-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px}

/* Movimiento al pasar por encima, solo si el visitante no ha pedido menos (DESIGN.md, «Movimiento»): un control de
   Elementor solo puede ir dentro de una consulta de punto de ruptura, no de una de preferencia */
@media (prefers-reduced-motion:no-preference){
  .itb-tarjeta-foto img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
  .itb-tarjeta:hover .itb-tarjeta-foto img{transform:scale(1.05)}
  .itb-tarjeta-nombre a{transition:background-size .3s cubic-bezier(.2,.7,.2,1),color .2s}
  .itb-tarjeta .itb-tarjeta-boton form.cart .button{transition:transform .25s cubic-bezier(.2,.7,.2,1),background-color .2s,color .2s,border-color .2s}
  .itb-tarjeta .itb-tarjeta-boton form.cart .button:hover{transform:translateY(-2px)}
  .itb-tarjeta .itb-tarjeta-boton form.cart .button::after{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
  .itb-tarjeta .itb-tarjeta-boton form.cart .button:hover::after{transform:translateX(5px)}
}
/* Pieza woo-legales (servidor/f4-base/piezas/woo-legales.css) */
/* Carrito (10), Finalizar compra (11) y Mi cuenta (12), y plantilla de legales de las páginas 58-62 (F4.6,
   servidor/f4-plantillas/woo-legales.php): solo lo que ningún control nativo hace. Todo cuelga de .itb-wl, el main de
   cada documento. Las hojas de los widgets de WooCommerce de PRO llegan después del kit: donde las especificidades
   empatan, aquí va una clase más (o el id del formulario). Sin el signo de menor ni el de mayor: Elementor los guarda
   como entidades. */

/* El main es el destino del «Ir al contenido» del tema (tabindex -1): foco sin anillo; lo de dentro, con el de la maqueta */
.itb-wl:focus{outline:none}
.itb-wl :focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:3px}

/* Banda: H1 equilibrado y las migas de Yoast como las de la tienda («/» con 10 px a cada lado, los enlaces subrayados
   en línea y en pimentón al pasar; el gris del «/» y del paso actual es el color de texto del widget, F6.10) */
.itb-wl-h1 .elementor-heading-title{text-wrap:balance}
.itb-wl-aviso-texto .elementor-heading-title{text-wrap:pretty}
.itb-wl-migas #breadcrumbs{margin:0}
.itb-wl-migas #breadcrumbs span:not(span span){display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.itb-wl-migas a{text-decoration:underline;text-decoration-color:var(--e-global-color-itblinea);text-decoration-thickness:1.5px;text-underline-offset:4px}
.itb-wl-migas a:hover{text-decoration-color:var(--e-global-color-secondary)}

/* Letra y color del kit en los widgets de WooCommerce de PRO: sus hojas ponen Roboto en gris (y el pago, a 14 px) */
.elementor-widget-woocommerce-cart.itb-carrito .woocommerce,
.elementor-widget-woocommerce-checkout-page.itb-pago,
.elementor-widget-woocommerce-my-account.itb-mi-cuenta{font-family:var(--e-global-typography-text-font-family);font-size:var(--e-global-typography-text-font-size);line-height:var(--e-global-typography-text-line-height);color:var(--e-global-color-text)}
body .e-woo-select2-wrapper .select2-results__option{font-family:var(--e-global-typography-text-font-family);font-size:1rem;color:var(--e-global-color-ink)}
.itb-wl input[type=checkbox],.itb-wl input[type=radio]{width:18px;height:18px;margin:0;accent-color:var(--e-global-color-secondary)}

/* Avisos de WooCommerce (errores de acceso, carrito actualizado, sin métodos de pago): niebla con filete pimentón a la
   izquierda y sin el icono de WooCommerce */
.itb-wl .woocommerce-error,.itb-wl .woocommerce-info,.itb-wl .woocommerce-message{margin:0 0 24px;padding:16px 20px;border:0;border-left:3px solid var(--e-global-color-secondary);border-radius:0;background-color:var(--e-global-color-itbniebla);color:var(--e-global-color-text);font-family:var(--e-global-typography-text-font-family);font-size:1rem;line-height:1.5;list-style:none}
.itb-wl .woocommerce-error::before,.itb-wl .woocommerce-info::before,.itb-wl .woocommerce-message::before{display:none}
.itb-wl .woocommerce-error li{margin:0}

/* Carrito vacío: la frase de WooCommerce sin caja ni icono, en gris a 19 px (la .cesta-vacia de la maqueta), y «Volver a
   la tienda» como el botón principal (.btn--primario: 48 px, pimentón, letra de interfaz) */
.itb-carrito .wc-empty-cart-message .cart-empty.woocommerce-info{margin:0;padding:0;border:0;background:none;color:var(--e-global-color-itbgris);font-size:1.1875rem;line-height:1.6;letter-spacing:.18px}
.itb-carrito .return-to-shop{margin:24px 0 0}
.itb-carrito .return-to-shop .button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin:0;padding:0 1.5em;border:1.5px solid var(--e-global-color-secondary);border-radius:0;background-color:var(--e-global-color-secondary);color:var(--e-global-color-paper);font-family:var(--e-global-typography-accent-font-family);font-size:var(--e-global-typography-accent-font-size);font-weight:var(--e-global-typography-accent-font-weight);line-height:var(--e-global-typography-accent-line-height);letter-spacing:var(--e-global-typography-accent-letter-spacing);text-transform:var(--e-global-typography-accent-text-transform)}
.itb-carrito .return-to-shop .button:hover{border-color:var(--e-global-color-itbhondo);background-color:var(--e-global-color-itbhondo);color:var(--e-global-color-paper)}

/* Mi cuenta sin sesión: acceso y registro en dos columnas con 40 px de hueco y, por debajo de 900 px, a una columna
   (33rem, columna de lectura declarada). Sin los flotantes del 48 % ni el clearfix de WooCommerce, que en la rejilla
   serían dos celdas más */
.itb-mi-cuenta #customer_login{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin:0}
.itb-mi-cuenta #customer_login::before,.itb-mi-cuenta #customer_login::after{display:none}
.itb-mi-cuenta #customer_login .u-column1,.itb-mi-cuenta #customer_login .u-column2{float:none;width:auto;max-width:none;margin:0}
.itb-mi-cuenta #customer_login form{margin:0}
@media (max-width:899px){.itb-mi-cuenta #customer_login{grid-template-columns:minmax(0,33rem)}.itb-mi-cuenta #customer_login form{/* motivo: el JS del widget de PRO da a los dos formularios, en línea, la altura del más alto también cuando van uno debajo del otro, y al de registro le sobraban 45 px bajo el botón; al estilo en línea solo se le gana así */height:auto!important}}
/* Casilla de «Recuérdame» encima del botón de acceso, alineada con los campos */
.itb-mi-cuenta #customer_login .form-row:has(.woocommerce-form-login__rememberme){display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.itb-mi-cuenta #customer_login .woocommerce-form-login__rememberme{display:inline-flex;align-items:center;gap:10px;margin:0;cursor:pointer}
.itb-mi-cuenta #customer_login .woocommerce-form-login__submit{float:none;margin:0}
/* «¿Olvidaste la contraseña?»: PRO la deja a 12 px; aquí, a 15 px y subrayada como los enlaces del pie */
.itb-mi-cuenta #customer_login .woocommerce-LostPassword{margin:20px 0 0;font-size:.9375rem;line-height:1.4}
.itb-mi-cuenta #customer_login .woocommerce-LostPassword a{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
/* El enlace a la política de privacidad del aviso de registro (y el del pago), subrayado: dentro del texto, el pimentón
   solo se distinguía de la tinta por el color (1,99:1) */
.itb-wl .woocommerce-privacy-policy-text a{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}

/* Legales: el texto tal cual en la columna de lectura. Titulares a la medida de una página de texto (el h2 del kit, el de
   las portadas, partía «Propiedad intelectual e industrial» en tres renglones), anclas por debajo de la cabecera fija de
   80 px, listas con su sangría y la marca en pimentón, negritas en carbón y enlaces subrayados (sin el subrayado, el
   pimentón contra la tinta del texto solo se distingue por el color: 1,99:1) */
.elementor-widget-theme-post-content.itb-legales-texto h2{margin:2.2em 0 .6em;font-size:clamp(1.375rem, 1.2rem + .6vw, 1.75rem);line-height:1.25;letter-spacing:-.015em;color:var(--e-global-color-ink);text-wrap:balance}
.itb-legales-texto [id]{scroll-margin-top:104px}
.itb-legales-texto p,.itb-legales-texto ul,.itb-legales-texto ol{margin:0 0 1em}
.itb-legales-texto p{text-wrap:pretty}
.itb-legales-texto ul,.itb-legales-texto ol{padding-left:1.4em}
.itb-legales-texto li{margin:0 0 .45em;padding-left:.2em}
.itb-legales-texto li::marker{color:var(--e-global-color-secondary)}
.itb-legales-texto strong{font-weight:600;color:var(--e-global-color-ink)}
.itb-legales-texto a{color:var(--e-global-color-secondary);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
.itb-legales-texto a:hover{color:var(--e-global-color-itbhondo)}
/* La primera frase, de entradilla; la fecha del final, en gris y separada por un filete */
.itb-legales-texto p:first-child{font-size:1.1875rem}
.itb-legales-texto p:last-child{margin:2.5em 0 0;padding-top:1em;border-top:1px solid var(--e-global-color-itblinea);font-size:.9375rem;color:var(--e-global-color-itbgris)}
/* Desde 900 px (donde el contenedor deja de ser de 33rem; hasta F5.15 empezaba en 1025 y entre 900 y 1024 el texto
   ocupaba la caja entera, a 94-116 caracteres por línea) la página llena la caja: la entradilla y los
   titulares de cada apartado en la columna de la izquierda, y el texto en su columna de lectura a la derecha, con el
   índice junto a la entradilla. La entradilla ocupa dos filas (las del rótulo y la lista del índice). Cada titular
   ocupa doce, todas las de su apartado (el más largo de los cinco textos tiene seis) más las vacías, que miden 0:
   así no estira la fila del primer párrafo y, pegajoso, se queda a la vista mientras se lee su apartado, bajo la
   cabecera fija de 80 px. El margen de arriba lo llevan a la vez el titular y lo primero de su
   apartado, porque en una rejilla los márgenes no se juntan y así empiezan a la misma altura. Sin hueco entre filas:
   el que hereda el widget de Elementor (20 px) se sumaba al margen de cada párrafo. Sin el combinador de
   hijo (el kit no admite el signo de mayor): el texto legal no anida párrafos ni titulares, y grid-column no hace
   nada en lo que no es celda de la rejilla */
@media (min-width:900px){
  .elementor-widget-theme-post-content.itb-legales-margen{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,33rem);gap:0 clamp(48px,6vw,112px);align-items:start}
  .itb-legales-margen *{grid-column:2}
  .elementor-widget-theme-post-content.itb-legales-margen h2{grid-column:1;grid-row:span 12;position:sticky;top:104px;margin:2.5rem 0 0}
  .elementor-widget-theme-post-content.itb-legales-margen h2 + *{margin-top:2.5rem}
  .elementor-widget-theme-post-content.itb-legales-margen p:first-child{grid-column:1;grid-row:span 2;max-width:33rem;margin:0}
}

/* Movimiento al pasar por encima, solo si el visitante no ha pedido menos (DESIGN.md, «Movimiento»): un control de
   Elementor solo puede ir dentro de una consulta de punto de ruptura, no de una de preferencia */
@media (prefers-reduced-motion:no-preference){
  .itb-carrito .return-to-shop .button{transition:background-color .2s,border-color .2s,color .2s}
}/* End custom CSS */