  :root{
    --verde-oscuro:#2C3A1E;
    --turquesa:#20403E;
    --verde-producto:#3E5C34;
    --verde-calido:#55663D;
    --verde-oliva:#5B6E3E;
    --tierra:#B8804A;
    --tierra-oscura:#8C5E33;
    --crema:#F6F2E7;
    --crema-oscura:#EDE6D6;
    --dorado:#C9A227;
    --pistacho:#9CB380;
    --ambar:#EFD9A0;
    --dorado-texto:#B8860B;
    --tinta:#25281F;
    --cafe:#5C3A21;
    --cobre-logo:#A5501E;
    --borde:#DAD2BC;
    --hero-poster:url("/wp-content/themes/cortijo-abuelo-pio/assets/img/img-215fcb9e3c.jpg");
    --sombra: 0 20px 60px -20px rgba(44,58,30,0.35);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Karla', sans-serif;
    color:var(--tinta);
    background:var(--crema);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    font-weight:600;
    letter-spacing:-0.01em;
    color:var(--verde-oscuro);
  }
  a{color:inherit; text-decoration:none;}
  /* Los <a role="button"> sin href no reciben el cursor de mano por defecto
     del navegador (solo se lo da a enlaces con href real) -- se fuerza aqui
     de forma global para toda la botonera, CTAs y similares. */
  [role="button"]{cursor:pointer;}
  img,video{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  @media(max-width:640px){ .wrap{padding:0 20px;} }

  /* ---------- NAV ---------- */
  header.nav{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    /* Vuelve a transparente al cargar (sobre el vídeo), como estaba SIEMPRE
       antes de tocar nada — el usuario lo pidió explícitamente tras ver el
       turquesa aplicado también aquí. Se conserva solo la altura reducida
       (22px -> 10/14px de aire), que sí gustó. El turquesa vive ahora
       SOLO en header.nav.scrolled, sustituyendo al crema que había antes. */
    padding:10px 40px 14px;
    background:transparent;
    transition:background .35s ease, padding .35s ease, box-shadow .35s ease, backdrop-filter .35s ease;
  }
  header.nav.scrolled{
    /* El turquesa (antes activo siempre) se queda SOLO aquí, sustituyendo al
       crema que tenía el sitio originalmente. Altura reducida igual que la
       base. El usuario probó el cobre sobre este fondo (contraste 2.60:1,
       por debajo del mínimo recomendado) y no le convenció visualmente —
       el texto se queda en blanco/crema (igual que en el estado transparente
       de arriba), sin cambio de color al hacer scroll. */
    padding:8px 40px 10px;
    background:rgba(32,64,62,.88); backdrop-filter:blur(18px);
    box-shadow:0 8px 24px -12px rgba(0,0,0,.45);
  }
  .brand{
    display:flex; align-items:center; gap:12px;
    /* Vidaloka (Google Fonts, licencia OFL, 100% libre para web — a diferencia
       de Bookman Old Style, se descarga para TODAS las visitas sin depender
       de que el sistema operativo del visitante la tenga instalada). Se
       identificó buscando una familia libre con el mismo remate en bola de la
       J que tiene el logo real. Peso regular (Vidaloka no trae negrita real;
       pedir 700 daría negrita sintética del navegador) y tamaño reducido a
       petición del usuario. */
    font-family:'Vidaloka', serif; font-weight:400; font-size:1.0rem;
    color:#EEEEEE; letter-spacing:0.03em; text-transform:uppercase;
  }
  
  
  
  .brand .marca-anio{
    font-family:'Karla', sans-serif; font-weight:600; font-size:0.72rem;
    letter-spacing:0.18em; opacity:.75; display:block; margin-top:2px;
  }
  .brand-mark{
    width:100px; height:100px; position:relative; flex-shrink:0;
  }
  .brand-mark img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:contain;
    transition:opacity .3s ease;
  }
  .brand-mark .logo-blanco{opacity:1;}
  .brand-mark .logo-cobre{opacity:0;}
  
  
  nav.links{display:flex; gap:34px; align-items:center;}
  nav.links a{
    /* Vidaloka, peso regular (el usuario probó la negrita sintética y no
       le convenció). Vidaloka solo trae este peso real de todos modos. */
    font-family:'Vidaloka', serif;
    font-size:1.0rem; font-weight:400; letter-spacing:0.03em;
    color:#fff; opacity:.92; position:relative;
    display:inline-flex; align-items:center; line-height:1;
  }
  
  
  nav.links a::after{
    content:""; position:absolute; left:0; bottom:-4px; width:0; height:1.5px;
    background:currentColor; transition:width .25s ease;
  }
  nav.links a:hover::after{width:100%;}
  .nav-cta{
    background:linear-gradient(180deg,#DDBA45,var(--dorado)); color:var(--verde-oscuro)!important;
    padding:11px 24px; border-radius:999px; font-weight:700;
    font-size:1.0rem; line-height:1; align-self:center;
    display:inline-flex; align-items:center; gap:8px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 6px 14px -7px rgba(32,64,62,.55);
    transition:box-shadow .2s ease, transform .2s ease;
  }
  .nav-cta:hover{transform:translateY(-1px); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 9px 18px -6px rgba(32,64,62,.6);}
  .nav-cta svg{width:17px; height:17px; flex-shrink:0;}
  .nav-cta::after{display:none;}

  /* ---------- MENU MOVIL (hamburguesa) ---------- */
  .nav-toggle{
    display:none; flex-direction:column; justify-content:center; gap:5px;
    width:34px; height:34px; background:none; border:none; cursor:pointer;
    padding:0; z-index:200;
  }
  .nav-toggle span{
    display:block; width:100%; height:2px; background:#fff;
    transition:transform .3s ease, opacity .3s ease, background .3s ease;
  }
  
  .nav-toggle.open span{background:var(--turquesa)!important;}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.open span:nth-child(2){opacity:0;}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  @media(max-width:860px){
    .nav-toggle{display:flex;}
    nav.links{
      position:fixed; inset:0; z-index:150;
      background:var(--crema);
      flex-direction:column; justify-content:center; align-items:flex-start;
      gap:8px; padding:40px;
      transform:translateX(100%); transition:transform .35s ease;
    }
    nav.links.open{transform:translateX(0);}
    nav.links a{
      color:var(--verde-oscuro)!important; font-size:1.6rem; font-family:'Fraunces', serif;
      font-weight:600; padding:14px 0; width:100%;
      border-bottom:1px solid var(--borde);
    }
    nav.links a::after{display:none;}
    .nav-cta{
      margin-top:20px; text-align:center; border-bottom:none!important;
      font-family:'Karla', sans-serif; font-size:1rem;
    }
  }

  /* ---------- HERO CON VIDEO ---------- */
  .hero{
    position:relative; height:100vh; min-height:640px;
    display:flex; align-items:flex-start;
    overflow:hidden; background:var(--turquesa);
    /* Anula el padding-top:120px heredado de la regla global `section{padding:
       120px 0;}`: .hero-content es position:relative (a diferencia de
       .cx-hero-in en Conócenos, que es absolute e ignora el padding del
       padre), así que ese 120px se sumaba a su propio padding-top y
       descuadraba la altura pedida por el usuario (mismo patrón que la
       Ronda 22 con .ficha-producto). */
    padding-top:0;
  }
  .hero video{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; z-index:0;
  }
  .hero::before{
    content:""; position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(20,26,12,0.35) 0%, rgba(20,26,12,0.15) 40%, rgba(20,26,12,0.85) 100%);
  }
  .hero::after{
    content:""; position:absolute; inset:0; z-index:1;
    background:radial-gradient(120% 90% at 15% 100%, rgba(201,162,39,0.18), transparent 60%);
  }
  .hero-content{
    position:relative; z-index:2; width:100%;
    /* Misma altura EXACTA que el bloque de texto de Conócenos
       (.cx-hero-in usa este mismo clamp) — a petición del usuario. */
    padding:clamp(172px,20vh,250px) 40px 40px;
  }
  @media(max-width:640px){
    .hero-content{padding:100px 24px 40px;}
  }
  @media(max-width:640px) and (max-height:700px){
    .hero{min-height:780px;}
  }
  .hero-eyebrow{
    /* Mismo formato que .cx-hero .cx-eyebrow de Conócenos (tamaño, tracking,
       color, sombra) — a petición del usuario. Se conserva la estructura
       flex + la rayita decorativa (::before), que Conócenos no tiene pero
       que no se pidió quitar aquí. Tamaño subido otra vez (0.84->0.92rem)
       a petición del usuario, en los dos sitios a la vez para que sigan
       coincidiendo. */
    color:var(--dorado); font-weight:700; font-size:1.0rem;
    letter-spacing:0.3em; text-transform:uppercase; margin-bottom:26px;
    text-shadow:0 2px 12px rgba(10,16,6,.75);
    display:flex; align-items:center; gap:12px;
  }
  .hero-eyebrow::before{content:""; width:34px; height:1px; background:var(--ambar);}
  h1.hero-title{
    /* Mismo formato que .cx-hero-title de Conócenos: sin negrita (300, no
       600), mismo letter-spacing y sombra — el tamaño ya coincidía de la
       ronda anterior. */
    color:#fff; font-size:clamp(2.2rem, 4.6vw, 3.9rem);
    line-height:1.08; font-weight:300; letter-spacing:-0.02em; max-width:none;
    text-shadow:0 3px 22px rgba(10,16,6,.6), 0 1px 3px rgba(10,16,6,.45);
  }
  h1.hero-title em{
    font-style:italic; font-weight:300; color:var(--dorado);
  }
  .hero-sub{
    color:rgba(255,255,255,0.86); font-size:1.08rem; max-width:58ch;
    margin-top:22px; font-weight:400; text-align:justify;
  }
  .hero-actions{display:flex; gap:16px; margin-top:30px; flex-wrap:wrap;}
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:16px 30px; font-weight:700; font-size:0.98rem;
    letter-spacing:0.02em; border-radius:999px; border:none;
    transition:transform .2s ease, background .25s ease, box-shadow .25s ease;
  }
  .btn-primary{
    background:linear-gradient(180deg,#DDBA45,var(--dorado)); color:var(--verde-oscuro);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 8px 18px -9px rgba(32,64,62,.5);
  }
  .btn-primary:hover{transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 12px 22px -8px rgba(32,64,62,.6);}
  .btn-ghost{
    background:linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.04));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 0 0 1.5px rgba(255,255,255,.5); color:#fff;
  }
  .btn-ghost:hover{background:linear-gradient(180deg, rgba(255,255,255,.24), rgba(255,255,255,.08)); box-shadow:inset 0 1px 0 rgba(255,255,255,.3), 0 0 0 1.5px #fff;}

  .hero-scroll{
    position:absolute; right:40px; bottom:74px; z-index:2;
    writing-mode:vertical-rl; color:rgba(255,255,255,0.7);
    font-size:0.72rem; letter-spacing:0.2em; display:flex; align-items:center; gap:14px;
  }
  .hero-scroll::after{content:""; width:1px; height:50px; background:rgba(255,255,255,0.5);}
  @media(max-width:780px){ .hero-scroll{display:none;} }

  /* ---------- MARCA DE AGUA / FRANJA ---------- */
  .franja{
    /* Mismo efecto visual que la cabecera turquesa, pero horneado como
       imagen: la franja va DEBAJO del vídeo en el flujo normal de la
       página, así que al verla el vídeo ya ha quedado fuera de pantalla
       — no hay nada real que "backdrop-filter" pueda desenfocar aquí (a
       diferencia de la cabecera, que es fixed y sí se superpone al
       vídeo). Se usa la misma foto del vídeo, recortada y desenfocada de
       antemano, con el velo turquesa encima. */
    background:
      linear-gradient(rgba(32,64,62,.82), rgba(32,64,62,.82)),
      url(/wp-content/themes/cortijo-abuelo-pio/assets/img/img-7ff80e8793.jpg);
    background-size:cover; background-position:center;
    color:#fff;
    padding:22px 0; overflow:hidden; white-space:nowrap;
    position:relative;
  }
  .franja-track{
    display:inline-flex; gap:48px; animation:desfile 32s linear infinite;
  }
  .franja span{
    /* Vidaloka (la misma tipografía de la cabecera) en blanco, sin cursiva
       — antes era Fraunces cursiva en dorado. */
    font-family:'Vidaloka', serif; font-style:normal; font-size:1.15rem;
    color:#fff; opacity:1;
  }
  /* Aviso de zonas de envío especiales, en la última etiqueta de la franja */
  .franja-envios{
    cursor:pointer;
    /* Toda la frase es el area de clic (no solo el asterisco): la franja
       esta en movimiento continuo y acertar en un solo caracter era
       tedioso, asi que se amplia el objetivo a "Envios a toda Espana"
       completo. */
  }
  .franja-envios:hover{text-decoration:underline;}
  .franja-asterisco{
    padding:0 0 0 2px;
    color:#fff; font-family:inherit; font-size:1em; line-height:1;
    vertical-align:super;
  }
  .franja-popup{
    /* Mismo formato que la cabecera al hacer scroll: turquesa translucido
       con desenfoque y texto blanco. */
    display:none; position:fixed; z-index:500; max-width:280px;
    background:rgba(32,64,62,.88); backdrop-filter:blur(18px);
    color:#fff;
    font-family:'Karla', sans-serif; font-size:0.85rem; line-height:1.5;
    padding:14px 16px; border-radius:6px; box-shadow:0 8px 24px -12px rgba(0,0,0,.45);
  }
  .franja-popup a{color:#fff; text-decoration:underline;}
  /* «Envíos a toda España*» de la franja final del inicio: subrayado, con el mismo aviso que la franja dinamica (al pasar el cursor) */
  .envios-aviso{ cursor:help; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; text-decoration-color:rgba(246,242,231,.85); }
  .envios-aviso:hover, .envios-aviso:focus-visible{ text-decoration-color:var(--dorado); outline:none; }
  .envios-asterisco{ padding:0 0 0 2px; font-size:1em; line-height:1; vertical-align:super; text-decoration:none; display:inline-block; }

  @keyframes desfile{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  /* ---------- SECCION GENERICA ---------- */
  section{padding:120px 0;}
  @media(max-width:780px){ section{padding:76px 0;} }
  .eyebrow{
    font-weight:700; font-size:0.92rem; letter-spacing:0.22em; text-transform:uppercase;
    color:var(--ambar); margin-bottom:16px; display:flex; align-items:center; gap:12px;
  }
  .eyebrow::before{content:""; width:28px; height:1px; background:var(--ambar);}
  .cta-final-eyebrow::after{content:""; width:28px; height:1px; background:var(--ambar);}
  /* En secciones de fondo CREMA el champán no se lee: usamos un dorado con cuerpo */
  .historia .eyebrow, .productos .eyebrow, .testimonios .eyebrow{ color:var(--dorado-texto); }
  .historia .eyebrow::before, .productos .eyebrow::before, .testimonios .eyebrow::before{ background:var(--dorado-texto); }
  h2.titulo-seccion{font-size:clamp(2rem, 3.6vw, 3rem); max-width:16ch; line-height:1.05;}
  /* Encabezados sobre fondo crema en café tostado */
  .historia .titulo-seccion, .productos .titulo-seccion, .testimonios .titulo-seccion{ color:var(--cafe); }
  .lead{font-size:1.15rem; color:#4A4C3E; max-width:56ch; margin-top:20px; text-align:justify;}

  /* ---------- HISTORIA ---------- */
  .historia{
    background:var(--crema);
    position:relative;
    overflow:hidden;
  }
  /* Cenefa inferior: silueta del olivar a pincel, sutil, a lo ancho */
  .historia::after{
    content:"";
    position:absolute;
    left:0; right:0; top:0; bottom:0;
    background:url("/wp-content/themes/cortijo-abuelo-pio/assets/img/img-04b9d7ad13.png") no-repeat center center;
    background-size:cover;
    opacity:0.30;
    pointer-events:none;
    z-index:0;
  }
  .historia .wrap{ position:relative; z-index:1; max-width:1440px; }
  @media(max-width:900px){ .historia::after{opacity:0.22;} }

  /* Texto claro sobre el fondo de la chimenea (aclarado) con sombra para legibilidad */
  .historia .historia-texto p:first-of-type::first-letter{color:var(--dorado);}
  .historia-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; margin-top:64px;
  }
  @media(max-width:900px){ .historia-grid{grid-template-columns:1fr; gap:36px;} }
  .hist-col{display:flex; flex-direction:column; gap:38px;}
  .hist-img{ margin:0; position:relative; border-radius:14px; padding:0; }

  /* Imagen 1: esquinas recortadas (café) */
  .hist-img-1{ }
  .hist-img-1 img{
    display:block; width:100%; height:auto; position:relative; z-index:1;
    aspect-ratio:4/3; object-fit:cover; border-radius:3px;
    box-shadow:0 20px 44px -20px rgba(44,58,30,0.5);
  }
  .hist-img-1::before, .hist-img-1::after{
    content:""; position:absolute; width:38px; height:38px; z-index:2;
    border:2.5px solid var(--cafe); pointer-events:none;
  }
  .hist-img-1::before{ top:-9px; left:-9px; border-right:none; border-bottom:none; border-top-left-radius:4px; }
  .hist-img-1::after{ bottom:-9px; right:-9px; border-left:none; border-top:none; border-bottom-right-radius:4px; }

  /* Imagen 2: marco flotante fino (café) */
  .hist-img-2{ display:flex; padding:10px; border:1.5px solid var(--cafe); border-radius:16px; margin-top:-36px; }
  .hist-img-2 .img-wrap{
    position:relative; width:100%; overflow:hidden; border-radius:9px; z-index:1;
    box-shadow:0 16px 34px -18px rgba(44,58,30,0.45);
  }
  .hist-img-2 img{width:100%; height:100%; object-fit:cover; display:block;}
  .hist-img-2 .img-wrap::after{
    content:""; position:absolute; inset:0; border-radius:9px;
    background:linear-gradient(180deg, rgba(20,26,12,0) 45%, rgba(20,26,12,0.82) 100%);
  }
  .cita-img{
    position:absolute; left:24px; right:24px; bottom:22px; z-index:2; color:#fff;
    font-family:'Fraunces', serif; font-style:italic; font-size:1.12rem; line-height:1.4;
  }
  .historia-texto{
    position:relative; z-index:1;
    background:rgba(246,242,231,0.72);
    border-radius:8px;
    padding:2px 14px;
  }
  .historia-texto p{margin-bottom:20px; color:#2A2C22; font-size:1.02rem; text-align:justify;}
  .historia-texto p:first-of-type::first-letter{
    font-family:'Fraunces', serif; font-size:3.1em; font-weight:600; float:left;
    line-height:0.82; margin:0.06em 0.10em 0 0; color:var(--tierra-oscura);
  }
  .firma-block{
    margin-top:36px; padding-top:24px; border-top:1px solid var(--borde);
    display:flex; gap:16px; align-items:center;
  }
  .firma-nombre{font-family:'Fraunces', serif; font-weight:600; font-size:1.05rem;}
  .firma-cargo{font-size:0.82rem; color:#6B6D5C;}

  /* ---------- HISTORIA: maqueta editorial (fotos solapadas + texto justificado en dos columnas) ---------- */
  .historia-editorial{ display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:start; margin-top:54px; }
  .td-fotos{ position:relative; aspect-ratio:558/760; }
  .td-fotos .f1{ position:absolute; left:0; top:0; width:72%; aspect-ratio:4/5; height:auto; object-fit:cover; border-radius:4px; box-shadow:0 26px 50px -24px rgba(44,58,30,.6); z-index:1; }
  .td-fotos .f2{ position:absolute; right:0; bottom:0; width:56%; aspect-ratio:1/1; height:auto; object-fit:cover; border-radius:4px; box-shadow:0 26px 50px -24px rgba(44,58,30,.6); z-index:2; }   /* sin marco blanco */
  .td-fotos::before{ content:""; position:absolute; left:22px; top:22px; width:72%; aspect-ratio:4/5; border:1.5px solid var(--cobre-logo); z-index:0; }
  .td-cita{ position:absolute; left:4%; bottom:0; width:36%; font-family:'Fraunces',serif; font-style:italic; font-size:1.08rem; line-height:1.4; color:var(--cafe); }
  .td-cita::before{ content:"\201C"; display:block; font-size:4rem; line-height:.6; color:var(--cobre-logo); font-style:normal; }
  .td-texto{ column-count:2; column-gap:44px; padding-top:8px; }
  .td-texto p{ margin:0 0 16px; font-size:1rem; line-height:1.7; text-align:justify; hyphens:auto; -webkit-hyphens:auto; color:#2A2C22; }
  .td-texto p:first-child::first-letter{ font-family:'Fraunces',serif; font-size:4.2em; font-weight:600; float:left; line-height:.78; margin:.05em .08em 0 0; color:var(--cobre-logo); }
  @media(max-width:1000px){
    .historia-editorial{ grid-template-columns:1fr; gap:40px; }
    .td-fotos{ max-width:560px; width:100%; margin:0 auto; }
  }
  @media(max-width:700px){
    .td-texto{ column-count:1; }
    .td-cita{ font-size:.95rem; width:38%; }
  }

  /* ---------- COMARCA / MAPA ---------- */
  .comarca{
    position:relative; border-top:1px solid var(--borde); border-bottom:1px solid var(--borde);
    background-image:
      linear-gradient(180deg, rgba(30,36,20,0.72) 0%, rgba(35,32,20,0.55) 45%, rgba(30,36,20,0.82) 100%),
      url(/wp-content/themes/cortijo-abuelo-pio/assets/img/img-12ac63f0c8.jpg);
    background-size:cover;
    background-position:center 35%;
    background-repeat:no-repeat;
    background-attachment:scroll;
  }
  .comarca .eyebrow{color:var(--ambar);}
  .comarca .titulo-seccion{color:#fff; text-shadow:0 2px 14px rgba(0,0,0,0.5);}
  .comarca .lead{color:#FFFFFF; text-shadow:0 1px 10px rgba(0,0,0,0.55);}
  .comarca-item{border-top-color:rgba(246,242,231,0.22) !important;}
  .comarca-item:last-child{border-bottom-color:rgba(246,242,231,0.22) !important;}
  .comarca-item h3{color:#fff; text-shadow:0 1px 8px rgba(0,0,0,0.5);}
  .comarca-item p{color:rgba(255,255,255,0.95) !important; text-shadow:0 1px 8px rgba(0,0,0,0.5);}
  .comarca-num{color:#DDBA45 !important;}
  .comarca .wrap{ max-width:1700px; }
  .comarca-grid{display:grid; grid-template-columns:1fr 1.25fr; gap:60px; align-items:start; margin-top:56px;}
  @media(max-width:900px){ .comarca-grid{grid-template-columns:1fr;} }
  .comarca-lista{display:flex; flex-direction:column; margin-top:12px;}
  .comarca-item{
    display:flex; gap:22px; padding:26px 0; border-top:1px solid var(--borde);
  }
  .comarca-item:last-child{border-bottom:1px solid var(--borde);}
  .comarca-num{font-family:'Fraunces', serif; font-size:1.1rem; color:var(--tierra-oscura); font-weight:600; min-width:28px;}
  .comarca-item h3{font-size:1.15rem; margin-bottom:6px;}
  .comarca-item p{color:#5C5E4E; font-size:0.96rem;}
  .comarca-mapa{
    background:var(--turquesa); border-radius:6px; padding:44px 36px; color:var(--crema);
    position:sticky; top:110px; margin-top:20px;
    border:1px solid rgba(201,162,39,0.55);
    box-shadow:0 24px 50px -24px rgba(0,0,0,0.55);
  }
  .comarca-mapa::before{
    content:""; position:absolute; inset:7px; border-radius:3px;
    border:1px solid rgba(246,242,231,0.16); pointer-events:none;
  }
  .comarca-mapa .etiqueta{font-size:0.95rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--dorado); font-weight:700;}
  .comarca-mapa h3{color:#fff; font-size:2.1rem; margin-top:14px; white-space:nowrap;}
  .comarca-mapa p{color:rgba(246,242,231,0.82); margin-top:14px; font-size:0.95rem; text-align:justify;}
  .comarca-stat-row{display:flex; flex-wrap:wrap; justify-content:center; gap:20px 24px; margin-top:30px; padding-top:26px; border-top:1px solid rgba(246,242,231,0.2);}
  .comarca-stat{display:flex; align-items:center; gap:14px;}
  .comarca-stat .stat-ico{flex-shrink:0; width:52px; height:52px; color:var(--dorado);}
  .comarca-stat .stat-ico svg{width:100%; height:100%; display:block;}
  .comarca-stat .stat-ico-img img{width:100%; height:100%; object-fit:contain; display:block;}
  .comarca-stat:first-child .stat-ico{width:78px; height:58px;}
  .comarca-stat .stat-txt b{display:block; font-family:'Fraunces', serif; font-size:2rem; color:var(--dorado); line-height:1;}
  .comarca-stat .stat-txt span{font-size:0.88rem; color:var(--dorado); font-weight:600;}
  /* A anchos de portátil habituales (1366-1535px, entre el corte a 1 columna a 1000px
     y el punto en que la caja ya es lo bastante ancha) el 3er dato ("Almazaras
     familiares") bajaba a una 2ª línea. En vez de estrechar la columna de texto de la
     izquierda (lo que el usuario pidió mantener ancho) o el ancho total de la caja, se
     reduce un poco el tamaño de iconos/números SOLO en este rango — a partir de 1536px
     se mantienen los tamaños grandes de siempre. */
  @media(min-width:1001px) and (max-width:1535px){
    .comarca-stat{gap:9px;}
    .comarca-stat-row{gap:16px 12px;}
    .comarca-stat .stat-ico{width:40px; height:40px;}
    .comarca-stat:first-child .stat-ico{width:56px; height:42px;}
    .comarca-stat .stat-txt b{font-size:1.55rem;}
    .comarca-stat .stat-txt span{font-size:0.75rem;}
  }

  /* ---------- «Origen verificado» sin caja: sello circular + texto suelto sobre la foto + datos en fila ---------- */
  .comarca-mapa{
    background:none; border:none; box-shadow:none; border-radius:0; padding:0; isolation:isolate; text-align:center;
    display:flex; flex-direction:column; align-items:center;
    margin-top:0;             /* sube el bloque entero 20 px (~0,5 cm) respecto a antes (20 px) */
  }
  .comarca-mapa::before{      /* difuminado oscuro y suave detras del texto (sin bordes) para que se lea sobre las ramas */
    z-index:-1; inset:-46px -34px -38px; border:none; border-radius:0;
    background:radial-gradient(ellipse 62% 58% at 50% 46%, rgba(9,20,19,.70) 0%, rgba(9,20,19,.46) 55%, rgba(9,20,19,0) 100%);
  }
  .comarca-mapa .etiqueta{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }   /* el sello ya dice «Origen verificado» */
  .comarca-mapa .sello{ width:172px; height:172px; margin:0 0 6px; filter:drop-shadow(0 14px 26px rgba(0,0,0,.45)); }
  .comarca-mapa h3{ margin-top:8px; font-size:2.4rem; text-shadow:0 2px 16px rgba(0,0,0,.55); }
  .comarca-mapa p{ text-align:center; color:#fff; font-size:1rem; max-width:44ch; text-shadow:0 1px 3px rgba(0,0,0,.6), 0 2px 14px rgba(0,0,0,.55); }
  .comarca-mapa .comarca-stat-row{ flex-wrap:nowrap; gap:0; margin-top:26px; padding-top:22px; border-top:1px solid rgba(246,242,231,.35); width:100%; justify-content:center; }
  .comarca-mapa .comarca-stat{ display:block; flex:1 1 0; min-width:0; text-align:center; padding:0 12px; }
  .comarca-mapa .comarca-stat + .comarca-stat{ border-left:1px solid rgba(246,242,231,.35); }
  .comarca-mapa .comarca-stat .stat-txt b{ font-size:2.1rem; color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.5); }
  .comarca-mapa .comarca-stat .stat-txt span{ display:block; margin-top:6px; font-size:.78rem; letter-spacing:.06em; color:#DDBA45; text-shadow:0 1px 8px rgba(0,0,0,.6); }
  @media(min-width:1001px) and (max-width:1535px){
    .comarca-mapa .comarca-stat{ padding:0 8px; }
    .comarca-mapa .comarca-stat .stat-txt b{ font-size:1.6rem; }
    .comarca-mapa .comarca-stat .stat-txt span{ font-size:.72rem; letter-spacing:.03em; }
    .comarca-mapa h3{ font-size:2.1rem; }
  }
  @media(max-width:560px){
    .comarca-mapa .sello{ width:140px; height:140px; }
    .comarca-mapa h3{ font-size:1.9rem; }
    .comarca-mapa .comarca-stat{ padding:0 6px; }
    .comarca-mapa .comarca-stat .stat-txt b{ font-size:1.3rem; }
    .comarca-mapa .comarca-stat .stat-txt span{ font-size:.66rem; letter-spacing:0; }
  }

  /* ---------- PRODUCTOS ---------- */
  .productos{background:var(--crema);}
  .productos-head{display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap;}
  /* Cabecera de campaña sobre cada fila de fichas del catálogo (22 sep 2026): cuando llegue la
     campaña 26/27 se añade una segunda fila duplicando este mismo bloque + un nuevo .producto-grid;
     el margen superior lo pone esta cabecera, no la rejilla, para que las filas se apilen solas. */
  .producto-grupo-campana{
    display:flex; align-items:center; gap:16px; margin-top:60px;
    font-weight:700; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--cobre-logo);
  }
  .producto-grupo-campana::after{content:""; flex:1 1 auto; height:1px; background:var(--cobre-logo); opacity:.35;}
  .producto-grid{
    display:grid; grid-template-columns:repeat(4, 1fr); gap:28px;
    margin-top:28px;
  }
  @media(max-width:1000px){ .producto-grid{grid-template-columns:repeat(2,1fr);} }
  @media(max-width:560px){ .producto-grid{grid-template-columns:1fr;} }
  .producto-card{
    background:var(--crema); padding:34px 26px; position:relative;
    border:1px solid var(--borde); border-radius:22px;
    display:flex; flex-direction:column;
    color:inherit; text-decoration:none; cursor:pointer;
    transition:background .3s ease, border-color .3s ease, box-shadow .3s ease, transform .3s ease;
  }
  .producto-card::after{
    content:"Ver producto →"; position:absolute; left:26px; bottom:-2px; opacity:0;
    font-size:0.8rem; font-weight:700; letter-spacing:0.04em; color:var(--cobre-logo);
    transition:opacity .3s ease, bottom .3s ease;
  }
  .producto-card:hover::after{opacity:1; bottom:14px;}
  .producto-card:hover{padding-bottom:52px;}
  .producto-card:hover{
    background:#fff; border-color:var(--tierra-oscura);
    box-shadow:0 16px 32px rgba(44,58,30,0.10); transform:translateY(-3px);
  }
  .producto-tag{
    display:inline-block; font-size:0.68rem; font-weight:700; letter-spacing:0.12em;
    text-transform:uppercase; color:var(--tierra-oscura); border:1px solid var(--tierra-oscura);
    padding:5px 11px; border-radius:20px; margin-bottom:22px; align-self:flex-start;
  }
  .producto-visual{
    height:260px; border-radius:16px; margin-bottom:24px;
    position:relative; overflow:hidden;
    background:linear-gradient(160deg, var(--crema-oscura), #E4DCC6);
    display:flex; align-items:center; justify-content:center;
  }
  .producto-visual img{
    max-width:78%; max-height:82%; width:auto; height:auto;
    object-fit:contain;
    filter:drop-shadow(0 14px 18px rgba(44,58,30,0.16));
    transition:transform .4s ease;
  }
  .producto-card:hover .producto-visual img{transform:scale(1.04);}
  .producto-card h3{font-size:1.2rem; margin-bottom:10px;}
  .producto-card p{color:#5C5E4E; font-size:0.92rem; margin-bottom:22px; text-align:justify;}
  .producto-precio{
    display:flex; justify-content:space-between; align-items:baseline;
    padding-top:18px; border-top:1px solid var(--borde); margin-top:auto;
  }
  .producto-precio b{font-family:'Fraunces', serif; font-size:1.4rem; color:var(--verde-oscuro);}
  .producto-precio span{font-size:0.8rem; color:#8A8C78;}

  /* ---------- PROCESO ---------- */
  .proceso{background:var(--turquesa); color:var(--crema);}
  .proceso .eyebrow{color:var(--ambar);}
  .proceso .titulo-seccion{color:#fff;}
  .proceso .lead{color:rgba(246,242,231,0.78);}
  /* Alineado con la seccion Historia: misma anchura maxima y por tanto mismo margen izquierdo.
     container-type permite calcular (en cqw) el hueco real entre ventanas para la linea que las une. */
  .proceso .wrap{ max-width:1440px; container-type:inline-size; }
  /* Ventanas con el tamaño original (261x280); lo que sobra de ancho se reparte ENTRE ventanas
     (la primera queda en el margen izquierdo de la seccion y la ultima en el derecho). */
  .proceso-grid{
    --n:4;
    --w:min(235px, calc((100cqw - 3 * 28px) / 4));
    --enlace:calc((100cqw - var(--n) * var(--w)) / (var(--n) - 1) + var(--w));
    display:grid; grid-template-columns:repeat(var(--n), var(--w)); justify-content:space-between;
    row-gap:64px; margin-top:64px;
  }
  @media(max-width:900px){
    .proceso-grid{ --n:2; --w:min(235px, calc((100cqw - 32px) / 2)); }
  }
  @media(max-width:560px){
    .proceso-grid{ --n:1; --w:100cqw; grid-template-columns:minmax(0,1fr); }
  }
  .proceso-step{ display:flex; flex-direction:column; outline:none; }
  /* Titulo fuera de la imagen, centrado encima de la ventana y subrayado */
  .paso-titulo{
    margin:0 0 22px; color:#fff; font-size:clamp(1.1rem, 1.5vw, 1.3rem); line-height:1.15;
    display:flex; align-items:flex-end; justify-content:center; text-align:center;
  }
  .paso-titulo span{
    text-decoration:underline; text-decoration-color:#DDBA45;
    text-decoration-thickness:2px; text-underline-offset:9px;
  }
  .paso-titulo .paso-n{ color:#DDBA45; }
  @media(min-width:901px){ .paso-titulo{ white-space:nowrap; } }
  /* Carta que se da la vuelta */
  .paso-carta{ position:relative; width:var(--w); aspect-ratio:261/280; perspective:1400px; cursor:pointer; }
  @media(max-width:560px){ .paso-carta{ aspect-ratio:auto; height:250px; } }
  /* Linea desde el centro de esta ventana hasta el centro de la siguiente (queda oculta bajo las ventanas) */
  .paso-carta::before{
    content:""; position:absolute; z-index:0; left:50%; top:50%; height:1px; transform:translateZ(-2px);
    width:calc(var(--w) + 60px); background:rgba(221,186,69,0.7);
  }
  @supports (width:1cqw){ .paso-carta::before{ width:var(--enlace); } }
  .proceso-step:last-child .paso-carta::before{ display:none; }
  @media(max-width:900px){
    .proceso-step:nth-child(even) .paso-carta::before{ display:none; }
  }
  @media(max-width:560px){ .paso-carta::before{ display:none; } }
  .paso-inner{
    position:absolute; z-index:1; inset:0; transform-style:preserve-3d;
    transition:transform .8s cubic-bezier(.4,.2,.2,1);
  }
  .paso-cara{
    position:absolute; inset:0; border-radius:20px; overflow:hidden;
    backface-visibility:hidden; -webkit-backface-visibility:hidden;
    border:1px solid var(--pistacho);
  }
  /* Foto real (antes era background-image en .paso-cara, sin alt: mala para SEO/accesibilidad).
     object-fit:cover reproduce el mismo encuadre que tenía background-size:cover. */
  .paso-foto{ width:100%; height:100%; object-fit:cover; display:block; }
  .paso-dorso{
    transform:rotateY(180deg);
    display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center;
    padding:26px 24px;
  }
  .paso-dorso::before{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(20,44,42,0.90), rgba(14,32,30,0.95));
  }
  .paso-dorso::after{
    content:""; position:relative; z-index:1; order:-1; width:38px; height:2px; background:#DDBA45; margin-bottom:18px;
  }
  .paso-dorso p{
    position:relative; z-index:1; margin:0; color:rgba(246,242,231,0.94); font-size:.97rem; line-height:1.6; text-align:center;
  }
  @media(hover:hover){ .paso-carta:hover .paso-inner{ transform:rotateY(180deg); } }
  .proceso-step:focus-visible .paso-inner, .proceso-step.abierto .paso-inner{ transform:rotateY(180deg); }
  .proceso-step:focus-visible .paso-carta{ outline:2px solid #DDBA45; outline-offset:6px; border-radius:22px; }
  @media(prefers-reduced-motion: reduce){
    .paso-inner{ transition:none; }
  }
  /* ---------- TESTIMONIOS ---------- */
  .testimonios{background:var(--crema); overflow:hidden;}
  /* Misma anchura maxima (y margen izquierdo) que Historia y Proceso */
  .testimonios .wrap{ max-width:1440px; }
  .testimonios-head{display:flex; justify-content:space-between; align-items:flex-start; gap:40px; flex-wrap:wrap;}

  /* Valoracion de Google: insignia redonda. 5 estrellas (2 arriba, 3 abajo), «5/5» y «Reseñas de Google» */
  .testimonios-rating{
    width:196px; height:196px; border-radius:50%; flex-shrink:0;
    display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
    background:radial-gradient(circle at 50% 35%, #fff 0%, var(--crema-oscura) 100%);
    border:2px solid rgba(201,162,39,0.55);
    box-shadow:0 0 0 7px rgba(201,162,39,0.10), 0 18px 34px -18px rgba(32,64,62,0.45);
  }
  .rating-estrellas{ color:var(--dorado); font-size:1.4rem; line-height:1.05; letter-spacing:5px; }
  .rating-estrellas span{ display:block; padding-left:5px; }
  .rating-nota{ font-family:'Fraunces', serif; font-weight:600; font-size:2.1rem; line-height:1; color:var(--verde-oscuro); margin-top:9px; }
  .rating-fuente{ font-size:0.74rem; color:#6B6D5C; margin-top:5px; letter-spacing:.02em; }
  @media(max-width:700px){ .testimonios-rating{ width:170px; height:170px; margin:0 auto; } .rating-estrellas{ font-size:1.2rem; } .rating-nota{ font-size:1.8rem; } }

  /* Opiniones en anillo: la del centro va grande y las demas quedan detras, mas pequeñas, en triangulo.
     La posicion de cada tarjeta la calcula el script (transform); aqui solo el escenario y la tarjeta. */
  .opiniones{ margin-top:36px; }
  .opiniones-anillo{
    display:grid; justify-items:center; position:relative; touch-action:pan-y; padding-top:110px; padding-bottom:26px;
  }
  .testimonio-card{padding:40px 38px; display:flex; flex-direction:column; border:1px solid var(--borde); border-radius:18px;}
  .opiniones-anillo .testimonio-card{
    grid-area:1 / 1; width:min(560px, 100%); box-sizing:border-box;
    background:#FFFDF8; cursor:pointer; user-select:none;
    box-shadow:0 14px 30px -20px rgba(32,64,62,0.45);
    transition:transform .85s cubic-bezier(.22,.8,.24,1), filter .85s ease, box-shadow .85s ease;
    will-change:transform;
  }
  .opiniones-anillo .testimonio-card.activa{ cursor:default; box-shadow:0 30px 60px -26px rgba(32,64,62,0.5); }
  .opiniones-controles{ display:flex; align-items:center; justify-content:center; gap:22px; margin-top:8px; }
  .opiniones-flecha{
    width:46px; height:46px; border-radius:50%; cursor:pointer;
    border:1.5px solid rgba(201,162,39,0.75); background:transparent; color:var(--verde-oscuro);
    display:flex; align-items:center; justify-content:center; transition:background .2s ease, color .2s ease;
  }
  .opiniones-flecha:hover{ background:var(--dorado); color:var(--turquesa); }
  .opiniones-flecha svg{ width:20px; height:20px; }
  .opiniones-puntos{ display:flex; gap:10px; }
  .opiniones-puntos button{
    width:10px; height:10px; border-radius:50%; padding:0; cursor:pointer; border:none;
    background:rgba(32,64,62,0.22); transition:background .2s ease, transform .2s ease;
  }
  .opiniones-puntos button.activo{ background:var(--dorado); transform:scale(1.3); }
  @media(prefers-reduced-motion: reduce){ .opiniones-anillo .testimonio-card{ transition:none; } }
  @media(max-width:640px){ .opiniones-anillo .testimonio-card{ padding:30px 24px; } }
  .testimonio-estrellas{color:var(--dorado); font-size:0.95rem; letter-spacing:2px; margin-bottom:18px;}
  .testimonio-texto{
    font-family:'Fraunces', serif; font-style:italic; font-size:1.05rem; line-height:1.55;
    color:#3A3C2E; flex-grow:1;
  }
  .testimonio-autor{
    display:flex; align-items:center; gap:14px;
    margin-top:26px; padding-top:20px; border-top:1px solid var(--borde);
  }
  .testimonio-avatar{
    width:42px; height:42px; border-radius:50%; background:var(--turquesa); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-family:'Fraunces', serif; font-weight:600; font-size:0.95rem; flex-shrink:0;
  }
  .testimonio-nombre{font-weight:700; font-size:0.92rem; color:var(--verde-oscuro);}
  .testimonio-fuente{font-size:0.78rem; color:#8A8C78;}

  /* ---------- CTA FINAL ---------- */
  .cta-final{
    position:relative;
    background-image:
      linear-gradient(180deg, rgba(10,8,4,0.55) 0%, rgba(10,8,4,0.35) 40%, rgba(8,6,3,0.82) 100%),
      none;
    background-size:cover;
    background-position:center 38%;
    color:#fff; text-align:center; overflow:hidden;
    padding-top:140px; padding-bottom:140px;
  }
  .cta-final h2{color:#fff; max-width:none;}
  .cta-final p{color:rgba(255,255,255,0.9); max-width:48ch; margin:20px auto 0;}
  .cta-actions{display:flex; justify-content:center; gap:16px; margin-top:38px; flex-wrap:wrap;}
  .cta-final .btn-primary{background:linear-gradient(180deg,#DDBA45,var(--dorado)); color:var(--verde-oscuro);}
  .cta-final .btn-ghost{box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 0 0 1.5px rgba(255,255,255,.7);}

  /* ---------- FOOTER ---------- */
  footer{background:var(--turquesa); color:rgba(246,242,231,0.65); padding:64px 0 32px;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:50px; align-items:baseline;}
  @media(max-width:780px){ .footer-grid{grid-template-columns:1fr; gap:36px;} }
  .footer-grid h4{color:#fff; font-family:'Karla',sans-serif; font-size:0.92rem; letter-spacing:0.14em; text-transform:uppercase; margin-bottom:16px; line-height:1.2;}
  .footer-grid a, .footer-grid p{font-size:1.02rem; color:rgba(246,242,231,0.65); display:block; margin-bottom:10px;}
  .footer-brand{font-family:'Fraunces', serif; font-size:1.5rem; color:#fff; margin-bottom:16px; line-height:1.2;}
  .footer-bottom{
    margin-top:56px; padding-top:26px; border-top:1px solid rgba(246,242,231,0.15);
    display:flex; justify-content:space-between; font-size:0.8rem; flex-wrap:wrap; gap:10px;
  }

  /* ---------- REVEAL ----------
     IMPORTANTE: el contenido es VISIBLE por defecto. La animación
     de aparición SOLO se activa si el JavaScript añade la clase
     'js-anim' al <html>. Así, si el JS no se ejecuta o el navegador
     (p. ej. Safari iOS) no coopera, el contenido se ve igualmente. */
  .reveal{opacity:1; transform:none;}
  html.js-anim .reveal{
    opacity:0; transform:translateY(24px);
    transition:opacity .7s ease, transform .7s ease;
  }
  html.js-anim .reveal.in{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    html.js-anim .reveal{opacity:1; transform:none; transition:none;}
    .franja-track{animation:none;}
    html{scroll-behavior:auto;}
  }

  /* =========================================================
     CORRECCIONES EXCLUSIVAS PARA SAFARI EN iOS (iPhone/iPad)
     Todo lo de aquí se activa SOLO con la clase .ios-safari
     que añade el JavaScript al detectar Safari sobre iOS.
     Android, Chrome y escritorio NO entran aquí: se quedan
     exactamente igual que antes.
     ========================================================= */

  /* (0) Evita scroll horizontal por la franja animada, solo iOS */
  html.ios-safari, html.ios-safari body{ overflow-x:hidden; }

  /* ===== CORRECCIONES RESPONSIVE GLOBALES (evitar margen/scroll horizontal) ===== */
  html, body{ overflow-x:hidden; max-width:100%; }
  *{ min-width:0; }
  img{ max-width:100%; height:auto; }
  /* La tarjeta "Origen verificado" no debe quedar sticky ni desbordar en pantallas
     medianas/pequeñas (tablet y móvil), en TODOS los navegadores, no solo iOS. */
  @media(max-width:1000px){
    .comarca-grid{ grid-template-columns:1fr !important; gap:40px; }
    .comarca-mapa{ position:static !important; top:auto !important; margin-top:24px; }
    .prod-hero-grid{ grid-template-columns:1fr !important; gap:40px; }
    .zig-grid{ grid-template-columns:1fr !important; gap:32px; }
    .zig.rev .zig-visual, .zig.rev .zig-texto{ order:0 !important; }
    .historia-grid{ grid-template-columns:1fr !important; gap:36px; }
    .ficha-grid{ grid-template-columns:repeat(2,1fr) !important; }
    .footer-grid{ grid-template-columns:1fr !important; gap:30px; }
  }
  @media(max-width:560px){
    .wrap{ padding-left:20px; padding-right:20px; }
    .ficha-grid{ grid-template-columns:1fr !important; }
    .news-input-row{ flex-direction:column; }
  }

  /* (1) Altura real del hero en Safari iOS.
         En iOS 100vh no descuenta la barra del navegador. */
  html.ios-safari .hero{
    height:100svh;
    height:-webkit-fill-available;
    min-height:-webkit-fill-available;
  }

  /* (2) Fallback del vídeo del hero: Safari iOS NO reproduce
         vídeo desde data: URI, así que ocultamos el <video>
         y mostramos el póster (ya embebido) como fondo. */
  html.ios-safari .hero video{
    display:none !important; visibility:hidden !important;
    opacity:0 !important; pointer-events:none !important;
  }


  html.ios-safari .hero{
    background-color:var(--verde-oscuro);
    background-image:var(--hero-poster);
    background-size:cover;
    background-position:center 30%;
    background-repeat:no-repeat;
  }

  /* (3) La tarjeta-mapa deja de ser "sticky" en móvil iOS
         para que no se solape con la sección siguiente. */
  @media(max-width:900px){
    html.ios-safari .comarca-mapa{ position:static; top:auto; }
  }

  /* (4) Fallback de aspect-ratio para iOS antiguos (<15):
         si aspect-ratio no está soportado, damos altura por
         padding para que la foto de historia no colapse. */
  @supports not (aspect-ratio: 1 / 1){
    html.ios-safari .historia-visual{
      height:0;
      padding-top:125%; /* equivale a 4:5 */
    }
  }

  /* ---------- SISTEMA DE VISTAS (catálogo <-> detalle) ---------- */
  body.viendo-producto #vistaPrincipal{display:none;}
  #vistaProducto{display:none;}
  body.viendo-producto #vistaProducto{display:block;}
  .ficha-producto{display:none; padding-bottom:0;}
  .ficha-producto.activa{display:block;}

  /* En la vista de producto el header está SIEMPRE en modo sólido (fondo crema,
     texto cobre), sin depender del scroll ni del vídeo (que aquí no existe). */
  body.viendo-producto header.nav{
    background:var(--turquesa) !important;
    backdrop-filter:blur(18px);
    padding:10px 40px !important;
    box-shadow:0 8px 24px -12px rgba(0,0,0,.45) !important;
  }
  /* Sin intercambio a cobre: logo y texto se quedan blancos, igual que en el
     resto del sitio (decision ya tomada esta sesion tras probarlo y descartarlo). */

  /* ---------- NEWSLETTER (vista propia) ---------- */
  #vistaNewsletter{display:none;}
  body.viendo-newsletter #vistaPrincipal{display:none;}
  body.viendo-newsletter #vistaProducto{display:none;}
  body.viendo-newsletter #vistaTienda{display:none;}
  body.viendo-newsletter #vistaNewsletter{display:block;}
  /* header sólido también en la vista newsletter */
  /* body.viendo-newsletter header.nav: quitado (10 sep 2026) para que la cabecera use el mismo transparente->turquesa al hacer scroll que el resto del sitio */

  /* ---------- TIENDA (vista propia) ---------- */
  #vistaTienda{display:none;}
  body.viendo-tienda #vistaPrincipal{display:none;}
  body.viendo-tienda #vistaProducto{display:none;}
  body.viendo-tienda #vistaTienda{display:block;}
  /* body.viendo-tienda header.nav: quitado (10 sep 2026) para que la cabecera use el mismo transparente->turquesa al hacer scroll que el resto del sitio */

  .tienda-hero{
    min-height:220px; display:flex; align-items:flex-end; position:relative; overflow:hidden;
    padding:130px 0 34px; color:#fff;
  }
  .tienda-hero-foto{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center;
    transform:scale(1.06); animation:heroKen 22s ease-out forwards;
  }
  .tienda-hero::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(32,64,62,.20) 0%, rgba(15,26,25,.50) 60%, rgba(10,18,17,.82) 100%);
  }
  .tienda-hero .wrap{ position:relative; z-index:1; }
  .tienda-hero h1{color:#fff; font-size:2.3rem; margin:0;}

  .envio-strip{
    background:var(--turquesa); color:var(--crema); text-align:center;
    padding:14px 20px; font-size:0.92rem; font-weight:600; letter-spacing:0.01em;
    display:flex; align-items:center; justify-content:center; gap:10px; position:relative; min-height:20px;
  }
  .envio-strip .msg{opacity:0; position:absolute; left:0; right:0; transition:opacity .6s ease; display:flex; align-items:center; justify-content:center; gap:10px;}
  .envio-strip .msg.activo{opacity:1; position:relative;}

  .breadcrumb-tienda{padding:20px 0 0; font-size:0.85rem; color:var(--verde-oliva);}
  .breadcrumb-tienda a{color:var(--verde-oliva); text-decoration:underline;}

  /* Banda "comprar" con imagen fija (parallax barato con background-attachment) */
  .parallax-buy{
    min-height:50vh; display:flex; align-items:center; justify-content:center;
    background-image:linear-gradient(rgba(20,26,12,0.15), rgba(20,26,12,0.3)), var(--buy-bg);
    background-size:cover; background-position:center; background-attachment:fixed;
  }
  @media (max-width:900px){ .parallax-buy{background-attachment:scroll;} }
  .parallax-buy .btn-buy{
    background:var(--crema); color:var(--verde-oscuro); font-weight:700;
    padding:22px 42px; border-radius:60px; display:inline-flex; align-items:center; gap:14px;
    box-shadow:0 20px 50px -20px rgba(0,0,0,0.6); letter-spacing:0.03em; text-transform:uppercase; font-size:0.92rem;
    transition:transform .2s ease;
  }
  .parallax-buy .btn-buy:hover{transform:translateY(-2px);}
  .parallax-buy .btn-buy svg{width:18px; height:18px;}

  /* Selector de packs en ficha de producto (fondo blanco) */
  .pills-cat{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:20px;}
  .pill-cat{background:rgba(85,102,61,0.10); border:1px solid rgba(85,102,61,0.28); border-radius:30px; padding:8px 18px; font-size:0.85rem; font-weight:700; letter-spacing:0.02em; color:var(--verde-calido); text-transform:uppercase;}
  .packs-selector{border:1px solid var(--borde); border-radius:14px; padding:6px; margin:18px 0;}
  .pack-opt{display:flex; align-items:center; gap:12px; padding:15px 16px; border-radius:10px; cursor:pointer;}
  .pack-opt:hover{background:var(--crema-oscura);}
  .pack-opt input{accent-color:var(--dorado-texto); width:18px; height:18px; flex:none;}
  .pack-opt.activo{background:var(--crema-oscura);}
  .pack-opt .pack-label{font-weight:600; color:var(--cobre-logo); font-size:1rem;}
  .pack-opt .pack-precio{margin-left:auto; color:var(--dorado-texto); font-weight:700; font-size:0.98rem;}

  .compra-box{margin-top:16px;}
  .qty-add{display:flex; gap:12px; align-items:stretch;}
  .qty-box{display:flex; align-items:center; border:1px solid var(--borde); border-radius:10px; overflow:hidden;}
  .qty-box button{width:38px; background:var(--crema-oscura); border:none; font-size:1.15rem; font-family:'Fraunces',serif; color:var(--verde-oscuro); cursor:pointer;}
  .qty-box input{width:44px; border:none; text-align:center; font-size:1.05rem; font-family:'Fraunces',serif; -moz-appearance:textfield;}
  .qty-box input::-webkit-outer-spin-button, .qty-box input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
  .qty-add .btn-primary{flex:1; text-align:center;}

  .trust-list{list-style:none; margin:24px 0 0; padding:0; display:flex; flex-direction:column; gap:14px;}
  .trust-list li{display:flex; gap:12px; align-items:flex-start; font-size:1.02rem; color:var(--cobre-logo);}
  .trust-list li .ico{flex:none; width:20px; text-align:center; color:var(--verde-calido); font-weight:700;}

  .duda-box{margin-top:20px; padding:16px 18px; border:1px solid rgba(85,102,61,0.2); background:var(--crema-oscura); border-radius:14px; display:flex; gap:12px; align-items:flex-start;}
  .duda-box svg{width:24px; height:24px; flex:none; margin-top:2px; color:var(--dorado-texto);}
  .duda-box h4{color:var(--verde-oscuro); margin-bottom:3px; font-family:'Fraunces',serif; font-size:1rem;}
  .duda-box a{color:var(--dorado-texto); font-weight:600;}

  /* Pestañas Descripción / Origen y uso / Ficha / Nota de Cata / Valor Nutricional (fondo blanco) */
  .tabs-nav{display:flex; flex-wrap:wrap; justify-content:center; gap:2px; border-bottom:1px solid var(--borde); margin-top:12px;}
  .tab-btn{padding:16px 22px; font-weight:700; font-size:1rem; color:var(--cobre-logo); opacity:1; border-bottom:3px solid transparent; cursor:pointer; background:none; border-top:none; border-left:none; border-right:none; font-family:'Karla',sans-serif;}
  .tab-btn.activo{opacity:1; color:var(--verde-calido); border-bottom-color:var(--dorado-texto);}
  .tab-panel{display:none; padding:28px 0; color:var(--cobre-logo); font-size:1.02rem; max-width:900px;}
  .tab-panel.activo{display:block;}
  .tab-panel h4{color:var(--verde-calido); font-size:1.05rem;}
  .tab-panel strong{color:var(--cobre-logo);}
  .tab-panel ul{color:var(--cobre-logo);}
  .tab-table{width:100%; border-collapse:collapse; font-size:1rem;}
  .tab-table td{padding:13px 16px; border-bottom:1px solid var(--borde); font-size:1rem;}
  .tab-table td:first-child{font-weight:700; color:var(--verde-calido); width:210px;}

  /* Nota de cata: icono + texto por bloque */
  .cata-item{display:flex; gap:18px; align-items:flex-start; margin-bottom:26px;}
  .cata-item:last-of-type{margin-bottom:18px;}
  .cata-ico{flex:none; width:34px; height:34px; color:var(--verde-calido); margin-top:2px;}
  .cata-texto h4{margin:0 0 6px; color:var(--verde-calido); font-size:1.05rem;}
  .cata-texto p{margin:0;}
  .nota-fuente{font-size:0.8rem; color:var(--cobre-logo); opacity:0.6; margin-top:4px;}

  /* Cross-venta entre formatos */
  .cross-venta{margin-top:10px !important; background:rgba(85,102,61,0.07); border:1px solid rgba(85,102,61,0.2); padding:12px 14px; border-radius:10px;}

  /* Galería de fotos del producto: principal + miniaturas + lupa */
  .galeria-principal{position:relative; border-radius:16px; overflow:hidden; aspect-ratio:4/5; width:100%; flex:none;}
  .galeria-img-activa{width:100%; height:100%; object-fit:cover; display:block; cursor:zoom-in; transition:transform .12s ease-out;}
  .galeria-principal.zoom-activo .galeria-img-activa{transform:scale(1.5);}
  .galeria-zoom{position:absolute; bottom:16px; right:16px; width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,0.95); border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 6px 18px rgba(0,0,0,0.2); color:var(--verde-oscuro); transition:transform .15s ease;}
  .galeria-zoom:hover{transform:scale(1.08);}
  .galeria-zoom svg{width:20px; height:20px;}
  .galeria-thumbs{display:flex; gap:12px; margin-top:14px; flex:none;}
  .thumb{width:78px; height:78px; border-radius:10px; overflow:hidden; border:2px solid transparent; padding:0; cursor:pointer; background:none; flex:none; transition:border-color .15s ease;}
  .thumb img{width:100%; height:100%; object-fit:cover; display:block;}
  .thumb.activo, .thumb:hover{border-color:var(--dorado-texto);}

  #lightbox{position:fixed; inset:0; background:rgba(20,20,15,0.94); display:none; align-items:center; justify-content:center; z-index:1000; padding:50px;}
  #lightbox.activo{display:flex;}
  #lightbox img{width:auto; height:88vh; max-width:88vw; object-fit:contain; border-radius:6px; box-shadow:0 30px 80px -20px rgba(0,0,0,0.6);}
  .lightbox-close{position:absolute; top:26px; right:34px; width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,0.14); border:none; color:#fff; font-size:1.6rem; line-height:1; cursor:pointer;}
  .lightbox-close:hover{background:rgba(255,255,255,0.24);}
  .cross-venta a{color:var(--dorado-texto); font-weight:700;}


  .news-hero{
    min-height:100vh; display:flex; align-items:center; position:relative; overflow:hidden;
    padding:130px 0 80px; color:var(--crema);
  }
  .news-hero-foto{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center;
    transform:scale(1.06); animation:heroKen 22s ease-out forwards;
  }
  .news-hero::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(32,64,62,.35) 0%, rgba(15,26,25,.62) 55%, rgba(10,18,17,.88) 100%);
  }
  .news-hero .wrap{ position:relative; z-index:1; }
  .news-box{max-width:640px; margin:0 auto; text-align:center;}
  .news-eyebrow{
    font-weight:700; font-size:0.92rem; letter-spacing:0.24em; text-transform:uppercase;
    color:var(--ambar); margin-bottom:20px; display:inline-flex; align-items:center; gap:12px;
  }
  .news-eyebrow::before, .news-eyebrow::after{content:""; width:30px; height:1px; background:var(--ambar);}
  .news-hero h1{font-size:clamp(2.4rem, 5vw, 3.8rem); font-weight:600; margin-bottom:20px; color:#fff;}
  .news-hero h1 em{font-style:italic; color:var(--dorado);}
  .news-hero p.intro{font-size:1.12rem; color:rgba(246,242,231,0.9); margin-bottom:14px; line-height:1.7;}
  .news-ventajas{
    display:flex; gap:26px; justify-content:center; flex-wrap:wrap;
    margin:30px 0 38px; font-size:0.92rem; color:rgba(246,242,231,0.82);
  }
  .news-ventajas span{display:inline-flex; align-items:center; gap:8px;}
  .news-ventajas svg{width:20px; height:20px; color:var(--dorado); flex-shrink:0;}
  .news-form{max-width:480px; margin:0 auto;}
  .news-input-row{display:flex; gap:10px; margin-bottom:16px;}
  .news-input-row input[type=email]{
    flex:1; padding:15px 18px; border:1px solid rgba(246,242,231,0.4);
    background:rgba(246,242,231,0.12); color:#fff; border-radius:2px; font-size:1rem;
    font-family:'Karla', sans-serif;
  }
  .news-input-row input[type=email]::placeholder{color:rgba(246,242,231,0.6);}
  .news-input-row input[type=email]:focus{outline:none; border-color:var(--dorado); background:rgba(246,242,231,0.18);}
  .news-btn{
    padding:15px 30px; background:var(--dorado); color:#fff; border:none; border-radius:2px;
    font-weight:700; font-size:0.98rem; cursor:pointer; font-family:'Karla', sans-serif; white-space:nowrap;
    transition:background .25s ease;
  }
  .news-btn:hover{background:#B89120;}
  .news-consent{
    display:flex; align-items:flex-start; gap:10px; text-align:left;
    font-size:0.82rem; color:rgba(246,242,231,0.75); line-height:1.5;
  }
  .news-consent input{margin-top:3px; flex-shrink:0; accent-color:var(--dorado);}
  .news-consent span{text-align:justify;}
  .news-consent .news-baja{display:block; margin-top:4px;}
  .news-consent a{color:var(--ambar); text-decoration:underline;}
  .news-ok{
    display:none; margin-top:20px; padding:16px 20px; border-radius:4px;
    background:rgba(156,179,128,0.2); border:1px solid var(--pistacho);
    color:#fff; font-size:0.95rem;
  }
  .news-ok.visible{display:block;}
  @media(max-width:640px){
    .news-input-row{flex-direction:column;}
    .news-ventajas{flex-direction:column; gap:12px; align-items:center;}
  }

/* ---------- HERO PRODUCTO ---------- */
  .prod-hero{
    padding:145px 0 64px; background:var(--crema); color:var(--cobre-logo);
    position:relative; overflow:hidden;
  }
  .prod-hero::after{
    content:""; position:absolute; inset:0; opacity:0.10; pointer-events:none;
    background:radial-gradient(circle at 70% 30%, var(--dorado), transparent 55%);
  }
  .prod-hero-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start; position:relative; z-index:1;}
  .hero-spacer{display:none;}
  .prod-hero-eyebrow{
    font-weight:700; font-size:0.92rem; letter-spacing:0.24em; text-transform:uppercase;
    color:var(--ambar); margin-bottom:18px; display:flex; align-items:center; gap:12px;
  }
  .prod-hero-eyebrow::before{content:""; width:34px; height:1px; background:var(--ambar);}
  .prod-hero h1{font-size:clamp(2.6rem, 5vw, 4.2rem); font-weight:600; margin-bottom:8px; color:var(--verde-oscuro);}
  .prod-hero h1 em{font-style:italic; color:var(--dorado-texto);}
  .prod-hero .subtitulo{font-family:'Fraunces', serif; font-style:italic; font-size:1.4rem; color:var(--verde-oliva); margin-bottom:26px;}
  .prod-hero p.desc{font-size:1.05rem; color:var(--cobre-logo); margin-bottom:34px; text-align:justify;}
  .prod-hero .wrap{max-width:1440px;}
  .prod-precio{display:flex; align-items:baseline; gap:16px; margin-bottom:30px;}
  .prod-precio b{font-family:'Fraunces', serif; font-size:2.6rem; color:var(--verde-calido);}
  .prod-precio span{font-size:0.95rem; color:var(--verde-calido); opacity:0.75;}
  .prod-hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
  .btn{display:inline-flex; align-items:center; justify-content:center; padding:15px 32px; border-radius:999px; font-weight:700; font-size:0.98rem; letter-spacing:0.02em; cursor:pointer; transition:all .25s ease; border:none;}
  .btn-primary{background:linear-gradient(180deg,#DDBA45,var(--dorado)); color:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 8px 18px -9px rgba(32,64,62,.5);}
  .btn-primary:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 12px 22px -8px rgba(32,64,62,.6);}
  .btn-ghost{background:linear-gradient(180deg, rgba(246,242,231,.16), rgba(246,242,231,.05)); box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 0 0 1.5px rgba(246,242,231,.45); color:var(--crema);}
  .btn-ghost:hover{background:linear-gradient(180deg, rgba(246,242,231,.24), rgba(246,242,231,.09)); box-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 0 0 1.5px var(--crema);}
  .prod-hero-visual{
    position:relative; border-radius:8px; overflow:hidden; box-shadow:0 30px 70px -25px rgba(0,0,0,0.6);
    aspect-ratio:4/5;
  }
  .prod-hero-visual:has(.galeria-principal){box-shadow:none; aspect-ratio:auto; overflow:visible; border-radius:0;}
  .prod-hero-visual img{width:100%; height:100%; object-fit:cover;}

  /* ---------- ZIGZAG ---------- */
  .zig{padding:100px 0;}
  .zig:nth-child(even){background:var(--crema-oscura);}
  .zig-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;}
  .zig-texto .eyebrow{
    font-weight:700; font-size:0.92rem; letter-spacing:0.2em; text-transform:uppercase;
    color:var(--dorado-texto); margin-bottom:16px; display:flex; align-items:center; gap:10px;
  }
  .zig-texto .eyebrow::before{content:""; width:26px; height:1px; background:var(--dorado-texto);}
  .zig-texto h2{font-size:clamp(1.9rem, 3.4vw, 2.7rem); font-weight:600; color:var(--cafe); margin-bottom:20px;}
  .zig-texto p{font-size:1.04rem; color:#33352A; margin-bottom:16px; text-align:justify;}
  .zig-texto .nota{
    display:inline-flex; align-items:center; gap:10px; margin-top:8px;
    font-family:'Fraunces', serif; font-style:italic; font-size:1.05rem; color:var(--tierra-oscura);
  }
  .zig-visual{position:relative; border-radius:8px; overflow:hidden; box-shadow:var(--sombra); aspect-ratio:4/3;}
  .zig-visual img{width:100%; height:100%; object-fit:cover;}

  /* Ajustes de encuadre específicos de la ficha AOVE 500ml (evitar cortar tapones) */
  #prod-aove-500 .prod-hero-visual{aspect-ratio:3/4;}
  #prod-aove-500 .prod-hero-visual img{object-position:center 22%;}
  /* Variedad picual: imagen vertical, botella completa */
  #prod-aove-500 .zig-var .zig-visual{aspect-ratio:3/4;}
  #prod-aove-500 .zig-var .zig-visual img{object-position:center 28%;}
  /* De la cocina a la mesa (3 botellas): subir encuadre */
  #prod-aove-500 .zig-cocina .zig-visual img{object-position:center 16%;}
  /* Origen verificado (bonsái): subir para que salga más */
  #prod-aove-500 .zig-origen .zig-visual img{object-position:center 26%;}

  /* Encuadre fichas 2L y 5L (garrafas): centrar bien */
  #prod-formato-2l .prod-hero-visual, #prod-formato-5l .prod-hero-visual{aspect-ratio:4/3;}
  #prod-formato-2l .prod-hero-visual img, #prod-formato-5l .prod-hero-visual img{object-position:center 40%;}
  #prod-formato-2l .zig-a .zig-visual img, #prod-formato-5l .zig-a .zig-visual img{object-position:center 42%;}
  #prod-formato-2l .zig-c .zig-visual img, #prod-formato-5l .zig-c .zig-visual img{object-position:center 42%;}
  /* alterna la imagen a la derecha en las secciones pares */
  .zig.rev .zig-visual{order:2;}
  .zig.rev .zig-texto{order:1;}

  /* marco decorativo café en las imágenes */
  .zig-visual::before{
    content:""; position:absolute; inset:14px; border:1.5px solid rgba(246,242,231,0.5); z-index:2; pointer-events:none; border-radius:4px;
  }

  /* ---------- FICHA TÉCNICA ---------- */
  .ficha{padding:90px 0; background:var(--crema); color:var(--cobre-logo);}
  .ficha h2{font-size:2.2rem; color:#fff; margin-bottom:8px; text-align:center;}
  .ficha .sub{text-align:center; color:rgba(246,242,231,0.7); margin-bottom:50px;}
  .ficha-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(246,242,231,0.18); border:1px solid rgba(246,242,231,0.18);}
  .ficha-item{background:var(--turquesa); padding:30px 24px; text-align:center;}
  .ficha-item b{display:block; font-family:'Fraunces', serif; font-size:1.5rem; color:var(--dorado); margin-bottom:6px;}
  .ficha-item span{font-size:0.82rem; color:rgba(246,242,231,0.72); letter-spacing:0.03em;}

  /* ---------- CTA FINAL ---------- */
  .cta{padding:56px 0; text-align:center; border-top:1px solid var(--borde); background:var(--crema-oscura);}
  .cta .eyebrow{font-weight:700; font-size:0.92rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--dorado-texto); margin-bottom:16px;}
  .cta h2{font-size:clamp(2rem,4vw,3rem); color:var(--cafe); margin-bottom:16px;}
  .cta p{font-size:1.1rem; color:#4A4C3E; max-width:50ch; margin:0 auto 34px;}
  .cta-actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
  .cta .btn-primary{background:linear-gradient(180deg,#DDBA45,var(--dorado));}
  .cta .btn-ghost{background:linear-gradient(180deg, rgba(92,58,33,.07), rgba(92,58,33,.02)); box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 0 0 1.5px rgba(92,58,33,.4); color:var(--cafe);}
  .cta .btn-ghost:hover{background:linear-gradient(180deg, rgba(92,58,33,.14), rgba(92,58,33,.05)); box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 0 0 1.5px var(--cafe);}

  
@media(max-width:860px){
    .wrap{padding:0 22px;}
    header.nav{padding:14px 22px;}
    .prod-hero{padding:120px 0 60px;}
    .prod-hero-grid, .zig-grid, .prod-hero-grid{grid-template-columns:1fr; gap:40px;}
    .zig{padding:64px 0;}
    .zig.rev .zig-visual{order:0;}
    .zig.rev .zig-texto{order:0;}
    .ficha-grid{grid-template-columns:repeat(2,1fr);}
    .footer-grid{grid-template-columns:1fr; gap:30px;}
    .prod-hero-visual{max-width:360px; margin:0 auto;}
  }


  @keyframes heroKen{ from{transform:scale(1.14);} to{transform:scale(1.02);} }

  /* ---------- Boton flotante "volver arriba" ---------- */
  .volver-arriba{
    position:fixed; right:28px; bottom:28px; z-index:400;
    width:52px; height:52px; border-radius:50%;
    background:var(--turquesa); color:#fff; border:none;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 26px -10px rgba(0,0,0,.5);
    cursor:pointer; opacity:0; visibility:hidden; transform:translateY(14px);
    transition:opacity .25s ease, transform .25s ease, background .2s ease, box-shadow .2s ease, color .25s ease;
  }
  .volver-arriba.visible{opacity:1; visibility:visible; transform:translateY(0);}
  .volver-arriba:hover{background:var(--dorado); color:var(--turquesa); box-shadow:0 12px 30px -8px rgba(0,0,0,.55);}
  .volver-arriba svg{width:22px; height:22px; position:relative; z-index:1;}
  /* Sobre fondos oscuros (p. ej. Proceso, en turquesa como el propio boton) o sobre fotos: se pasa al dorado
     del boton «Comprar» con flecha oscura y aro fino turquesa, para que no se pierda. El dorado va en un
     pseudo-elemento para poder fundirlo con transicion (un degradado no se anima). */
  .volver-arriba::before{
    content:""; position:absolute; inset:0; border-radius:50%;
    background:linear-gradient(180deg,#DDBA45,var(--dorado)); opacity:0; transition:opacity .25s ease;
  }
  .volver-arriba.sobre-oscuro{
    color:var(--verde-oscuro);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 0 0 2px rgba(32,64,62,.4), 0 10px 26px -10px rgba(0,0,0,.6);
  }
  .volver-arriba.sobre-oscuro::before{ opacity:1; }
  .volver-arriba.sobre-oscuro:hover{
    background:var(--turquesa); color:var(--verde-oscuro);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 0 0 2px rgba(32,64,62,.4), 0 14px 30px -8px rgba(0,0,0,.65);
    transform:translateY(-2px);
  }
  @media(max-width:600px){ .volver-arriba{right:16px; bottom:16px; width:46px; height:46px;} .volver-arriba svg{width:19px;height:19px;} }
  @media(prefers-reduced-motion: reduce){ .volver-arriba{transition:opacity .01s;} }

  /* ===== CARRITO ===== */
  .nav-cta{ position:relative; }
  .carrito-badge{
    position:absolute; top:-6px; right:-8px; background:var(--dorado-texto); color:#fff;
    font-size:.66rem; font-weight:800; min-width:18px; height:18px; border-radius:999px;
    display:flex; align-items:center; justify-content:center; padding:0 4px;
    box-shadow:0 0 0 2px var(--crema);
  }
  .carrito-overlay{
    position:fixed; inset:0; background:rgba(20,28,14,.5);
    opacity:0; visibility:hidden; transition:opacity .3s ease, visibility 0s linear .3s; z-index:9998;
  }
  body.carrito-abierto .carrito-overlay{ opacity:1; visibility:visible; transition:opacity .3s ease; }
  .carrito-drawer{
    position:fixed; top:0; right:0; height:100%; width:min(430px, 92vw);
    background:var(--crema); z-index:9999; display:flex; flex-direction:column;
    box-shadow:-16px 0 40px rgba(20,28,14,.25);
    transform:translateX(100%); transition:transform .35s cubic-bezier(.4,0,.2,1);
  }
  body.carrito-abierto .carrito-drawer{ transform:translateX(0); }
  .carrito-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 24px; border-bottom:1px solid var(--borde); flex-shrink:0;
  }
  .carrito-head h3{ margin:0; font-family:'Fraunces',serif; font-weight:600; font-size:1.25rem; color:var(--verde-oscuro); }
  .carrito-cerrar{ background:none; border:none; font-size:1.7rem; line-height:1; cursor:pointer; color:var(--verde-oscuro); padding:4px 8px; }
  .carrito-items{ flex:1; overflow-y:auto; padding:4px 24px; }
  .carrito-item{ display:flex; gap:14px; padding:18px 0; border-bottom:1px solid var(--borde); }
  .carrito-item img{ width:64px; height:80px; object-fit:contain; background:#fff; border:1px solid var(--borde); border-radius:10px; flex-shrink:0; }
  .carrito-item-info{ flex:1; min-width:0; }
  .carrito-item-info a{ color:var(--verde-oscuro); font-weight:700; text-decoration:none; font-size:.98rem; }
  .carrito-item-info a:hover{ color:var(--turquesa); }
  .carrito-item-variante{ font-size:.82rem; color:#8a8471; margin:2px 0 10px; }
  .carrito-item-controles{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .carrito-qty{ display:flex; align-items:center; border:1px solid var(--borde); border-radius:999px; overflow:hidden; }
  .carrito-qty button{ width:26px; height:26px; border:none; background:none; cursor:pointer; font-size:1rem; color:var(--verde-oscuro); }
  .carrito-qty button:hover{ background:var(--crema-oscura); }
  .carrito-qty span{ min-width:20px; text-align:center; font-size:.9rem; font-weight:700; }
  .carrito-item-precio{ font-weight:700; color:var(--verde-oscuro); font-size:.95rem; white-space:nowrap; }
  .carrito-item-quitar{ background:none; border:none; color:#a56a5a; cursor:pointer; font-size:.78rem; text-decoration:underline; padding:0; margin-top:8px; }
  .carrito-vacio{ padding:60px 24px; text-align:center; color:#8a8471; font-size:.95rem; }
  .carrito-footer{ padding:20px 24px 26px; border-top:1px solid var(--borde); flex-shrink:0; }
  .carrito-subtotal{ display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; font-size:1.05rem; color:var(--verde-oscuro); }
  .carrito-subtotal b{ font-size:1.25rem; }
  .carrito-finalizar{ width:100%; }
  @media(max-width:480px){ .carrito-drawer{ width:100vw; } }

  /* ---------- CHECKOUT (vista propia) ---------- */
  #vistaCheckout{display:none;}
  body.viendo-checkout #vistaPrincipal,
  body.viendo-checkout #vistaProducto,
  body.viendo-checkout #vistaTienda,
  body.viendo-checkout #vistaNewsletter,
  body.viendo-checkout #vistaConocenos,
  body.viendo-checkout #vistaTerritorio{display:none;}
  body.viendo-checkout #vistaCheckout{display:block;}
  body.viendo-checkout header.nav{
    background:var(--turquesa) !important;
    backdrop-filter:blur(18px);
    padding:10px 40px !important;
    box-shadow:0 8px 24px -12px rgba(0,0,0,.45) !important;
  }
  .checkout-hero{ padding:150px 0 30px; background:var(--crema-oscura); }
  .checkout-hero .volver{ color:var(--cobre-logo); display:inline-flex; align-items:center; gap:8px; font-weight:700; margin-bottom:18px; text-decoration:none; }
  .checkout-hero h1{ font-family:'Fraunces',serif; font-weight:600; font-size:clamp(1.8rem,4vw,2.6rem); color:var(--verde-oscuro); margin:0; }
  .checkout-cuerpo{ padding:40px 0 90px; }
  .checkout-grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:48px; align-items:start; }
  @media(max-width:900px){ .checkout-grid{ grid-template-columns:1fr; } }
  .checkout-bloque{ margin-bottom:34px; }
  .checkout-bloque h2{ font-family:'Fraunces',serif; font-weight:600; font-size:1.2rem; color:var(--verde-oscuro); margin:0 0 18px; padding-bottom:10px; border-bottom:1px solid var(--borde); }
  .campo-fila{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media(max-width:520px){ .campo-fila{ grid-template-columns:1fr; } }
  .campo{ margin-bottom:16px; }
  .campo label{ display:block; font-size:.86rem; font-weight:700; color:var(--verde-oscuro); margin-bottom:6px; }
  .campo input, .campo select, .campo textarea{
    width:100%; padding:12px 14px; border:1px solid var(--borde); border-radius:10px;
    background:#fff; color:var(--tinta); font-family:'Karla',sans-serif; font-size:.95rem;
  }
  .campo textarea{ resize:vertical; }
  .campo input:focus, .campo select:focus, .campo textarea:focus{ outline:none; border-color:var(--turquesa); }
  .checkout-check{ display:flex; align-items:flex-start; gap:10px; font-size:.88rem; color:var(--tinta); margin:14px 0; cursor:pointer; line-height:1.5; }
  .checkout-check input{ margin-top:3px; accent-color:var(--turquesa); flex-shrink:0; }
  .checkout-check a{ color:var(--dorado-texto); text-decoration:underline; }
  .checkout-resumen{ background:var(--crema-oscura); border-radius:16px; padding:26px; position:sticky; top:110px; }
  .checkout-resumen h2{ font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem; color:var(--verde-oscuro); margin:0 0 16px; }
  .checkout-lineas{ margin-bottom:16px; }
  .checkout-linea{ display:flex; justify-content:space-between; gap:10px; font-size:.9rem; padding:10px 0; border-bottom:1px solid var(--borde); }
  .checkout-linea-nombre{ color:var(--tinta); }
  .checkout-linea-precio{ font-weight:700; color:var(--verde-oscuro); white-space:nowrap; }
  .checkout-totales{ border-top:1px solid var(--borde); padding-top:14px; margin-bottom:20px; }
  .checkout-totales > div{ display:flex; justify-content:space-between; font-size:.92rem; margin-bottom:8px; color:var(--tinta); }
  .checkout-total-final{ font-size:1.1rem !important; font-weight:700; color:var(--verde-oscuro) !important; border-top:1px solid var(--borde); padding-top:10px; margin-top:6px; }
  .checkout-pago{ background:#fff; border-radius:10px; padding:14px 16px; margin-bottom:16px; font-size:.85rem; color:#5f5e54; line-height:1.55; }
  .checkout-pago h3{ margin:0 0 6px; font-size:.9rem; color:var(--verde-oscuro); }
  .checkout-confirmar{ width:100%; margin-top:8px; }
  .checkout-confirmar:disabled{ opacity:.5; cursor:not-allowed; }
  .checkout-aviso{ font-size:.82rem; color:#a56a5a; margin-top:10px; }
  .checkout-confirmacion{ padding:170px 0 120px; text-align:center; }
  .checkout-confirmacion h2{ font-family:'Fraunces',serif; font-weight:600; font-size:2rem; color:var(--verde-oscuro); margin-bottom:16px; }
  .checkout-confirmacion p{ max-width:520px; margin:0 auto 28px; color:#5f5e54; line-height:1.7; }
  @media(max-width:700px){ .checkout-resumen{ position:static; } }

  /* Catalogo: foto de producto sobre fondo blanco (sin el degradado ni la sombra pensados para recortes) */
  .producto-visual.blanco{ background:#fff; }
  /* Fila de precio del catalogo: separacion minima y precio sin partir cuando la nota (p. ej. «Estuche de 6 unidades») es larga */
  .producto-precio{ gap:10px; }
  .producto-precio b{ white-space:nowrap; }
  .producto-precio span{ text-align:right; }
  .producto-visual.blanco img{ max-width:100%; max-height:100%; height:100%; width:auto; object-fit:contain; filter:none; }

  /* ---------- GALERIA: botella recortada que entra desde el lateral (Cosecha Temprana) ---------- */
  .galeria-thumbs{ flex-wrap:wrap; }
  .thumb[data-recorte]{ background:radial-gradient(circle at 50% 38%, #fff, var(--crema-oscura)); }
  .thumb[data-recorte] img{ object-fit:contain; padding:3px; }
  .galeria-principal.modo-recorte{ overflow:visible; border-radius:0; background:none; }
  .galeria-principal.modo-recorte::before{
    content:""; position:absolute; left:2%; width:96%; aspect-ratio:1; top:50%; transform:translateY(-50%);
    border-radius:50%;
    background:radial-gradient(circle at 50% 40%, rgba(32,64,62,.15), rgba(32,64,62,.06) 68%, rgba(32,64,62,0) 70%);
    box-shadow:inset 0 0 0 1.5px rgba(201,162,39,.45);
  }
  .galeria-principal.modo-recorte .galeria-img-activa{
    position:relative; z-index:1; box-sizing:border-box; object-fit:contain; object-position:center; padding:2% 0;
    filter:drop-shadow(0 22px 18px rgba(20,28,14,.34));
  }
  .galeria-principal.modo-recorte.zoom-activo .galeria-img-activa{ transform:none; }
  .galeria-principal.modo-recorte .galeria-zoom{ z-index:3; }
  @keyframes botellaEntra{ from{ transform:translateX(var(--desde,60vw)); } to{ transform:translateX(0); } }
  .galeria-principal.modo-recorte.entra .galeria-img-activa{
    animation:botellaEntra 1.3s cubic-bezier(.16,.84,.3,1) backwards;
  }
  @media(prefers-reduced-motion: reduce){ .galeria-principal.modo-recorte.entra .galeria-img-activa{ animation:none; } }

  /* ---------- LINEAS DIVISORIAS EN COBRE entre franjas crema seguidas ---------- */
  #vistaProducto .ficha-producto .ficha{ border-top:1px solid var(--cobre-logo); }     /* Cabecera de producto -> Ficha */
  #vistaCheckout .checkout-cuerpo{ border-top:1px solid var(--cobre-logo); }           /* Cabecera -> Formulario */

  /* ---------- FRANJA DE CIERRE CON FOTO (mismo formato que la ultima franja de Territorio) ----------
     Usada en el final del Catalogo («¿Compras para tu negocio?») y en el final de cada ficha de producto. */
  :root{ --cierre-foto:url(/wp-content/themes/cortijo-abuelo-pio/assets/img/img-4e5af884ff.jpg); }
  .cierre-foto{
    position:relative; padding:150px 24px; text-align:center;
    background:
      radial-gradient(ellipse 55% 110px at 50% 165px, rgba(10,22,21,.55) 0%, rgba(10,22,21,0) 72%),
      linear-gradient(180deg, rgba(20,40,38,.35) 0%, rgba(15,30,29,.45) 50%, rgba(10,22,21,.58) 100%),
      var(--cierre-foto);
    background-size:cover; background-position:center 3%;
  }
  .cierre-foto .wrap{ max-width:720px; margin:0 auto; }
  .cierre-foto-eyebrow{
    font-family:'Vidaloka', 'Karla', sans-serif; font-weight:400; font-size:0.92rem; letter-spacing:.24em;
    text-transform:uppercase; color:var(--dorado); margin:0 0 18px;
    display:flex; align-items:center; justify-content:center; gap:16px;
    text-shadow:0 1px 2px rgba(0,0,0,.85), 0 2px 12px rgba(0,0,0,.5);
  }
  .cierre-foto-eyebrow::before, .cierre-foto-eyebrow::after{
    content:""; width:28px; height:1px; background:var(--dorado); flex-shrink:0; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7));
  }
  .cierre-foto h2{
    font-family:'Fraunces', Georgia, serif; font-weight:400; font-size:clamp(1.6rem,3.4vw,2.3rem);
    color:#fff; margin:0 0 18px; text-wrap:balance; text-shadow:0 2px 14px rgba(0,0,0,.4);
  }
  .cierre-foto p:not(.cierre-foto-eyebrow){
    font-family:'Karla', sans-serif; color:rgba(246,242,231,.92); font-size:1rem; line-height:1.6;
    margin:0 auto 34px; max-width:none; text-align:center; text-shadow:0 1px 10px rgba(0,0,0,.35);
  }
  .cierre-foto p.cierre-foto-nota{ margin:26px 0 0; font-size:.82rem; color:rgba(246,242,231,.7); }
  .cierre-acciones{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
  .cierre-btn{
    font-family:'Karla', sans-serif; font-weight:700; font-size:.92rem; letter-spacing:.02em;
    padding:15px 30px; border-radius:999px; cursor:pointer; text-decoration:none;
    display:inline-flex; align-items:center; gap:8px; border:none;
    transition:transform .2s ease, background .25s ease, box-shadow .25s ease;
  }
  .cierre-btn-primario{
    background:linear-gradient(180deg,#DDBA45,var(--dorado)); color:var(--turquesa);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 8px 18px -9px rgba(0,0,0,.45);
  }
  .cierre-btn-primario:hover{ transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 12px 22px -8px rgba(0,0,0,.5); }
  @media(max-width:700px){ .cierre-foto{ padding:96px 22px; } }

  .cierre-btn-ghost{
    background:linear-gradient(180deg, rgba(246,242,231,.16), rgba(246,242,231,.05)); color:#fff;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 0 0 1.5px rgba(246,242,231,.45);
  }
  .cierre-btn-ghost:hover{ background:linear-gradient(180deg, rgba(246,242,231,.24), rgba(246,242,231,.09)); box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 0 0 1.5px #fff; }
  /* franja final de la portada: la foto nocturna es muy luminosa, asi que lleva una capa oscura extra para que el texto se lea */
  .cierre-inicio{
    background:
      linear-gradient(180deg, rgba(6,12,12,.40), rgba(6,12,12,.40)),
      radial-gradient(ellipse 55% 110px at 50% 165px, rgba(10,22,21,.55) 0%, rgba(10,22,21,0) 72%),
      linear-gradient(180deg, rgba(20,40,38,.35) 0%, rgba(15,30,29,.45) 50%, rgba(10,22,21,.58) 100%),
      var(--cierre-foto);
    background-size:cover; background-position:center 62%;
  }

  /* Catalogo: franja «¿Compras para tu negocio?» mas baja y pegada al pie de pagina (sin banda crema entre ambos).
     El boton «Volver a la portada» pasa a estar encima de la franja. */
  .tienda-volver{ text-align:center; margin-top:-56px; padding:0 0 64px; }
  .tienda-volver .btn-ghost{ background:linear-gradient(180deg, rgba(92,58,33,.07), rgba(92,58,33,.02)); box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 0 0 1.5px rgba(92,58,33,.4); color:var(--cafe); }
  .tienda-volver .btn-ghost:hover{ background:linear-gradient(180deg, rgba(92,58,33,.14), rgba(92,58,33,.05)); box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 0 0 1.5px var(--cafe); }
  .cierre-foto.canal-profesional{
    padding:72px 24px;
    background:
      radial-gradient(ellipse 55% 90px at 50% 100px, rgba(10,22,21,.55) 0%, rgba(10,22,21,0) 72%),
      linear-gradient(180deg, rgba(20,40,38,.35) 0%, rgba(15,30,29,.45) 50%, rgba(10,22,21,.58) 100%),
      var(--cierre-foto);
    background-size:cover; background-position:center 3%;
  }
  .cierre-foto.canal-profesional .wrap{ max-width:880px; }
  .cierre-foto.canal-profesional p:not(.cierre-foto-eyebrow){ margin-bottom:24px; }
  .cierre-foto.canal-profesional p.cierre-foto-nota{ margin:22px 0 0; }
  @media(max-width:700px){ .cierre-foto.canal-profesional{ padding:60px 22px; } }

  /* ---------- FICHA DE PRODUCTO: columna izquierda en tarjeta blanca (propuesta B) ---------- */
  .prod-hero .ft-tarjeta .ft-card{ background:#fff; border:1px solid var(--crema-oscura); border-radius:26px; padding:40px 44px 34px; box-shadow:0 30px 60px -34px rgba(32,64,62,.35); max-width:640px; }
  .ft-card .pills-cat{ gap:8px; margin-bottom:20px; }
  .ft-card .pill-cat{ font-size:.72rem; letter-spacing:.14em; font-weight:700; color:var(--turquesa); background:rgba(32,64,62,.07); border:0; padding:7px 14px; }
  .ft-card .pill-cat:nth-child(2){ background:rgba(201,162,39,.18); color:#7a5a05; }
  .prod-hero .ft-card h1{ font-size:clamp(2.8rem,4.6vw,3.9rem); line-height:1.04; font-weight:500; color:var(--turquesa); margin:0 0 8px; }
  .prod-hero .ft-card h1 em{ color:var(--dorado-texto); }
  .prod-hero .ft-card .subtitulo{ font-size:1.25rem; color:var(--cobre-logo); margin:0 0 18px; }
  .prod-hero .ft-card p.desc{ font-size:1rem; line-height:1.7; color:#3B3D30; text-align:justify; hyphens:auto; -webkit-hyphens:auto; margin:0 0 22px; }
  .ft-card .prod-precio{ border-top:1px solid var(--crema-oscura); padding-top:22px; margin-bottom:0; gap:8px 14px; flex-wrap:wrap; }
  .ft-card .prod-precio b{ font-size:2.9rem; font-weight:500; color:var(--turquesa); line-height:1; }
  .ft-card .prod-precio span{ font-size:.9rem; color:#6a6c5c; opacity:1; }
  .ft-card .compra-box{ margin:12px 0 24px; }
  .ft-card .prod-precio + .compra-box{ margin-top:22px; }
  .ft-card .packs-selector{ margin:14px 0 6px; }
  .ft-card .pack-opt .pack-label{ color:var(--turquesa); }
  .ft-card .btn-primary{ color:var(--turquesa) !important; }
  .ft-card .trust-list{ margin:0 0 6px; gap:11px; }
  .ft-card .trust-list li{ align-items:center; gap:12px; font-size:.94rem; color:#3B3D30; }
  .ft-card .trust-list li .ico{ width:24px; height:24px; border-radius:50%; background:rgba(165,80,30,.12); color:var(--cobre-logo); display:inline-flex; align-items:center; justify-content:center; font-size:.78rem; line-height:1; }
  .ft-card .cross-venta{ display:block; background:none; border:0; border-top:1px dashed var(--crema-oscura); border-radius:0; padding:14px 0 0; margin-top:8px !important; font-size:.9rem; color:#6a6c5c; }
  .ft-card .cross-venta a{ color:var(--cobre-logo); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
  .ft-card .envios-aviso{ text-decoration-color:rgba(59,61,48,.5); }
  .ft-card .envios-aviso:hover, .ft-card .envios-aviso:focus-visible{ text-decoration-color:var(--cobre-logo); }
  @media(max-width:700px){ .prod-hero .ft-tarjeta .ft-card{ padding:28px 22px 26px; border-radius:22px; } }

  /* Campaña 25/26: etiqueta en las fichas (junto al precio) y linea en las ventanas del catalogo */
  .ft-card .prod-precio .camp-tag{ margin-left:auto; align-self:center; font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--cobre-logo); border:1px solid var(--cobre-logo); border-radius:999px; padding:6px 13px; white-space:nowrap; opacity:1; }
  .producto-precio{ flex-wrap:wrap; }
  .producto-precio .producto-camp{ flex:0 0 100%; text-align:right; font-style:normal; font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.7rem; color:var(--cobre-logo); margin-top:-4px; white-space:nowrap; }
  @media(max-width:480px){ .ft-card .prod-precio{ flex-wrap:wrap; } .ft-card .prod-precio .camp-tag{ margin-left:0; } }

  /* ---------- FICHA DE PRODUCTO: franja de pestañas en tarjeta blanca (propuesta A) ---------- */
  #vistaProducto .ficha-producto .ficha { padding:70px 0 80px; }
  #vistaProducto .ficha-producto .ficha .wrap{ max-width:1180px; background:#fff; border:1px solid var(--crema-oscura); border-radius:26px; box-shadow:0 30px 60px -34px rgba(32,64,62,.35); padding:30px 46px 42px; }
  #vistaProducto .ficha-producto .ficha .tabs-nav{ display:flex; justify-content:center; gap:6px; border:0; background:var(--crema); border-radius:999px; padding:6px; width:max-content; max-width:100%; margin:0 auto 32px; }
  #vistaProducto .ficha-producto .ficha .tab-btn{ display:inline-flex; align-items:center; gap:8px; border:0; border-radius:999px; padding:12px 22px; font-size:.95rem; color:#3B3D30; white-space:nowrap; transition:background .2s ease, color .2s ease; }
  #vistaProducto .ficha-producto .ficha .tab-btn:hover{ background:rgba(32,64,62,.08); }
  #vistaProducto .ficha-producto .ficha .tab-btn.activo{ background:var(--turquesa); color:#fff; box-shadow:0 8px 16px -10px rgba(32,64,62,.7); }
  #vistaProducto .ficha-producto .ficha .tico{ width:20px; height:20px; flex:none; }
  #vistaProducto .ficha-producto .ficha .tab-panel{ max-width:none; padding:0; color:#3B3D30; line-height:1.72; }
  #vistaProducto .ficha-producto .ficha .tab-panel p{ text-align:justify; hyphens:auto; -webkit-hyphens:auto; margin:0; }
  #vistaProducto .ficha-producto .ficha .tab-panel p + p{ margin-top:14px !important; }
  #vistaProducto .ficha-producto .ficha .tab-panel strong{ color:var(--turquesa); }
  #vistaProducto .ficha-producto .ficha .tab-panel ul{ list-style:none; padding:0 !important; margin:16px 0 0 !important; display:grid; gap:10px; color:#3B3D30; }
  #vistaProducto .ficha-producto .ficha .tab-panel ul li{ position:relative; padding-left:30px; color:#3B3D30; }
  #vistaProducto .ficha-producto .ficha .tab-panel ul li::before{ content:""; position:absolute; left:0; top:.32em; width:17px; height:17px; border-radius:50%; background:rgba(165,80,30,.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A5501E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/11px no-repeat; }
  #vistaProducto .ficha-producto .ficha .tab-table{ border-collapse:separate; border-spacing:0; }
  #vistaProducto .ficha-producto .ficha .tab-table tr:nth-child(odd) td{ background:#faf7ef; }
  #vistaProducto .ficha-producto .ficha .tab-table td{ border-bottom:0; padding:13px 18px; color:#3B3D30; }
  #vistaProducto .ficha-producto .ficha .tab-table td:first-child{ color:var(--cobre-logo); font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; width:270px; }
  #vistaProducto .ficha-producto .ficha .tab-table tr td:first-child{ border-radius:10px 0 0 10px; }
  #vistaProducto .ficha-producto .ficha .tab-table tr td:last-child{ border-radius:0 10px 10px 0; }
  #vistaProducto .ficha-producto .ficha .nota-fuente{ color:var(--cobre-logo); opacity:.75; margin-top:18px; }
  /* Nota de cata: 3 tarjetas */
  #vistaProducto .ficha-producto .ficha .tab-panel[id^="tab-cata"].activo{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  #vistaProducto .ficha-producto .ficha .tab-panel[id^="tab-cata"] .cata-item{ display:block; background:#faf7ef; border-radius:18px; padding:26px 24px; margin:0; }
  #vistaProducto .ficha-producto .ficha .tab-panel[id^="tab-cata"] .cata-ico{ width:46px; height:46px; padding:11px; background:#fff; border-radius:50%; color:var(--cobre-logo); margin:0 0 14px; box-shadow:0 8px 16px -10px rgba(0,0,0,.3); }
  #vistaProducto .ficha-producto .ficha .tab-panel[id^="tab-cata"] .cata-texto h4{ font-family:'Fraunces',serif; font-weight:500; font-size:1.25rem; color:var(--turquesa); margin:0 0 8px; }
  #vistaProducto .ficha-producto .ficha .tab-panel[id^="tab-cata"] .cata-texto p{ text-align:left; font-size:.97rem; }
  #vistaProducto .ficha-producto .ficha .tab-panel[id^="tab-cata"] .nota-fuente{ grid-column:1/-1; margin:0; }
  @media(max-width:900px){
    #vistaProducto .ficha-producto .ficha .wrap{ padding:22px 20px 30px; border-radius:22px; }
    #vistaProducto .ficha-producto .ficha .tabs-nav{ width:100%; justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; border-radius:20px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
    #vistaProducto .ficha-producto .ficha .tabs-nav::-webkit-scrollbar{ display:none; }
    #vistaProducto .ficha-producto .ficha .tab-panel[id^="tab-cata"].activo{ grid-template-columns:1fr; gap:14px; }
    #vistaProducto .ficha-producto .ficha .tab-table td:first-child{ width:38%; }
  }

  /* Catalogo: franja de entrega mas grande */
  .envio-strip{ padding:19px 20px; font-size:1.15rem; font-weight:700; letter-spacing:.02em; min-height:28px; }
  @media(max-width:600px){ .envio-strip{ padding:15px 16px; font-size:1rem; } }

  /* ---------- POLITICA DE PRIVACIDAD: informacion basica en el pedido + ventana con el texto completo ---------- */
  .checkout-rgpd{ margin:2px 0 12px; }
  .checkout-rgpd p{ margin:0; font-size:.74rem; line-height:1.55; color:#7a7868; }
  .checkout-rgpd .rgpd-detalle{ margin-top:8px; padding-top:8px; border-top:1px solid rgba(0,0,0,.08); }
  .checkout-rgpd b{ color:#5f5e54; font-weight:700; }
  .rgpd-mas{ background:none; border:0; padding:0; font:inherit; color:var(--cobre-logo); text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
  .checkout-rgpd a, .checkout-check a[data-abre-legal]{ color:var(--cobre-logo); text-decoration:underline; cursor:pointer; }
    .modal-legal{ position:fixed; inset:0; z-index:3000; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(15,30,29,.62); backdrop-filter:blur(3px); }
  .modal-legal[hidden]{ display:none; }
  .modal-legal-caja{ position:relative; background:#fff; border-radius:22px; max-width:720px; width:100%; max-height:calc(100vh - 48px); overflow-y:auto; padding:40px 44px 36px; box-shadow:0 40px 80px -30px rgba(0,0,0,.6); color:#3B3D30; font-family:'Karla',sans-serif; font-size:.98rem; line-height:1.65; }
  .modal-legal-caja h2{ font-family:'Fraunces',serif; font-weight:500; font-size:1.9rem; color:var(--turquesa); margin:0 0 4px; }
  .modal-legal-caja .mp-fecha{ margin:0 0 22px; font-size:.82rem; color:#6a6c5c; }
  .modal-legal-caja h3{ font-family:'Fraunces',serif; font-weight:500; font-size:1.1rem; color:var(--turquesa); margin:22px 0 6px; }
  .modal-legal-caja p{ margin:0 0 8px; text-align:justify; hyphens:auto; }
  .modal-legal-caja ul{ margin:6px 0 0; padding-left:20px; }
  .modal-legal-caja li{ margin-bottom:8px; text-align:justify; }
  .modal-legal-caja a{ color:var(--cobre-logo); text-decoration:underline; }
  .modal-legal-cerrar{ position:absolute; top:14px; right:16px; width:38px; height:38px; border-radius:50%; border:0; background:var(--crema); color:var(--turquesa); font-size:1.5rem; line-height:1; cursor:pointer; }
  .modal-legal-cerrar:hover{ background:var(--crema-oscura); }
  @media(max-width:600px){ .modal-legal{ padding:12px; } .modal-legal-caja{ padding:30px 22px 26px; max-height:calc(100vh - 24px); } }

  /* ---------- Textos legales: enlaces en pedido/pie, aviso previo al boton y listas dentro de las ventanas ---------- */
  .checkout-check a[data-abre-legal], .checkout-rgpd a[data-abre-legal], .news-consent a[data-abre-legal]{ cursor:pointer; }
  .solo-lectores{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; }
  .footer-legal{ flex-basis:100%; display:flex; flex-wrap:wrap; gap:6px 22px; margin-top:4px; }
  .footer-legal a{ color:rgba(246,242,231,.65); text-decoration:underline; text-underline-offset:3px; cursor:pointer; font-size:.82rem; }
  .footer-legal a:hover{ color:#fff; }
  .modal-legal-caja ol{ margin:6px 0 10px; padding-left:22px; }
  .modal-legal-caja ol li{ margin-bottom:6px; }

  /* =====================================================================
     REVISION MOVIL (Android / iPhone) — 22 sep 2026
     ===================================================================== */
  /* Cabecera con el sello: el eyebrow de la portada no debe quedar tapado por el logo */
  @media(max-width:860px){ .hero-content{ padding-top:140px; } }

  /* Formularios: 16 px evita el zoom automatico de Safari (iPhone) al enfocar un campo */
  @media(max-width:900px){
    input:not([type=checkbox]):not([type=radio]), select, textarea{ font-size:16px !important; }
  }

  /* Objetivos tactiles: minimo ~44 px en pantallas tactiles */
  @media(pointer:coarse){
    .nav-toggle{ min-width:44px; min-height:44px; }
    .qty-box button{ width:44px; min-height:44px; }
    .qty-box input{ width:48px; }
    .carrito-qty button{ width:36px; height:36px; }
    .carrito-item-quitar{ padding:10px 6px; margin-top:0; }
    .checkout-check input, .news-consent input{ width:22px; height:22px; }
    a.volver, .breadcrumb-tienda a{ display:inline-flex; align-items:center; min-height:44px; }
    .opiniones-puntos{ gap:6px; }
    .opiniones-puntos button{ position:relative; }
    .opiniones-puntos button::after{ content:""; position:absolute; inset:-17px -8px; }   /* zona de toque ampliada sin cambiar el tamaño del punto */
    .thumb{ min-width:44px; min-height:44px; }
    #vistaProducto .ficha-producto .ficha .tab-btn{ min-height:44px; }
    .pack-opt{ min-height:48px; }
  }

  /* Ficha de producto en movil */
  #vistaProducto .ficha-producto .ficha .tab-btn{ flex:0 0 auto; }   /* evita que las pestañas se encojan y se solapen */
  @media(max-width:480px){
    .qty-add{ flex-direction:column; align-items:stretch; }
    .qty-add .qty-box{ align-self:flex-start; }
    .qty-add .btn-primary{ width:100%; white-space:nowrap; padding-left:14px; padding-right:14px; }
    .pack-opt .pack-precio{ white-space:nowrap; }
    .pack-opt .pack-label{ font-size:.95rem; }
  }

  /* Texto justificado en columnas estrechas: separa demasiado las palabras. En movil, alineado a la izquierda. */
  @media(max-width:600px){
    .hero-sub, .lead, .historia-texto p, .td-texto p, .zig-texto p, .comarca-mapa p, .producto-card p,
    .prod-hero p.desc, .prod-hero .ft-card p.desc, #vistaProducto .ficha-producto .ficha .tab-panel p,
    .modal-legal-caja p, .modal-legal-caja li{ text-align:left; hyphens:auto; -webkit-hyphens:auto; }
    .comarca-mapa .comarca-stat .stat-txt span{ font-size:.74rem; }
  }

  /* Ventanas legales: 100dvh (barra de direcciones de Safari/Chrome movil) */
  .modal-legal-caja{ max-height:calc(100vh - 48px); max-height:calc(100dvh - 48px); }
  @media(max-width:600px){ .modal-legal-caja{ max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); } }

  /* Safari: prefijos y capa propia en las cartas que se dan la vuelta (Proceso) */
  @media(pointer:coarse){ .footer-grid a{ padding:6px 0; } .qty-box input{ height:44px; } }
  .prod-hero-grid > *{ min-width:0; }
  .prod-hero-visual, .duda-box{ max-width:100%; box-sizing:border-box; }
  .galeria-thumbs{ flex-wrap:wrap; }
  @media(max-width:600px){ .producto-tag{ font-size:.72rem; } }
  .paso-cara{ -webkit-backface-visibility:hidden; backface-visibility:hidden; }
  .paso-inner{ -webkit-transform-style:preserve-3d; transform-style:preserve-3d; }


/* ============================================================
   VISTA «CONÓCENOS»
   CSS copiado del borrador conocenos-borrador-v1.html y ACOTADO por
   completo a #vistaConocenos. El HTML va literal (el div sigue siendo
   class="wrap"): dentro de la vista manda esta hoja, fuera no cambia nada.
   La cabecera es la del sitio; sus reglas no se copian.
   ============================================================ */
#vistaConocenos{
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Karla','Helvetica Neue',Helvetica,Arial,system-ui,sans-serif;
  display:none;
}
body.viendo-conocenos #vistaPrincipal,
body.viendo-conocenos #vistaProducto,
body.viendo-conocenos #vistaTienda,
body.viendo-conocenos #vistaNewsletter,
body.viendo-conocenos #vistaTerritorio{display:none;}
body.viendo-conocenos #vistaConocenos{display:block;}
#vistaConocenos{--verde-oscuro:#2C3A1E;
  --verde-producto:#3E5C34;
  --verde-calido:#55663D;
  --verde-oliva:#5B6E3E;
  --tierra:#B8804A;
  --tierra-oscura:#8C5E33;
  --crema:#F6F2E7;
  --crema-oscura:#EDE6D6;
  --dorado:#C9A227;
  --pistacho:#9CB380;
  --ambar:#EFD9A0;
  --dorado-texto:#B8860B;
  --tinta:#25281F;
  --cafe:#5C3A21;
  --cobre-logo:#A5501E;
  --borde:#DAD2BC;
  --sans:'Helvetica Neue',Helvetica,Arial,'Segoe UI',system-ui,sans-serif;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;}
#vistaConocenos *{box-sizing:border-box; min-width:0;}
#vistaConocenos{font-family:var(--sans); color:var(--tinta); background:var(--crema);
  -webkit-font-smoothing:antialiased; line-height:1.6;}
#vistaConocenos img{max-width:100%; display:block;}
#vistaConocenos .wrap{max-width:1440px; margin:0 auto; padding:0 32px;}
#vistaConocenos .wrap-n{max-width:1180px; margin:0 auto; padding:0 32px;}
/* ====================== CABECERA (réplica de la del sitio) ====================== */
/* ====================== 1 · PORTADA (sube con el scroll) ====================== */
#vistaConocenos .cx-hero{position:relative; height:100vh; z-index:1; overflow:hidden;
  background:var(--verde-oscuro);}
#vistaConocenos .cx-hero-foto{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 58%;
  transform:scale(1.06); animation:cxKen 22s ease-out forwards;}
@keyframes cxKen{from{transform:scale(1.14);}to{transform:scale(1.02);}}
/* Degradado más denso ARRIBA: el titular vive en la esquina superior izquierda,
   así no se pierde al empezar a bajar (petición del usuario). */
#vistaConocenos .cx-hero::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(20,28,14,.72) 0%,rgba(20,28,14,.46) 42%,rgba(20,28,14,.20) 68%,rgba(20,28,14,.55) 100%);}
#vistaConocenos .cx-hero-in{position:absolute; inset:0; z-index:2;
  display:flex; flex-direction:column; justify-content:flex-start;
  padding:clamp(172px,20vh,250px) 0 0;}
/* El bloque de texto se alinea con el LOGO de la cabecera, no con el wrap
   centrado: el logo se apoya en el margen de la página (40px) mientras que el
   wrap va centrado, lo que dejaba el texto 153px a la derecha del logo. */
#vistaConocenos .cx-hero .wrap{max-width:none; margin:0; padding-left:40px; padding-right:40px;}
#vistaConocenos .cx-eyebrow{font-size:0.92rem; letter-spacing:0.3em; text-transform:uppercase;
  color:var(--ambar); font-weight:600; margin-bottom:26px;}
/* Portada: sobre la foto todo se leía lavado. Se sube el peso y la intensidad
   del dorado, y se añade sombra para que el blanco destaque sin tener que
   oscurecer la foto de fondo. */
#vistaConocenos .cx-hero .cx-eyebrow{/* Sin esto caía al genérico del navegador (Helvetica/Arial/system-ui),
     mientras que la frase homóloga del vídeo usa Karla — dos tipografías
     distintas al mismo font-size en CSS NO se ven del mismo tamaño real,
     porque cada una tiene sus propias métricas (altura de mayúsculas,
     etc.). Se fija a Karla, igual que .hero-eyebrow, para que sean
     literalmente el mismo dibujo de letra, no solo el mismo número. */
  font-family:'Karla', sans-serif;
  /* Tamaño subido otra vez (0.84->0.92rem) a petición del usuario, en los
     dos sitios (aquí y .hero-eyebrow) a la vez para que sigan coincidiendo. */
  color:var(--dorado); font-weight:700; font-size:1.0rem;
  text-shadow:0 2px 12px rgba(10,16,6,.75);}
#vistaConocenos .cx-hero-title{font-family:var(--serif); font-weight:300;
  /* Mismo tamaño exacto que .hero-title (el titular del vídeo principal de
     la home) — antes era mucho más grande (hasta 6.4rem vs 3.9rem). */
  font-size:clamp(2.2rem, 4.6vw, 3.9rem); line-height:1.08; color:#fff;
  /* max-width en ch quitado a propósito: con él, "gota" bajaba a una 2ª
     línea. Sin límite de ancho propio, solo queda acotado por el padding
     lateral de .wrap (40px/22px), que es de sobra para que quepa entero
     en una fila a los anchos habituales de escritorio. */
  letter-spacing:-0.02em; margin:0;
  /* La sombra va con filter:drop-shadow sobre el titular ENTERO: con text-shadow cada palabra (.sp, que lleva
     overflow:hidden para el revelado) recortaba la sombra en un rectangulo y se veia como un fondo detras. */
  filter:drop-shadow(0 2px 10px rgba(10,16,6,.5)) drop-shadow(0 1px 2px rgba(10,16,6,.4));}
/* «gota»: del ámbar claro al dorado saturado, que se lavaba sobre la foto */
#vistaConocenos .cx-hero-title em{font-style:italic; color:var(--dorado);}
#vistaConocenos .cx-hero-pie{margin-top:34px; display:flex; gap:40px; flex-wrap:wrap; align-items:center;
  color:#fff; font-size:0.95rem; letter-spacing:0.04em; font-weight:600;
  text-shadow:0 2px 12px rgba(10,16,6,.7);}
#vistaConocenos .cx-hero-pie span{display:flex; align-items:center; gap:10px;}
#vistaConocenos .cx-hero-pie i{width:6px; height:6px; border-radius:50%; background:var(--dorado); display:block;}
#vistaConocenos .cx-scroll{position:absolute; right:32px; bottom:9vh; z-index:3;
  writing-mode:vertical-rl; font-size:0.68rem; letter-spacing:0.28em;
  text-transform:uppercase; color:rgba(255,255,255,.75);}
#vistaConocenos .cx-scroll::after{content:""; display:block; width:1px; height:52px; margin:14px auto 0;
  background:linear-gradient(180deg,var(--dorado),transparent);}
/* el cuerpo sube por encima de la portada */
#vistaConocenos .cx-body{position:relative; z-index:2; margin-top:0; background:var(--crema);}
/* ====================== 2 · FLASH ====================== */
#vistaConocenos .cx-flash{background:var(--crema); padding:110px 0 0;}
#vistaConocenos .cx-flash-head{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start;}
#vistaConocenos .cx-claim{font-family:var(--serif); font-weight:300; letter-spacing:-0.015em;
  font-size:clamp(1.9rem,3.4vw,3.4rem); line-height:1.1; color:var(--verde-oscuro); margin:0;}
#vistaConocenos .cx-claim b{font-weight:600; color:var(--cobre-logo);}
#vistaConocenos .cx-flash-txt p{font-size:1.02rem; color:#4A4C40; margin:0 0 18px; text-align:justify;}
#vistaConocenos .cx-flash-txt p:last-child{margin-bottom:0;}
/* Aclaración razón social / marca (23 sep 2026): discreta, como el resto de menciones administrativas de la web. */
#vistaConocenos .cx-flash-txt p.cx-flash-legal{font-size:.82rem; color:#8A8C7E; text-align:left; font-style:italic; margin-top:14px;}
/* marquesina */
/* Bloque verde (marquesina + logo + frase): verde turquesa del sitio, con la silueta de lineas blancas
   (foto Gemini ...8dgx, pasada a lineas blancas con transparencia) como fondo continuo de todo el bloque. */
#vistaConocenos .cx-verde{margin-top:90px; position:relative; overflow:hidden; isolation:isolate;
  background:var(--turquesa,#20403E);}
#vistaConocenos .cx-verde::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:var(--lineas) center 80% / cover no-repeat;
  opacity:.30;}
#vistaConocenos .cx-verde > *{position:relative; z-index:1;}
@media(max-width:700px){
#vistaConocenos .cx-verde::before{background-position:31% 60%;}
}
#vistaConocenos .cx-franja{margin-top:0; background:transparent; color:#fff;
  padding:20px 0; overflow:hidden; white-space:nowrap; position:relative;}
#vistaConocenos .cx-franja-track{display:inline-flex; gap:44px; animation:cxdesfile 34s linear infinite; will-change:transform;}
#vistaConocenos .cx-franja span{font-family:var(--serif); font-style:italic; font-size:1.12rem; color:#fff;}
@keyframes cxdesfile{from{transform:translateX(0);}to{transform:translateX(-50%);}}
/* logo grande */
/* Banda achatada: el usuario la veía demasiado alta. Menos padding vertical y
   logo algo más pequeño — de ~656px de alto a ~480px. */
#vistaConocenos .cx-logo-band{background:transparent; padding:42px 0 52px; text-align:center; position:relative; overflow:hidden;}
#vistaConocenos .cx-logo-grande{width:min(268px,44vw); margin:0 auto; opacity:.97;
  filter:drop-shadow(0 18px 40px rgba(0,0,0,.35));}
/* La línea ya no cruza por detrás del logo: va DEBAJO, subrayándolo.
   Antes era un ::before de la banda centrado al 50% y lo partía por la mitad. */
#vistaConocenos .cx-logo-linea{width:min(430px,66vw); height:1px; margin:26px auto 0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);}
#vistaConocenos .cx-logo-pie{/* margen declarado por completo: al ser un <p> heredaba un margin-bottom de
     1em del navegador que añadía 24px sueltos al alto de la banda (en el
     borrador grande no aparecía porque el sitio resetea los <p>). */
  margin:30px auto 0;
  font-family:var(--serif); font-style:italic;
  font-size:clamp(1.05rem,1.9vw,1.5rem); color:#fff; max-width:56ch;
  line-height:1.5; text-align:center;}
/* ====================== 3 · CIFRA ANCLA ====================== */
#vistaConocenos .cx-ancla{background:var(--crema); padding:112px 0;}
#vistaConocenos .cx-ancla-grid{display:grid; grid-template-columns:auto 1fr; gap:64px; align-items:center;}
#vistaConocenos .cx-bignum{font-family:var(--serif); font-weight:300; line-height:.86;
  font-size:clamp(7rem,17vw,16rem); color:var(--verde-calido); letter-spacing:-0.04em;}
#vistaConocenos .cx-ancla-txt h2{font-family:var(--serif); font-weight:300; margin:0;
  font-size:clamp(1.7rem,3vw,2.9rem); line-height:1.12; color:var(--verde-oscuro);}
#vistaConocenos .cx-ancla-txt p{margin:20px 0 0; font-size:1.02rem; color:#4A4C40; max-width:64ch; text-align:justify;}
/* Video de presentacion: miniatura en una "pantalla" con boton de play; abre YouTube en pestaña nueva (no se incrusta nada: sin cookies de terceros;
   la miniatura va incluida en la propia web, asi no se pide nada a YouTube hasta pulsar) */
#vistaConocenos .cx-ancla-grid{position:relative;}
#vistaConocenos .cx-video{position:absolute; right:48px; top:8px; width:min(400px, 32vw);
  display:flex; flex-direction:column; align-items:stretch; gap:16px; text-decoration:none;}
#vistaConocenos .cx-video-pantalla{position:relative; display:block; aspect-ratio:16/9; border-radius:16px; overflow:hidden;
  background:#16211f; border:7px solid #16211f;
  box-shadow:0 28px 46px -22px rgba(10,22,21,.65), 0 0 0 1px rgba(201,162,39,.35);
  transition:transform .3s ease, box-shadow .3s ease;}
#vistaConocenos .cx-video-pantalla img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:9px; transition:transform .5s ease;}
#vistaConocenos .cx-video-pantalla::after{content:""; position:absolute; inset:0; border-radius:9px; background:linear-gradient(180deg, rgba(10,22,21,.05) 40%, rgba(10,22,21,.45) 100%); pointer-events:none;}
#vistaConocenos .cx-video-play{position:absolute; left:50%; top:50%; width:74px; height:74px; margin:-37px 0 0 -37px; z-index:2; border-radius:50%; display:grid; place-items:center;
  background:linear-gradient(180deg,#DDBA45,var(--dorado)); color:var(--turquesa);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 12px 22px -8px rgba(0,0,0,.6);
  transition:transform .25s ease;}
#vistaConocenos .cx-video-play::before{content:""; position:absolute; inset:-9px; border-radius:50%; border:1px solid rgba(246,242,231,.7); animation:cxVideoPulso 2.6s ease-out infinite;}
#vistaConocenos .cx-video-play svg{width:30px; height:30px; fill:currentColor; margin-left:5px;}
#vistaConocenos .cx-video:hover .cx-video-pantalla, #vistaConocenos .cx-video:focus-visible .cx-video-pantalla{transform:translateY(-4px); box-shadow:0 34px 54px -22px rgba(10,22,21,.7), 0 0 0 1px rgba(201,162,39,.6);}
#vistaConocenos .cx-video:hover .cx-video-pantalla img{transform:scale(1.04);}
#vistaConocenos .cx-video:hover .cx-video-play, #vistaConocenos .cx-video:focus-visible .cx-video-play{transform:scale(1.08);}
#vistaConocenos .cx-video:focus-visible{outline:2px solid var(--dorado-texto); outline-offset:8px; border-radius:18px;}
#vistaConocenos .cx-video-txt{display:flex; flex-direction:column; gap:3px; text-align:center; font-family:'Vidaloka','Karla',sans-serif; text-transform:uppercase; letter-spacing:.18em; font-size:.8rem; color:var(--verde-oscuro);}
#vistaConocenos .cx-video-txt small{font-family:'Karla',sans-serif; font-size:.7rem; letter-spacing:.14em; font-weight:700; color:var(--dorado-texto);}
@keyframes cxVideoPulso{ 0%{ transform:scale(.92); opacity:.9; } 70%{ transform:scale(1.28); opacity:0; } 100%{ transform:scale(1.28); opacity:0; } }
@media(prefers-reduced-motion:reduce){
#vistaConocenos .cx-video-play::before{animation:none; opacity:.6;}
#vistaConocenos .cx-video-pantalla, #vistaConocenos .cx-video-pantalla img{transition:none;}
}
@media(max-width:1180px){
#vistaConocenos .cx-video{position:static; grid-column:1 / -1; width:min(440px,100%); margin-top:10px;}
#vistaConocenos .cx-video-txt{text-align:left;}
}
/* ====================== 4 · VALORES ====================== */
/* Rejilla de tarjetas al estilo de la referencia (investhome): columna de título
   fija a la izquierda + tarjetas blancas con icono, título y texto centrados.
   Fondo en crema oscura (no verde) para que las tarjetas blancas recorten, y para
   mantener escalón con la sección anterior (crema) y la siguiente (crema). */
#vistaConocenos .cx-valores{background:var(--crema-oscura); color:var(--tinta); padding:120px 0;}
#vistaConocenos .cx-val-grid{display:grid; grid-template-columns:0.8fr 2.2fr; gap:56px; align-items:start;}
#vistaConocenos .cx-val-izq{position:sticky; top:150px;}
#vistaConocenos .cx-val-izq .cx-eyebrow{color:var(--dorado-texto);}
#vistaConocenos .cx-val-izq h2{font-family:var(--serif); font-weight:300; margin:0;
  font-size:clamp(1.9rem,3.2vw,3.1rem); line-height:1.1; color:var(--verde-oscuro);}
/* Mision y vision: dos «ventanas» unidas por una linea vertical (del centro inferior de la primera al
   centro superior de la segunda). */
#vistaConocenos .cx-mv{margin-top:36px; display:flex; flex-direction:column; gap:48px;}
#vistaConocenos .cx-mv-item{position:relative; background:#fff; border:1px solid var(--borde); border-radius:20px;
  padding:24px 26px 24px; box-shadow:0 20px 38px -28px rgba(32,64,62,.5);}
#vistaConocenos .cx-mv-item::before{content:""; position:absolute; left:50%; width:9px; height:9px; margin-left:-4.5px; border-radius:50%;
  background:var(--dorado); box-shadow:0 0 0 3px var(--crema-oscura);}
#vistaConocenos .cx-mv-item:first-child::before{top:100%; margin-top:-4px;}
/* punto en el centro inferior */
#vistaConocenos .cx-mv-item:last-child::before{top:-4.5px;}
/* punto en el centro superior */
#vistaConocenos .cx-mv-item:first-child::after{content:""; position:absolute; left:50%; top:100%; width:1px; height:48px; margin-left:-.5px;
  background:linear-gradient(180deg,var(--dorado),rgba(201,162,39,.7));}
#vistaConocenos .cx-mv-cab{display:flex; align-items:center; gap:12px; margin-bottom:10px;}
#vistaConocenos .cx-mv-ico{width:38px; height:38px; flex-shrink:0; border-radius:50%; padding:8px;
  border:1.5px solid rgba(184,134,11,.55); color:var(--dorado-texto); background:var(--crema);}
#vistaConocenos .cx-mv-ico svg{width:100%; height:100%; display:block;}
#vistaConocenos .cx-mv-item h3{margin:0; font-family:var(--serif); font-size:1.18rem;
  letter-spacing:0.02em; color:var(--cobre-logo); font-weight:600;}
#vistaConocenos .cx-mv-item p{margin:0; color:#4A4C40; font-size:0.94rem; line-height:1.58;}
/* Valores: ventanas que se dan la vuelta (como las fases del Proceso). Delante: icono + titulo grande;
   al pasar el cursor (o tocar) giran y muestran el texto. Los tres primeros arriba y los dos ultimos
   centrados debajo. Una linea vertical separa la columna de filosofia de las ventanas. */
#vistaConocenos .cx-val-lista{display:flex; flex-wrap:wrap; gap:26px; justify-content:center; position:relative;
  /* baja lo que ocupa el eyebrow «Nuestra filosofia» (1 linea de 0.92rem + 26px de margen), para que las ventanas
     arranquen a la altura del titular «Los principios que guian cada campana» */
  margin-top:calc(0.92rem * 1.6 + 26px);}
#vistaConocenos .cx-val-grid{position:relative;}
#vistaConocenos .cx-val-grid::before{content:""; position:absolute; top:0; bottom:0; width:1px; pointer-events:none;
  left:calc((100% - 56px) * 0.26667 + 28px);      /* centro del hueco entre las dos columnas (0.8fr / 2.2fr, gap 56px) */
  background:linear-gradient(180deg,rgba(184,134,11,.7),rgba(184,134,11,.35));}
#vistaConocenos .cx-val-item{flex:0 1 calc(33.333% - 18px); max-width:280px; aspect-ratio:1 / 0.92; position:relative; perspective:1400px;
  cursor:pointer; outline:none;}
#vistaConocenos .cx-val-inner{position:absolute; inset:0; transform-style:preserve-3d;
  transition:transform .8s cubic-bezier(.4,.2,.2,1);}
#vistaConocenos .cx-val-cara{position:absolute; inset:0; border-radius:20px; box-sizing:border-box;
  backface-visibility:hidden; -webkit-backface-visibility:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;}
#vistaConocenos .cx-val-frente{background:#fff; border:1px solid var(--borde); padding:26px;
  box-shadow:0 22px 40px -30px rgba(0,0,0,.4);}
#vistaConocenos .cx-val-ico{width:66px; height:66px; color:var(--dorado-texto); margin-bottom:18px; flex-shrink:0;}
#vistaConocenos .cx-val-ico svg{width:100%; height:100%; display:block;}
#vistaConocenos .cx-val-item h3{margin:0; font-family:var(--serif); font-weight:600;
  font-size:1.6rem; line-height:1.1; color:var(--verde-oscuro); letter-spacing:0.005em;}
#vistaConocenos .cx-val-dorso{transform:rotateY(180deg); padding:22px 20px;
  background:linear-gradient(180deg,#26494a 0%,var(--turquesa,#20403E) 100%);
  border:1px solid rgba(201,162,39,.55);}
#vistaConocenos .cx-val-dorso::before{content:""; display:block; width:38px; height:2px; background:#DDBA45; margin-bottom:14px; flex-shrink:0;}
#vistaConocenos .cx-val-dorso p{margin:0; color:rgba(246,242,231,.95); font-size:.92rem; line-height:1.55; text-align:center;}
@media(hover:hover){
#vistaConocenos .cx-val-item:hover .cx-val-inner{transform:rotateY(180deg);}
}
#vistaConocenos .cx-val-item:focus-visible .cx-val-inner, #vistaConocenos .cx-val-item.abierto .cx-val-inner{transform:rotateY(180deg);}
#vistaConocenos .cx-val-item:focus-visible{outline:2px solid #DDBA45; outline-offset:6px; border-radius:22px;}
@media(prefers-reduced-motion: reduce){
#vistaConocenos .cx-val-inner{transition:none;}
}
@media(max-width:1000px){
#vistaConocenos .cx-val-grid::before{display:none;}
#vistaConocenos .cx-val-lista{margin-top:0;}
}
/* ====================== 5 · INICIOS Y PROYECCIÓN ====================== */
#vistaConocenos .cx-camino{background:var(--crema); padding:120px 0;}
/* cabecera centrada, como en la imagen de referencia que pasó el usuario */
#vistaConocenos .cx-camino-head{max-width:56ch; margin:0 auto 66px; text-align:center;}
#vistaConocenos .cx-camino-head .cx-eyebrow{color:var(--dorado-texto);}
#vistaConocenos .cx-camino-head h2{font-family:var(--serif); font-weight:300; margin:0;
  font-size:clamp(1.8rem,3.1vw,3rem); line-height:1.12; color:var(--verde-oscuro);}
/* Esquema calcado de la imagen que pasó el usuario: año centrado encima de una
   LÍNEA HORIZONTAL CONTINUA, círculo sobre la línea, y desde él una BAJADA
   VERTICAL con punta de flecha hacia el contenido, todo centrado.
   La línea continua se forma con un tramo por hito que se extiende hasta cubrir
   el padding lateral (left/right negativos), de modo que los tramos se tocan. */
#vistaConocenos .cx-linea{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
#vistaConocenos .cx-hito{text-align:center; padding:0 18px; position:relative;}
#vistaConocenos .cx-hito-anio{font-family:var(--serif); font-size:1.55rem; color:var(--cobre-logo);
  font-weight:600; line-height:1; margin-bottom:14px;}
#vistaConocenos .cx-hito-marca{position:relative; height:66px; margin-bottom:6px;}
#vistaConocenos .cx-hito-marca::before{/* tramo de la línea horizontal */
  content:""; position:absolute; top:9px; left:-18px; right:-18px;
  height:1px; background:rgba(85,102,61,.34);}
#vistaConocenos .cx-hito:first-child .cx-hito-marca::before{left:50%;}
/* sin linea previa a 1900: empieza en su punto */
#vistaConocenos .cx-hito:last-child  .cx-hito-marca::before{right:50%;}
/* continua hasta el punto de 2026 */
/* De 2026 en adelante: sucesion de tramos (discontinua) y punta de flecha hacia delante */
#vistaConocenos .cx-hito:last-child .cx-hito-marca::after{content:""; position:absolute; top:3px; height:12px; left:calc(50% + 12px); right:-18px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 1.5L8.5 6 3 10.5' fill='none' stroke='%2355663D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right center / 12px 12px no-repeat,
    repeating-linear-gradient(90deg, rgba(85,102,61,.55) 0 9px, transparent 9px 17px) left center / calc(100% - 8px) 1px no-repeat;}
#vistaConocenos .cx-hito-punto{position:absolute; left:50%; top:9px; transform:translate(-50%,-50%);
  width:17px; height:17px; border-radius:50%; box-sizing:border-box;
  background:var(--turquesa,#20403E); border:1.5px solid var(--turquesa,#20403E); box-shadow:0 0 0 4px var(--crema); z-index:1;}
#vistaConocenos .cx-hito-bajada{/* línea vertical desde el círculo */
  position:absolute; left:50%; top:20px; bottom:2px; width:1px;
  background:rgba(85,102,61,.45); transform:translateX(-50%);}
#vistaConocenos .cx-hito-bajada::after{/* punta de flecha, hacia abajo */
  content:""; position:absolute; left:50%; bottom:0; width:9px; height:9px;
  box-sizing:border-box;
  border-right:1.6px solid rgba(85,102,61,.72);
  border-bottom:1.6px solid rgba(85,102,61,.72);
  transform:translate(-50%,0) rotate(45deg);}
#vistaConocenos .cx-hito{display:flex; flex-direction:column;}
#vistaConocenos .cx-hito{cursor:pointer; outline:none;}
#vistaConocenos .cx-hito-anio{transition:transform .3s ease;}
/* El titulo y el texto de cada hito van en una «ventanita» (misma familia que las de mision y vision) */
#vistaConocenos .cx-hito-card{flex:1; background:#fff; border:1px solid var(--borde); border-radius:20px;
  padding:20px 16px 12px; box-shadow:0 20px 38px -28px rgba(32,64,62,.5);}
#vistaConocenos .cx-hito-card p{max-width:none;}
/* --- Ventanas emergentes de la cronologia ---
   Escritorio (>1200px): la ventana de cada hito NO ocupa sitio; aparece flotando bajo la flecha, como saliendo de su
   punta (fundido + crecimiento), al pasar el raton por el año, el punto o la propia ventana. Tambien con teclado
   (foco) o al tocar (.abierto). Pantallas estrechas (<=1200px): acordeon en su sitio, se abre con un toque. */
@media(min-width:1201px){
#vistaConocenos .cx-hito-card{position:absolute; top:100%; left:18px; right:18px; z-index:5; flex:none;
    opacity:0; visibility:hidden; pointer-events:none;
    transform:translateY(-14px) scale(.88); transform-origin:50% 0;
    transition:opacity .28s ease, transform .4s cubic-bezier(.22,1,.36,1), visibility 0s linear .4s;}
#vistaConocenos .cx-hito.abierto .cx-hito-card, #vistaConocenos .cx-hito:focus-visible .cx-hito-card{opacity:1; visibility:visible; pointer-events:auto; transform:none;
    transition:opacity .28s ease, transform .4s cubic-bezier(.22,1,.36,1), visibility 0s;}
#vistaConocenos .cx-hito.abierto .cx-hito-anio, #vistaConocenos .cx-hito:focus-visible .cx-hito-anio{transform:scale(1.12);}
}
@media(min-width:1201px) and (hover:hover){
#vistaConocenos .cx-hito:hover .cx-hito-card{opacity:1; visibility:visible; pointer-events:auto; transform:none;
    transition:opacity .28s ease, transform .4s cubic-bezier(.22,1,.36,1), visibility 0s;}
#vistaConocenos .cx-hito:hover .cx-hito-anio{transform:scale(1.12);}
}
@media(max-width:1200px){
#vistaConocenos .cx-hito-card{max-height:0; padding-top:0; padding-bottom:0; opacity:0; overflow:hidden; border-width:0; box-shadow:none;
    transition:max-height .45s cubic-bezier(.22,1,.36,1), padding .45s ease, opacity .3s ease;}
#vistaConocenos .cx-hito.abierto .cx-hito-card, #vistaConocenos .cx-hito:focus-visible .cx-hito-card{max-height:320px; padding-top:20px; padding-bottom:12px; opacity:1; border-width:1px;
    box-shadow:0 20px 38px -28px rgba(32,64,62,.5);}
}
#vistaConocenos .cx-hito:focus-visible .cx-hito-anio{text-decoration:underline; text-decoration-color:var(--dorado); text-underline-offset:6px;}
/* La flecha que baja de cada punto tambien es emergente: aparece (creciendo hacia abajo) junto con la ventana */
#vistaConocenos .cx-hito-bajada{opacity:0; transform:translateX(-50%) scaleY(.15); transform-origin:50% 0;
  transition:opacity .28s ease, transform .4s cubic-bezier(.22,1,.36,1);}
#vistaConocenos .cx-hito.abierto .cx-hito-bajada, #vistaConocenos .cx-hito:focus-visible .cx-hito-bajada{opacity:1; transform:translateX(-50%) scaleY(1);}
@media(min-width:1201px) and (hover:hover){
#vistaConocenos .cx-hito:hover .cx-hito-bajada{opacity:1; transform:translateX(-50%) scaleY(1);}
}
@media(prefers-reduced-motion: reduce){
#vistaConocenos .cx-hito-card, #vistaConocenos .cx-hito-anio, #vistaConocenos .cx-hito-bajada{transition:none !important;}
}
#vistaConocenos .cx-hito h3{margin:0 0 8px; font-size:1.18rem; color:var(--verde-oscuro); font-weight:700; line-height:1.28;}
#vistaConocenos .cx-hito p{margin:0 auto; font-size:0.93rem; color:#55584A; line-height:1.58; max-width:32ch;}
/* proyección */
/* Sin fondo verde: solo contorno grueso, como pidió el usuario. Al quitar el
   fondo oscuro hay que devolver todos los textos de dentro a tonos de fondo claro. */
#vistaConocenos .cx-proy{/* sin ventana (antes marco verde con fondo): el bloque respira mas y su encabezado se alinea con el resto de eyebrows */
  margin-top:210px; color:var(--tinta);   /* aire para la ventana flotante del hito abierto (escritorio) */}
@media(max-width:1200px){
#vistaConocenos .cx-proy{margin-top:120px;}
}
#vistaConocenos .cx-proy-head{display:flex; justify-content:space-between; align-items:flex-start; gap:40px; flex-wrap:wrap; margin-bottom:68px;}
#vistaConocenos .cx-proy-head h3{margin:0; font-family:var(--serif); font-weight:300; color:var(--verde-oscuro);
  font-size:clamp(1.45rem,2.4vw,2.2rem); line-height:1.15; max-width:22ch;}
#vistaConocenos .cx-proy-head .cx-eyebrow{color:var(--dorado-texto); margin-bottom:14px;}
/* Deja de ser un texto suelto en la esquina: pasa a recuadro con marco dorado,
   fondo tenue e icono, para que tenga entidad propia. */
/* Recuadro con icono arriba y texto centrado debajo. */
#vistaConocenos .cx-proy-nota-top{display:inline-flex; flex-direction:column; align-items:center; gap:10px; margin:0;
  font-size:0.88rem; color:#55584A; max-width:56ch; line-height:1.5; text-align:center;
  background:rgba(201,162,39,.09); border:1px solid rgba(201,162,39,.55);
  border-radius:12px; padding:18px 24px;}
#vistaConocenos .cx-proy-nota-top svg{width:26px; height:26px; flex-shrink:0; color:var(--dorado-texto);}
/* Grafico de proyeccion: barras APILADAS. Cada año = base (total del año anterior, verde turquesa del sitio)
   + crecimiento del año (cobre). Alturas proporcionales a las unidades (indice 2026 = 100). */
#vistaConocenos .cx-barras{display:grid; grid-template-columns:repeat(6,1fr); gap:22px; align-items:end; height:340px;}
#vistaConocenos .cx-barra{display:flex; flex-direction:column; height:100%; text-align:center; min-width:0;}
#vistaConocenos .cx-barra-area{flex:1 1 auto; position:relative; min-height:0;}
#vistaConocenos .cx-barra-pila{position:absolute; top:0; bottom:0; left:50%; width:min(124px,88%); transform:translateX(-50%);
  display:flex; flex-direction:column; justify-content:flex-end;}
#vistaConocenos .cx-barra-val{font-family:var(--serif); font-size:1.5rem; color:var(--cobre-logo);
  font-weight:600; margin-bottom:8px; flex:0 0 auto; line-height:1.1;}
#vistaConocenos .cx-barra-val-base{font-size:0.82rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--turquesa,#20403E); font-family:var(--sans);}
#vistaConocenos .cx-barra-fill{flex:0 0 auto; height:0; overflow:hidden; display:flex; align-items:center; justify-content:center;
  transition:height 1.15s cubic-bezier(.22,1,.36,1);}
#vistaConocenos .cx-barra-fill span{font-size:0.8rem; font-weight:700; letter-spacing:0.02em; color:rgba(255,255,255,.92); line-height:1; white-space:nowrap;}
#vistaConocenos .cx-base{background:linear-gradient(180deg,#2A5250,var(--turquesa,#20403E));}
#vistaConocenos .cx-inc{background:linear-gradient(180deg,#B85A26,var(--cobre-logo)); border-radius:5px 5px 0 0;}
#vistaConocenos .cx-solo{border-radius:5px 5px 0 0;}
#vistaConocenos .cx-barra-lbl{margin-top:14px; font-size:0.9rem; letter-spacing:0.1em; text-transform:uppercase;
  color:#6B6E5E; font-weight:600;}
#vistaConocenos .cx-proy-leyenda{display:flex; justify-content:center; flex-wrap:wrap; gap:12px 34px; margin-top:22px; font-size:0.86rem; color:#55584A;}
#vistaConocenos .cx-proy-leyenda span{display:inline-flex; align-items:center; gap:9px;}
#vistaConocenos .cx-proy-leyenda i{width:14px; height:14px; border-radius:3px; display:inline-block;}
#vistaConocenos .cx-ley-base{background:var(--turquesa,#20403E);}
#vistaConocenos .cx-ley-inc{background:var(--cobre-logo);}
#vistaConocenos .cx-proy-nota{/* margen completo por el mismo motivo que .cx-logo-pie: es un <p> y heredaba
     un margin-bottom de 1em del navegador */
  margin:34px 0 0; padding-top:20px; border-top:1px solid var(--borde);
  font-size:0.83rem; color:#6B6E5E; line-height:1.55; font-style:italic;}
/* ====================== 6 · CIFRAS ====================== */
/* Formato de la imagen que pasó el usuario: banda de color, titular a la
   izquierda y las cifras dentro de una caja con marco y separadores verticales. */
#vistaConocenos .cx-cifras{background:var(--turquesa,#20403E); color:#fff; padding:64px 0;   /* verde turquesa del sitio (antes verde oliva) */
  position:relative; overflow:hidden; isolation:isolate;}
/* Fondo de lineas blancas (foto Gemini ...s7f5, pasada a lineas con transparencia), igual que la franja del logo:
   opacidad 30 %, cover, detras de todo el contenido. La rama con aceitunas queda a la derecha; el titular, sobre la parte vacia. */
#vistaConocenos .cx-cifras::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  /* La rama ENTERA (contain, sin recortar ni difuminar), pegada al margen derecho de la franja */
  background:var(--lineas) 100% 70% / contain no-repeat; opacity:.30;}
#vistaConocenos .cx-cifras > *{position:relative; z-index:1;}
/* La misma rama, dada la vuelta (espejo horizontal), en el extremo IZQUIERDO de la franja: mismo tamano, altura, opacidad y aspecto que la de la derecha */
#vistaConocenos .cx-cifras::after{content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:var(--lineas) 100% 70% / contain no-repeat; opacity:.30; transform:scaleX(-1);}
@media(max-width:900px){
#vistaConocenos .cx-cifras::after{display:none;}
}
/* en pantallas estrechas las dos ramas se solaparian sobre las cifras */
/* `1fr auto` hacía que la columna del título se comiera todo el sobrante y
   empujara la caja al extremo derecho, dejando un vacío enorme en medio.
   Con `auto auto` + justify-content:center las dos columnas se ajustan a su
   contenido y el conjunto queda centrado en la banda. */
#vistaConocenos .cx-cifras-grid{display:grid; grid-template-columns:auto auto; justify-content:center; gap:72px; align-items:center;}
#vistaConocenos .cx-cifras-titulo{margin:0; font-family:var(--serif); font-weight:300; line-height:1.22;
  /* El verde oscuro sobre la banda oliva apenas se leía (1,94:1). Se pasa al
     dorado del sitio, pero al tono ÁMBAR: sobre esta banda --dorado (#C9A227)
     solo alcanza 2,59:1, por debajo del mínimo de 3:1 para texto grande,
     mientras que --ambar da 4,50:1. Es el mismo dorado claro que ya usa el
     eyebrow de la portada. */
  font-size:clamp(1.5rem,2.6vw,2.25rem); color:var(--ambar); max-width:17ch;}
#vistaConocenos .cx-cifras-titulo b{color:#fff; font-weight:700;}
#vistaConocenos .cx-cifras-caja{display:flex; flex-wrap:wrap;
  border:1px solid rgba(255,255,255,.45); border-radius:10px; overflow:hidden;}
#vistaConocenos .cx-cifra{padding:26px 30px; text-align:center; min-width:150px; flex:1 1 auto;}
#vistaConocenos .cx-cifra + .cx-cifra{border-left:1px solid rgba(255,255,255,.45);}
#vistaConocenos .cx-cifra b{display:block; font-family:var(--serif); font-weight:400;
  font-size:clamp(1.9rem,3.2vw,2.9rem); line-height:1; color:#fff; letter-spacing:-0.02em;}
#vistaConocenos .cx-cifra span{display:block; margin-top:10px; font-size:0.83rem; color:rgba(255,255,255,.92);}
/* ====================== 7 · CIERRE ====================== */
/* Cierre: mismo formato que la ultima franja de Territorio (foto de fondo comun --cierre-foto, definida en la web principal) */
#vistaConocenos .cx-cierre{position:relative; padding:150px 24px; text-align:center;
  background:
    radial-gradient(ellipse 55% 110px at 50% 165px, rgba(10,22,21,.55) 0%, rgba(10,22,21,0) 72%),
    linear-gradient(180deg, rgba(20,40,38,.35) 0%, rgba(15,30,29,.45) 50%, rgba(10,22,21,.58) 100%),
    var(--cierre-foto, #1c3634);
  background-size:cover; background-position:center 3%;}
#vistaConocenos .cx-cierre .wrap-n{max-width:720px; margin:0 auto;}
#vistaConocenos .cx-cierre-eyebrow{font-family:'Vidaloka','Karla',sans-serif; font-weight:400; font-size:0.92rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--dorado); margin:0 0 18px;
  display:flex; align-items:center; justify-content:center; gap:16px;
  text-shadow:0 1px 2px rgba(0,0,0,.85), 0 2px 12px rgba(0,0,0,.5);}
#vistaConocenos .cx-cierre-eyebrow::before, #vistaConocenos .cx-cierre-eyebrow::after{content:""; width:28px; height:1px; background:var(--dorado); flex-shrink:0; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7));}
#vistaConocenos .cx-cierre h2{font-family:'Fraunces',Georgia,serif; font-weight:400; font-size:clamp(1.6rem,3.4vw,2.3rem); line-height:1.2;
  color:#fff; margin:0 0 18px; max-width:none; text-wrap:balance; text-shadow:0 2px 14px rgba(0,0,0,.4);}
#vistaConocenos .cx-cierre-txt{font-family:'Karla',sans-serif; color:rgba(246,242,231,.92); font-size:1rem; line-height:1.6; margin:0 0 34px; text-align:center; text-shadow:0 1px 10px rgba(0,0,0,.35);}
#vistaConocenos .cx-acciones{margin-top:0; display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
#vistaConocenos .cx-btn{font-family:'Karla',sans-serif; font-weight:700; font-size:.92rem; letter-spacing:.02em;
  padding:15px 30px; border-radius:999px; cursor:pointer; text-decoration:none;
  display:inline-flex; align-items:center; gap:8px; border:none;
  transition:transform .2s ease, background .25s ease, box-shadow .25s ease;}
#vistaConocenos .cx-btn-primario{background:linear-gradient(180deg,#DDBA45,var(--dorado)); color:var(--turquesa); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 8px 18px -9px rgba(0,0,0,.45);}
#vistaConocenos .cx-btn-primario:hover{transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 12px 22px -8px rgba(0,0,0,.5);}
#vistaConocenos .cx-btn-ghost{background:linear-gradient(180deg, rgba(246,242,231,.16), rgba(246,242,231,.05)); color:#fff; box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 0 0 1.5px rgba(246,242,231,.45);}
#vistaConocenos .cx-btn-ghost:hover{background:linear-gradient(180deg, rgba(246,242,231,.24), rgba(246,242,231,.09)); box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 0 0 1.5px #fff;}
@media(max-width:700px){
#vistaConocenos .cx-cierre{padding:96px 22px;}
}
#vistaConocenos .btn{display:inline-flex; align-items:center; gap:10px; text-decoration:none;
  padding:15px 30px; border-radius:999px; font-size:0.98rem; cursor:pointer; border:none;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;}
#vistaConocenos .btn-primary{background:linear-gradient(180deg,#DDBA45,var(--dorado)); color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 8px 18px -9px rgba(32,64,62,.4);}
#vistaConocenos .btn-primary:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 12px 22px -8px rgba(32,64,62,.5);}
#vistaConocenos .btn-ghost{background:linear-gradient(180deg, rgba(85,102,61,.10), rgba(85,102,61,.03)); color:var(--verde-oscuro);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 0 0 1.5px rgba(85,102,61,.4);}
#vistaConocenos .btn-ghost:hover{background:linear-gradient(180deg, rgba(85,102,61,.18), rgba(85,102,61,.07)); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 0 0 1.5px var(--verde-calido);}
#vistaConocenos .btn:hover{transform:translateY(-2px);}
#vistaConocenos footer.cx-foot{background:var(--verde-oscuro); color:rgba(246,242,231,.7); padding:34px 0; font-size:0.86rem;}
#vistaConocenos .cx-foot-in{display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; align-items:center;}
/* ====================== LINEAS DIVISORIAS EN COBRE ======================
   Donde se suceden franjas de fondo crema (o casi), se marca la junta con una linea de cobre (--cobre-logo). */
#vistaConocenos .cx-valores{border-top:1px solid var(--cobre-logo);}
/* Nuestra experiencia -> Nuestra filosofia */
#vistaConocenos .cx-camino{border-top:1px solid var(--cobre-logo); overflow-x:clip;}
/* Nuestra filosofia -> Nuestro camino */
#vistaConocenos .cx-proy{position:relative;}
/* Nuestro camino -> La proyeccion marcada (linea a ancho completo) */
#vistaConocenos .cx-proy::before{content:""; position:absolute; top:-30px; left:50%; width:100vw; margin-left:-50vw; height:1px;
  background:var(--cobre-logo); pointer-events:none;}
/* ====================== MOVIMIENTOS ====================== */
/* Los estados ocultos SOLO se aplican si el JS ha arrancado (clase .js en <html>).
   Sin JS, o si algo falla antes de tiempo, todo el contenido se ve tal cual:
   una animación nunca debe poder dejar texto invisible de forma permanente. */
/* revelado de texto por palabras */
#vistaConocenos .sp{display:inline-block; overflow:hidden; vertical-align:top;}
#vistaConocenos .sp > i{display:inline-block; font-style:inherit;}
#vistaConocenos .js .sp > i{transform:translateY(112%);
  transition:transform .95s cubic-bezier(.19,1,.22,1);}
#vistaConocenos .js .sp.on > i{transform:translateY(0);}
/* reveal genérico */
#vistaConocenos .js .rv{opacity:0; transform:translateY(30px); transition:opacity .9s ease, transform .9s cubic-bezier(.19,1,.22,1);}
#vistaConocenos .js .rv.on{opacity:1; transform:none;}
#vistaConocenos .rv.d1{transition-delay:.09s;}
#vistaConocenos .rv.d2{transition-delay:.18s;}
#vistaConocenos .rv.d3{transition-delay:.27s;}
#vistaConocenos .rv.d4{transition-delay:.36s;}
/* tilt */
#vistaConocenos .tilt{transform-style:preserve-3d; transition:transform .35s ease;}
@media (prefers-reduced-motion:reduce){
#vistaConocenos *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
#vistaConocenos .sp > i{transform:none;}
#vistaConocenos .rv{opacity:1; transform:none;}
}
/* ====================== RESPONSIVE ====================== */
/* El sitio cambia el padding de su cabecera a 22px en este mismo punto de corte
   (`@media(max-width:860px){header.nav{padding:14px 22px}}`). La portada replica
   el corte para que su texto siga alineado con el logo a cualquier anchura. */
@media(max-width:860px){
#vistaConocenos .cx-hero .wrap{padding-left:22px; padding-right:22px;}
}
@media(max-width:1200px){
#vistaConocenos .cx-linea{grid-template-columns:repeat(2,1fr); row-gap:44px;}
#vistaConocenos .cx-val-item{flex:0 1 calc(50% - 13px);}
}
@media(max-width:1000px){
#vistaConocenos .cx-flash-head{grid-template-columns:1fr; gap:34px;}
#vistaConocenos .cx-val-grid{grid-template-columns:1fr; gap:44px;}
#vistaConocenos .cx-val-izq{position:static;}
#vistaConocenos .cx-val-item{flex:0 1 calc(50% - 13px);}
#vistaConocenos .cx-ancla-grid{grid-template-columns:1fr; gap:24px; text-align:left;}
#vistaConocenos .cx-cifras-grid{grid-template-columns:1fr; gap:34px;}
#vistaConocenos .cx-cifras-titulo{max-width:none;}
}
@media(max-width:700px){
#vistaConocenos .wrap, #vistaConocenos .wrap-n{padding:0 20px;}
#vistaConocenos .cx-barras{height:280px; gap:8px;}
#vistaConocenos .cx-barra-val{font-size:1rem;}
#vistaConocenos .cx-barra-lbl{font-size:0.66rem; letter-spacing:.04em;}
#vistaConocenos .cx-proy{padding:0;}
#vistaConocenos .cx-linea{grid-template-columns:1fr;}
#vistaConocenos .cx-val-item{flex:0 1 100%; aspect-ratio:auto; height:250px; max-width:none;}
/* en una sola columna el círculo y la bajada siguen valiendo; solo sobra
     el tramo horizontal, que ya no conecta con nada a los lados */
#vistaConocenos .cx-hito-marca::before, #vistaConocenos .cx-hito:last-child .cx-hito-marca::after{display:none;}
#vistaConocenos .cx-hito-marca{height:44px;}
#vistaConocenos .cx-scroll{display:none;}
#vistaConocenos .cx-proy-nota-top{max-width:none;}
/* las 4 cifras pasan a 2x2, cada una con su propio marco (con el marco único
     y flex-wrap el separador vertical caía mal al saltar de fila) */
#vistaConocenos .cx-cifras-caja{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; border:none; border-radius:0;}
#vistaConocenos .cx-cifra{min-width:0; border:1px solid rgba(255,255,255,.45); border-radius:8px; padding:20px 12px;}
#vistaConocenos .cx-cifra + .cx-cifra{border-left:1px solid rgba(255,255,255,.45);}
/* NO se reduce aquí el padding lateral de la portada: debe seguir coincidiendo
     con el del logo de la cabecera (40px) para que el texto quede alineado con él
     también en móvil. */
}
/* ---- Revision movil: texto alineado a la izquierda (el justificado abre huecos en columnas estrechas) y objetivos tactiles ---- */
@media(max-width:600px){
#vistaConocenos .cx-flash-txt p, #vistaConocenos .cx-ancla-txt p{text-align:left; hyphens:auto; -webkit-hyphens:auto;}
}
@media(pointer:coarse){
#vistaConocenos .cx-video{min-height:44px;}
}
/* Safari: prefijos en las ventanas de valores que giran */
@media(max-width:600px){
#vistaConocenos .cx-barra-lbl{font-size:.72rem;}
}
#vistaConocenos .cx-val-cara{-webkit-backface-visibility:hidden; backface-visibility:hidden;}
#vistaConocenos .cx-val-inner{-webkit-transform-style:preserve-3d; transform-style:preserve-3d;}

/* Botón de Historia hacia la vista Conócenos */
.historia-head{display:flex; justify-content:space-between; align-items:flex-end;
  gap:40px; flex-wrap:wrap;}
.historia-head .titulo-seccion{margin:0;}
.historia-cta{color:var(--verde-oscuro); flex-shrink:0;
  background:linear-gradient(180deg, rgba(85,102,61,.10), rgba(85,102,61,.03));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 0 0 1.5px rgba(85,102,61,.4);}
.historia-cta:hover{background:linear-gradient(180deg, rgba(85,102,61,.2), rgba(85,102,61,.08));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 0 0 1.5px var(--verde-calido); color:var(--verde-oscuro);}
.historia-cta svg{width:18px; height:18px;}
@media(max-width:760px){ .historia-head{gap:22px;} }


/* ============================================================
   VISTA «TERRITORIO»
   CSS copiado de territorio-borrador-v1.html y ACOTADO por completo a
   #vistaTerritorio. Mismo patrón que Conócenos: el HTML va literal, esta
   hoja manda solo dentro de la vista.
   ============================================================ */
#vistaTerritorio{
  display:none;
}
body.viendo-territorio #vistaPrincipal,
body.viendo-territorio #vistaProducto,
body.viendo-territorio #vistaTienda,
body.viendo-territorio #vistaNewsletter,
body.viendo-territorio #vistaConocenos{display:none;}
body.viendo-territorio #vistaTerritorio{display:block;}
#vistaTerritorio .preview-aviso{background:#111;color:#fff;font-family:sans-serif;font-size:12px;padding:8px 16px;text-align:center;}
/* ---------- Hero de Territorio ---------- */
#vistaTerritorio .tr-hero{position:relative; min-height:78vh; display:flex; align-items:flex-start;
    padding:0; overflow:hidden;}
#vistaTerritorio .tr-hero-bg{position:absolute; inset:0; background-size:cover; background-position:center 42%;
    transform:scale(1.06); animation:heroKen 22s ease-out forwards;}
#vistaTerritorio .tr-hero-overlay{position:absolute; inset:0;
    /* Mismo filtro de luminosidad que la portada de Conocenos (.cx-hero::after),
       solo que aqui la foto no se queda fija (position:relative, no fixed): al
       hacer scroll sube con el resto de la seccion, como pidio el usuario. */
    /* MAS OPACA (foto muy luminosa): degradado vertical mas denso + velo lateral por el lado del texto, para que las letras resalten */
    background:
      linear-gradient(90deg,rgba(14,22,10,.50) 0%,rgba(14,22,10,.32) 45%,rgba(14,22,10,.08) 80%,rgba(14,22,10,0) 100%),
      linear-gradient(180deg,rgba(20,28,14,.80) 0%,rgba(20,28,14,.60) 42%,rgba(20,28,14,.46) 68%,rgba(20,28,14,.66) 100%);}
#vistaTerritorio .tr-hero .tr-hero-in{position:relative; z-index:2; padding:clamp(172px,20vh,220px) 40px 72px 40px; max-width:900px; margin:0;}
#vistaTerritorio .tr-eyebrow{font-family:'Karla', sans-serif; font-weight:700; font-size:0.92rem; letter-spacing:0.22em; text-transform:uppercase;
    color:var(--ambar); margin:0 0 16px; display:flex; align-items:center; gap:12px;}
#vistaTerritorio .tr-eyebrow::before{content:""; width:28px; height:1px; background:var(--ambar);}
/* misma raya y estilo que el eyebrow de «Origen» de la web principal */
#vistaTerritorio .tr-titulo{font-family:'Fraunces', Georgia, serif; font-weight:300; font-style:italic;
    font-size:clamp(2.1rem, 4.6vw, 3.6rem); line-height:1.14; color:#fff; margin:0 0 26px;
    text-wrap:balance; text-shadow:0 4px 24px rgba(0,0,0,.35);}
#vistaTerritorio .tr-titulo b{font-weight:600; font-style:normal; color:var(--dorado);}
#vistaTerritorio .tr-lead-hero{font-family:'Karla', sans-serif; font-size:1.08rem; line-height:1.7; color:rgba(246,242,231,.92);
    max-width:56ch; margin:0; text-shadow:0 1px 3px rgba(0,0,0,.55), 0 2px 16px rgba(0,0,0,.5); text-align:justify;}
#vistaTerritorio .tr-lead-hero b{color:#fff; font-weight:700;}
@media(max-width:760px){
#vistaTerritorio .tr-hero{min-height:64vh;}
#vistaTerritorio .tr-hero-in{padding:100px 24px 52px;}
}
/* ---------- Cierre de Territorio ---------- */
#vistaTerritorio .tr-cierre{position:relative; padding:150px 24px; text-align:center;
    background:
      radial-gradient(ellipse 55% 110px at 50% 165px, rgba(10,22,21,.55) 0%, rgba(10,22,21,0) 72%),
      linear-gradient(180deg, rgba(20,40,38,.35) 0%, rgba(15,30,29,.45) 50%, rgba(10,22,21,.58) 100%),
      var(--tr-cierre-bg);
    background-size:cover; background-position:center 3%;}
#vistaTerritorio .tr-cierre .wrap{max-width:720px; margin:0 auto;}
#vistaTerritorio .tr-cierre-eyebrow{font-family:'Vidaloka', 'Karla', sans-serif; font-weight:400; font-size:0.92rem; letter-spacing:.24em;
    text-transform:uppercase; color:var(--dorado); margin:0 0 18px;
    display:flex; align-items:center; justify-content:center; gap:16px;
    text-shadow:0 1px 2px rgba(0,0,0,.85), 0 2px 12px rgba(0,0,0,.5);}
#vistaTerritorio .tr-cierre-eyebrow::before, #vistaTerritorio .tr-cierre-eyebrow::after{content:""; width:28px; height:1px; background:var(--dorado); flex-shrink:0;
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.7));}
#vistaTerritorio .tr-cierre h2{font-family:'Fraunces', Georgia, serif; font-weight:400; font-size:clamp(1.6rem,3.4vw,2.3rem);
    color:#fff; margin:0 0 18px; text-wrap:balance; text-shadow:0 2px 14px rgba(0,0,0,.4);}
#vistaTerritorio .tr-cierre p:not(.tr-cierre-eyebrow){font-family:'Karla', sans-serif; color:rgba(246,242,231,.92); font-size:1rem;
    line-height:1.6; margin:0 0 34px; text-align:center; text-shadow:0 1px 10px rgba(0,0,0,.35);}
#vistaTerritorio .tr-acciones{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
#vistaTerritorio .tr-btn{font-family:'Karla', sans-serif; font-weight:700; font-size:.92rem; letter-spacing:.02em;
    padding:15px 30px; border-radius:999px; cursor:pointer; text-decoration:none;
    display:inline-flex; align-items:center; gap:8px; border:none;
    transition:transform .2s ease, background .25s ease, box-shadow .25s ease;}
#vistaTerritorio .tr-btn-primario{background:linear-gradient(180deg,#DDBA45,var(--dorado)); color:var(--turquesa);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 8px 18px -9px rgba(0,0,0,.45);}
#vistaTerritorio .tr-btn-primario:hover{transform:translateY(-2px); box-shadow:inset 0 1px 0 rgba(255,255,255,.6), 0 12px 22px -8px rgba(0,0,0,.5);}
#vistaTerritorio .tr-btn-ghost{background:linear-gradient(180deg, rgba(246,242,231,.16), rgba(246,242,231,.05)); color:#fff;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 0 0 1.5px rgba(246,242,231,.45);}
#vistaTerritorio .tr-btn-ghost:hover{background:linear-gradient(180deg, rgba(246,242,231,.24), rgba(246,242,231,.09)); box-shadow:inset 0 1px 0 rgba(255,255,255,.28), 0 0 0 1.5px #fff;}
#vistaTerritorio{--crema:#F6F2E7;
    --crema-oscura:#EDE6D6;
    --tinta:#25281F;
    --verde-calido:#55663D;
    --turquesa:#20403E;
    --turquesa-suave:#2C4E4B;
    --dorado:#C9A227;
    --dorado-texto:#B8860B;
    --cobre:var(--cobre-logo);
    --borde:#DAD2BC;
    --sombra: 0 20px 45px -25px rgba(32,64,62,.35);}
#vistaTerritorio *{box-sizing:border-box;}
#vistaTerritorio{margin:0; background:var(--crema); color:var(--tinta);
    font-family:'Karla', sans-serif;
    -webkit-font-smoothing:antialiased;}
#vistaTerritorio .franja-jaen{padding:88px 24px 100px;}
#vistaTerritorio .wrap{max-width:1120px; margin:0 auto;}
/* ---------- Cabecera de texto ---------- */
#vistaTerritorio .jn-eyebrow{display:flex; align-items:center; gap:12px;
    font-family:'Karla', sans-serif; font-weight:700; font-size:0.92rem;
    letter-spacing:.28em; text-transform:uppercase; color:var(--dorado-texto);
    margin:0 0 22px;}
#vistaTerritorio .jn-eyebrow::before{content:""; width:30px; height:1px; background:var(--dorado-texto);}
#vistaTerritorio .jn-titulo{font-family:'Fraunces', Georgia, serif; font-weight:300; font-style:italic;
    font-size:clamp(2rem, 4.4vw, 3.4rem); line-height:1.12; letter-spacing:-.01em;
    max-width:15ch; margin:0 0 28px; text-wrap:balance; color:var(--tinta);}
#vistaTerritorio .jn-titulo b{font-weight:600; font-style:normal; color:var(--cobre);}
#vistaTerritorio .jn-lead{font-size:1.08rem; line-height:1.7; max-width:62ch; color:var(--tinta);
    opacity:.92; margin:0 0 64px; text-align:justify;}
#vistaTerritorio .jn-lead b{color:var(--turquesa-suave); font-weight:700;}
/* ---------- Franja de datos (banda turquesa + redondelitos) ---------- */
#vistaTerritorio .jn-banda{background:
      linear-gradient(180deg, var(--turquesa) 0%, var(--turquesa-suave) 100%);
    border-radius:22px; padding:56px clamp(20px,4vw,56px) 48px;
    box-shadow:var(--sombra);}
#vistaTerritorio .jn-banda-cabecera{display:flex; align-items:baseline; justify-content:space-between; gap:16px;
    flex-wrap:wrap; margin-bottom:40px;}
#vistaTerritorio .jn-banda-titulo{font-family:'Fraunces', Georgia, serif; font-weight:400; font-size:1.5rem;
    color:var(--crema); margin:0;}
#vistaTerritorio .jn-banda-fuente{font-size:.78rem; color:rgba(246,242,231,.62); letter-spacing:.02em;}
#vistaTerritorio .jn-grid{display:grid; grid-template-columns:repeat(6, 1fr); gap:18px;}
@media (max-width:980px){
#vistaTerritorio .jn-grid{grid-template-columns:repeat(3, 1fr); gap:26px 16px;}
}
@media (max-width:560px){
#vistaTerritorio .jn-grid{grid-template-columns:repeat(2, 1fr);}
}
#vistaTerritorio .jn-stat{display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px;}
#vistaTerritorio .jn-circulo{width:112px; height:112px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:rgba(246,242,231,.06);
    border:1.5px solid rgba(201,162,39,.55);
    position:relative;}
#vistaTerritorio .jn-circulo::after{content:""; position:absolute; inset:6px; border-radius:50%;
    border:1px solid rgba(246,242,231,.14);}
#vistaTerritorio .jn-circulo-num{font-family:'Fraunces', Georgia, serif; font-weight:600; color:var(--crema);
    font-size:1.28rem; line-height:1.05; letter-spacing:-.01em;}
#vistaTerritorio .jn-circulo-num small{display:block; font-family:'Karla',sans-serif; font-weight:700; font-size:.62rem; letter-spacing:.06em; color:var(--dorado); margin-top:3px;}
#vistaTerritorio .jn-stat-label{font-size:.86rem; line-height:1.4; color:rgba(246,242,231,.86); max-width:16ch;}
#vistaTerritorio .jn-stat-label b{color:var(--crema); font-weight:700;}
/* jerarquía: la 6ª (Jaén / mundo) es la protagonista */
#vistaTerritorio .jn-stat.jn-hero .jn-circulo{width:132px; height:132px; background:rgba(201,162,39,.14);
    border-color:var(--dorado);}
#vistaTerritorio .jn-stat.jn-hero .jn-circulo-num{font-size:1.55rem; color:var(--dorado);}
#vistaTerritorio .jn-stat.jn-hero .jn-stat-label b{color:var(--dorado);}
/* ---------- Bloque de calidad / premios ---------- */
#vistaTerritorio .jn-calidad{margin-top:64px; display:grid; grid-template-columns:1.1fr 1fr; gap:56px;
    align-items:start;}
@media (max-width:820px){
#vistaTerritorio .jn-calidad{grid-template-columns:1fr; gap:40px;}
}
#vistaTerritorio .jn-calidad h3{font-family:'Fraunces', Georgia, serif; font-weight:400; font-size:1.5rem;
    margin:0 0 16px; color:var(--tinta);}
#vistaTerritorio .jn-calidad p{font-size:.98rem; line-height:1.7; color:var(--tinta); opacity:.88; margin:0 0 14px; text-align:justify;}
#vistaTerritorio .jn-calidad p b{color:var(--cobre); font-weight:700; opacity:1;}
#vistaTerritorio .jn-chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:18px;}
#vistaTerritorio .jn-chip{display:inline-flex; align-items:center; gap:8px;
    padding:9px 16px; border-radius:999px; border:1px solid var(--borde);
    background:var(--crema-oscura); font-size:.82rem; font-weight:600; color:var(--tinta);}
#vistaTerritorio .jn-chip .pt{width:7px; height:7px; border-radius:50%; background:var(--dorado); flex:none;}
#vistaTerritorio .jn-card{background:var(--crema-oscura); border:1px solid var(--borde); border-radius:18px;
    padding:32px 30px;}
#vistaTerritorio .jn-card .num{font-family:'Fraunces', Georgia, serif; font-weight:300; font-style:italic;
    font-size:3rem; line-height:1; color:var(--turquesa-suave);}
#vistaTerritorio .jn-card .num sup{font-size:1.4rem; font-style:normal; font-weight:600;}
#vistaTerritorio .jn-card .desc{font-size:.88rem; line-height:1.55; margin-top:10px; color:var(--tinta); opacity:.82;}
#vistaTerritorio .jn-card + .jn-card{margin-top:18px;}
/* ---------- Nota de fuentes ---------- */
#vistaTerritorio .jn-fuentes{margin-top:52px; padding-top:22px; border-top:1px solid var(--borde);
    font-size:.76rem; line-height:1.7; color:var(--tinta); opacity:.58; text-align:left;   /* a la izquierda (bandera): justificado a este tamano deja huecos irregulares entre palabras */}
#vistaTerritorio .jn-fuentes b{opacity:1;}
/* ---------- Mapa interactivo en cascada ---------- */
#vistaTerritorio .jn-mapa{margin-top:56px;}
#vistaTerritorio .jn-mapa-cabecera{display:flex; align-items:baseline; justify-content:space-between; gap:16px;
    flex-wrap:wrap; margin-bottom:22px;}
#vistaTerritorio .jn-mapa-titulo{font-family:'Fraunces', Georgia, serif; font-weight:400; font-size:1.5rem; margin:0; color:var(--tinta);}
#vistaTerritorio .jn-mapa-sub{font-size:.86rem; color:var(--tinta); opacity:.62; margin:4px 0 0;}
#vistaTerritorio .jn-migas{display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:.82rem; font-weight:700;}
#vistaTerritorio .jn-miga{background:none; border:none; cursor:pointer; padding:4px 2px;
    color:var(--tinta); opacity:.45; font-family:'Karla',sans-serif; font-weight:700; font-size:.82rem;
    letter-spacing:.02em; border-bottom:2px solid transparent;}
#vistaTerritorio .jn-miga:hover{opacity:.8;}
#vistaTerritorio .jn-miga[aria-current="true"]{opacity:1; color:var(--cobre); border-bottom-color:var(--dorado);}
#vistaTerritorio .jn-miga-sep{opacity:.35; font-size:.78rem;}
#vistaTerritorio .jn-mapa-caja{position:relative; background:var(--crema-oscura); border:1px solid var(--borde);
    border-radius:20px; padding:clamp(20px,4vw,40px); overflow:hidden; min-height:420px;}
#vistaTerritorio .jn-escena{display:none; opacity:0; animation:jnFade .5s ease forwards;}
#vistaTerritorio .jn-escena[data-activa="true"]{display:block;}
@keyframes jnFade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);} }
@media (prefers-reduced-motion: reduce){
#vistaTerritorio .jn-escena{animation:none; opacity:1;}
}
#vistaTerritorio .jn-escena-grid{display:grid; grid-template-columns: 1fr 260px; gap:32px; align-items:center;}
@media (max-width:760px){
#vistaTerritorio .jn-escena-grid{grid-template-columns:1fr;}
}
#vistaTerritorio .jn-mapa-svg-wrap{display:flex; align-items:center; justify-content:center;}
#vistaTerritorio .jn-mapa-svg-wrap svg{width:100%; height:auto; max-height:420px; overflow:visible;}
/* Importante: NUNCA usar transform:scale en :hover de una region de mapa -- cambia
     su geometria de hit-testing y provoca parpadeo (mouseenter/leave en bucle) en los
     bordes. En su lugar, solo color + filtro, que no afectan al hit-test. */
#vistaTerritorio .jn-region{fill:var(--turquesa-suave); stroke:var(--crema-oscura); stroke-width:1.1;
    cursor:pointer; transition:fill .15s ease, filter .15s ease;}
#vistaTerritorio .jn-region:hover{fill:var(--turquesa); filter:brightness(1.08);}
#vistaTerritorio .jn-region.jn-hl{fill:var(--dorado); opacity:.9;}
#vistaTerritorio .jn-region.jn-hl:hover{fill:var(--dorado-texto); opacity:1; filter:brightness(1.1);}
#vistaTerritorio .jn-mundo-svg .jn-region{fill:var(--turquesa-suave); stroke:var(--crema); stroke-width:.6; cursor:default;}
#vistaTerritorio .jn-mundo-svg .jn-region:hover{fill:var(--turquesa); filter:none;}
#vistaTerritorio .jn-pin{cursor:pointer;}
#vistaTerritorio .jn-pin .halo{fill:none; stroke:var(--dorado); stroke-width:1.6; opacity:.55;
    transform-box:fill-box; transform-origin:center;
    animation:jnPulso 2.2s ease-out infinite;}
@media (prefers-reduced-motion: reduce){
#vistaTerritorio .jn-pin .halo{animation:none; opacity:0;}
}
@keyframes jnPulso{ 0%{ transform:scale(.4); opacity:.7; } 100%{ transform:scale(3.4); opacity:0; } }
#vistaTerritorio .jn-pin .es-forma path{fill:var(--dorado); stroke:var(--crema-oscura); stroke-width:.6; transition:fill .15s ease;}
#vistaTerritorio .jn-pin:hover .es-forma path{fill:var(--dorado-texto);}
#vistaTerritorio .jn-mapa-panel{display:flex; flex-direction:column; gap:14px;}
#vistaTerritorio .jn-mapa-dato{background:var(--crema); border:1px solid var(--borde); border-radius:14px; padding:20px 20px 18px;}
#vistaTerritorio .jn-mapa-dato .cifra{font-family:'Fraunces', Georgia, serif; font-weight:600; font-size:1.9rem; color:var(--turquesa); line-height:1.05;}
#vistaTerritorio .jn-mapa-dato .etiqueta{font-size:.82rem; margin-top:6px; line-height:1.45; color:var(--tinta); opacity:.78;}
#vistaTerritorio .jn-mapa-hint{font-size:.78rem; color:var(--cobre); font-weight:700;}
#vistaTerritorio .jn-tooltip{display:none; position:fixed; z-index:600; max-width:240px;
    background:rgba(32,64,62,.94); backdrop-filter:blur(14px); color:#fff;
    font-family:'Karla',sans-serif; font-size:.82rem; line-height:1.5;
    padding:12px 14px; border-radius:8px; box-shadow:0 12px 30px -8px rgba(0,0,0,.5);
    pointer-events:none;}
#vistaTerritorio .jn-tooltip b{display:block; font-family:'Fraunces',serif; font-size:1.05rem; font-weight:600; color:var(--dorado); margin-bottom:2px;}
/* ---------- Banda «De la aceituna al mapa»: sin ventana, mas ancha y con circulos mayores ---------- */
#vistaTerritorio .jn-banda{background:none; box-shadow:none; border-radius:0; padding:0 8px;
    /* se sale del contenedor de 1120px hasta el ancho de las demas secciones (1440px), con el mismo margen de 32px */
    position:relative; left:50%; transform:translateX(-50%); width:min(1440px, calc(100vw - 48px));}
#vistaTerritorio .jn-banda-cabecera{margin-bottom:52px; align-items:flex-end;}
#vistaTerritorio .jn-banda-titulo{font-size:clamp(1.7rem,2.6vw,2.4rem); font-weight:400; line-height:1.15; color:var(--verde-oscuro); max-width:24ch;}
#vistaTerritorio .jn-banda-fuente{font-size:.86rem; color:#6B6D5C;}
#vistaTerritorio .jn-grid{gap:26px 24px;}
#vistaTerritorio .jn-circulo{width:150px; height:150px; background:linear-gradient(180deg, var(--turquesa-suave, #2A5250), var(--turquesa));
    border:2px solid var(--dorado); box-shadow:0 18px 32px -20px rgba(32,64,62,.6);}
#vistaTerritorio .jn-circulo::after{inset:8px; border-color:rgba(246,242,231,.22);}
#vistaTerritorio .jn-circulo-num{font-size:1.8rem;}
#vistaTerritorio .jn-circulo-num small{font-size:.74rem; margin-top:4px;}
#vistaTerritorio .jn-stat{gap:18px;}
#vistaTerritorio .jn-stat-label{font-size:1rem; color:#3A3C2E; max-width:20ch;}
#vistaTerritorio .jn-stat-label b{color:var(--verde-oscuro);}
#vistaTerritorio .jn-stat.jn-hero .jn-circulo{width:176px; height:176px; background:linear-gradient(180deg, var(--turquesa-suave, #2A5250), var(--turquesa)); border-width:2.5px;}
#vistaTerritorio .jn-stat.jn-hero .jn-circulo-num{font-size:2.15rem;}
#vistaTerritorio .jn-stat.jn-hero .jn-stat-label b{color:var(--cobre-logo, #A5501E);}
@media (max-width:1180px){
#vistaTerritorio .jn-circulo{width:128px; height:128px;}
#vistaTerritorio .jn-circulo-num{font-size:1.55rem;}
#vistaTerritorio .jn-stat.jn-hero .jn-circulo{width:148px; height:148px;}
#vistaTerritorio .jn-stat.jn-hero .jn-circulo-num{font-size:1.85rem;}
}
@media (max-width:560px){
#vistaTerritorio .jn-circulo{width:120px; height:120px;}
#vistaTerritorio .jn-circulo-num{font-size:1.4rem;}
#vistaTerritorio .jn-stat.jn-hero .jn-circulo{width:136px; height:136px;}
#vistaTerritorio .jn-stat-label{font-size:.92rem;}
}
/* ---------- Mapa «Del mundo a la finca»: sin ventana, mas ancho y al margen izquierdo (igual que la banda de cifras) ---------- */
#vistaTerritorio .jn-mapa{margin-top:96px; padding:0 8px;
    position:relative; left:50%; transform:translateX(-50%); width:min(1440px, calc(100vw - 48px));}
#vistaTerritorio .jn-mapa-cabecera{align-items:flex-end; margin-bottom:34px;}
#vistaTerritorio .jn-mapa-titulo{font-size:clamp(1.7rem,2.6vw,2.4rem); line-height:1.15; color:var(--verde-oscuro);}
#vistaTerritorio .jn-mapa-sub{font-size:.96rem; opacity:.75; margin-top:8px;}
#vistaTerritorio .jn-migas{font-size:.92rem;}
#vistaTerritorio .jn-miga{font-size:.92rem;}
#vistaTerritorio .jn-mapa-caja{background:none; border:none; border-radius:0; padding:0; min-height:0; overflow:visible;}
#vistaTerritorio .jn-escena-grid{grid-template-columns:minmax(0,1fr) 380px; gap:56px; align-items:start;}
#vistaTerritorio .jn-mapa-svg-wrap svg{max-height:640px;}
#vistaTerritorio .jn-escena:not([data-escena="mundo"]) svg{overflow:hidden;}
/* sin la ventana ya no recortaba: ocultaba el trazo suelto que sobra fuera del encuadre de los mapas de Espana/Andalucia/Jaen */
/* El recuadro de Canarias (path3682) venia como una region rellena (con un tramo en diagonal), lo que pintaba un triangulo oscuro
     en la esquina; ahora es solo un marco fino y no capta el raton. */
#vistaTerritorio .jn-region[data-id="path3682"]{fill:none !important; stroke:var(--turquesa-suave); stroke-width:.9; stroke-dasharray:4 3; pointer-events:none;}
#vistaTerritorio .jn-region{stroke:var(--crema);}
/* mundo: tierra base turquesa; paises productores mas claros y con datos; España, dorada */
#vistaTerritorio .jn-mundo-svg .jn-tierra{fill:var(--turquesa-suave); stroke:var(--crema); stroke-width:.5;}
#vistaTerritorio .jn-mundo-svg .jn-region.jn-prod{cursor:pointer; stroke:var(--crema); stroke-width:.6;}
#vistaTerritorio .jn-mundo-svg .jn-region.jn-n2{fill:#6FB79A;}
#vistaTerritorio .jn-mundo-svg .jn-region.jn-n1{fill:#9FD0B9;}
#vistaTerritorio .jn-mundo-svg .jn-region.jn-prod:hover{fill:var(--dorado); filter:none;}
#vistaTerritorio .jn-pin .es-forma path{stroke:var(--crema); stroke-width:.7;}
#vistaTerritorio .jn-mapa-panel{gap:18px;}
/* ranking de productores */
#vistaTerritorio .jn-rank{background:var(--crema); border:1px solid var(--borde); border-radius:14px; padding:20px 20px 18px;}
#vistaTerritorio .jn-rank h4{margin:0 0 4px; font-family:'Fraunces', Georgia, serif; font-weight:600; font-size:1.15rem; color:var(--verde-oscuro);}
#vistaTerritorio .jn-rank-sub{margin:10px 0 8px; font-size:.78rem; font-weight:700; letter-spacing:.04em; color:var(--cobre); text-transform:uppercase;}
#vistaTerritorio .jn-rank ol{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px;}
#vistaTerritorio .jn-rank li{display:grid; grid-template-columns:16px 68px 1fr auto; gap:8px; align-items:center; font-size:.8rem; color:var(--tinta);}
#vistaTerritorio .jn-rank .n{opacity:.45; font-weight:700;}
#vistaTerritorio .jn-rank .pais{font-weight:700;}
#vistaTerritorio .jn-rank .barra{display:block; height:8px; border-radius:4px; background:rgba(32,64,62,.1); overflow:hidden;}
#vistaTerritorio .jn-rank .barra i{display:block; height:100%; border-radius:4px; background:var(--turquesa-suave);}
#vistaTerritorio .jn-rank li.oro .barra i{background:var(--dorado);}
#vistaTerritorio .jn-rank .val{font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right;}
#vistaTerritorio .jn-rank .val em{font-style:normal; opacity:.6; font-size:.74rem; margin-left:2px;}
#vistaTerritorio .jn-rank-total{margin:10px 0 2px; font-size:.82rem; line-height:1.4; color:var(--tinta);}
#vistaTerritorio .jn-rank-total b{color:var(--verde-oscuro);}
@media (max-width:980px){
#vistaTerritorio .jn-escena-grid{grid-template-columns:1fr; gap:26px;}
#vistaTerritorio .jn-mapa{margin-top:70px;}
}
/* ---------- Cascada mundo -> España -> Andalucía -> Jaén: cada nivel en su columna, con sus círculos uno encima de otro ---------- */
#vistaTerritorio .jn-cascada{grid-template-columns:repeat(4, minmax(0,1fr)); gap:0 44px; align-items:start;}
#vistaTerritorio .jn-grupo{display:flex; flex-direction:column; gap:26px;}
#vistaTerritorio .jn-grupo-tit{margin:0 0 4px; padding-bottom:12px; border-bottom:2px solid var(--cobre-logo, #A5501E); text-align:center;
    font-family:'Fraunces', Georgia, serif; font-weight:600; font-size:1.35rem; color:var(--verde-oscuro);}
#vistaTerritorio .jn-cascada .jn-stat{flex-direction:row; align-items:center; justify-content:center; text-align:center; gap:22px;}
#vistaTerritorio .jn-cascada .jn-stat-label{max-width:none; flex:1 1 0; text-align:center;}
#vistaTerritorio .jn-cascada .jn-stat.jn-hero .jn-circulo{width:150px; height:150px; border-width:2.5px;}
#vistaTerritorio .jn-cascada .jn-stat.jn-hero .jn-circulo-num{font-size:1.8rem;}
#vistaTerritorio .jn-cascada .jn-circulo{flex-shrink:0;}
@media (max-width:1180px){
#vistaTerritorio .jn-cascada{grid-template-columns:repeat(2, minmax(0,1fr)); gap:44px 40px;}
#vistaTerritorio .jn-cascada .jn-circulo, #vistaTerritorio .jn-cascada .jn-stat.jn-hero .jn-circulo{width:128px; height:128px;}
#vistaTerritorio .jn-cascada .jn-circulo-num, #vistaTerritorio .jn-cascada .jn-stat.jn-hero .jn-circulo-num{font-size:1.5rem;}
}
@media (max-width:640px){
#vistaTerritorio .jn-cascada{grid-template-columns:1fr; gap:36px;}
#vistaTerritorio .jn-cascada .jn-circulo, #vistaTerritorio .jn-cascada .jn-stat.jn-hero .jn-circulo{width:112px; height:112px;}
#vistaTerritorio .jn-cascada .jn-circulo-num, #vistaTerritorio .jn-cascada .jn-stat.jn-hero .jn-circulo-num{font-size:1.3rem;}
#vistaTerritorio .jn-cascada .jn-circulo-num small{font-size:.66rem;}
}
/* ---------- Mapa mas grande y facil de marcar ---------- */
#vistaTerritorio .jn-escena-grid{grid-template-columns:minmax(0,1fr) 330px; gap:36px;}
#vistaTerritorio .jn-mapa-svg-wrap{justify-content:flex-start;}
#vistaTerritorio .jn-mundo-svg{width:100%; height:auto; max-height:none; overflow:hidden;}
/* miguitas «Mundo > España > Andalucía > Jaén» centradas sobre el panel de la derecha (mismo ancho que su columna) */
@media (min-width:981px){
#vistaTerritorio .jn-migas{width:330px; justify-content:center; margin-left:auto;}
}
/* zonas de clic mas generosas: el trazo invisible ensancha el area sensible de cada pais productor (y del pin de España) */
#vistaTerritorio .jn-mundo-svg .jn-region.jn-prod{stroke:transparent; stroke-width:5; pointer-events:all; paint-order:fill;}
#vistaTerritorio .jn-mundo-svg .jn-region.jn-prod:hover{stroke:transparent;}
#vistaTerritorio .jn-pin .halo{fill:transparent; pointer-events:all;}
/* ---------- «Y no solo cantidad»: mas al margen izquierdo (como los bloques anteriores), textos mayores y ventanas separadas y a la derecha ---------- */
#vistaTerritorio .jn-calidad, #vistaTerritorio .jn-fuentes{position:relative; left:50%; transform:translateX(-50%); width:min(1440px, calc(100vw - 48px)); padding-left:8px; padding-right:8px; box-sizing:border-box;}
#vistaTerritorio .jn-calidad{margin-top:110px; grid-template-columns:minmax(0,1fr) 420px; gap:120px; align-items:start;}
#vistaTerritorio .jn-calidad h3{font-size:clamp(1.7rem,2.6vw,2.4rem); line-height:1.15; color:var(--verde-oscuro); margin-bottom:22px;}
#vistaTerritorio .jn-calidad p{font-size:1.02rem; margin-bottom:18px;}
#vistaTerritorio .jn-cards{display:flex; flex-direction:column; gap:34px;}
#vistaTerritorio .jn-cards .jn-card{padding:26px 30px;}
#vistaTerritorio .jn-cards .jn-card .num{font-size:2.7rem; color:var(--cobre-logo, #A5501E);}
/* cifras principales de las ventanas en cobre */
#vistaTerritorio .jn-cards .jn-card + .jn-card{margin-top:0;}
@media (max-width:1100px){
#vistaTerritorio .jn-calidad{grid-template-columns:1fr; gap:44px;}
#vistaTerritorio .jn-cards{gap:22px;}
}
/* Ventanas de cifras: contenido centrado (cifra y texto) */
#vistaTerritorio .jn-card{text-align:center;}
#vistaTerritorio .jn-card .desc{margin-left:auto; margin-right:auto;}
/* ---------- Siluetas de cobre de fondo (plaza de Ubeda en lineas, ChatGPT ...18_15_28) ----------
     Ocupan, a todo el ancho de la pantalla, desde justo debajo del texto hasta el final del bloque (por detras de los botones de
     referencia y de las ventanas de la derecha). */
#vistaTerritorio .franja-jaen{overflow-x:clip;}
#vistaTerritorio .jn-calidad{align-items:stretch;}
#vistaTerritorio .jn-calidad > div:first-child{display:flex; flex-direction:column;}
#vistaTerritorio .jn-sil-zona{flex:1 1 auto; position:relative;}
#vistaTerritorio .jn-sil-zona::before{content:""; position:absolute; z-index:0; pointer-events:none;
    top:0; bottom:-46px;
    left:calc(-1 * (max((100vw - 1440px) / 2, 24px) + 8px)); width:100vw;
    background:var(--sil) center 42% / cover no-repeat; opacity:.8;   /* cobre fuerte (#A5501E), como las cifras de las ventanas */}
#vistaTerritorio .jn-sil-zona .jn-chips{position:relative; z-index:1;}
#vistaTerritorio .jn-cards{position:relative; z-index:1;}
@media (max-width:1100px){
#vistaTerritorio .jn-sil-zona{min-height:340px;}
}
/* Leyenda de la escena de Espana: Andalucia vs. resto de Espana */
#vistaTerritorio .jn-leyenda{display:flex; flex-direction:column; gap:10px; background:var(--crema); border:1px solid var(--borde); border-radius:14px; padding:16px 18px;}
#vistaTerritorio .jn-ley-fila{display:flex; align-items:center; gap:12px; font-size:.95rem; color:var(--tinta);}
#vistaTerritorio .jn-ley-fila b{font-family:'Fraunces',Georgia,serif; font-weight:600; margin-right:4px;}
#vistaTerritorio .jn-ley-fila i{width:18px; height:18px; border-radius:5px; flex:none;}
#vistaTerritorio .jn-ley-and{background:var(--dorado);}
#vistaTerritorio .jn-ley-resto{background:var(--turquesa-suave);}
/* ---- Revision movil: texto a la izquierda y migas con zona de toque mayor ---- */
@media(max-width:600px){
#vistaTerritorio .tr-lead-hero, #vistaTerritorio .jn-lead, #vistaTerritorio .jn-calidad p{text-align:left; hyphens:auto; -webkit-hyphens:auto;}
#vistaTerritorio .jn-circulo-num small, #vistaTerritorio .jn-cascada .jn-circulo-num small{font-size:.74rem;}
}
@media(pointer:coarse){
#vistaTerritorio .jn-miga{padding:12px 6px;}
}

/* Botón de Origen hacia la vista Territorio (mismo patrón que .historia-head) */
.comarca-head{display:flex; justify-content:space-between; align-items:flex-end;
  gap:40px; flex-wrap:wrap;}
.comarca-head .titulo-seccion{margin:0;}
.comarca-head .btn{flex-shrink:0;}
.comarca-head .btn svg{width:18px; height:18px; flex-shrink:0;}
@media(max-width:760px){ .comarca-head{gap:22px;} }
  /* ---------- SELECTOR DE IDIOMA (banderas ES / EN-GB) ---------- */
  .lang-switch{display:flex; align-items:center; gap:4px; margin-left:auto; margin-right:28px; position:relative; z-index:200;}
  .lang-btn{
    appearance:none; -webkit-appearance:none; background:none; border:0; margin:0; padding:6px 5px;
    cursor:pointer; border-radius:6px; line-height:0; opacity:.55;
    transition:opacity .2s ease, transform .2s ease; -webkit-tap-highlight-color:transparent;
  }
  .lang-btn svg{width:30px; height:20px; display:block; border-radius:3px; box-shadow:0 0 0 1px rgba(255,255,255,.55), 0 2px 6px rgba(0,0,0,.28);}
  .lang-btn:hover{opacity:.95; transform:translateY(-1px);}
  .lang-btn[aria-pressed="true"]{opacity:1;}
  .lang-btn[aria-pressed="true"] svg{box-shadow:0 0 0 2px var(--dorado), 0 2px 8px rgba(0,0,0,.35);}
  .lang-btn:focus-visible{outline:2px solid var(--dorado); outline-offset:2px;}
  /* Portátil / tablet horizontal: con las banderas la botonera no cabe; se compacta (sin tocar el diseño de escritorio ancho) */
  @media(min-width:861px) and (max-width:1180px){
    header.nav, header.nav.scrolled{padding-left:24px; padding-right:24px;}
    header.nav .brand-mark{width:84px; height:84px;}
    header.nav .brand{gap:10px;}
    nav.links{gap:16px;}
    nav.links a{font-size:.9rem;}
    nav.links .nav-cta{padding:10px 15px;}
    .lang-switch{margin-right:16px;}
  }
  /* Móvil: las dos banderas apiladas en vertical para restar el mínimo ancho al nombre de la marca */
  @media(max-width:860px){
    .lang-switch{margin-left:auto; margin-right:8px; flex-direction:column; gap:0;}
    .lang-btn{padding:5px 8px;}
    .lang-btn svg{width:27px; height:18px;}
  }
  @media(max-width:860px) and (pointer:coarse){ .lang-btn{padding:10px 9px;} }
  header.nav:has(nav.links.open) .lang-switch .lang-btn{opacity:.85;}
  header.nav:has(nav.links.open) .lang-switch .lang-btn[aria-pressed="true"]{opacity:1;}
  /* En inglés el importe va tras el símbolo (€90): se anula el hueco del flex del botón */
  html[lang="en-GB"] .btn .cta-precio{margin-left:-10px;}
  @media(max-width:380px){
    header.nav .brand-mark{width:78px; height:78px;}
    header.nav .brand{gap:8px;}
    .lang-switch{margin-right:4px;}
  }